From b32f28e71252fd90c70602671de257acbfcfad62 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun Date: Mon, 7 Sep 2026 14:00:28 +0800 Subject: [PATCH 01/76] Initial Commit of speed dial improvement --- resources/web/dialog/SpeedDial/speeddial.js | 981 ++++++++++++------ .../web/dialog/SpeedDial/speeddial.test.js | 82 +- resources/web/dialog/SpeedDial/style.css | 31 + src/slic3r/GUI/ActionRegistry.cpp | 390 ++++++- src/slic3r/GUI/ActionRegistry.hpp | 45 +- src/slic3r/GUI/GLCanvas3D.cpp | 6 - src/slic3r/GUI/GLCanvas3D.hpp | 1 - src/slic3r/GUI/KBShortcutsDialog.cpp | 4 +- src/slic3r/GUI/MainFrame.cpp | 19 +- src/slic3r/GUI/Notebook.cpp | 15 +- src/slic3r/GUI/Plater.cpp | 4 - src/slic3r/GUI/SpeedDialDialog.cpp | 149 ++- src/slic3r/GUI/SpeedDialDialog.hpp | 4 +- src/slic3r/GUI/Widgets/Button.cpp | 230 ++-- src/slic3r/GUI/Widgets/Button.hpp | 46 +- 15 files changed, 1441 insertions(+), 566 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 65f64b4399..b25df97723 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -1,14 +1,22 @@ // Speed Dial launcher page. Static-safe module: no DOM access at load time so a -// node vm can exercise the pure helpers (filterActions / actionLabel / nextSel). +// node vm can exercise the pure helpers (filterActions / actionLabel / nextSel / commandList). // ---- state (populated by the C++ bridge via window.HandleStudio) ---- -var ACTIONS = []; // [{id,title,source,shortcut}], already frecency-sorted by C++ +var ACTIONS = []; // [{id,title,source,group,input,shortcut}], already frecency-sorted by C++ var FAVS = []; // [id...] +var RECENTS = []; // [{id,title,source,group,input,shortcut}] - last-N launched var query = ""; var sel = { zone: "list", i: 0 }; // zone: 'list' | 'fav' var lastResizeHeight = 0; var matchIndex = {}; +// Palette phase: 'commands' (search actions/commands, show recents), 'settings' ("Go to +// setting..." second phase: search config options), 'percent' ("Go to layer" second phase: +// enter a 0-100 percentage), 'tab' ("Go to tab..." second phase: pick a notebook tab). +var phase = "commands"; +var settingsResults = []; // [{opt_key,type,label,category,group}] +var tabOptions = []; // [{id,title}] - notebook pages, fetched on entering the tab phase + // why: fuzzy matcher (FoldChar/Norm/FuzzyRanges) lives in shared ../../js/fuzzy-search.js, loaded before // this script - it is shared with the Plugins dialog. Speed dial search is always case-insensitive. @@ -17,251 +25,352 @@ var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, count // ---- pure helpers (no DOM; unit-tested) ------------------------------------- function filterActions(actions, query) { - var q = (query || "").trim(); - var list = actions || []; - matchIndex = {}; - if (!q) - return list.slice(0); + var q = (query || "").trim(); + var list = actions || []; + matchIndex = {}; + if (!q) + return list.slice(0); - var out = []; - for (var i = 0; i < list.length; i++) { - var a = list[i]; - var titleMatch = FuzzyRanges(a.title, q, false); - var sourceMatch = FuzzyRanges(a.source, q, false); - if (!titleMatch && !sourceMatch) - continue; - matchIndex[a.id] = { title: titleMatch, source: sourceMatch, useTitle: !!titleMatch }; - out.push(a); - } - return out; + var out = []; + for (var i = 0; i < list.length; i++) { + var a = list[i]; + var titleMatch = FuzzyRanges(a.title, q, false); + var sourceMatch = FuzzyRanges(a.source || "", q, false); + if (!titleMatch && !sourceMatch) + continue; + matchIndex[a.id] = { title: titleMatch, source: sourceMatch, useTitle: !!titleMatch }; + out.push(a); + } + return out; } function visibleFavourites(favourites, actions) { - // why: a fav whose id has no live action (plugin unloaded/disabled) renders a dead - // monogram tile whose click run()s to a silent no-op; drop it from the quick-bar. - var seen = {}; - (actions || []).forEach(function (a) { seen[a.id] = true; }); - return (favourites || []).filter(function (id, i, arr) { - return seen[id] && arr.indexOf(id) === i; - }); + // why: a fav whose id has no live action (plugin unloaded/disabled) renders a dead + // monogram tile whose click run()s to a silent no-op; drop it from the quick-bar. + var seen = {}; + (actions || []).forEach(function (a) { seen[a.id] = true; }); + return (favourites || []).filter(function (id, i, arr) { + return seen[id] && arr.indexOf(id) === i; + }); } function resultCountText(total, shown, query) { - return (query || "").trim() ? "Showing " + shown + " of " + total + " actions" : total + " actions"; + return (query || "").trim() ? "Showing " + shown + " of " + total + " actions" : total + " actions"; +} + +// Display label for a notebook tab. Notebook's ButtonsListCtrl labels every non-empty page as +// " " (a leading space), so trim it; pages added with an empty title (Home, MainFrame adds +// TAB_ID_HOME with "") fall back to the title-cased id ("home" -> "Home"). +function tabTitle(t) { + var title = (t && t.title) ? String(t.title).trim() : ""; + return title || prettySource((t && t.id) || ""); +} + +// Filter the tab list by a fuzzy title/id match. Pure so the node-vm test can exercise it. +function filterTabs(tabs, query) { + var q = (query || "").trim(); + if (!q) + return (tabs || []).slice(0); + return (tabs || []).filter(function (t) { + return FuzzyRanges(tabTitle(t), q, false) || FuzzyRanges(t.id, q, false); + }); } function shouldRenderActionList(query) { - return !!(query || "").trim(); + return !!((query || "").trim()); +} + +// The active list for the commands phase. A typed query filters every action (plugins + +// commands); an empty query shows the recent list instead (recents live below the search bar). +function commandList(actions, recents, query) { + if (shouldRenderActionList(query)) + return filterActions(actions || [], query); + return (recents || []).slice(0); } // Resolve the selection cursor {zone,i} to the action id it points at: fav zone indexes the -// visible favourites, list zone the filtered actions. Pure so runSelected() shares one lookup. +// visible favourites, list zone the active commands list. `actions` must be the already-resolved +// list (recents for an empty query, the filtered list otherwise) - pure so runSelected() shares +// one lookup and the node-vm test can call it directly. function selectedActionId(sel, actions, favIds, query) { - if (sel.zone === "fav") - return favIds[sel.i]; - // why: search-first keeps the list blank until the user types; an empty query still - // filters to ALL actions, so without this gate Enter fires an action never shown. - if (!shouldRenderActionList(query)) - return null; - var a = actions[sel.i]; - return a && a.id; + if (sel.zone === "fav") + return favIds[sel.i]; + if (!actions || !actions.length) + return null; + var a = actions[sel.i]; + return a && a.id; } function foldLabel(s) { return String(s || "").toLowerCase().replace(/[^a-z0-9]+/g, ""); } // Title-case a source for display: "GCODE OPTIMIZER"/"iRoNiNg pRo" -> "Gcode Optimizer"/"Ironing Pro". function prettySource(source) { - return String(source || "").toLowerCase().replace(/\b\w/g, function (c) { return c.toUpperCase(); }); + return String(source || "").toLowerCase().replace(/\b\w/g, function (c) { return c.toUpperCase(); }); } // Accessible label "Title from Pretty Source", disambiguated with the opaque action id when another // action shares the same title+source (case/separator-insensitive) - so two rows never read out identically. function actionLabel(action, actions) { - var label = action.title + " from " + prettySource(action.source); - if (actions && actions.length) { - var mine = foldLabel(action.title) + "|" + foldLabel(action.source); - var clash = actions.some(function (o) { - return o.id !== action.id && foldLabel(o.title) + "|" + foldLabel(o.source) === mine; - }); - if (clash) - label += " (" + action.id + ")"; - } - return label; + var label = action.title + " from " + prettySource(action.source || action.group || ""); + if (actions && actions.length) { + var mine = foldLabel(action.title) + "|" + foldLabel(action.source || action.group || ""); + var clash = actions.some(function (o) { + return o.id !== action.id && foldLabel(o.title) + "|" + foldLabel(o.source || o.group || "") === mine; + }); + if (clash) + label += " (" + action.id + ")"; + } + return label; } // Monogram code for a tile: title initial, escalated on collision by PREPENDING the source -// initial (pi+ti, e.g. "GC"), then a 1-based ordinal - so same-titled actions stay distinct. -// why: ordinal is assigned by id, not by ACTIONS order - ACTIONS is frecency-sorted and +// initial (pi+ti, e.g. "GC"), then a 1-based ordinal - so same-titled items stay distinct. +// why: ordinal is assigned by id, not by list order - list order is frecency-sorted and // reshuffles as usage changes, which would otherwise flip who's "1" and who's "2" across runs. -function tileCode(action, actions) { - var list = actions || []; - var ti = (action.title || " ").charAt(0).toUpperCase(); - var sameTitle = list.filter(function (o) { return (o.title || " ").charAt(0).toUpperCase() === ti; }); - if (sameTitle.length <= 1) - return ti; - var pi = (action.source || " ").charAt(0).toUpperCase(); - var sameSource = sameTitle.filter(function (o) { return (o.source || " ").charAt(0).toUpperCase() === pi; }); - if (sameSource.length <= 1) +function monogramFor(item, list, titleOf, sourceOf, idOf) { + var items = list || []; + var title = titleOf(item) || " "; + var ti = title.charAt(0).toUpperCase(); + var sameTitle = items.filter(function (o) { return (titleOf(o) || " ").charAt(0).toUpperCase() === ti; }); + if (sameTitle.length <= 1) + return ti; + var source = sourceOf(item) || " "; + var pi = source.charAt(0).toUpperCase(); + var sameSource = sameTitle.filter(function (o) { return (sourceOf(o) || " ").charAt(0).toUpperCase() === pi; }); + if (sameSource.length <= 1) + return pi + ti; + sameSource.sort(function (a, b) { return idOf(a) < idOf(b) ? -1 : idOf(a) > idOf(b) ? 1 : 0; }); + for (var i = 0; i < sameSource.length; i++) + if (sameSource[i] === item || idOf(sameSource[i]) === idOf(item)) + return pi + ti + (i + 1); return pi + ti; - sameSource.sort(function (a, b) { return a.id < b.id ? -1 : a.id > b.id ? 1 : 0; }); - for (var i = 0; i < sameSource.length; i++) - if (sameSource[i].id === action.id) - return pi + ti + (i + 1); - return pi + ti; +} + +// Action tile code - see monogramFor for the escalation ladder. Accessed via accessors so the +// same helper serves settings rows (leaf label + category) without duplicating the logic. +function tileCode(action, actions) { + return monogramFor(action, actions, + function (o) { return o.title; }, + function (o) { return o.source; }, + function (o) { return o.id; }); +} + +// Last " : "-separated segment of a "category : group : label" setting label = the option name +// (e.g. "Quality : Layer Height" -> "Layer Height"); empty labels fall back to the opt_key. +function leafLabel(s) { + var label = String(s && (s.label || s.opt_key || "") || ""); + var parts = label.split(" : "); + var leaf = parts[parts.length - 1]; + return (leaf || "").trim() || label.trim(); +} + +// Setting tile code - the option name initial, then the section (category) on collision, then a +// stable ordinal, so settings no longer all collapse to a generic "S". +function settingCode(s, list) { + return monogramFor(s, list, + function (o) { return leafLabel(o); }, + function (o) { return o.category; }, + function (o) { return o.opt_key; }); } function syncClearButton() { - if (clearEl) - clearEl.hidden = !query; + if (clearEl) + clearEl.hidden = !query; } function stateFromPayload(payload) { - return { - actions: payload.actions || [], - favourites: payload.favourites || [], - query: "", - sel: { zone: "list", i: 0 }, - lastResizeHeight: 0 - }; + return { + actions: payload.actions || [], + favourites: payload.favourites || [], + recent: payload.recent || [], + query: "", + sel: { zone: "list", i: 0 }, + lastResizeHeight: 0, + phase: "commands", + settingsResults: [], + tabOptions: [] + }; } function resetScrollPositions(list, doc) { - if (list) - list.scrollTop = 0; - if (doc && doc.scrollingElement) - doc.scrollingElement.scrollTop = 0; - if (doc && doc.documentElement) - doc.documentElement.scrollTop = 0; - if (doc && doc.body) - doc.body.scrollTop = 0; + if (list) + list.scrollTop = 0; + if (doc && doc.scrollingElement) + doc.scrollingElement.scrollTop = 0; + if (doc && doc.documentElement) + doc.documentElement.scrollTop = 0; + if (doc && doc.body) + doc.body.scrollTop = 0; } // nextSel: pure arrow-nav transition. Down fav->list0; Down list->clamp; Up list@0->fav0; // Up list->i-1; Left/Right clamp within fav. Returns a fresh {zone,i}. function nextSel(sel, key, listLen, favLen) { - var zone = sel.zone, i = sel.i; - if (key === "ArrowDown") { - if (zone === "fav") return { zone: "list", i: 0 }; - return { zone: "list", i: Math.min(i + 1, Math.max(0, listLen - 1)) }; - } - if (key === "ArrowUp") { - if (zone === "list") { - if (i <= 0) return favLen ? { zone: "fav", i: 0 } : { zone: "list", i: 0 }; - return { zone: "list", i: i - 1 }; + var zone = sel.zone, i = sel.i; + if (key === "ArrowDown") { + if (zone === "fav") return { zone: "list", i: 0 }; + return { zone: "list", i: Math.min(i + 1, Math.max(0, listLen - 1)) }; } + if (key === "ArrowUp") { + if (zone === "list") { + if (i <= 0) return favLen ? { zone: "fav", i: 0 } : { zone: "list", i: 0 }; + return { zone: "list", i: i - 1 }; + } + return { zone: zone, i: i }; + } + if (key === "ArrowLeft" && zone === "fav") return { zone: "fav", i: Math.max(0, i - 1) }; + if (key === "ArrowRight" && zone === "fav") return { zone: "fav", i: Math.min(favLen - 1, i + 1) }; return { zone: zone, i: i }; - } - if (key === "ArrowLeft" && zone === "fav") return { zone: "fav", i: Math.max(0, i - 1) }; - if (key === "ArrowRight" && zone === "fav") return { zone: "fav", i: Math.min(favLen - 1, i + 1) }; - return { zone: zone, i: i }; } // ---- bridge ------------------------------------------------------------------ function SendMessage(msg) { - if (typeof SendWXMessage !== "function") - return; - if (typeof msg === "string") msg = { command: msg }; - if (msg.sequence_id === undefined) msg.sequence_id = Date.now(); - SendWXMessage(JSON.stringify(msg)); + if (typeof SendWXMessage !== "function") + return; + if (typeof msg === "string") msg = { command: msg }; + if (msg.sequence_id === undefined) msg.sequence_id = Date.now(); + SendWXMessage(JSON.stringify(msg)); } -// C++ pushes payloads here. Only list_actions is handled; it (re)seeds all state. +// C++ pushes payloads here. window.HandleStudio = function (payload) { - if (!payload) return; - if (typeof payload === "string") { try { payload = JSON.parse(payload); } catch (e) { return; } } - if (payload.command === "list_actions") { - var next = stateFromPayload(payload); - ACTIONS = next.actions; - FAVS = next.favourites; - query = next.query; - sel = next.sel; - lastResizeHeight = next.lastResizeHeight; - if (qEl) { - qEl.value = ""; - qEl.placeholder = "Search " + ACTIONS.length + " actions"; - syncClearButton(); + if (!payload) return; + if (typeof payload === "string") { try { payload = JSON.parse(payload); } catch (e) { return; } } + if (payload.command === "list_actions") { + var next = stateFromPayload(payload); + ACTIONS = next.actions; + FAVS = next.favourites; + RECENTS = next.recent; + query = next.query; + sel = next.sel; + lastResizeHeight = next.lastResizeHeight; + phase = next.phase; + settingsResults = next.settingsResults; + tabOptions = next.tabOptions; + if (qEl) { + qEl.value = ""; + qEl.placeholder = "Search " + ACTIONS.length + " actions"; + syncClearButton(); + } + render({ resize: true, resetScroll: true }); + focusInput(); + } else if (payload.command === "settings_results") { + settingsResults = payload.results || []; + if (sel.zone === "list") + sel.i = Math.max(0, Math.min(sel.i, settingsResults.length - 1)); + render({ resize: true }); + } else if (payload.command === "tab_results") { + tabOptions = payload.tabs || []; + if (sel.zone === "list") + sel.i = Math.max(0, Math.min(sel.i, tabOptions.length - 1)); + render({ resize: true }); } - render({ resize: true, resetScroll: true }); - focusInput(); - } }; // ---- DOM helpers ------------------------------------------------------------- function $(id) { return document.getElementById(id); } function byId(id) { - for (var i = 0; i < ACTIONS.length; i++) if (ACTIONS[i].id === id) return ACTIONS[i]; - return null; + for (var i = 0; i < ACTIONS.length; i++) if (ACTIONS[i].id === id) return ACTIONS[i]; + return null; +} + +function findActionByInput(input) { + for (var i = 0; i < ACTIONS.length; i++) if (ACTIONS[i].input === input) return ACTIONS[i]; + return null; } function currentVisibleFavs() { return visibleFavourites(FAVS, ACTIONS); } +// Active list for the current phase (drives list rendering + arrow nav). +function currentList() { + if (phase === "settings") return settingsResults; + if (phase === "tab") return filterTabs(tabOptions, query); + if (phase === "commands") return commandList(ACTIONS, RECENTS, query); + return []; // percent - the input itself is the only field +} + function hue(id) { - var h = 0; - for (var i = 0; i < id.length; i++) - h = (h * 31 + id.charCodeAt(i)) >>> 0; - return h % 360; + var h = 0; + for (var i = 0; i < id.length; i++) + h = (h * 31 + id.charCodeAt(i)) >>> 0; + return h % 360; } // Build a
with the search-match ranges wrapped in . Used for both the // title and the source eyebrow. Pure (only touches the document factory), so the node-vm test never // calls it and load-time stays DOM-free. function markedText(className, text, match) { - var node = document.createElement("div"); - node.className = className; node.title = text; - if (!match || !match.length) { - node.textContent = text; + var node = document.createElement("div"); + node.className = className; node.title = text; + if (!match || !match.length) { + node.textContent = text; + return node; + } + var last = 0; + for (var i = 0; i < match.length; i++) { + var range = match[i]; + if (range[0] > last) + node.appendChild(document.createTextNode(text.slice(last, range[0]))); + var m = document.createElement("mark"); + m.textContent = text.slice(range[0], range[1]); + node.appendChild(m); + last = range[1]; + } + if (last < text.length) + node.appendChild(document.createTextNode(text.slice(last))); return node; - } - var last = 0; - for (var i = 0; i < match.length; i++) { - var range = match[i]; - if (range[0] > last) - node.appendChild(document.createTextNode(text.slice(last, range[0]))); - var m = document.createElement("mark"); - m.textContent = text.slice(range[0], range[1]); - node.appendChild(m); - last = range[1]; - } - if (last < text.length) - node.appendChild(document.createTextNode(text.slice(last))); - return node; } function starSvg(on) { - return '' + - ''; + return '' + + ''; } // ---- render ------------------------------------------------------------------ function renderFav() { - favEl.innerHTML = ""; - var favs = currentVisibleFavs(); - favEl.hidden = favs.length === 0; - if (!favs.length && sel.zone === "fav") - sel = { zone: "list", i: 0 }; - else if (sel.zone === "fav") - sel.i = Math.max(0, Math.min(sel.i, favs.length - 1)); - updateFavEyebrow(favs); - favs.forEach(function (id, i) { - var a = byId(id); - var tile = document.createElement("button"); - tile.className = "fav-tile" + (sel.zone === "fav" && sel.i === i ? " sel" : ""); - tile.style.setProperty("--h", hue(id)); - tile.textContent = tileCode(a, ACTIONS); - tile.title = a.title; - tile.setAttribute("aria-label", actionLabel(a, ACTIONS)); - tile.onclick = function () { sel = { zone: "fav", i: i }; run(a); }; - tile.oncontextmenu = function (ev) { - ev.preventDefault(); - // why: selecting shows the eyebrow, which grows the launcher - resize so the popup - // isn't clipped (mirrors arrow-nav). requestResize no-ops when height is unchanged. - sel = { zone: "fav", i: i }; render({ resize: true }); - showFavMenu(ev.clientX, ev.clientY, id); - }; - favEl.appendChild(tile); - }); + // Only the commands phase shows the pinned quick-bar. + if (phase !== "commands") { + if (favEl) { favEl.innerHTML = ""; favEl.hidden = true; } + if (eyeEl) eyeEl.hidden = true; + return; + } + favEl.innerHTML = ""; + var favs = currentVisibleFavs(); + favEl.hidden = favs.length === 0; + if (!favs.length && sel.zone === "fav") + sel = { zone: "list", i: 0 }; + else if (sel.zone === "fav") + sel.i = Math.max(0, Math.min(sel.i, favs.length - 1)); + updateFavEyebrow(favs); + favs.forEach(function (id, i) { + var a = byId(id); + var tile = document.createElement("button"); + tile.className = "fav-tile" + (sel.zone === "fav" && sel.i === i ? " sel" : ""); + tile.style.setProperty("--h", hue(id)); + tile.textContent = tileCode(a, ACTIONS); + tile.title = a.title; + tile.setAttribute("aria-label", actionLabel(a, ACTIONS)); + tile.onclick = function () { sel = { zone: "fav", i: i }; activateEntry(a); }; + // Direct removal: a hover-revealed ✕ in the tile's corner. click() stops propagation so it + // unpins without activating the action. + var unpin = document.createElement("button"); + unpin.className = "fav-unpin"; + unpin.title = "Remove from favourites"; + unpin.setAttribute("aria-label", "Remove from favourites"); + unpin.innerHTML = ''; + unpin.onclick = function (ev) { ev.stopPropagation(); toggleFav(id); }; + tile.appendChild(unpin); + tile.oncontextmenu = function (ev) { + ev.preventDefault(); + // why: selecting shows the eyebrow, which grows the launcher - resize so the popup + // isn't clipped (mirrors arrow-nav). requestResize no-ops when height is unchanged. + sel = { zone: "fav", i: i }; render({ resize: true }); + showFavMenu(ev.clientX, ev.clientY, id); + }; + favEl.appendChild(tile); + }); } // ---- favourite context menu (right-click a tile) ----------------------------- @@ -270,83 +379,87 @@ var favMenuEl = null; function hideFavMenu() { if (favMenuEl) favMenuEl.hidden = true; } function addFavMenuItem(label, enabled, fn) { - var item = document.createElement("button"); - item.className = "ctx-item"; - item.textContent = label; - item.disabled = !enabled; - item.onclick = function () { hideFavMenu(); fn(); }; - favMenuEl.appendChild(item); + var item = document.createElement("button"); + item.className = "ctx-item"; + item.textContent = label; + item.disabled = !enabled; + item.onclick = function () { hideFavMenu(); fn(); }; + favMenuEl.appendChild(item); } // One reused menu node (Move left/right + Unpin), positioned at the cursor and clamped // to the viewport. Native browser context menus can't add items, so we roll our own tiny one. function showFavMenu(x, y, id) { - if (!favMenuEl) { - favMenuEl = document.createElement("div"); - favMenuEl.className = "ctx-menu"; - document.body.appendChild(favMenuEl); - } - favMenuEl.innerHTML = ""; - var favs = currentVisibleFavs(); - var vi = favs.indexOf(id); - addFavMenuItem("Move left", vi > 0, function () { moveFav(id, -1); }); - addFavMenuItem("Move right", vi >= 0 && vi < favs.length - 1, function () { moveFav(id, 1); }); - addFavMenuItem("Unpin", true, function () { toggleFav(id); }); - favMenuEl.hidden = false; - favMenuEl.style.left = Math.max(0, Math.min(x, window.innerWidth - favMenuEl.offsetWidth - 4)) + "px"; - favMenuEl.style.top = Math.max(0, Math.min(y, window.innerHeight - favMenuEl.offsetHeight - 4)) + "px"; + if (!favMenuEl) { + favMenuEl = document.createElement("div"); + favMenuEl.className = "ctx-menu"; + document.body.appendChild(favMenuEl); + } + favMenuEl.innerHTML = ""; + var favs = currentVisibleFavs(); + var vi = favs.indexOf(id); + addFavMenuItem("Move left", vi > 0, function () { moveFav(id, -1); }); + addFavMenuItem("Move right", vi >= 0 && vi < favs.length - 1, function () { moveFav(id, 1); }); + addFavMenuItem("Unpin", true, function () { toggleFav(id); }); + favMenuEl.hidden = false; + favMenuEl.style.left = Math.max(0, Math.min(x, window.innerWidth - favMenuEl.offsetWidth - 4)) + "px"; + favMenuEl.style.top = Math.max(0, Math.min(y, window.innerHeight - favMenuEl.offsetHeight - 4)) + "px"; } // Swap a favourite with its visible neighbour (dir -1/+1) and persist the new order. Swapping // by id inside FAVS (not the visible slice) keeps any hidden pins (no live action) in place. function moveFav(id, dir) { - var favs = currentVisibleFavs(); - var vi = favs.indexOf(id); - var ni = vi + dir; - if (vi === -1 || ni < 0 || ni >= favs.length) return; - var a = FAVS.indexOf(id), b = FAVS.indexOf(favs[ni]); - if (a === -1 || b === -1) return; - FAVS[a] = favs[ni]; FAVS[b] = id; - SendMessage({ command: "reorder_favourites", ids: FAVS.slice() }); - sel = { zone: "fav", i: ni }; - render({ resize: true }); + var favs = currentVisibleFavs(); + var vi = favs.indexOf(id); + var ni = vi + dir; + if (vi === -1 || ni < 0 || ni >= favs.length) return; + var a = FAVS.indexOf(id), b = FAVS.indexOf(favs[ni]); + if (a === -1 || b === -1) return; + FAVS[a] = favs[ni]; FAVS[b] = id; + SendMessage({ command: "reorder_favourites", ids: FAVS.slice() }); + sel = { zone: "fav", i: ni }; + render({ resize: true }); } // Name of the selected favourite, shown above the bar; hidden unless a fav is selected. function updateFavEyebrow(favs) { - if (!eyeEl) return; - var a = sel.zone === "fav" && favs.length ? byId(favs[sel.i]) : null; - eyeEl.textContent = a ? a.title : ""; - eyeEl.hidden = !a; + if (!eyeEl) return; + var a = sel.zone === "fav" && favs.length ? byId(favs[sel.i]) : null; + eyeEl.textContent = a ? a.title : ""; + eyeEl.hidden = !a; } -function renderList() { - var q = (query || "").trim(); - var arr = filterActions(ACTIONS, query); - if (sel.zone === "list") - sel.i = Math.max(0, Math.min(sel.i, arr.length - 1)); - listEl.innerHTML = ""; - // why: search-first - the list stays blank until the user types; only a - // non-empty query with zero hits earns the "No actions match" message. - if (!shouldRenderActionList(query)) { - listEl.className = "dial-list empty"; - if (countEl) countEl.hidden = true; - return; - } - listEl.className = "dial-list" + (!arr.length ? " empty" : ""); - if (!arr.length) { - if (countEl) countEl.hidden = true; - var empty = document.createElement("div"); - empty.className = "dial-empty"; - empty.textContent = "No actions match (Total: " + ACTIONS.length + ")"; - listEl.appendChild(empty); - return; - } - if (countEl) { - countEl.hidden = false; - countEl.textContent = resultCountText(ACTIONS.length, arr.length, query); - } - arr.forEach(function (a, i) { +// One settings row; has no star/tile because settings aren't pinnable. +function renderSettingRow(s, i) { + var row = document.createElement("div"); + row.className = "row" + (sel.zone === "list" && sel.i === i ? " sel" : ""); + row.setAttribute("aria-label", s.label); + + var tile = document.createElement("div"); + tile.className = "tile"; + tile.style.setProperty("--h", hue(s.opt_key)); + tile.textContent = settingCode(s, settingsResults); + + var left = document.createElement("div"); + left.className = "row-left"; + // why: the label already packs "Category : Group : Label", so no separate eyebrow. + var line = document.createElement("div"); + line.className = "row-line"; + var name = document.createElement("div"); + name.className = "row-name"; + name.textContent = s.label; + line.appendChild(name); + left.appendChild(line); + + row.appendChild(tile); + row.appendChild(left); + row.onclick = function () { sel = { zone: "list", i: i }; render({ resize: true }); }; + row.ondblclick = function () { sel = { zone: "list", i: i }; jumpToSetting(s); }; + return row; +} + +// A command/action row (used for both recents and filtered results). +function renderActionRow(a, i) { var on = FAVS.indexOf(a.id) !== -1; var row = document.createElement("div"); row.className = "row" + (sel.zone === "list" && sel.i === i ? " sel" : ""); @@ -360,20 +473,20 @@ function renderList() { var left = document.createElement("div"); left.className = "row-left"; var mi = matchIndex[a.id]; - var sourceEl = markedText("row-eyebrow", a.source, mi ? mi.source : null); + var sourceEl = markedText("row-eyebrow", a.group || a.source, mi ? mi.source : null); var line = document.createElement("div"); line.className = "row-line"; var name = markedText("row-name", a.title, mi ? mi.title : null); line.appendChild(name); if (a.shortcut) { - var sc = document.createElement("div"); - sc.className = "row-sc"; - a.shortcut.split("+").forEach(function (k) { - var key = document.createElement("kbd"); - key.textContent = k; - sc.appendChild(key); - }); - line.appendChild(sc); + var sc = document.createElement("div"); + sc.className = "row-sc"; + a.shortcut.split("+").forEach(function (k) { + var key = document.createElement("kbd"); + key.textContent = k; + sc.appendChild(key); + }); + line.appendChild(sc); } left.appendChild(sourceEl); left.appendChild(line); @@ -389,110 +502,350 @@ function renderList() { star.ondblclick = function (ev) { ev.stopPropagation(); }; row.appendChild(star); - row.onclick = function () { sel = { zone: "list", i: i }; render(); }; - row.ondblclick = function () { sel = { zone: "list", i: i }; run(a); }; - listEl.appendChild(row); - }); + row.onclick = function () { sel = { zone: "list", i: i }; render({ resize: true }); }; + row.ondblclick = function () { sel = { zone: "list", i: i }; activateEntry(a); }; + return row; +} + +function renderCommandsList() { + var q = (query || "").trim(); + var list = currentList(); + if (sel.zone === "list") + sel.i = Math.max(0, Math.min(sel.i, list.length - 1)); + // Recents are not filtered, so clear any stale match marks from a previous typed query. + if (!shouldRenderActionList(query)) + matchIndex = {}; + listEl.innerHTML = ""; + + if (!shouldRenderActionList(query) && list.length) { + var head = document.createElement("div"); + head.className = "dial-group"; + head.textContent = "Recent"; + listEl.appendChild(head); + } + + if (!list.length) { + listEl.className = "dial-list empty"; + if (countEl) countEl.hidden = true; + var empty = document.createElement("div"); + empty.className = "dial-empty"; + empty.textContent = shouldRenderActionList(query) ? ("No actions match (Total: " + ACTIONS.length + ")") : "No actions yet"; + listEl.appendChild(empty); + return; + } + + listEl.className = "dial-list"; + if (countEl) { + countEl.hidden = false; + countEl.textContent = shouldRenderActionList(query) ? resultCountText(ACTIONS.length, list.length, query) : list.length + " recent"; + } + list.forEach(function (a, i) { listEl.appendChild(renderActionRow(a, i)); }); +} + +function renderSettingsList() { + var q = (query || "").trim(); + listEl.innerHTML = ""; + // Empty query + recents -> show the recent settings under a "Recent" group header. + var showingRecents = !q && settingsResults.length > 0; + if (!q && !showingRecents) { + listEl.className = "dial-list empty"; + if (countEl) countEl.hidden = true; + var hint = document.createElement("div"); + hint.className = "dial-empty"; + hint.textContent = "Type to search print, filament and printer settings"; + listEl.appendChild(hint); + return; + } + if (q && !settingsResults.length) { + listEl.className = "dial-list empty"; + if (countEl) countEl.hidden = true; + var empty = document.createElement("div"); + empty.className = "dial-empty"; + empty.textContent = "No settings match"; + listEl.appendChild(empty); + return; + } + if (sel.zone === "list") + sel.i = Math.max(0, Math.min(sel.i, settingsResults.length - 1)); + listEl.className = "dial-list"; + if (countEl) { + countEl.hidden = false; + countEl.textContent = showingRecents ? settingsResults.length + " recent" : settingsResults.length + " matches"; + } + if (showingRecents) { + var head = document.createElement("div"); + head.className = "dial-group"; + head.textContent = "Recent"; + listEl.appendChild(head); + } + settingsResults.forEach(function (s, i) { listEl.appendChild(renderSettingRow(s, i)); }); +} + +// A tab row: no star/unpin (tabs aren't pinnable), tile monogram from the title. Uses tabTitle so +// pages added with an empty text (e.g. Home) still show a label and an icon letter. +function renderTabRow(t, i) { + var label = tabTitle(t); + var row = document.createElement("div"); + row.className = "row" + (sel.zone === "list" && sel.i === i ? " sel" : ""); + row.setAttribute("aria-label", label); + + var tile = document.createElement("div"); + tile.className = "tile"; + tile.style.setProperty("--h", hue(t.id)); + tile.textContent = label.charAt(0).toUpperCase(); + + var left = document.createElement("div"); + left.className = "row-left"; + var line = document.createElement("div"); + line.className = "row-line"; + var name = document.createElement("div"); + name.className = "row-name"; + name.textContent = label; + line.appendChild(name); + left.appendChild(line); + + row.appendChild(tile); + row.appendChild(left); + row.onclick = function () { sel = { zone: "list", i: i }; render({ resize: true }); }; + row.ondblclick = function () { sel = { zone: "list", i: i }; jumpToTab(t); }; + return row; +} + +function renderTabList() { + var q = (query || "").trim(); + var list = currentList(); + listEl.innerHTML = ""; + + if (!list.length) { + listEl.className = "dial-list empty"; + if (countEl) countEl.hidden = true; + var empty = document.createElement("div"); + empty.className = "dial-empty"; + empty.textContent = q ? "No tabs match" : "No tabs"; + listEl.appendChild(empty); + return; + } + if (sel.zone === "list") + sel.i = Math.max(0, Math.min(sel.i, list.length - 1)); + listEl.className = "dial-list"; + if (countEl) { + countEl.hidden = false; + countEl.textContent = q ? list.length + " matches" : list.length + " tabs"; + } + list.forEach(function (t, i) { listEl.appendChild(renderTabRow(t, i)); }); +} + +function renderPercentList() { + var q = (query || "").trim(); + listEl.innerHTML = ""; + listEl.className = "dial-list empty"; + if (countEl) countEl.hidden = true; + var ph = document.createElement("div"); + ph.className = "dial-empty"; + ph.textContent = q ? ("Go to " + q + "% of the layer range") : "Enter a layer percentage (0-100)"; + listEl.appendChild(ph); +} + +function renderList() { + if (phase === "settings") + renderSettingsList(); + else if (phase === "tab") + renderTabList(); + else if (phase === "percent") + renderPercentList(); + else + renderCommandsList(); } function render(opts) { - renderFav(); - renderList(); - scrollSelectedIntoView(); - if (opts && opts.resetScroll) - resetScrollPositions(listEl, document); - if (opts && opts.resize) - requestResize(); + renderFav(); + renderList(); + scrollSelectedIntoView(); + if (opts && opts.resetScroll) + resetScrollPositions(listEl, document); + if (opts && opts.resize) + requestResize(); } // Keep the selected item in view as arrows move it: the list scrolls vertically, the fav bar // horizontally (arrow nav "pushes" the scrollable fav row to follow the selection). function scrollSelectedIntoView() { - var el = null; - if (sel.zone === "list" && listEl) - el = listEl.querySelector(".row.sel"); - else if (sel.zone === "fav" && favEl) - el = favEl.querySelector(".fav-tile.sel"); - if (el && el.scrollIntoView) - el.scrollIntoView({ block: "nearest", inline: "nearest" }); + var el = null; + if (sel.zone === "list" && listEl) + el = listEl.querySelector(".row.sel"); + else if (sel.zone === "fav" && favEl) + el = favEl.querySelector(".fav-tile.sel"); + if (el && el.scrollIntoView) + el.scrollIntoView({ block: "nearest", inline: "nearest" }); } function requestResize() { - if (!document.body) - return; - setTimeout(function () { - var launcher = document.querySelector(".launcher"); - if (!launcher) - return; - var height = Math.ceil(launcher.getBoundingClientRect().height); - if (!height || height === lastResizeHeight) - return; - lastResizeHeight = height; - SendMessage({ command: "resize", height: height }); - }, 0); + if (!document.body) + return; + setTimeout(function () { + var launcher = document.querySelector(".launcher"); + if (!launcher) + return; + var height = Math.ceil(launcher.getBoundingClientRect().height); + if (!height || height === lastResizeHeight) + return; + lastResizeHeight = height; + SendMessage({ command: "resize", height: height }); + }, 0); } // ---- actions ----------------------------------------------------------------- function toggleFav(id) { - var k = FAVS.indexOf(id); - var newState = k === -1; - if (newState) FAVS.push(id); else FAVS.splice(k, 1); - SendMessage({ command: "toggle_favourite", id: id, fav: newState }); - render({ resize: true }); + var k = FAVS.indexOf(id); + var newState = k === -1; + if (newState) FAVS.push(id); else FAVS.splice(k, 1); + SendMessage({ command: "toggle_favourite", id: id, fav: newState }); + render({ resize: true }); } -// Fire the action; C++ owns the run-confirm (native dialog) + suppression, then closes the popup + toasts. +// Fire a command/plugin action; C++ owns the run-confirm (native dialog) + suppression, then +// closes the popup + toasts. function run(a) { - if (!a) return; - SendMessage({ command: "run_action", id: a.id, title: a.title }); + if (!a) return; + SendMessage({ command: "run_action", id: a.id, title: a.title, param: "" }); +} + +// Activate an entry in the commands phase. Two-phase commands switch the palette to their input +// phase instead of running; everything else runs immediately. +function activateEntry(a) { + if (!a) return; + if (a.input === "settings") { enterSettingsPhase(); return; } + if (a.input === "percent") { enterPercentPhase(); return; } + if (a.input === "tab") { enterTabsPhase(); return; } + run(a); } function runSelected() { - var id = selectedActionId(sel, filterActions(ACTIONS, query), currentVisibleFavs(), query); - if (id) run(byId(id)); + if (phase === "percent") { + runJumpToLayer(query.trim()); + return; + } + if (phase === "settings") { + var s = settingsResults[sel.i]; + if (s) jumpToSetting(s); + return; + } + if (phase === "tab") { + var t = currentList()[sel.i]; + if (t) jumpToTab(t); + return; + } + var list = currentList(); + var id = selectedActionId(sel, list, currentVisibleFavs(), query); + if (id) activateEntry(byId(id)); } -function focusInput() { setTimeout(function () { qEl.focus(); }, 0); } +function jumpToSetting(s) { + SendMessage({ command: "go_to_setting", opt_key: s.opt_key, type: s.type, category: s.category || "", label: s.label || "", group: s.group || "" }); +} + +function runJumpToLayer(pct) { + if (pct === "") return; + var n = parseFloat(pct); + if (!isFinite(n) || n < 0 || n > 100) return; + var a = findActionByInput("percent"); + if (!a) return; + SendMessage({ command: "run_action", id: a.id, title: a.title, param: String(n) }); +} + +function jumpToTab(t) { + SendMessage({ command: "go_to_tab", id: t.id, title: tabTitle(t) }); +} + +function enterSettingsPhase() { + phase = "settings"; settingsResults = []; query = ""; qEl.value = ""; + sel = { zone: "list", i: 0 }; + qEl.placeholder = "Search settings..."; + syncClearButton(); + render({ resize: true, resetScroll: true }); + qEl.focus(); + SendMessage({ command: "search_settings", q: "" }); +} + +function enterPercentPhase() { + phase = "percent"; query = ""; qEl.value = ""; + sel = { zone: "list", i: 0 }; + qEl.placeholder = "Go to layer % (0-100)"; + syncClearButton(); + render({ resize: true, resetScroll: true }); + qEl.focus(); +} + +function enterTabsPhase() { + phase = "tab"; tabOptions = []; query = ""; qEl.value = ""; + sel = { zone: "list", i: 0 }; + qEl.placeholder = "Go to tab"; + syncClearButton(); + render({ resize: true, resetScroll: true }); + qEl.focus(); + SendMessage({ command: "search_tabs" }); +} + +function exitPhase() { + phase = "commands"; settingsResults = []; tabOptions = []; query = ""; qEl.value = ""; + sel = { zone: "list", i: 0 }; + qEl.placeholder = "Search " + ACTIONS.length + " actions"; + syncClearButton(); + render({ resize: true, resetScroll: true }); + qEl.focus(); +} + +function focusInput() { setTimeout(function () { if (qEl) qEl.focus(); }, 0); } // ---- init -------------------------------------------------------------------- function OnInit() { - qEl = $("q"); listEl = $("list"); favEl = $("favBar"); clearEl = $("clear"); eyeEl = $("favEyebrow"); countEl = $("count"); - syncClearButton(); - - $("clear").onclick = function () { - query = ""; qEl.value = ""; sel = { zone: "list", i: 0 }; render({ resize: true, resetScroll: true }); qEl.focus(); + qEl = $("q"); listEl = $("list"); favEl = $("favBar"); clearEl = $("clear"); eyeEl = $("favEyebrow"); countEl = $("count"); syncClearButton(); - }; - qEl.addEventListener("input", function () { - query = qEl.value; sel = { zone: "list", i: 0 }; syncClearButton(); render({ resize: true, resetScroll: true }); - }); - // why: dismiss the fav context menu on any click/scroll away from it (capture scroll to catch nested scrollers). - document.addEventListener("click", hideFavMenu); - document.addEventListener("scroll", hideFavMenu, true); + $("clear").onclick = function () { + query = ""; qEl.value = ""; sel = { zone: "list", i: 0 }; + if (phase === "settings") SendMessage({ command: "search_settings", q: "" }); + render({ resize: true, resetScroll: true }); qEl.focus(); + syncClearButton(); + }; + qEl.addEventListener("input", function () { + query = qEl.value; sel = { zone: "list", i: 0 }; syncClearButton(); + if (phase === "settings") SendMessage({ command: "search_settings", q: query }); + render({ resize: true, resetScroll: true }); + }); - document.addEventListener("keydown", function (e) { - if (favMenuEl && !favMenuEl.hidden && e.key === "Escape") { e.preventDefault(); hideFavMenu(); return; } - var arr = filterActions(ACTIONS, query); - var favs = currentVisibleFavs(); - // why: Up/Down always navigate; Left/Right only navigate the fav bar. In the list zone, - // let Left/Right fall through so they move the caret in the focused search field. - var lr = e.key === "ArrowLeft" || e.key === "ArrowRight"; - if (e.key === "ArrowDown" || e.key === "ArrowUp" || (lr && sel.zone === "fav")) { - e.preventDefault(); - sel = nextSel(sel, e.key, arr.length, favs.length); - // why: entering/leaving the fav zone toggles the eyebrow line, changing launcher height; - // resize so the popup grows/shrinks instead of clipping. requestResize no-ops when unchanged. - render({ resize: true }); - } else if (e.key === "Enter") { - e.preventDefault(); - runSelected(); - } else if (e.key === "Escape") { - e.preventDefault(); - if (query) { query = ""; qEl.value = ""; sel = { zone: "list", i: 0 }; syncClearButton(); render({ resize: true, resetScroll: true }); } - else SendMessage({ command: "close_page" }); - } - }); + // why: dismiss the fav context menu on any click/scroll away from it (capture scroll to catch nested scrollers). + document.addEventListener("click", hideFavMenu); + document.addEventListener("scroll", hideFavMenu, true); - SendMessage({ command: "request_actions" }); + document.addEventListener("keydown", function (e) { + if (favMenuEl && !favMenuEl.hidden && e.key === "Escape") { e.preventDefault(); hideFavMenu(); return; } + var list = currentList(); + // why: fav bar only exists in the commands phase; other phases are list-only, so an + // ArrowUp at the top must not jump into a hidden fav zone. + var favs = (phase === "commands") ? currentVisibleFavs() : []; + // why: Up/Down always navigate; Left/Right only navigate the fav bar. In the list zone, + // let Left/Right fall through so they move the caret in the focused search field. + var lr = e.key === "ArrowLeft" || e.key === "ArrowRight"; + if (e.key === "ArrowDown" || e.key === "ArrowUp" || (lr && sel.zone === "fav")) { + // In the percent phase the input is the whole UI - arrows move the caret, not rows. + if (phase === "percent") return; + e.preventDefault(); + sel = nextSel(sel, e.key, list.length, favs.length); + // why: entering/leaving the fav zone toggles the eyebrow line, changing launcher height; + // resize so the popup grows/shrinks instead of clipping. requestResize no-ops when unchanged. + render({ resize: true }); + } else if (e.key === "Enter") { + e.preventDefault(); + if (phase === "percent") runJumpToLayer(query.trim()); + else runSelected(); + } else if (e.key === "Escape") { + e.preventDefault(); + if (phase !== "commands") { exitPhase(); } + else if (query) { query = ""; qEl.value = ""; sel = { zone: "list", i: 0 }; syncClearButton(); render({ resize: true, resetScroll: true }); qEl.focus(); } + else SendMessage({ command: "close_page" }); + } + }); + + SendMessage({ command: "request_actions" }); } diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 05c1e69c23..2ce625072b 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -22,20 +22,92 @@ assert.equal( "duplicate labels should use the opaque id without interpreting its contents" ); -assert.equal(ctx.shouldRenderActionList(""), false, "an empty search keeps the action list hidden"); -assert.equal(ctx.shouldRenderActionList(" "), false, "whitespace-only search keeps the action list hidden"); +assert.equal(ctx.shouldRenderActionList(""), false, "an empty search keeps recent/empty list"); +assert.equal(ctx.shouldRenderActionList(" "), false, "whitespace-only search keeps recent/empty list"); assert.equal(ctx.shouldRenderActionList("r"), true, "typing starts rendering matching actions"); +// commandList: an empty query shows recents; a typed query filters all actions. +assert.deepEqual(ctx.commandList(duplicateActions, [], ""), [], + "empty query + no recents shows nothing"); +assert.deepEqual(ctx.commandList(duplicateActions, [duplicateActions[0]], ""), + [duplicateActions[0]], + "empty query shows the recent list"); +assert.deepEqual(ctx.commandList(duplicateActions, [], "rep"), duplicateActions, + "a typed query filters actions (both identical titles match) instead of showing recents"); + +// filterTabs (tab phase): an empty query keeps the whole list; a typed query filters by title/id. +const tabOptions = [ + { id: "home", title: "Home" }, + { id: "prepare", title: "Prepare" }, + { id: "monitor", title: "Device" }, + { id: "project", title: "Project" } +]; +assert.deepEqual(ctx.filterTabs(tabOptions, ""), tabOptions, + "empty query keeps the whole tab list"); +assert.equal(ctx.filterTabs(tabOptions, "prep").length, 1, + "a typed query filters tabs by title"); +assert.equal(ctx.filterTabs(tabOptions, "Device").length, 1, + "a typed query matches a tab title"); +assert.deepEqual(ctx.filterTabs(tabOptions, "zzz"), [], + "a typed query with no match returns an empty list"); + +// tabTitle: pages added with an empty title (e.g. MainFrame's Home tab) fall back to the id. +assert.equal(ctx.tabTitle({ id: "home", title: "" }), "Home", + "an empty title falls back to the title-cased id"); +assert.equal(ctx.tabTitle({ id: "home" }), "Home", + "a missing title falls back to the title-cased id"); +assert.equal(ctx.tabTitle({ id: "prepare", title: "Prepare" }), "Prepare", + "a populated title is kept as-is"); +assert.equal(ctx.tabTitle({ id: "prepare", title: " Prepare" }), "Prepare", + "a leading space from the Notebook button label is trimmed so the icon letter shows"); +assert.equal(ctx.filterTabs([{ id: "home", title: "" }], "home").length, 1, + "an untitled tab still matches a typed query via the id/title fallback"); +assert.equal(ctx.filterTabs([{ id: "prepare", title: " Prepare" }], "prepare").length, 1, + "a leading-space tab title still matches a typed query"); + +// settingCode: a setting tile uses the leaf option-name initial (label's last " : "-segment), +// escalated by category, then a stable ordinal - so settings aren't all a generic "S". +const settings = [ + { opt_key: "layer_height", label: "Quality : Layer Height", category: "Quality", type: 0 }, + { opt_key: "smooth", label: "Quality : Smooth", category: "Quality", type: 0 } +]; +assert.equal(ctx.leafLabel({ label: "Quality : Layer Height", opt_key: "x" }), "Layer Height", + "leafLabel takes the last segment of the label"); +assert.equal(ctx.settingCode(settings[0], settings), "L", + "a unique leaf initial yields a single letter"); +// renderSettingRow iterates settingsResults, so the coded item is always a member of the list. +const infillQ = { opt_key: "a", label: "Quality : Infill", category: "Quality", type: 0 }; +const infillS = { opt_key: "b", label: "Supports : Infill", category: "Supports", type: 0 }; +const sameLeaf = [infillQ, infillS]; +assert.equal(ctx.settingCode(infillQ, sameLeaf), "QI", + "a colliding leaf initial escalates to category + initial"); +assert.equal(ctx.settingCode(infillS, sameLeaf), "SI", + "a different category disambiguates the same leaf initial"); +const dupQ = [ + { opt_key: "a", label: "Quality : Infill", category: "Quality", type: 0 }, + { opt_key: "b", label: "Quality : Infill", category: "Quality", type: 0 } +]; +assert.equal(ctx.settingCode(dupQ[0], dupQ), "QI1", + "both title and category collide -> stable ordinal by opt_key"); +assert.equal(ctx.settingCode(dupQ[1], dupQ), "QI2", + "the ordinal advances by opt_key order"); + +// selectedActionId: resolves the active list (recents for an empty query, filtered list otherwise). assert.equal( - ctx.selectedActionId({ zone: "list", i: 0 }, duplicateActions, [], ""), + ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], ""), [], ""), null, - "Enter with an empty query must not resolve to an action the blank list never showed" + "Enter with an empty query and no recents must not resolve to an action the list never showed" ); assert.equal( - ctx.selectedActionId({ zone: "list", i: 0 }, duplicateActions, [], "rep"), + ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], "rep"), [], "rep"), "0123456789abcdef", "a typed query resolves the list selection" ); +assert.equal( + ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [duplicateActions[0]], ""), [], ""), + "0123456789abcdef", + "Enter with an empty query resolves the recent entry" +); assert.equal( ctx.selectedActionId({ zone: "fav", i: 0 }, duplicateActions, ["fedcba9876543210"], ""), "fedcba9876543210", diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index 72de412f66..cdbeca2c69 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -55,6 +55,28 @@ body { border: 1px solid var(--speed-tile-border, #d8d8d8); } .fav-tile.sel { outline: 2px solid var(--main-color, var(--orca-accent, #009688)); outline-offset: 2px; } +/* Hover-revealed remove button in the tile's corner; sits inside the tile bounds so overflow:hidden clips it. */ +.fav-tile { position: relative; } +.fav-unpin { + position: absolute; + top: 1px; + right: 1px; + width: 13px; + height: 13px; + padding: 0; + border: 0; + border-radius: 50%; + display: inline-flex; + align-items: center; + justify-content: center; + color: var(--muted, var(--orca-muted, #6b7280)); + background: rgba(127,127,127,.35); + cursor: pointer; + opacity: 0; +} +.fav-tile:hover .fav-unpin, +.fav-tile.sel .fav-unpin { opacity: 1; } +.fav-unpin:hover { background: rgba(127,127,127,.6); } .ctx-menu { position: fixed; z-index: 10; @@ -127,6 +149,15 @@ body { color: var(--muted, var(--orca-muted, #6b7280)); } .dial-count[hidden] { display: none; } +/* Section header inside the list (e.g. the "Recent" row above the recent entries). */ +.dial-group { + padding: 8px 8px 2px; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: .06em; + color: var(--muted, var(--orca-muted, #6b7280)); +} .dial-list { flex: 0 1 auto; min-height: 0; diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index f3df867ab7..3b9e568a96 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -1,15 +1,29 @@ #include "ActionRegistry.hpp" +#include "GCodeViewer.hpp" +#include "GLCanvas3D.hpp" #include "GUI.hpp" #include "GUI_App.hpp" #include "I18N.hpp" +#include "IMSlider.hpp" +#include "MainFrame.hpp" +#include "Notebook.hpp" +#include "Plater.hpp" +#include "Search.hpp" +#include "Tab.hpp" #include "slic3r/plugin/PluginManager.hpp" #include +#include +#include #include #include +#include +#include +#include + #include #include #include @@ -28,14 +42,9 @@ nlohmann::json parse_config_json(const std::string& value, nlohmann::json fallba } nlohmann::json read_section(const char* key, nlohmann::json fallback) -{ - return parse_config_json(wxGetApp().app_config->get(kConfigSection, key), std::move(fallback)); -} +{ return parse_config_json(wxGetApp().app_config->get(kConfigSection, key), std::move(fallback)); } -void write_section(const char* key, const nlohmann::json& j) -{ - wxGetApp().app_config->set(kConfigSection, key, j.dump()); -} +void write_section(const char* key, const nlohmann::json& j) { wxGetApp().app_config->set(kConfigSection, key, j.dump()); } std::vector read_string_array(const char* key) { @@ -53,7 +62,7 @@ double frecency_score(int count, long long last, long long now) if (count <= 0) return 0.0; constexpr double HALF_LIFE_DAYS = 30.0; - double age = std::max(0.0, double(now - last) / 86400.0); + double age = std::max(0.0, double(now - last) / 86400.0); return count * std::pow(2.0, -age / HALF_LIFE_DAYS); } @@ -79,26 +88,25 @@ struct PluginScriptAction : AppAction // The id an action for (plugin_key, capability) would have - lets refresh_capability // remove a gone capability without materialising the action. static std::string id_for(const std::string& plugin_key, const std::string& capability) - { - return AppAction::compose_id(kIdPrefix, capability.empty() ? plugin_key : capability, plugin_key); - } + { return AppAction::compose_id(kIdPrefix, capability.empty() ? plugin_key : capability, plugin_key); } PluginScriptAction(std::string plugin_key_in, std::string capability_in, std::string source_name) : AppAction(kIdPrefix, - capability_in.empty() ? plugin_key_in : capability_in, // title - plugin_key_in, // source_key - std::move(source_name)), - plugin_key(std::move(plugin_key_in)), capability(std::move(capability_in)) + capability_in.empty() ? plugin_key_in : capability_in, // title + plugin_key_in, // source_key + std::move(source_name)) + , plugin_key(std::move(plugin_key_in)) + , capability(std::move(capability_in)) {} - AppActionRunResult run() const override + AppActionRunResult run(const std::string& /*param*/) const override { std::string error; const ExecutionResult result = PluginManager::instance().run_script_capability(plugin_key, capability, error); if (!error.empty()) return {AppActionRunResult::Level::Error, from_u8(error)}; - const bool skipped = result.status == PluginResult::Skipped; + const bool skipped = result.status == PluginResult::Skipped; const wxString fallback = skipped ? _L("Script plugin skipped.") : _L("Script plugin finished."); return {skipped ? AppActionRunResult::Level::Info : AppActionRunResult::Level::Success, result.message.empty() ? fallback : from_u8(result.message)}; @@ -107,8 +115,7 @@ struct PluginScriptAction : AppAction // Builds an action for a capability, or nullptr if it is not a currently-loaded, // enabled script capability. -std::unique_ptr make_action(const std::string& plugin_key, const std::string& capability, - const std::string& source_name) +std::unique_ptr make_action(const std::string& plugin_key, const std::string& capability, const std::string& source_name) { PluginManager& manager = PluginManager::instance(); if (!manager.is_plugin_loaded(plugin_key)) @@ -119,8 +126,167 @@ std::unique_ptr make_action(const std::string& plugin_key, const std: return std::make_unique(plugin_key, capability, source_name); } +// ---- built-in command actions (the speed dial "commands" section) ------ + +constexpr const char* kCommandPrefix = "orca_command"; +constexpr const char* kOrcaSourceKey = "orca"; +constexpr const char* kOrcaSourceName = "OrcaSlicer"; + +// Jump the preview to a layer selected by a 0-100 percent of the layer range. Best-effort: +// switches to the preview tab and requests a slice (select_view_3D("Preview", false)); if the +// slicer result is already present the slider is repositioned immediately, otherwise the user +// can re-run after slicing. +void go_to_layer(Plater* plater, const std::string& param) +{ + if (!plater) + return; + double pct = 50.0; + try { + pct = std::stod(param); + } catch (const std::exception&) {} + pct = std::clamp(pct, 0.0, 100.0); + + GLCanvas3D* canvas = plater->get_current_canvas3D(); + if (!canvas) + return; + GCodeViewer& viewer = canvas->get_gcode_viewer(); + IMSlider* layers = viewer.get_layers_slider(); + IMSlider* moves = viewer.get_moves_slider(); + if (!layers || layers->GetMaxValue() <= 0) + return; // no slice result yet - the slice request above will populate it + + const double max = double(layers->GetMaxValue()); + const int target = int(std::lround(pct / 100.0 * max)); + layers->SetHigherValue(target); + // In "one layer" mode the lower handle follows the higher one (mirrors arrow-key nav). + if (layers->is_one_layer()) + layers->SetLowerValue(target); + layers->set_as_dirty(); + if (moves) { + moves->SetHigherValue(moves->GetMaxValue()); + moves->set_as_dirty(); + } +} + +// Dispatch a built-in command. The CommandAction stays a thin value; the actual GUI work +// lives here so it can touch the live app state. +AppActionRunResult run_native_command(const std::string& command_key, const std::string& param) +{ + GUI_App& app = wxGetApp(); + if (app.is_closing()) + return {}; + + Plater* plater = app.plater(); + + if (command_key == "save_project") { + if (plater) + plater->save_project(false); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "save_project_as") { + if (plater) + plater->save_project(true); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "load_project") { + if (plater) + plater->load_project(); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "open_preferences") { + app.open_preferences(); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "mode_simple" || command_key == "mode_advanced" || command_key == "mode_expert") { + const int mode = command_key == "mode_simple" ? comSimple : command_key == "mode_advanced" ? comAdvanced : comExpert; + app.save_mode(mode); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "slice_and_preview") { + if (plater) { + plater->select_view_3D("Preview", false); + if (app.mainframe) + app.mainframe->select_tab(TAB_ID_PREVIEW); + } + return {AppActionRunResult::Level::Success}; + } + if (command_key == "go_to_layer") { + if (plater) { + plater->select_view_3D("Preview", false); + if (app.mainframe) + app.mainframe->select_tab(TAB_ID_PREVIEW); + go_to_layer(plater, param); + } + return {AppActionRunResult::Level::Success}; + } + // "go_to_setting"/"go_to_tab" are two-phase: the palette collects the option after + // activating it, so dispatch here is a no-op (the actual jump goes through the web command). + if (command_key == "go_to_setting" || command_key == "go_to_tab") + return {AppActionRunResult::Level::Success}; + return {AppActionRunResult::Level::Info, _L("Unknown command.")}; +} + +// A built-in command action. source_key is the constant "orca" so a renamed title never +// re-keys the action (matches the plugin source-key contract). +struct CommandAction : AppAction +{ + std::string command_key; + + CommandAction(std::string command_key, std::string title, std::string group, std::string input = "") + : AppAction(kCommandPrefix, std::move(title), kOrcaSourceKey, kOrcaSourceName), command_key(std::move(command_key)) + { + this->kind = AppActionKind::Command; + this->group = std::move(group); + this->input = std::move(input); + } + + AppActionRunResult run(const std::string& param) const override { return run_native_command(command_key, param); } +}; + +std::unique_ptr make_command(std::string key, std::string title, std::string group, std::string input = "") +{ return std::make_unique(std::move(key), std::move(title), std::move(group), std::move(input)); } + +// The built-in palette commands, registered once at init(). +std::vector> native_commands() +{ + std::vector> out; + // why: _u8L (std::string) for titles/groups - make_command takes std::string; _L would + // return a wxString and silently fail to convert here. + out.push_back(make_command("slice_and_preview", _u8L("Slice and Preview"), _u8L("Commands"))); + // Two-phase commands: activating them collects input in the palette, then runs. + out.push_back(make_command("go_to_layer", _u8L("Go to layer (percent)"), _u8L("Commands"), "percent")); + // The "…" is avoided in the msgid: use ASCII "..." to keep the .pot extraction simple. + out.push_back(make_command("go_to_setting", _u8L("Go to setting..."), _u8L("Commands"), "settings")); + out.push_back(make_command("go_to_tab", _u8L("Go to tab..."), _u8L("Commands"), "tab")); + out.push_back(make_command("load_project", _u8L("Load Project"), _u8L("Commands"))); + out.push_back(make_command("save_project", _u8L("Save Project"), _u8L("Commands"))); + out.push_back(make_command("save_project_as", _u8L("Save Project As"), _u8L("Commands"))); + out.push_back(make_command("open_preferences", _u8L("Preferences"), _u8L("Commands"))); + out.push_back(make_command("mode_simple", _u8L("Mode: Simple"), _u8L("Mode"))); + out.push_back(make_command("mode_advanced", _u8L("Mode: Advanced"), _u8L("Mode"))); + out.push_back(make_command("mode_expert", _u8L("Mode: Expert"), _u8L("Mode"))); + return out; +} + +// Replicates Sidebar's get_search_inputs(): the configs of every tab supporting the current +// printer technology, in the current UI mode. +std::vector settings_inputs() +{ + std::vector ret; + GUI_App& app = wxGetApp(); + if (!app.preset_bundle) + return ret; + auto print_tech = app.preset_bundle->printers.get_selected_preset().printer_technology(); + for (Tab* tab : app.tabs_list) + if (tab && tab->supports_printer_technology(print_tech)) + ret.emplace_back(Search::InputInfo{tab->get_config(), tab->type(), app.get_mode()}); + return ret; +} + } // namespace +ActionRegistry::~ActionRegistry() = default; + void ActionRegistry::init() { assert(wxThread::IsMain()); @@ -151,18 +317,12 @@ void ActionRegistry::init() // Subscribe before enumerating so a concurrent load cannot land between the initial // snapshot and callback registration. Duplicate notifications are safe: upsert is by // id and the m_actions scan in refresh_source is idempotent. - manager.subscribe_on_load_callback( - [on_source](const std::string& key) { on_source(key, ActionChange::Added); }); - manager.subscribe_on_unload_callback( - [on_source](const std::string& key) { on_source(key, ActionChange::Removed); }); + manager.subscribe_on_load_callback([on_source](const std::string& key) { on_source(key, ActionChange::Added); }); + manager.subscribe_on_unload_callback([on_source](const std::string& key) { on_source(key, ActionChange::Removed); }); manager.subscribe_on_capability_load_callback( - [on_capability](const PluginCapabilityId& capability) { - on_capability(capability, ActionChange::Added); - }); + [on_capability](const PluginCapabilityId& capability) { on_capability(capability, ActionChange::Added); }); manager.subscribe_on_capability_unload_callback( - [on_capability](const PluginCapabilityId& capability) { - on_capability(capability, ActionChange::Removed); - }); + [on_capability](const PluginCapabilityId& capability) { on_capability(capability, ActionChange::Removed); }); // enumerate current script capabilities std::unordered_map source_names; @@ -173,12 +333,18 @@ void ActionRegistry::init() for (const auto& capability : manager.get_plugin_capabilities("", PluginCapabilityType::Script)) { if (!capability) continue; - const std::string& key = capability->audit_plugin_key(); - auto it = source_names.find(key); + const std::string& key = capability->audit_plugin_key(); + auto it = source_names.find(key); const std::string& source_name = it == source_names.end() ? key : it->second; if (auto action = make_action(key, capability->name(), source_name)) upsert(std::move(action)); } + + // Built-in palette commands (Save/Load, Preferences, Mode switch, Slice/Preview, Go to layer). + // Register after plugins so the plugin ids win on any (unlikely) id collision - ids are distinct + // by prefix, so this is order-independent. + for (auto& action : native_commands()) + upsert(std::move(action)); } void ActionRegistry::refresh_source(const std::string& plugin_key, ActionChange change) @@ -198,7 +364,7 @@ void ActionRegistry::refresh_source(const std::string& plugin_key, ActionChange if (change == ActionChange::Removed) return; - PluginManager& manager = PluginManager::instance(); + PluginManager& manager = PluginManager::instance(); const std::string source_name = find_loaded_source_name(manager, plugin_key); for (const auto& capability : manager.get_plugin_capabilities(plugin_key, PluginCapabilityType::Script)) { if (!capability) @@ -208,8 +374,7 @@ void ActionRegistry::refresh_source(const std::string& plugin_key, ActionChange } } -void ActionRegistry::refresh_capability(const std::string& plugin_key, const std::string& capability, - ActionChange change) +void ActionRegistry::refresh_capability(const std::string& plugin_key, const std::string& capability, ActionChange change) { assert(wxThread::IsMain()); @@ -233,7 +398,7 @@ void ActionRegistry::upsert(std::unique_ptr action) return; seed_state(*action); - std::string id = action->id(); + std::string id = action->id(); std::shared_ptr stored = std::move(action); m_actions.insert_or_assign(std::move(id), std::move(stored)); } @@ -246,11 +411,11 @@ void ActionRegistry::remove(const std::string& id) void ActionRegistry::seed_state(AppAction& a) const { - auto favs = read_string_array("favourite_actions"); + auto favs = read_string_array("favourite_actions"); a.favourite = std::find(favs.begin(), favs.end(), a.id()) != favs.end(); nlohmann::json stats = read_section("stats", nlohmann::json::object()); - auto it = stats.find(a.id()); + auto it = stats.find(a.id()); if (it != stats.end() && it->is_object()) { a.count = it->value("count", 0); a.last = it->value("last", 0LL); @@ -269,14 +434,11 @@ const AppAction* ActionRegistry::by_id(const std::string& id) const return it == m_actions.end() ? nullptr : it->second.get(); } -AppAction* ActionRegistry::find(const std::string& id) -{ - return const_cast(by_id(id)); -} +AppAction* ActionRegistry::find(const std::string& id) { return const_cast(by_id(id)); } // ---- dispatch + write-through ---------------------------------------------- -AppActionRunResult ActionRegistry::run(const std::string& id) +AppActionRunResult ActionRegistry::run(const std::string& id, const std::string& param) { assert(wxThread::IsMain()); auto it = m_actions.find(id); @@ -286,13 +448,13 @@ AppActionRunResult ActionRegistry::run(const std::string& id) // nested event loop; a queued source refresh can erase the entry while the // keep-alive preserves the action until run returns. std::shared_ptr keep = it->second; - AppActionRunResult o = keep->run(); + AppActionRunResult o = keep->run(param); if (o.level == AppActionRunResult::Level::Busy) return o; // Bump stats (write-through). Re-read to avoid clobbering a concurrent field. nlohmann::json stats = read_section("stats", nlohmann::json::object()); - if (!stats.is_object()) // corrupt (valid-JSON, non-object) value degrades to empty + if (!stats.is_object()) // corrupt (valid-JSON, non-object) value degrades to empty stats = nlohmann::json::object(); nlohmann::json& e = stats[id]; if (!e.is_object()) @@ -300,7 +462,10 @@ AppActionRunResult ActionRegistry::run(const std::string& id) e["count"] = e.value("count", 0) + 1; e["last"] = (long long) std::time(nullptr); write_section("stats", stats); - if (AppAction* live = find(id)) { live->count = e["count"]; live->last = e["last"]; } + if (AppAction* live = find(id)) { + live->count = e["count"]; + live->last = e["last"]; + } return o; } @@ -325,8 +490,7 @@ void ActionRegistry::reorder_favourites(const std::vector& ids) std::vector next; // keep the requested order, but only ids that are actually favourites (guard a bad payload) for (const auto& id : ids) - if (std::find(cur.begin(), cur.end(), id) != cur.end() && - std::find(next.begin(), next.end(), id) == next.end()) + if (std::find(cur.begin(), cur.end(), id) != cur.end() && std::find(next.begin(), next.end(), id) == next.end()) next.push_back(id); // why: don't drop favourites the page omitted (e.g. pins with no live action hidden from the bar) for (const auto& id : cur) @@ -374,17 +538,139 @@ nlohmann::json ActionRegistry::snapshot() const return a->id() < b->id(); }); + auto action_to_json = [](const AppAction* a) { + return nlohmann::json({{"id", a->id()}, + {"title", a->title()}, + {"source", a->source_name()}, + {"group", a->group}, + {"input", a->input}, + {"shortcut", ""}}); + }; + nlohmann::json actions = nlohmann::json::array(); for (const AppAction* a : sorted) - actions.push_back({{"id", a->id()}, - {"title", a->title()}, - {"source", a->source_name()}, - {"shortcut", ""}}); + actions.push_back(action_to_json(a)); + // why: favourites is the ORDERED pin list - it must come from favourite_actions // as stored, not be re-derived from the frecency-sorted actions (that would // reorder the favourites bar). The page (js) filters out ids with no live action itself. nlohmann::json favourites(read_string_array("favourite_actions")); - return {{"actions", std::move(actions)}, {"favourites", std::move(favourites)}}; + + // Recent = the last-N launched actions by recency (only actions with a run history). + constexpr size_t kRecentLimit = 5; + std::vector recent; + for (const auto& entry : m_actions) + if (entry.second->last > 0) + recent.push_back(entry.second.get()); + std::sort(recent.begin(), recent.end(), [](const AppAction* a, const AppAction* b) { + if (a->last != b->last) + return a->last > b->last; + return a->id() < b->id(); + }); + if (recent.size() > kRecentLimit) + recent.resize(kRecentLimit); + nlohmann::json recent_json = nlohmann::json::array(); + for (const AppAction* a : recent) + recent_json.push_back(action_to_json(a)); + + return {{"actions", std::move(actions)}, {"favourites", std::move(favourites)}, {"recent", std::move(recent_json)}}; +} + +nlohmann::json ActionRegistry::settings_search(const std::string& query) +{ + assert(wxThread::IsMain()); + std::string q = boost::trim_copy(query); + // Empty query: show the recently-jumped-to settings instead of a blank list. + if (q.empty()) + return settings_recent(); + + // Use the sidebar's live searcher. It is the instance Tab registration (add_key) populates + // with each option's group/category, and it carries the current printer technology. A fresh + // OptionsSearcher has an empty groups_and_categories, so init()/append_options() drops every + // option and the search returns nothing. + Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher(); + searcher.init(settings_inputs()); + searcher.search(q, true); + auto& found = searcher.found_options(); + + constexpr size_t kLimit = 20; + const size_t n = std::min(kLimit, found.size()); + nlohmann::json out = nlohmann::json::array(); + for (size_t i = 0; i < n; ++i) { + const auto& opt = searcher.get_option(i); + // Clean plain label "category : group : label" - OptionsSearcher's own label string + // carries ImGui icon control chars + / markup (SUPPORTS_MARKUP), which render + // as garbage in the webview. Build it from the Option's localized strings instead. + std::wstring plain; + const std::wstring* prev = nullptr; + for (const std::wstring* const s : {&opt.category_local, &opt.group_local, &opt.label_local}) + if (s != nullptr && !s->empty() && (prev == nullptr || *prev != *s)) { + if (!plain.empty()) + plain += L" : "; + plain += *s; + prev = s; + } + out.push_back({{"opt_key", opt.opt_key()}, + {"type", int(opt.type)}, + {"label", boost::nowide::narrow(plain)}, + {"category", boost::nowide::narrow(opt.category)}, + {"group", boost::nowide::narrow(opt.group)}}); + } + return out; +} + +// ---- tab options (enumerate the MainFrame notebook's current pages) ---------- + +nlohmann::json ActionRegistry::tab_options() const +{ + assert(wxThread::IsMain()); + nlohmann::json out = nlohmann::json::array(); + if (!wxTheApp || wxGetApp().is_closing()) + return out; + MainFrame* mf = wxGetApp().mainframe; + if (!mf || !mf->m_tabpanel) + return out; + Notebook* notebook = mf->m_tabpanel; + for (size_t i = 0; i < notebook->GetPageCount(); ++i) { + const wxString id = notebook->GetPageName(i); + if (id.empty()) + continue; + out.push_back({{"id", id.ToStdString()}, {"title", notebook->GetPageText(i).ToStdString()}}); + } + return out; +} + +// ---- settings recents (persisted, most-recent-first, capped at 8) ----------- + +nlohmann::json ActionRegistry::settings_recent() const +{ + assert(wxThread::IsMain()); + return read_section("recent_settings", nlohmann::json::array()); +} + +void ActionRegistry::record_setting_recent( + const std::string& opt_key, int type, const std::string& label, const std::string& category, const std::string& group) +{ + assert(wxThread::IsMain()); + if (opt_key.empty()) + return; + + constexpr size_t kLimit = 8; + auto arr = read_section("recent_settings", nlohmann::json::array()); + if (!arr.is_array()) + arr = nlohmann::json::array(); + auto same = [&](const nlohmann::json& e) { + return e.is_object() && e.value("opt_key", std::string()) == opt_key && e.value("type", int(-1)) == type; + }; + + nlohmann::json next = nlohmann::json::array(); + next.push_back({{"opt_key", opt_key}, {"type", type}, {"label", label}, {"category", category}, {"group", group}}); + for (const auto& e : arr) + if (!same(e)) + next.push_back(e); + if (next.size() > kLimit) + next.erase(next.begin() + long(kLimit), next.end()); + write_section("recent_settings", next); } }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index c421297217..7b718b4c09 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -18,6 +18,9 @@ namespace Slic3r { namespace GUI { // How a source's action set changed. Drives the registry's refresh handlers. enum class ActionChange { Added, Removed }; +// What kind of runnable thing an action is. Drives the palette section + dispatch. +enum class AppActionKind { Plugin, Command }; + // Result of running an AppAction, in the action layer's own vocabulary. Concrete // actions translate their runner-specific result into this generic shape. struct AppActionRunResult @@ -56,8 +59,18 @@ struct AppAction int count = 0; long long last = 0; // epoch seconds + // Speed Dial presentation: Plugin keeps group empty (the UI falls back to the + // source name); Command sets a section label (e.g. "Commands", "Mode"). + AppActionKind kind = AppActionKind::Plugin; + std::string group; + // Second-phase input descriptor for the palette: "settings" (jump to a config option) + // or "percent" (jump to layer by a 0-100 value). Empty = run immediately on activation. + std::string input; + virtual ~AppAction() = default; - virtual AppActionRunResult run() const = 0; // re-resolves + runs (UI thread) + // Re-resolves + runs (UI thread). `param` carries an optional per-run argument for + // commands (e.g. a layer percentage); plugins ignore it. + virtual AppActionRunResult run(const std::string& param = {}) const = 0; protected: // The definition is constructor-set and immutable. Refreshes replace an action @@ -92,6 +105,8 @@ private: class ActionRegistry { public: + ~ActionRegistry(); + // Subscribes to the plugin loader and enumerates its current actions. Call once // on the UI thread after the plugin system is up; wires the initial list and live // updates together. @@ -108,7 +123,7 @@ public: const AppAction* by_id(const std::string& id) const; // Dispatch + write-through (registry is the only thing that touches AppConfig). - AppActionRunResult run(const std::string& id); // runs + bumps stats + AppActionRunResult run(const std::string& id, const std::string& param = {}); // runs + bumps stats void set_favourite(const std::string& id, bool on); void reorder_favourites(const std::vector& ids); // persist a new bar order @@ -116,9 +131,33 @@ public: bool should_ask(const std::string& id) const; void suppress_ask(const std::string& id); - // Flat, frecency-sorted snapshot for the webview: {actions:[...], favourites:[...]}. + // Flat, frecency-sorted snapshot for the webview: + // {actions:[...], favourites:[...], recent:[...]} (recent = last-N launched by recency). nlohmann::json snapshot() const; + // "Go to setting..." Speed Dial helper: query the current print/filament/printer + // config options via the sidebar's live OptionsSearcher (the instance Tab registration + // populates with group/category, and which carries the current printer technology) and + // return the top matches as JSON. The searcher is re-seeded from the current configs + + // user mode on every call so the result always reflects what the sidebar's own search + // would show. An empty/whitespace query returns the recent settings list (below), and the + // page shows a "type to search" hint when there are no recents. + nlohmann::json settings_search(const std::string& query); + + // Recently-jumped-to settings, persisted (most-recent-first, capped at 8). Returns the + // stored JSON array [{opt_key,type,label,category,group},...]; record_setting_recent() + // prepends an entry (deduped by opt_key+type) and re-persists. + nlohmann::json settings_recent() const; + void record_setting_recent(const std::string& opt_key, int type, const std::string& label, + const std::string& category, const std::string& group); + + // "Go to tab..." Speed Dial helper: enumerate the MainFrame notebook's current pages + // as [{id,title},...]. Live by construction - built-in tabs (Home/Prepare/Preview/Device/ + // Project/Calibration) and plugin tabs (plugin..) are all Notebook pages, so a + // page appears/disappears with the notebook. Plugin tabs hidden in the overflow menu (many + // plugins) aren't separate pages and are not listed. Call on the UI thread; null-safe. + nlohmann::json tab_options() const; + private: void seed_state(AppAction& a) const; // favourite/stats from config AppAction* find(const std::string& id); diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 7db7e01e9c..f218a3f564 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1039,7 +1039,6 @@ wxDEFINE_EVENT(EVT_GLCANVAS_ORIENT_PARTPLATE, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_SELECT_CURR_PLATE_ALL, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_SELECT_ALL, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_QUESTION_MARK, SimpleEvent); -wxDEFINE_EVENT(EVT_GLCANVAS_OPEN_SPEED_DIAL, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_INCREASE_INSTANCES, Event); wxDEFINE_EVENT(EVT_GLCANVAS_INSTANCE_MOVED, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_INSTANCE_ROTATED, SimpleEvent); @@ -3502,11 +3501,6 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) break; } case '?': { post_event(SimpleEvent(EVT_GLCANVAS_QUESTION_MARK)); break; } - case ' ': { - if (m_canvas_type == ECanvasType::CanvasView3D) - post_event(SimpleEvent(EVT_GLCANVAS_OPEN_SPEED_DIAL)); - break; - } case 'A': case 'a': { diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 84dbd5d652..4899a94e51 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -166,7 +166,6 @@ wxDECLARE_EVENT(EVT_GLCANVAS_ORIENT_PARTPLATE, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_SELECT_CURR_PLATE_ALL, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_SELECT_ALL, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_QUESTION_MARK, SimpleEvent); -wxDECLARE_EVENT(EVT_GLCANVAS_OPEN_SPEED_DIAL, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_INCREASE_INSTANCES, Event); // data: +1 => increase, -1 => decrease wxDECLARE_EVENT(EVT_GLCANVAS_INSTANCE_MOVED, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_FORCE_UPDATE, SimpleEvent); diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index ed513c425f..82e499ac55 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -197,6 +197,8 @@ void KBShortcutsDialog::fill_shortcuts() // Switch table page { ctrl + L("Tab"), L("Switch table page")}, + // Open speed dial + { ctrl + "K", L("Open speed dial") }, //DEL #ifdef __APPLE__ {"fn+⌫", L("Delete Selected")}, @@ -267,8 +269,6 @@ void KBShortcutsDialog::fill_shortcuts() { "O", L("Zoom out") }, { "V", L("Toggle printable for object/part") }, { L_CONTEXT("Tab", "Keyboard Shortcut"), L("Switch between Prepare/Preview") }, - { L_CONTEXT("Space", "Keyboard Shortcut"), L("Open actions speed dial") }, - }; m_full_shortcuts.push_back({ { _L("Plater"), "" }, plater_shortcuts }); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 675bc8da27..2b4c8754c8 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -701,6 +701,8 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ } return;} #endif + // Orca: open the speed dial from any page. CmdDown() = Ctrl on Win/Linux, Cmd on macOS. + if (evt.CmdDown() && evt.GetKeyCode() == 'K') { wxGetApp().open_speed_dial(); return; } if (evt.CmdDown() && evt.GetKeyCode() == 'R') { if (m_slice_enable) { wxGetApp().plater()->update(true, true); wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_SLICE_PLATE)); this->m_tabpanel->SelectPageByName(TAB_ID_PREVIEW); } return; } if (evt.CmdDown() && evt.ShiftDown() && evt.GetKeyCode() == 'G') { m_plater->apply_background_progress(); @@ -3346,6 +3348,11 @@ void MainFrame::init_menubar_as_editor() wxGetApp().open_preferences(); }, "", nullptr, []() { return true; }, this, 1); + parent_menu->AppendSeparator(); + append_menu_item( + parent_menu, wxID_ANY, _L("Open speed dial...") + sep + ctrl_t + "K", "", + [](wxCommandEvent &) { wxGetApp().open_speed_dial(); }, + "", nullptr, []() { return true; }, this); //parent_menu->Insert(1, preference_item); #endif // Help menu @@ -3370,7 +3377,13 @@ void MainFrame::init_menubar_as_editor() auto top_menu = m_topbar->GetTopMenu(); top_menu->AppendSeparator(); - append_menu_item( + append_menu_item( + top_menu, wxID_ANY, _L("Open speed dial...") + "\t" + ctrl + "K", "", + [](wxCommandEvent &) { wxGetApp().open_speed_dial(); }, + "", nullptr, []() { return true; }, this); + top_menu->AppendSeparator(); + + append_menu_item( top_menu, wxID_ANY, _L("Preset Bundle") + "\t", "", [this](wxCommandEvent &) { // Orca: Use GUI_App::open_preferences instead of direct call so windows associations are updated on exit @@ -3508,6 +3521,10 @@ void MainFrame::init_menubar_as_editor() #else // On Mac, the Apple menu ignores non-standard custom items, so add Preset Bundle to the File menu fileMenu->AppendSeparator(); + append_menu_item( + fileMenu, wxID_ANY, _L("Open speed dial...") + sep + ctrl_t + "K", "", + [](wxCommandEvent&) { wxGetApp().open_speed_dial(); }, + "", nullptr, []() { return true; }, this); append_menu_item( fileMenu, wxID_ANY, _L("Preset Bundle"), "", [this](wxCommandEvent&) { diff --git a/src/slic3r/GUI/Notebook.cpp b/src/slic3r/GUI/Notebook.cpp index 67c1831e4d..5d10e230e9 100644 --- a/src/slic3r/GUI/Notebook.cpp +++ b/src/slic3r/GUI/Notebook.cpp @@ -10,6 +10,7 @@ #include "Widgets/Label.hpp" #include +#include #include wxDEFINE_EVENT(wxCUSTOMEVT_NOTEBOOK_SEL_CHANGED, wxCommandEvent); @@ -158,12 +159,22 @@ void ButtonsListCtrl::SetSelection(int sel) bool ButtonsListCtrl::InsertPage(size_t n, const wxString &text, bool bSelect /* = false*/, const std::string &bmp_name /* = ""*/, const wxBitmap &bmp /* = wxNullBitmap */) { - Button * btn = new Button(this, text.empty() ? text : " " + text, bmp_name, wxNO_BORDER); + Button * btn = new Button(this, text, bmp_name, wxNO_BORDER); btn->SetCornerRadius(0); if (bmp_name.empty() && bmp.IsOk()) btn->SetIcon(bmp); + // The label no longer carries a leading space, so widen the icon<->text gap to keep the + // original spacing between a tab's icon and its caption. + { + wxClientDC dc(btn); + dc.SetFont(btn->GetFont()); + int space_w = 0; + dc.GetTextExtent(" ", &space_w, nullptr); + btn->SetIconSpacing(5 + space_w); + } + int em = em_unit(this); //BBS set size for button btn->SetMinSize({(text.empty() ? 40 : 136) * em / 10, 36 * em / 10}); @@ -245,7 +256,7 @@ void ButtonsListCtrl::SetCompact(size_t n, bool compact) int em = em_unit(this); Button* btn = m_pageButtons[n]; btn->SetMinSize({(compact ? 40 : 136) * em / 10, 36 * em / 10}); - btn->SetLabel(compact ? "" : (" " + m_pageLabels[n])); + btn->SetLabel(compact ? "" : m_pageLabels[n]); } wxString ButtonsListCtrl::GetPageText(size_t n) const diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 90206a438c..0537edbc6f 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -7567,10 +7567,6 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) view3D_canvas->Bind(EVT_GLCANVAS_SELECT_ALL, [this](SimpleEvent&) { this->q->select_all(); }); view3D_canvas->Bind(EVT_GLCANVAS_QUESTION_MARK, [](SimpleEvent&) { wxGetApp().keyboard_shortcuts(); }); - view3D_canvas->Bind(EVT_GLCANVAS_OPEN_SPEED_DIAL, [this](SimpleEvent&) { - if (this->q->is_view3D_shown()) - wxGetApp().open_speed_dial(); - }); view3D_canvas->Bind(EVT_GLCANVAS_INCREASE_INSTANCES, [this](Event& evt) { if (evt.data == 1) this->q->increase_instances(); else if (this->can_decrease_instances()) this->q->decrease_instances(); }); view3D_canvas->Bind(EVT_GLCANVAS_INSTANCE_MOVED, [this](SimpleEvent&) { update(); }); diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index 09140b9868..8a0aca5445 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -9,20 +9,26 @@ #include "Plater.hpp" #include "Widgets/WebViewHostDialog.hpp" +#include + #include #include #include #include +#ifdef __linux__ +#include +#endif + namespace Slic3r { namespace GUI { namespace { // ADJUST WIDTH HERE (DIP px). Fixed dialog width; was 360, now 1.5x. Height is not set here - // the dialog auto-resizes to the page content (see resize_to_content + the list max-height in style.css). -constexpr int kPopupWidth = 540; -constexpr int kPopupMinHeight = 60; // just above the bare search-bar height, so the dialog hugs content +constexpr int kPopupWidth = 540; +constexpr int kPopupMinHeight = 60; // just above the bare search-bar height, so the dialog hugs content constexpr int kPopupMaxHeight = 282; int json_int_or(const nlohmann::json& j, const char* key, int fallback) @@ -33,23 +39,49 @@ int json_int_or(const nlohmann::json& j, const char* key, int fallback) wxColour bg_color() { return wxGetApp().get_window_default_clr(); } +// Give the WebKitGTK widget itself input focus, not its GtkScrolledWindow container. +// (browser()->SetFocus() grabs focus on the container and doesn't reach the web content, +// so typing only works after the user clicks.) On Linux the native backend is the +// WebKitWebView widget; grab focus there directly. Elsewhere SetFocus() is correct. +void focus_webview(wxWebView* browser, bool page_ready) +{ + if (!browser) + return; +#ifdef __linux__ + if (void* nb = browser->GetNativeBackend()) + gtk_widget_grab_focus((GtkWidget*) nb); +#else + browser->SetFocus(); +#endif + if (page_ready) + browser->RunScript("focusInput();"); } +} // namespace + SpeedDialWebDialog::SpeedDialWebDialog(wxWindow* parent) - : WebViewHostDialog(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, - wxBORDER_NONE | wxFRAME_NO_TASKBAR) + : WebViewHostDialog(parent, + wxID_ANY, + wxEmptyString, + wxDefaultPosition, + wxDefaultSize, + wxBORDER_NONE | wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT) { SetBackgroundColour(bg_color()); Bind(wxEVT_ACTIVATE, [this](wxActivateEvent& event) { - if (!event.GetActive() && IsShown()) + // Focus the WebKit widget exactly when the WM makes the popup the active window + // (modeless focus is granted asynchronously, so a focus request made right after + // Show() is dropped). Also re-corrects focus on every re-open. + if (event.GetActive() && IsShown()) + focus_webview(browser(), m_page_ready); + else if (!event.GetActive() && IsShown()) Hide(); event.Skip(); }); - if (!create_webview("web/dialog/SpeedDial/index.html", wxEmptyString, - wxSize(kPopupWidth, kPopupMaxHeight), wxSize(kPopupWidth, kPopupMinHeight))) { + if (!create_webview("web/dialog/SpeedDial/index.html", wxEmptyString, wxSize(kPopupWidth, kPopupMaxHeight), + wxSize(kPopupWidth, kPopupMinHeight))) { auto* sizer = new wxBoxSizer(wxVERTICAL); - sizer->Add(new wxStaticText(this, wxID_ANY, wxS("wxWebView unavailable")), - wxSizerFlags().Border(wxALL, 20)); + sizer->Add(new wxStaticText(this, wxID_ANY, wxS("wxWebView unavailable")), wxSizerFlags().Border(wxALL, 20)); SetSizer(sizer); SetClientSize(FromDIP(wxSize(kPopupWidth, kPopupMinHeight))); } @@ -61,8 +93,7 @@ void SpeedDialWebDialog::request_show() { if (IsShown()) { Raise(); - if (browser()) - browser()->SetFocus(); + focus_webview(browser(), m_page_ready); return; } @@ -70,8 +101,9 @@ void SpeedDialWebDialog::request_show() Raise(); if (m_page_ready) send_actions(); - if (browser()) - browser()->SetFocus(); + // Grab focus now and again on wxEVT_ACTIVATE; grabbing directly on the WebKit widget is + // what makes typing reach the search field immediately on open. + focus_webview(browser(), m_page_ready); } void SpeedDialWebDialog::on_script_message(const nlohmann::json& payload) @@ -95,8 +127,7 @@ void SpeedDialWebDialog::handle_web_command(const nlohmann::json& payload) if (command == "request_actions") { m_page_ready = true; send_actions(); - } - else if (command == "toggle_favourite") + } else if (command == "toggle_favourite") wxGetApp().action_registry().set_favourite(payload.value("id", ""), payload.value("fav", false)); else if (command == "reorder_favourites") { std::vector ids; @@ -105,13 +136,61 @@ void SpeedDialWebDialog::handle_web_command(const nlohmann::json& payload) if (id.is_string()) ids.push_back(id.get()); wxGetApp().action_registry().reorder_favourites(ids); - } - else if (command == "run_action") - run_action(payload.value("id", ""), payload.value("title", "")); - else if (command == "resize") + } else if (command == "run_action") + run_action(payload.value("id", ""), payload.value("title", ""), payload.value("param", "")); + else if (command == "go_to_setting") { + // "Go to setting..." second phase: the page hands back the option it matched. + const std::string opt_key = payload.value("opt_key", ""); + if (!opt_key.empty()) { + const int type = json_int_or(payload, "type", int(Preset::TYPE_INVALID)); + const std::string label = payload.value("label", ""); + const std::string group = payload.value("group", ""); + const std::string cat = payload.value("category", ""); + // Track it in the palette's recent-settings list before jumping (persisted). + wxGetApp().action_registry().record_setting_recent(opt_key, type, label, cat, group); + Hide(); + wxGetApp().sidebar().jump_to_option(opt_key, Preset::Type(type), from_u8(cat).ToStdWstring()); + } + } else if (command == "search_settings") + search_settings(payload.value("q", "")); + else if (command == "search_tabs") + search_tabs(); + else if (command == "go_to_tab") { + // "Go to tab..." second phase: the page hands back the tab id it matched. + const std::string tab_id = payload.value("id", ""); + if (!tab_id.empty()) { + Hide(); + if (wxGetApp().mainframe) + wxGetApp().mainframe->select_tab(from_u8(tab_id)); + } + } else if (command == "resize") resize_to_content(json_int_or(payload, "height", 0)); } +void SpeedDialWebDialog::search_tabs() +{ + // Round-trip is async because the webview delivers script messages synchronously on the + // GTK/macOS stack; defer the (cheap) enumeration and push the result back to the page. + wxGetApp().CallAfter([this, alive = m_alive]() { + if (!alive->load(std::memory_order_acquire)) + return; + auto tabs = wxGetApp().action_registry().tab_options(); + call_web_handler({{"command", "tab_results"}, {"tabs", std::move(tabs)}}); + }); +} + +void SpeedDialWebDialog::search_settings(const std::string& query) +{ + // Round-trip is async because the webview delivers script messages synchronously on the + // GTK/macOS stack; defer the (cheap) search and push the result back to the page. + wxGetApp().CallAfter([this, alive = m_alive, query]() { + if (!alive->load(std::memory_order_acquire)) + return; + auto results = wxGetApp().action_registry().settings_search(query); + call_web_handler({{"command", "settings_results"}, {"results", std::move(results)}}); + }); +} + void SpeedDialWebDialog::resize_to_content(int height) { if (height <= 0) @@ -127,14 +206,15 @@ void SpeedDialWebDialog::resize_to_content(int height) Layout(); } -void SpeedDialWebDialog::run_action(const std::string& id, const std::string& title) +void SpeedDialWebDialog::run_action(const std::string& id, const std::string& title, const std::string& param) { ActionRegistry& reg = wxGetApp().action_registry(); - const AppAction* a = reg.by_id(id); + const AppAction* a = reg.by_id(id); if (!a) return; - const bool ask = reg.should_ask(id); + // Only plugin actions get the "Run plugin?" confirm. Built-in commands act immediately. + const bool ask = a->kind == AppActionKind::Plugin && reg.should_ask(id); const std::string atitle = a->title(); if (IsModal()) EndModal(wxID_CANCEL); @@ -143,8 +223,7 @@ void SpeedDialWebDialog::run_action(const std::string& id, const std::string& ti if (ask) { const wxString label = title.empty() ? from_u8(atitle) : from_u8(title); - RichMessageDialog dlg(wxGetApp().mainframe, wxString::Format(_L("Run \"%s\"?"), label), - _L("Run plugin"), wxOK | wxCANCEL); + RichMessageDialog dlg(wxGetApp().mainframe, wxString::Format(_L("Run \"%s\"?"), label), _L("Run plugin"), wxOK | wxCANCEL); dlg.ShowCheckBox(_L("Don't ask again for this action")); if (dlg.ShowModal() != wxID_OK) return; @@ -152,18 +231,21 @@ void SpeedDialWebDialog::run_action(const std::string& id, const std::string& ti wxGetApp().action_registry().suppress_ask(id); } - wxGetApp().CallAfter([id] { + wxGetApp().CallAfter([id, param] { if (wxGetApp().is_closing()) return; - AppActionRunResult result = wxGetApp().action_registry().run(id); + AppActionRunResult result = wxGetApp().action_registry().run(id, param); if (result.level == AppActionRunResult::Level::Busy) return; if (!result.message.IsEmpty() && wxGetApp().plater()) - wxGetApp().plater()->get_notification_manager()->push_notification( - NotificationType::CustomNotification, - result.level == AppActionRunResult::Level::Error ? NotificationManager::NotificationLevel::ErrorNotificationLevel : - NotificationManager::NotificationLevel::RegularNotificationLevel, - into_u8(result.message)); + wxGetApp() + .plater() + ->get_notification_manager() + ->push_notification(NotificationType::CustomNotification, + result.level == AppActionRunResult::Level::Error ? + NotificationManager::NotificationLevel::ErrorNotificationLevel : + NotificationManager::NotificationLevel::RegularNotificationLevel, + into_u8(result.message)); }); } @@ -172,7 +254,8 @@ void SpeedDialWebDialog::send_actions() nlohmann::json snap = wxGetApp().action_registry().snapshot(); call_web_handler({{"command", "list_actions"}, {"actions", std::move(snap["actions"])}, - {"favourites", std::move(snap["favourites"])}}); + {"favourites", std::move(snap["favourites"])}, + {"recent", std::move(snap["recent"])}}); } -}} +}} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/SpeedDialDialog.hpp b/src/slic3r/GUI/SpeedDialDialog.hpp index 52ee05e502..74e806dd85 100644 --- a/src/slic3r/GUI/SpeedDialDialog.hpp +++ b/src/slic3r/GUI/SpeedDialDialog.hpp @@ -20,8 +20,10 @@ private: void on_script_message(const nlohmann::json& payload) override; void handle_web_command(const nlohmann::json& payload); void resize_to_content(int height); - void run_action(const std::string& id, const std::string& title); + void run_action(const std::string& id, const std::string& title, const std::string& param = ""); void send_actions(); + void search_settings(const std::string& query); + void search_tabs(); bool m_page_ready{false}; // Guards the CallAfter in on_script_message across dialog destruction, same as diff --git a/src/slic3r/GUI/Widgets/Button.cpp b/src/slic3r/GUI/Widgets/Button.cpp index 5a5bd89403..e25956e3d5 100644 --- a/src/slic3r/GUI/Widgets/Button.cpp +++ b/src/slic3r/GUI/Widgets/Button.cpp @@ -25,36 +25,29 @@ END_EVENT_TABLE() * calling Refresh()/Update(). */ -Button::Button() - : paddingSize(10, 8) +Button::Button() : paddingSize(10, 8) { - background_color = StateColor( - std::make_pair(0xF0F0F1, (int) StateColor::Disabled), - std::make_pair(0x52c7b8, (int) StateColor::Hovered | StateColor::Checked), - std::make_pair(0x009688, (int) StateColor::Checked), - std::make_pair(*wxLIGHT_GREY, (int) StateColor::Hovered), - std::make_pair(*wxWHITE, (int) StateColor::Normal)); - text_color = StateColor( - std::make_pair(*wxLIGHT_GREY, (int) StateColor::Disabled), - std::make_pair(*wxBLACK, (int) StateColor::Normal)); + background_color = StateColor(std::make_pair(0xF0F0F1, (int) StateColor::Disabled), + std::make_pair(0x52c7b8, (int) StateColor::Hovered | StateColor::Checked), + std::make_pair(0x009688, (int) StateColor::Checked), + std::make_pair(*wxLIGHT_GREY, (int) StateColor::Hovered), + std::make_pair(*wxWHITE, (int) StateColor::Normal)); + text_color = StateColor(std::make_pair(*wxLIGHT_GREY, (int) StateColor::Disabled), std::make_pair(*wxBLACK, (int) StateColor::Normal)); } -Button::Button(wxWindow* parent, wxString text, wxString icon, long style, int iconSize, wxWindowID btn_id) - : Button() -{ - Create(parent, text, icon, style, iconSize, btn_id); -} +Button::Button(wxWindow* parent, wxString text, wxString icon, long style, int iconSize, wxWindowID btn_id) : Button() +{ Create(parent, text, icon, style, iconSize, btn_id); } bool Button::Create(wxWindow* parent, wxString text, wxString icon, long style, int iconSize, wxWindowID btn_id) { StaticBox::Create(parent, btn_id, wxDefaultPosition, wxDefaultSize, style); state_handler.attach(std::vector{&text_color}); state_handler.update_binds(); - //BBS set default font + // BBS set default font SetFont(Label::Body_14); wxWindow::SetLabel(text); if (!icon.IsEmpty()) { - //BBS set button icon default size to 20 + // BBS set button icon default size to 20 this->active_icon = ScalableBitmap(this, icon.ToStdString(), iconSize > 0 ? iconSize : 20); } messureSize(); @@ -82,14 +75,12 @@ void Button::SetIcon(const wxString& icon) { auto tmpBitmap = ScalableBitmap(this, icon.ToStdString(), this->active_icon.px_cnt()); if (!icon.IsEmpty()) { - //BBS set button icon default size to 20 + // BBS set button icon default size to 20 if (!tmpBitmap.bmp().IsSameAs(this->active_icon.bmp())) { this->active_icon = tmpBitmap; Refresh(); } - } - else - { + } else { this->active_icon = ScalableBitmap(); Refresh(); } @@ -97,7 +88,7 @@ void Button::SetIcon(const wxString& icon) void Button::SetIcon(const wxBitmap& icon) { - this->active_icon = ScalableBitmap(); + this->active_icon = ScalableBitmap(); this->active_icon.bmp() = icon; messureSize(); Refresh(); @@ -121,6 +112,13 @@ void Button::SetPaddingSize(const wxSize& size) messureSize(); } +void Button::SetIconSpacing(int spacing) +{ + m_icon_spacing = spacing; + messureSize(); + Refresh(); +} + void Button::SetTextColor(StateColor const& color) { text_color = color; @@ -128,7 +126,7 @@ void Button::SetTextColor(StateColor const& color) Refresh(); } -void Button::SetTextColorNormal(wxColor const &color) +void Button::SetTextColorNormal(wxColor const& color) { text_color.setColorForStates(color, 0); Refresh(); @@ -145,22 +143,22 @@ bool Button::Enable(bool enable) return result; } -void Button::SetCanFocus(bool canFocus) { +void Button::SetCanFocus(bool canFocus) +{ StaticBox::SetCanFocus(canFocus); this->canFocus = canFocus; } void Button::SetValue(bool state) { - if (GetValue() == state) return; + if (GetValue() == state) + return; state_handler.set_state(state ? StateHandler::Checked : 0, StateHandler::Checked); } bool Button::GetValue() const { return state_handler.states() & StateHandler::Checked; } -void Button::SetCenter(bool isCenter) -{ - this->isCenter = isCenter; } +void Button::SetCenter(bool isCenter) { this->isCenter = isCenter; } void Button::SetVertical(bool vertical) { @@ -177,38 +175,33 @@ wxString btn_disabled[10] = {"#DFDFDF", "#DFDFDF", "#DFDFDF", "#DFDFDF", "#DFDFD void Button::SetStyle(const ButtonStyle style, const ButtonType type) { - if (type == ButtonType::Compact) { - this->SetPaddingSize(FromDIP(wxSize(8,3))); + if (type == ButtonType::Compact) { + this->SetPaddingSize(FromDIP(wxSize(8, 3))); this->SetCornerRadius(this->FromDIP(8)); this->SetFont(Label::Body_10); - } - else if (type == ButtonType::Window) { - this->SetSize(FromDIP(wxSize(58,24))); - this->SetMinSize(FromDIP(wxSize(58,24))); + } else if (type == ButtonType::Window) { + this->SetSize(FromDIP(wxSize(58, 24))); + this->SetMinSize(FromDIP(wxSize(58, 24))); this->SetCornerRadius(this->FromDIP(12)); this->SetFont(Label::Body_12); - } - else if (type == ButtonType::Choice) { - this->SetMinSize(FromDIP(wxSize(100,32))); - this->SetPaddingSize(FromDIP(wxSize(12,8))); + } else if (type == ButtonType::Choice) { + this->SetMinSize(FromDIP(wxSize(100, 32))); + this->SetPaddingSize(FromDIP(wxSize(12, 8))); this->SetCornerRadius(this->FromDIP(4)); this->SetFont(Label::Body_14); - } - else if (type == ButtonType::Parameter) { - this->SetMinSize(FromDIP(wxSize(120,26))); - this->SetSize(FromDIP(wxSize(120,26))); + } else if (type == ButtonType::Parameter) { + this->SetMinSize(FromDIP(wxSize(120, 26))); + this->SetSize(FromDIP(wxSize(120, 26))); this->SetCornerRadius(this->FromDIP(4)); this->SetFont(Label::Body_14); - } - else if (type == ButtonType::Icon) { - this->SetPaddingSize(FromDIP(wxSize(5,5))); - this->SetMinSize(FromDIP(wxSize(26,26))); - this->SetSize(FromDIP(wxSize(26,26))); + } else if (type == ButtonType::Icon) { + this->SetPaddingSize(FromDIP(wxSize(5, 5))); + this->SetMinSize(FromDIP(wxSize(26, 26))); + this->SetSize(FromDIP(wxSize(26, 26))); this->SetCornerRadius(this->FromDIP(4)); - } - else if (type == ButtonType::Expanded) { - this->SetMinSize(FromDIP(wxSize(-1,32))); - this->SetPaddingSize(FromDIP(wxSize(12,8))); + } else if (type == ButtonType::Expanded) { + this->SetMinSize(FromDIP(wxSize(-1, 32))); + this->SetPaddingSize(FromDIP(wxSize(12, 8))); this->SetCornerRadius(this->FromDIP(4)); this->SetFont(Label::Body_14); } @@ -217,39 +210,33 @@ void Button::SetStyle(const ButtonStyle style, const ButtonType type) bool is_dark = StateColor::darkModeColorFor("#FFFFFF") != wxColour("#FFFFFF"); - auto clr_arr = style == ButtonStyle::Regular ? btn_regular : - style == ButtonStyle::Confirm ? btn_confirm : - style == ButtonStyle::Alert ? btn_alert : + auto clr_arr = style == ButtonStyle::Regular ? btn_regular : + style == ButtonStyle::Confirm ? btn_confirm : + style == ButtonStyle::Alert ? btn_alert : style == ButtonStyle::Disabled ? btn_disabled : - btn_regular ; + btn_regular; - auto bg_color = StateColor( - std::pair(wxColour(clr_arr[0]), (int)StateColor::Disabled), - std::pair(wxColour(clr_arr[1]), (int)StateColor::Pressed), - std::pair(wxColour(clr_arr[2]), (int)StateColor::Hovered), - std::pair(wxColour(clr_arr[3]), (int)StateColor::Normal), - std::pair(wxColour(clr_arr[4]), (int)StateColor::Enabled) - ); + auto bg_color = StateColor(std::pair(wxColour(clr_arr[0]), (int) StateColor::Disabled), + std::pair(wxColour(clr_arr[1]), (int) StateColor::Pressed), + std::pair(wxColour(clr_arr[2]), (int) StateColor::Hovered), + std::pair(wxColour(clr_arr[3]), (int) StateColor::Normal), + std::pair(wxColour(clr_arr[4]), (int) StateColor::Enabled)); bg_color.setTakeFocusedAsHovered(false); this->SetBackgroundColor(bg_color); wxColour focus_clr = clr_arr[is_dark ? 8 : 9]; - auto border_color = StateColor( - std::pair(wxColour(clr_arr[0]), (int)StateColor::Disabled), - std::pair(wxColour(clr_arr[2]), (int)(StateColor::Hovered | ~StateColor::Focused)), - std::pair(wxColour(focus_clr ), (int)StateColor::Focused), - std::pair(wxColour(clr_arr[3]), (int)StateColor::Normal) - ); + auto border_color = StateColor(std::pair(wxColour(clr_arr[0]), (int) StateColor::Disabled), + std::pair(wxColour(clr_arr[2]), (int) (StateColor::Hovered | ~StateColor::Focused)), + std::pair(wxColour(focus_clr), (int) StateColor::Focused), + std::pair(wxColour(clr_arr[3]), (int) StateColor::Normal)); border_color.setTakeFocusedAsHovered(false); this->SetBorderColor(border_color); - this->SetTextColor(StateColor( - std::pair(wxColour(clr_arr[5]), (int)StateColor::Disabled), - std::pair(wxColour(clr_arr[7]), (int)StateColor::Hovered), - std::pair(wxColour(clr_arr[6]), (int)StateColor::Normal) - )); + this->SetTextColor(StateColor(std::pair(wxColour(clr_arr[5]), (int) StateColor::Disabled), + std::pair(wxColour(clr_arr[7]), (int) StateColor::Hovered), + std::pair(wxColour(clr_arr[6]), (int) StateColor::Normal))); m_has_style = true; - m_style = style; - m_type = type; + m_style = style; + m_type = type; } void Button::Rescale() @@ -260,7 +247,7 @@ void Button::Rescale() messureSize(); - if(m_has_style) + if (m_has_style) SetStyle(m_style, m_type); Refresh(); @@ -281,7 +268,7 @@ void Button::paintEvent(wxPaintEvent& evt) void Button::render(wxDC& dc) { StaticBox::render(dc); - int states = state_handler.states(); + int states = state_handler.states(); wxSize size = GetSize(); dc.SetBrush(*wxTRANSPARENT_BRUSH); // calc content size @@ -289,22 +276,22 @@ void Button::render(wxDC& dc) wxSize textSize = this->textSize.GetSize(); const ScalableBitmap& icon = active_icon; - wxSize padding = this->paddingSize; - int spacing = 5; + wxSize padding = this->paddingSize; + int spacing = m_icon_spacing; // Wrap text auto text = GetLabel(); if (vertical && textSize.x + padding.x * 2 > size.x) { Label::split_lines(dc, size.x - padding.x * 2, text, text, 2); textSize = dc.GetMultiLineTextExtent(text); if (padding.x * 2 + textSize.x > size.x) { - text = wxControl::Ellipsize(text, dc, wxELLIPSIZE_END, size.x - padding.x * 2); + text = wxControl::Ellipsize(text, dc, wxELLIPSIZE_END, size.x - padding.x * 2); textSize = dc.GetMultiLineTextExtent(text); } } auto szContent = textSize; if (icon.bmp().IsOk()) { if (szContent.y > 0) { - //BBS norrow size between text and icon + // BBS norrow size between text and icon if (vertical) szContent.y += spacing; else @@ -313,10 +300,12 @@ void Button::render(wxDC& dc) szIcon = icon.GetBmpSize(); if (vertical) { szContent.y += szIcon.y; - if (szIcon.x > szContent.x) szContent.x = szIcon.x; + if (szIcon.x > szContent.x) + szContent.x = szIcon.x; } else { szContent.x += szIcon.x; - if (szIcon.y > szContent.y) szContent.y = szIcon.y; + if (szIcon.y > szContent.y) + szContent.y = szIcon.y; } if (szContent.x > size.x) { int d = std::min(padding.x, (szContent.x - size.x) / 2); @@ -325,10 +314,11 @@ void Button::render(wxDC& dc) } } // move to center - wxRect rcContent = { {0, 0}, size }; + wxRect rcContent = {{0, 0}, size}; if (isCenter) { wxSize offset = (size - szContent) / 2; - if (offset.x < 0) offset.x = 0; + if (offset.x < 0) + offset.x = 0; rcContent.Deflate(offset.x, offset.y); } // start draw @@ -339,7 +329,7 @@ void Button::render(wxDC& dc) else pt.y += (rcContent.height - szIcon.y) / 2; dc.DrawBitmap(icon.bmp(), pt); - //BBS norrow size between text and icon + // BBS norrow size between text and icon if (vertical) { pt.y += szIcon.y + spacing; pt.x = rcContent.x; @@ -373,19 +363,21 @@ void Button::messureSize() wxSize szContent = textSize.GetSize(); if (this->active_icon.bmp().IsOk()) { if (szContent.y > 0) { - //BBS norrow size between text and icon + // BBS narrow size between text and icon if (vertical) - szContent.y += 5; + szContent.y += m_icon_spacing; else - szContent.x += 5; + szContent.x += m_icon_spacing; } wxSize szIcon = this->active_icon.GetBmpSize(); if (vertical) { szContent.y += szIcon.y; - if (szIcon.x > szContent.x) szContent.x = szIcon.x; + if (szIcon.x > szContent.x) + szContent.x = szIcon.x; } else { szContent.x += szIcon.x; - if (szIcon.y > szContent.y) szContent.y = szIcon.y; + if (szIcon.y > szContent.y) + szContent.y = szIcon.y; } } wxSize size = szContent + paddingSize * 2; @@ -429,13 +421,13 @@ void Button::mouseReleased(wxMouseEvent& event) } } -void Button::mouseCaptureLost(wxMouseCaptureLostEvent &event) +void Button::mouseCaptureLost(wxMouseCaptureLostEvent& event) { wxMouseEvent evt; mouseReleased(evt); } -void Button::keyDownUp(wxKeyEvent &event) +void Button::keyDownUp(wxKeyEvent& event) { if (event.GetKeyCode() == WXK_SPACE || event.GetKeyCode() == WXK_RETURN) { wxMouseEvent evt(event.GetEventType() == wxEVT_KEY_UP ? wxEVT_LEFT_UP : wxEVT_LEFT_DOWN); @@ -444,8 +436,8 @@ void Button::keyDownUp(wxKeyEvent &event) return; } if (event.GetEventType() == wxEVT_KEY_DOWN && - (event.GetKeyCode() == WXK_TAB || event.GetKeyCode() == WXK_LEFT || event.GetKeyCode() == WXK_RIGHT - || event.GetKeyCode() == WXK_UP || event.GetKeyCode() == WXK_DOWN)) + (event.GetKeyCode() == WXK_TAB || event.GetKeyCode() == WXK_LEFT || event.GetKeyCode() == WXK_RIGHT || + event.GetKeyCode() == WXK_UP || event.GetKeyCode() == WXK_DOWN)) HandleAsNavigationKey(event); else event.Skip(); @@ -462,7 +454,9 @@ void Button::sendButtonEvent() WXLRESULT Button::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) { - if (nMsg == WM_GETDLGCODE) { return DLGC_WANTMESSAGE; } + if (nMsg == WM_GETDLGCODE) { + return DLGC_WANTMESSAGE; + } if (nMsg == WM_KEYDOWN) { wxKeyEvent event(CreateKeyEvent(wxEVT_KEY_DOWN, wParam, lParam)); switch (wParam) { @@ -483,8 +477,7 @@ void Button::EnableTooltipEvenDisabled() { #if defined(_MSC_VER) || defined(_WIN32) auto parent = this->GetParent(); - if (parent) - { + if (parent) { parent->Bind(wxEVT_MOTION, &Button::OnParentMotion, this); parent->Bind(wxEVT_LEAVE_WINDOW, &Button::OnParentLeave, this); }; @@ -494,22 +487,21 @@ void Button::EnableTooltipEvenDisabled() void Button::OnParentMotion(wxMouseEvent& event) { auto parent = this->GetParent(); - if (!parent) return event.Skip(); + if (!parent) + return event.Skip(); - wxPoint pos = parent->ClientToScreen(event.GetPosition()); + wxPoint pos = parent->ClientToScreen(event.GetPosition()); wxRect screen_rect = this->GetScreenRect(); - wxString tip = this->GetToolTipText(); - if (!tip.IsEmpty() && !this->IsEnabled() && screen_rect.Contains(pos)) - { - if (!tipWindow) - { + wxString tip = this->GetToolTipText(); + if (!tip.IsEmpty() && !this->IsEnabled() && screen_rect.Contains(pos)) { + if (!tipWindow) { tipWindow = wxTipWindow::New(this, tip); - if (!tipWindow) return event.Skip(); + if (!tipWindow) + return event.Skip(); tipWindow->Enable(false); } - if (tipWindow->GetLabel() != tip) - { + if (tipWindow->GetLabel() != tip) { tipWindow->SetLabel(tip); } @@ -517,11 +509,8 @@ void Button::OnParentMotion(wxMouseEvent& event) // using wxGetMousePosition() which returns (0,0) on Wayland. tipWindow->Position(this->ClientToScreen(wxPoint(0, 0)), this->GetSize()); tipWindow->Popup(); - } - else - { - if (tipWindow) - { + } else { + if (tipWindow) { tipWindow->Dismiss(); tipWindow->Destroy(); tipWindow = nullptr; @@ -534,15 +523,14 @@ void Button::OnParentMotion(wxMouseEvent& event) void Button::OnParentLeave(wxMouseEvent& event) { auto parent = this->GetParent(); - if (!parent) return event.Skip(); + if (!parent) + return event.Skip(); - if (tipWindow) - { - wxPoint pos = parent->ClientToScreen(event.GetPosition()); + if (tipWindow) { + wxPoint pos = parent->ClientToScreen(event.GetPosition()); wxRect screen_rect = this->GetScreenRect(); - wxString tip = this->GetToolTipText(); - if (!screen_rect.Contains(pos)) - { + wxString tip = this->GetToolTipText(); + if (!screen_rect.Contains(pos)) { tipWindow->Dismiss(); tipWindow->Destroy(); tipWindow = nullptr; diff --git a/src/slic3r/GUI/Widgets/Button.hpp b/src/slic3r/GUI/Widgets/Button.hpp index 2991edd425..a1a05e9831 100644 --- a/src/slic3r/GUI/Widgets/Button.hpp +++ b/src/slic3r/GUI/Widgets/Button.hpp @@ -8,24 +8,25 @@ class ButtonProps { public: - static int ChoiceButtonGap(){return 10;}; - static int WindowButtonGap(){return 10;}; + static int ChoiceButtonGap() { return 10; }; + static int WindowButtonGap() { return 10; }; }; -enum class ButtonStyle{ +enum class ButtonStyle { Regular, Confirm, Alert, Disabled, }; -enum class ButtonType{ - Compact , // Font10 FullyRounded For spaces with less areas - Window , // Font12 FullyRounded For regular buttons in windows and not related with parameter boxes - Choice , // Font14 Semi-Rounded For dialog/window choice buttons +enum class ButtonType { + Compact, // Font10 FullyRounded For spaces with less areas + Window, // Font12 FullyRounded For regular buttons in windows and not related with parameter boxes + Choice, // Font14 Semi-Rounded For dialog/window choice buttons Parameter, // Font14 Semi-Rounded For buttons that near parameter boxes - Icon , // ------ Semi-Rounded For buttons that only has icons. icons should be 16x16 and iconSize has to be defined as 16 while creation of button - Expanded , // Font14 Semi-Rounded For full length buttons. ex. buttons in static box + Icon, // ------ Semi-Rounded For buttons that only has icons. icons should be 16x16 and iconSize has to be defined as 16 while + // creation of button + Expanded, // Font14 Semi-Rounded For full length buttons. ex. buttons in static box }; class Button : public StaticBox @@ -34,17 +35,18 @@ class Button : public StaticBox wxRect textSize; wxSize minSize; // set by outer wxSize paddingSize; + int m_icon_spacing = 5; ScalableBitmap active_icon; - StateColor text_color; + StateColor text_color; bool pressedDown = false; bool m_selected = true; - bool canFocus = true; + bool canFocus = true; bool isCenter = true; bool vertical = false; - static const int buttonWidth = 200; + static const int buttonWidth = 200; static const int buttonHeight = 50; public: @@ -66,21 +68,23 @@ public: void SetPaddingSize(const wxSize& size); + void SetIconSpacing(int spacing); + void SetStyle(const ButtonStyle style /*= ButtonStyle::Regular*/, const ButtonType type /*= ButtonType::None*/); - void SetTextColor(StateColor const &color); + void SetTextColor(StateColor const& color); - void SetTextColorNormal(wxColor const &color); + void SetTextColorNormal(wxColor const& color); void SetSelected(bool selected = true) { m_selected = selected; } // Only meant to be used by inspector, not public API ButtonStyle GetStyle() const { return m_style; } - ButtonType GetType() const { return m_type; } - bool IsSelected() const { return m_selected; } + ButtonType GetType() const { return m_type; } + bool IsSelected() const { return m_selected; } bool Enable(bool enable = true) override; - void EnableTooltipEvenDisabled();// The tip will be shown even if the button is disabled + void EnableTooltipEvenDisabled(); // The tip will be shown even if the button is disabled void SetCanFocus(bool canFocus) override; @@ -104,7 +108,7 @@ protected: private: bool m_has_style = false; ButtonStyle m_style; - ButtonType m_type; + ButtonType m_type; void paintEvent(wxPaintEvent& evt); @@ -115,10 +119,10 @@ private: // some useful events void mouseDown(wxMouseEvent& event); void mouseReleased(wxMouseEvent& event); - void mouseCaptureLost(wxMouseCaptureLostEvent &event); - void keyDownUp(wxKeyEvent &event); + void mouseCaptureLost(wxMouseCaptureLostEvent& event); + void keyDownUp(wxKeyEvent& event); - // + // void sendButtonEvent(); // parent motion From 2dce0ad24f85d1d91709b0e0a85620154cc3523c Mon Sep 17 00:00:00 2001 From: Lam Wei Lun Date: Tue, 8 Sep 2026 16:46:56 +0800 Subject: [PATCH 02/76] Back to spacebar for speed dial shortcut. Integrated inline process settings editing. Optimized saerch results --- resources/web/dialog/SpeedDial/speeddial.js | 941 ++++++++++++++---- .../web/dialog/SpeedDial/speeddial.test.js | 162 ++- resources/web/dialog/SpeedDial/style.css | 182 ++++ resources/web/js/fuzzy-search.js | 39 + src/slic3r/GUI/ActionRegistry.cpp | 687 +++++++++++-- src/slic3r/GUI/ActionRegistry.hpp | 66 +- src/slic3r/GUI/KBShortcutsDialog.cpp | 3 +- src/slic3r/GUI/MainFrame.cpp | 21 +- src/slic3r/GUI/ParamsPanel.cpp | 4 +- src/slic3r/GUI/Search.hpp | 4 + src/slic3r/GUI/SpeedDialDialog.cpp | 61 +- src/slic3r/GUI/SpeedDialDialog.hpp | 1 - 12 files changed, 1833 insertions(+), 338 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index b25df97723..65d2e24430 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -10,40 +10,118 @@ var sel = { zone: "list", i: 0 }; // zone: 'list' | 'fav' var lastResizeHeight = 0; var matchIndex = {}; -// Palette phase: 'commands' (search actions/commands, show recents), 'settings' ("Go to -// setting..." second phase: search config options), 'percent' ("Go to layer" second phase: -// enter a 0-100 percentage), 'tab' ("Go to tab..." second phase: pick a notebook tab). +// ---- windowed list render ---------------------------------------------------- +// The command list is rendered in windows (append-on-scroll) so a huge settings pool doesn't build +// the whole DOM per keystroke. Rows are exactly ROW_H tall (matches .row min-height 44px; see --row-h, +// which is documented to stay in sync). `renderEnd` is the exclusive count of rows currently in the DOM; +// a bottom spacer fills the rest of the list so the scrollbar reflects the full match count and +// "scroll past the last rendered row" reveals the next window. +var K_ROWS = 50; +var ROW_H = 44; +var renderEnd = 0; +var builtKey = ""; // phase|query|listLen - when it changes, rows are rebuilt from the first window +var spacerEl = null; // the trailing height spacer, always the last child of listEl + +// search-cache: the normalized (folded+lowercased) needle for the current query pass. +var searchNeedle = ""; + +// Palette phase: 'commands' (one unified search over actions/commands/settings, recents on empty +// query), 'percent' ("Go to layer" second phase: enter a 0-100 percentage), 'tab' ("Go to tab..." +// second phase: pick a notebook tab). var phase = "commands"; -var settingsResults = []; // [{opt_key,type,label,category,group}] var tabOptions = []; // [{id,title}] - notebook pages, fetched on entering the tab phase // why: fuzzy matcher (FoldChar/Norm/FuzzyRanges) lives in shared ../../js/fuzzy-search.js, loaded before // this script - it is shared with the Plugins dialog. Speed dial search is always case-insensitive. // element handles, assigned in OnInit (kept null so load-time touches no DOM) -var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, countEl = null; +var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, countEl = null, headEl = null; + +// ---- inline setting editor state --------------------------------------------- +// The "setting" phase (opened by activating a setting action) replaces the list with an editor card +// for one option. phase transitions: commands -> setting -> (apply / open-in-sidebar) -> closed, or +// Esc back to commands. settingDesc is the C++ descriptor; settingRows are the per-index control +// descriptors (1 row for scalars, one per index for vectors); settingFieldEls hold the live controls. +var settingId = ""; // the setting action id being edited +var settingDesc = null; // {id,opt_key,type,title,breadcrumb,category,unit,tooltip,editable,control,cardinality,value|values,index_labels,enum_options,min,max,is_int} +var settingRows = []; // [{index,kind,value,label,enum_options,min,max,unit,is_int}] +var settingFieldEls = []; // [Element...] parallel to settingRows +var settingPreviewIcon = null; // beside the editor title, updated live on dropdown pick +var openDropDownEl = null; // the custom dropdown toggle button whose option list is expanded // ---- pure helpers (no DOM; unit-tested) ------------------------------------- -function filterActions(actions, query) { +// Pre-normalized haystacks, cached on the action object. The fold is length-preserving (1:1 per +// char) so the ranges FuzzyRangesNorm returns slice the ORIGINAL title/source text correctly. The +// action objects arrive from C++ and are stable for the dialog's lifetime, so we compute these once. +function titleNorm(a) { + if (a._tn === undefined) + a._tn = NormText(a.title, false); + return a._tn; +} +function otherNorm(a) { + if (a._on === undefined) + a._on = NormText((a.source || "") + " " + (a.group || ""), false); + return a._on; +} + +// Relevance score for a single field vs the current query needle, or -1 when there's no match. +// Higher is better: an earlier start and a more contiguous (fewer gaps) match beat a scattered late one. +function matchScoreNorm(haystackNorm) { + if (!searchNeedle) return -1; + var r = FuzzyRangesNorm(haystackNorm || "", searchNeedle); + if (!r) return -1; + var gaps = 0; + for (var i = 1; i < r.length; i++) + gaps += r[i][0] - r[i - 1][1]; + return 1000 - r[0][0] * 10 - gaps * 10; +} + +// Per-action score: title matches rank above a source/group-only match of equal quality. +function actionSearchScore(a) { + var title = matchScoreNorm(titleNorm(a)); + var other = matchScoreNorm(otherNorm(a)); + if (title < 0 && other < 0) return -1; + return Math.max(title < 0 ? -1e9 : title + 10000, other < 0 ? -1e9 : other); +} + +// The unified main-phase search: every action (command/plugin/setting) matching the query, ranked +// by relevance (not by action type). Sets matchIndex so rows highlight their match ranges. The query +// is normalized ONCE per pass - FuzzyRangesNorm then runs against each action's pre-normalized +// haystack, so per-keystroke cost is a cheap scan (no per-char normalize/regex). +function searchActions(actions, query) { var q = (query || "").trim(); var list = actions || []; matchIndex = {}; - if (!q) - return list.slice(0); + if (!q) { searchNeedle = ""; return list.slice(0); } + searchNeedle = NormText(q, false); - var out = []; + var scored = []; for (var i = 0; i < list.length; i++) { var a = list[i]; - var titleMatch = FuzzyRanges(a.title, q, false); - var sourceMatch = FuzzyRanges(a.source || "", q, false); - if (!titleMatch && !sourceMatch) - continue; - matchIndex[a.id] = { title: titleMatch, source: sourceMatch, useTitle: !!titleMatch }; - out.push(a); + var s = actionSearchScore(a); + if (s < 0) continue; + var titleMatch = FuzzyRangesNorm(titleNorm(a), searchNeedle); + matchIndex[a.id] = { title: titleMatch, source: FuzzyRangesNorm(otherNorm(a), searchNeedle), useTitle: !!titleMatch }; + scored.push({ a: a, s: s }); } - return out; + scored.sort(function (x, y) { + if (x.s !== y.s) return y.s - x.s; + if (x.a.title !== y.a.title) return x.a.title < y.a.title ? -1 : 1; + return x.a.id < y.a.id ? -1 : x.a.id > y.a.id ? 1 : 0; + }); + return scored.map(function (e) { return e.a; }); } +// Pure: how many rows must be materialized to cover the given starting index plus `size` more. +// Clamped to the total; used to decide "render the next window" on scroll / arrow-nav. +function revealTarget(total, fromIndex, size) { + return Math.min(total, Math.max(0, fromIndex) + size); +} + +// buildKey: the command-list signature that decides whether rows must be rebuilt (new search / phase) +// or just have their selection refreshed in place (arrow-nav / click). Cheap to compute. +function buildKey() { return phase + "|" + (query || "").trim(); } + function visibleFavourites(favourites, actions) { // why: a fav whose id has no live action (plugin unloaded/disabled) renders a dead // monogram tile whose click run()s to a silent no-op; drop it from the quick-bar. @@ -54,6 +132,24 @@ function visibleFavourites(favourites, actions) { }); } +// Numbered quick-launch slots (mirrors ActionRegistry::kFavLimit). Pure so the node-vm test +// can exercise the digit<->slot mapping without a DOM. +var K_FAV_LIMIT = 10; + +// Badge label for a 0-based fav-bar index: 0..8 -> "1".."9", index 9 (the 10th) -> "0". +function favSlotForIndex(i) { + if (i < 0 || i >= K_FAV_LIMIT) return null; + return i < 9 ? String(i + 1) : "0"; +} + +// Digit key -> 0-based fav-bar index (1..9 -> 0..8, 0 -> 9); -1 for anything else. +function favIndexForDigit(d) { + var c = String(d || "").charCodeAt(0); + if (c >= 49 && c <= 57) return c - 49; + if (c === 48) return 9; + return -1; +} + function resultCountText(total, shown, query) { return (query || "").trim() ? "Showing " + shown + " of " + total + " actions" : total + " actions"; } @@ -80,11 +176,125 @@ function shouldRenderActionList(query) { return !!((query || "").trim()); } -// The active list for the commands phase. A typed query filters every action (plugins + -// commands); an empty query shows the recent list instead (recents live below the search bar). +// Label for a closed-enum entry, looked up from its enum_options by value; falls back to the value. +// Pure so the node-vm test can exercise the dropdown label mapping. `value` is the current int value. +function dropdownLabel(options, value) { + var want = String(value == null ? "" : value); + for (var i = 0; i < (options || []).length; i++) + if (String(options[i].value) === want) + return options[i].label != null && options[i].label !== "" ? String(options[i].label) : String(options[i].key != null ? options[i].key : options[i].value); + return want; +} + +// Pure: the data:URI pictogram for a dropdown's selected value, or "" when none of the options has +// one (most settings have no pattern icon). Mirrors dropdownLabel so tests can drive it without DOM. +function dropdownIcon(options, value) { + var want = String(value == null ? "" : value); + for (var i = 0; i < (options || []).length; i++) + if (String(options[i].value) === want && options[i].icon) + return options[i].icon; + return ""; +} + +// Put an action's pattern pictogram into a tile (search row or favourites tile) when it has one, +// otherwise fall back to the monogram. Toggles the has-icon class so CSS neutralises the hue. +function fillTile(tile, a) { + tile.classList.remove("has-icon"); + if (a && a.icon) { + tile.textContent = ""; + var img = document.createElement("img"); + img.className = "tile-icon"; + img.src = a.icon; + img.alt = ""; + tile.appendChild(img); + tile.classList.add("has-icon"); + } else { + tile.textContent = a ? tileCode(a, ACTIONS) : ""; + } +} + +// Per-index control descriptors for the inline setting editor, derived from the C++ descriptor. +// Pure so the node-vm test can exercise the scalar/vector + control mapping without a DOM. +// Values are the current config value(s); vector options get one row per index, each labelled. +function settingControlRows(desc) { + if (!desc || !desc.editable) return []; + var rows = []; + var values = desc.cardinality === "vector" ? (desc.values || []) : [desc.value]; + var labels = desc.cardinality === "vector" ? (desc.index_labels || []) : []; + for (var i = 0; i < values.length; i++) { + rows.push({ + index: i, + kind: desc.control, + value: values[i], + label: labels[i] != null ? String(labels[i]) : (desc.cardinality === "vector" ? String(i + 1) : null), + enum_options: desc.enum_options || [], + min: typeof desc.min === "number" ? desc.min : null, + max: typeof desc.max === "number" ? desc.max : null, + unit: desc.unit || "", + is_int: !!desc.is_int + }); + } + return rows; +} + +// Pure: read the value a control would submit back for a setting. `el` is a DOM element (never +// passed in tests). Returns undefined for an unusable value (empty/invalid number, out of range), +// boolean for toggles, number for numeric, string otherwise. +function settingControlValue(row, el) { + if (!row || !el) return undefined; + switch (row.kind) { + case "toggle": return !!el.checked; + case "number": { + var raw = String(el.value || "").trim(); + if (raw === "") return undefined; + var n = row.is_int ? parseInt(raw, 10) : parseFloat(raw); + if (!isFinite(n)) return undefined; + if (row.min != null && n < row.min) return undefined; + if (row.max != null && n > row.max) return undefined; + return n; + } + case "dropdown": { + // value is stored on the toggle button's dataset (set when an option is picked). + var v = parseInt(el.dataset ? el.dataset.value : "", 10); + return isFinite(v) ? v : undefined; + } + case "combo": { + // Open enum: free text field (never a select), so read it as the seeded integer value. + var v = parseInt(el.value, 10); + return isFinite(v) ? v : undefined; + } + case "color": + case "text": + case "percent": { + // percent submission is a string ("10%", "0.5"); C++ parses + clamps it. Empty is invalid. + var raw = String(el.value || "").trim(); + return raw === "" ? undefined : raw; + } + default: return undefined; + } +} + +// Pure: assemble the value payload for a setting from its edited control rows. Returns the scalar +// for scalar settings, an array for vector settings, or undefined when any control is invalid. +function settingCollectedValue(desc, rows, values) { + if (!desc || !desc.editable) return undefined; + if (desc.cardinality === "vector") { + var out = []; + for (var i = 0; i < rows.length; i++) { + var v = settingControlValue(rows[i], values[i]); + if (v === undefined) return undefined; + out.push(v); + } + return out; + } + return settingControlValue(rows[0], values[0]); +} + +// The active list for the main phase. A typed query ranks every action (commands/plugins/settings) +// by relevance; an empty query shows the recent list (recents are a mixed bag - no discrimination). function commandList(actions, recents, query) { if (shouldRenderActionList(query)) - return filterActions(actions || [], query); + return searchActions(actions || [], query); return (recents || []).slice(0); } @@ -146,8 +356,8 @@ function monogramFor(item, list, titleOf, sourceOf, idOf) { return pi + ti; } -// Action tile code - see monogramFor for the escalation ladder. Accessed via accessors so the -// same helper serves settings rows (leaf label + category) without duplicating the logic. +// Action tile code - see monogramFor for the escalation ladder. Settings are actions now, so +// they share this ladder (title initial, then source, then a stable ordinal). function tileCode(action, actions) { return monogramFor(action, actions, function (o) { return o.title; }, @@ -155,24 +365,6 @@ function tileCode(action, actions) { function (o) { return o.id; }); } -// Last " : "-separated segment of a "category : group : label" setting label = the option name -// (e.g. "Quality : Layer Height" -> "Layer Height"); empty labels fall back to the opt_key. -function leafLabel(s) { - var label = String(s && (s.label || s.opt_key || "") || ""); - var parts = label.split(" : "); - var leaf = parts[parts.length - 1]; - return (leaf || "").trim() || label.trim(); -} - -// Setting tile code - the option name initial, then the section (category) on collision, then a -// stable ordinal, so settings no longer all collapse to a generic "S". -function settingCode(s, list) { - return monogramFor(s, list, - function (o) { return leafLabel(o); }, - function (o) { return o.category; }, - function (o) { return o.opt_key; }); -} - function syncClearButton() { if (clearEl) clearEl.hidden = !query; @@ -187,7 +379,6 @@ function stateFromPayload(payload) { sel: { zone: "list", i: 0 }, lastResizeHeight: 0, phase: "commands", - settingsResults: [], tabOptions: [] }; } @@ -203,17 +394,19 @@ function resetScrollPositions(list, doc) { doc.body.scrollTop = 0; } -// nextSel: pure arrow-nav transition. Down fav->list0; Down list->clamp; Up list@0->fav0; -// Up list->i-1; Left/Right clamp within fav. Returns a fresh {zone,i}. +// nextSel: pure arrow-nav transition. Down fav->list0; Down list wraps at the bottom (last -> first). +// Up list wraps at the top (first -> last) only when there's no fav bar above; with a fav bar, Up at +// the list top goes to fav0 (unchanged). Left/Right clamp within fav. Returns a fresh {zone,i}. function nextSel(sel, key, listLen, favLen) { var zone = sel.zone, i = sel.i; + var last = Math.max(0, listLen - 1); if (key === "ArrowDown") { if (zone === "fav") return { zone: "list", i: 0 }; - return { zone: "list", i: Math.min(i + 1, Math.max(0, listLen - 1)) }; + return { zone: "list", i: i >= last ? 0 : i + 1 }; } if (key === "ArrowUp") { if (zone === "list") { - if (i <= 0) return favLen ? { zone: "fav", i: 0 } : { zone: "list", i: 0 }; + if (i <= 0) return favLen ? { zone: "fav", i: 0 } : { zone: "list", i: last }; return { zone: "list", i: i - 1 }; } return { zone: zone, i: i }; @@ -245,8 +438,16 @@ window.HandleStudio = function (payload) { sel = next.sel; lastResizeHeight = next.lastResizeHeight; phase = next.phase; - settingsResults = next.settingsResults; tabOptions = next.tabOptions; + // Reset any half-open setting editor (the dialog was closed/reopened), restoring the search. + settingId = ""; settingDesc = null; settingRows = []; settingFieldEls = []; + settingPreviewIcon = null; + openDropDownEl = null; + // why: builtKey caches phase|query so renderCommandsList can skip a rebuild on arrow-nav. It + // survives an apply-then-reopen (which never goes through exitPhase), so without a reset the + // leftover editor card would be mistaken for the empty-query commands list and never rebuilt. + builtKey = ""; + if (headEl) headEl.hidden = false; if (qEl) { qEl.value = ""; qEl.placeholder = "Search " + ACTIONS.length + " actions"; @@ -254,16 +455,27 @@ window.HandleStudio = function (payload) { } render({ resize: true, resetScroll: true }); focusInput(); - } else if (payload.command === "settings_results") { - settingsResults = payload.results || []; - if (sel.zone === "list") - sel.i = Math.max(0, Math.min(sel.i, settingsResults.length - 1)); + } else if (payload.command === "setting_descriptor") { + // Inline editor loaded: render the card. Guard against a stale response for a different id. + if (payload.descriptor && payload.descriptor.id === settingId) + settingDesc = payload.descriptor; render({ resize: true }); + // why: keyboard focus must land on the field after the card is built, not stay on the hidden + // search input. fire on a timeout so the element is attached and its content selectable. + focusSettingEditor(); + } else if (payload.command === "apply_failed") { + flashHint("Couldn't apply that value"); } else if (payload.command === "tab_results") { tabOptions = payload.tabs || []; if (sel.zone === "list") sel.i = Math.max(0, Math.min(sel.i, tabOptions.length - 1)); render({ resize: true }); + } else if (payload.command === "favourite_full") { + // Favourites are at the quick-launch cap - undo the optimistic pin and flash a hint. + var fid = payload.id; + if (fid && FAVS.indexOf(fid) !== -1) FAVS.splice(FAVS.indexOf(fid), 1); + render({ resize: true }); + flashHint("Favourites are full (" + (payload.limit || K_FAV_LIMIT) + " max)"); } }; @@ -284,7 +496,6 @@ function currentVisibleFavs() { return visibleFavourites(FAVS, ACTIONS); } // Active list for the current phase (drives list rendering + arrow nav). function currentList() { - if (phase === "settings") return settingsResults; if (phase === "tab") return filterTabs(tabOptions, query); if (phase === "commands") return commandList(ACTIONS, RECENTS, query); return []; // percent - the input itself is the only field @@ -349,10 +560,19 @@ function renderFav() { var tile = document.createElement("button"); tile.className = "fav-tile" + (sel.zone === "fav" && sel.i === i ? " sel" : ""); tile.style.setProperty("--h", hue(id)); - tile.textContent = tileCode(a, ACTIONS); + fillTile(tile, a); tile.title = a.title; tile.setAttribute("aria-label", actionLabel(a, ACTIONS)); tile.onclick = function () { sel = { zone: "fav", i: i }; activateEntry(a); }; + // Numbered quick-launch badge (Alt/Option+digit), drawn on the corner. + var slot = favSlotForIndex(i); + if (slot) { + var badge = document.createElement("span"); + badge.className = "fav-slot"; + badge.textContent = slot; + badge.title = slot === "0" ? "Favourite 10 (Alt+0)" : "Favourite " + slot + " (Alt+" + slot + ")"; + tile.appendChild(badge); + } // Direct removal: a hover-revealed ✕ in the tile's corner. click() stops propagation so it // unpins without activating the action. var unpin = document.createElement("button"); @@ -430,35 +650,8 @@ function updateFavEyebrow(favs) { } // One settings row; has no star/tile because settings aren't pinnable. -function renderSettingRow(s, i) { - var row = document.createElement("div"); - row.className = "row" + (sel.zone === "list" && sel.i === i ? " sel" : ""); - row.setAttribute("aria-label", s.label); - - var tile = document.createElement("div"); - tile.className = "tile"; - tile.style.setProperty("--h", hue(s.opt_key)); - tile.textContent = settingCode(s, settingsResults); - - var left = document.createElement("div"); - left.className = "row-left"; - // why: the label already packs "Category : Group : Label", so no separate eyebrow. - var line = document.createElement("div"); - line.className = "row-line"; - var name = document.createElement("div"); - name.className = "row-name"; - name.textContent = s.label; - line.appendChild(name); - left.appendChild(line); - - row.appendChild(tile); - row.appendChild(left); - row.onclick = function () { sel = { zone: "list", i: i }; render({ resize: true }); }; - row.ondblclick = function () { sel = { zone: "list", i: i }; jumpToSetting(s); }; - return row; -} - -// A command/action row (used for both recents and filtered results). +// A command/action row - used for search results, recents, and (because settings are actions now) +// the setting options too. All rows are pinnable, so every row carries a star. function renderActionRow(a, i) { var on = FAVS.indexOf(a.id) !== -1; var row = document.createElement("div"); @@ -468,7 +661,7 @@ function renderActionRow(a, i) { var tile = document.createElement("div"); tile.className = "tile"; tile.style.setProperty("--h", hue(a.id)); - tile.textContent = tileCode(a, ACTIONS); + fillTile(tile, a); var left = document.createElement("div"); left.className = "row-left"; @@ -507,78 +700,103 @@ function renderActionRow(a, i) { return row; } -function renderCommandsList() { - var q = (query || "").trim(); - var list = currentList(); - if (sel.zone === "list") - sel.i = Math.max(0, Math.min(sel.i, list.length - 1)); - // Recents are not filtered, so clear any stale match marks from a previous typed query. - if (!shouldRenderActionList(query)) - matchIndex = {}; - listEl.innerHTML = ""; - - if (!shouldRenderActionList(query) && list.length) { - var head = document.createElement("div"); - head.className = "dial-group"; - head.textContent = "Recent"; - listEl.appendChild(head); +// Append rows [from, to) into listEl, always inserting before the bottom spacer so row order is preserved. +function appendActionRows(list, from, to) { + var spacer = spacerEl || ensureSpacer(); + for (var i = from; i < to; i++) { + var row = renderActionRow(list[i], i); + row.setAttribute("data-idx", i); + listEl.insertBefore(row, spacer); } - - if (!list.length) { - listEl.className = "dial-list empty"; - if (countEl) countEl.hidden = true; - var empty = document.createElement("div"); - empty.className = "dial-empty"; - empty.textContent = shouldRenderActionList(query) ? ("No actions match (Total: " + ACTIONS.length + ")") : "No actions yet"; - listEl.appendChild(empty); - return; - } - - listEl.className = "dial-list"; - if (countEl) { - countEl.hidden = false; - countEl.textContent = shouldRenderActionList(query) ? resultCountText(ACTIONS.length, list.length, query) : list.length + " recent"; - } - list.forEach(function (a, i) { listEl.appendChild(renderActionRow(a, i)); }); } -function renderSettingsList() { - var q = (query || "").trim(); - listEl.innerHTML = ""; - // Empty query + recents -> show the recent settings under a "Recent" group header. - var showingRecents = !q && settingsResults.length > 0; - if (!q && !showingRecents) { - listEl.className = "dial-list empty"; - if (countEl) countEl.hidden = true; - var hint = document.createElement("div"); - hint.className = "dial-empty"; - hint.textContent = "Type to search print, filament and printer settings"; - listEl.appendChild(hint); - return; +// Ensure the bottom spacer exists as the last child of listEl. It is (re)created on rebuild because +// listEl.innerHTML="" destroys the old node. +function ensureSpacer() { + if (!spacerEl || spacerEl.parentNode !== listEl) { + spacerEl = document.createElement("div"); + spacerEl.className = "dial-spacer-bottom"; + listEl.appendChild(spacerEl); } - if (q && !settingsResults.length) { + return spacerEl; +} + +// Size the spacer to the un-rendered tail so the scrollbar reflects the full match count. +function setBottomSpacer(total) { + ensureSpacer(); + spacerEl.style.height = Math.max(0, total - renderEnd) * ROW_H + "px"; +} + +// Reveal rows up to `upto` (an exclusive index), appending without rebuilding the whole list. Used by +// the scroll handler (viewport + overscan) and by arrow-nav that runs off the end of the current window. +function revealTo(list, upto) { + var need = Math.min(list.length, upto); + if (need <= renderEnd) + return; + appendActionRows(list, renderEnd, need); + renderEnd = need; + setBottomSpacer(list.length); +} + +// Rebuild the list from the first window (new search / phase change), clearing stale rows. +function rebuildCommandsList(list) { + listEl.innerHTML = ""; + listEl.className = "dial-list"; + ensureSpacer(); + renderEnd = 0; + appendActionRows(list, 0, Math.min(list.length, K_ROWS)); + renderEnd = Math.min(list.length, K_ROWS); + setBottomSpacer(list.length); +} + +// Toggle the .sel class in place - arrow-nav/click don't rebuild the DOM, just re-highlight the row. +function updateSelection() { + var rows = listEl ? listEl.querySelectorAll(".row") : []; + for (var i = 0; i < rows.length; i++) { + var idx = parseInt(rows[i].getAttribute("data-idx"), 10); + rows[i].classList.toggle("sel", sel.zone === "list" && idx === sel.i); + } +} + +function renderCommandsList() { + var list = currentList(); + var total = list.length; + if (sel.zone === "list") + sel.i = Math.max(0, Math.min(sel.i, total - 1)); + var showList = shouldRenderActionList(query); + // Recents are not filtered, so clear any stale match marks from a previous typed query. + if (!showList) + matchIndex = {}; + + if (!total) { + listEl.innerHTML = ""; + spacerEl = null; listEl.className = "dial-list empty"; if (countEl) countEl.hidden = true; var empty = document.createElement("div"); empty.className = "dial-empty"; - empty.textContent = "No settings match"; + empty.textContent = showList ? ("No actions match (Total: " + ACTIONS.length + ")") : "No actions yet"; listEl.appendChild(empty); + renderEnd = 0; + builtKey = buildKey() + "|0"; return; } - if (sel.zone === "list") - sel.i = Math.max(0, Math.min(sel.i, settingsResults.length - 1)); + + var key = buildKey() + "|" + total; + if (key !== builtKey) { + builtKey = key; + rebuildCommandsList(list); + } else if (sel.i >= renderEnd) { + // Arrow-nav walked past the rendered window - reveal enough to keep the selection visible. + revealTo(list, revealTarget(total, sel.i, K_ROWS)); + } + listEl.className = "dial-list"; if (countEl) { countEl.hidden = false; - countEl.textContent = showingRecents ? settingsResults.length + " recent" : settingsResults.length + " matches"; + countEl.textContent = showList ? resultCountText(ACTIONS.length, total, query) : total + " recent"; } - if (showingRecents) { - var head = document.createElement("div"); - head.className = "dial-group"; - head.textContent = "Recent"; - listEl.appendChild(head); - } - settingsResults.forEach(function (s, i) { listEl.appendChild(renderSettingRow(s, i)); }); + updateSelection(); } // A tab row: no star/unpin (tabs aren't pinnable), tile monogram from the title. Uses tabTitle so @@ -646,13 +864,349 @@ function renderPercentList() { listEl.appendChild(ph); } +// ---- inline setting editor (DOM stage) --------------------------------------- + +// Collapse every open custom dropdown except `keep` (null collapses all). The menu list elements +// are the .ed-dropdown-menu siblings of the toggle buttons we track via openDropDownEl. +function closeOtherDropDowns(keep) { + if (openDropDownEl && openDropDownEl !== keep && openDropDownEl.parentNode) { + var m = openDropDownEl.parentNode.querySelector(".ed-dropdown-menu"); + if (m) m.hidden = true; + openDropDownEl.classList.remove("open"); + } + if (!keep) + openDropDownEl = null; +} + +// Collapse the currently open dropdown, if any (kept for the editor's export/import-adjacent helpers). +function closeEditorDropDown() { closeOtherDropDowns(null); } + +// Place an open dropdown menu as a fixed overlay just under its toggle, so the menu floats over the +// card (never resizing it) and is clamped to the popup's bottom edge with an internal scrollbar for +// long option lists. position:fixed escapes the card/launcher overflow clipping that an absolute +// menu would otherwise hit, keeping every option reachable within the window. +function positionDropDownMenu(btn, menu) { + var lrect = (document.querySelector(".launcher") || { getBoundingClientRect: function () { return { top: 0, bottom: window.innerHeight }; } }).getBoundingClientRect(); + var rect = btn.getBoundingClientRect(); + // Available room above and below the toggle, within the popup. Opening the menu must not push it + // past the window edge (that's the unreachable-overflow bug) - pick whichever side has more room + // and clamp the box to it. Overflow-y:auto scrolls any long list inside the menu itself. + var spaceBelow = lrect.bottom - (rect.bottom + 8); + var spaceAbove = (rect.top - 8) - lrect.top; + var openUp = spaceBelow < spaceAbove; + var maxH = Math.max(0, Math.min(openUp ? spaceAbove : spaceBelow, 200)); + menu.style.position = "fixed"; + menu.style.width = rect.width + "px"; + menu.style.left = rect.left + "px"; + menu.style.maxHeight = maxH + "px"; + if (openUp) { + // bottom edge sits just above the toggle; the box grows upward to content height. + menu.style.top = "auto"; + menu.style.bottom = (lrect.bottom - rect.top + 4) + "px"; + } else { + menu.style.top = (rect.bottom + 4) + "px"; + menu.style.bottom = "auto"; + } +} + +// Build the control element for one row (toggle/number/dropdown/combo/text/color) and seed it with +// the current value. Returns {el, node, extra} - node is what is appended, extra carries a datalist. +function settingInputFor(row) { + var el; + if (row.kind === "toggle") { + el = document.createElement("input"); + el.type = "checkbox"; + el.checked = !!row.value; + var sw = document.createElement("label"); + sw.className = "ed-switch"; + sw.appendChild(el); + var slider = document.createElement("span"); + slider.className = "ed-slider"; + sw.appendChild(slider); + return { el: el, node: sw }; + } + if (row.kind === "number") { + el = document.createElement("input"); + el.type = "number"; + el.step = row.is_int ? 1 : "any"; + if (row.min != null) el.min = row.min; + if (row.max != null) el.max = row.max; + if (row.value != null && row.value !== "") el.value = row.value; + return { el: el, node: el }; + } + if (row.kind === "dropdown") { + // Native popups are flaky in the embedded webview) */ +.ed-dropdown { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; } +.ed-dropdown-toggle { + display: flex; + align-items: center; + gap: 6px; + width: 100%; + height: 30px; + padding: 0 8px; + border: 1px solid var(--border, var(--orca-border, #ddd)); + border-radius: 6px; + background: var(--panel, var(--orca-bg, #fff)); + color: var(--text, var(--orca-fg, #1b1c1e)); + font: inherit; + text-align: left; + cursor: pointer; +} +.ed-dropdown-toggle.open { border-color: var(--main-color, var(--orca-accent, #009688)); } +.ed-dropdown-label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.ed-dropdown-caret { flex: 0 0 auto; font-size: 10px; color: var(--muted, var(--orca-muted, #6b7280)); transition: transform .12s; } +.ed-dropdown-toggle.open .ed-dropdown-caret { transform: rotate(180deg); } +.ed-dropdown-menu { + /* Overlay popover, not in-flow: opening it must NOT grow the editor card or the popup window. + position/left/top/width/max-height are set from JS on open (position:fixed escapes the + scrollable card and launcher overflow, so the menu clips to the popup and scrolls itself). + These are only the visual defaults. */ + position: absolute; + z-index: 30; + border: 1px solid var(--border, var(--orca-border, #ddd)); + border-radius: 6px; + background: var(--panel, var(--orca-bg, #fff)); + box-shadow: 0 8px 24px rgba(0,0,0,.16); + max-height: 200px; + overflow-y: auto; +} +.ed-dropdown-option { + display: flex; + align-items: center; + gap: 8px; + width: 100%; + padding: 6px 8px; + border: 0; + background: none; + color: var(--text, var(--orca-fg, #1b1c1e)); + font: inherit; + text-align: left; + cursor: pointer; +} +.ed-dropdown-option:hover { background: var(--row-hover, rgba(127,127,127,.16)); } +.ed-dropdown-option.sel { font-weight: 600; color: var(--main-color, var(--orca-accent, #009688)); } +.ed-option-label { flex: 1 1 auto; min-width: 0; } +/* Pattern pictograms: filled with the option's icon, and (for values with none) absent. */ +.ed-option-icon, +.ed-dropdown-icon { + flex: 0 0 auto; + width: 16px; + height: 16px; +} +.ed-dropdown-icon[hidden] { display: none; } +/* toggle switch */ +.ed-switch { position: relative; flex: 0 0 auto; width: 36px; height: 20px; } +.ed-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; } +.ed-slider { + position: absolute; + inset: 0; + background: #c4c4c4; + border-radius: 10px; + transition: background .15s; +} +.ed-slider::before { + content: ""; + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 2px; + background: #fff; + border-radius: 50%; + transition: transform .15s; +} +.ed-switch input:checked + .ed-slider { background: var(--main-color, var(--orca-accent, #009688)); } +.ed-switch input:checked + .ed-slider::before { transform: translateX(16px); } +.editor-readonly { padding: 4px 0; font-size: 12px; color: var(--muted, var(--orca-muted, #6b7280)); } +.editor-actions { display: flex; gap: 8px; padding-top: 4px; } +.ed-btn { + padding: 6px 12px; + border: 1px solid var(--border, var(--orca-border, #ddd)); + border-radius: 6px; + background: var(--panel, var(--orca-bg, #fff)); + color: var(--text, var(--orca-fg, #1b1c1e)); + font: inherit; + cursor: pointer; +} +.ed-btn:hover { background: var(--row-hover, rgba(127,127,127,.16)); } +.ed-btn-primary { background: var(--main-color, var(--orca-accent, #009688)); border-color: var(--main-color, var(--orca-accent, #009688)); color: #fff; } +.ed-btn-primary:hover { filter: brightness(1.05); } +.editor-hint { font-size: 10px; text-align: center; color: var(--muted, var(--orca-muted, #6b7280)); } diff --git a/resources/web/js/fuzzy-search.js b/resources/web/js/fuzzy-search.js index 9e00e40eae..36dd9edb10 100644 --- a/resources/web/js/fuzzy-search.js +++ b/resources/web/js/fuzzy-search.js @@ -7,6 +7,10 @@ // Fold per-character so matched offsets stay in ORIGINAL string coordinates (highlighting slices the // original text; a separately-folded string would desync offsets). function FoldChar(ch) { + // why: fast path - ASCII is already NFD-stable and diacritic-free, so the normalize/regex below are + // no-ops. This skip is the hot cost in the Speed Dial search (thousands of settings per keystroke). + if (ch.length === 1 && ch.charCodeAt(0) < 0x80) + return ch; return ch.normalize("NFD").replace(/\p{Diacritic}/gu, ""); // accents always folded } @@ -15,6 +19,41 @@ function Norm(ch, caseSensitive) { return caseSensitive ? folded : folded.toLowerCase(); // case-sensitivity is the only toggle } +// Pre-normalize a whole haystack with the SAME per-char fold FuzzyRanges uses, so a caller can match +// it repeatedly against one cached string. The fold is 1:1 in length, so indices stay aligned to the +// ORIGINAL text - the highlight ranges that FuzzyRangesNorm returns slice the original correctly. +// Iterate by UTF-16 code unit (not Array.from code point) to mirror FuzzyRanges' own indexing exactly. +function NormText(text, caseSensitive) { + const src = text || ""; + let out = ""; + for (let i = 0; i < src.length; i++) + out += Norm(src[i], caseSensitive); + return out; +} + +// Match a PRE-normalized haystack against a PRE-normalized needle (both produced by NormText with the +// same caseSensitive flag). Skipping the per-character fold makes repeated matching (per keystroke over a +// cached pool) cheap. Returns ranges in original coordinates, or null on no match. +function FuzzyRangesNorm(haystackNorm, needleNorm) { + const t = haystackNorm || ""; + const needle = needleNorm || ""; + if (!needle) + return null; + const ranges = []; + let qi = 0; + for (let i = 0; i < t.length && qi < needle.length; i++) { + if (t[i] === needle[qi]) { + const last = ranges[ranges.length - 1]; + if (last && last[1] === i) + last[1] = i + 1; + else + ranges.push([i, i + 1]); + qi++; + } + } + return qi === needle.length ? ranges : null; +} + function EscapeRegExp(value) { return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); } diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index 3b9e568a96..3e56c857cc 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -16,18 +16,27 @@ #include #include #include +#include #include #include #include +#include #include +#include #include #include +#include #include +#include #include +#include +#include +#include #include +#include namespace Slic3r { namespace GUI { @@ -131,6 +140,60 @@ std::unique_ptr make_action(const std::string& plugin_key, const std: constexpr const char* kCommandPrefix = "orca_command"; constexpr const char* kOrcaSourceKey = "orca"; constexpr const char* kOrcaSourceName = "OrcaSlicer"; +constexpr const char* kSettingPrefix = "orca_setting"; + +// Display context for a setting action's eyebrow, e.g. the "Process" in "Process : Quality : Layers". +// Keyed by the option's preset type so the palette reads like the settings sidebar tabs. +std::string setting_type_context(Preset::Type type) +{ + switch (type) { + case Preset::TYPE_FILAMENT: + case Preset::TYPE_SLA_MATERIAL: return _u8L("Filament"); + case Preset::TYPE_PRINTER: return _u8L("Printer"); + case Preset::TYPE_PRINT: + case Preset::TYPE_SLA_PRINT: + default: return _u8L("Process"); + } +} + +// A config setting exposed as a first-class action: selecting it jumps the sidebar to the option. +// The id is keyed by opt_key+type (NOT the display label), so renaming/localizing never re-keys +// the action; title/group/source are purely for display + search. run() performs the jump, and +// the generic registry run() bumps stats so a jump shows up in "recents" like any other action. +struct SettingAction : AppAction +{ + std::string opt_key; + Preset::Type type; + std::wstring category; // localized category, forwarded to jump_to_option + + static std::string id_for(const std::string& opt_key, Preset::Type type) + { return std::string(kSettingPrefix) + ":" + opt_key + ":" + std::to_string(int(type)); } + + SettingAction(std::string opt_key_in, Preset::Type type_in, std::string title, std::string group, + std::wstring category_in, std::string source_name) + : AppAction(AppActionId{id_for(opt_key_in, type_in)}, std::move(title), kOrcaSourceKey, std::move(source_name)) + , opt_key(std::move(opt_key_in)) + , type(type_in) + , category(std::move(category_in)) + { + // A setting is a two-phase command: activating it opens the inline editor (the "setting" + // phase) instead of running. Native run() is a no-op fallback; the editor applies through + // apply_setting(). + this->kind = AppActionKind::Command; + this->group = std::move(group); + this->input = "setting"; + } + + AppActionRunResult run(const std::string& /*param*/) const override + { + // Two-phase: the palette collects the edit; native run() is a no-op fallback. + return {AppActionRunResult::Level::Success}; + } + + // The current value's pattern pictogram (e.g. the selected infill pattern), for the search-result + // tile. Defined below after the icon helper it delegates to. + std::string icon() const override; +}; // Jump the preview to a layer selected by a 0-100 percent of the layer range. Best-effort: // switches to the preview tab and requests a slice (select_view_3D("Preview", false)); if the @@ -219,9 +282,9 @@ AppActionRunResult run_native_command(const std::string& command_key, const std: } return {AppActionRunResult::Level::Success}; } - // "go_to_setting"/"go_to_tab" are two-phase: the palette collects the option after - // activating it, so dispatch here is a no-op (the actual jump goes through the web command). - if (command_key == "go_to_setting" || command_key == "go_to_tab") + // "go_to_tab" is two-phase: the palette collects the tab after activating it, so native + // dispatch here is a no-op (the jump goes through the go_to_tab web command). + if (command_key == "go_to_tab") return {AppActionRunResult::Level::Success}; return {AppActionRunResult::Level::Info, _L("Unknown command.")}; } @@ -253,10 +316,9 @@ std::vector> native_commands() // why: _u8L (std::string) for titles/groups - make_command takes std::string; _L would // return a wxString and silently fail to convert here. out.push_back(make_command("slice_and_preview", _u8L("Slice and Preview"), _u8L("Commands"))); - // Two-phase commands: activating them collects input in the palette, then runs. + // Two-phase commands: activating them collects input in the palette, then runs. Settings are + // not a command here - they're materialised as first-class SettingActions (see materialize_). out.push_back(make_command("go_to_layer", _u8L("Go to layer (percent)"), _u8L("Commands"), "percent")); - // The "…" is avoided in the msgid: use ASCII "..." to keep the .pot extraction simple. - out.push_back(make_command("go_to_setting", _u8L("Go to setting..."), _u8L("Commands"), "settings")); out.push_back(make_command("go_to_tab", _u8L("Go to tab..."), _u8L("Commands"), "tab")); out.push_back(make_command("load_project", _u8L("Load Project"), _u8L("Commands"))); out.push_back(make_command("save_project", _u8L("Save Project"), _u8L("Commands"))); @@ -268,19 +330,305 @@ std::vector> native_commands() return out; } -// Replicates Sidebar's get_search_inputs(): the configs of every tab supporting the current -// printer technology, in the current UI mode. -std::vector settings_inputs() +// ---- inline setting editor helpers ------------------------------------------ + +// The inline editor "control" kind for an option, or "" when it can't be edited inline +// (plugin-backed values, points, serialized strings, etc.). readonly/legend options are +// filtered out of the search entirely in materialize_setting_actions(), so they never +// reach here. +std::string setting_control(const ConfigOptionDef& def) { - std::vector ret; - GUI_App& app = wxGetApp(); - if (!app.preset_bundle) - return ret; - auto print_tech = app.preset_bundle->printers.get_selected_preset().printer_technology(); - for (Tab* tab : app.tabs_list) - if (tab && tab->supports_printer_technology(print_tech)) - ret.emplace_back(Search::InputInfo{tab->get_config(), tab->type(), app.get_mode()}); - return ret; + if (def.readonly || def.gui_type == ConfigOptionDef::GUIType::legend || + def.gui_type == ConfigOptionDef::GUIType::one_string || def.is_plugin_backed()) + return ""; + // Serialized vectors are entered as ONE semicolon-separated field (e.g. post_process), which the + // per-index editor doesn't model - keep them in the open-in-sidebar bucket. + if (def.gui_flags.find("serialized") != std::string::npos) + return ""; + switch (def.gui_type) { + case ConfigOptionDef::GUIType::color: return "color"; + case ConfigOptionDef::GUIType::i_enum_open: + case ConfigOptionDef::GUIType::f_enum_open: return "combo"; + default: break; + } + switch (def.type) { + case coBool: + case coBools: return "toggle"; + case coEnum: + case coEnums: return def.enum_values.empty() ? "combo" : "dropdown"; + case coInt: + case coInts: + case coFloat: + case coFloats: + case coPercent: + case coPercents: return "number"; + case coFloatOrPercent: + case coFloatsOrPercents: return "percent"; + case coString: + case coStrings: return "text"; + default: return ""; + } +} + +// Self-contained base64 encoder (for the tiny pictogram SVGs), avoiding a dependency on the exact +// wxBase64Encode overload/return type across wx versions. +std::string base64_encode(const std::string& data) +{ + static const char* tbl = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + auto enc = [&](unsigned n, int pad) { + // pad = number of extraneous bytes in the final group (0, 1 or 2): + // 0 leftover -> 4 chars from all 24 bits + // 2 leftover (pad=1) -> 3 chars then '=' + // 1 leftover (pad=2) -> 2 chars then "==" + // The '=' padding always comes LAST; a misplaced '=' decodes as garbage in the webview. + std::string out; + out.push_back(tbl[(n >> 18) & 63]); + out.push_back(tbl[(n >> 12) & 63]); + out.push_back(pad >= 2 ? '=' : tbl[(n >> 6) & 63]); + out.push_back(pad >= 1 ? '=' : tbl[n & 63]); + return out; + }; + std::string out; + out.reserve(((data.size() + 2) / 3) * 4); + size_t i = 0; + for (; i + 3 <= data.size(); i += 3) + out += enc(((unsigned char) data[i]) << 16 | ((unsigned char) data[i + 1]) << 8 | ((unsigned char) data[i + 2]), 0); + if (i + 1 == data.size()) + out += enc(((unsigned char) data[i]) << 16, 2); + else if (i + 2 == data.size()) + out += enc(((unsigned char) data[i]) << 16 | ((unsigned char) data[i + 1]) << 8, 1); + return out; +} + +// data:URI for the pattern pictogram icons/param_.svg, or "" when there is no such icon. +// This mirrors the sidebar Choice field (Field.cpp add_item_bitmaps), which loads param_.svg +// per enum value - most settings have no icon, only pattern-style enums (infill/support patterns). +// Base64 data URIs are used so the embedded webview renders them identically on every backend +// (no file:// subresource / CORS restrictions). +std::string setting_icon_for_key(const std::string& key) +{ + if (key.empty()) + return {}; + + const std::string path = (boost::filesystem::path(resources_dir()) / "images" / ("param_" + key + ".svg")).string(); + // Non-throwing stat: a throwing filesystem_error here would propagate out of snapshot() and + // abort the app (the palette opener). exists(fs ::error_code) never throws. + boost::system::error_code ec; + if (!boost::filesystem::exists(path, ec)) + return {}; + + std::ifstream in(path, std::ios::binary); + if (!in) + return {}; + std::string data((std::istreambuf_iterator(in)), std::istreambuf_iterator()); + if (data.empty()) + return {}; + + return "data:image/svg+xml;base64," + base64_encode(data); +} + +// [{value,key,label,icon}...] for an enum/combo. Ordered by enum_values when present, else by the +// keys_map iteration. label falls back to the key when enum_labels doesn't provide one. `icon` is +// the value's pattern pictogram when one exists, empty otherwise. +nlohmann::json setting_enum_options(const ConfigOptionDef& def) +{ + nlohmann::json out = nlohmann::json::array(); + auto label_at = [&](size_t i, const std::string& key) -> std::string { + return (i < def.enum_labels.size() && !def.enum_labels[i].empty()) ? def.enum_labels[i] : key; + }; + if (def.enum_keys_map != nullptr) { + std::vector ordered; + if (!def.enum_values.empty()) + ordered = def.enum_values; + else + for (const auto& kv : *def.enum_keys_map) + ordered.push_back(kv.first); + for (size_t i = 0; i < ordered.size(); ++i) { + auto it = def.enum_keys_map->find(ordered[i]); + if (it == def.enum_keys_map->end()) + continue; + out.push_back({{"value", it->second}, + {"key", ordered[i]}, + {"label", label_at(i, ordered[i])}, + {"icon", setting_icon_for_key(ordered[i])}}); + } + } else { + for (size_t i = 0; i < def.enum_values.size(); ++i) + out.push_back({{"value", (long long) i}, + {"key", def.enum_values[i]}, + {"label", label_at(i, def.enum_values[i])}, + {"icon", setting_icon_for_key(def.enum_values[i])}}); + } + return out; +} + +// The pattern pictogram for a setting's CURRENT value (its enum int), empty when it isn't a +// pattern-style enum or the value has no icon. Used for the search-result tile. +std::string setting_action_icon(const SettingAction& a) +{ + Tab* tab = wxGetApp().get_tab(a.type); + if (!tab || !tab->get_config()) + return {}; + DynamicPrintConfig* config = tab->get_config(); + const ConfigOptionDef* def = config->def()->get(a.opt_key); + if (!def || def->type != coEnum || (int(def->type) & int(coVectorType)) != 0) + return {}; + // Read the value WITHOUT config->opt_int(): the non-const overload routes through a type-checked + // option() that returns null for enum values (type() is coEnum, not coInt) and + // would deref null. Pull the ConfigOption* and dynamic_cast instead (succeeds: enums derive from + // ConfigOptionInt), falling back to the def default when the option is absent. + const ConfigOption* opt = (config->has(a.opt_key) ? config->option(a.opt_key) : def->default_value.get()); + const ConfigOptionInt* int_opt = dynamic_cast(opt); + if (!int_opt) + return {}; + const int value = int_opt->getInt(); + if (def->enum_keys_map) + for (const auto& kv : *def->enum_keys_map) + if (kv.second == value) + return setting_icon_for_key(kv.first); + return {}; +} + +std::string SettingAction::icon() const { return setting_action_icon(*this); } + +// Current value of the option at vector index `idx` as JSON (bool/number/string), or null for a +// type the inline editor doesn't render. `config` is the tab's live config; when an option is +// absent the def's default is shown. +nlohmann::json setting_value_json(const DynamicPrintConfig& config, const ConfigOptionDef& def, size_t idx) +{ + const ConfigOption* opt = config.option(def.opt_key); + const ConfigOption* root = opt ? opt : def.default_value.get(); + if (!root) + return nullptr; + switch (def.type) { + case coBool: return root->getBool(); + case coInt: return root->getInt(); + case coFloat: return root->getFloat(); + case coPercent: return root->getFloat(); + case coString: return static_cast(root)->value; + case coEnum: return root->getInt(); + case coBools: { + if (auto v = dynamic_cast(root)) + return bool(v->get_at(idx)); + if (auto v = dynamic_cast(root)) + return bool(v->get_at(idx) != 0); + return nullptr; + } + case coInts: { + if (auto v = dynamic_cast(root)) + return v->get_at(idx); + if (auto v = dynamic_cast(root)) { + const int nil = ConfigOptionIntsNullable::nil_value(); + int val = v->get_at(idx); + return val == nil ? nlohmann::json(nullptr) : nlohmann::json(val); + } + return nullptr; + } + case coFloats: { + if (auto v = dynamic_cast(root)) + return v->get_at(idx); + if (auto v = dynamic_cast(root)) { + double val = v->get_at(idx); + return std::isnan(val) ? nlohmann::json(nullptr) : nlohmann::json(val); + } + return nullptr; + } + case coPercents: { + if (auto v = dynamic_cast(root)) + return v->get_at(idx); + if (auto v = dynamic_cast(root)) { + double val = v->get_at(idx); + return std::isnan(val) ? nlohmann::json(nullptr) : nlohmann::json(val); + } + return nullptr; + } + case coStrings: return static_cast(root)->get_at(idx); + case coEnums: { + if (auto v = dynamic_cast(root)) + return v->get_at(idx); + if (auto v = dynamic_cast(root)) { + const int nil = ConfigOptionEnumsGenericNullable::nil_value(); + int val = v->get_at(idx); + return val == nil ? nlohmann::json(nullptr) : nlohmann::json(val); + } + return nullptr; + } + case coFloatOrPercent: return root->serialize(); + case coFloatsOrPercents: { + if (auto v = dynamic_cast(root)) { + auto ss = v->vserialize(); + return idx < ss.size() ? ss[idx] : nullptr; + } + if (auto v = dynamic_cast(root)) { + auto ss = v->vserialize(); + return idx < ss.size() ? ss[idx] : nullptr; + } + return nullptr; + } + default: return nullptr; + } +} + +// How many scalar values the option currently has (1 for scalars, the array length for vectors). +size_t setting_value_count(const DynamicPrintConfig& config, const ConfigOptionDef& def) +{ + if ((int(def.type) & int(coVectorType)) == 0) + return 1; + // size() lives on ConfigOptionVectorBase, not ConfigOption - dynamic_cast to it covers every + // vector type (and their nullable variants) polymorphically. + const ConfigOption* opt = config.option(def.opt_key); + if (opt) + if (auto v = dynamic_cast(opt)) + return v->size(); + if (def.default_value) + if (auto v = dynamic_cast(def.default_value.get())) + return v->size(); + return 1; +} + +// boost::any for a single element, matching what Slic3r::GUI::change_opt_value expects. +boost::any setting_any_from_json(const ConfigOptionDef& def, const nlohmann::json& v) +{ + if (!v.is_null()) { + switch (def.type) { + case coBool: return boost::any(v.is_boolean() ? v.get() : v.get() != 0); + case coInt: return boost::any(v.get()); + case coFloat: + case coPercent: return boost::any(v.get()); + case coString: return boost::any(v.get()); + case coEnum: return boost::any(v.get()); + case coBools: return boost::any(static_cast(v.get() ? 1 : 0)); + case coInts: return boost::any(v.get()); + case coFloats: + case coPercents: return boost::any(v.get()); + case coStrings: return boost::any(v.get()); + case coFloatOrPercent: + case coFloatsOrPercents: { + // change_opt_value detects "percent" via a trailing '%', so trim whitespace first or a + // stray space (e.g. "10% ") would be misread as mm. + std::string s = v.is_string() ? v.get() : std::to_string(v.get()); + boost::trim(s); + // An empty string would make change_opt_value's str.back() UB - bail out to a rejected apply. + return s.empty() ? boost::any() : boost::any(s); + } + case coEnums: return boost::any(v.get()); + default: break; + } + } + // Coerce numeric types that may arrive as a different JSON numeric type. + if (v.is_number()) { + switch (def.type) { + case coInt: + case coEnums: return boost::any(v.get()); + case coFloat: + case coPercent: + case coInts: + case coFloats: + case coPercents: return boost::any(v.get()); + default: break; + } + } + return boost::any(); } } // namespace @@ -411,7 +759,9 @@ void ActionRegistry::remove(const std::string& id) void ActionRegistry::seed_state(AppAction& a) const { - auto favs = read_string_array("favourite_actions"); + // Favourites carry the quick-launch order, so the persisted list is the source of truth + // (not re-derived from the frecency sort). Cap it so stale configs can't exceed kFavLimit. + auto favs = favourite_ids(); a.favourite = std::find(favs.begin(), favs.end(), a.id()) != favs.end(); nlohmann::json stats = read_section("stats", nlohmann::json::object()); @@ -469,18 +819,40 @@ AppActionRunResult ActionRegistry::run(const std::string& id, const std::string& return o; } -void ActionRegistry::set_favourite(const std::string& id, bool on) +bool ActionRegistry::set_favourite(const std::string& id, bool on) { assert(wxThread::IsMain()); - auto favs = read_string_array("favourite_actions"); + // Start from the capped, deduped list so a persisted config can never be written back larger. + auto favs = favourite_ids(); auto it = std::find(favs.begin(), favs.end(), id); - if (on && it == favs.end()) + if (on && it == favs.end()) { + if (favs.size() >= kFavLimit) + return false; // bar is full - the caller surfaces a hint favs.push_back(id); + } if (!on && it != favs.end()) favs.erase(it); write_section("favourite_actions", nlohmann::json(favs)); if (AppAction* live = find(id)) live->favourite = on; + return true; +} + +std::vector ActionRegistry::favourite_ids() const +{ + assert(wxThread::IsMain()); + // Enforce the cap + dedupe on read so the persisted order can never grow past kFavLimit, + // even from an older config. The pinned order is intentionally preserved (slice, not sort). + std::vector favs = read_string_array("favourite_actions"); + std::vector out; + out.reserve(std::min(favs.size(), kFavLimit)); + for (const auto& id : favs) { + if (out.size() >= kFavLimit) + break; + if (std::find(out.begin(), out.end(), id) == out.end()) + out.push_back(id); + } + return out; } void ActionRegistry::reorder_favourites(const std::vector& ids) @@ -496,9 +868,78 @@ void ActionRegistry::reorder_favourites(const std::vector& ids) for (const auto& id : cur) if (std::find(next.begin(), next.end(), id) == next.end()) next.push_back(id); + // never write the bar back larger than the quick-launch slots + if (next.size() > kFavLimit) + next.resize(kFavLimit); write_section("favourite_actions", nlohmann::json(next)); } +void ActionRegistry::materialize_setting_actions() +{ + assert(wxThread::IsMain()); + + // Reuse the Sidebar's live searcher: it's the only OptionsSearcher whose groups_and_categories + // map is populated (Tab::add_key feeds it at build time), and it already mirrors the current + // configs/mode/printer-technology - i.e. exactly what the sidebar's own search would show. A + // fresh OptionsSearcher has an empty groups_and_categories, so append_options() would drop every + // option and nothing would materialise. Turn each visible option into a SettingAction. + const std::vector& options = wxGetApp().sidebar().get_searcher().all_options(); + + // Load the persisted per-action state ONCE (not per-option) so a re-materialised setting keeps + // its recency/favourite; mirroring seed_state but amortised over the whole option set. + nlohmann::json stats = read_section("stats", nlohmann::json::object()); + if (!stats.is_object()) + stats = nlohmann::json::object(); + const std::vector favs = favourite_ids(); + + std::unordered_set seen; + for (const Search::Option& opt : options) { + // Omit rows the inline editor can't represent and that aren't useful as a jump target: + // readonly (e.g. the detected thread count) and legend (static text) GUI rows. They remain + // in the sidebar's own search; only the Speed Dial pool drops them. + Tab* tab = wxGetApp().get_tab(opt.type); + if (tab && tab->get_config()) { + const ConfigOptionDef* def = tab->get_config()->def()->get(opt.opt_key()); + if (!def || def->readonly || def->gui_type == ConfigOptionDef::GUIType::legend) + continue; + } + + const std::string id = SettingAction::id_for(opt.opt_key(), opt.type); + seen.insert(id); + + const std::wstring label_w = opt.label_local.empty() ? opt.label : opt.label_local; + + // Eyebrow/source = the full settings path "Process : Quality : Layers" (localized). The JS + // renders group || source and searches source + " " + group, so putting the whole path in + // source both displays it and makes it matchable by any segment (e.g. a "quality" query). + std::wstring path = boost::nowide::widen(setting_type_context(opt.type)); + if (!opt.category_local.empty()) + path += L" : " + opt.category_local; + if (!opt.group_local.empty()) + path += L" : " + opt.group_local; + + // title = the option leaf name (last label segment); group stays empty so the source path + // (above) is the single display/search breadcrumb rather than being duplicated. + auto action = std::make_unique(opt.opt_key(), opt.type, boost::nowide::narrow(label_w), + std::string(), opt.category_local, boost::nowide::narrow(path)); + action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); + if (auto it = stats.find(id); it != stats.end() && it->is_object()) { + action->count = it->value("count", 0); + action->last = it->value("last", 0LL); + } + m_actions.insert_or_assign(action->id(), std::shared_ptr(std::move(action))); + } + + // Drop SettingActions whose option no longer exists in the current configs (e.g. the printer + // technology / UI mode changed). Non-setting actions are untouched. + for (auto it = m_actions.begin(); it != m_actions.end();) { + if (it->first.rfind(kSettingPrefix, 0) == 0 && !seen.count(it->first)) + it = m_actions.erase(it); + else + ++it; + } +} + bool ActionRegistry::should_ask(const std::string& id) const { assert(wxThread::IsMain()); @@ -517,9 +958,13 @@ void ActionRegistry::suppress_ask(const std::string& id) // ---- snapshot --------------------------------------------------------------- -nlohmann::json ActionRegistry::snapshot() const +nlohmann::json ActionRegistry::snapshot() { assert(wxThread::IsMain()); + // Settings are first-class actions; make sure the current visible option set is materialised + // before we serialise the pool (tabs_list is built by the time the palette opens). + materialize_setting_actions(); + std::vector sorted; sorted.reserve(m_actions.size()); for (const auto& entry : m_actions) @@ -544,7 +989,8 @@ nlohmann::json ActionRegistry::snapshot() const {"source", a->source_name()}, {"group", a->group}, {"input", a->input}, - {"shortcut", ""}}); + {"shortcut", ""}, + {"icon", a->icon()}}); }; nlohmann::json actions = nlohmann::json::array(); @@ -554,7 +1000,8 @@ nlohmann::json ActionRegistry::snapshot() const // why: favourites is the ORDERED pin list - it must come from favourite_actions // as stored, not be re-derived from the frecency-sorted actions (that would // reorder the favourites bar). The page (js) filters out ids with no live action itself. - nlohmann::json favourites(read_string_array("favourite_actions")); + // Cap on read so the bar cannot exceed the quick-launch slots (kFavLimit). + nlohmann::json favourites(favourite_ids()); // Recent = the last-N launched actions by recency (only actions with a run history). constexpr size_t kRecentLimit = 5; @@ -576,49 +1023,6 @@ nlohmann::json ActionRegistry::snapshot() const return {{"actions", std::move(actions)}, {"favourites", std::move(favourites)}, {"recent", std::move(recent_json)}}; } -nlohmann::json ActionRegistry::settings_search(const std::string& query) -{ - assert(wxThread::IsMain()); - std::string q = boost::trim_copy(query); - // Empty query: show the recently-jumped-to settings instead of a blank list. - if (q.empty()) - return settings_recent(); - - // Use the sidebar's live searcher. It is the instance Tab registration (add_key) populates - // with each option's group/category, and it carries the current printer technology. A fresh - // OptionsSearcher has an empty groups_and_categories, so init()/append_options() drops every - // option and the search returns nothing. - Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher(); - searcher.init(settings_inputs()); - searcher.search(q, true); - auto& found = searcher.found_options(); - - constexpr size_t kLimit = 20; - const size_t n = std::min(kLimit, found.size()); - nlohmann::json out = nlohmann::json::array(); - for (size_t i = 0; i < n; ++i) { - const auto& opt = searcher.get_option(i); - // Clean plain label "category : group : label" - OptionsSearcher's own label string - // carries ImGui icon control chars + / markup (SUPPORTS_MARKUP), which render - // as garbage in the webview. Build it from the Option's localized strings instead. - std::wstring plain; - const std::wstring* prev = nullptr; - for (const std::wstring* const s : {&opt.category_local, &opt.group_local, &opt.label_local}) - if (s != nullptr && !s->empty() && (prev == nullptr || *prev != *s)) { - if (!plain.empty()) - plain += L" : "; - plain += *s; - prev = s; - } - out.push_back({{"opt_key", opt.opt_key()}, - {"type", int(opt.type)}, - {"label", boost::nowide::narrow(plain)}, - {"category", boost::nowide::narrow(opt.category)}, - {"group", boost::nowide::narrow(opt.group)}}); - } - return out; -} - // ---- tab options (enumerate the MainFrame notebook's current pages) ---------- nlohmann::json ActionRegistry::tab_options() const @@ -640,37 +1044,140 @@ nlohmann::json ActionRegistry::tab_options() const return out; } -// ---- settings recents (persisted, most-recent-first, capped at 8) ----------- +// ---- inline setting editor (read the current value) -------------------------- -nlohmann::json ActionRegistry::settings_recent() const +nlohmann::json ActionRegistry::setting_descriptor(const std::string& id) const { assert(wxThread::IsMain()); - return read_section("recent_settings", nlohmann::json::array()); + const AppAction* a = by_id(id); + const SettingAction* sa = dynamic_cast(a); + if (!sa) + return nlohmann::json::object(); + Tab* tab = wxGetApp().get_tab(sa->type); + if (!tab) + return nlohmann::json::object(); + DynamicPrintConfig* config = tab->get_config(); + if (!config) + return nlohmann::json::object(); + const ConfigOptionDef* def = config->def()->get(sa->opt_key); + if (!def) + return nlohmann::json::object(); + + const std::string control = setting_control(*def); + const bool vector = (int(def->type) & int(coVectorType)) != 0; + + nlohmann::json d = {{"id", sa->id()}, + {"opt_key", sa->opt_key}, + {"type", int(sa->type)}, + {"title", a->title()}, + {"breadcrumb", a->source_name()}, + {"category", boost::nowide::narrow(sa->category)}, + {"unit", def->sidetext}, + {"tooltip", def->tooltip}, + {"editable", !control.empty()}, + {"control", control}, + {"cardinality", vector ? "vector" : "scalar"}}; + + if (!control.empty()) { + // Hide unbounded min/max so the page doesn't clamp a sane value to ±FLT_MAX. + if (def->min > -FLT_MAX) + d["min"] = def->min; + if (def->max < FLT_MAX) + d["max"] = def->max; + if (control == "number") + d["is_int"] = (def->type == coInt || def->type == coInts); + if (control == "dropdown" || control == "combo") + d["enum_options"] = setting_enum_options(*def); + if (vector) { + nlohmann::json values = nlohmann::json::array(); + nlohmann::json labels = nlohmann::json::array(); + const size_t n = setting_value_count(*config, *def); + for (size_t i = 0; i < n; ++i) { + values.push_back(setting_value_json(*config, *def, i)); + labels.push_back(std::to_string(i + 1)); + } + d["values"] = std::move(values); + d["index_labels"] = std::move(labels); + } else { + d["value"] = setting_value_json(*config, *def, 0); + } + } + return d; } -void ActionRegistry::record_setting_recent( - const std::string& opt_key, int type, const std::string& label, const std::string& category, const std::string& group) +// ---- inline setting editor (write the edited value back) --------------------- + +bool ActionRegistry::apply_setting(const std::string& id, const nlohmann::json& value) { assert(wxThread::IsMain()); - if (opt_key.empty()) - return; + const AppAction* a = by_id(id); + const SettingAction* sa = dynamic_cast(a); + if (!sa) + return false; + Tab* tab = wxGetApp().get_tab(sa->type); + if (!tab) + return false; + DynamicPrintConfig* config = tab->get_config(); + if (!config) + return false; + const ConfigOptionDef* def = config->def()->get(sa->opt_key); + if (!def) + return false; + const std::string control = setting_control(*def); + if (control.empty()) + return false; - constexpr size_t kLimit = 8; - auto arr = read_section("recent_settings", nlohmann::json::array()); - if (!arr.is_array()) - arr = nlohmann::json::array(); - auto same = [&](const nlohmann::json& e) { - return e.is_object() && e.value("opt_key", std::string()) == opt_key && e.value("type", int(-1)) == type; - }; + const bool vector = (int(def->type) & int(coVectorType)) != 0; + const size_t n = vector ? (value.is_array() ? value.size() : 0) : 1; + if (vector && n == 0) + return false; - nlohmann::json next = nlohmann::json::array(); - next.push_back({{"opt_key", opt_key}, {"type", type}, {"label", label}, {"category", category}, {"group", group}}); - for (const auto& e : arr) - if (!same(e)) - next.push_back(e); - if (next.size() > kLimit) - next.erase(next.begin() + long(kLimit), next.end()); - write_section("recent_settings", next); + for (size_t i = 0; i < n; ++i) { + const nlohmann::json& elem = vector ? value[i] : value; + boost::any any = setting_any_from_json(*def, elem); + if (any.empty()) + return false; + if (control == "number" && elem.is_number()) { + const double d = elem.get(); + if (d < def->min || d > def->max) + return false; + } + if (control == "percent" && elem.is_string()) { + // "mm or %" value: strip a trailing %/whitespace, clamp the numeric part to [min,max]. + // Reject anything that isn't a well-formed number (which change_opt_value would throw on). + std::string s = elem.get(); + boost::trim(s); + if (!s.empty() && s.back() == '%') + s.pop_back(); + boost::trim(s); + if (s.empty()) + return false; + char* end = nullptr; + const double d = std::strtod(s.c_str(), &end); + if (end == s.c_str() || *end != '\0') + return false; + if (d < def->min || d > def->max) + return false; + } + Slic3r::GUI::change_opt_value(*config, sa->opt_key, any, int(i)); + } + + // Mark the preset modified like a sidebar edit. Scalar options also get the standard + // post-change hook so dependent settings refresh; vector options have no unambiguous scalar + // value to pass, so on_value_change is skipped (the config write + dirty flag is still correct). + tab->update_dirty(); + if (!vector) { + boost::any any = setting_any_from_json(*def, value); + if (!any.empty()) + tab->on_value_change(sa->opt_key, any); + } + + // The config write is separate from the on-screen Field, so repaint the field(s) that display + // this option (on whatever page they live, not just the active page) - otherwise the sidebar + // shows the "modified" arrow but keeps the stale value pushed to the last edit/reload. + if (Page* page = nullptr; tab->get_field(sa->opt_key, &page) && page) + page->reload_config(); + return true; } }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index 7b718b4c09..1c481c1da9 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -31,6 +32,14 @@ struct AppActionRunResult wxString message; // empty = "nothing worth showing" }; +// Tag carrying a precomputed action id, used by the explicit-id ctor below. It exists so the +// id ctor and the compose-from-prefix ctor are NOT both reachable from a `const char*` first +// argument (which would make calls like AppAction("orca_command", ...) ambiguous). +struct AppActionId +{ + std::string id; +}; + // A speed-dial action: identity + user-state seeded from config + how to run itself. // Abstract base - the only virtual is run(); concrete subclasses know how to run // and what their source is. @@ -72,6 +81,11 @@ struct AppAction // commands (e.g. a layer percentage); plugins ignore it. virtual AppActionRunResult run(const std::string& param = {}) const = 0; + // Optional data:URI for a small pictogram to show in the palette row/tile/the editor + // (e.g. the current infill/pattern). Empty string = fall back to the monogram. Only + // SettingAction overrides this; the base returns an empty string. + virtual std::string icon() const { return {}; } + protected: // The definition is constructor-set and immutable. Refreshes replace an action // instead of mutating identity after the registry has indexed it by id. @@ -83,6 +97,14 @@ protected: m_source_key(std::move(source_key)), m_source_name(std::move(source_name)) {} + // Explicit-id ctor: for actions whose id must NOT be derived from the display title + // (e.g. a setting action keyed by opt_key+type, so a rename/localization never re-keys it). + AppAction(AppActionId id, std::string title, std::string source_key, std::string source_name) + : m_id(std::move(id.id)), + m_title(std::move(title)), + m_source_key(std::move(source_key)), + m_source_name(std::move(source_name)) {} + private: std::string m_id; // ::<source_key> - stable identity + AppConfig key std::string m_title; // display name @@ -122,34 +144,27 @@ public: // Always-clean read surface. UI thread only. const AppAction* by_id(const std::string& id) const; + // Hard cap on the favourites bar: the numbered quick-launch slots (Alt/Option+1..9, 0). + static constexpr size_t kFavLimit = 10; + // Dispatch + write-through (registry is the only thing that touches AppConfig). AppActionRunResult run(const std::string& id, const std::string& param = {}); // runs + bumps stats - void set_favourite(const std::string& id, bool on); + // Pin/unpin. Returns false when `on` would exceed kFavLimit (the bar is full) so the + // caller can surface a "favourites are full" hint instead of silently dropping the pin. + bool set_favourite(const std::string& id, bool on); void reorder_favourites(const std::vector<std::string>& ids); // persist a new bar order + // Ordered pinned list (the source of truth), capped at kFavLimit and deduped, matching the + // visible bar the palette renders. + std::vector<std::string> favourite_ids() const; + // Run-confirm gate, keyed by action id (per-action "don't ask again"). bool should_ask(const std::string& id) const; void suppress_ask(const std::string& id); // Flat, frecency-sorted snapshot for the webview: // {actions:[...], favourites:[...], recent:[...]} (recent = last-N launched by recency). - nlohmann::json snapshot() const; - - // "Go to setting..." Speed Dial helper: query the current print/filament/printer - // config options via the sidebar's live OptionsSearcher (the instance Tab registration - // populates with group/category, and which carries the current printer technology) and - // return the top matches as JSON. The searcher is re-seeded from the current configs + - // user mode on every call so the result always reflects what the sidebar's own search - // would show. An empty/whitespace query returns the recent settings list (below), and the - // page shows a "type to search" hint when there are no recents. - nlohmann::json settings_search(const std::string& query); - - // Recently-jumped-to settings, persisted (most-recent-first, capped at 8). Returns the - // stored JSON array [{opt_key,type,label,category,group},...]; record_setting_recent() - // prepends an entry (deduped by opt_key+type) and re-persists. - nlohmann::json settings_recent() const; - void record_setting_recent(const std::string& opt_key, int type, const std::string& label, - const std::string& category, const std::string& group); + nlohmann::json snapshot(); // "Go to tab..." Speed Dial helper: enumerate the MainFrame notebook's current pages // as [{id,title},...]. Live by construction - built-in tabs (Home/Prepare/Preview/Device/ @@ -158,10 +173,25 @@ public: // plugins) aren't separate pages and are not listed. Call on the UI thread; null-safe. nlohmann::json tab_options() const; + // Inline setting editor descriptor for a SettingAction id. Returns the JSON the palette + // renders: {id, opt_key, type, title, breadcrumb, category, group, unit, tooltip, editable, + // control ("toggle|number|dropdown|combo|text|color"), cardinality ("scalar"|"vector"), + // value|values, index_labels[], enum_options[], min|max}. Empty object for a non-setting id. + nlohmann::json setting_descriptor(const std::string& id) const; + // Apply an edit submitted by the palette. `value` is the control's JSON payload (scalar, or an + // array for vector settings). Writes the value(s) into the global preset config and marks the + // preset dirty, exactly like a sidebar edit. Returns false on a bad id/type/value. + bool apply_setting(const std::string& id, const nlohmann::json& value); + private: void seed_state(AppAction& a) const; // favourite/stats from config AppAction* find(const std::string& id); + // (Re)materialise the current visible config settings as SettingActions from the live + // searcher (respecting printer-tech + user-mode + visibility filtering), removing stale ones. + // Called at the top of snapshot() so the palette always reflects the current configs. + void materialize_setting_actions(); + // Loader callbacks (marshalled to the UI thread) land here. refresh_source rebuilds // one plugin's whole action set; refresh_capability touches a single capability. void refresh_source(const std::string& plugin_key, ActionChange change); diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index 82e499ac55..6ea121c16d 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -198,7 +198,8 @@ void KBShortcutsDialog::fill_shortcuts() // Switch table page { ctrl + L("Tab"), L("Switch table page")}, // Open speed dial - { ctrl + "K", L("Open speed dial") }, + { "Space", L("Open speed dial") }, + { alt + "1..9,0", L("Run a Speed Dial favourite") }, //DEL #ifdef __APPLE__ {"fn+⌫", L("Delete Selected")}, diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 2b4c8754c8..a6a665d3f7 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -1,6 +1,7 @@ #include "MainFrame.hpp" #include <wx/panel.h> +#include <wx/textentry.h> #include <wx/notebook.h> #include <wx/listbook.h> #include <wx/simplebook.h> @@ -701,8 +702,18 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ } return;} #endif - // Orca: open the speed dial from any page. CmdDown() = Ctrl on Win/Linux, Cmd on macOS. - if (evt.CmdDown() && evt.GetKeyCode() == 'K') { wxGetApp().open_speed_dial(); return; } + // Orca: open the speed dial from any page with a bare Space. Only when no modifier is held (so + // editing shortcuts like Ctrl+Shift+Space in the canvas still reach it) and while no text field + // is focused, so typing a space into the search box or a parameter value isn't hijacked. + if (!evt.CmdDown() && !evt.ShiftDown() && !evt.AltDown() && evt.GetKeyCode() == WXK_SPACE) { + wxWindow* focus = wxWindow::FindFocus(); + if (focus && dynamic_cast<wxTextEntryBase*>(focus)) { + evt.Skip(); // typing in a text field - let the space reach it + return; + } + wxGetApp().open_speed_dial(); + return; + } if (evt.CmdDown() && evt.GetKeyCode() == 'R') { if (m_slice_enable) { wxGetApp().plater()->update(true, true); wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_SLICE_PLATE)); this->m_tabpanel->SelectPageByName(TAB_ID_PREVIEW); } return; } if (evt.CmdDown() && evt.ShiftDown() && evt.GetKeyCode() == 'G') { m_plater->apply_background_progress(); @@ -3350,7 +3361,7 @@ void MainFrame::init_menubar_as_editor() "", nullptr, []() { return true; }, this, 1); parent_menu->AppendSeparator(); append_menu_item( - parent_menu, wxID_ANY, _L("Open speed dial...") + sep + ctrl_t + "K", "", + parent_menu, wxID_ANY, _L("Open speed dial...") + sep + "Space", "", [](wxCommandEvent &) { wxGetApp().open_speed_dial(); }, "", nullptr, []() { return true; }, this); //parent_menu->Insert(1, preference_item); @@ -3378,7 +3389,7 @@ void MainFrame::init_menubar_as_editor() top_menu->AppendSeparator(); append_menu_item( - top_menu, wxID_ANY, _L("Open speed dial...") + "\t" + ctrl + "K", "", + top_menu, wxID_ANY, _L("Open speed dial...") + "\t" + "Space", "", [](wxCommandEvent &) { wxGetApp().open_speed_dial(); }, "", nullptr, []() { return true; }, this); top_menu->AppendSeparator(); @@ -3522,7 +3533,7 @@ void MainFrame::init_menubar_as_editor() // On Mac, the Apple menu ignores non-standard custom items, so add Preset Bundle to the File menu fileMenu->AppendSeparator(); append_menu_item( - fileMenu, wxID_ANY, _L("Open speed dial...") + sep + ctrl_t + "K", "", + fileMenu, wxID_ANY, _L("Open speed dial...") + sep + "Space", "", [](wxCommandEvent&) { wxGetApp().open_speed_dial(); }, "", nullptr, []() { return true; }, this); append_menu_item( diff --git a/src/slic3r/GUI/ParamsPanel.cpp b/src/slic3r/GUI/ParamsPanel.cpp index a0834666ad..5a49df1280 100644 --- a/src/slic3r/GUI/ParamsPanel.cpp +++ b/src/slic3r/GUI/ParamsPanel.cpp @@ -324,7 +324,9 @@ ParamsPanel::ParamsPanel( wxWindow* parent, wxWindowID id, const wxPoint& pos, c wxID_ANY, wxDefaultPosition, wxDefaultSize, - wxVSCROLL) // hide hori-bar will cause hidden field mis-position + wxVSCROLL // hide hori-bar will cause hidden field mis-position + | wxTAB_TRAVERSAL // Allows for traversal via tab key + ) { // ShowScrollBar(GetHandle(), SB_BOTH, FALSE); Bind(wxEVT_SCROLL_CHANGED, [this](auto &e) { diff --git a/src/slic3r/GUI/Search.hpp b/src/slic3r/GUI/Search.hpp index 4ae43dbca0..859a012f46 100644 --- a/src/slic3r/GUI/Search.hpp +++ b/src/slic3r/GUI/Search.hpp @@ -148,6 +148,10 @@ public: void show_dialog(Preset::Type type, wxWindow *parent, TextInput *input, wxWindow *ssearch_btn); void dlg_sys_color_changed(); void dlg_msw_rescale(); + + // The full gated option set built by init() (after visibility/mode/printer-tech filtering). + // Used by the Speed Dial to materialise config settings as first-class actions. + const std::vector<Option>& all_options() const { return options; } }; //------------------------------------------ diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index 8a0aca5445..593d8a7344 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -11,6 +11,8 @@ #include <libslic3r/Preset.hpp> +#include <boost/nowide/convert.hpp> + #include <algorithm> #include <wx/display.h> @@ -127,9 +129,14 @@ void SpeedDialWebDialog::handle_web_command(const nlohmann::json& payload) if (command == "request_actions") { m_page_ready = true; send_actions(); - } else if (command == "toggle_favourite") - wxGetApp().action_registry().set_favourite(payload.value("id", ""), payload.value("fav", false)); - else if (command == "reorder_favourites") { + } else if (command == "toggle_favourite") { + // set_favourite() refuses once the bar hits kFavLimit; tell the page so it can undo the + // star and show a "favourites are full" hint instead of silently losing the pin. + const std::string fav_id = payload.value("id", ""); + const bool ok = wxGetApp().action_registry().set_favourite(fav_id, payload.value("fav", false)); + if (!ok) + call_web_handler({{"command", "favourite_full"}, {"limit", (int) ActionRegistry::kFavLimit}, {"id", fav_id}}); + } else if (command == "reorder_favourites") { std::vector<std::string> ids; if (payload.contains("ids") && payload["ids"].is_array()) for (const auto& id : payload["ids"]) @@ -138,21 +145,6 @@ void SpeedDialWebDialog::handle_web_command(const nlohmann::json& payload) wxGetApp().action_registry().reorder_favourites(ids); } else if (command == "run_action") run_action(payload.value("id", ""), payload.value("title", ""), payload.value("param", "")); - else if (command == "go_to_setting") { - // "Go to setting..." second phase: the page hands back the option it matched. - const std::string opt_key = payload.value("opt_key", ""); - if (!opt_key.empty()) { - const int type = json_int_or(payload, "type", int(Preset::TYPE_INVALID)); - const std::string label = payload.value("label", ""); - const std::string group = payload.value("group", ""); - const std::string cat = payload.value("category", ""); - // Track it in the palette's recent-settings list before jumping (persisted). - wxGetApp().action_registry().record_setting_recent(opt_key, type, label, cat, group); - Hide(); - wxGetApp().sidebar().jump_to_option(opt_key, Preset::Type(type), from_u8(cat).ToStdWstring()); - } - } else if (command == "search_settings") - search_settings(payload.value("q", "")); else if (command == "search_tabs") search_tabs(); else if (command == "go_to_tab") { @@ -163,6 +155,27 @@ void SpeedDialWebDialog::handle_web_command(const nlohmann::json& payload) if (wxGetApp().mainframe) wxGetApp().mainframe->select_tab(from_u8(tab_id)); } + } else if (command == "setting_descriptor") { + // Inline editor: hand the page the descriptor for the setting it's editing. + const std::string id = payload.value("id", ""); + call_web_handler( + {{"command", "setting_descriptor"}, {"descriptor", wxGetApp().action_registry().setting_descriptor(id)}}); + } else if (command == "set_setting") { + // Inline editor submit. Apply the value; on success close the dialog. + const std::string id = payload.value("id", ""); + const nlohmann::json value = payload.contains("value") ? payload["value"] : nlohmann::json(nullptr); + if (id.empty() || !wxGetApp().action_registry().apply_setting(id, value)) { + call_web_handler({{"command", "apply_failed"}, {"id", id}}); + return; + } + Hide(); + } else if (command == "open_setting_in_sidebar") { + // Non-inline-editable setting (points, plugin-backed, float-or-percent): jump the sidebar. + Hide(); + const std::string opt_key = payload.value("opt_key", ""); + const std::string category = payload.value("category", ""); + if (!opt_key.empty()) + wxGetApp().sidebar().jump_to_option(opt_key, Preset::Type(payload.value("type", int(Preset::TYPE_INVALID))), boost::nowide::widen(category)); } else if (command == "resize") resize_to_content(json_int_or(payload, "height", 0)); } @@ -179,18 +192,6 @@ void SpeedDialWebDialog::search_tabs() }); } -void SpeedDialWebDialog::search_settings(const std::string& query) -{ - // Round-trip is async because the webview delivers script messages synchronously on the - // GTK/macOS stack; defer the (cheap) search and push the result back to the page. - wxGetApp().CallAfter([this, alive = m_alive, query]() { - if (!alive->load(std::memory_order_acquire)) - return; - auto results = wxGetApp().action_registry().settings_search(query); - call_web_handler({{"command", "settings_results"}, {"results", std::move(results)}}); - }); -} - void SpeedDialWebDialog::resize_to_content(int height) { if (height <= 0) diff --git a/src/slic3r/GUI/SpeedDialDialog.hpp b/src/slic3r/GUI/SpeedDialDialog.hpp index 74e806dd85..26734dd841 100644 --- a/src/slic3r/GUI/SpeedDialDialog.hpp +++ b/src/slic3r/GUI/SpeedDialDialog.hpp @@ -22,7 +22,6 @@ private: void resize_to_content(int height); void run_action(const std::string& id, const std::string& title, const std::string& param = ""); void send_actions(); - void search_settings(const std::string& query); void search_tabs(); bool m_page_ready{false}; From 846a95374f1ca0e287e919138afbaf92dc4d64c3 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Tue, 8 Sep 2026 18:23:51 +0800 Subject: [PATCH 03/76] Fixed unit test issue. Added basic object manipulation to actions. Added calibration wizards to actions. Added View controls to actions --- src/slic3r/GUI/ActionRegistry.cpp | 257 ++++++++++++++++++++++- tests/slic3rutils/test_action_source.cpp | 4 +- 2 files changed, 258 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index 3e56c857cc..bb8c57b615 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -1,5 +1,6 @@ #include "ActionRegistry.hpp" +#include "calib_dlg.hpp" #include "GCodeViewer.hpp" #include "GLCanvas3D.hpp" #include "GUI.hpp" @@ -231,6 +232,15 @@ void go_to_layer(Plater* plater, const std::string& param) } } +// Select a named camera view ("top"/"front"/...); Plater::select_view dispatches to the current +// panel. Shared by the view_* speed-dial commands. +AppActionRunResult view_command(Plater* plater, const std::string& dir) +{ + if (plater) + plater->select_view(dir); + return {AppActionRunResult::Level::Success}; +} + // Dispatch a built-in command. The CommandAction stays a thin value; the actual GUI work // lives here so it can touch the live app state. AppActionRunResult run_native_command(const std::string& command_key, const std::string& param) @@ -267,6 +277,8 @@ AppActionRunResult run_native_command(const std::string& command_key, const std: } if (command_key == "slice_and_preview") { if (plater) { + // Actually re-slice (respects the toolbar's current plate/all selection), then show the result. + plater->reslice(); plater->select_view_3D("Preview", false); if (app.mainframe) app.mainframe->select_tab(TAB_ID_PREVIEW); @@ -286,6 +298,200 @@ AppActionRunResult run_native_command(const std::string& command_key, const std: // dispatch here is a no-op (the jump goes through the go_to_tab web command). if (command_key == "go_to_tab") return {AppActionRunResult::Level::Success}; + + // ---- Slice -> Export pipeline. Each Plater method self-guards (empty model / error / + // background-invalid) and then opens its own save dialog / show_error, mirroring the File menu. + if (command_key == "export_gcode") { + if (plater) + plater->export_gcode(false); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "export_stl") { + if (plater) + plater->export_stl(); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "export_3mf") { + if (plater) + plater->export_core_3mf(); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "export_sliced_file") { + if (plater) + plater->export_gcode_3mf(); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "export_all_sliced_file") { + if (plater) + plater->export_gcode_3mf(true); + return {AppActionRunResult::Level::Success}; + } + + // ---- Calibration wizards. Each mirrors the menu handler (MainFrame.cpp): recreate the dialog + // fresh per launch. The palette hides itself and defers dispatch off the webview callback, so a + // ShowModal() here is safe (same path as open_preferences). The 3D panel is ensured below. + auto calib = [&](auto&& open) -> AppActionRunResult { + if (!plater) + return {AppActionRunResult::Level::Info, _L("Open the 3D view first.")}; + // Auto-switch to the Prepare (3D) view instead of prompting: set the 3D panel + // synchronously (the wizard's new_project also re-establishes it) and select the + // Prepare notebook page so the tab label matches. The palette is hidden and this + // dispatch is deferred off the webview callback, so a modal on a switched tab is safe. + if (!plater->is_view3D_shown()) { + plater->select_view_3D("3D"); + if (MainFrame* mf = wxGetApp().mainframe; mf) + mf->select_tab(TAB_ID_PREPARE); + } + open(plater); + return {AppActionRunResult::Level::Success}; + }; + if (command_key == "calib_temperature") + return calib([](Plater* p) { + Temp_Calibration_Dlg* dlg = new Temp_Calibration_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); + dlg->ShowModal(); + dlg->Destroy(); + }); + if (command_key == "calib_max_volumetric") + return calib([](Plater* p) { + MaxVolumetricSpeed_Test_Dlg* dlg = new MaxVolumetricSpeed_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); + dlg->ShowModal(); + dlg->Destroy(); + }); + if (command_key == "calib_pressure_advance") + return calib([](Plater* p) { + PA_Calibration_Dlg* dlg = new PA_Calibration_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); + dlg->ShowModal(); + dlg->Destroy(); + }); + if (command_key == "calib_flow_ratio") + return calib([](Plater* p) { + FlowRateCalibrationDialog* dlg = new FlowRateCalibrationDialog((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); + dlg->ShowModal(); + dlg->Destroy(); + }); + if (command_key == "calib_retraction") + return calib([](Plater* p) { + Retraction_Test_Dlg* dlg = new Retraction_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); + dlg->ShowModal(); + dlg->Destroy(); + }); + if (command_key == "calib_cornering") + return calib([](Plater* p) { + Cornering_Test_Dlg* dlg = new Cornering_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); + dlg->ShowModal(); + dlg->Destroy(); + }); + if (command_key == "calib_input_shaping_freq") + return calib([](Plater* p) { + Input_Shaping_Freq_Test_Dlg* dlg = new Input_Shaping_Freq_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); + dlg->ShowModal(); + dlg->Destroy(); + }); + if (command_key == "calib_input_shaping_damp") + return calib([](Plater* p) { + Input_Shaping_Damp_Test_Dlg* dlg = new Input_Shaping_Damp_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); + dlg->ShowModal(); + dlg->Destroy(); + }); + if (command_key == "calib_vfa") + return calib([](Plater* p) { + VFA_Test_Dlg* dlg = new VFA_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); + dlg->ShowModal(); + dlg->Destroy(); + }); + + // ---- View controls. select_view dispatches to the current panel; named views + perspective + // toggle + fit-to-bed mirror the View menu items (MainFrame.cpp). reset_window_layout is direct. + if (command_key == "view_top") + return view_command(plater, "top"); + if (command_key == "view_bottom") + return view_command(plater, "bottom"); + if (command_key == "view_front") + return view_command(plater, "front"); + if (command_key == "view_rear") + return view_command(plater, "rear"); + if (command_key == "view_left") + return view_command(plater, "left"); + if (command_key == "view_right") + return view_command(plater, "right"); + if (command_key == "view_iso") + return view_command(plater, "iso"); + if (command_key == "view_default") { + if (plater) { + plater->select_view("plate"); + if (GLCanvas3D* canvas = plater->get_current_canvas3D()) + canvas->zoom_to_bed(); + } + return {AppActionRunResult::Level::Success}; + } + if (command_key == "view_fit_bed") { + if (plater) + if (GLCanvas3D* canvas = plater->get_current_canvas3D()) + canvas->zoom_to_bed(); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "view_toggle_perspective") { + if (plater) + plater->get_camera().select_next_type(); + return {AppActionRunResult::Level::Success}; + } + if (command_key == "reset_window_layout") { + if (plater) + plater->reset_window_layout(); + return {AppActionRunResult::Level::Success}; + } + + // ---- Object / interaction operations (single-phase). Each mirrors a toolbar/menu action and is + // guarded by an existing can_* / selection check so nothing crashes on empty selection or a busy + // background worker, and returns a friendly Info instead. Structural ops self-update()/schedule a + // re-slice; transform ops (mirror/center/drop) post their own schedule-background event. We only + // need the underlying object (not a specific object index), so a non-capturing lambda is used as + // the guard/op pair below. Rotate/scale by angle/factor, duplicate (modal count dialog) and + // cut/segment/merge (unimplemented on Plater) are deliberately left out of this MVP. + auto obj = [&](bool (*ok)(Plater*), void (*op)(Plater*)) -> AppActionRunResult { + if (!plater) + return {AppActionRunResult::Level::Info, _L("Open the 3D view first.")}; + // Object ops read the Prepare (3D) canvas selection, so ensure that view before guarding so + // a launch from the Preview/other tab doesn't report a spuriously empty selection. + if (!plater->is_view3D_shown()) { + plater->select_view_3D("3D"); + if (MainFrame* mf = wxGetApp().mainframe; mf) + mf->select_tab(TAB_ID_PREPARE); + } + if (!ok(plater)) + return {AppActionRunResult::Level::Info, _L("Select an object first.")}; + op(plater); + return {AppActionRunResult::Level::Success}; + }; + if (command_key == "obj_delete") + return obj([](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->remove_selected(); }); + if (command_key == "obj_delete_all") + return obj([](Plater* p) { return p->can_delete_all(); }, [](Plater* p) { p->delete_all_objects_from_model(); }); + if (command_key == "obj_mirror_x") + return obj([](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::X); }); + if (command_key == "obj_mirror_y") + return obj([](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::Y); }); + if (command_key == "obj_mirror_z") + return obj([](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::Z); }); + if (command_key == "obj_split_objects") + return obj([](Plater* p) { return p->can_split_to_objects(); }, [](Plater* p) { p->split_object(true); }); + if (command_key == "obj_split_parts") + return obj([](Plater* p) { return p->can_split_to_volumes(); }, [](Plater* p) { p->split_volume(); }); + if (command_key == "obj_center") + return obj([](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->center_selection(); }); + if (command_key == "obj_drop") + return obj([](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->drop_selection(); }); + if (command_key == "obj_fit_volume") + return obj([](Plater* p) { return p->can_scale_to_print_volume(); }, [](Plater* p) { p->scale_selection_to_fit_print_volume(); }); + if (command_key == "obj_instances_up") + return obj([](Plater* p) { return p->can_increase_instances(); }, [](Plater* p) { p->increase_instances(); }); + if (command_key == "obj_instances_down") + return obj([](Plater* p) { return p->can_decrease_instances(); }, [](Plater* p) { p->decrease_instances(); }); + if (command_key == "obj_arrange") + return obj([](Plater* p) { return p->can_arrange(); }, [](Plater* p) { p->arrange(); }); + // Auto-orient has no dedicated can_*; can_arrange covers "objects exist + UI worker idle". + if (command_key == "obj_orient") + return obj([](Plater* p) { return p->can_arrange(); }, [](Plater* p) { p->orient(); }); return {AppActionRunResult::Level::Info, _L("Unknown command.")}; } @@ -315,7 +521,7 @@ std::vector<std::unique_ptr<AppAction>> native_commands() std::vector<std::unique_ptr<AppAction>> out; // why: _u8L (std::string) for titles/groups - make_command takes std::string; _L would // return a wxString and silently fail to convert here. - out.push_back(make_command("slice_and_preview", _u8L("Slice and Preview"), _u8L("Commands"))); + out.push_back(make_command("slice_and_preview", _u8L("Slice and Preview"), _u8L("Slice & Export"))); // Two-phase commands: activating them collects input in the palette, then runs. Settings are // not a command here - they're materialised as first-class SettingActions (see materialize_). out.push_back(make_command("go_to_layer", _u8L("Go to layer (percent)"), _u8L("Commands"), "percent")); @@ -327,6 +533,55 @@ std::vector<std::unique_ptr<AppAction>> native_commands() out.push_back(make_command("mode_simple", _u8L("Mode: Simple"), _u8L("Mode"))); out.push_back(make_command("mode_advanced", _u8L("Mode: Advanced"), _u8L("Mode"))); out.push_back(make_command("mode_expert", _u8L("Mode: Expert"), _u8L("Mode"))); + + // Slice -> Export pipeline. Each runs a public Plater method; the methods self-guard (empty + // model / error / background-invalid) and open their own save dialog / show_error. + out.push_back(make_command("export_gcode", _u8L("Export G-code"), _u8L("Slice & Export"))); + out.push_back(make_command("export_stl", _u8L("Export STL"), _u8L("Slice & Export"))); + out.push_back(make_command("export_3mf", _u8L("Export 3MF"), _u8L("Slice & Export"))); + out.push_back(make_command("export_sliced_file", _u8L("Export Sliced File"), _u8L("Slice & Export"))); + out.push_back(make_command("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"))); + + // Calibration wizards (one command per dialog mirroring the Calibration menu, MainFrame.cpp). + out.push_back(make_command("calib_temperature", _u8L("Temperature Calibration"), _u8L("Calibration"))); + out.push_back(make_command("calib_max_volumetric", _u8L("Max Volumetric Speed Calibration"), _u8L("Calibration"))); + out.push_back(make_command("calib_pressure_advance", _u8L("Pressure Advance Calibration"), _u8L("Calibration"))); + out.push_back(make_command("calib_flow_ratio", _u8L("Flow Ratio Calibration"), _u8L("Calibration"))); + out.push_back(make_command("calib_retraction", _u8L("Retraction Calibration"), _u8L("Calibration"))); + out.push_back(make_command("calib_cornering", _u8L("Cornering Calibration"), _u8L("Calibration"))); + out.push_back(make_command("calib_input_shaping_freq", _u8L("Input Shaping Frequency Calibration"), _u8L("Calibration"))); + out.push_back(make_command("calib_input_shaping_damp", _u8L("Input Shaping Damping Calibration"), _u8L("Calibration"))); + out.push_back(make_command("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"))); + + // View controls (mirror the View menu; most duplicate the Ctrl+0..6 shortcuts). + out.push_back(make_command("view_top", _u8L("View: Top"), _u8L("View"))); + out.push_back(make_command("view_bottom", _u8L("View: Bottom"), _u8L("View"))); + out.push_back(make_command("view_front", _u8L("View: Front"), _u8L("View"))); + out.push_back(make_command("view_rear", _u8L("View: Rear"), _u8L("View"))); + out.push_back(make_command("view_left", _u8L("View: Left"), _u8L("View"))); + out.push_back(make_command("view_right", _u8L("View: Right"), _u8L("View"))); + out.push_back(make_command("view_iso", _u8L("View: Isometric"), _u8L("View"))); + out.push_back(make_command("view_default", _u8L("View: Default"), _u8L("View"))); + out.push_back(make_command("view_fit_bed", _u8L("Fit Bed to View"), _u8L("View"))); + out.push_back(make_command("view_toggle_perspective", _u8L("Toggle Perspective"), _u8L("View"))); + out.push_back(make_command("reset_window_layout", _u8L("Reset Window Layout"), _u8L("View"))); + + // Object operations (single-phase). Each maps to a public Plater method guarded by a can_* / + // selection check in run_native_command; structural ops self-update()/schedule re-slice. + out.push_back(make_command("obj_delete", _u8L("Delete Selected"), _u8L("Object"))); + out.push_back(make_command("obj_delete_all", _u8L("Delete All Objects"), _u8L("Object"))); + out.push_back(make_command("obj_mirror_x", _u8L("Mirror X"), _u8L("Object"))); + out.push_back(make_command("obj_mirror_y", _u8L("Mirror Y"), _u8L("Object"))); + out.push_back(make_command("obj_mirror_z", _u8L("Mirror Z"), _u8L("Object"))); + out.push_back(make_command("obj_split_objects", _u8L("Split to Objects"), _u8L("Object"))); + out.push_back(make_command("obj_split_parts", _u8L("Split to Parts"), _u8L("Object"))); + out.push_back(make_command("obj_center", _u8L("Center Selected on Plate"), _u8L("Object"))); + out.push_back(make_command("obj_drop", _u8L("Drop to Bed"), _u8L("Object"))); + out.push_back(make_command("obj_fit_volume", _u8L("Scale to Fit Print Volume"), _u8L("Object"))); + out.push_back(make_command("obj_instances_up", _u8L("Increase Instances"), _u8L("Object"))); + out.push_back(make_command("obj_instances_down", _u8L("Decrease Instances"), _u8L("Object"))); + out.push_back(make_command("obj_arrange", _u8L("Auto-Arrange"), _u8L("Object"))); + out.push_back(make_command("obj_orient", _u8L("Auto-Orient"), _u8L("Object"))); return out; } diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index b6721e22d6..8687115998 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -19,7 +19,7 @@ class TestAppAction final : public AppAction public: TestAppAction() : AppAction("test", "Action title", "src-key", "Action source") {} - AppActionRunResult run() const override { return {}; } + AppActionRunResult run(const std::string& param = {}) const override { return {}; } }; } // namespace @@ -33,7 +33,7 @@ TEST_CASE("AppAction composes a stable id from prefix:title:source_key", "[speed TEST_CASE("AppAction definitions are immutable after construction", "[speeddial][actions]") { - using StringAccessor = const std::string& (AppAction::*)() const; + using StringAccessor = const std::string& (AppAction::*) () const; STATIC_CHECK(std::is_same_v<decltype(&AppAction::id), StringAccessor>); STATIC_CHECK(std::is_same_v<decltype(&AppAction::title), StringAccessor>); From cae23a933e92d072b2fa2c69bac3a173e073bf93 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Wed, 9 Sep 2026 11:29:18 +0800 Subject: [PATCH 04/76] Plate controls --- src/slic3r/GUI/ActionRegistry.cpp | 173 ++++++++++++++++++++++- src/slic3r/GUI/ActionRegistry.hpp | 5 + src/slic3r/GUI/Plater.cpp | 31 ++-- src/slic3r/GUI/Plater.hpp | 3 + tests/slic3rutils/test_action_source.cpp | 8 ++ 5 files changed, 207 insertions(+), 13 deletions(-) diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index bb8c57b615..ef31401909 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -10,6 +10,7 @@ #include "MainFrame.hpp" #include "Notebook.hpp" #include "Plater.hpp" +#include "PlateSettingsDialog.hpp" #include "Search.hpp" #include "Tab.hpp" #include "slic3r/plugin/PluginManager.hpp" @@ -33,6 +34,7 @@ #include <cmath> #include <cstdlib> #include <ctime> +#include <exception> #include <fstream> #include <iterator> #include <string> @@ -142,6 +144,7 @@ constexpr const char* kCommandPrefix = "orca_command"; constexpr const char* kOrcaSourceKey = "orca"; constexpr const char* kOrcaSourceName = "OrcaSlicer"; constexpr const char* kSettingPrefix = "orca_setting"; +constexpr const char* kPlateGotoPrefix = "orca_plate_goto"; // Display context for a setting action's eyebrow, e.g. the "Process" in "Process : Quality : Layers". // Keyed by the option's preset type so the palette reads like the settings sidebar tabs. @@ -492,6 +495,80 @@ AppActionRunResult run_native_command(const std::string& command_key, const std: // Auto-orient has no dedicated can_*; can_arrange covers "objects exist + UI worker idle". if (command_key == "obj_orient") return obj([](Plater* p) { return p->can_arrange(); }, [](Plater* p) { p->orient(); }); + + // ---- Plate management. Plates are a filament (FFF) feature: SLA builds a single plate with + // no plate UI, and gcode-only mode has no editable project - so gate every plate op on FFF + + // the normal editor (mirroring where the plate toolbar/menu live). These act on the CURRENT + // plate (delete/duplicate take -1) except plate_goto, which jumps to the index in `param`. + auto plate_plater = [&]() -> Plater* { + return (plater && plater->printer_technology() == ptFFF && !plater->only_gcode_mode()) ? plater : nullptr; + }; + const AppActionRunResult plate_unavailable{AppActionRunResult::Level::Info, _L("Plates are a filament (FFF) feature.")}; + + if (command_key == "plate_add") { + if (Plater* p = plate_plater(); p) { + if (!p->can_add_plate()) + return {AppActionRunResult::Level::Info, _L("Cannot add another plate (maximum reached).")}; + p->add_plate(); + return {AppActionRunResult::Level::Success}; + } + return plate_unavailable; + } + if (command_key == "plate_duplicate") { + if (Plater* p = plate_plater(); p) { + if (!p->can_add_plate()) + return {AppActionRunResult::Level::Info, _L("Cannot duplicate a plate (maximum reached).")}; + p->duplicate_plate(); + return {AppActionRunResult::Level::Success}; + } + return plate_unavailable; + } + if (command_key == "plate_delete") { + if (Plater* p = plate_plater(); p) { + if (!p->can_delete_plate()) + return {AppActionRunResult::Level::Info, _L("Cannot delete the only plate.")}; + p->delete_plate(); + return {AppActionRunResult::Level::Success}; + } + return plate_unavailable; + } + if (command_key == "plate_rename") { + if (Plater* p = plate_plater(); p) { + PartPlate* curr = p->get_partplate_list().get_curr_plate(); + PlateNameEditDialog dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, _L("Edit Plate Name")); + dlg.set_plate_name(from_u8(curr->get_plate_name())); + if (dlg.ShowModal() == wxID_YES) + curr->set_plate_name(dlg.get_plate_name().ToUTF8().data()); + return {AppActionRunResult::Level::Success}; + } + return plate_unavailable; + } + if (command_key == "plate_toggle_lock") { + if (Plater* p = plate_plater(); p) { + PartPlateList& plates = p->get_partplate_list(); + const int index = plates.get_curr_plate_index(); + p->take_snapshot("lock partplate"); + plates.lock_plate(index, !plates.is_locked(index)); + return {AppActionRunResult::Level::Success}; + } + return plate_unavailable; + } + if (command_key == "plate_goto") { + if (Plater* p = plate_plater(); p) { + PartPlateList& plates = p->get_partplate_list(); + const int count = plates.get_plate_count(); + if (count <= 0) + return {AppActionRunResult::Level::Info, _L("No plates available.")}; + int index = 0; + try { + index = std::stoi(param); + } catch (const std::exception&) {} + index = std::clamp(index, 0, count - 1); + p->select_plate(index, false); + return {AppActionRunResult::Level::Success}; + } + return plate_unavailable; + } return {AppActionRunResult::Level::Info, _L("Unknown command.")}; } @@ -515,6 +592,29 @@ struct CommandAction : AppAction std::unique_ptr<AppAction> make_command(std::string key, std::string title, std::string group, std::string input = "") { return std::make_unique<CommandAction>(std::move(key), std::move(title), std::move(group), std::move(input)); } +// A dynamic "Go to Plate N" action, one per live plate, rebuilt on every snapshot() (so a +// rename/move immediately shows up). id is keyed by plate index, NOT the display title, so +// renaming a plate never re-keys it - the same contract as SettingAction. A pinned "Go to +// Plate N" whose plate is deleted simply stops resolving (visibleFavourites drops dead pins). +struct PlateAction : AppAction +{ + int plate_index; + + static std::string id_for(int index) + { return AppAction::compose_id(kPlateGotoPrefix, std::to_string(index), kOrcaSourceKey); } + + PlateAction(int index, std::string title, std::string source_name) + : AppAction(AppActionId{id_for(index)}, std::move(title), kOrcaSourceKey, std::move(source_name)) + , plate_index(index) + { + this->kind = AppActionKind::Command; + this->group = _u8L("Plate"); + } + + AppActionRunResult run(const std::string& /*param*/) const override + { return run_native_command("plate_goto", std::to_string(plate_index)); } +}; + // The built-in palette commands, registered once at init(). std::vector<std::unique_ptr<AppAction>> native_commands() { @@ -582,6 +682,14 @@ std::vector<std::unique_ptr<AppAction>> native_commands() out.push_back(make_command("obj_instances_down", _u8L("Decrease Instances"), _u8L("Object"))); out.push_back(make_command("obj_arrange", _u8L("Auto-Arrange"), _u8L("Object"))); out.push_back(make_command("obj_orient", _u8L("Auto-Orient"), _u8L("Object"))); + + // Plate management. These act on the CURRENT plate (like Plater::delete_plate(-1)); the + // per-plate "Go to Plate N" actions are dynamic and materialised in materialize_plate_actions(). + out.push_back(make_command("plate_add", _u8L("Add Plate"), _u8L("Plate"))); + out.push_back(make_command("plate_duplicate", _u8L("Duplicate Plate"), _u8L("Plate"))); + out.push_back(make_command("plate_delete", _u8L("Delete Plate"), _u8L("Plate"))); + out.push_back(make_command("plate_rename", _u8L("Rename Plate"), _u8L("Plate"))); + out.push_back(make_command("plate_toggle_lock", _u8L("Toggle Plate Lock"), _u8L("Plate"))); return out; } @@ -1195,6 +1303,65 @@ void ActionRegistry::materialize_setting_actions() } } +void ActionRegistry::materialize_plate_actions() +{ + assert(wxThread::IsMain()); + + // Plates are a filament (FFF) feature: SLA has a single plate and no plate UI, and gcode-only + // mode has no editable project - so no "Go to Plate N" actions are offered there. + Plater* plater = wxTheApp ? wxGetApp().plater() : nullptr; + if (!plater || plater->printer_technology() != ptFFF || plater->only_gcode_mode()) { + // Drop any stale plate actions (e.g. the printer technology switched to SLA). + for (auto it = m_actions.begin(); it != m_actions.end();) { + if (it->first.rfind(kPlateGotoPrefix, 0) == 0) + it = m_actions.erase(it); + else + ++it; + } + return; + } + + // Persisted per-action state, read ONCE (mirrors materialize_setting_actions) so a relisted + // "Go to Plate N" keeps its recency/favourite when the plate is renamed - the id is index-keyed. + nlohmann::json stats = read_section("stats", nlohmann::json::object()); + if (!stats.is_object()) + stats = nlohmann::json::object(); + const std::vector<std::string> favs = favourite_ids(); + + const std::vector<PartPlate*>& list = plater->get_partplate_list().get_plate_list(); + std::unordered_set<std::string> seen; + for (size_t i = 0; i < list.size(); ++i) { + PartPlate* plate = list[i]; + if (!plate) + continue; + const std::string id = PlateAction::id_for(int(i)); + seen.insert(id); + + // "Go to Plate N" + " (name)" when the plate is named, matching the object-list label. + std::string title(_u8L("Go to Plate")); + title += " " + std::to_string(i + 1); + const std::string name = plate->get_plate_name(); + if (!name.empty()) + title += " (" + name + ")"; + + auto action = std::make_unique<PlateAction>(int(i), title, kOrcaSourceName); + action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); + if (auto it = stats.find(id); it != stats.end() && it->is_object()) { + action->count = it->value("count", 0); + action->last = it->value("last", 0LL); + } + m_actions.insert_or_assign(action->id(), std::shared_ptr<AppAction>(std::move(action))); + } + + // Drop plate actions whose index no longer exists (a plate was deleted / moved to the front). + for (auto it = m_actions.begin(); it != m_actions.end();) { + if (it->first.rfind(kPlateGotoPrefix, 0) == 0 && !seen.count(it->first)) + it = m_actions.erase(it); + else + ++it; + } +} + bool ActionRegistry::should_ask(const std::string& id) const { assert(wxThread::IsMain()); @@ -1216,9 +1383,11 @@ void ActionRegistry::suppress_ask(const std::string& id) nlohmann::json ActionRegistry::snapshot() { assert(wxThread::IsMain()); - // Settings are first-class actions; make sure the current visible option set is materialised - // before we serialise the pool (tabs_list is built by the time the palette opens). + // Settings and plates are first-class actions; make sure the current visible option set and the + // live plate list are materialised before we serialise the pool (tabs_list is built by the time + // the palette opens). materialize_setting_actions(); + materialize_plate_actions(); std::vector<const AppAction*> sorted; sorted.reserve(m_actions.size()); diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index 1c481c1da9..d7bd1fa583 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -192,6 +192,11 @@ private: // Called at the top of snapshot() so the palette always reflects the current configs. void materialize_setting_actions(); + // (Re)materialise one "Go to Plate N" action per live plate, so the palette lists every plate + // directly on each spawn (no second-phase picker). FFF-editor only; SLA/gcode modes have no + // plate UI, so nothing is materialised and stale ids are dropped. Called at the top of snapshot(). + void materialize_plate_actions(); + // Loader callbacks (marshalled to the UI thread) land here. refresh_source rebuilds // one plugin's whole action set; refresh_capability touches a single capability. void refresh_source(const std::string& plugin_key, ActionChange change); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 2f992872e4..c525896d0b 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -12610,17 +12610,8 @@ void Plater::priv::on_action_add(SimpleEvent&) //BBS: add plate from toolbar void Plater::priv::on_action_add_plate(SimpleEvent&) { - if (q != nullptr) { - take_snapshot("add partplate"); - this->partplate_list.create_plate(); - int new_plate = this->partplate_list.get_plate_count() - 1; - this->partplate_list.select_plate(new_plate); - update(); - - // BBS set default view - //q->get_camera().select_view("topfront"); - q->get_camera().requires_zoom_to_plate = REQUIRES_ZOOM_TO_ALL_PLATE; - } + if (q != nullptr) + q->add_plate(); } //BBS: remove plate from toolbar @@ -21492,6 +21483,24 @@ int Plater::select_plate_by_hover_id(int hover_id, bool right_click, bool isModi return ret; } +//BBS: add an empty plate and switch to it (mirrors the toolbar's Add Plate). +int Plater::add_plate() +{ + if (!p->can_add_plate()) + return -1; + take_snapshot("add partplate"); + int new_plate = p->partplate_list.create_plate(); + if (new_plate < 0) + return new_plate; + p->partplate_list.select_plate(new_plate); + update(); + + // BBS set default view + //get_camera().select_view("topfront"); + p->camera.requires_zoom_to_plate = REQUIRES_ZOOM_TO_ALL_PLATE; + return new_plate; +} + int Plater::duplicate_plate(int plate_index) { int index = plate_index, ret; diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 5308deec61..fd190d3832 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -775,6 +775,9 @@ public: void apply_background_progress(); //BBS: select the plate by hover_id int select_plate_by_hover_id(int hover_id, bool right_click = false, bool isModidyPlateName = false); + //BBS: add an empty plate and switch to it (the toolbar's Add Plate). Returns the new + // plate index, or -1 when the plate cap is reached. + int add_plate(); //BBS: delete the plate, index= -1 means the current plate int delete_plate(int plate_index = -1); int duplicate_plate(int plate_index = -1); diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 8687115998..e5255f61fe 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -53,3 +53,11 @@ TEST_CASE("ActionRegistry takes exclusive ownership of published actions", "[spe STATIC_CHECK(std::is_same_v<decltype(&ActionRegistry::upsert), ExpectedUpsert>); } + +// A dynamic "Go to Plate N" action is keyed by plate index (not the display title), so renaming +// a plate never re-keys it - the same contract as a setting action. +TEST_CASE("Go-to-plate actions are keyed by index, not title", "[speeddial][actions]") +{ + CHECK(AppAction::compose_id("orca_plate_goto", "0", "orca") == "orca_plate_goto:0:orca"); + CHECK(AppAction::compose_id("orca_plate_goto", "2", "orca") == "orca_plate_goto:2:orca"); +} From c3a21fa0d416e1d8c90b16059d1ab7a09212bf47 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Wed, 9 Sep 2026 12:26:09 +0800 Subject: [PATCH 05/76] Switched back to jump to setting instead --- resources/web/dialog/SpeedDial/speeddial.js | 505 +----------------- .../web/dialog/SpeedDial/speeddial.test.js | 69 --- resources/web/dialog/SpeedDial/style.css | 142 ----- src/slic3r/GUI/ActionRegistry.cpp | 369 +------------ src/slic3r/GUI/ActionRegistry.hpp | 10 - src/slic3r/GUI/SpeedDialDialog.cpp | 25 - 6 files changed, 11 insertions(+), 1109 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 65d2e24430..78ba8a138d 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -37,18 +37,6 @@ var tabOptions = []; // [{id,title}] - notebook pages, fetched on entering // element handles, assigned in OnInit (kept null so load-time touches no DOM) var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, countEl = null, headEl = null; -// ---- inline setting editor state --------------------------------------------- -// The "setting" phase (opened by activating a setting action) replaces the list with an editor card -// for one option. phase transitions: commands -> setting -> (apply / open-in-sidebar) -> closed, or -// Esc back to commands. settingDesc is the C++ descriptor; settingRows are the per-index control -// descriptors (1 row for scalars, one per index for vectors); settingFieldEls hold the live controls. -var settingId = ""; // the setting action id being edited -var settingDesc = null; // {id,opt_key,type,title,breadcrumb,category,unit,tooltip,editable,control,cardinality,value|values,index_labels,enum_options,min,max,is_int} -var settingRows = []; // [{index,kind,value,label,enum_options,min,max,unit,is_int}] -var settingFieldEls = []; // [Element...] parallel to settingRows -var settingPreviewIcon = null; // <img> beside the editor title, updated live on dropdown pick -var openDropDownEl = null; // the custom dropdown toggle button whose option list is expanded - // ---- pure helpers (no DOM; unit-tested) ------------------------------------- // Pre-normalized haystacks, cached on the action object. The fold is length-preserving (1:1 per // char) so the ranges FuzzyRangesNorm returns slice the ORIGINAL title/source text correctly. The @@ -176,26 +164,6 @@ function shouldRenderActionList(query) { return !!((query || "").trim()); } -// Label for a closed-enum entry, looked up from its enum_options by value; falls back to the value. -// Pure so the node-vm test can exercise the dropdown label mapping. `value` is the current int value. -function dropdownLabel(options, value) { - var want = String(value == null ? "" : value); - for (var i = 0; i < (options || []).length; i++) - if (String(options[i].value) === want) - return options[i].label != null && options[i].label !== "" ? String(options[i].label) : String(options[i].key != null ? options[i].key : options[i].value); - return want; -} - -// Pure: the data:URI pictogram for a dropdown's selected value, or "" when none of the options has -// one (most settings have no pattern icon). Mirrors dropdownLabel so tests can drive it without DOM. -function dropdownIcon(options, value) { - var want = String(value == null ? "" : value); - for (var i = 0; i < (options || []).length; i++) - if (String(options[i].value) === want && options[i].icon) - return options[i].icon; - return ""; -} - // Put an action's pattern pictogram into a tile (search row or favourites tile) when it has one, // otherwise fall back to the monogram. Toggles the has-icon class so CSS neutralises the hue. function fillTile(tile, a) { @@ -213,83 +181,6 @@ function fillTile(tile, a) { } } -// Per-index control descriptors for the inline setting editor, derived from the C++ descriptor. -// Pure so the node-vm test can exercise the scalar/vector + control mapping without a DOM. -// Values are the current config value(s); vector options get one row per index, each labelled. -function settingControlRows(desc) { - if (!desc || !desc.editable) return []; - var rows = []; - var values = desc.cardinality === "vector" ? (desc.values || []) : [desc.value]; - var labels = desc.cardinality === "vector" ? (desc.index_labels || []) : []; - for (var i = 0; i < values.length; i++) { - rows.push({ - index: i, - kind: desc.control, - value: values[i], - label: labels[i] != null ? String(labels[i]) : (desc.cardinality === "vector" ? String(i + 1) : null), - enum_options: desc.enum_options || [], - min: typeof desc.min === "number" ? desc.min : null, - max: typeof desc.max === "number" ? desc.max : null, - unit: desc.unit || "", - is_int: !!desc.is_int - }); - } - return rows; -} - -// Pure: read the value a control would submit back for a setting. `el` is a DOM element (never -// passed in tests). Returns undefined for an unusable value (empty/invalid number, out of range), -// boolean for toggles, number for numeric, string otherwise. -function settingControlValue(row, el) { - if (!row || !el) return undefined; - switch (row.kind) { - case "toggle": return !!el.checked; - case "number": { - var raw = String(el.value || "").trim(); - if (raw === "") return undefined; - var n = row.is_int ? parseInt(raw, 10) : parseFloat(raw); - if (!isFinite(n)) return undefined; - if (row.min != null && n < row.min) return undefined; - if (row.max != null && n > row.max) return undefined; - return n; - } - case "dropdown": { - // value is stored on the toggle button's dataset (set when an option is picked). - var v = parseInt(el.dataset ? el.dataset.value : "", 10); - return isFinite(v) ? v : undefined; - } - case "combo": { - // Open enum: free text field (never a select), so read it as the seeded integer value. - var v = parseInt(el.value, 10); - return isFinite(v) ? v : undefined; - } - case "color": - case "text": - case "percent": { - // percent submission is a string ("10%", "0.5"); C++ parses + clamps it. Empty is invalid. - var raw = String(el.value || "").trim(); - return raw === "" ? undefined : raw; - } - default: return undefined; - } -} - -// Pure: assemble the value payload for a setting from its edited control rows. Returns the scalar -// for scalar settings, an array for vector settings, or undefined when any control is invalid. -function settingCollectedValue(desc, rows, values) { - if (!desc || !desc.editable) return undefined; - if (desc.cardinality === "vector") { - var out = []; - for (var i = 0; i < rows.length; i++) { - var v = settingControlValue(rows[i], values[i]); - if (v === undefined) return undefined; - out.push(v); - } - return out; - } - return settingControlValue(rows[0], values[0]); -} - // The active list for the main phase. A typed query ranks every action (commands/plugins/settings) // by relevance; an empty query shows the recent list (recents are a mixed bag - no discrimination). function commandList(actions, recents, query) { @@ -439,13 +330,9 @@ window.HandleStudio = function (payload) { lastResizeHeight = next.lastResizeHeight; phase = next.phase; tabOptions = next.tabOptions; - // Reset any half-open setting editor (the dialog was closed/reopened), restoring the search. - settingId = ""; settingDesc = null; settingRows = []; settingFieldEls = []; - settingPreviewIcon = null; - openDropDownEl = null; - // why: builtKey caches phase|query so renderCommandsList can skip a rebuild on arrow-nav. It - // survives an apply-then-reopen (which never goes through exitPhase), so without a reset the - // leftover editor card would be mistaken for the empty-query commands list and never rebuilt. + // why: builtKey caches phase|query so renderCommandsList can skip a rebuild on arrow-nav. + // It survives a re-open (which never goes through exitPhase), so without a reset the cached + // empty-query key would skip the rebuild and leave stale list content. builtKey = ""; if (headEl) headEl.hidden = false; if (qEl) { @@ -455,16 +342,6 @@ window.HandleStudio = function (payload) { } render({ resize: true, resetScroll: true }); focusInput(); - } else if (payload.command === "setting_descriptor") { - // Inline editor loaded: render the card. Guard against a stale response for a different id. - if (payload.descriptor && payload.descriptor.id === settingId) - settingDesc = payload.descriptor; - render({ resize: true }); - // why: keyboard focus must land on the field after the card is built, not stay on the hidden - // search input. fire on a timeout so the element is attached and its content selectable. - focusSettingEditor(); - } else if (payload.command === "apply_failed") { - flashHint("Couldn't apply that value"); } else if (payload.command === "tab_results") { tabOptions = payload.tabs || []; if (sel.zone === "list") @@ -649,7 +526,6 @@ function updateFavEyebrow(favs) { eyeEl.hidden = !a; } -// One settings row; has no star/tile because settings aren't pinnable. // A command/action row - used for search results, recents, and (because settings are actions now) // the setting options too. All rows are pinnable, so every row carries a star. function renderActionRow(a, i) { @@ -864,349 +740,11 @@ function renderPercentList() { listEl.appendChild(ph); } -// ---- inline setting editor (DOM stage) --------------------------------------- - -// Collapse every open custom dropdown except `keep` (null collapses all). The menu list elements -// are the .ed-dropdown-menu siblings of the toggle buttons we track via openDropDownEl. -function closeOtherDropDowns(keep) { - if (openDropDownEl && openDropDownEl !== keep && openDropDownEl.parentNode) { - var m = openDropDownEl.parentNode.querySelector(".ed-dropdown-menu"); - if (m) m.hidden = true; - openDropDownEl.classList.remove("open"); - } - if (!keep) - openDropDownEl = null; -} - -// Collapse the currently open dropdown, if any (kept for the editor's export/import-adjacent helpers). -function closeEditorDropDown() { closeOtherDropDowns(null); } - -// Place an open dropdown menu as a fixed overlay just under its toggle, so the menu floats over the -// card (never resizing it) and is clamped to the popup's bottom edge with an internal scrollbar for -// long option lists. position:fixed escapes the card/launcher overflow clipping that an absolute -// menu would otherwise hit, keeping every option reachable within the window. -function positionDropDownMenu(btn, menu) { - var lrect = (document.querySelector(".launcher") || { getBoundingClientRect: function () { return { top: 0, bottom: window.innerHeight }; } }).getBoundingClientRect(); - var rect = btn.getBoundingClientRect(); - // Available room above and below the toggle, within the popup. Opening the menu must not push it - // past the window edge (that's the unreachable-overflow bug) - pick whichever side has more room - // and clamp the box to it. Overflow-y:auto scrolls any long list inside the menu itself. - var spaceBelow = lrect.bottom - (rect.bottom + 8); - var spaceAbove = (rect.top - 8) - lrect.top; - var openUp = spaceBelow < spaceAbove; - var maxH = Math.max(0, Math.min(openUp ? spaceAbove : spaceBelow, 200)); - menu.style.position = "fixed"; - menu.style.width = rect.width + "px"; - menu.style.left = rect.left + "px"; - menu.style.maxHeight = maxH + "px"; - if (openUp) { - // bottom edge sits just above the toggle; the box grows upward to content height. - menu.style.top = "auto"; - menu.style.bottom = (lrect.bottom - rect.top + 4) + "px"; - } else { - menu.style.top = (rect.bottom + 4) + "px"; - menu.style.bottom = "auto"; - } -} - -// Build the control element for one row (toggle/number/dropdown/combo/text/color) and seed it with -// the current value. Returns {el, node, extra} - node is what is appended, extra carries a datalist. -function settingInputFor(row) { - var el; - if (row.kind === "toggle") { - el = document.createElement("input"); - el.type = "checkbox"; - el.checked = !!row.value; - var sw = document.createElement("label"); - sw.className = "ed-switch"; - sw.appendChild(el); - var slider = document.createElement("span"); - slider.className = "ed-slider"; - sw.appendChild(slider); - return { el: el, node: sw }; - } - if (row.kind === "number") { - el = document.createElement("input"); - el.type = "number"; - el.step = row.is_int ? 1 : "any"; - if (row.min != null) el.min = row.min; - if (row.max != null) el.max = row.max; - if (row.value != null && row.value !== "") el.value = row.value; - return { el: el, node: el }; - } - if (row.kind === "dropdown") { - // Native <select> popups are unreliable inside this wxWebView (a click synthesizes a - // keydown that can reach the global Enter handler and apply+close). Build a custom - // dropdown: a toggle button that expands an in-flow option list. Selection only updates - // local state; nothing applies until Enter/Apply. The value lives on the toggle button's - // dataset so settingControlValue can read it back without the DOM copy. - var wrap = document.createElement("div"); - wrap.className = "ed-dropdown"; - var btn = document.createElement("button"); - btn.type = "button"; - btn.className = "ed-dropdown-toggle"; - btn.dataset.value = row.value != null ? String(row.value) : ""; - // The selected value's pattern pictogram (hidden when the value has none). - var toggleIcon = document.createElement("img"); - toggleIcon.className = "ed-dropdown-icon"; - toggleIcon.setAttribute("aria-hidden", "true"); - toggleIcon.alt = ""; - var tIcon = dropdownIcon(row.enum_options || [], row.value); - toggleIcon.src = tIcon || ""; - toggleIcon.hidden = !tIcon; - btn.appendChild(toggleIcon); - var label = document.createElement("span"); - label.className = "ed-dropdown-label"; - label.textContent = dropdownLabel(row.enum_options || [], row.value); - btn.appendChild(label); - var caret = document.createElement("span"); - caret.className = "ed-dropdown-caret"; - caret.textContent = "▾"; - btn.appendChild(caret); - var listEl = document.createElement("div"); - listEl.className = "ed-dropdown-menu"; - listEl.hidden = true; - (row.enum_options || []).forEach(function (o, oi) { - var opt = document.createElement("button"); - opt.type = "button"; - opt.className = "ed-dropdown-option"; - if (o.icon) { - var img = document.createElement("img"); - img.className = "ed-option-icon"; - img.src = o.icon; - img.alt = ""; - img.setAttribute("aria-hidden", "true"); - opt.appendChild(img); - } - var optLabel = document.createElement("span"); - optLabel.className = "ed-option-label"; - optLabel.textContent = o.label; - opt.appendChild(optLabel); - if (String(o.value) === String(row.value)) - opt.classList.add("sel"); - opt.onclick = function (ev) { - ev.stopPropagation(); - btn.dataset.value = String(o.value); - label.textContent = o.label; - toggleIcon.src = o.icon || ""; - toggleIcon.hidden = !o.icon; - listEl.hidden = true; - btn.classList.remove("open"); - openDropDownEl = null; - onSettingValueChanged(settingDesc, o); - }; - listEl.appendChild(opt); - }); - btn.onclick = function (ev) { - ev.stopPropagation(); - if (openDropDownEl === btn) { - // clicking the open toggle closes it - listEl.hidden = true; - btn.classList.remove("open"); - openDropDownEl = null; - return; - } - closeOtherDropDowns(null); // collapse any other open dropdown - positionDropDownMenu(btn, listEl); - listEl.hidden = false; - btn.classList.add("open"); - openDropDownEl = btn; - }; - wrap.appendChild(btn); - wrap.appendChild(listEl); - return { el: btn, node: wrap }; - } - if (row.kind === "combo") { - el = document.createElement("input"); - el.type = "text"; - var dl = document.createElement("datalist"); - el.setAttribute("list", dl.id = "ed-combo-" + row.index); - (row.enum_options || []).forEach(function (o) { - var op = document.createElement("option"); - op.value = o.value; - op.textContent = o.label; - dl.appendChild(op); - }); - el.value = row.value != null ? String(row.value) : ""; - return { el: el, node: el, extra: dl }; - } - if (row.kind === "color") { - el = document.createElement("input"); - el.type = "color"; - el.value = row.value && /^#[0-9a-fA-F]{6}$/.test(row.value) ? row.value : "#000000"; - return { el: el, node: el }; - } - if (row.kind === "percent") { - // "mm or %" (coFloatOrPercent/coFloatsOrPercents): a free-text field showing the serialized - // value (e.g. "10%" or "0.5"). The unit hints at the sidebar semantics (mm or %), so it's - // not shown here - the value itself carries the % when applicable. - el = document.createElement("input"); - el.type = "text"; - el.value = row.value != null ? String(row.value) : ""; - return { el: el, node: el }; - } - // text - el = document.createElement("input"); - el.type = "text"; - el.value = row.value != null ? String(row.value) : ""; - return { el: el, node: el }; -} - -// One labeled control row in the editor card. -function renderControlRow(row, i) { - var wrap = document.createElement("div"); - wrap.className = "editor-row"; - if (row.label != null) { - var lab = document.createElement("label"); - lab.className = "editor-label"; - lab.textContent = row.label; - wrap.appendChild(lab); - } - var ctrl = settingInputFor(row); - if (ctrl.extra) - wrap.appendChild(ctrl.extra); // datalist for open-enum combos - wrap.appendChild(ctrl.node); - if (row.unit) { - var unit = document.createElement("span"); - unit.className = "editor-unit"; - unit.textContent = row.unit; - wrap.appendChild(unit); - } - settingFieldEls[i] = ctrl.el; - return wrap; -} - -// Render the editor card into listEl (phase === "setting"). Keeps the search head hidden so the -// card owns the layout. -function renderSettingStage() { - listEl.innerHTML = ""; - listEl.className = "dial-list setting"; - if (countEl) countEl.hidden = true; - if (!settingDesc || !settingDesc.opt_key) { - var ph = document.createElement("div"); - ph.className = "dial-empty"; - ph.textContent = "Loading…"; - listEl.appendChild(ph); - return; - } - var card = document.createElement("div"); - card.className = "dial-editor"; - if (settingDesc.breadcrumb) { - var crumb = document.createElement("div"); - crumb.className = "row-eyebrow"; - crumb.textContent = settingDesc.breadcrumb; - card.appendChild(crumb); - } - var titleRow = document.createElement("div"); - titleRow.className = "editor-title-row"; - var titleIcon = document.createElement("img"); - titleIcon.className = "editor-preview-icon"; - titleIcon.setAttribute("aria-hidden", "true"); - titleIcon.alt = ""; - var pIcon = dropdownIcon(settingDesc.enum_options || [], settingDesc.value); - titleIcon.src = pIcon || ""; - titleIcon.hidden = !pIcon; - titleRow.appendChild(titleIcon); - settingPreviewIcon = titleIcon; - var title = document.createElement("div"); - title.className = "editor-title"; - title.textContent = settingDesc.title || ""; - titleRow.appendChild(title); - card.appendChild(titleRow); - if (settingDesc.tooltip) { - var tt = document.createElement("div"); - tt.className = "editor-tooltip"; - tt.textContent = settingDesc.tooltip; - card.appendChild(tt); - } - - var actions = document.createElement("div"); - actions.className = "editor-actions"; - if (settingDesc.editable) { - settingRows = settingControlRows(settingDesc); - settingFieldEls = []; - if (settingRows.length) { - settingRows.forEach(function (row, i) { card.appendChild(renderControlRow(row, i)); }); - } else { - var empty = document.createElement("div"); - empty.className = "dial-empty"; - empty.textContent = "Nothing editable here"; - card.appendChild(empty); - } - var apply = document.createElement("button"); - apply.className = "ed-btn ed-btn-primary"; - apply.textContent = "Apply"; - apply.onclick = applySetting; - actions.appendChild(apply); - } else { - var ro = document.createElement("div"); - ro.className = "editor-readonly"; - ro.textContent = "This setting can't be edited here"; - card.appendChild(ro); - var open = document.createElement("button"); - open.className = "ed-btn"; - open.textContent = "Open in sidebar"; - open.onclick = openSettingInSidebar; - actions.appendChild(open); - } - var cancel = document.createElement("button"); - cancel.className = "ed-btn"; - cancel.textContent = "Cancel"; - cancel.onclick = exitPhase; - actions.appendChild(cancel); - card.appendChild(actions); - var hint = document.createElement("div"); - hint.className = "editor-hint"; - hint.textContent = "Enter to apply · Esc to cancel"; - card.appendChild(hint); - listEl.appendChild(card); -} - -function applySetting() { - if (!settingDesc || !settingDesc.editable) return; - var value = settingCollectedValue(settingDesc, settingRows, settingFieldEls); - if (value === undefined) { - flashHint("Enter a valid value"); - return; - } - SendMessage({ command: "set_setting", id: settingId, value: value }); -} - -function openSettingInSidebar() { - if (!settingDesc) return; - SendMessage({ command: "open_setting_in_sidebar", opt_key: settingDesc.opt_key, type: settingDesc.type, category: settingDesc.category || "" }); -} - -// When a dropdown option is picked, mirror its pattern pictogram onto the editor title's preview so -// the current selection is visible without opening the menu. Non-enum / icon-less rows no-op. -function onSettingValueChanged(desc, option) { - if (!settingPreviewIcon) return; - var icon = (option && option.icon) || ""; - settingPreviewIcon.src = icon; - settingPreviewIcon.hidden = !icon; -} - -function enterSettingPhase(a) { - if (!a) return; - phase = "setting"; - query = ""; qEl.value = ""; syncClearButton(); - sel = { zone: "list", i: 0 }; - settingId = a.id; - settingDesc = null; - settingRows = []; - settingFieldEls = []; - if (headEl) headEl.hidden = true; - render({ resetScroll: true }); - SendMessage({ command: "setting_descriptor", id: a.id }); -} - function renderList() { if (phase === "tab") renderTabList(); else if (phase === "percent") renderPercentList(); - else if (phase === "setting") - renderSettingStage(); else renderCommandsList(); } @@ -1284,7 +822,6 @@ function activateEntry(a) { if (!a) return; if (a.input === "percent") { enterPercentPhase(); return; } if (a.input === "tab") { enterTabsPhase(); return; } - if (a.input === "setting") { enterSettingPhase(a); return; } run(a); } @@ -1337,14 +874,11 @@ function enterTabsPhase() { function exitPhase() { phase = "commands"; tabOptions = []; query = ""; qEl.value = ""; - settingId = ""; settingDesc = null; settingRows = []; settingFieldEls = []; - settingPreviewIcon = null; - closeOtherDropDowns(null); if (headEl) headEl.hidden = false; sel = { zone: "list", i: 0 }; // why: builtKey caches phase|query so renderCommandsList can skip a rebuild on arrow-nav/click. - // Leftover from the setting phase it matches the (empty-query) commands key, which would skip - // the rebuild and leave the editor card in the list. Reset it so the commands view is rebuilt. + // It survives a second-phase exit (which never goes through exitPhase from the commands view), + // so without a reset the cached empty-query key would skip the rebuild and leave stale content. builtKey = ""; qEl.placeholder = "Search " + ACTIONS.length + " actions"; syncClearButton(); @@ -1354,19 +888,6 @@ function exitPhase() { function focusInput() { setTimeout(function () { if (qEl) qEl.focus(); }, 0); } -// Move keyboard focus onto the first editable field of the setting editor card. Deferred so the -// element is attached and its text is selectable by the time we focus it. For text-editable inputs -// also select the existing value so the user can type straight over it. -function focusSettingEditor() { - setTimeout(function () { - var el = settingFieldEls && settingFieldEls[0]; - if (!el) return; - if (el.focus) el.focus(); - if ((el.tagName === "INPUT") && el.select) - el.select(); - }, 0); -} - // ---- init -------------------------------------------------------------------- function OnInit() { qEl = $("q"); listEl = $("list"); favEl = $("favBar"); clearEl = $("clear"); eyeEl = $("favEyebrow"); countEl = $("count"); @@ -1397,21 +918,10 @@ function OnInit() { // why: dismiss the fav context menu on any click/scroll away from it (capture scroll to catch nested scrollers). document.addEventListener("click", hideFavMenu); - // Dismiss an open editor dropdown on any outside click. Toggle/option clicks stopPropagation - // so they don't immediately close the menu they just opened/picked from. - document.addEventListener("click", function () { - if (openDropDownEl) closeEditorDropDown(); - }); document.addEventListener("scroll", hideFavMenu, true); document.addEventListener("keydown", function (e) { if (favMenuEl && !favMenuEl.hidden && e.key === "Escape") { e.preventDefault(); hideFavMenu(); return; } - // While an editor dropdown menu is open it owns the keys: Escape closes the menu (a second - // Esc exits the phase), Enter/arrows select options natively, and we must not apply/exit. - if (phase === "setting" && openDropDownEl && openDropDownEl.parentNode) { - if (e.key === "Escape") { e.preventDefault(); closeEditorDropDown(); } - return; - } // Quick-launch a numbered favourite: Alt/Option + digit (0 = the 10th). Only in the // commands phase, where the pinned bar is shown. if (phase === "commands" && e.altKey && !e.ctrlKey && !e.metaKey) { @@ -1432,8 +942,8 @@ function OnInit() { // let Left/Right fall through so they move the caret in the focused search field. var lr = e.key === "ArrowLeft" || e.key === "ArrowRight"; if (e.key === "ArrowDown" || e.key === "ArrowUp" || (lr && sel.zone === "fav")) { - // In the percent/setting phases the input controls own the caret - arrows edit text, not rows. - if (phase === "percent" || phase === "setting") return; + // In the percent phase the input control owns the caret - arrows edit text, not rows. + if (phase === "percent") return; e.preventDefault(); sel = nextSel(sel, e.key, list.length, favs.length); // why: entering/leaving the fav zone toggles the eyebrow line, changing launcher height; @@ -1442,7 +952,6 @@ function OnInit() { } else if (e.key === "Enter") { e.preventDefault(); if (phase === "percent") runJumpToLayer(query.trim()); - else if (phase === "setting") applySetting(); else runSelected(); } else if (e.key === "Escape") { e.preventDefault(); diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index cb7ef0c179..da306255b1 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -159,73 +159,4 @@ assert.equal(ctx.revealTarget(100, -5, 50), 50, "negative start is clamped to th assert.equal(ctx.revealTarget(200, 50, 100), 150, "a scroll viewpoint reveals a window past the current rows"); assert.equal(ctx.revealTarget(10, 0, 50), 10, "a list shorter than one window stays fully materialized"); -// ---- inline setting editor helpers (settingControlRows / Value / CollectedValue) ---- -const scalarBoolDesc = { - editable: true, control: "toggle", cardinality: "scalar", value: true, - min: undefined, max: undefined, is_int: false, unit: "" -}; -const scalarRows = ctx.settingControlRows(scalarBoolDesc); -assert.equal(scalarRows.length, 1, "a scalar setting yields exactly one control row"); -assert.equal(scalarRows[0].kind, "toggle", "the control kind is carried through"); -assert.equal(scalarRows[0].index, 0, "the single row is indexed 0"); -assert.deepEqual(ctx.settingControlRows({ editable: false }), [], "a non-editable setting yields no control rows"); - -const vectorDesc = { - editable: true, control: "number", cardinality: "vector", values: [0.2, 0.4], - index_labels: ["1", "2"], min: 0, max: 1, is_int: false, unit: "mm" -}; -const vectorRows = ctx.settingControlRows(vectorDesc); -assert.equal(vectorRows.length, 2, "a vector setting yields one row per value"); -assert.deepEqual(vectorRows.map(function (r) { return r.value; }), [0.2, 0.4], "each row carries its current value"); -assert.deepEqual(vectorRows.map(function (r) { return r.label; }), ["1", "2"], "vector rows use the per-index labels"); -assert.equal(vectorRows[0].unit, "mm", "the unit is carried to each row"); - -// settingControlValue reads a control element (checked/value) as the shipped value. -assert.equal(ctx.settingControlValue({ kind: "toggle" }, { checked: true }), true, "a toggle submits its checked state"); -assert.equal(ctx.settingControlValue({ kind: "toggle" }, { checked: false }), false, "an off toggle submits false"); -assert.equal(ctx.settingControlValue({ kind: "number", is_int: false, min: 0, max: 1 }, { value: "0.5" }), 0.5, "a float number parses"); -assert.equal(ctx.settingControlValue({ kind: "number", is_int: true, min: 0, max: 10 }, { value: "5" }), 5, "an int number parses"); -assert.equal(ctx.settingControlValue({ kind: "number", is_int: false, min: 0, max: 1 }, { value: "2" }), undefined, "an out-of-range number is rejected"); -assert.equal(ctx.settingControlValue({ kind: "number", is_int: false, min: 0, max: 1 }, { value: "" }), undefined, "an empty number is rejected"); -assert.equal(ctx.settingControlValue({ kind: "dropdown" }, { dataset: { value: "3" } }), 3, "an enum dropdown submits its stored int value"); -assert.equal(ctx.settingControlValue({ kind: "dropdown" }, { dataset: { value: "nope" } }), undefined, "a non-numeric dropdown value is rejected"); -assert.equal(ctx.settingControlValue({ kind: "dropdown" }, {}), undefined, "a dropdown with no value is rejected"); -// dropdownLabel maps the current int value to its human label, falling back to the value. -const seamOptions = [ - { value: 0, key: "nearest", label: "Nearest" }, - { value: 1, key: "aligned", label: "Aligned" }, - { value: 2, key: "random", label: "Random" } -]; -assert.equal(ctx.dropdownLabel(seamOptions, 1), "Aligned", "the dropdown label for a known value is its label"); -assert.equal(ctx.dropdownLabel(seamOptions, 9), "9", "an unknown value falls back to the raw value"); -assert.equal(ctx.dropdownLabel([], 3), "3", "empty options fall back to the raw value"); -assert.equal(ctx.dropdownLabel( - [{ value: 1, key: "aligned", label: "" }], 1), "aligned", "a blank label falls back to the key"); -// dropdownIcon maps the current int value to its pattern pictogram, empty when there is none. -const patternOptions = [ - { value: 0, key: "rectilinear", label: "Rectilinear" }, - { value: 3, key: "gyroid", label: "Gyroid", icon: "data:image/svg+xml;base64,AAA" }, - { value: 5, key: "grid", label: "Grid", icon: "data:image/svg+xml;base64,BBB" } -]; -assert.equal(ctx.dropdownIcon(patternOptions, 3), "data:image/svg+xml;base64,AAA", "a known value returns its icon"); -assert.equal(ctx.dropdownIcon(patternOptions, 0), "", "a value with no icon returns empty"); -assert.equal(ctx.dropdownIcon(patternOptions, 9), "", "an unknown value returns empty"); -assert.equal(ctx.dropdownIcon([], 3), "", "empty options return empty"); -assert.equal(ctx.settingControlValue({ kind: "text" }, { value: "hello" }), "hello", "text submits as a string"); -// percent (coFloatOrPercent / coFloatsOrPercents): submits the raw typed string; empty is invalid. -assert.equal(ctx.settingControlValue({ kind: "percent" }, { value: "10%" }), "10%", "a percent value submits as its string"); -assert.equal(ctx.settingControlValue({ kind: "percent" }, { value: "0.5" }), "0.5", "an mm value submits as a plain string"); -assert.equal(ctx.settingControlValue({ kind: "percent" }, { value: " " }), undefined, "a blank percent value is rejected"); -assert.equal(ctx.settingControlValue({ kind: "percent" }, {}), undefined, "a percent field with no value is rejected"); -// A percent scalar-to-scalar payload carries the raw string through unchanged. -assert.equal(ctx.settingCollectedValue( - { editable: true, control: "percent", cardinality: "scalar", value: "10%" }, - [{ kind: "percent", value: "10%" }], [{ value: "10%" }]), "10%", "a percent scalar assembles its string"); - -// settingCollectedValue assembles the payload (scalar vs vector) for the set_setting message. -assert.equal(ctx.settingCollectedValue({ editable: false }, [], []), undefined, "a non-editable setting yields no payload"); -assert.equal(ctx.settingCollectedValue(scalarBoolDesc, scalarRows, [{ checked: true }]), true, "a scalar assembles a single value"); -assert.deepEqual(ctx.settingCollectedValue(vectorDesc, vectorRows, [{ value: "0.3" }, { value: "0.7" }]), [0.3, 0.7], "a vector assembles an array"); -assert.equal(ctx.settingCollectedValue(vectorDesc, vectorRows, [{ value: "0.3" }, { value: "2" }]), undefined, "an invalid vector element aborts the whole payload"); - console.log("ok"); diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index b5108462dd..2467e88749 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -294,145 +294,3 @@ kbd { color: var(--muted, var(--orca-muted, #6b7280)); text-align: center; } - -/* ---- inline setting editor card (phase "setting") --------------------------- */ -.dial-list.setting { overflow-y: auto; } -.dial-editor { - display: flex; - flex-direction: column; - gap: 6px; - padding: 8px; -} -.editor-title { font-size: 14px; font-weight: 600; line-height: 1.3; } -.editor-title-row { display: flex; align-items: center; gap: 8px; } -.editor-preview-icon { - flex: 0 0 auto; - width: 24px; - height: 24px; -} -.editor-preview-icon[hidden] { display: none; } -.editor-tooltip { font-size: 11px; line-height: 1.4; color: var(--muted, var(--orca-muted, #6b7280)); } -.editor-row { display: flex; align-items: center; gap: 8px; min-height: 32px; } -.editor-label { - flex: 0 0 auto; - min-width: 64px; - font-size: 12px; - color: var(--muted, var(--orca-muted, #6b7280)); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.editor-unit { font-size: 12px; color: var(--muted, var(--orca-muted, #6b7280)); } -.editor-row input[type="number"], -.editor-row input[type="text"], -.editor-row select, -.editor-row input[type="color"] { - flex: 1 1 auto; - min-width: 0; - height: 30px; - padding: 0 8px; - border: 1px solid var(--border, var(--orca-border, #ddd)); - border-radius: 6px; - background: var(--panel, var(--orca-bg, #fff)); - color: var(--text, var(--orca-fg, #1b1c1e)); - font: inherit; -} -.editor-row input[type="color"] { padding: 2px 4px; cursor: pointer; } -.editor-row input:focus { outline: none; border-color: var(--main-color, var(--orca-accent, #009688)); box-shadow: 0 0 0 2px rgba(0,150,136,.22); } -/* custom dropdown (native <select> popups are flaky in the embedded webview) */ -.ed-dropdown { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; } -.ed-dropdown-toggle { - display: flex; - align-items: center; - gap: 6px; - width: 100%; - height: 30px; - padding: 0 8px; - border: 1px solid var(--border, var(--orca-border, #ddd)); - border-radius: 6px; - background: var(--panel, var(--orca-bg, #fff)); - color: var(--text, var(--orca-fg, #1b1c1e)); - font: inherit; - text-align: left; - cursor: pointer; -} -.ed-dropdown-toggle.open { border-color: var(--main-color, var(--orca-accent, #009688)); } -.ed-dropdown-label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.ed-dropdown-caret { flex: 0 0 auto; font-size: 10px; color: var(--muted, var(--orca-muted, #6b7280)); transition: transform .12s; } -.ed-dropdown-toggle.open .ed-dropdown-caret { transform: rotate(180deg); } -.ed-dropdown-menu { - /* Overlay popover, not in-flow: opening it must NOT grow the editor card or the popup window. - position/left/top/width/max-height are set from JS on open (position:fixed escapes the - scrollable card and launcher overflow, so the menu clips to the popup and scrolls itself). - These are only the visual defaults. */ - position: absolute; - z-index: 30; - border: 1px solid var(--border, var(--orca-border, #ddd)); - border-radius: 6px; - background: var(--panel, var(--orca-bg, #fff)); - box-shadow: 0 8px 24px rgba(0,0,0,.16); - max-height: 200px; - overflow-y: auto; -} -.ed-dropdown-option { - display: flex; - align-items: center; - gap: 8px; - width: 100%; - padding: 6px 8px; - border: 0; - background: none; - color: var(--text, var(--orca-fg, #1b1c1e)); - font: inherit; - text-align: left; - cursor: pointer; -} -.ed-dropdown-option:hover { background: var(--row-hover, rgba(127,127,127,.16)); } -.ed-dropdown-option.sel { font-weight: 600; color: var(--main-color, var(--orca-accent, #009688)); } -.ed-option-label { flex: 1 1 auto; min-width: 0; } -/* Pattern pictograms: filled with the option's icon, and (for values with none) absent. */ -.ed-option-icon, -.ed-dropdown-icon { - flex: 0 0 auto; - width: 16px; - height: 16px; -} -.ed-dropdown-icon[hidden] { display: none; } -/* toggle switch */ -.ed-switch { position: relative; flex: 0 0 auto; width: 36px; height: 20px; } -.ed-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; } -.ed-slider { - position: absolute; - inset: 0; - background: #c4c4c4; - border-radius: 10px; - transition: background .15s; -} -.ed-slider::before { - content: ""; - position: absolute; - width: 16px; - height: 16px; - left: 2px; - top: 2px; - background: #fff; - border-radius: 50%; - transition: transform .15s; -} -.ed-switch input:checked + .ed-slider { background: var(--main-color, var(--orca-accent, #009688)); } -.ed-switch input:checked + .ed-slider::before { transform: translateX(16px); } -.editor-readonly { padding: 4px 0; font-size: 12px; color: var(--muted, var(--orca-muted, #6b7280)); } -.editor-actions { display: flex; gap: 8px; padding-top: 4px; } -.ed-btn { - padding: 6px 12px; - border: 1px solid var(--border, var(--orca-border, #ddd)); - border-radius: 6px; - background: var(--panel, var(--orca-bg, #fff)); - color: var(--text, var(--orca-fg, #1b1c1e)); - font: inherit; - cursor: pointer; -} -.ed-btn:hover { background: var(--row-hover, rgba(127,127,127,.16)); } -.ed-btn-primary { background: var(--main-color, var(--orca-accent, #009688)); border-color: var(--main-color, var(--orca-accent, #009688)); color: #fff; } -.ed-btn-primary:hover { filter: brightness(1.05); } -.editor-hint { font-size: 10px; text-align: center; color: var(--muted, var(--orca-muted, #6b7280)); } diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index ef31401909..b55455f45d 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -180,17 +180,15 @@ struct SettingAction : AppAction , type(type_in) , category(std::move(category_in)) { - // A setting is a two-phase command: activating it opens the inline editor (the "setting" - // phase) instead of running. Native run() is a no-op fallback; the editor applies through - // apply_setting(). + // A setting is a single-phase command: activating it jumps the sidebar to the option + // (like the sidebar's own settings search), then the dial closes. run() performs the jump. this->kind = AppActionKind::Command; this->group = std::move(group); - this->input = "setting"; } AppActionRunResult run(const std::string& /*param*/) const override { - // Two-phase: the palette collects the edit; native run() is a no-op fallback. + wxGetApp().sidebar().jump_to_option(opt_key, type, category); return {AppActionRunResult::Level::Success}; } @@ -693,45 +691,7 @@ std::vector<std::unique_ptr<AppAction>> native_commands() return out; } -// ---- inline setting editor helpers ------------------------------------------ - -// The inline editor "control" kind for an option, or "" when it can't be edited inline -// (plugin-backed values, points, serialized strings, etc.). readonly/legend options are -// filtered out of the search entirely in materialize_setting_actions(), so they never -// reach here. -std::string setting_control(const ConfigOptionDef& def) -{ - if (def.readonly || def.gui_type == ConfigOptionDef::GUIType::legend || - def.gui_type == ConfigOptionDef::GUIType::one_string || def.is_plugin_backed()) - return ""; - // Serialized vectors are entered as ONE semicolon-separated field (e.g. post_process), which the - // per-index editor doesn't model - keep them in the open-in-sidebar bucket. - if (def.gui_flags.find("serialized") != std::string::npos) - return ""; - switch (def.gui_type) { - case ConfigOptionDef::GUIType::color: return "color"; - case ConfigOptionDef::GUIType::i_enum_open: - case ConfigOptionDef::GUIType::f_enum_open: return "combo"; - default: break; - } - switch (def.type) { - case coBool: - case coBools: return "toggle"; - case coEnum: - case coEnums: return def.enum_values.empty() ? "combo" : "dropdown"; - case coInt: - case coInts: - case coFloat: - case coFloats: - case coPercent: - case coPercents: return "number"; - case coFloatOrPercent: - case coFloatsOrPercents: return "percent"; - case coString: - case coStrings: return "text"; - default: return ""; - } -} +// ---- setting action helpers -------------------------------------------------- // Self-contained base64 encoder (for the tiny pictogram SVGs), avoiding a dependency on the exact // wxBase64Encode overload/return type across wx versions. @@ -790,41 +750,6 @@ std::string setting_icon_for_key(const std::string& key) return "data:image/svg+xml;base64," + base64_encode(data); } -// [{value,key,label,icon}...] for an enum/combo. Ordered by enum_values when present, else by the -// keys_map iteration. label falls back to the key when enum_labels doesn't provide one. `icon` is -// the value's pattern pictogram when one exists, empty otherwise. -nlohmann::json setting_enum_options(const ConfigOptionDef& def) -{ - nlohmann::json out = nlohmann::json::array(); - auto label_at = [&](size_t i, const std::string& key) -> std::string { - return (i < def.enum_labels.size() && !def.enum_labels[i].empty()) ? def.enum_labels[i] : key; - }; - if (def.enum_keys_map != nullptr) { - std::vector<std::string> ordered; - if (!def.enum_values.empty()) - ordered = def.enum_values; - else - for (const auto& kv : *def.enum_keys_map) - ordered.push_back(kv.first); - for (size_t i = 0; i < ordered.size(); ++i) { - auto it = def.enum_keys_map->find(ordered[i]); - if (it == def.enum_keys_map->end()) - continue; - out.push_back({{"value", it->second}, - {"key", ordered[i]}, - {"label", label_at(i, ordered[i])}, - {"icon", setting_icon_for_key(ordered[i])}}); - } - } else { - for (size_t i = 0; i < def.enum_values.size(); ++i) - out.push_back({{"value", (long long) i}, - {"key", def.enum_values[i]}, - {"label", label_at(i, def.enum_values[i])}, - {"icon", setting_icon_for_key(def.enum_values[i])}}); - } - return out; -} - // The pattern pictogram for a setting's CURRENT value (its enum int), empty when it isn't a // pattern-style enum or the value has no icon. Used for the search-result tile. std::string setting_action_icon(const SettingAction& a) @@ -854,146 +779,6 @@ std::string setting_action_icon(const SettingAction& a) std::string SettingAction::icon() const { return setting_action_icon(*this); } -// Current value of the option at vector index `idx` as JSON (bool/number/string), or null for a -// type the inline editor doesn't render. `config` is the tab's live config; when an option is -// absent the def's default is shown. -nlohmann::json setting_value_json(const DynamicPrintConfig& config, const ConfigOptionDef& def, size_t idx) -{ - const ConfigOption* opt = config.option(def.opt_key); - const ConfigOption* root = opt ? opt : def.default_value.get(); - if (!root) - return nullptr; - switch (def.type) { - case coBool: return root->getBool(); - case coInt: return root->getInt(); - case coFloat: return root->getFloat(); - case coPercent: return root->getFloat(); - case coString: return static_cast<const ConfigOptionString*>(root)->value; - case coEnum: return root->getInt(); - case coBools: { - if (auto v = dynamic_cast<const ConfigOptionBools*>(root)) - return bool(v->get_at(idx)); - if (auto v = dynamic_cast<const ConfigOptionBoolsNullable*>(root)) - return bool(v->get_at(idx) != 0); - return nullptr; - } - case coInts: { - if (auto v = dynamic_cast<const ConfigOptionInts*>(root)) - return v->get_at(idx); - if (auto v = dynamic_cast<const ConfigOptionIntsNullable*>(root)) { - const int nil = ConfigOptionIntsNullable::nil_value(); - int val = v->get_at(idx); - return val == nil ? nlohmann::json(nullptr) : nlohmann::json(val); - } - return nullptr; - } - case coFloats: { - if (auto v = dynamic_cast<const ConfigOptionFloats*>(root)) - return v->get_at(idx); - if (auto v = dynamic_cast<const ConfigOptionFloatsNullable*>(root)) { - double val = v->get_at(idx); - return std::isnan(val) ? nlohmann::json(nullptr) : nlohmann::json(val); - } - return nullptr; - } - case coPercents: { - if (auto v = dynamic_cast<const ConfigOptionPercents*>(root)) - return v->get_at(idx); - if (auto v = dynamic_cast<const ConfigOptionPercentsNullable*>(root)) { - double val = v->get_at(idx); - return std::isnan(val) ? nlohmann::json(nullptr) : nlohmann::json(val); - } - return nullptr; - } - case coStrings: return static_cast<const ConfigOptionStrings*>(root)->get_at(idx); - case coEnums: { - if (auto v = dynamic_cast<const ConfigOptionEnumsGeneric*>(root)) - return v->get_at(idx); - if (auto v = dynamic_cast<const ConfigOptionEnumsGenericNullable*>(root)) { - const int nil = ConfigOptionEnumsGenericNullable::nil_value(); - int val = v->get_at(idx); - return val == nil ? nlohmann::json(nullptr) : nlohmann::json(val); - } - return nullptr; - } - case coFloatOrPercent: return root->serialize(); - case coFloatsOrPercents: { - if (auto v = dynamic_cast<const ConfigOptionFloatsOrPercents*>(root)) { - auto ss = v->vserialize(); - return idx < ss.size() ? ss[idx] : nullptr; - } - if (auto v = dynamic_cast<const ConfigOptionFloatsOrPercentsNullable*>(root)) { - auto ss = v->vserialize(); - return idx < ss.size() ? ss[idx] : nullptr; - } - return nullptr; - } - default: return nullptr; - } -} - -// How many scalar values the option currently has (1 for scalars, the array length for vectors). -size_t setting_value_count(const DynamicPrintConfig& config, const ConfigOptionDef& def) -{ - if ((int(def.type) & int(coVectorType)) == 0) - return 1; - // size() lives on ConfigOptionVectorBase, not ConfigOption - dynamic_cast to it covers every - // vector type (and their nullable variants) polymorphically. - const ConfigOption* opt = config.option(def.opt_key); - if (opt) - if (auto v = dynamic_cast<const ConfigOptionVectorBase*>(opt)) - return v->size(); - if (def.default_value) - if (auto v = dynamic_cast<const ConfigOptionVectorBase*>(def.default_value.get())) - return v->size(); - return 1; -} - -// boost::any for a single element, matching what Slic3r::GUI::change_opt_value expects. -boost::any setting_any_from_json(const ConfigOptionDef& def, const nlohmann::json& v) -{ - if (!v.is_null()) { - switch (def.type) { - case coBool: return boost::any(v.is_boolean() ? v.get<bool>() : v.get<int>() != 0); - case coInt: return boost::any(v.get<int>()); - case coFloat: - case coPercent: return boost::any(v.get<double>()); - case coString: return boost::any(v.get<std::string>()); - case coEnum: return boost::any(v.get<int>()); - case coBools: return boost::any(static_cast<unsigned char>(v.get<bool>() ? 1 : 0)); - case coInts: return boost::any(v.get<int>()); - case coFloats: - case coPercents: return boost::any(v.get<double>()); - case coStrings: return boost::any(v.get<std::string>()); - case coFloatOrPercent: - case coFloatsOrPercents: { - // change_opt_value detects "percent" via a trailing '%', so trim whitespace first or a - // stray space (e.g. "10% ") would be misread as mm. - std::string s = v.is_string() ? v.get<std::string>() : std::to_string(v.get<double>()); - boost::trim(s); - // An empty string would make change_opt_value's str.back() UB - bail out to a rejected apply. - return s.empty() ? boost::any() : boost::any(s); - } - case coEnums: return boost::any(v.get<int>()); - default: break; - } - } - // Coerce numeric types that may arrive as a different JSON numeric type. - if (v.is_number()) { - switch (def.type) { - case coInt: - case coEnums: return boost::any(v.get<int>()); - case coFloat: - case coPercent: - case coInts: - case coFloats: - case coPercents: return boost::any(v.get<double>()); - default: break; - } - } - return boost::any(); -} - } // namespace ActionRegistry::~ActionRegistry() = default; @@ -1257,16 +1042,6 @@ void ActionRegistry::materialize_setting_actions() std::unordered_set<std::string> seen; for (const Search::Option& opt : options) { - // Omit rows the inline editor can't represent and that aren't useful as a jump target: - // readonly (e.g. the detected thread count) and legend (static text) GUI rows. They remain - // in the sidebar's own search; only the Speed Dial pool drops them. - Tab* tab = wxGetApp().get_tab(opt.type); - if (tab && tab->get_config()) { - const ConfigOptionDef* def = tab->get_config()->def()->get(opt.opt_key()); - if (!def || def->readonly || def->gui_type == ConfigOptionDef::GUIType::legend) - continue; - } - const std::string id = SettingAction::id_for(opt.opt_key(), opt.type); seen.insert(id); @@ -1468,140 +1243,4 @@ nlohmann::json ActionRegistry::tab_options() const return out; } -// ---- inline setting editor (read the current value) -------------------------- - -nlohmann::json ActionRegistry::setting_descriptor(const std::string& id) const -{ - assert(wxThread::IsMain()); - const AppAction* a = by_id(id); - const SettingAction* sa = dynamic_cast<const SettingAction*>(a); - if (!sa) - return nlohmann::json::object(); - Tab* tab = wxGetApp().get_tab(sa->type); - if (!tab) - return nlohmann::json::object(); - DynamicPrintConfig* config = tab->get_config(); - if (!config) - return nlohmann::json::object(); - const ConfigOptionDef* def = config->def()->get(sa->opt_key); - if (!def) - return nlohmann::json::object(); - - const std::string control = setting_control(*def); - const bool vector = (int(def->type) & int(coVectorType)) != 0; - - nlohmann::json d = {{"id", sa->id()}, - {"opt_key", sa->opt_key}, - {"type", int(sa->type)}, - {"title", a->title()}, - {"breadcrumb", a->source_name()}, - {"category", boost::nowide::narrow(sa->category)}, - {"unit", def->sidetext}, - {"tooltip", def->tooltip}, - {"editable", !control.empty()}, - {"control", control}, - {"cardinality", vector ? "vector" : "scalar"}}; - - if (!control.empty()) { - // Hide unbounded min/max so the page doesn't clamp a sane value to ±FLT_MAX. - if (def->min > -FLT_MAX) - d["min"] = def->min; - if (def->max < FLT_MAX) - d["max"] = def->max; - if (control == "number") - d["is_int"] = (def->type == coInt || def->type == coInts); - if (control == "dropdown" || control == "combo") - d["enum_options"] = setting_enum_options(*def); - if (vector) { - nlohmann::json values = nlohmann::json::array(); - nlohmann::json labels = nlohmann::json::array(); - const size_t n = setting_value_count(*config, *def); - for (size_t i = 0; i < n; ++i) { - values.push_back(setting_value_json(*config, *def, i)); - labels.push_back(std::to_string(i + 1)); - } - d["values"] = std::move(values); - d["index_labels"] = std::move(labels); - } else { - d["value"] = setting_value_json(*config, *def, 0); - } - } - return d; -} - -// ---- inline setting editor (write the edited value back) --------------------- - -bool ActionRegistry::apply_setting(const std::string& id, const nlohmann::json& value) -{ - assert(wxThread::IsMain()); - const AppAction* a = by_id(id); - const SettingAction* sa = dynamic_cast<const SettingAction*>(a); - if (!sa) - return false; - Tab* tab = wxGetApp().get_tab(sa->type); - if (!tab) - return false; - DynamicPrintConfig* config = tab->get_config(); - if (!config) - return false; - const ConfigOptionDef* def = config->def()->get(sa->opt_key); - if (!def) - return false; - const std::string control = setting_control(*def); - if (control.empty()) - return false; - - const bool vector = (int(def->type) & int(coVectorType)) != 0; - const size_t n = vector ? (value.is_array() ? value.size() : 0) : 1; - if (vector && n == 0) - return false; - - for (size_t i = 0; i < n; ++i) { - const nlohmann::json& elem = vector ? value[i] : value; - boost::any any = setting_any_from_json(*def, elem); - if (any.empty()) - return false; - if (control == "number" && elem.is_number()) { - const double d = elem.get<double>(); - if (d < def->min || d > def->max) - return false; - } - if (control == "percent" && elem.is_string()) { - // "mm or %" value: strip a trailing %/whitespace, clamp the numeric part to [min,max]. - // Reject anything that isn't a well-formed number (which change_opt_value would throw on). - std::string s = elem.get<std::string>(); - boost::trim(s); - if (!s.empty() && s.back() == '%') - s.pop_back(); - boost::trim(s); - if (s.empty()) - return false; - char* end = nullptr; - const double d = std::strtod(s.c_str(), &end); - if (end == s.c_str() || *end != '\0') - return false; - if (d < def->min || d > def->max) - return false; - } - Slic3r::GUI::change_opt_value(*config, sa->opt_key, any, int(i)); - } - - // Mark the preset modified like a sidebar edit. Scalar options also get the standard - // post-change hook so dependent settings refresh; vector options have no unambiguous scalar - // value to pass, so on_value_change is skipped (the config write + dirty flag is still correct). - tab->update_dirty(); - if (!vector) { - boost::any any = setting_any_from_json(*def, value); - if (!any.empty()) - tab->on_value_change(sa->opt_key, any); - } - - // The config write is separate from the on-screen Field, so repaint the field(s) that display - // this option (on whatever page they live, not just the active page) - otherwise the sidebar - // shows the "modified" arrow but keeps the stale value pushed to the last edit/reload. - if (Page* page = nullptr; tab->get_field(sa->opt_key, &page) && page) - page->reload_config(); - return true; -} - }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index d7bd1fa583..6daafdde56 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -173,16 +173,6 @@ public: // plugins) aren't separate pages and are not listed. Call on the UI thread; null-safe. nlohmann::json tab_options() const; - // Inline setting editor descriptor for a SettingAction id. Returns the JSON the palette - // renders: {id, opt_key, type, title, breadcrumb, category, group, unit, tooltip, editable, - // control ("toggle|number|dropdown|combo|text|color"), cardinality ("scalar"|"vector"), - // value|values, index_labels[], enum_options[], min|max}. Empty object for a non-setting id. - nlohmann::json setting_descriptor(const std::string& id) const; - // Apply an edit submitted by the palette. `value` is the control's JSON payload (scalar, or an - // array for vector settings). Writes the value(s) into the global preset config and marks the - // preset dirty, exactly like a sidebar edit. Returns false on a bad id/type/value. - bool apply_setting(const std::string& id, const nlohmann::json& value); - private: void seed_state(AppAction& a) const; // favourite/stats from config AppAction* find(const std::string& id); diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index 593d8a7344..b199d0b5ae 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -9,10 +9,6 @@ #include "Plater.hpp" #include "Widgets/WebViewHostDialog.hpp" -#include <libslic3r/Preset.hpp> - -#include <boost/nowide/convert.hpp> - #include <algorithm> #include <wx/display.h> @@ -155,27 +151,6 @@ void SpeedDialWebDialog::handle_web_command(const nlohmann::json& payload) if (wxGetApp().mainframe) wxGetApp().mainframe->select_tab(from_u8(tab_id)); } - } else if (command == "setting_descriptor") { - // Inline editor: hand the page the descriptor for the setting it's editing. - const std::string id = payload.value("id", ""); - call_web_handler( - {{"command", "setting_descriptor"}, {"descriptor", wxGetApp().action_registry().setting_descriptor(id)}}); - } else if (command == "set_setting") { - // Inline editor submit. Apply the value; on success close the dialog. - const std::string id = payload.value("id", ""); - const nlohmann::json value = payload.contains("value") ? payload["value"] : nlohmann::json(nullptr); - if (id.empty() || !wxGetApp().action_registry().apply_setting(id, value)) { - call_web_handler({{"command", "apply_failed"}, {"id", id}}); - return; - } - Hide(); - } else if (command == "open_setting_in_sidebar") { - // Non-inline-editable setting (points, plugin-backed, float-or-percent): jump the sidebar. - Hide(); - const std::string opt_key = payload.value("opt_key", ""); - const std::string category = payload.value("category", ""); - if (!opt_key.empty()) - wxGetApp().sidebar().jump_to_option(opt_key, Preset::Type(payload.value("type", int(Preset::TYPE_INVALID))), boost::nowide::widen(category)); } else if (command == "resize") resize_to_content(json_int_or(payload, "height", 0)); } From 3985200672b509db272306f3a9d916e536dfb4a6 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Wed, 9 Sep 2026 16:53:58 +0800 Subject: [PATCH 06/76] Search improvements. Code refactoring so its easier to maintain. Experimental features for speed dial: connect/disconnect from printer. --- resources/web/dialog/SpeedDial/speeddial.js | 185 +++-- .../web/dialog/SpeedDial/speeddial.test.js | 29 +- resources/web/dialog/SpeedDial/style.css | 15 +- resources/web/js/fuzzy-search.js | 57 +- resources/web/js/fuzzy-search.test.js | 13 +- src/slic3r/CMakeLists.txt | 2 + src/slic3r/GUI/ActionRegistry.cpp | 666 +++--------------- src/slic3r/GUI/ActionRegistry.hpp | 10 +- src/slic3r/GUI/MainFrame.cpp | 178 +++-- src/slic3r/GUI/MainFrame.hpp | 20 + src/slic3r/GUI/NativeCommands.cpp | 500 +++++++++++++ src/slic3r/GUI/NativeCommands.hpp | 31 + src/slic3r/GUI/Plater.cpp | 19 + src/slic3r/GUI/Plater.hpp | 3 + tests/slic3rutils/test_action_source.cpp | 10 + 15 files changed, 968 insertions(+), 770 deletions(-) create mode 100644 src/slic3r/GUI/NativeCommands.cpp create mode 100644 src/slic3r/GUI/NativeCommands.hpp diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 78ba8a138d..04844aae43 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -39,37 +39,60 @@ var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, count // ---- pure helpers (no DOM; unit-tested) ------------------------------------- // Pre-normalized haystacks, cached on the action object. The fold is length-preserving (1:1 per -// char) so the ranges FuzzyRangesNorm returns slice the ORIGINAL title/source text correctly. The -// action objects arrive from C++ and are stable for the dialog's lifetime, so we compute these once. +// char) so the ranges FuzzyRangesNorm returns slice the ORIGINAL title/group/source text correctly. +// The action objects arrive from C++ and are stable for the dialog's lifetime, so we compute these once. function titleNorm(a) { if (a._tn === undefined) a._tn = NormText(a.title, false); return a._tn; } -function otherNorm(a) { - if (a._on === undefined) - a._on = NormText((a.source || "") + " " + (a.group || ""), false); - return a._on; +// The eyebrow (header) line shows group when present, else source. Settings keep an empty group so +// their source path is the eyebrow; commands / plates / recents carry a non-empty group. Splitting the +// two lets a match range stay aligned to whichever string the eyebrow actually renders. +function groupNorm(a) { + if (a._gn === undefined) + a._gn = NormText(a.group || "", false); + return a._gn; +} +function sourceNorm(a) { + if (a._sn === undefined) + a._sn = NormText(a.source || "", false); + return a._sn; } -// Relevance score for a single field vs the current query needle, or -1 when there's no match. -// Higher is better: an earlier start and a more contiguous (fewer gaps) match beat a scattered late one. -function matchScoreNorm(haystackNorm) { - if (!searchNeedle) return -1; - var r = FuzzyRangesNorm(haystackNorm || "", searchNeedle); - if (!r) return -1; - var gaps = 0; - for (var i = 1; i < r.length; i++) - gaps += r[i][0] - r[i - 1][1]; - return 1000 - r[0][0] * 10 - gaps * 10; +// Match one pre-normalized field vs the current needle. Returns {score, ranges, contiguous} when the +// needle is present, else null. wwRe is a compiled whole-word (\b-bounded) regex for the current needle. +// A whole-word hit is preferred - it highlights the full word (e.g. "orient" in "Auto-Orient", not the +// stray "o" of "Auto") and marks a perfect match. Otherwise FuzzyRangesNorm (which now prefers the +// most-contiguous run) is used. score is higher for an earlier start and fewer gaps; contiguous marks +// a perfect match - the whole needle landed as one unbroken run. +function fieldMatchScore(norm, wwRe) { + if (!searchNeedle) return null; + if (wwRe) { + var m = wwRe.exec(norm || ""); + if (m) + return {score: 1000 - m.index * 10, ranges: [[m.index, m.index + m[0].length]], contiguous: true}; + } + var r = FuzzyRangesNorm(norm || "", searchNeedle); + if (!r) return null; + var gaps = 0, len = 0; + for (var i = 0; i < r.length; i++) { + if (i > 0) + gaps += r[i][0] - r[i - 1][1]; + len += r[i][1] - r[i][0]; + } + return {score: 1000 - r[0][0] * 10 - gaps * 10, ranges: r, contiguous: r.length === 1 && len === searchNeedle.length}; } -// Per-action score: title matches rank above a source/group-only match of equal quality. -function actionSearchScore(a) { - var title = matchScoreNorm(titleNorm(a)); - var other = matchScoreNorm(otherNorm(a)); - if (title < 0 && other < 0) return -1; - return Math.max(title < 0 ? -1e9 : title + 10000, other < 0 ? -1e9 : other); +// Combine the per-field match scores into one comparable value. Ranking tiers, strongest first: +// tier (contiguous/perfect vs fuzzy) > field (title > group > source) > start/gaps. +// The additive weights keep every contiguous match above every fuzzy one regardless of field. +function scoreFields(t, g, s) { + var best = -1; + if (t) best = Math.max(best, (t.contiguous ? 100000 : 0) + 2000 + t.score); + if (g) best = Math.max(best, (g.contiguous ? 100000 : 0) + 1000 + g.score); + if (s) best = Math.max(best, (s.contiguous ? 100000 : 0) + s.score); + return best; } // The unified main-phase search: every action (command/plugin/setting) matching the query, ranked @@ -82,15 +105,27 @@ function searchActions(actions, query) { matchIndex = {}; if (!q) { searchNeedle = ""; return list.slice(0); } searchNeedle = NormText(q, false); + // Compiled once per pass, reused over every field: non-global so no exec()/lastIndex state leaks + // between fields, and EscapeRegExp keeps regex metachars in the query literal. + var wwRe = new RegExp("\\b" + EscapeRegExp(searchNeedle) + "\\b"); var scored = []; for (var i = 0; i < list.length; i++) { var a = list[i]; - var s = actionSearchScore(a); - if (s < 0) continue; - var titleMatch = FuzzyRangesNorm(titleNorm(a), searchNeedle); - matchIndex[a.id] = { title: titleMatch, source: FuzzyRangesNorm(otherNorm(a), searchNeedle), useTitle: !!titleMatch }; - scored.push({ a: a, s: s }); + var t = fieldMatchScore(titleNorm(a), wwRe); + var g = fieldMatchScore(groupNorm(a), wwRe); + var s = fieldMatchScore(sourceNorm(a), wwRe); + var score = scoreFields(t, g, s); + if (score < 0) continue; + // Ranges are per-field against the ACTUAL text drawn: title for the row-name, and group (or + // source when group is empty) for the eyebrow - so highlight offsets stay aligned to the label. + matchIndex[a.id] = { + title: t ? t.ranges : null, + group: g ? g.ranges : null, + source: s ? s.ranges : null, + useEyebrowGroup: !!(a.group) + }; + scored.push({ a: a, s: score }); } scored.sort(function (x, y) { if (x.s !== y.s) return y.s - x.s; @@ -112,7 +147,7 @@ function buildKey() { return phase + "|" + (query || "").trim(); } function visibleFavourites(favourites, actions) { // why: a fav whose id has no live action (plugin unloaded/disabled) renders a dead - // monogram tile whose click run()s to a silent no-op; drop it from the quick-bar. + // placeholder tile whose click run()s to a silent no-op; drop it from the quick-bar. var seen = {}; (actions || []).forEach(function (a) { seen[a.id] = true; }); return (favourites || []).filter(function (id, i, arr) { @@ -164,21 +199,42 @@ function shouldRenderActionList(query) { return !!((query || "").trim()); } -// Put an action's pattern pictogram into a tile (search row or favourites tile) when it has one, -// otherwise fall back to the monogram. Toggles the has-icon class so CSS neutralises the hue. +// Monogram code for a tile: title initial, escalated on collision by PREPENDING the source +// initial (pi+ti, e.g. "GC"), then a 1-based ordinal - so same-titled items stay distinct. +// why: ordinal is assigned by id, not by list order - list order is frecency-sorted and +// reshuffles as usage changes, which would otherwise flip who's "1" and who's "2" across runs. +function monogramFor(item, list, titleOf, sourceOf, idOf) { + var items = list || []; + var title = titleOf(item) || " "; + var ti = title.charAt(0).toUpperCase(); + var sameTitle = items.filter(function (o) { return (titleOf(o) || " ").charAt(0).toUpperCase() === ti; }); + if (sameTitle.length <= 1) + return ti; + var source = sourceOf(item) || " "; + var pi = source.charAt(0).toUpperCase(); + var sameSource = sameTitle.filter(function (o) { return (sourceOf(o) || " ").charAt(0).toUpperCase() === pi; }); + if (sameSource.length <= 1) + return pi + ti; + sameSource.sort(function (a, b) { return idOf(a) < idOf(b) ? -1 : idOf(a) > idOf(b) ? 1 : 0; }); + for (var i = 0; i < sameSource.length; i++) + if (sameSource[i] === item || idOf(sameSource[i]) === idOf(item)) + return pi + ti + (i + 1); + return pi + ti; +} + +// Action tile code - see monogramFor for the escalation ladder. Settings are actions now, so +// they share this ladder (title initial, then source, then a stable ordinal). +function tileCode(action, actions) { + return monogramFor(action, actions, + function (o) { return o.title; }, + function (o) { return o.source; }, + function (o) { return o.id; }); +} + +// Put an action's monogram into a tile (search row or favourites tile). A null action (a tab row +// with no backing action) renders an empty tile. function fillTile(tile, a) { - tile.classList.remove("has-icon"); - if (a && a.icon) { - tile.textContent = ""; - var img = document.createElement("img"); - img.className = "tile-icon"; - img.src = a.icon; - img.alt = ""; - tile.appendChild(img); - tile.classList.add("has-icon"); - } else { - tile.textContent = a ? tileCode(a, ACTIONS) : ""; - } + tile.textContent = a ? tileCode(a, ACTIONS) : ""; } // The active list for the main phase. A typed query ranks every action (commands/plugins/settings) @@ -224,38 +280,6 @@ function actionLabel(action, actions) { return label; } -// Monogram code for a tile: title initial, escalated on collision by PREPENDING the source -// initial (pi+ti, e.g. "GC"), then a 1-based ordinal - so same-titled items stay distinct. -// why: ordinal is assigned by id, not by list order - list order is frecency-sorted and -// reshuffles as usage changes, which would otherwise flip who's "1" and who's "2" across runs. -function monogramFor(item, list, titleOf, sourceOf, idOf) { - var items = list || []; - var title = titleOf(item) || " "; - var ti = title.charAt(0).toUpperCase(); - var sameTitle = items.filter(function (o) { return (titleOf(o) || " ").charAt(0).toUpperCase() === ti; }); - if (sameTitle.length <= 1) - return ti; - var source = sourceOf(item) || " "; - var pi = source.charAt(0).toUpperCase(); - var sameSource = sameTitle.filter(function (o) { return (sourceOf(o) || " ").charAt(0).toUpperCase() === pi; }); - if (sameSource.length <= 1) - return pi + ti; - sameSource.sort(function (a, b) { return idOf(a) < idOf(b) ? -1 : idOf(a) > idOf(b) ? 1 : 0; }); - for (var i = 0; i < sameSource.length; i++) - if (sameSource[i] === item || idOf(sameSource[i]) === idOf(item)) - return pi + ti + (i + 1); - return pi + ti; -} - -// Action tile code - see monogramFor for the escalation ladder. Settings are actions now, so -// they share this ladder (title initial, then source, then a stable ordinal). -function tileCode(action, actions) { - return monogramFor(action, actions, - function (o) { return o.title; }, - function (o) { return o.source; }, - function (o) { return o.id; }); -} - function syncClearButton() { if (clearEl) clearEl.hidden = !query; @@ -542,7 +566,12 @@ function renderActionRow(a, i) { var left = document.createElement("div"); left.className = "row-left"; var mi = matchIndex[a.id]; - var sourceEl = markedText("row-eyebrow", a.group || a.source, mi ? mi.source : null); + // The eyebrow shows group when present, else source. Highlight with the ranges of whichever of the + // two the eyebrow actually renders (so a "Recent Projects"/"Object" header match lights up like a + // setting path does - the offsets are computed against the same string we are marking). + var eyebrow = a.group || a.source; + var eyebrowMatch = mi ? (mi.useEyebrowGroup ? mi.group : mi.source) : null; + var sourceEl = markedText("row-eyebrow", eyebrow, eyebrowMatch); var line = document.createElement("div"); line.className = "row-line"; var name = markedText("row-name", a.title, mi ? mi.title : null); @@ -675,8 +704,8 @@ function renderCommandsList() { updateSelection(); } -// A tab row: no star/unpin (tabs aren't pinnable), tile monogram from the title. Uses tabTitle so -// pages added with an empty text (e.g. Home) still show a label and an icon letter. +// A tab row: no star/unpin (tabs aren't pinnable), placeholder tile (tabs have no pictogram). Uses +// tabTitle so pages added with an empty text (e.g. Home) still show a label. function renderTabRow(t, i) { var label = tabTitle(t); var row = document.createElement("div"); @@ -686,7 +715,7 @@ function renderTabRow(t, i) { var tile = document.createElement("div"); tile.className = "tile"; tile.style.setProperty("--h", hue(t.id)); - tile.textContent = label.charAt(0).toUpperCase(); + fillTile(tile, null); var left = document.createElement("div"); left.className = "row-left"; diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index da306255b1..6a0a42bc2e 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -59,7 +59,7 @@ assert.equal(ctx.tabTitle({ id: "home" }), "Home", assert.equal(ctx.tabTitle({ id: "prepare", title: "Prepare" }), "Prepare", "a populated title is kept as-is"); assert.equal(ctx.tabTitle({ id: "prepare", title: " Prepare" }), "Prepare", - "a leading space from the Notebook button label is trimmed so the icon letter shows"); + "a leading space from the Notebook button label is trimmed so the label shows cleanly"); assert.equal(ctx.filterTabs([{ id: "home", title: "" }], "home").length, 1, "an untitled tab still matches a typed query via the id/title fallback"); assert.equal(ctx.filterTabs([{ id: "prepare", title: " Prepare" }], "prepare").length, 1, @@ -82,6 +82,33 @@ assert.equal(ctx.searchActions(pool, "layer").length >= 2, true, assert.equal(ctx.searchActions(pool, "surface")[0].id, "c2", "a later-but-precise match still ranks by relevance, not by pool type"); +// A perfect match (the needle as one contiguous run) outranks a fuzzy match of the same field - and a +// contiguous GROUP/header hit ("Recent Projects") beats a scattered fuzzy TITLE hit ("Retraction Length"), +// which is what the old flat title-bonus ranking got backwards. +const perfectPool = [ + { id: "set", title: "Retraction Length", source: "Process : Quality : Retraction", group: "", input: "" }, + { id: "recent", title: "myproject.3mf", source: "/home/me/projects/myproject.3mf", group: "Recent Projects", input: "" } +]; +assert.equal(ctx.searchActions(perfectPool, "recent")[0].id, "recent", + "a contiguous header/group match ranks above a scattered fuzzy title match"); +// Within a perfect match, the row-name (title) outranks the header (group): the action whose TITLE +// contains the needle perfectly beats the action whose GROUP does, both being contiguous matches. +const titleFirstPool = [ + { id: "grp", title: "Delete Selected", source: "OrcaSlicer", group: "Object", input: "" }, + { id: "t", title: "Object Preview", source: "OrcaSlicer", group: "View", input: "" } +]; +assert.equal(ctx.searchActions(titleFirstPool, "object")[0].id, "t", + "a perfect title match ranks above an equally-perfect group match"); + +// Highlighting: the needle is matched as a whole word / most-contiguous run, so "orient" lights up the +// whole word in "Auto-Orient" instead of the stray "o" of "Auto" plus "rient" (greedy-leftmost). +const orientPool = [ + { id: "ao", title: "Auto-Orient", source: "OrcaSlicer", group: "Object", input: "" } +]; +ctx.searchActions(orientPool, "orient"); +assert.deepEqual(ctx.matchIndex.ao.title, [[5, 11]], + "a whole-word match highlights the full word, not a scattered fuzzy pick"); + // commandList (the main-phase list) delegates to the ranked search for a typed query and returns // the mixed recents (no discrimination) for an empty query. const mixed = [ diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index 2467e88749..aa8bdc7c4b 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -43,8 +43,8 @@ body { cursor: pointer; color: hsl(var(--h) var(--speed-tile-text-s, 72%) var(--speed-tile-text-l, 38%)); font-weight: 700; - /* why: mirror .tile centering - tileCode can be 2-3 chars (e.g. "EA1") on collision, and a - bare <button> inherits 13px + UA padding, clipping the code (e.g. "AE1"). inline-flex + 12px + pad:0 fits it. */ + /* why: mirror .tile centering - icons/placeholder are 18px glyphs, and a bare <button> inherits + 13px + UA padding, which would clip them. inline-flex + pad:0 + overflow:hidden fits them. */ font-size: 12px; padding: 0; display: inline-flex; @@ -227,17 +227,6 @@ body { background: var(--speed-tile-bg, #f0f0f0); border: 1px solid var(--speed-tile-border, #d8d8d8); } -/* A tile holding a pattern pictogram: drop the hue fill so the stroked SVG reads cleanly. */ -.tile.has-icon, -.fav-tile.has-icon { - background: none; - border-color: transparent; -} -.tile-icon { - width: 18px; - height: 18px; - display: block; -} .row-left { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; } .row-eyebrow { font-size: 10px; diff --git a/resources/web/js/fuzzy-search.js b/resources/web/js/fuzzy-search.js index 36dd9edb10..66b2c7b520 100644 --- a/resources/web/js/fuzzy-search.js +++ b/resources/web/js/fuzzy-search.js @@ -34,24 +34,44 @@ function NormText(text, caseSensitive) { // Match a PRE-normalized haystack against a PRE-normalized needle (both produced by NormText with the // same caseSensitive flag). Skipping the per-character fold makes repeated matching (per keystroke over a // cached pool) cheap. Returns ranges in original coordinates, or null on no match. +// Prefers the most-contiguous (smallest-span) occurrence over greedy-leftmost: a scattered match that +// spans a stray earlier character is worse than a tight run later, so "orient" against a normalized +// "auto-orient" returns [[5,11]] (the word) not [[3,4],[6,11]]. A fully contiguous run is the optimum +// and short-circuits early. function FuzzyRangesNorm(haystackNorm, needleNorm) { const t = haystackNorm || ""; const needle = needleNorm || ""; if (!needle) return null; - const ranges = []; - let qi = 0; - for (let i = 0; i < t.length && qi < needle.length; i++) { - if (t[i] === needle[qi]) { - const last = ranges[ranges.length - 1]; - if (last && last[1] === i) - last[1] = i + 1; - else - ranges.push([i, i + 1]); - qi++; + const n = t.length, nl = needle.length; + let best = null; // {ranges, span, start} + for (let start = 0; start < n; start++) { + if (t[start] !== needle[0]) + continue; + let qi = 0; + const ranges = []; + let lastEnd = start; + for (let i = start; i < n && qi < nl; i++) { + if (t[i] === needle[qi]) { + const last = ranges[ranges.length - 1]; + if (last && last[1] === i) + last[1] = i + 1; + else + ranges.push([i, i + 1]); + lastEnd = i + 1; + qi++; + } + } + if (qi !== nl) + continue; + const span = lastEnd - start; + if (!best || span < best.span || (span === best.span && start < best.start)) { + best = { ranges, span, start }; + if (span === nl) + return ranges; // can't beat a fully contiguous run } } - return qi === needle.length ? ranges : null; + return best ? best.ranges : null; } function EscapeRegExp(value) { @@ -95,3 +115,18 @@ function WholeWordRanges(text, query, caseSensitive) { ranges.push([match.index, match.index + match[0].length]); return ranges.length > 0 ? ranges : null; } + +// Same whole-word (\b-bounded) match as WholeWordRanges, but against PRE-normalized haystack/needle +// (NormText output, so offsets stay length-aligned to the original text). Returns the first match as +// [[i, i+len]] in original coordinates, or null. Non-global so the caller can reuse one compiled regex +// across many fields without re-setting lastIndex. Skipping the per-char fold keeps the Speed Dial's +// per-keystroke scan over thousands of cached settings cheap. +function WholeWordRangesNorm(haystackNorm, needleNorm) { + const t = haystackNorm || ""; + const needle = needleNorm || ""; + if (!needle) + return null; + const re = new RegExp(`\\b${EscapeRegExp(needle)}\\b`); + const match = re.exec(t); + return match ? [[match.index, match.index + match[0].length]] : null; +} diff --git a/resources/web/js/fuzzy-search.test.js b/resources/web/js/fuzzy-search.test.js index 209045098e..48d2352907 100644 --- a/resources/web/js/fuzzy-search.test.js +++ b/resources/web/js/fuzzy-search.test.js @@ -5,7 +5,7 @@ const vm = require("vm"), assert = require("assert"), fs = require("fs"); const ctx = {}; vm.createContext(ctx); vm.runInContext(fs.readFileSync(__dirname + "/fuzzy-search.js", "utf8"), ctx); -const { FoldChar, Norm, EscapeRegExp, FuzzyRanges, WholeWordRanges } = ctx; +const { FoldChar, Norm, NormText, EscapeRegExp, FuzzyRanges, WholeWordRanges, FuzzyRangesNorm, WholeWordRangesNorm } = ctx; // FoldChar / Norm: accents fold, case only folds when case-insensitive. assert.equal(FoldChar("é"), "e"); @@ -34,4 +34,15 @@ assert.deepEqual(WholeWordRanges("a.b", "a", false), [[0, 1]]); // '.' is a assert.equal(EscapeRegExp("a.b*"), "a\\.b\\*"); assert.deepEqual(WholeWordRanges("c++ tool", "c", false), [[0, 1]]); // '+' would be a regex error unescaped +// FuzzyRangesNorm: prefers the most-contiguous (smallest-span) occurrence over greedy-leftmost, so a +// stray earlier character does not steal the highlight from a later tight word. +assert.deepEqual(FuzzyRangesNorm(NormText("Auto-Orient", false), NormText("orient", false)), [[5, 11]]); +// A contiguous run inside a larger word is also preferred over a scattered greedy pick. +assert.deepEqual(FuzzyRangesNorm(NormText("AutoOriented", false), NormText("orient", false)), [[4, 10]]); +assert.equal(FuzzyRangesNorm(NormText("Measure", false), NormText("xyz", false)), null); // no subsequence + +// WholeWordRangesNorm: \b-bounded literal against a pre-normalized haystack, offsets in original coords. +assert.deepEqual(WholeWordRangesNorm(NormText("Auto-Orient", false), NormText("orient", false)), [[5, 11]]); +assert.equal(WholeWordRangesNorm(NormText("AutoOriented", false), NormText("orient", false)), null); // inside a word + console.log("ok"); diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 7c25792bb3..e6bb2fa10a 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -127,6 +127,8 @@ set(SLIC3R_GUI_SOURCES GUI/SpeedDialDialog.hpp GUI/ActionRegistry.cpp GUI/ActionRegistry.hpp + GUI/NativeCommands.cpp + GUI/NativeCommands.hpp GUI/PluginsConfigDialog.cpp GUI/PluginsConfigDialog.hpp GUI/ProcessRunner.cpp diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index b55455f45d..92916eb538 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -1,41 +1,29 @@ #include "ActionRegistry.hpp" -#include "calib_dlg.hpp" -#include "GCodeViewer.hpp" -#include "GLCanvas3D.hpp" #include "GUI.hpp" #include "GUI_App.hpp" #include "I18N.hpp" -#include "IMSlider.hpp" #include "MainFrame.hpp" +#include "NativeCommands.hpp" #include "Notebook.hpp" #include "Plater.hpp" -#include "PlateSettingsDialog.hpp" #include "Search.hpp" #include "Tab.hpp" #include "slic3r/plugin/PluginManager.hpp" #include <libslic3r/AppConfig.hpp> #include <libslic3r/Config.hpp> -#include <libslic3r/PresetBundle.hpp> -#include <libslic3r/Utils.hpp> #include <slic3r/plugin/PythonPluginInterface.hpp> #include <wx/thread.h> -#include <boost/algorithm/string/predicate.hpp> -#include <boost/any.hpp> -#include <boost/algorithm/string/trim.hpp> #include <boost/filesystem.hpp> #include <boost/nowide/convert.hpp> #include <algorithm> -#include <cfloat> #include <cmath> -#include <cstdlib> #include <ctime> #include <exception> -#include <fstream> #include <iterator> #include <string> #include <unordered_map> @@ -145,6 +133,7 @@ constexpr const char* kOrcaSourceKey = "orca"; constexpr const char* kOrcaSourceName = "OrcaSlicer"; constexpr const char* kSettingPrefix = "orca_setting"; constexpr const char* kPlateGotoPrefix = "orca_plate_goto"; +constexpr const char* kRecentProjectPrefix = "orca_recent_project"; // Display context for a setting action's eyebrow, e.g. the "Process" in "Process : Quality : Layers". // Keyed by the option's preset type so the palette reads like the settings sidebar tabs. @@ -168,7 +157,7 @@ struct SettingAction : AppAction { std::string opt_key; Preset::Type type; - std::wstring category; // localized category, forwarded to jump_to_option + std::wstring category; // localized category, forwarded to jump_to_option static std::string id_for(const std::string& opt_key, Preset::Type type) { return std::string(kSettingPrefix) + ":" + opt_key + ":" + std::to_string(int(type)); } @@ -191,405 +180,32 @@ struct SettingAction : AppAction wxGetApp().sidebar().jump_to_option(opt_key, type, category); return {AppActionRunResult::Level::Success}; } - - // The current value's pattern pictogram (e.g. the selected infill pattern), for the search-result - // tile. Defined below after the icon helper it delegates to. - std::string icon() const override; }; -// Jump the preview to a layer selected by a 0-100 percent of the layer range. Best-effort: -// switches to the preview tab and requests a slice (select_view_3D("Preview", false)); if the -// slicer result is already present the slider is repositioned immediately, otherwise the user -// can re-run after slicing. -void go_to_layer(Plater* plater, const std::string& param) -{ - if (!plater) - return; - double pct = 50.0; - try { - pct = std::stod(param); - } catch (const std::exception&) {} - pct = std::clamp(pct, 0.0, 100.0); - GLCanvas3D* canvas = plater->get_current_canvas3D(); - if (!canvas) - return; - GCodeViewer& viewer = canvas->get_gcode_viewer(); - IMSlider* layers = viewer.get_layers_slider(); - IMSlider* moves = viewer.get_moves_slider(); - if (!layers || layers->GetMaxValue() <= 0) - return; // no slice result yet - the slice request above will populate it - - const double max = double(layers->GetMaxValue()); - const int target = int(std::lround(pct / 100.0 * max)); - layers->SetHigherValue(target); - // In "one layer" mode the lower handle follows the higher one (mirrors arrow-key nav). - if (layers->is_one_layer()) - layers->SetLowerValue(target); - layers->set_as_dirty(); - if (moves) { - moves->SetHigherValue(moves->GetMaxValue()); - moves->set_as_dirty(); - } -} - -// Select a named camera view ("top"/"front"/...); Plater::select_view dispatches to the current -// panel. Shared by the view_* speed-dial commands. -AppActionRunResult view_command(Plater* plater, const std::string& dir) -{ - if (plater) - plater->select_view(dir); - return {AppActionRunResult::Level::Success}; -} - -// Dispatch a built-in command. The CommandAction stays a thin value; the actual GUI work -// lives here so it can touch the live app state. -AppActionRunResult run_native_command(const std::string& command_key, const std::string& param) -{ - GUI_App& app = wxGetApp(); - if (app.is_closing()) - return {}; - - Plater* plater = app.plater(); - - if (command_key == "save_project") { - if (plater) - plater->save_project(false); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "save_project_as") { - if (plater) - plater->save_project(true); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "load_project") { - if (plater) - plater->load_project(); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "open_preferences") { - app.open_preferences(); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "mode_simple" || command_key == "mode_advanced" || command_key == "mode_expert") { - const int mode = command_key == "mode_simple" ? comSimple : command_key == "mode_advanced" ? comAdvanced : comExpert; - app.save_mode(mode); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "slice_and_preview") { - if (plater) { - // Actually re-slice (respects the toolbar's current plate/all selection), then show the result. - plater->reslice(); - plater->select_view_3D("Preview", false); - if (app.mainframe) - app.mainframe->select_tab(TAB_ID_PREVIEW); - } - return {AppActionRunResult::Level::Success}; - } - if (command_key == "go_to_layer") { - if (plater) { - plater->select_view_3D("Preview", false); - if (app.mainframe) - app.mainframe->select_tab(TAB_ID_PREVIEW); - go_to_layer(plater, param); - } - return {AppActionRunResult::Level::Success}; - } - // "go_to_tab" is two-phase: the palette collects the tab after activating it, so native - // dispatch here is a no-op (the jump goes through the go_to_tab web command). - if (command_key == "go_to_tab") - return {AppActionRunResult::Level::Success}; - - // ---- Slice -> Export pipeline. Each Plater method self-guards (empty model / error / - // background-invalid) and then opens its own save dialog / show_error, mirroring the File menu. - if (command_key == "export_gcode") { - if (plater) - plater->export_gcode(false); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "export_stl") { - if (plater) - plater->export_stl(); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "export_3mf") { - if (plater) - plater->export_core_3mf(); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "export_sliced_file") { - if (plater) - plater->export_gcode_3mf(); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "export_all_sliced_file") { - if (plater) - plater->export_gcode_3mf(true); - return {AppActionRunResult::Level::Success}; - } - - // ---- Calibration wizards. Each mirrors the menu handler (MainFrame.cpp): recreate the dialog - // fresh per launch. The palette hides itself and defers dispatch off the webview callback, so a - // ShowModal() here is safe (same path as open_preferences). The 3D panel is ensured below. - auto calib = [&](auto&& open) -> AppActionRunResult { - if (!plater) - return {AppActionRunResult::Level::Info, _L("Open the 3D view first.")}; - // Auto-switch to the Prepare (3D) view instead of prompting: set the 3D panel - // synchronously (the wizard's new_project also re-establishes it) and select the - // Prepare notebook page so the tab label matches. The palette is hidden and this - // dispatch is deferred off the webview callback, so a modal on a switched tab is safe. - if (!plater->is_view3D_shown()) { - plater->select_view_3D("3D"); - if (MainFrame* mf = wxGetApp().mainframe; mf) - mf->select_tab(TAB_ID_PREPARE); - } - open(plater); - return {AppActionRunResult::Level::Success}; - }; - if (command_key == "calib_temperature") - return calib([](Plater* p) { - Temp_Calibration_Dlg* dlg = new Temp_Calibration_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); - dlg->ShowModal(); - dlg->Destroy(); - }); - if (command_key == "calib_max_volumetric") - return calib([](Plater* p) { - MaxVolumetricSpeed_Test_Dlg* dlg = new MaxVolumetricSpeed_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); - dlg->ShowModal(); - dlg->Destroy(); - }); - if (command_key == "calib_pressure_advance") - return calib([](Plater* p) { - PA_Calibration_Dlg* dlg = new PA_Calibration_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); - dlg->ShowModal(); - dlg->Destroy(); - }); - if (command_key == "calib_flow_ratio") - return calib([](Plater* p) { - FlowRateCalibrationDialog* dlg = new FlowRateCalibrationDialog((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); - dlg->ShowModal(); - dlg->Destroy(); - }); - if (command_key == "calib_retraction") - return calib([](Plater* p) { - Retraction_Test_Dlg* dlg = new Retraction_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); - dlg->ShowModal(); - dlg->Destroy(); - }); - if (command_key == "calib_cornering") - return calib([](Plater* p) { - Cornering_Test_Dlg* dlg = new Cornering_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); - dlg->ShowModal(); - dlg->Destroy(); - }); - if (command_key == "calib_input_shaping_freq") - return calib([](Plater* p) { - Input_Shaping_Freq_Test_Dlg* dlg = new Input_Shaping_Freq_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); - dlg->ShowModal(); - dlg->Destroy(); - }); - if (command_key == "calib_input_shaping_damp") - return calib([](Plater* p) { - Input_Shaping_Damp_Test_Dlg* dlg = new Input_Shaping_Damp_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); - dlg->ShowModal(); - dlg->Destroy(); - }); - if (command_key == "calib_vfa") - return calib([](Plater* p) { - VFA_Test_Dlg* dlg = new VFA_Test_Dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, p); - dlg->ShowModal(); - dlg->Destroy(); - }); - - // ---- View controls. select_view dispatches to the current panel; named views + perspective - // toggle + fit-to-bed mirror the View menu items (MainFrame.cpp). reset_window_layout is direct. - if (command_key == "view_top") - return view_command(plater, "top"); - if (command_key == "view_bottom") - return view_command(plater, "bottom"); - if (command_key == "view_front") - return view_command(plater, "front"); - if (command_key == "view_rear") - return view_command(plater, "rear"); - if (command_key == "view_left") - return view_command(plater, "left"); - if (command_key == "view_right") - return view_command(plater, "right"); - if (command_key == "view_iso") - return view_command(plater, "iso"); - if (command_key == "view_default") { - if (plater) { - plater->select_view("plate"); - if (GLCanvas3D* canvas = plater->get_current_canvas3D()) - canvas->zoom_to_bed(); - } - return {AppActionRunResult::Level::Success}; - } - if (command_key == "view_fit_bed") { - if (plater) - if (GLCanvas3D* canvas = plater->get_current_canvas3D()) - canvas->zoom_to_bed(); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "view_toggle_perspective") { - if (plater) - plater->get_camera().select_next_type(); - return {AppActionRunResult::Level::Success}; - } - if (command_key == "reset_window_layout") { - if (plater) - plater->reset_window_layout(); - return {AppActionRunResult::Level::Success}; - } - - // ---- Object / interaction operations (single-phase). Each mirrors a toolbar/menu action and is - // guarded by an existing can_* / selection check so nothing crashes on empty selection or a busy - // background worker, and returns a friendly Info instead. Structural ops self-update()/schedule a - // re-slice; transform ops (mirror/center/drop) post their own schedule-background event. We only - // need the underlying object (not a specific object index), so a non-capturing lambda is used as - // the guard/op pair below. Rotate/scale by angle/factor, duplicate (modal count dialog) and - // cut/segment/merge (unimplemented on Plater) are deliberately left out of this MVP. - auto obj = [&](bool (*ok)(Plater*), void (*op)(Plater*)) -> AppActionRunResult { - if (!plater) - return {AppActionRunResult::Level::Info, _L("Open the 3D view first.")}; - // Object ops read the Prepare (3D) canvas selection, so ensure that view before guarding so - // a launch from the Preview/other tab doesn't report a spuriously empty selection. - if (!plater->is_view3D_shown()) { - plater->select_view_3D("3D"); - if (MainFrame* mf = wxGetApp().mainframe; mf) - mf->select_tab(TAB_ID_PREPARE); - } - if (!ok(plater)) - return {AppActionRunResult::Level::Info, _L("Select an object first.")}; - op(plater); - return {AppActionRunResult::Level::Success}; - }; - if (command_key == "obj_delete") - return obj([](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->remove_selected(); }); - if (command_key == "obj_delete_all") - return obj([](Plater* p) { return p->can_delete_all(); }, [](Plater* p) { p->delete_all_objects_from_model(); }); - if (command_key == "obj_mirror_x") - return obj([](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::X); }); - if (command_key == "obj_mirror_y") - return obj([](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::Y); }); - if (command_key == "obj_mirror_z") - return obj([](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::Z); }); - if (command_key == "obj_split_objects") - return obj([](Plater* p) { return p->can_split_to_objects(); }, [](Plater* p) { p->split_object(true); }); - if (command_key == "obj_split_parts") - return obj([](Plater* p) { return p->can_split_to_volumes(); }, [](Plater* p) { p->split_volume(); }); - if (command_key == "obj_center") - return obj([](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->center_selection(); }); - if (command_key == "obj_drop") - return obj([](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->drop_selection(); }); - if (command_key == "obj_fit_volume") - return obj([](Plater* p) { return p->can_scale_to_print_volume(); }, [](Plater* p) { p->scale_selection_to_fit_print_volume(); }); - if (command_key == "obj_instances_up") - return obj([](Plater* p) { return p->can_increase_instances(); }, [](Plater* p) { p->increase_instances(); }); - if (command_key == "obj_instances_down") - return obj([](Plater* p) { return p->can_decrease_instances(); }, [](Plater* p) { p->decrease_instances(); }); - if (command_key == "obj_arrange") - return obj([](Plater* p) { return p->can_arrange(); }, [](Plater* p) { p->arrange(); }); - // Auto-orient has no dedicated can_*; can_arrange covers "objects exist + UI worker idle". - if (command_key == "obj_orient") - return obj([](Plater* p) { return p->can_arrange(); }, [](Plater* p) { p->orient(); }); - - // ---- Plate management. Plates are a filament (FFF) feature: SLA builds a single plate with - // no plate UI, and gcode-only mode has no editable project - so gate every plate op on FFF + - // the normal editor (mirroring where the plate toolbar/menu live). These act on the CURRENT - // plate (delete/duplicate take -1) except plate_goto, which jumps to the index in `param`. - auto plate_plater = [&]() -> Plater* { - return (plater && plater->printer_technology() == ptFFF && !plater->only_gcode_mode()) ? plater : nullptr; - }; - const AppActionRunResult plate_unavailable{AppActionRunResult::Level::Info, _L("Plates are a filament (FFF) feature.")}; - - if (command_key == "plate_add") { - if (Plater* p = plate_plater(); p) { - if (!p->can_add_plate()) - return {AppActionRunResult::Level::Info, _L("Cannot add another plate (maximum reached).")}; - p->add_plate(); - return {AppActionRunResult::Level::Success}; - } - return plate_unavailable; - } - if (command_key == "plate_duplicate") { - if (Plater* p = plate_plater(); p) { - if (!p->can_add_plate()) - return {AppActionRunResult::Level::Info, _L("Cannot duplicate a plate (maximum reached).")}; - p->duplicate_plate(); - return {AppActionRunResult::Level::Success}; - } - return plate_unavailable; - } - if (command_key == "plate_delete") { - if (Plater* p = plate_plater(); p) { - if (!p->can_delete_plate()) - return {AppActionRunResult::Level::Info, _L("Cannot delete the only plate.")}; - p->delete_plate(); - return {AppActionRunResult::Level::Success}; - } - return plate_unavailable; - } - if (command_key == "plate_rename") { - if (Plater* p = plate_plater(); p) { - PartPlate* curr = p->get_partplate_list().get_curr_plate(); - PlateNameEditDialog dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, _L("Edit Plate Name")); - dlg.set_plate_name(from_u8(curr->get_plate_name())); - if (dlg.ShowModal() == wxID_YES) - curr->set_plate_name(dlg.get_plate_name().ToUTF8().data()); - return {AppActionRunResult::Level::Success}; - } - return plate_unavailable; - } - if (command_key == "plate_toggle_lock") { - if (Plater* p = plate_plater(); p) { - PartPlateList& plates = p->get_partplate_list(); - const int index = plates.get_curr_plate_index(); - p->take_snapshot("lock partplate"); - plates.lock_plate(index, !plates.is_locked(index)); - return {AppActionRunResult::Level::Success}; - } - return plate_unavailable; - } - if (command_key == "plate_goto") { - if (Plater* p = plate_plater(); p) { - PartPlateList& plates = p->get_partplate_list(); - const int count = plates.get_plate_count(); - if (count <= 0) - return {AppActionRunResult::Level::Info, _L("No plates available.")}; - int index = 0; - try { - index = std::stoi(param); - } catch (const std::exception&) {} - index = std::clamp(index, 0, count - 1); - p->select_plate(index, false); - return {AppActionRunResult::Level::Success}; - } - return plate_unavailable; - } - return {AppActionRunResult::Level::Info, _L("Unknown command.")}; -} - -// A built-in command action. source_key is the constant "orca" so a renamed title never -// re-keys the action (matches the plugin source-key contract). +// A built-in command action. Thin value: identity + presentation come from the NativeCommands +// catalog, and run() routes back to it - the catalog is the single source of truth for its +// behaviour. source_key is the constant "orca" so a renamed title never re-keys the action +// (matches the plugin source-key contract). struct CommandAction : AppAction { + static std::unique_ptr<CommandAction> make(const NativeCommand& c) + { return std::unique_ptr<CommandAction>(new CommandAction(c)); } + std::string command_key; - CommandAction(std::string command_key, std::string title, std::string group, std::string input = "") - : AppAction(kCommandPrefix, std::move(title), kOrcaSourceKey, kOrcaSourceName), command_key(std::move(command_key)) + AppActionRunResult run(const std::string& param) const override { return NativeCommands::run(command_key, param); } + +private: + explicit CommandAction(const NativeCommand& c) + : AppAction(kCommandPrefix, c.title, kOrcaSourceKey, kOrcaSourceName), command_key(c.key) { this->kind = AppActionKind::Command; - this->group = std::move(group); - this->input = std::move(input); + this->group = c.group; + this->input = c.input; } - - AppActionRunResult run(const std::string& param) const override { return run_native_command(command_key, param); } }; -std::unique_ptr<AppAction> make_command(std::string key, std::string title, std::string group, std::string input = "") -{ return std::make_unique<CommandAction>(std::move(key), std::move(title), std::move(group), std::move(input)); } - // A dynamic "Go to Plate N" action, one per live plate, rebuilt on every snapshot() (so a // rename/move immediately shows up). id is keyed by plate index, NOT the display title, so // renaming a plate never re-keys it - the same contract as SettingAction. A pinned "Go to @@ -610,174 +226,37 @@ struct PlateAction : AppAction } AppActionRunResult run(const std::string& /*param*/) const override - { return run_native_command("plate_goto", std::to_string(plate_index)); } + { return NativeCommands::run("plate_goto", std::to_string(plate_index)); } }; -// The built-in palette commands, registered once at init(). -std::vector<std::unique_ptr<AppAction>> native_commands() +// A dynamic "Open recent project <name>" action, one per recent project file, rebuilt on every +// snapshot() (like PlateAction) so the list always reflects the current recents. The id is keyed +// by the file PATH, NOT the display title - the same contract as SettingAction/PlateAction, so a +// rename of a project (or a reordered recents list) never re-keys the action. A pinned recent whose +// file is deleted simply stops resolving (visibleFavourites drops dead pins). run() loads the +// project through MainFrame::open_recent_project so the existing missing-file handling is reused. +struct RecentProjectAction : AppAction { - std::vector<std::unique_ptr<AppAction>> out; - // why: _u8L (std::string) for titles/groups - make_command takes std::string; _L would - // return a wxString and silently fail to convert here. - out.push_back(make_command("slice_and_preview", _u8L("Slice and Preview"), _u8L("Slice & Export"))); - // Two-phase commands: activating them collects input in the palette, then runs. Settings are - // not a command here - they're materialised as first-class SettingActions (see materialize_). - out.push_back(make_command("go_to_layer", _u8L("Go to layer (percent)"), _u8L("Commands"), "percent")); - out.push_back(make_command("go_to_tab", _u8L("Go to tab..."), _u8L("Commands"), "tab")); - out.push_back(make_command("load_project", _u8L("Load Project"), _u8L("Commands"))); - out.push_back(make_command("save_project", _u8L("Save Project"), _u8L("Commands"))); - out.push_back(make_command("save_project_as", _u8L("Save Project As"), _u8L("Commands"))); - out.push_back(make_command("open_preferences", _u8L("Preferences"), _u8L("Commands"))); - out.push_back(make_command("mode_simple", _u8L("Mode: Simple"), _u8L("Mode"))); - out.push_back(make_command("mode_advanced", _u8L("Mode: Advanced"), _u8L("Mode"))); - out.push_back(make_command("mode_expert", _u8L("Mode: Expert"), _u8L("Mode"))); + std::string file_path; - // Slice -> Export pipeline. Each runs a public Plater method; the methods self-guard (empty - // model / error / background-invalid) and open their own save dialog / show_error. - out.push_back(make_command("export_gcode", _u8L("Export G-code"), _u8L("Slice & Export"))); - out.push_back(make_command("export_stl", _u8L("Export STL"), _u8L("Slice & Export"))); - out.push_back(make_command("export_3mf", _u8L("Export 3MF"), _u8L("Slice & Export"))); - out.push_back(make_command("export_sliced_file", _u8L("Export Sliced File"), _u8L("Slice & Export"))); - out.push_back(make_command("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"))); + static std::string id_for(const std::string& path) + { return AppAction::compose_id(kRecentProjectPrefix, path, kOrcaSourceKey); } - // Calibration wizards (one command per dialog mirroring the Calibration menu, MainFrame.cpp). - out.push_back(make_command("calib_temperature", _u8L("Temperature Calibration"), _u8L("Calibration"))); - out.push_back(make_command("calib_max_volumetric", _u8L("Max Volumetric Speed Calibration"), _u8L("Calibration"))); - out.push_back(make_command("calib_pressure_advance", _u8L("Pressure Advance Calibration"), _u8L("Calibration"))); - out.push_back(make_command("calib_flow_ratio", _u8L("Flow Ratio Calibration"), _u8L("Calibration"))); - out.push_back(make_command("calib_retraction", _u8L("Retraction Calibration"), _u8L("Calibration"))); - out.push_back(make_command("calib_cornering", _u8L("Cornering Calibration"), _u8L("Calibration"))); - out.push_back(make_command("calib_input_shaping_freq", _u8L("Input Shaping Frequency Calibration"), _u8L("Calibration"))); - out.push_back(make_command("calib_input_shaping_damp", _u8L("Input Shaping Damping Calibration"), _u8L("Calibration"))); - out.push_back(make_command("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"))); + RecentProjectAction(std::string path, std::string title, std::string source) + : AppAction(AppActionId{id_for(path)}, std::move(title), kOrcaSourceKey, std::move(source)) + , file_path(std::move(path)) + { + this->kind = AppActionKind::Command; + this->group = _u8L("Recent Projects"); + } - // View controls (mirror the View menu; most duplicate the Ctrl+0..6 shortcuts). - out.push_back(make_command("view_top", _u8L("View: Top"), _u8L("View"))); - out.push_back(make_command("view_bottom", _u8L("View: Bottom"), _u8L("View"))); - out.push_back(make_command("view_front", _u8L("View: Front"), _u8L("View"))); - out.push_back(make_command("view_rear", _u8L("View: Rear"), _u8L("View"))); - out.push_back(make_command("view_left", _u8L("View: Left"), _u8L("View"))); - out.push_back(make_command("view_right", _u8L("View: Right"), _u8L("View"))); - out.push_back(make_command("view_iso", _u8L("View: Isometric"), _u8L("View"))); - out.push_back(make_command("view_default", _u8L("View: Default"), _u8L("View"))); - out.push_back(make_command("view_fit_bed", _u8L("Fit Bed to View"), _u8L("View"))); - out.push_back(make_command("view_toggle_perspective", _u8L("Toggle Perspective"), _u8L("View"))); - out.push_back(make_command("reset_window_layout", _u8L("Reset Window Layout"), _u8L("View"))); - - // Object operations (single-phase). Each maps to a public Plater method guarded by a can_* / - // selection check in run_native_command; structural ops self-update()/schedule re-slice. - out.push_back(make_command("obj_delete", _u8L("Delete Selected"), _u8L("Object"))); - out.push_back(make_command("obj_delete_all", _u8L("Delete All Objects"), _u8L("Object"))); - out.push_back(make_command("obj_mirror_x", _u8L("Mirror X"), _u8L("Object"))); - out.push_back(make_command("obj_mirror_y", _u8L("Mirror Y"), _u8L("Object"))); - out.push_back(make_command("obj_mirror_z", _u8L("Mirror Z"), _u8L("Object"))); - out.push_back(make_command("obj_split_objects", _u8L("Split to Objects"), _u8L("Object"))); - out.push_back(make_command("obj_split_parts", _u8L("Split to Parts"), _u8L("Object"))); - out.push_back(make_command("obj_center", _u8L("Center Selected on Plate"), _u8L("Object"))); - out.push_back(make_command("obj_drop", _u8L("Drop to Bed"), _u8L("Object"))); - out.push_back(make_command("obj_fit_volume", _u8L("Scale to Fit Print Volume"), _u8L("Object"))); - out.push_back(make_command("obj_instances_up", _u8L("Increase Instances"), _u8L("Object"))); - out.push_back(make_command("obj_instances_down", _u8L("Decrease Instances"), _u8L("Object"))); - out.push_back(make_command("obj_arrange", _u8L("Auto-Arrange"), _u8L("Object"))); - out.push_back(make_command("obj_orient", _u8L("Auto-Orient"), _u8L("Object"))); - - // Plate management. These act on the CURRENT plate (like Plater::delete_plate(-1)); the - // per-plate "Go to Plate N" actions are dynamic and materialised in materialize_plate_actions(). - out.push_back(make_command("plate_add", _u8L("Add Plate"), _u8L("Plate"))); - out.push_back(make_command("plate_duplicate", _u8L("Duplicate Plate"), _u8L("Plate"))); - out.push_back(make_command("plate_delete", _u8L("Delete Plate"), _u8L("Plate"))); - out.push_back(make_command("plate_rename", _u8L("Rename Plate"), _u8L("Plate"))); - out.push_back(make_command("plate_toggle_lock", _u8L("Toggle Plate Lock"), _u8L("Plate"))); - return out; -} - -// ---- setting action helpers -------------------------------------------------- - -// Self-contained base64 encoder (for the tiny pictogram SVGs), avoiding a dependency on the exact -// wxBase64Encode overload/return type across wx versions. -std::string base64_encode(const std::string& data) -{ - static const char* tbl = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - auto enc = [&](unsigned n, int pad) { - // pad = number of extraneous bytes in the final group (0, 1 or 2): - // 0 leftover -> 4 chars from all 24 bits - // 2 leftover (pad=1) -> 3 chars then '=' - // 1 leftover (pad=2) -> 2 chars then "==" - // The '=' padding always comes LAST; a misplaced '=' decodes as garbage in the webview. - std::string out; - out.push_back(tbl[(n >> 18) & 63]); - out.push_back(tbl[(n >> 12) & 63]); - out.push_back(pad >= 2 ? '=' : tbl[(n >> 6) & 63]); - out.push_back(pad >= 1 ? '=' : tbl[n & 63]); - return out; - }; - std::string out; - out.reserve(((data.size() + 2) / 3) * 4); - size_t i = 0; - for (; i + 3 <= data.size(); i += 3) - out += enc(((unsigned char) data[i]) << 16 | ((unsigned char) data[i + 1]) << 8 | ((unsigned char) data[i + 2]), 0); - if (i + 1 == data.size()) - out += enc(((unsigned char) data[i]) << 16, 2); - else if (i + 2 == data.size()) - out += enc(((unsigned char) data[i]) << 16 | ((unsigned char) data[i + 1]) << 8, 1); - return out; -} - -// data:URI for the pattern pictogram icons/param_<key>.svg, or "" when there is no such icon. -// This mirrors the sidebar Choice field (Field.cpp add_item_bitmaps), which loads param_<value>.svg -// per enum value - most settings have no icon, only pattern-style enums (infill/support patterns). -// Base64 data URIs are used so the embedded webview renders them identically on every backend -// (no file:// subresource / CORS restrictions). -std::string setting_icon_for_key(const std::string& key) -{ - if (key.empty()) - return {}; - - const std::string path = (boost::filesystem::path(resources_dir()) / "images" / ("param_" + key + ".svg")).string(); - // Non-throwing stat: a throwing filesystem_error here would propagate out of snapshot() and - // abort the app (the palette opener). exists(fs ::error_code) never throws. - boost::system::error_code ec; - if (!boost::filesystem::exists(path, ec)) - return {}; - - std::ifstream in(path, std::ios::binary); - if (!in) - return {}; - std::string data((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>()); - if (data.empty()) - return {}; - - return "data:image/svg+xml;base64," + base64_encode(data); -} - -// The pattern pictogram for a setting's CURRENT value (its enum int), empty when it isn't a -// pattern-style enum or the value has no icon. Used for the search-result tile. -std::string setting_action_icon(const SettingAction& a) -{ - Tab* tab = wxGetApp().get_tab(a.type); - if (!tab || !tab->get_config()) - return {}; - DynamicPrintConfig* config = tab->get_config(); - const ConfigOptionDef* def = config->def()->get(a.opt_key); - if (!def || def->type != coEnum || (int(def->type) & int(coVectorType)) != 0) - return {}; - // Read the value WITHOUT config->opt_int(): the non-const overload routes through a type-checked - // option<ConfigOptionInt>() that returns null for enum values (type() is coEnum, not coInt) and - // would deref null. Pull the ConfigOption* and dynamic_cast instead (succeeds: enums derive from - // ConfigOptionInt), falling back to the def default when the option is absent. - const ConfigOption* opt = (config->has(a.opt_key) ? config->option(a.opt_key) : def->default_value.get()); - const ConfigOptionInt* int_opt = dynamic_cast<const ConfigOptionInt*>(opt); - if (!int_opt) - return {}; - const int value = int_opt->getInt(); - if (def->enum_keys_map) - for (const auto& kv : *def->enum_keys_map) - if (kv.second == value) - return setting_icon_for_key(kv.first); - return {}; -} - -std::string SettingAction::icon() const { return setting_action_icon(*this); } + AppActionRunResult run(const std::string& /*param*/) const override + { + if (MainFrame* mf = wxGetApp().mainframe; mf) + mf->open_recent_project(size_t(-1), wxString::FromUTF8(file_path)); + return {AppActionRunResult::Level::Success}; + } +}; } // namespace @@ -838,9 +317,10 @@ void ActionRegistry::init() // Built-in palette commands (Save/Load, Preferences, Mode switch, Slice/Preview, Go to layer). // Register after plugins so the plugin ids win on any (unlikely) id collision - ids are distinct - // by prefix, so this is order-independent. - for (auto& action : native_commands()) - upsert(std::move(action)); + // by prefix, so this is order-independent. The catalog lives in NativeCommands - the registry + // only materialises thin CommandAction values from it. + for (const NativeCommand& c : NativeCommands::catalog()) + upsert(CommandAction::make(c)); } void ActionRegistry::refresh_source(const std::string& plugin_key, ActionChange change) @@ -1060,6 +540,7 @@ void ActionRegistry::materialize_setting_actions() // (above) is the single display/search breadcrumb rather than being duplicated. auto action = std::make_unique<SettingAction>(opt.opt_key(), opt.type, boost::nowide::narrow(label_w), std::string(), opt.category_local, boost::nowide::narrow(path)); + action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); if (auto it = stats.find(id); it != stats.end() && it->is_object()) { action->count = it->value("count", 0); @@ -1137,6 +618,55 @@ void ActionRegistry::materialize_plate_actions() } } +void ActionRegistry::materialize_recent_project_actions() +{ + assert(wxThread::IsMain()); + + // Persisted per-action state, read ONCE (mirrors materialize_plate_actions) so a relisted recent + // project keeps its recency/favourite when the recents list reorders - the id is path-keyed. + nlohmann::json stats = read_section("stats", nlohmann::json::object()); + if (!stats.is_object()) + stats = nlohmann::json::object(); + const std::vector<std::string> favs = favourite_ids(); + + // app_config stores recents oldest-first; the palette shows newest-first. + std::vector<std::string> recents = wxGetApp().app_config->get_recent_projects(); + std::reverse(recents.begin(), recents.end()); + + std::unordered_set<std::string> seen; + for (const std::string& path : recents) { + // Skip projects whose file is gone; the stale id is dropped below. + boost::system::error_code ec; + if (path.empty() || !boost::filesystem::exists(boost::filesystem::path(path), ec)) + continue; + + const std::string id = RecentProjectAction::id_for(path); + seen.insert(id); + + // Title = file basename; source/eyebrow = the full path so search can match either. + boost::filesystem::path p(path); + std::string title = p.filename().string(); + if (title.empty()) + title = path; + + auto action = std::make_unique<RecentProjectAction>(path, std::move(title), path); + action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); + if (auto it = stats.find(id); it != stats.end() && it->is_object()) { + action->count = it->value("count", 0); + action->last = it->value("last", 0LL); + } + m_actions.insert_or_assign(action->id(), std::shared_ptr<AppAction>(std::move(action))); + } + + // Drop recent-project actions whose file no longer exists / was removed from the recents list. + for (auto it = m_actions.begin(); it != m_actions.end();) { + if (it->first.rfind(kRecentProjectPrefix, 0) == 0 && !seen.count(it->first)) + it = m_actions.erase(it); + else + ++it; + } +} + bool ActionRegistry::should_ask(const std::string& id) const { assert(wxThread::IsMain()); @@ -1163,6 +693,7 @@ nlohmann::json ActionRegistry::snapshot() // the palette opens). materialize_setting_actions(); materialize_plate_actions(); + materialize_recent_project_actions(); std::vector<const AppAction*> sorted; sorted.reserve(m_actions.size()); @@ -1188,8 +719,7 @@ nlohmann::json ActionRegistry::snapshot() {"source", a->source_name()}, {"group", a->group}, {"input", a->input}, - {"shortcut", ""}, - {"icon", a->icon()}}); + {"shortcut", ""}}); }; nlohmann::json actions = nlohmann::json::array(); diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index 6daafdde56..678de6986d 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -81,11 +81,6 @@ struct AppAction // commands (e.g. a layer percentage); plugins ignore it. virtual AppActionRunResult run(const std::string& param = {}) const = 0; - // Optional data:URI for a small pictogram to show in the palette row/tile/the editor - // (e.g. the current infill/pattern). Empty string = fall back to the monogram. Only - // SettingAction overrides this; the base returns an empty string. - virtual std::string icon() const { return {}; } - protected: // The definition is constructor-set and immutable. Refreshes replace an action // instead of mutating identity after the registry has indexed it by id. @@ -187,6 +182,11 @@ private: // plate UI, so nothing is materialised and stale ids are dropped. Called at the top of snapshot(). void materialize_plate_actions(); + // (Re)materialise one "Open recent project <name>" action per recent project file, so the + // palette lists every recent project and can load it by clicking. Keyed by file path (stable); + // files that no longer exist are skipped and their stale ids dropped. Called at the top of snapshot(). + void materialize_recent_project_actions(); + // Loader callbacks (marshalled to the UI thread) land here. refresh_source rebuilds // one plugin's whole action set; refresh_capability touches a single capability. void refresh_source(const std::string& plugin_key, ActionChange change); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index f607f39fb9..4ba82fd402 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -3440,88 +3440,51 @@ void MainFrame::init_menubar_as_editor() // Temperature append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Temperature"), _L("Temperature Calibration"), - [this](wxCommandEvent&) { - if (!m_temp_calib_dlg) - m_temp_calib_dlg = new Temp_Calibration_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_temp_calib_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::Temperature); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Max Volumetric Speed append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Max flowrate"), _L("Max flowrate"), - [this](wxCommandEvent&) { - if (!m_vol_test_dlg) - m_vol_test_dlg = new MaxVolumetricSpeed_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_vol_test_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::MaxVolumetric); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Pressure Advance append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Pressure advance"), _L("Pressure advance"), - [this](wxCommandEvent&) { - if (!m_pa_calib_dlg) - m_pa_calib_dlg = new PA_Calibration_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_pa_calib_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::PressureAdvance); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Flow rate (Wizard Dialog) append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Flow ratio"), _L("Flow Rate Calibration"), - [this](wxCommandEvent&) { - if (!m_plater) return; - if (!m_flow_rate_calib_dlg) - m_flow_rate_calib_dlg = new FlowRateCalibrationDialog((wxWindow*)this, wxID_ANY, m_plater); - m_flow_rate_calib_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::FlowRatio); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Retraction append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Retraction"), _L("Retraction"), - [this](wxCommandEvent&) { - if (!m_retraction_calib_dlg) - m_retraction_calib_dlg = new Retraction_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_retraction_calib_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::Retraction); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Cornering append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("Cornering"), _L("Cornering calibration"), - [this](wxCommandEvent&) { - auto dlg = new Cornering_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - dlg->ShowModal(); - dlg->Destroy(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::Cornering); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Input Shaping (with submenu) auto input_shaping_menu = new wxMenu(); append_menu_item( input_shaping_menu, wxID_ANY, _L("Input Shaping Frequency"), _L("Input Shaping Frequency"), - [this](wxCommandEvent&) { - auto dlg = new Input_Shaping_Freq_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - dlg->ShowModal(); - dlg->Destroy(); - }, + [this](wxCommandEvent&) { run_calibration(CalibKind::InputShapingFreq); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); append_menu_item( input_shaping_menu, wxID_ANY, _L("Input Shaping Damping/zeta factor"), _L("Input Shaping Damping/zeta factor"), - [this](wxCommandEvent&) { - auto dlg = new Input_Shaping_Damp_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - dlg->ShowModal(); - dlg->Destroy(); - }, + [this](wxCommandEvent&) { run_calibration(CalibKind::InputShapingDamp); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); m_topbar->GetCalibMenu()->AppendSubMenu(input_shaping_menu, _L("Input Shaping")); // VFA append_menu_item(m_topbar->GetCalibMenu(), wxID_ANY, _L("VFA"), _L("VFA"), - [this](wxCommandEvent&) { - if (!m_vfa_test_dlg) - m_vfa_test_dlg = new VFA_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_vfa_test_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::VFA); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // help @@ -3582,89 +3545,52 @@ void MainFrame::init_menubar_as_editor() // Temperature append_menu_item(calib_menu, wxID_ANY, _L("Temperature"), _L("Temperature"), - [this](wxCommandEvent&) { - if (!m_temp_calib_dlg) - m_temp_calib_dlg = new Temp_Calibration_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_temp_calib_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::Temperature); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Max Volumetric Speed append_menu_item(calib_menu, wxID_ANY, _L("Max flowrate"), _L("Max flowrate"), - [this](wxCommandEvent&) { - if (!m_vol_test_dlg) - m_vol_test_dlg = new MaxVolumetricSpeed_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_vol_test_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::MaxVolumetric); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Pressure Advance append_menu_item(calib_menu, wxID_ANY, _L("Pressure advance"), _L("Pressure advance"), - [this](wxCommandEvent&) { - if (!m_pa_calib_dlg) - m_pa_calib_dlg = new PA_Calibration_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_pa_calib_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::PressureAdvance); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Flowrate (with submenu) // ORCA: Flow rate (Wizard Dialog) append_menu_item(calib_menu, wxID_ANY, _L("Flow ratio"), _L("Flow Rate Calibration"), - [this](wxCommandEvent&) { - if (!m_plater) return; - if (!m_flow_rate_calib_dlg) - m_flow_rate_calib_dlg = new FlowRateCalibrationDialog((wxWindow*)this, wxID_ANY, m_plater); - m_flow_rate_calib_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::FlowRatio); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Retraction append_menu_item(calib_menu, wxID_ANY, _L("Retraction"), _L("Retraction"), - [this](wxCommandEvent&) { - if (!m_retraction_calib_dlg) - m_retraction_calib_dlg = new Retraction_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_retraction_calib_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::Retraction); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Cornering append_menu_item(calib_menu, wxID_ANY, _L("Cornering"), _L("Cornering calibration"), - [this](wxCommandEvent&) { - auto dlg = new Cornering_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - dlg->ShowModal(); - dlg->Destroy(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::Cornering); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // Input Shaping (with submenu) auto input_shaping_menu = new wxMenu(); append_menu_item( input_shaping_menu, wxID_ANY, _L("Input Shaping Frequency"), _L("Input Shaping Frequency"), - [this](wxCommandEvent&) { - auto dlg = new Input_Shaping_Freq_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - dlg->ShowModal(); - dlg->Destroy(); - }, + [this](wxCommandEvent&) { run_calibration(CalibKind::InputShapingFreq); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); append_menu_item( input_shaping_menu, wxID_ANY, _L("Input Shaping Damping/zeta factor"), _L("Input Shaping Damping/zeta factor"), - [this](wxCommandEvent&) { - auto dlg = new Input_Shaping_Damp_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - dlg->ShowModal(); - dlg->Destroy(); - }, + [this](wxCommandEvent&) { run_calibration(CalibKind::InputShapingDamp); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); calib_menu->AppendSubMenu(input_shaping_menu, _L("Input Shaping")); // VFA append_menu_item(calib_menu, wxID_ANY, _L("VFA"), _L("VFA"), - [this](wxCommandEvent&) { - if (!m_vfa_test_dlg) - m_vfa_test_dlg = new VFA_Test_Dlg((wxWindow*)this, wxID_ANY, m_plater); - m_vfa_test_dlg->ShowModal(); - }, "", nullptr, + [this](wxCommandEvent&) { run_calibration(CalibKind::VFA); }, "", nullptr, [this]() {return m_plater->is_view3D_shown();; }, this); // help append_menu_item(calib_menu, wxID_ANY, _L("Calibration Guide"), _L("Calibration Guide"), @@ -4424,7 +4350,73 @@ void MainFrame::technology_changed() // update menu titles PrinterTechnology pt = plater()->printer_technology(); if (int id = m_menubar->FindMenu(pt == ptFFF ? _omitL("Material Settings") : _L("Filament settings")); id != wxNOT_FOUND) - m_menubar->SetMenuLabel(id, pt == ptSLA ? _omitL("Material Settings") : _L("Filament settings")); + m_menubar->SetMenuLabel(id, pt == ptFFF ? _omitL("Material Settings") : _L("Filament settings")); +} + +// Opens the calibration wizard for `calib_kind`, reusing the cached member dialogs the Calibration +// menu builds. This is the single source of truth for the wizard lifecycle: the Calibration menu +// handlers and the Speed Dial native commands both call it, so they share the same per-wizard +// member (fresh on first launch, reused thereafter). Call while the Prepare (3D) panel is shown. +void MainFrame::run_calibration(CalibKind calib_kind) +{ + switch (calib_kind) { + case CalibKind::Temperature: { + if (!m_temp_calib_dlg) + m_temp_calib_dlg = new Temp_Calibration_Dlg((wxWindow*) this, wxID_ANY, m_plater); + m_temp_calib_dlg->ShowModal(); + break; + } + case CalibKind::MaxVolumetric: { + if (!m_vol_test_dlg) + m_vol_test_dlg = new MaxVolumetricSpeed_Test_Dlg((wxWindow*) this, wxID_ANY, m_plater); + m_vol_test_dlg->ShowModal(); + break; + } + case CalibKind::PressureAdvance: { + if (!m_pa_calib_dlg) + m_pa_calib_dlg = new PA_Calibration_Dlg((wxWindow*) this, wxID_ANY, m_plater); + m_pa_calib_dlg->ShowModal(); + break; + } + case CalibKind::FlowRatio: { + if (!m_plater) + break; + if (!m_flow_rate_calib_dlg) + m_flow_rate_calib_dlg = new FlowRateCalibrationDialog((wxWindow*) this, wxID_ANY, m_plater); + m_flow_rate_calib_dlg->ShowModal(); + break; + } + case CalibKind::Retraction: { + if (!m_retraction_calib_dlg) + m_retraction_calib_dlg = new Retraction_Test_Dlg((wxWindow*) this, wxID_ANY, m_plater); + m_retraction_calib_dlg->ShowModal(); + break; + } + case CalibKind::Cornering: { + auto dlg = new Cornering_Test_Dlg((wxWindow*) this, wxID_ANY, m_plater); + dlg->ShowModal(); + dlg->Destroy(); + break; + } + case CalibKind::InputShapingFreq: { + auto dlg = new Input_Shaping_Freq_Test_Dlg((wxWindow*) this, wxID_ANY, m_plater); + dlg->ShowModal(); + dlg->Destroy(); + break; + } + case CalibKind::InputShapingDamp: { + auto dlg = new Input_Shaping_Damp_Test_Dlg((wxWindow*) this, wxID_ANY, m_plater); + dlg->ShowModal(); + dlg->Destroy(); + break; + } + case CalibKind::VFA: { + if (!m_vfa_test_dlg) + m_vfa_test_dlg = new VFA_Test_Dlg((wxWindow*) this, wxID_ANY, m_plater); + m_vfa_test_dlg->ShowModal(); + break; + } + } } diff --git a/src/slic3r/GUI/MainFrame.hpp b/src/slic3r/GUI/MainFrame.hpp index b8b7ef2e7d..fc23e1dad8 100644 --- a/src/slic3r/GUI/MainFrame.hpp +++ b/src/slic3r/GUI/MainFrame.hpp @@ -106,6 +106,21 @@ protected: void on_dpi_changed(const wxRect& suggested_rect) override; }; +// Calibration wizard identity, shared by MainFrame::run_calibration and the Speed Dial command runners. +// Kept in order with the wizard list below. +enum class CalibKind : int +{ + Temperature, + MaxVolumetric, + PressureAdvance, + FlowRatio, + Retraction, + Cornering, + InputShapingFreq, + InputShapingDamp, + VFA +}; + class MainFrame : public DPIFrame { #ifdef __APPLE__ @@ -349,6 +364,11 @@ public: void technology_changed(); + // Opens the calibration wizard for `kind`, reusing the cached member dialogs the Calibration + // menu builds (m_*_calib_dlg). Single source of truth for the wizard lifecycle: the Calibration + // menu handlers and the Speed Dial native commands both call this. Call while the Prepare (3D) + // panel is shown (menu items are gated on is_view3D_shown; the speed dial ensures it first). + void run_calibration(CalibKind calib_kind); //BBS void load_url(wxString url); diff --git a/src/slic3r/GUI/NativeCommands.cpp b/src/slic3r/GUI/NativeCommands.cpp new file mode 100644 index 0000000000..e4c4449cf6 --- /dev/null +++ b/src/slic3r/GUI/NativeCommands.cpp @@ -0,0 +1,500 @@ +#include "NativeCommands.hpp" + +#include "calib_dlg.hpp" +#include "Camera.hpp" +#include "GCodeViewer.hpp" +#include "GLCanvas3D.hpp" +#include "GUI.hpp" +#include "GUI_App.hpp" +#include "I18N.hpp" +#include "IMSlider.hpp" +#include "MainFrame.hpp" +#include "Plater.hpp" +#include "PlateSettingsDialog.hpp" +#include "DeviceCore/DevManager.h" + +#include <libslic3r/Utils.hpp> + +#include <algorithm> +#include <cmath> +#include <cstdlib> +#include <exception> +#include <string> +#include <tuple> +#include <utility> + +namespace Slic3r { namespace GUI { + +namespace { + +// Plate ops are an FFF feature: SLA has a single plate and no plate UI, gcode-only mode has no +// editable project - so gate every plate op on FFF + the normal editor. +bool is_fff_plater(Plater* plater) { return plater && plater->printer_technology() == ptFFF && !plater->only_gcode_mode(); } + +AppActionRunResult plate_unavailable() { return {AppActionRunResult::Level::Info, _L("Plates are a filament (FFF) feature.")}; } + +// Switch to the Prepare (3D) panel so object/calibration ops have a live canvas + selection, and +// the notebook page label matches. A no-op when the 3D panel is already shown. +void ensure_3d_view(Plater* plater) +{ + if (plater && !plater->is_view3D_shown()) { + plater->select_view_3D("3D"); + if (MainFrame* mf = wxGetApp().mainframe; mf) + mf->select_tab(TAB_ID_PREPARE); + } +} + +// Object op guard + run: object ops read the Prepare canvas selection, so ensure that view first so +// a launch from another tab doesn't report a spuriously empty selection. +AppActionRunResult object_op(Plater* plater, bool (*ok)(Plater*), void (*op)(Plater*)) +{ + if (!plater) + return {AppActionRunResult::Level::Info, _L("Open the 3D view first.")}; + ensure_3d_view(plater); + if (!ok(plater)) + return {AppActionRunResult::Level::Info, _L("Select an object first.")}; + op(plater); + return {AppActionRunResult::Level::Success}; +} + +// Jump the preview to a layer selected by a 0-100 percent of the layer range. Best-effort: switches +// to the preview tab and requests a slice; if the slicer result is already present the slider is +// repositioned immediately, otherwise the user can re-run after slicing. +void go_to_layer(Plater* plater, const std::string& param) +{ + if (!plater) + return; + double pct = 50.0; + try { + pct = std::stod(param); + } catch (const std::exception&) {} + pct = std::clamp(pct, 0.0, 100.0); + + GLCanvas3D* canvas = plater->get_current_canvas3D(); + if (!canvas) + return; + GCodeViewer& viewer = canvas->get_gcode_viewer(); + IMSlider* layers = viewer.get_layers_slider(); + IMSlider* moves = viewer.get_moves_slider(); + if (!layers || layers->GetMaxValue() <= 0) + return; + + const double max = double(layers->GetMaxValue()); + const int target = int(std::lround(pct / 100.0 * max)); + layers->SetHigherValue(target); + if (layers->is_one_layer()) + layers->SetLowerValue(target); + layers->set_as_dirty(); + if (moves) { + moves->SetHigherValue(moves->GetMaxValue()); + moves->set_as_dirty(); + } +} + +// Select a named camera view. Plater::select_view dispatches to the current panel. +AppActionRunResult view_command(Plater* plater, const std::string& dir) +{ + if (plater) + plater->select_view(dir); + return {AppActionRunResult::Level::Success}; +} + +// Calibration wizards. Reuses MainFrame::run_calibration so the speed dial shows the same cached +// member dialogs as the Calibration menu (the menu handlers call run_calibration too). +AppActionRunResult calib_command(CalibKind kind) +{ + MainFrame* mf = wxGetApp().mainframe; + if (!mf) + return {AppActionRunResult::Level::Info, _L("Open the 3D view first.")}; + ensure_3d_view(wxGetApp().plater()); + mf->run_calibration(kind); + return {AppActionRunResult::Level::Success}; +} + +std::vector<NativeCommand> build_command_catalog() +{ + std::vector<NativeCommand> out; + auto add = [&](std::string key, std::string title, std::string group, + std::function<AppActionRunResult(const std::string&)> runner, std::string input = {}) { + out.push_back({std::move(key), std::move(title), std::move(group), std::move(input), std::move(runner)}); + }; + + // ---- Slice & Export ---- + add("slice_and_preview", _u8L("Slice and Preview"), _u8L("Slice & Export"), [](const std::string&) { + Plater* plater = wxGetApp().plater(); + if (plater) { + plater->reslice(); + plater->select_view_3D("Preview", false); + if (MainFrame* mf = wxGetApp().mainframe; mf) + mf->select_tab(TAB_ID_PREVIEW); + } + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + + add( + "go_to_layer", _u8L("Go to layer (percent)"), _u8L("Commands"), + [](const std::string& param) { + Plater* plater = wxGetApp().plater(); + if (plater) { + plater->select_view_3D("Preview", false); + if (MainFrame* mf = wxGetApp().mainframe; mf) + mf->select_tab(TAB_ID_PREVIEW); + go_to_layer(plater, param); + } + return AppActionRunResult{AppActionRunResult::Level::Success}; + }, + "percent"); + + // "go_to_tab" is two-phase: the palette collects the tab after activating it, so dispatch here + // is a no-op (the jump goes through the go_to_tab web command). + add( + "go_to_tab", _u8L("Go to tab..."), _u8L("Commands"), + [](const std::string&) { return AppActionRunResult{AppActionRunResult::Level::Success}; }, "tab"); + + add("load_project", _u8L("Load Project"), _u8L("Commands"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->load_project(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("save_project", _u8L("Save Project"), _u8L("Commands"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->save_project(false); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("save_project_as", _u8L("Save Project As"), _u8L("Commands"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->save_project(true); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("open_preferences", _u8L("Preferences"), _u8L("Commands"), [](const std::string&) { + wxGetApp().open_preferences(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + + // ---- Mode ---- + add("mode_simple", _u8L("Mode: Simple"), _u8L("Mode"), [](const std::string&) { + wxGetApp().save_mode(comSimple); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("mode_advanced", _u8L("Mode: Advanced"), _u8L("Mode"), [](const std::string&) { + wxGetApp().save_mode(comAdvanced); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("mode_expert", _u8L("Mode: Expert"), _u8L("Mode"), [](const std::string&) { + wxGetApp().save_mode(comExpert); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + + // ---- Export pipeline ---- + add("export_gcode", _u8L("Export G-code"), _u8L("Slice & Export"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->export_gcode(false); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("export_stl", _u8L("Export STL"), _u8L("Slice & Export"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->export_stl(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("export_3mf", _u8L("Export 3MF"), _u8L("Slice & Export"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->export_core_3mf(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("export_sliced_file", _u8L("Export Sliced File"), _u8L("Slice & Export"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->export_gcode_3mf(false); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"), + [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->export_gcode_3mf(true); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + + // ---- Calibration ---- + add("calib_temperature", _u8L("Temperature Calibration"), _u8L("Calibration"), + [](const std::string&) { return calib_command(CalibKind::Temperature); }); + add("calib_max_volumetric", _u8L("Max Volumetric Speed Calibration"), _u8L("Calibration"), + [](const std::string&) { return calib_command(CalibKind::MaxVolumetric); }); + add("calib_pressure_advance", _u8L("Pressure Advance Calibration"), _u8L("Calibration"), + [](const std::string&) { return calib_command(CalibKind::PressureAdvance); }); + add("calib_flow_ratio", _u8L("Flow Ratio Calibration"), _u8L("Calibration"), + [](const std::string&) { return calib_command(CalibKind::FlowRatio); }); + add("calib_retraction", _u8L("Retraction Calibration"), _u8L("Calibration"), + [](const std::string&) { return calib_command(CalibKind::Retraction); }); + add("calib_cornering", _u8L("Cornering Calibration"), _u8L("Calibration"), + [](const std::string&) { return calib_command(CalibKind::Cornering); }); + add("calib_input_shaping_freq", _u8L("Input Shaping Frequency Calibration"), _u8L("Calibration"), + [](const std::string&) { return calib_command(CalibKind::InputShapingFreq); }); + add("calib_input_shaping_damp", _u8L("Input Shaping Damping Calibration"), _u8L("Calibration"), + [](const std::string&) { return calib_command(CalibKind::InputShapingDamp); }); + add("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"), + [](const std::string&) { return calib_command(CalibKind::VFA); }); + + // ---- View ---- + for (auto [key, dir, title] : + std::initializer_list<std::tuple<const char*, const char*, const char*>>{{"view_top", "top", "View: Top"}, + {"view_bottom", "bottom", "View: Bottom"}, + {"view_front", "front", "View: Front"}, + {"view_rear", "rear", "View: Rear"}, + {"view_left", "left", "View: Left"}, + {"view_right", "right", "View: Right"}, + {"view_iso", "iso", "View: Isometric"}}) { + std::string k = key, d = dir; + add(k, Slic3r::GUI::I18N::translate_utf8(title), _u8L("View"), + [d](const std::string&) { return view_command(wxGetApp().plater(), d); }); + } + add("view_default", _u8L("View: Default"), _u8L("View"), [](const std::string&) { + Plater* plater = wxGetApp().plater(); + if (plater) { + plater->select_view("plate"); + if (GLCanvas3D* canvas = plater->get_current_canvas3D()) + canvas->zoom_to_bed(); + } + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("view_fit_bed", _u8L("Fit Bed to View"), _u8L("View"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + if (GLCanvas3D* canvas = plater->get_current_canvas3D()) + canvas->zoom_to_bed(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("view_toggle_perspective", _u8L("Toggle Perspective"), _u8L("View"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->get_camera().select_next_type(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("reset_window_layout", _u8L("Reset Window Layout"), _u8L("View"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->reset_window_layout(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + + // ---- Object ---- + add("obj_delete", _u8L("Delete Selected"), _u8L("Object"), [](const std::string&) { + return object_op(wxGetApp().plater(), [](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->remove_selected(); }); + }); + add("obj_delete_all", _u8L("Delete All Objects"), _u8L("Object"), [](const std::string&) { + return object_op( + wxGetApp().plater(), [](Plater* p) { return p->can_delete_all(); }, [](Plater* p) { p->delete_all_objects_from_model(); }); + }); + add("obj_mirror_x", _u8L("Mirror X"), _u8L("Object"), [](const std::string&) { + return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::X); }); + }); + add("obj_mirror_y", _u8L("Mirror Y"), _u8L("Object"), [](const std::string&) { + return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::Y); }); + }); + add("obj_mirror_z", _u8L("Mirror Z"), _u8L("Object"), [](const std::string&) { + return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::Z); }); + }); + add("obj_split_objects", _u8L("Split to Objects"), _u8L("Object"), [](const std::string&) { + return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_split_to_objects(); }, [](Plater* p) { p->split_object(true); }); + }); + add("obj_split_parts", _u8L("Split to Parts"), _u8L("Object"), [](const std::string&) { + return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_split_to_volumes(); }, [](Plater* p) { p->split_volume(); }); + }); + add("obj_center", _u8L("Center Selected on Plate"), _u8L("Object"), [](const std::string&) { + return object_op(wxGetApp().plater(), [](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->center_selection(); }); + }); + add("obj_drop", _u8L("Drop to Bed"), _u8L("Object"), [](const std::string&) { + return object_op(wxGetApp().plater(), [](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->drop_selection(); }); + }); + add("obj_fit_volume", _u8L("Scale to Fit Print Volume"), _u8L("Object"), [](const std::string&) { + return object_op( + wxGetApp().plater(), [](Plater* p) { return p->can_scale_to_print_volume(); }, + [](Plater* p) { p->scale_selection_to_fit_print_volume(); }); + }); + add("obj_instances_up", _u8L("Increase Instances"), _u8L("Object"), [](const std::string&) { + return object_op( + wxGetApp().plater(), [](Plater* p) { return p->can_increase_instances(); }, [](Plater* p) { p->increase_instances(); }); + }); + add("obj_instances_down", _u8L("Decrease Instances"), _u8L("Object"), [](const std::string&) { + return object_op( + wxGetApp().plater(), [](Plater* p) { return p->can_decrease_instances(); }, [](Plater* p) { p->decrease_instances(); }); + }); + add("obj_arrange", _u8L("Auto-Arrange"), _u8L("Object"), [](const std::string&) { + return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_arrange(); }, [](Plater* p) { p->arrange(); }); + }); + add("obj_orient", _u8L("Auto-Orient"), _u8L("Object"), [](const std::string&) { + return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_arrange(); }, [](Plater* p) { p->orient(); }); + }); + + // ---- Plate ---- + add("plate_add", _u8L("Add Plate"), _u8L("Plate"), [](const std::string&) { + Plater* plater = wxGetApp().plater(); + if (!is_fff_plater(plater)) + return plate_unavailable(); + if (!plater->can_add_plate()) + return AppActionRunResult{AppActionRunResult::Level::Info, _L("Cannot add another plate (maximum reached).")}; + plater->add_plate(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("plate_duplicate", _u8L("Duplicate Plate"), _u8L("Plate"), [](const std::string&) { + Plater* plater = wxGetApp().plater(); + if (!is_fff_plater(plater)) + return plate_unavailable(); + if (!plater->can_add_plate()) + return AppActionRunResult{AppActionRunResult::Level::Info, _L("Cannot duplicate a plate (maximum reached).")}; + plater->duplicate_plate(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("plate_delete", _u8L("Delete Plate"), _u8L("Plate"), [](const std::string&) { + Plater* plater = wxGetApp().plater(); + if (!is_fff_plater(plater)) + return plate_unavailable(); + if (!plater->can_delete_plate()) + return AppActionRunResult{AppActionRunResult::Level::Info, _L("Cannot delete the only plate.")}; + plater->delete_plate(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("plate_rename", _u8L("Rename Plate"), _u8L("Plate"), [](const std::string&) { + Plater* plater = wxGetApp().plater(); + if (!is_fff_plater(plater)) + return plate_unavailable(); + PartPlate* curr = plater->get_partplate_list().get_curr_plate(); + PlateNameEditDialog dlg((wxWindow*) wxGetApp().mainframe, wxID_ANY, _L("Edit Plate Name")); + dlg.set_plate_name(from_u8(curr->get_plate_name())); + if (dlg.ShowModal() == wxID_YES) + curr->set_plate_name(dlg.get_plate_name().ToUTF8().data()); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("plate_toggle_lock", _u8L("Toggle Plate Lock"), _u8L("Plate"), [](const std::string&) { + Plater* plater = wxGetApp().plater(); + if (!is_fff_plater(plater)) + return plate_unavailable(); + PartPlateList& plates = plater->get_partplate_list(); + const int index = plates.get_curr_plate_index(); + plater->take_snapshot("lock partplate"); + plates.lock_plate(index, !plates.is_locked(index)); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("plate_goto", _u8L("Go to Plate"), _u8L("Plate"), [](const std::string& param) { + Plater* plater = wxGetApp().plater(); + if (!is_fff_plater(plater)) + return plate_unavailable(); + PartPlateList& plates = plater->get_partplate_list(); + const int count = plates.get_plate_count(); + if (count <= 0) + return AppActionRunResult{AppActionRunResult::Level::Info, _L("No plates available.")}; + int index = 0; + try { + index = std::stoi(param); + } catch (const std::exception&) {} + index = std::clamp(index, 0, count - 1); + plater->select_plate(index, false); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + + // ---- Printer / device connection ---- + add("connect_printer", _u8L("Connect Printer"), _u8L("Printer"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->connect_to_printer(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("disconnect_printer", _u8L("Disconnect Printer"), _u8L("Printer"), [](const std::string&) { + DeviceManager* dev = wxGetApp().getDeviceManager(); + if (!dev) + return AppActionRunResult{AppActionRunResult::Level::Info, _L("Printer connection is unavailable.")}; + if (MachineObject* machine = dev->get_selected_machine()) { + machine->disconnect(); + dev->set_selected_machine(""); + return AppActionRunResult{AppActionRunResult::Level::Success}; + } + return AppActionRunResult{AppActionRunResult::Level::Info, _L("Printer is not connected.")}; + }); + add("sync_ams", _u8L("Synchronize Filament List from AMS"), _u8L("Printer"), [](const std::string&) { + Plater* plater = wxGetApp().plater(); + DeviceManager* dev = wxGetApp().getDeviceManager(); + if (dev && dev->get_selected_machine() && plater) { + plater->sidebar().sync_ams_list(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + } + return AppActionRunResult{AppActionRunResult::Level::Info, _L("Connect a printer to synchronize the AMS filament list.")}; + }); + + // ---- Presets / cloud ---- + add("preset_bundle", _u8L("Open Preset Bundle"), _u8L("Presets"), [](const std::string&) { + wxGetApp().open_presetbundledialog(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("sync_presets", _u8L("Sync Presets"), _u8L("Presets"), [](const std::string&) { + if (!wxGetApp().is_user_login()) + return AppActionRunResult{AppActionRunResult::Level::Info, _L("Sign in to sync presets.")}; + wxGetApp().restart_sync_user_preset(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + + // ---- Import ---- + add("import_file", _u8L("Import 3MF/STL/STEP/SVG/OBJ/AMF"), _u8L("Import"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) { +#ifdef __APPLE__ + plater->add_model(); +#else + plater->add_file(); +#endif + } + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("import_zip_archive", _u8L("Import ZIP Archive"), _u8L("Import"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->import_zip_archive(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("import_configs", _u8L("Import Configs"), _u8L("Import"), [](const std::string&) { + if (MainFrame* mf = wxGetApp().mainframe) + mf->load_config_file(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + + // ---- Export extras ---- + add("export_stl_multi", _u8L("Export All Objects as STLs"), _u8L("Export"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->export_stl(false, false, true); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("export_drc_single", _u8L("Export All Objects as DRC (one file)"), _u8L("Export"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->export_stl(false, false, false, FT_DRC); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("export_drc_multi", _u8L("Export All Objects as DRCs"), _u8L("Export"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->export_stl(false, false, true, FT_DRC); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("export_toolpaths_obj", _u8L("Export Toolpaths as OBJ"), _u8L("Export"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->export_toolpaths_to_obj(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("export_config", _u8L("Export Preset Bundle"), _u8L("Export"), [](const std::string&) { + if (MainFrame* mf = wxGetApp().mainframe) + mf->export_config(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + + return out; +} + +} // namespace + +const std::vector<NativeCommand>& NativeCommands::catalog() +{ + static const std::vector<NativeCommand> commands = build_command_catalog(); + return commands; +} + +AppActionRunResult NativeCommands::run(const std::string& key, const std::string& param) +{ + GUI_App& app = wxGetApp(); + if (app.is_closing()) + return {}; + for (const NativeCommand& c : catalog()) + if (c.key == key) + return c.runner(param); + return {AppActionRunResult::Level::Info, _L("Unknown command.")}; +} + +}} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/NativeCommands.hpp b/src/slic3r/GUI/NativeCommands.hpp new file mode 100644 index 0000000000..80c431364d --- /dev/null +++ b/src/slic3r/GUI/NativeCommands.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include <functional> +#include <string> +#include <vector> + +#include "ActionRegistry.hpp" // for AppActionRunResult + +namespace Slic3r { namespace GUI { + +// A built-in speed-dial command: identity + how to run it. The registry keeps commands as thin +// values (CommandAction) and routes run() here, so this catalog is the single source of truth for +// the behaviour (runner => an owner method) and the presentation (title/group/input). +struct NativeCommand +{ + std::string key; + std::string title; + std::string group; + std::string input; // "settings"/"percent"/"tab" or "" for immediate run + std::function<AppActionRunResult(const std::string& param)> runner; +}; + +namespace NativeCommands { +// The full built-in command catalog, built once (init()). UI thread only. +const std::vector<NativeCommand>& catalog(); + +// Dispatches `key` to its runner (unknown keys return a quiet Info). UI thread only. +AppActionRunResult run(const std::string& key, const std::string& param = {}); +} // namespace NativeCommands + +}} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index c525896d0b..a6478097f7 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -7138,6 +7138,7 @@ struct Plater::priv void on_action_publish(wxCommandEvent &evt); void on_action_print_plate(SimpleEvent&); void open_machine_select_dialog(int plate_idx, PrintFromType print_type = PrintFromType::FROM_NORMAL); + void connect_to_printer(); void on_action_print_all(SimpleEvent&); void on_action_export_gcode(SimpleEvent&); void on_action_send_gcode(SimpleEvent&); @@ -12728,6 +12729,22 @@ void Plater::priv::open_machine_select_dialog(int plate_idx, PrintFromType print m_select_machine_dlg->ShowModal(); } +void Plater::priv::connect_to_printer() +{ + // BBL network (vendor BBL, not print-host) and printer-agents mode surface the real + // machine picker (lists discovered printers, connects on selection). Everything else + // is a print-host printer: the Connection button's dialog (host/API-key config). + PresetBundle* pb = wxGetApp().preset_bundle; + const bool bbl_or_agent = (pb && pb->use_bbl_network()) || + wxGetApp().app_config->get_bool("use_printer_agents"); + if (bbl_or_agent) + open_machine_select_dialog(q->get_partplate_list().get_curr_plate_index()); + else { + PhysicalPrinterDialog dlg(q->GetParent()); + dlg.ShowModal(); + } +} + void Plater::priv::on_action_send_to_multi_machine(SimpleEvent&) { if (!m_send_multi_dlg) @@ -17511,6 +17528,8 @@ Sidebar::DockingState Plater::get_sidebar_docking_state() const { return p->get_ void Plater::reset_window_layout() { p->reset_window_layout(); } +void Plater::connect_to_printer() { p->connect_to_printer(); } + //BBS void Plater::select_curr_plate_all() { p->select_curr_plate_all(); } void Plater::remove_curr_plate_all() { p->remove_curr_plate_all(); } diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index fd190d3832..e8264cf417 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -354,6 +354,9 @@ public: void add_file(); // Returns false when no object was added (e.g. the user cancelled the load dialog). bool add_model(bool imperial_units = false, std::string fname = ""); + // Opens the connection/management dialog appropriate for the current printer's + // technology: the machine picker for BBL/printer-agents, the print-host dialog otherwise. + void connect_to_printer(); void import_zip_archive(); void import_sl1_archive(); void extract_config_from_project(); diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index e5255f61fe..0536925865 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -61,3 +61,13 @@ TEST_CASE("Go-to-plate actions are keyed by index, not title", "[speeddial][acti CHECK(AppAction::compose_id("orca_plate_goto", "0", "orca") == "orca_plate_goto:0:orca"); CHECK(AppAction::compose_id("orca_plate_goto", "2", "orca") == "orca_plate_goto:2:orca"); } + +// A dynamic "Open recent project" action is keyed by file path (not the display name), so renaming +// a project or reordering the recents list never re-keys it - the same contract as a setting action. +TEST_CASE("Recent-project actions are keyed by path, not title", "[speeddial][actions]") +{ + CHECK(AppAction::compose_id("orca_recent_project", "/a/b/project.3mf", "orca") == + "orca_recent_project:/a/b/project.3mf:orca"); + CHECK(AppAction::compose_id("orca_recent_project", "C:/Data/cube.3mf", "orca") == + "orca_recent_project:C:/Data/cube.3mf:orca"); +} From 0709c9931e3fb1bcf02567687278b02638425e34 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Wed, 9 Sep 2026 17:36:21 +0800 Subject: [PATCH 07/76] Slight refactor for opening Plugins in speed dial --- src/slic3r/GUI/GUI_App.cpp | 44 ++++ src/slic3r/GUI/GUI_App.hpp | 3 + src/slic3r/GUI/NativeCommands.cpp | 19 ++ src/slic3r/GUI/PluginsDialog.cpp | 328 +++++++++++++++++++----------- src/slic3r/GUI/PluginsDialog.hpp | 18 ++ 5 files changed, 290 insertions(+), 122 deletions(-) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 3500493329..c5d59d9185 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -8532,6 +8532,50 @@ void GUI_App::open_plugins_dialog(size_t open_on_tab, const std::string& highlig } } +void GUI_App::refresh_plugins() +{ + // The metadata refresh blocks on disc discovery and a cloud round-trip, so run it on a worker + // and report completion through the notification manager -- the speed dial needs no dialog. + std::thread([]() { + refresh_plugin_metadata_blocking(/*fetch_cloud=*/true); + wxTheApp->CallAfter([]() { + if (wxGetApp().is_closing()) + return; + Plater* plater = wxGetApp().plater(); + if (plater == nullptr) + return; + plater->get_notification_manager()->push_notification( + NotificationType::CustomNotification, + NotificationManager::NotificationLevel::RegularNotificationLevel, + into_u8(_L("Plugins refreshed."))); + }); + }).detach(); +} + +void GUI_App::install_local_plugin() +{ + if (mainframe == nullptr) + return; + + wxFileDialog dialog(mainframe, _L("Select plugin package"), wxEmptyString, wxEmptyString, _L("Plugin files (*.py;*.whl)|*.py;*.whl"), + wxFD_OPEN | wxFD_FILE_MUST_EXIST); + if (dialog.ShowModal() != wxID_OK) + return; + + wxString message; + const bool ok = install_local_plugin_package(boost::filesystem::path(dialog.GetPath().ToUTF8().data()), mainframe, message); + if (message.IsEmpty()) + return; // user cancelled the overwrite prompt + + Plater* plater = this->plater(); + if (plater == nullptr) + return; + plater->get_notification_manager()->push_notification( + NotificationType::CustomNotification, + ok ? NotificationManager::NotificationLevel::RegularNotificationLevel : NotificationManager::NotificationLevel::ErrorNotificationLevel, + into_u8(message)); +} + void GUI_App::open_terminal_dialog() { // Reached from the plugins dialog's webview ("open_terminal" command), i.e. from diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 8bf32df64c..b1ee96d468 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -633,6 +633,9 @@ public: void open_preferences(size_t open_on_tab = 0, const std::string& highlight_option = std::string()); void open_presetbundledialog(size_t open_on_tab = 0, const std::string& highlight_option = std::string()); void open_plugins_dialog(size_t open_on_tab = 0, const std::string& highlight_option = std::string()); + // Dialog-free plugin actions used by the speed dial: they never require the Plugins dialog to be open. + void refresh_plugins(); + void install_local_plugin(); void open_terminal_dialog(); void open_speed_dial(); ActionRegistry& action_registry() { return m_action_registry; } diff --git a/src/slic3r/GUI/NativeCommands.cpp b/src/slic3r/GUI/NativeCommands.cpp index e4c4449cf6..94edd4898e 100644 --- a/src/slic3r/GUI/NativeCommands.cpp +++ b/src/slic3r/GUI/NativeCommands.cpp @@ -10,6 +10,7 @@ #include "IMSlider.hpp" #include "MainFrame.hpp" #include "Plater.hpp" +#include "PluginsDialog.hpp" #include "PlateSettingsDialog.hpp" #include "DeviceCore/DevManager.h" @@ -475,6 +476,24 @@ std::vector<NativeCommand> build_command_catalog() return AppActionRunResult{AppActionRunResult::Level::Success}; }); + // ---- Plugins ---- + add("open_plugins", _u8L("Open Plugins"), _u8L("Plugins"), [](const std::string&) { + wxGetApp().open_plugins_dialog(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("refresh_plugins", _u8L("Refresh Plugins"), _u8L("Plugins"), [](const std::string&) { + wxGetApp().refresh_plugins(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("install_plugin", _u8L("Install Plugin"), _u8L("Plugins"), [](const std::string&) { + open_plugin_hub(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("install_local_plugin", _u8L("Install Local Plugin"), _u8L("Plugins"), [](const std::string&) { + wxGetApp().install_local_plugin(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + return out; } diff --git a/src/slic3r/GUI/PluginsDialog.cpp b/src/slic3r/GUI/PluginsDialog.cpp index a39fcbc535..4f97a7d089 100644 --- a/src/slic3r/GUI/PluginsDialog.cpp +++ b/src/slic3r/GUI/PluginsDialog.cpp @@ -125,15 +125,6 @@ PluginCapabilityType primary_capability_type_of(PluginManager& manager, const st return capabilities.empty() ? PluginCapabilityType::Unknown : capabilities.front()->type(); } -std::vector<PluginDescriptor> current_cloud_metadata_snapshot() -{ - std::vector<PluginDescriptor> cloud_entries; - for (const PluginDescriptor& entry : PluginManager::instance().get_plugin_descriptors(/*include_invalid=*/true)) - if (entry.is_cloud_plugin()) - cloud_entries.push_back(entry); - return cloud_entries; -} - PluginDescriptor as_cloud_only_descriptor(PluginDescriptor descriptor) { descriptor.plugin_root.clear(); @@ -149,41 +140,6 @@ PluginDescriptor as_cloud_only_descriptor(PluginDescriptor descriptor) return descriptor; } -void refresh_plugin_metadata_blocking(bool fetch_cloud) -{ - PluginManager& manager = PluginManager::instance(); - - std::vector<std::string> not_found, unauthorized; - const std::vector<PluginDescriptor> current_cloud_metadata = fetch_cloud ? std::vector<PluginDescriptor>{} : - current_cloud_metadata_snapshot(); - - manager.rescan_plugins(); - - if (!fetch_cloud) { - manager.update_cloud_metadata(current_cloud_metadata); - return; - } - - manager.fetch_plugins_from_cloud(¬_found, &unauthorized); - - wxGetApp().CallAfter([not_found = std::move(not_found), unauthorized = std::move(unauthorized)]() { - if (wxGetApp().is_closing()) - return; - Plater* plater = wxGetApp().plater(); - if (plater == nullptr) - return; - - for (const auto& uuid : not_found) - plater->get_notification_manager()->push_notification(NotificationType::CustomNotification, - NotificationManager::NotificationLevel::RegularNotificationLevel, - format(_L("Plugin %s is no longer available."), uuid)); - for (const auto& uuid : unauthorized) - plater->get_notification_manager()->push_notification(NotificationType::CustomNotification, - NotificationManager::NotificationLevel::RegularNotificationLevel, - format(_L("Plugin %s access is unauthorized."), uuid)); - }); -} - std::string to_string(PluginUpdateStatus status); nlohmann::json build_context_actions_payload(const PluginAvailableActions& available_actions); @@ -447,6 +403,200 @@ bool take_plugin_operation_result(const std::shared_ptr<PluginOperationState>& s } } // namespace +// ── Dialog-independent plugin actions (also used by the speed dial) ─────────────────────────── + +namespace { + +// Snapshot of the currently-known cloud plugin descriptors, used to refresh metadata without a +// network round-trip (kUseCurrentCloudMeta). +std::vector<PluginDescriptor> current_cloud_metadata_snapshot() +{ + std::vector<PluginDescriptor> cloud_entries; + for (const PluginDescriptor& entry : PluginManager::instance().get_plugin_descriptors(/*include_invalid=*/true)) + if (entry.is_cloud_plugin()) + cloud_entries.push_back(entry); + return cloud_entries; +} + +} // namespace + +void refresh_plugin_metadata_blocking(bool fetch_cloud) +{ + PluginManager& manager = PluginManager::instance(); + + std::vector<std::string> not_found, unauthorized; + const std::vector<PluginDescriptor> current_cloud_metadata = fetch_cloud ? std::vector<PluginDescriptor>{} : + current_cloud_metadata_snapshot(); + + manager.rescan_plugins(); + + if (!fetch_cloud) { + manager.update_cloud_metadata(current_cloud_metadata); + return; + } + + manager.fetch_plugins_from_cloud(¬_found, &unauthorized); + + wxGetApp().CallAfter([not_found = std::move(not_found), unauthorized = std::move(unauthorized)]() { + if (wxGetApp().is_closing()) + return; + Plater* plater = wxGetApp().plater(); + if (plater == nullptr) + return; + + for (const auto& uuid : not_found) + plater->get_notification_manager()->push_notification(NotificationType::CustomNotification, + NotificationManager::NotificationLevel::RegularNotificationLevel, + format(_L("Plugin %s is no longer available."), uuid)); + for (const auto& uuid : unauthorized) + plater->get_notification_manager()->push_notification(NotificationType::CustomNotification, + NotificationManager::NotificationLevel::RegularNotificationLevel, + format(_L("Plugin %s access is unauthorized."), uuid)); + }); +} + +void open_plugin_hub() +{ + std::string cloud_base_url = "https://cloud.orcaslicer.com"; + + if (wxGetApp().getAgent()) { + auto orca_agent = std::dynamic_pointer_cast<OrcaCloudServiceAgent>(wxGetApp().getAgent()->get_cloud_agent()); + if (orca_agent && !orca_agent->get_cloud_base_url().empty()) + cloud_base_url = orca_agent->get_cloud_base_url(); + } + + while (!cloud_base_url.empty() && cloud_base_url.back() == '/') + cloud_base_url.pop_back(); + if (cloud_base_url.empty()) + cloud_base_url = "https://cloud.orcaslicer.com"; + + wxLaunchDefaultBrowser(wxString::FromUTF8(cloud_base_url + "/app/plugins/plugin-hub")); +} + +bool install_local_plugin_package(const boost::filesystem::path& package_file, wxWindow* parent, wxString& message) +{ + message.clear(); + if (package_file.empty()) + return false; + + // ---- pre-flight (main thread): validate + inspect + overwrite prompt ---- + const wxString package_name = from_u8(package_file.filename().string()); + + std::string extension = package_file.extension().string(); + std::transform(extension.begin(), extension.end(), extension.begin(), + [](unsigned char ch) { return static_cast<char>(std::tolower(ch)); }); + if (extension != ".py" && extension != ".whl") { + message = _L("Select a .py or .whl plugin package."); + return false; + } + + PluginDescriptor plugin_descriptor; + bool existing_installation = false; + std::string error; + try { + if (!PluginManager::instance().inspect_local_plugin_package(package_file, plugin_descriptor, existing_installation, error)) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": Plugin package inspection failed for " << package_file << " error=" << error; + message = _L("Failed to install plugin package. See the log for details."); + return false; + } + } catch (const std::exception& ex) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": Plugin package inspection failed for " << package_file << " error=" << ex.what(); + message = _L("Failed to install plugin package. See the log for details."); + return false; + } catch (...) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": Plugin package inspection failed for " << package_file; + message = _L("Failed to install plugin package. See the log for details."); + return false; + } + + if (existing_installation) { + const wxString plugin_name = from_u8(plugin_descriptor.name.empty() ? package_file.filename().string() : plugin_descriptor.name); + wxMessageDialog dialog(parent, + wxString::Format(_L("Plugin \"%s\" is already installed.\n\nInstalling this package will overwrite the existing plugin."), + plugin_name), + kOverwritePluginTitle, wxOK | wxCANCEL | wxCANCEL_DEFAULT | wxICON_WARNING); + dialog.SetOKCancelLabels(_L("Overwrite"), _L("Cancel")); + if (dialog.ShowModal() != wxID_OK) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": Plugin package installation cancelled before overwrite. package=" << package_file + << " plugin=" << plugin_descriptor.name; + return false; // cancelled: message stays empty so callers stay silent + } + } + + // ---- install + refresh on a worker behind a modal progress dialog (keeps the UI live) ---- + bool installed = false; + { + struct Result + { + std::mutex mutex; + bool ok = false; + std::string error; + }; + auto state = std::make_shared<Result>(); + + wxProgressDialog* progress = new wxProgressDialog(_L("Installing plugin"), _L("Installing plugin") + ": " + package_name, + 100, parent, wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_ELAPSED_TIME); + wxTimer* timer = new wxTimer(); + timer->Bind(wxEVT_TIMER, [progress](wxTimerEvent&) { + if (progress) + progress->Pulse(); + }); + timer->Start(100); + + bool finished = false; + wxEventLoop loop; + auto on_finish = [&finished, &loop]() { + finished = true; + if (loop.IsRunning()) + loop.Exit(); + }; + + std::thread([state, package_file, on_finish]() mutable { + std::string error; + bool ok = false; + try { + ok = PluginManager::instance().install_plugin(package_file, error); + } catch (const std::exception& ex) { + error = ex.what(); + } catch (...) { + error = "Unknown error"; + } + if (ok) { + // Reflect the new package in discovery/cloud metadata without blocking the caller. + try { refresh_plugin_metadata_blocking(kUseCurrentCloudMeta); } catch (...) {} + } + { + std::lock_guard<std::mutex> lock(state->mutex); + state->ok = ok; + state->error = std::move(error); + } + wxTheApp->CallAfter(on_finish); + }).detach(); + + if (!finished) + loop.Run(); + + timer->Stop(); + delete timer; + progress->Destroy(); + + std::lock_guard<std::mutex> lock(state->mutex); + installed = state->ok; + error = std::move(state->error); + } + + if (!installed) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": Plugin package installation failed for " << package_file << " error=" << error; + message = _L("Failed to install plugin package. See the log for details."); + return false; + } + + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": Plugin package installed successfully from " << package_file; + const wxString installed_name = from_u8(plugin_descriptor.name.empty() ? package_file.filename().string() : plugin_descriptor.name); + message = wxString::Format(_L("Installed \"%s\"."), installed_name); + return true; +} + PluginsDialog::PluginsDialog(wxWindow* parent, wxWindowID id, const wxString&, const wxPoint& pos, const wxSize& size, long style) : WebViewHostDialog(parent, id, _L("Plugins"), pos, size, style) { create_webview("web/dialog/PluginsDialog/index.html", _L("Plugins"), wxSize(900, 820), wxSize(760, 715)); } @@ -818,78 +968,28 @@ bool PluginsDialog::install_plugin_package(const std::string& package_path) { if (package_path.empty()) return false; - BOOST_LOG_TRIVIAL(info) << "Installing local plugin package from path: " << package_path; - std::string error; + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": Installing local plugin package from path: " << package_path; + const boost::filesystem::path package_file(package_path); - const wxString package_name = from_u8(package_file.filename().string()); + wxString message; + const bool installed = install_local_plugin_package(package_file, this, message); - std::string extension = package_file.extension().string(); - std::transform(extension.begin(), extension.end(), extension.begin(), - [](unsigned char ch) { return static_cast<char>(std::tolower(ch)); }); - if (extension != ".py" && extension != ".whl") { - show_status(_L("Select a .py or .whl plugin package."), "info"); - return false; - } - - PluginDescriptor plugin_descriptor; - bool existing_installation = false; - auto report_inspection_failure = [&]() { - BOOST_LOG_TRIVIAL(error) << "Plugin package inspection failed for " << package_path << " error=" << error; - show_status(_L("Failed to install plugin package. See the log for details."), "warn"); + // The shared helper reports a user-cancelled overwrite with an empty message: stay silent. + if (message.IsEmpty()) { send_plugins(); return false; - }; - - try { - if (!PluginManager::instance().inspect_local_plugin_package(package_file, plugin_descriptor, existing_installation, error)) - return report_inspection_failure(); - } catch (const std::exception& ex) { - error = ex.what(); - return report_inspection_failure(); - } catch (...) { - error = "Unknown error"; - return report_inspection_failure(); - } - - if (existing_installation) { - const wxString plugin_name = from_u8(plugin_descriptor.name.empty() ? package_file.filename().string() : plugin_descriptor.name); - wxMessageDialog dialog( - this, - wxString::Format(_L("Plugin \"%s\" is already installed.\n\nInstalling this package will overwrite the existing plugin."), - plugin_name), - kOverwritePluginTitle, wxOK | wxCANCEL | wxCANCEL_DEFAULT | wxICON_WARNING); - dialog.SetOKCancelLabels(_L("Overwrite"), _L("Cancel")); - const int overwrite_rc = dialog.ShowModal(); - restore_z_order(); - if (overwrite_rc != wxID_OK) { - BOOST_LOG_TRIVIAL(info) << "Plugin package installation cancelled before overwrite. package=" << package_path - << " plugin=" << plugin_descriptor.name; - return false; - } - } - - bool installed = false; - try { - installed = run_with_dialog_wait([package_file, &error]() { return PluginManager::instance().install_plugin(package_file, error); }, - _L("Installing plugin"), _L("Installing plugin") + ": " + package_name, 100, - wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_ELAPSED_TIME); - } catch (const std::exception& ex) { - error = ex.what(); - } catch (...) { - error = "Unknown error"; } if (!installed) { - BOOST_LOG_TRIVIAL(error) << "Plugin package installation failed for " << package_path << " error=" << error; - show_status(_L("Failed to install plugin package. See the log for details."), "warn"); + BOOST_LOG_TRIVIAL(warning) << __FUNCTION__ << ": Failed to install plugin package."; + show_status(message, "warn"); send_plugins(); return false; } - BOOST_LOG_TRIVIAL(info) << "Plugin package installed successfully from " << package_path; - const wxString installed_name = from_u8(plugin_descriptor.name.empty() ? package_file.filename().string() : plugin_descriptor.name); - show_status(wxString::Format(_L("Installed \"%s\"."), installed_name), "success"); - refresh_plugin_metadata_async(_L("Refreshing"), _L("Refreshing plugins data"), kUseCurrentCloudMeta); + show_status(message, "success"); + prompt_for_missing_plugins(); + send_plugins(); return true; } @@ -1085,23 +1185,7 @@ void PluginsDialog::open_plugin_on_cloud(const std::string& sharing_token) wxLaunchDefaultBrowser(wxString::FromUTF8(orca_agent->get_cloud_base_url() + "/p/" + sharing_token)); } -void PluginsDialog::open_plugin_hub() -{ - std::string cloud_base_url = "https://cloud.orcaslicer.com"; - - if (wxGetApp().getAgent()) { - auto orca_agent = std::dynamic_pointer_cast<OrcaCloudServiceAgent>(wxGetApp().getAgent()->get_cloud_agent()); - if (orca_agent && !orca_agent->get_cloud_base_url().empty()) - cloud_base_url = orca_agent->get_cloud_base_url(); - } - - while (!cloud_base_url.empty() && cloud_base_url.back() == '/') - cloud_base_url.pop_back(); - if (cloud_base_url.empty()) - cloud_base_url = "https://cloud.orcaslicer.com"; - - wxLaunchDefaultBrowser(wxString::FromUTF8(cloud_base_url + "/app/plugins/plugin-hub")); -} +void PluginsDialog::open_plugin_hub() { Slic3r::GUI::open_plugin_hub(); } void PluginsDialog::delete_local_plugin(const PluginDescriptor& plugin) { diff --git a/src/slic3r/GUI/PluginsDialog.hpp b/src/slic3r/GUI/PluginsDialog.hpp index e663de79e4..2c4a5925d9 100644 --- a/src/slic3r/GUI/PluginsDialog.hpp +++ b/src/slic3r/GUI/PluginsDialog.hpp @@ -24,6 +24,8 @@ #include <wx/string.h> #include <wx/timer.h> +#include <boost/filesystem.hpp> + class wxTimer; namespace Slic3r { @@ -34,6 +36,22 @@ enum class PluginCapabilityType; namespace GUI { +// Dialog-independent plugin-management actions, shared by the Plugins dialog and the speed dial: +// they never require the webview dialog to be open. + +// Rescans local plugins and (optionally) re-fetches cloud metadata. Blocking: run off the UI +// thread. Used by PluginsDialog (behind its progress dialog) and GUI_App::refresh_plugins(). +void refresh_plugin_metadata_blocking(bool fetch_cloud); + +// Opens the Cloud plugin hub in the default browser. No dialog needed. +void open_plugin_hub(); + +// Synchronously installs a local plugin package (.py/.whl). Runs on the UI thread but keeps it +// responsive by performing the install on a worker behind a modal progress dialog. `parent` owns +// the overwrite prompt and the progress dialog. On success `message` carries the localized +// confirmation; on a user-cancelled overwrite it is empty; on failure it carries the reason. +bool install_local_plugin_package(const boost::filesystem::path& package_file, wxWindow* parent, wxString& message); + class PluginsDialog : public Slic3r::GUI::WebViewHostDialog { public: From 0fb87f05b146aea4124c4b4941fc9960472625f7 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Wed, 9 Sep 2026 18:05:49 +0800 Subject: [PATCH 08/76] Remove printer connect/disconnect for now --- src/slic3r/GUI/NativeCommands.cpp | 16 ---------------- src/slic3r/GUI/Plater.cpp | 19 ------------------- src/slic3r/GUI/Plater.hpp | 3 --- 3 files changed, 38 deletions(-) diff --git a/src/slic3r/GUI/NativeCommands.cpp b/src/slic3r/GUI/NativeCommands.cpp index 94edd4898e..d0dfc78086 100644 --- a/src/slic3r/GUI/NativeCommands.cpp +++ b/src/slic3r/GUI/NativeCommands.cpp @@ -389,22 +389,6 @@ std::vector<NativeCommand> build_command_catalog() }); // ---- Printer / device connection ---- - add("connect_printer", _u8L("Connect Printer"), _u8L("Printer"), [](const std::string&) { - if (Plater* plater = wxGetApp().plater()) - plater->connect_to_printer(); - return AppActionRunResult{AppActionRunResult::Level::Success}; - }); - add("disconnect_printer", _u8L("Disconnect Printer"), _u8L("Printer"), [](const std::string&) { - DeviceManager* dev = wxGetApp().getDeviceManager(); - if (!dev) - return AppActionRunResult{AppActionRunResult::Level::Info, _L("Printer connection is unavailable.")}; - if (MachineObject* machine = dev->get_selected_machine()) { - machine->disconnect(); - dev->set_selected_machine(""); - return AppActionRunResult{AppActionRunResult::Level::Success}; - } - return AppActionRunResult{AppActionRunResult::Level::Info, _L("Printer is not connected.")}; - }); add("sync_ams", _u8L("Synchronize Filament List from AMS"), _u8L("Printer"), [](const std::string&) { Plater* plater = wxGetApp().plater(); DeviceManager* dev = wxGetApp().getDeviceManager(); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index a6478097f7..c525896d0b 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -7138,7 +7138,6 @@ struct Plater::priv void on_action_publish(wxCommandEvent &evt); void on_action_print_plate(SimpleEvent&); void open_machine_select_dialog(int plate_idx, PrintFromType print_type = PrintFromType::FROM_NORMAL); - void connect_to_printer(); void on_action_print_all(SimpleEvent&); void on_action_export_gcode(SimpleEvent&); void on_action_send_gcode(SimpleEvent&); @@ -12729,22 +12728,6 @@ void Plater::priv::open_machine_select_dialog(int plate_idx, PrintFromType print m_select_machine_dlg->ShowModal(); } -void Plater::priv::connect_to_printer() -{ - // BBL network (vendor BBL, not print-host) and printer-agents mode surface the real - // machine picker (lists discovered printers, connects on selection). Everything else - // is a print-host printer: the Connection button's dialog (host/API-key config). - PresetBundle* pb = wxGetApp().preset_bundle; - const bool bbl_or_agent = (pb && pb->use_bbl_network()) || - wxGetApp().app_config->get_bool("use_printer_agents"); - if (bbl_or_agent) - open_machine_select_dialog(q->get_partplate_list().get_curr_plate_index()); - else { - PhysicalPrinterDialog dlg(q->GetParent()); - dlg.ShowModal(); - } -} - void Plater::priv::on_action_send_to_multi_machine(SimpleEvent&) { if (!m_send_multi_dlg) @@ -17528,8 +17511,6 @@ Sidebar::DockingState Plater::get_sidebar_docking_state() const { return p->get_ void Plater::reset_window_layout() { p->reset_window_layout(); } -void Plater::connect_to_printer() { p->connect_to_printer(); } - //BBS void Plater::select_curr_plate_all() { p->select_curr_plate_all(); } void Plater::remove_curr_plate_all() { p->remove_curr_plate_all(); } diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index e8264cf417..fd190d3832 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -354,9 +354,6 @@ public: void add_file(); // Returns false when no object was added (e.g. the user cancelled the load dialog). bool add_model(bool imperial_units = false, std::string fname = ""); - // Opens the connection/management dialog appropriate for the current printer's - // technology: the machine picker for BBL/printer-agents, the print-host dialog otherwise. - void connect_to_printer(); void import_zip_archive(); void import_sl1_archive(); void extract_config_from_project(); From a0ba8e12e5a31700f5fc9553db2d95bd35cbc15b Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Thu, 10 Sep 2026 12:07:36 +0800 Subject: [PATCH 09/76] Change to a pin/bookmark icon. Added shortcut (Ctrl/Cmd+B) to pin/unpin actions. Clear unresolved pinned actions when switching between modes. Fixed scroll-back issue when scrolling to pin action --- resources/web/dialog/SpeedDial/speeddial.js | 63 ++++++++++++++++----- resources/web/dialog/SpeedDial/style.css | 12 ++-- src/slic3r/GUI/ActionRegistry.cpp | 15 ++++- src/slic3r/GUI/SpeedDialDialog.cpp | 2 +- 4 files changed, 68 insertions(+), 24 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 04844aae43..b92261b351 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -375,7 +375,7 @@ window.HandleStudio = function (payload) { // Favourites are at the quick-launch cap - undo the optimistic pin and flash a hint. var fid = payload.id; if (fid && FAVS.indexOf(fid) !== -1) FAVS.splice(FAVS.indexOf(fid), 1); - render({ resize: true }); + render({ resize: true, keepScroll: true }); flashHint("Favourites are full (" + (payload.limit || K_FAV_LIMIT) + " max)"); } }; @@ -434,10 +434,19 @@ function markedText(className, text, match) { return node; } -function starSvg(on) { +// A bookmark glyph: outlined when unpinned, filled when saved to favourites. +function pinSvg(on) { return '<svg width="15" height="15" viewBox="0 0 24 24" fill="' + (on ? "currentColor" : "none") + '" stroke="currentColor" stroke-width="1.7" stroke-linejoin="round">' + - '<path d="M12 3.5l2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 17.9 6.8 20.6l1-5.8L3.5 9.7l5.9-.9z"/></svg>'; + '<path d="M6 3.5A1.5 1.5 0 0 1 7.5 2h9A1.5 1.5 0 0 1 18 3.5V21l-6-4.2L6 21z"/></svg>'; +} + +// Sync one pin button to its favourite state. Shared by row construction and the in-place +// updatePins pass so the two can't drift. +function setPinState(pin, on) { + pin.classList.toggle("on", on); + pin.innerHTML = pinSvg(on); + pin.title = on ? "Unpin from favourites (Ctrl+B)" : "Pin to favourites (Ctrl+B)"; } // ---- render ------------------------------------------------------------------ @@ -551,7 +560,7 @@ function updateFavEyebrow(favs) { } // A command/action row - used for search results, recents, and (because settings are actions now) -// the setting options too. All rows are pinnable, so every row carries a star. +// the setting options too. All rows are pinnable, so every row carries a bookmark. function renderActionRow(a, i) { var on = FAVS.indexOf(a.id) !== -1; var row = document.createElement("div"); @@ -591,14 +600,13 @@ function renderActionRow(a, i) { row.appendChild(tile); row.appendChild(left); - var star = document.createElement("button"); - star.className = "star" + (on ? " on" : ""); - star.innerHTML = starSvg(on); - star.title = on ? "Unpin from favourites" : "Pin to favourites"; - star.onclick = function (ev) { ev.stopPropagation(); toggleFav(a.id); }; + var pin = document.createElement("button"); + pin.className = "pin"; + setPinState(pin, on); + pin.onclick = function (ev) { ev.stopPropagation(); toggleFav(a.id); }; // why: two quick fav/unfav clicks must not dblclick-run the row - star.ondblclick = function (ev) { ev.stopPropagation(); }; - row.appendChild(star); + pin.ondblclick = function (ev) { ev.stopPropagation(); }; + row.appendChild(pin); row.onclick = function () { sel = { zone: "list", i: i }; render({ resize: true }); }; row.ondblclick = function () { sel = { zone: "list", i: i }; activateEntry(a); }; @@ -663,6 +671,21 @@ function updateSelection() { } } +// Sync the pin buttons in place when FAVS changes but the row set doesn't (fav toggle), so a +// bookmark fills/empties without a rebuild that would reset scroll. Rows carry data-idx into the +// active list. +function updatePins(list) { + var rows = listEl ? listEl.querySelectorAll(".row") : []; + for (var i = 0; i < rows.length; i++) { + var a = list[parseInt(rows[i].getAttribute("data-idx"), 10)]; + var pin = rows[i].querySelector(".pin"); + if (!a || !pin) continue; + var on = FAVS.indexOf(a.id) !== -1; + if (pin.classList.contains("on") !== on) + setPinState(pin, on); + } +} + function renderCommandsList() { var list = currentList(); var total = list.length; @@ -702,9 +725,10 @@ function renderCommandsList() { countEl.textContent = showList ? resultCountText(ACTIONS.length, total, query) : total + " recent"; } updateSelection(); + updatePins(list); } -// A tab row: no star/unpin (tabs aren't pinnable), placeholder tile (tabs have no pictogram). Uses +// A tab row: no pin/unpin (tabs aren't pinnable), placeholder tile (tabs have no pictogram). Uses // tabTitle so pages added with an empty text (e.g. Home) still show a label. function renderTabRow(t, i) { var label = tabTitle(t); @@ -781,7 +805,10 @@ function renderList() { function render(opts) { renderFav(); renderList(); - scrollSelectedIntoView(); + // Pin toggles don't move the selection, so they pass keepScroll to avoid snapping the list + // back to a row that is currently off-screen. + if (!(opts && opts.keepScroll)) + scrollSelectedIntoView(); if (opts && opts.resetScroll) resetScrollPositions(listEl, document); if (opts && opts.resize) @@ -835,7 +862,7 @@ function toggleFav(id) { var newState = k === -1; if (newState) FAVS.push(id); else FAVS.splice(k, 1); SendMessage({ command: "toggle_favourite", id: id, fav: newState }); - render({ resize: true }); + render({ resize: true, keepScroll: true }); } // Fire a command/plugin action; C++ owns the run-confirm (native dialog) + suppression, then @@ -951,6 +978,14 @@ function OnInit() { document.addEventListener("keydown", function (e) { if (favMenuEl && !favMenuEl.hidden && e.key === "Escape") { e.preventDefault(); hideFavMenu(); return; } + // Pin/unpin the highlighted action: Ctrl/Cmd+B. Commands phase only (tabs/percent aren't pinnable). + if (phase === "commands" && (e.ctrlKey || e.metaKey) && !e.altKey && !e.shiftKey && + e.key.toLowerCase() === "b") { + e.preventDefault(); + var id = selectedActionId(sel, currentList(), currentVisibleFavs(), query); + if (id) toggleFav(id); + return; + } // Quick-launch a numbered favourite: Alt/Option + digit (0 = the 10th). Only in the // commands phase, where the pinned bar is shown. if (phase === "commands" && e.altKey && !e.ctrlKey && !e.metaKey) { diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index aa8bdc7c4b..f7d045bc9a 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -255,7 +255,7 @@ kbd { border: 1px solid var(--border, var(--orca-border, #ddd)); border-radius: 4px; } -.star { +.pin { flex: 0 0 auto; width: 24px; height: 24px; @@ -269,11 +269,11 @@ kbd { justify-content: center; opacity: 0; } -.star svg { display: block; } -.row:hover .star:not(.on), -.row.sel .star:not(.on) { opacity: .5; } -.star.on { opacity: 1; color: var(--main-color, var(--orca-accent, #009688)); } -.star:hover { background: rgba(127,127,127,.18); } +.pin svg { display: block; } +.row:hover .pin:not(.on), +.row.sel .pin:not(.on) { opacity: .5; } +.pin.on { opacity: 1; color: var(--main-color, var(--orca-accent, #009688)); } +.pin:hover { background: rgba(127,127,127,.18); } .dial-empty { min-height: 64px; padding: 18px 10px; diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index 92916eb538..f6e124c118 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -728,9 +728,18 @@ nlohmann::json ActionRegistry::snapshot() // why: favourites is the ORDERED pin list - it must come from favourite_actions // as stored, not be re-derived from the frecency-sorted actions (that would - // reorder the favourites bar). The page (js) filters out ids with no live action itself. - // Cap on read so the bar cannot exceed the quick-launch slots (kFavLimit). - nlohmann::json favourites(favourite_ids()); + // reorder the favourites bar). Drop pins with no live action (an option hidden by the + // current mode, an unloaded plugin, a gone plate/project) and persist the pruned list, so + // invisible pins can't silently fill the quick-launch cap. Order is preserved. + std::vector<std::string> favs = favourite_ids(); + std::vector<std::string> live_favs; + live_favs.reserve(favs.size()); + for (const auto& id : favs) + if (m_actions.count(id)) + live_favs.push_back(id); + if (live_favs.size() != favs.size()) + write_section("favourite_actions", nlohmann::json(live_favs)); + nlohmann::json favourites(live_favs); // Recent = the last-N launched actions by recency (only actions with a run history). constexpr size_t kRecentLimit = 5; diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index b199d0b5ae..fbc446c5a0 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -127,7 +127,7 @@ void SpeedDialWebDialog::handle_web_command(const nlohmann::json& payload) send_actions(); } else if (command == "toggle_favourite") { // set_favourite() refuses once the bar hits kFavLimit; tell the page so it can undo the - // star and show a "favourites are full" hint instead of silently losing the pin. + // pin and show a "favourites are full" hint instead of silently losing the favourite. const std::string fav_id = payload.value("id", ""); const bool ok = wxGetApp().action_registry().set_favourite(fav_id, payload.value("fav", false)); if (!ok) From b4beae4be35e83314d01b8bee417d25b55b8615a Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Thu, 10 Sep 2026 12:47:43 +0800 Subject: [PATCH 10/76] Fixed potential UB --- src/slic3r/GUI/ActionRegistry.cpp | 73 +++++++++++++----------- tests/slic3rutils/test_action_source.cpp | 10 ++++ 2 files changed, 49 insertions(+), 34 deletions(-) diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index f6e124c118..370d808142 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -128,11 +128,11 @@ std::unique_ptr<AppAction> make_action(const std::string& plugin_key, const std: // ---- built-in command actions (the speed dial "commands" section) ------ -constexpr const char* kCommandPrefix = "orca_command"; -constexpr const char* kOrcaSourceKey = "orca"; -constexpr const char* kOrcaSourceName = "OrcaSlicer"; -constexpr const char* kSettingPrefix = "orca_setting"; -constexpr const char* kPlateGotoPrefix = "orca_plate_goto"; +constexpr const char* kCommandPrefix = "orca_command"; +constexpr const char* kOrcaSourceKey = "orca"; +constexpr const char* kOrcaSourceName = "OrcaSlicer"; +constexpr const char* kSettingPrefix = "orca_setting"; +constexpr const char* kPlateGotoPrefix = "orca_plate_goto"; constexpr const char* kRecentProjectPrefix = "orca_recent_project"; // Display context for a setting action's eyebrow, e.g. the "Process" in "Process : Quality : Layers". @@ -142,10 +142,10 @@ std::string setting_type_context(Preset::Type type) switch (type) { case Preset::TYPE_FILAMENT: case Preset::TYPE_SLA_MATERIAL: return _u8L("Filament"); - case Preset::TYPE_PRINTER: return _u8L("Printer"); + case Preset::TYPE_PRINTER: return _u8L("Printer"); case Preset::TYPE_PRINT: case Preset::TYPE_SLA_PRINT: - default: return _u8L("Process"); + default: return _u8L("Process"); } } @@ -155,15 +155,19 @@ std::string setting_type_context(Preset::Type type) // the generic registry run() bumps stats so a jump shows up in "recents" like any other action. struct SettingAction : AppAction { - std::string opt_key; + std::string opt_key; Preset::Type type; - std::wstring category; // localized category, forwarded to jump_to_option + std::wstring category; // localized category, forwarded to jump_to_option static std::string id_for(const std::string& opt_key, Preset::Type type) { return std::string(kSettingPrefix) + ":" + opt_key + ":" + std::to_string(int(type)); } - SettingAction(std::string opt_key_in, Preset::Type type_in, std::string title, std::string group, - std::wstring category_in, std::string source_name) + SettingAction(std::string opt_key_in, + Preset::Type type_in, + std::string title, + std::string group, + std::wstring category_in, + std::string source_name) : AppAction(AppActionId{id_for(opt_key_in, type_in)}, std::move(title), kOrcaSourceKey, std::move(source_name)) , opt_key(std::move(opt_key_in)) , type(type_in) @@ -182,15 +186,13 @@ struct SettingAction : AppAction } }; - // A built-in command action. Thin value: identity + presentation come from the NativeCommands // catalog, and run() routes back to it - the catalog is the single source of truth for its -// behaviour. source_key is the constant "orca" so a renamed title never re-keys the action -// (matches the plugin source-key contract). +// behaviour. The id is keyed by the stable catalog key (NOT the display title), so a rename or a +// UI-language switch never re-keys the action; the title is display-only. struct CommandAction : AppAction { - static std::unique_ptr<CommandAction> make(const NativeCommand& c) - { return std::unique_ptr<CommandAction>(new CommandAction(c)); } + static std::unique_ptr<CommandAction> make(const NativeCommand& c) { return std::unique_ptr<CommandAction>(new CommandAction(c)); } std::string command_key; @@ -198,7 +200,8 @@ struct CommandAction : AppAction private: explicit CommandAction(const NativeCommand& c) - : AppAction(kCommandPrefix, c.title, kOrcaSourceKey, kOrcaSourceName), command_key(c.key) + : AppAction(AppActionId{AppAction::compose_id(kCommandPrefix, c.key, kOrcaSourceKey)}, c.title, kOrcaSourceKey, kOrcaSourceName), + command_key(c.key) { this->kind = AppActionKind::Command; this->group = c.group; @@ -214,12 +217,10 @@ struct PlateAction : AppAction { int plate_index; - static std::string id_for(int index) - { return AppAction::compose_id(kPlateGotoPrefix, std::to_string(index), kOrcaSourceKey); } + static std::string id_for(int index) { return AppAction::compose_id(kPlateGotoPrefix, std::to_string(index), kOrcaSourceKey); } PlateAction(int index, std::string title, std::string source_name) - : AppAction(AppActionId{id_for(index)}, std::move(title), kOrcaSourceKey, std::move(source_name)) - , plate_index(index) + : AppAction(AppActionId{id_for(index)}, std::move(title), kOrcaSourceKey, std::move(source_name)), plate_index(index) { this->kind = AppActionKind::Command; this->group = _u8L("Plate"); @@ -239,12 +240,10 @@ struct RecentProjectAction : AppAction { std::string file_path; - static std::string id_for(const std::string& path) - { return AppAction::compose_id(kRecentProjectPrefix, path, kOrcaSourceKey); } + static std::string id_for(const std::string& path) { return AppAction::compose_id(kRecentProjectPrefix, path, kOrcaSourceKey); } RecentProjectAction(std::string path, std::string title, std::string source) - : AppAction(AppActionId{id_for(path)}, std::move(title), kOrcaSourceKey, std::move(source)) - , file_path(std::move(path)) + : AppAction(AppActionId{id_for(path)}, std::move(title), kOrcaSourceKey, std::move(source)), file_path(std::move(path)) { this->kind = AppActionKind::Command; this->group = _u8L("Recent Projects"); @@ -538,15 +537,17 @@ void ActionRegistry::materialize_setting_actions() // title = the option leaf name (last label segment); group stays empty so the source path // (above) is the single display/search breadcrumb rather than being duplicated. - auto action = std::make_unique<SettingAction>(opt.opt_key(), opt.type, boost::nowide::narrow(label_w), - std::string(), opt.category_local, boost::nowide::narrow(path)); + auto action = std::make_unique<SettingAction>(opt.opt_key(), opt.type, boost::nowide::narrow(label_w), std::string(), + opt.category_local, boost::nowide::narrow(path)); - action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); + action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); if (auto it = stats.find(id); it != stats.end() && it->is_object()) { action->count = it->value("count", 0); action->last = it->value("last", 0LL); } - m_actions.insert_or_assign(action->id(), std::shared_ptr<AppAction>(std::move(action))); + auto const action_id = action->id(); + auto const app_action = std::shared_ptr<AppAction>(std::move(action)); + m_actions.insert_or_assign(action_id, app_action); } // Drop SettingActions whose option no longer exists in the current configs (e.g. the printer @@ -600,13 +601,15 @@ void ActionRegistry::materialize_plate_actions() if (!name.empty()) title += " (" + name + ")"; - auto action = std::make_unique<PlateAction>(int(i), title, kOrcaSourceName); + auto action = std::make_unique<PlateAction>(int(i), title, kOrcaSourceName); action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); if (auto it = stats.find(id); it != stats.end() && it->is_object()) { action->count = it->value("count", 0); action->last = it->value("last", 0LL); } - m_actions.insert_or_assign(action->id(), std::shared_ptr<AppAction>(std::move(action))); + auto const action_id = action->id(); + auto const app_action = std::shared_ptr<AppAction>(std::move(action)); + m_actions.insert_or_assign(action_id, app_action); } // Drop plate actions whose index no longer exists (a plate was deleted / moved to the front). @@ -649,13 +652,15 @@ void ActionRegistry::materialize_recent_project_actions() if (title.empty()) title = path; - auto action = std::make_unique<RecentProjectAction>(path, std::move(title), path); - action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); + auto action = std::make_unique<RecentProjectAction>(path, std::move(title), path); + action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); if (auto it = stats.find(id); it != stats.end() && it->is_object()) { action->count = it->value("count", 0); action->last = it->value("last", 0LL); } - m_actions.insert_or_assign(action->id(), std::shared_ptr<AppAction>(std::move(action))); + auto const action_id = action->id(); + auto const app_action = std::shared_ptr<AppAction>(std::move(action)); + m_actions.insert_or_assign(action_id, app_action); } // Drop recent-project actions whose file no longer exists / was removed from the recents list. diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 0536925865..9b6564ea98 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -71,3 +71,13 @@ TEST_CASE("Recent-project actions are keyed by path, not title", "[speeddial][ac CHECK(AppAction::compose_id("orca_recent_project", "C:/Data/cube.3mf", "orca") == "orca_recent_project:C:/Data/cube.3mf:orca"); } + +// A built-in command is keyed by its stable catalog key (not the localized display title), so a +// rename or a UI-language switch never re-keys the action and its persisted favourite/stats survive. +TEST_CASE("Command actions are keyed by catalog key, not display title", "[speeddial][actions]") +{ + CHECK(AppAction::compose_id("orca_command", "save_project", "orca") == "orca_command:save_project:orca"); + // The second field is the stable key, so distinct commands never collide. + CHECK(AppAction::compose_id("orca_command", "save_project", "orca") != + AppAction::compose_id("orca_command", "load_project", "orca")); +} From 9fc6c45770b0885219cefdf3bc69f7738ab33150 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Thu, 10 Sep 2026 12:52:10 +0800 Subject: [PATCH 11/76] Fixes potential focus bug --- src/slic3r/GUI/MainFrame.cpp | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 4ba82fd402..db66afbd7b 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -44,6 +44,7 @@ // BBS #include "PartPlate.hpp" #include "Preferences.hpp" +#include "Widgets/Button.hpp" #include "Widgets/ProgressDialog.hpp" #include "BindDialog.hpp" #include "../Utils/MacDarkMode.hpp" @@ -107,6 +108,27 @@ enum class ERescaleTarget SettingsDialog }; +namespace { + +// Space opens the speed dial, but it is the activation key for buttons, checkboxes and other +// controls. CHAR_HOOK runs before the focused child, so only take Space when the focused window has +// no keyboard-activation meaning of its own. Canvases (GLCanvas3D) and panels are not wxControls and +// fall through to "open"; Notebook and wxWebView are wxControls that don't use Space, so allow them. +bool focus_keeps_space(wxWindow* focus) +{ + if (!focus) + return false; + if (dynamic_cast<wxTextEntryBase*>(focus)) + return true; // typing a space into a text field + if (dynamic_cast<::Button*>(focus)) + return true; // custom button: Space clicks it (it is a wxWindow, not a wxControl) + if (dynamic_cast<wxControl*>(focus) && !dynamic_cast<Notebook*>(focus) && !dynamic_cast<wxWebView*>(focus)) + return true; // stock button/checkbox/choice/list/etc. keep Space + return false; +} + +} // namespace + #ifdef __WXGTK__ // A thin transparent panel placed at a window edge to handle resize. // Works regardless of underlying content (GLCanvas3D, wxWebView, etc.) @@ -703,12 +725,12 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ return;} #endif // Orca: open the speed dial from any page with a bare Space. Only when no modifier is held (so - // editing shortcuts like Ctrl+Shift+Space in the canvas still reach it) and while no text field - // is focused, so typing a space into the search box or a parameter value isn't hijacked. + // editing shortcuts like Ctrl+Shift+Space in the canvas still reach it) and the focused window + // doesn't use Space to activate itself (buttons, checkboxes, list/choice controls, text fields), + // so a bare Space there still clicks/toggles instead of being hijacked. if (!evt.CmdDown() && !evt.ShiftDown() && !evt.AltDown() && evt.GetKeyCode() == WXK_SPACE) { - wxWindow* focus = wxWindow::FindFocus(); - if (focus && dynamic_cast<wxTextEntryBase*>(focus)) { - evt.Skip(); // typing in a text field - let the space reach it + if (focus_keeps_space(wxWindow::FindFocus())) { + evt.Skip(); // let the focused control keep Space return; } wxGetApp().open_speed_dial(); From 16d285fea6fae0db16e9d0c7f9e12cd884694a13 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Thu, 10 Sep 2026 13:00:23 +0800 Subject: [PATCH 12/76] Cleanup comments and formatting --- resources/web/dialog/SpeedDial/speeddial.js | 25 +- .../web/dialog/SpeedDial/speeddial.test.js | 122 ++-- resources/web/dialog/SpeedDial/style.css | 596 +++++++++++------- src/slic3r/GUI/ActionRegistry.cpp | 4 +- src/slic3r/GUI/ActionRegistry.hpp | 47 +- src/slic3r/GUI/MainFrame.cpp | 8 +- src/slic3r/GUI/MainFrame.hpp | 9 +- src/slic3r/GUI/NativeCommands.cpp | 28 +- src/slic3r/GUI/NativeCommands.hpp | 4 +- 9 files changed, 488 insertions(+), 355 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index b92261b351..efe99db1b8 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -1,5 +1,5 @@ // Speed Dial launcher page. Static-safe module: no DOM access at load time so a -// node vm can exercise the pure helpers (filterActions / actionLabel / nextSel / commandList). +// node vm can exercise the pure helpers (searchActions / filterTabs / actionLabel / nextSel / commandList). // ---- state (populated by the C++ bridge via window.HandleStudio) ---- var ACTIONS = []; // [{id,title,source,group,input,shortcut}], already frecency-sorted by C++ @@ -17,10 +17,10 @@ var matchIndex = {}; // a bottom spacer fills the rest of the list so the scrollbar reflects the full match count and // "scroll past the last rendered row" reveals the next window. var K_ROWS = 50; -var ROW_H = 44; +var ROW_H = 44; var renderEnd = 0; -var builtKey = ""; // phase|query|listLen - when it changes, rows are rebuilt from the first window -var spacerEl = null; // the trailing height spacer, always the last child of listEl +var builtKey = ""; // phase|query|listLen - when it changes, rows are rebuilt from the first window +var spacerEl = null; // the trailing height spacer, always the last child of listEl // search-cache: the normalized (folded+lowercased) needle for the current query pass. var searchNeedle = ""; @@ -31,8 +31,8 @@ var searchNeedle = ""; var phase = "commands"; var tabOptions = []; // [{id,title}] - notebook pages, fetched on entering the tab phase -// why: fuzzy matcher (FoldChar/Norm/FuzzyRanges) lives in shared ../../js/fuzzy-search.js, loaded before -// this script - it is shared with the Plugins dialog. Speed dial search is always case-insensitive. +// why: the fuzzy matcher (NormText/FuzzyRangesNorm/WholeWordRangesNorm) lives in shared +// ../../js/fuzzy-search.js, loaded before this script. Search is always case-insensitive. // element handles, assigned in OnInit (kept null so load-time touches no DOM) var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, countEl = null, headEl = null; @@ -71,7 +71,7 @@ function fieldMatchScore(norm, wwRe) { if (wwRe) { var m = wwRe.exec(norm || ""); if (m) - return {score: 1000 - m.index * 10, ranges: [[m.index, m.index + m[0].length]], contiguous: true}; + return { score: 1000 - m.index * 10, ranges: [[m.index, m.index + m[0].length]], contiguous: true }; } var r = FuzzyRangesNorm(norm || "", searchNeedle); if (!r) return null; @@ -81,7 +81,7 @@ function fieldMatchScore(norm, wwRe) { gaps += r[i][0] - r[i - 1][1]; len += r[i][1] - r[i][0]; } - return {score: 1000 - r[0][0] * 10 - gaps * 10, ranges: r, contiguous: r.length === 1 && len === searchNeedle.length}; + return { score: 1000 - r[0][0] * 10 - gaps * 10, ranges: r, contiguous: r.length === 1 && len === searchNeedle.length }; } // Combine the per-field match scores into one comparable value. Ranking tiers, strongest first: @@ -177,9 +177,8 @@ function resultCountText(total, shown, query) { return (query || "").trim() ? "Showing " + shown + " of " + total + " actions" : total + " actions"; } -// Display label for a notebook tab. Notebook's ButtonsListCtrl labels every non-empty page as -// " <text>" (a leading space), so trim it; pages added with an empty title (Home, MainFrame adds -// TAB_ID_HOME with "") fall back to the title-cased id ("home" -> "Home"). +// Display label for a notebook tab. Trim any stray whitespace; pages added with an empty title +// (Home, MainFrame adds TAB_ID_HOME with "") fall back to the title-cased id ("home" -> "Home"). function tabTitle(t) { var title = (t && t.title) ? String(t.title).trim() : ""; return title || prettySource((t && t.id) || ""); @@ -537,7 +536,7 @@ function showFavMenu(x, y, id) { } // Swap a favourite with its visible neighbour (dir -1/+1) and persist the new order. Swapping -// by id inside FAVS (not the visible slice) keeps any hidden pins (no live action) in place. +// by id inside FAVS (not the visible slice) keeps the persisted order stable. function moveFav(id, dir) { var favs = currentVisibleFavs(); var vi = favs.indexOf(id); @@ -990,7 +989,7 @@ function OnInit() { // commands phase, where the pinned bar is shown. if (phase === "commands" && e.altKey && !e.ctrlKey && !e.metaKey) { var slotIdx = favIndexForDigit(e.key); - var favIds = currentVisibleFavs(); + var favIds = currentVisibleFavs(); if (slotIdx >= 0 && slotIdx < favIds.length) { e.preventDefault(); var fav = byId(favIds[slotIdx]); diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 6a0a42bc2e..5b51daffbe 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -13,13 +13,13 @@ vm.runInContext(fs.readFileSync(__dirname + "/speeddial.js", "utf8"), ctx); assert.equal(typeof ctx.parseId, "undefined", "opaque action ids must never be parsed"); const duplicateActions = [ - { id: "0123456789abcdef", title: "Repair", source: "Mesh Tools" }, - { id: "fedcba9876543210", title: "Repair", source: "Mesh Tools" } + { id: "0123456789abcdef", title: "Repair", source: "Mesh Tools" }, + { id: "fedcba9876543210", title: "Repair", source: "Mesh Tools" } ]; assert.equal( - ctx.actionLabel(duplicateActions[0], duplicateActions), - "Repair from Mesh Tools (0123456789abcdef)", - "duplicate labels should use the opaque id without interpreting its contents" + ctx.actionLabel(duplicateActions[0], duplicateActions), + "Repair from Mesh Tools (0123456789abcdef)", + "duplicate labels should use the opaque id without interpreting its contents" ); assert.equal(ctx.shouldRenderActionList(""), false, "an empty search keeps recent/empty list"); @@ -28,118 +28,118 @@ assert.equal(ctx.shouldRenderActionList("r"), true, "typing starts rendering mat // commandList: an empty query shows recents; a typed query filters all actions. assert.deepEqual(ctx.commandList(duplicateActions, [], ""), [], - "empty query + no recents shows nothing"); + "empty query + no recents shows nothing"); assert.deepEqual(ctx.commandList(duplicateActions, [duplicateActions[0]], ""), - [duplicateActions[0]], - "empty query shows the recent list"); + [duplicateActions[0]], + "empty query shows the recent list"); assert.deepEqual(ctx.commandList(duplicateActions, [], "rep"), duplicateActions, - "a typed query filters actions (both identical titles match) instead of showing recents"); + "a typed query filters actions (both identical titles match) instead of showing recents"); // filterTabs (tab phase): an empty query keeps the whole list; a typed query filters by title/id. const tabOptions = [ - { id: "home", title: "Home" }, - { id: "prepare", title: "Prepare" }, - { id: "monitor", title: "Device" }, - { id: "project", title: "Project" } + { id: "home", title: "Home" }, + { id: "prepare", title: "Prepare" }, + { id: "monitor", title: "Device" }, + { id: "project", title: "Project" } ]; assert.deepEqual(ctx.filterTabs(tabOptions, ""), tabOptions, - "empty query keeps the whole tab list"); + "empty query keeps the whole tab list"); assert.equal(ctx.filterTabs(tabOptions, "prep").length, 1, - "a typed query filters tabs by title"); + "a typed query filters tabs by title"); assert.equal(ctx.filterTabs(tabOptions, "Device").length, 1, - "a typed query matches a tab title"); + "a typed query matches a tab title"); assert.deepEqual(ctx.filterTabs(tabOptions, "zzz"), [], - "a typed query with no match returns an empty list"); + "a typed query with no match returns an empty list"); // tabTitle: pages added with an empty title (e.g. MainFrame's Home tab) fall back to the id. assert.equal(ctx.tabTitle({ id: "home", title: "" }), "Home", - "an empty title falls back to the title-cased id"); + "an empty title falls back to the title-cased id"); assert.equal(ctx.tabTitle({ id: "home" }), "Home", - "a missing title falls back to the title-cased id"); + "a missing title falls back to the title-cased id"); assert.equal(ctx.tabTitle({ id: "prepare", title: "Prepare" }), "Prepare", - "a populated title is kept as-is"); + "a populated title is kept as-is"); assert.equal(ctx.tabTitle({ id: "prepare", title: " Prepare" }), "Prepare", - "a leading space from the Notebook button label is trimmed so the label shows cleanly"); + "a stray leading space in a tab title is trimmed so the label shows cleanly"); assert.equal(ctx.filterTabs([{ id: "home", title: "" }], "home").length, 1, - "an untitled tab still matches a typed query via the id/title fallback"); + "an untitled tab still matches a typed query via the id/title fallback"); assert.equal(ctx.filterTabs([{ id: "prepare", title: " Prepare" }], "prepare").length, 1, - "a leading-space tab title still matches a typed query"); + "a leading-space tab title still matches a typed query"); // The main phase is ONE pool: commands/plugins/settings are all actions, ranked by relevance // (no group headers, no actions-vs-settings discrimination). const pool = [ - { id: "c1", title: "Layer Height", source: "Quality", group: "Quality : Layers", input: "" }, - { id: "s1", title: "Go to layer (percent)", source: "OrcaSlicer", group: "Commands", input: "percent" }, - { id: "c2", title: "Top Surface Layers", source: "Quality", group: "Quality : Layers", input: "" } + { id: "c1", title: "Layer Height", source: "Quality", group: "Quality : Layers", input: "" }, + { id: "s1", title: "Go to layer (percent)", source: "OrcaSlicer", group: "Commands", input: "percent" }, + { id: "c2", title: "Top Surface Layers", source: "Quality", group: "Quality : Layers", input: "" } ]; assert.deepEqual(ctx.searchActions(pool, ""), pool, "an empty query returns the pool unchanged"); assert.equal(ctx.searchActions(pool, "zzz").length, 0, "a query with no match returns nothing"); // "layer" matches multiple; the exact-titled action ranks above the loosely-matching command. assert.equal(ctx.searchActions(pool, "layer")[0].id, "c1", - "a title-exact match ranks above a partial match"); + "a title-exact match ranks above a partial match"); assert.equal(ctx.searchActions(pool, "layer").length >= 2, true, - "both a setting and a command match the same query in the same list"); + "both a setting and a command match the same query in the same list"); assert.equal(ctx.searchActions(pool, "surface")[0].id, "c2", - "a later-but-precise match still ranks by relevance, not by pool type"); + "a later-but-precise match still ranks by relevance, not by pool type"); // A perfect match (the needle as one contiguous run) outranks a fuzzy match of the same field - and a // contiguous GROUP/header hit ("Recent Projects") beats a scattered fuzzy TITLE hit ("Retraction Length"), // which is what the old flat title-bonus ranking got backwards. const perfectPool = [ - { id: "set", title: "Retraction Length", source: "Process : Quality : Retraction", group: "", input: "" }, - { id: "recent", title: "myproject.3mf", source: "/home/me/projects/myproject.3mf", group: "Recent Projects", input: "" } + { id: "set", title: "Retraction Length", source: "Process : Quality : Retraction", group: "", input: "" }, + { id: "recent", title: "myproject.3mf", source: "/home/me/projects/myproject.3mf", group: "Recent Projects", input: "" } ]; assert.equal(ctx.searchActions(perfectPool, "recent")[0].id, "recent", - "a contiguous header/group match ranks above a scattered fuzzy title match"); + "a contiguous header/group match ranks above a scattered fuzzy title match"); // Within a perfect match, the row-name (title) outranks the header (group): the action whose TITLE // contains the needle perfectly beats the action whose GROUP does, both being contiguous matches. const titleFirstPool = [ - { id: "grp", title: "Delete Selected", source: "OrcaSlicer", group: "Object", input: "" }, - { id: "t", title: "Object Preview", source: "OrcaSlicer", group: "View", input: "" } + { id: "grp", title: "Delete Selected", source: "OrcaSlicer", group: "Object", input: "" }, + { id: "t", title: "Object Preview", source: "OrcaSlicer", group: "View", input: "" } ]; assert.equal(ctx.searchActions(titleFirstPool, "object")[0].id, "t", - "a perfect title match ranks above an equally-perfect group match"); + "a perfect title match ranks above an equally-perfect group match"); // Highlighting: the needle is matched as a whole word / most-contiguous run, so "orient" lights up the // whole word in "Auto-Orient" instead of the stray "o" of "Auto" plus "rient" (greedy-leftmost). const orientPool = [ - { id: "ao", title: "Auto-Orient", source: "OrcaSlicer", group: "Object", input: "" } + { id: "ao", title: "Auto-Orient", source: "OrcaSlicer", group: "Object", input: "" } ]; ctx.searchActions(orientPool, "orient"); assert.deepEqual(ctx.matchIndex.ao.title, [[5, 11]], - "a whole-word match highlights the full word, not a scattered fuzzy pick"); + "a whole-word match highlights the full word, not a scattered fuzzy pick"); // commandList (the main-phase list) delegates to the ranked search for a typed query and returns // the mixed recents (no discrimination) for an empty query. const mixed = [ - { id: "cmd", title: "Slice", source: "OrcaSlicer", group: "Commands", input: "" }, - { id: "set", title: "Sparse Infill Density", source: "Quality", group: "Quality", input: "" } + { id: "cmd", title: "Slice", source: "OrcaSlicer", group: "Commands", input: "" }, + { id: "set", title: "Sparse Infill Density", source: "Quality", group: "Quality", input: "" } ]; assert.equal(ctx.commandList(mixed, [], "sli")[0].id, "cmd", - "a typed query keeps the relevance-ranked action list (best match first)"); + "a typed query keeps the relevance-ranked action list (best match first)"); assert.deepEqual(ctx.commandList(mixed, mixed.slice(0, 1), "").map(function (a) { return a.id; }), ["cmd"], - "an empty query shows the mixed recents list verbatim"); + "an empty query shows the mixed recents list verbatim"); // selectedActionId: resolves the active list (recents for an empty query, filtered list otherwise). assert.equal( - ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], ""), [], ""), - null, - "Enter with an empty query and no recents must not resolve to an action the list never showed" + ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], ""), [], ""), + null, + "Enter with an empty query and no recents must not resolve to an action the list never showed" ); assert.equal( - ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], "rep"), [], "rep"), - "0123456789abcdef", - "a typed query resolves the list selection" + ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], "rep"), [], "rep"), + "0123456789abcdef", + "a typed query resolves the list selection" ); assert.equal( - ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [duplicateActions[0]], ""), [], ""), - "0123456789abcdef", - "Enter with an empty query resolves the recent entry" + ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [duplicateActions[0]], ""), [], ""), + "0123456789abcdef", + "Enter with an empty query resolves the recent entry" ); assert.equal( - ctx.selectedActionId({ zone: "fav", i: 0 }, duplicateActions, ["fedcba9876543210"], ""), - "fedcba9876543210", - "favourites stay runnable with an empty query - the fav bar is always visible" + ctx.selectedActionId({ zone: "fav", i: 0 }, duplicateActions, ["fedcba9876543210"], ""), + "fedcba9876543210", + "favourites stay runnable with an empty query - the fav bar is always visible" ); // Fav quick-launch slots: digit 1..9 -> index 0..8, digit 0 -> index 9 (the 10th), else -1. @@ -160,21 +160,21 @@ assert.equal(ctx.K_FAV_LIMIT, 10, "the slot count matches the quick-launch cap") // nextSel: arrow-nav wrapping. Down wraps at the list bottom to the first row; Up wraps at the // list top to the last row ONLY when there's no fav bar above (else it goes to the fav bar). assert.deepEqual(ctx.nextSel({ zone: "list", i: 2 }, "ArrowDown", 3, 0), { zone: "list", i: 0 }, - "ArrowDown at the last row wraps to the first row"); + "ArrowDown at the last row wraps to the first row"); assert.deepEqual(ctx.nextSel({ zone: "list", i: 1 }, "ArrowDown", 3, 0), { zone: "list", i: 2 }, - "ArrowDown in the middle advances by one"); + "ArrowDown in the middle advances by one"); assert.deepEqual(ctx.nextSel({ zone: "list", i: 0 }, "ArrowUp", 3, 0), { zone: "list", i: 2 }, - "ArrowUp at the first row with no fav bar wraps to the last row"); + "ArrowUp at the first row with no fav bar wraps to the last row"); assert.deepEqual(ctx.nextSel({ zone: "list", i: 0 }, "ArrowUp", 3, 2), { zone: "fav", i: 0 }, - "ArrowUp at the first row with a fav bar goes to the fav bar (unchanged)"); + "ArrowUp at the first row with a fav bar goes to the fav bar (unchanged)"); assert.deepEqual(ctx.nextSel({ zone: "list", i: 2 }, "ArrowUp", 3, 0), { zone: "list", i: 1 }, - "ArrowUp in the middle moves up by one"); + "ArrowUp in the middle moves up by one"); assert.deepEqual(ctx.nextSel({ zone: "fav", i: 1 }, "ArrowDown", 3, 2), { zone: "list", i: 0 }, - "ArrowDown from the fav bar lands on the first list row"); + "ArrowDown from the fav bar lands on the first list row"); assert.deepEqual(ctx.nextSel({ zone: "list", i: 0 }, "ArrowDown", 1, 0), { zone: "list", i: 0 }, - "a single-row list never wraps off the end"); + "a single-row list never wraps off the end"); assert.deepEqual(ctx.nextSel({ zone: "list", i: 0 }, "ArrowUp", 1, 0), { zone: "list", i: 0 }, - "ArrowUp on the only row stays put"); + "ArrowUp on the only row stays put"); // Windowed list reveal: how many rows must be materialized to cover `fromIndex` plus `size` more, // clamped to the total. Drives the "render the next window on scroll / arrow-nav" append. diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index f7d045bc9a..07f0c992eb 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -1,285 +1,423 @@ -* { box-sizing: border-box; } -html, body { margin: 0; } -body { - font-family: var(--orca-font, "Segoe UI", sans-serif); - font-size: 13px; - color: var(--text, var(--orca-fg, #1b1c1e)); - background: var(--bg, var(--orca-bg, #fff)); - overflow: hidden; - user-select: none; +* { + box-sizing: border-box; } + +html, +body { + margin: 0; +} + +body { + font-family: var(--orca-font, "Segoe UI", sans-serif); + font-size: 13px; + color: var(--text, var(--orca-fg, #1b1c1e)); + background: var(--bg, var(--orca-bg, #fff)); + overflow: hidden; + user-select: none; +} + .launcher { - display: flex; - flex-direction: column; - background: var(--panel, var(--orca-bg, #fff)); - border: 1px solid var(--border, var(--orca-border, #ddd)); - overflow: hidden; - /* why: no height cap here - the launcher reports its true natural height to C++, which + display: flex; + flex-direction: column; + background: var(--panel, var(--orca-bg, #fff)); + border: 1px solid var(--border, var(--orca-border, #ddd)); + overflow: hidden; + /* why: no height cap here - the launcher reports its true natural height to C++, which sizes the popup to match (HTML is source of truth). The list's own max-height is what bounds growth; capping the launcher would make the measurement circular. */ } + .fav-bar { - flex: 0 0 auto; - display: flex; - align-items: center; - gap: 8px; - padding: 9px 10px; - border-bottom: 1px solid var(--border, var(--orca-border, #ddd)); - overflow-x: auto; /* scroll horizontally once favourites overflow the row */ - scrollbar-width: thin; - /* why: keep scrollIntoView (arrow-nav) from scrolling the first/last tile flush to the edge, + flex: 0 0 auto; + display: flex; + align-items: center; + gap: 8px; + padding: 9px 10px; + border-bottom: 1px solid var(--border, var(--orca-border, #ddd)); + overflow-x: auto; + /* scroll horizontally once favourites overflow the row */ + scrollbar-width: thin; + /* why: keep scrollIntoView (arrow-nav) from scrolling the first/last tile flush to the edge, which would clip its selected outline. Matches the 10px horizontal padding. */ - scroll-padding-inline: 10px; + scroll-padding-inline: 10px; } -.fav-bar[hidden] { display: none; } + +.fav-bar[hidden] { + display: none; +} + /* Name of the selected favourite, above the bar; left-aligned to the tiles' 10px inset. */ -.fav-eyebrow { flex: 0 0 auto; padding: 8px 10px 0; } +.fav-eyebrow { + flex: 0 0 auto; + padding: 8px 10px 0; +} + .fav-tile { - flex: 0 0 auto; /* keep tiles full-size; don't shrink to fit - scroll instead */ - width: 30px; - height: 30px; - border: 0; - border-radius: 8px; - cursor: pointer; - color: hsl(var(--h) var(--speed-tile-text-s, 72%) var(--speed-tile-text-l, 38%)); - font-weight: 700; - /* why: mirror .tile centering - icons/placeholder are 18px glyphs, and a bare <button> inherits + flex: 0 0 auto; + /* keep tiles full-size; don't shrink to fit - scroll instead */ + width: 30px; + height: 30px; + border: 0; + border-radius: 8px; + cursor: pointer; + color: hsl(var(--h) var(--speed-tile-text-s, 72%) var(--speed-tile-text-l, 38%)); + font-weight: 700; + /* why: mirror .tile centering - icons/placeholder are 18px glyphs, and a bare <button> inherits 13px + UA padding, which would clip them. inline-flex + pad:0 + overflow:hidden fits them. */ - font-size: 12px; - padding: 0; - display: inline-flex; - align-items: center; - justify-content: center; - overflow: hidden; - background: var(--speed-tile-bg, #f0f0f0); - border: 1px solid var(--speed-tile-border, #d8d8d8); + font-size: 12px; + padding: 0; + display: inline-flex; + align-items: center; + justify-content: center; + overflow: hidden; + background: var(--speed-tile-bg, #f0f0f0); + border: 1px solid var(--speed-tile-border, #d8d8d8); } -.fav-tile.sel { outline: 2px solid var(--main-color, var(--orca-accent, #009688)); outline-offset: 2px; } + +.fav-tile.sel { + outline: 2px solid var(--main-color, var(--orca-accent, #009688)); + outline-offset: 2px; +} + /* Hover-revealed remove button in the tile's corner; sits inside the tile bounds so overflow:hidden clips it. */ -.fav-tile { position: relative; } -.fav-unpin { - position: absolute; - top: 1px; - right: 1px; - width: 13px; - height: 13px; - padding: 0; - border: 0; - border-radius: 50%; - display: inline-flex; - align-items: center; - justify-content: center; - color: var(--muted, var(--orca-muted, #6b7280)); - background: rgba(127,127,127,.35); - cursor: pointer; - opacity: 0; +.fav-tile { + position: relative; } + +.fav-unpin { + position: absolute; + top: 1px; + right: 1px; + width: 13px; + height: 13px; + padding: 0; + border: 0; + border-radius: 50%; + display: inline-flex; + align-items: center; + justify-content: center; + color: var(--muted, var(--orca-muted, #6b7280)); + background: rgba(127, 127, 127, .35); + cursor: pointer; + opacity: 0; +} + .fav-tile:hover .fav-unpin, -.fav-tile.sel .fav-unpin { opacity: 1; } -.fav-unpin:hover { background: rgba(127,127,127,.6); } +.fav-tile.sel .fav-unpin { + opacity: 1; +} + +.fav-unpin:hover { + background: rgba(127, 127, 127, .6); +} + /* Numbered quick-launch slot (Alt/Option+digit), top-left corner of the fav tile. */ .fav-slot { - position: absolute; - top: 1px; - left: 1px; - min-width: 11px; - height: 11px; - padding: 0 2px; - border-radius: 3px; - font-size: 8px; - font-weight: 600; - line-height: 11px; - text-align: center; - color: var(--muted, var(--orca-muted, #6b7280)); - background: rgba(127,127,127,.22); + position: absolute; + top: 1px; + left: 1px; + min-width: 11px; + height: 11px; + padding: 0 2px; + border-radius: 3px; + font-size: 8px; + font-weight: 600; + line-height: 11px; + text-align: center; + color: var(--muted, var(--orca-muted, #6b7280)); + background: rgba(127, 127, 127, .22); } + /* Transient flash banner pinned to the top of the launcher (e.g. "favourites are full"). */ .dial-flash { - flex: 0 0 auto; - padding: 4px 10px; - font-size: 11px; - color: var(--plugin-status-warn, #b45309); - background: var(--plugin-status-warn-bg, rgba(255,193,7,.22)); - animation: dial-flash-fade 2.5s ease forwards; + flex: 0 0 auto; + padding: 4px 10px; + font-size: 11px; + color: var(--plugin-status-warn, #b45309); + background: var(--plugin-status-warn-bg, rgba(255, 193, 7, .22)); + animation: dial-flash-fade 2.5s ease forwards; } -@keyframes dial-flash-fade { 0% { opacity: 0; } 10% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; } } + +@keyframes dial-flash-fade { + 0% { + opacity: 0; + } + + 10% { + opacity: 1; + } + + 80% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + .ctx-menu { - position: fixed; - z-index: 10; - min-width: 120px; - padding: 4px; - background: var(--panel, var(--orca-bg, #fff)); - border: 1px solid var(--border, var(--orca-border, #ddd)); - border-radius: 7px; - box-shadow: 0 4px 16px rgba(0,0,0,.18); + position: fixed; + z-index: 10; + min-width: 120px; + padding: 4px; + background: var(--panel, var(--orca-bg, #fff)); + border: 1px solid var(--border, var(--orca-border, #ddd)); + border-radius: 7px; + box-shadow: 0 4px 16px rgba(0, 0, 0, .18); } -.ctx-menu[hidden] { display: none; } + +.ctx-menu[hidden] { + display: none; +} + .ctx-item { - display: block; - width: 100%; - padding: 6px 10px; - border: 0; - border-radius: 5px; - background: transparent; - color: var(--text, var(--orca-fg, #1b1c1e)); - font: inherit; - text-align: left; - cursor: pointer; + display: block; + width: 100%; + padding: 6px 10px; + border: 0; + border-radius: 5px; + background: transparent; + color: var(--text, var(--orca-fg, #1b1c1e)); + font: inherit; + text-align: left; + cursor: pointer; } -.ctx-item:hover { background: var(--row-hover, rgba(127,127,127,.16)); } -.ctx-item:disabled { opacity: .4; cursor: default; } -.ctx-item:disabled:hover { background: transparent; } -.dial-head { flex: 0 0 auto; padding: 8px; } + +.ctx-item:hover { + background: var(--row-hover, rgba(127, 127, 127, .16)); +} + +.ctx-item:disabled { + opacity: .4; + cursor: default; +} + +.ctx-item:disabled:hover { + background: transparent; +} + +.dial-head { + flex: 0 0 auto; + padding: 8px; +} + .plugin-search { - display: flex; - align-items: center; - gap: 4px; - height: 30px; - padding: 0 8px; - background: var(--panel, var(--orca-bg, #fff)); - border: 1px solid var(--border, var(--orca-border, #ddd)); - border-radius: 7px; + display: flex; + align-items: center; + gap: 4px; + height: 30px; + padding: 0 8px; + background: var(--panel, var(--orca-bg, #fff)); + border: 1px solid var(--border, var(--orca-border, #ddd)); + border-radius: 7px; } + .plugin-search:focus-within { - border-color: var(--main-color, var(--orca-accent, #009688)); - box-shadow: 0 0 0 2px rgba(0,150,136,.25); + border-color: var(--main-color, var(--orca-accent, #009688)); + box-shadow: 0 0 0 2px rgba(0, 150, 136, .25); } -.plugin-search-icon { display: inline-flex; color: var(--muted, var(--orca-muted, #6b7280)); } + +.plugin-search-icon { + display: inline-flex; + color: var(--muted, var(--orca-muted, #6b7280)); +} + .plugin-search-input { - flex: 1; - min-width: 0; - background: transparent; - border: 0; - outline: 0; - color: var(--text, var(--orca-fg, #1b1c1e)); - font: inherit; + flex: 1; + min-width: 0; + background: transparent; + border: 0; + outline: 0; + color: var(--text, var(--orca-fg, #1b1c1e)); + font: inherit; } + .plugin-search-clear { - display: inline-flex; - align-items: center; - justify-content: center; - width: 12px; - height: 12px; - padding: 0; - border: 0; - border-radius: 50%; - color: var(--muted, var(--orca-muted, #6b7280)); - cursor: pointer; - background: rgba(127,127,127,.20); + display: inline-flex; + align-items: center; + justify-content: center; + width: 12px; + height: 12px; + padding: 0; + border: 0; + border-radius: 50%; + color: var(--muted, var(--orca-muted, #6b7280)); + cursor: pointer; + background: rgba(127, 127, 127, .20); } -.plugin-search-clear[hidden] { display: none; } + +.plugin-search-clear[hidden] { + display: none; +} + .dial-count { - padding: 4px 4px 0; - text-align: left; - font-size: 11px; - color: var(--muted, var(--orca-muted, #6b7280)); + padding: 4px 4px 0; + text-align: left; + font-size: 11px; + color: var(--muted, var(--orca-muted, #6b7280)); } -.dial-count[hidden] { display: none; } -/* Section header inside the list (e.g. the "Recent" row above the recent entries). */ -.dial-group { - padding: 8px 8px 2px; - font-size: 10px; - font-weight: 600; - text-transform: uppercase; - letter-spacing: .06em; - color: var(--muted, var(--orca-muted, #6b7280)); + +.dial-count[hidden] { + display: none; } + .dial-list { - flex: 0 1 auto; - min-height: 0; - /* ADJUST HEIGHT HERE. The popup auto-resizes to the content (HTML is the source of truth), so + flex: 0 1 auto; + min-height: 0; + /* ADJUST HEIGHT HERE. The popup auto-resizes to the content (HTML is the source of truth), so this list cap drives the whole window height: --rows full rows + a ~30% peek of the next row as a "scroll for more" affordance. Bump --rows to show more rows; change 0.3 for a bigger/ smaller peek. --row-h MUST match .row min-height (44px). */ - --row-h: 44px; - --rows: 5; - max-height: calc(var(--rows) * var(--row-h) + 0.3 * var(--row-h) + 4px); - overflow-y: auto; - padding: 4px 4px 6px; - scrollbar-width: thin; + --row-h: 44px; + --rows: 5; + max-height: calc(var(--rows) * var(--row-h) + 0.3 * var(--row-h) + 4px); + overflow-y: auto; + padding: 4px 4px 6px; + scrollbar-width: thin; } -.dial-list.empty { overflow-y: hidden; } + +.dial-list.empty { + overflow-y: hidden; +} + /* Bottom spacer for the windowed command list: fills the un-rendered tail so the scrollbar reflects the full match count, while only a near-viewport window of rows exists in the DOM. */ -.dial-spacer-bottom { flex: 0 0 auto; } +.dial-spacer-bottom { + flex: 0 0 auto; +} + .row { - display: flex; - align-items: center; - gap: 10px; - min-height: 44px; - padding: 6px 8px; - border-radius: 7px; - cursor: pointer; + display: flex; + align-items: center; + gap: 10px; + min-height: 44px; + padding: 6px 8px; + border-radius: 7px; + cursor: pointer; } -.row:hover { background: var(--row-hover, rgba(127,127,127,.16)); } -.row.sel { background: var(--row-selected, rgba(0,150,136,.18)); } + +.row:hover { + background: var(--row-hover, rgba(127, 127, 127, .16)); +} + +.row.sel { + background: var(--row-selected, rgba(0, 150, 136, .18)); +} + .tile { - flex: 0 0 auto; - width: 26px; - height: 26px; - border-radius: 6px; - color: hsl(var(--h) var(--speed-tile-text-s, 72%) var(--speed-tile-text-l, 38%)); - font-weight: 700; - font-size: 12px; - display: inline-flex; - align-items: center; - justify-content: center; - background: var(--speed-tile-bg, #f0f0f0); - border: 1px solid var(--speed-tile-border, #d8d8d8); + flex: 0 0 auto; + width: 26px; + height: 26px; + border-radius: 6px; + color: hsl(var(--h) var(--speed-tile-text-s, 72%) var(--speed-tile-text-l, 38%)); + font-weight: 700; + font-size: 12px; + display: inline-flex; + align-items: center; + justify-content: center; + background: var(--speed-tile-bg, #f0f0f0); + border: 1px solid var(--speed-tile-border, #d8d8d8); } -.row-left { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; } + +.row-left { + flex: 1 1 auto; + min-width: 0; + display: flex; + flex-direction: column; +} + .row-eyebrow { - font-size: 10px; - line-height: 1.3; - color: var(--muted, var(--orca-muted, #6b7280)); - opacity: .85; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; + font-size: 10px; + line-height: 1.3; + color: var(--muted, var(--orca-muted, #6b7280)); + opacity: .85; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } -.row-line { display: flex; align-items: center; gap: 7px; min-width: 0; } -.row-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.row-name mark, .row-eyebrow mark { background: var(--plugin-status-warn-bg); color: var(--plugin-status-warn); border-radius: 2px; } -.row-sc { flex: 0 0 auto; display: inline-flex; gap: 3px; } + +.row-line { + display: flex; + align-items: center; + gap: 7px; + min-width: 0; +} + +.row-name { + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.row-name mark, +.row-eyebrow mark { + background: var(--plugin-status-warn-bg); + color: var(--plugin-status-warn); + border-radius: 2px; +} + +.row-sc { + flex: 0 0 auto; + display: inline-flex; + gap: 3px; +} + kbd { - display: inline-flex; - align-items: center; - justify-content: center; - min-width: 18px; - height: 18px; - padding: 0 5px; - font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; - font-size: 11px; - color: var(--muted, var(--orca-muted, #6b7280)); - background: rgba(127,127,127,.12); - border: 1px solid var(--border, var(--orca-border, #ddd)); - border-radius: 4px; + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 18px; + height: 18px; + padding: 0 5px; + font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; + font-size: 11px; + color: var(--muted, var(--orca-muted, #6b7280)); + background: rgba(127, 127, 127, .12); + border: 1px solid var(--border, var(--orca-border, #ddd)); + border-radius: 4px; } + .pin { - flex: 0 0 auto; - width: 24px; - height: 24px; - border: 0; - border-radius: 5px; - background: transparent; - color: var(--muted, var(--orca-muted, #6b7280)); - cursor: pointer; - display: inline-flex; - align-items: center; - justify-content: center; - opacity: 0; + flex: 0 0 auto; + width: 24px; + height: 24px; + border: 0; + border-radius: 5px; + background: transparent; + color: var(--muted, var(--orca-muted, #6b7280)); + cursor: pointer; + display: inline-flex; + align-items: center; + justify-content: center; + opacity: 0; } -.pin svg { display: block; } + +.pin svg { + display: block; +} + .row:hover .pin:not(.on), -.row.sel .pin:not(.on) { opacity: .5; } -.pin.on { opacity: 1; color: var(--main-color, var(--orca-accent, #009688)); } -.pin:hover { background: rgba(127,127,127,.18); } +.row.sel .pin:not(.on) { + opacity: .5; +} + +.pin.on { + opacity: 1; + color: var(--main-color, var(--orca-accent, #009688)); +} + +.pin:hover { + background: rgba(127, 127, 127, .18); +} + .dial-empty { - min-height: 64px; - padding: 18px 10px; - display: flex; - align-items: center; - justify-content: center; - color: var(--muted, var(--orca-muted, #6b7280)); - text-align: center; + min-height: 64px; + padding: 18px 10px; + display: flex; + align-items: center; + justify-content: center; + color: var(--muted, var(--orca-muted, #6b7280)); + text-align: center; } diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index 370d808142..050814eee3 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -200,8 +200,8 @@ struct CommandAction : AppAction private: explicit CommandAction(const NativeCommand& c) - : AppAction(AppActionId{AppAction::compose_id(kCommandPrefix, c.key, kOrcaSourceKey)}, c.title, kOrcaSourceKey, kOrcaSourceName), - command_key(c.key) + : AppAction(AppActionId{AppAction::compose_id(kCommandPrefix, c.key, kOrcaSourceKey)}, c.title, kOrcaSourceKey, kOrcaSourceName) + , command_key(c.key) { this->kind = AppActionKind::Command; this->group = c.group; diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index 678de6986d..f54b439fb8 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -19,7 +19,7 @@ namespace Slic3r { namespace GUI { // How a source's action set changed. Drives the registry's refresh handlers. enum class ActionChange { Added, Removed }; -// What kind of runnable thing an action is. Drives the palette section + dispatch. +// What kind of runnable thing an action is. Drives the run-confirm gate (plugins ask, commands don't). enum class AppActionKind { Plugin, Command }; // Result of running an AppAction, in the action layer's own vocabulary. Concrete @@ -28,8 +28,8 @@ struct AppActionRunResult { enum class Level { Success, Info, Error, Busy }; - Level level = Level::Info; - wxString message; // empty = "nothing worth showing" + Level level = Level::Info; + wxString message; // empty = "nothing worth showing" }; // Tag carrying a precomputed action id, used by the explicit-id ctor below. It exists so the @@ -64,16 +64,16 @@ struct AppAction } // seeded from AppConfig for the snapshot / sort: - bool favourite = false; - int count = 0; - long long last = 0; // epoch seconds + bool favourite = false; + int count = 0; + long long last = 0; // epoch seconds // Speed Dial presentation: Plugin keeps group empty (the UI falls back to the // source name); Command sets a section label (e.g. "Commands", "Mode"). AppActionKind kind = AppActionKind::Plugin; - std::string group; - // Second-phase input descriptor for the palette: "settings" (jump to a config option) - // or "percent" (jump to layer by a 0-100 value). Empty = run immediately on activation. + std::string group; + // Second-phase input descriptor for the palette: "percent" (jump to layer by a 0-100 + // value) or "tab" (pick a notebook tab). Empty = run immediately on activation. std::string input; virtual ~AppAction() = default; @@ -87,18 +87,17 @@ protected: // why: source_key (not the display name) carries identity, so renaming the source's // display name leaves the id - and its persisted stats/favourite - intact. AppAction(std::string_view prefix, std::string title, std::string source_key, std::string source_name) - : m_id(compose_id(prefix, title, source_key)), - m_title(std::move(title)), - m_source_key(std::move(source_key)), - m_source_name(std::move(source_name)) {} + : m_id(compose_id(prefix, title, source_key)) + , m_title(std::move(title)) + , m_source_key(std::move(source_key)) + , m_source_name(std::move(source_name)) + {} // Explicit-id ctor: for actions whose id must NOT be derived from the display title // (e.g. a setting action keyed by opt_key+type, so a rename/localization never re-keys it). AppAction(AppActionId id, std::string title, std::string source_key, std::string source_name) - : m_id(std::move(id.id)), - m_title(std::move(title)), - m_source_key(std::move(source_key)), - m_source_name(std::move(source_name)) {} + : m_id(std::move(id.id)), m_title(std::move(title)), m_source_key(std::move(source_key)), m_source_name(std::move(source_name)) + {} private: std::string m_id; // <prefix>:<title>:<source_key> - stable identity + AppConfig key @@ -137,7 +136,7 @@ public: void remove(const std::string& id); // Always-clean read surface. UI thread only. - const AppAction* by_id(const std::string& id) const; + const AppAction* by_id(const std::string& id) const; // Hard cap on the favourites bar: the numbered quick-launch slots (Alt/Option+1..9, 0). static constexpr size_t kFavLimit = 10; @@ -146,8 +145,8 @@ public: AppActionRunResult run(const std::string& id, const std::string& param = {}); // runs + bumps stats // Pin/unpin. Returns false when `on` would exceed kFavLimit (the bar is full) so the // caller can surface a "favourites are full" hint instead of silently dropping the pin. - bool set_favourite(const std::string& id, bool on); - void reorder_favourites(const std::vector<std::string>& ids); // persist a new bar order + bool set_favourite(const std::string& id, bool on); + void reorder_favourites(const std::vector<std::string>& ids); // persist a new bar order // Ordered pinned list (the source of truth), capped at kFavLimit and deduped, matching the // visible bar the palette renders. @@ -169,8 +168,8 @@ public: nlohmann::json tab_options() const; private: - void seed_state(AppAction& a) const; // favourite/stats from config - AppAction* find(const std::string& id); + void seed_state(AppAction& a) const; // favourite/stats from config + AppAction* find(const std::string& id); // (Re)materialise the current visible config settings as SettingActions from the live // searcher (respecting printer-tech + user-mode + visibility filtering), removing stale ones. @@ -192,8 +191,8 @@ private: void refresh_source(const std::string& plugin_key, ActionChange change); void refresh_capability(const std::string& plugin_key, const std::string& capability, ActionChange change); - bool m_started = false; // init() runs exactly once; guards double-subscription - std::unordered_map<std::string, std::shared_ptr<AppAction>> m_actions; // UI-thread confined; no lock + bool m_started = false; // init() runs exactly once; guards double-subscription + std::unordered_map<std::string, std::shared_ptr<AppAction>> m_actions; // UI-thread confined; no lock }; }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index db66afbd7b..2bb6c7ed9a 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -4375,10 +4375,10 @@ void MainFrame::technology_changed() m_menubar->SetMenuLabel(id, pt == ptFFF ? _omitL("Material Settings") : _L("Filament settings")); } -// Opens the calibration wizard for `calib_kind`, reusing the cached member dialogs the Calibration -// menu builds. This is the single source of truth for the wizard lifecycle: the Calibration menu -// handlers and the Speed Dial native commands both call it, so they share the same per-wizard -// member (fresh on first launch, reused thereafter). Call while the Prepare (3D) panel is shown. +// Opens the calibration wizard for `calib_kind`. Single source of truth for the wizard lifecycle: +// the Calibration menu handlers and the Speed Dial native commands both call it. Most wizards are +// cached members reused across launches; cornering/input-shaping build a fresh transient dialog. +// Call while the Prepare (3D) panel is shown. void MainFrame::run_calibration(CalibKind calib_kind) { switch (calib_kind) { diff --git a/src/slic3r/GUI/MainFrame.hpp b/src/slic3r/GUI/MainFrame.hpp index fc23e1dad8..2c4e5cddba 100644 --- a/src/slic3r/GUI/MainFrame.hpp +++ b/src/slic3r/GUI/MainFrame.hpp @@ -107,7 +107,6 @@ protected: }; // Calibration wizard identity, shared by MainFrame::run_calibration and the Speed Dial command runners. -// Kept in order with the wizard list below. enum class CalibKind : int { Temperature, @@ -364,10 +363,10 @@ public: void technology_changed(); - // Opens the calibration wizard for `kind`, reusing the cached member dialogs the Calibration - // menu builds (m_*_calib_dlg). Single source of truth for the wizard lifecycle: the Calibration - // menu handlers and the Speed Dial native commands both call this. Call while the Prepare (3D) - // panel is shown (menu items are gated on is_view3D_shown; the speed dial ensures it first). + // Opens the calibration wizard for `kind`. Single source of truth for the wizard lifecycle: + // the Calibration menu handlers and the Speed Dial native commands both call this. Most wizards + // are cached members; cornering/input-shaping are transient. Call while the Prepare (3D) panel + // is shown (menu items are gated on is_view3D_shown; the speed dial ensures it first). void run_calibration(CalibKind calib_kind); //BBS diff --git a/src/slic3r/GUI/NativeCommands.cpp b/src/slic3r/GUI/NativeCommands.cpp index d0dfc78086..25d29df116 100644 --- a/src/slic3r/GUI/NativeCommands.cpp +++ b/src/slic3r/GUI/NativeCommands.cpp @@ -58,9 +58,9 @@ AppActionRunResult object_op(Plater* plater, bool (*ok)(Plater*), void (*op)(Pla return {AppActionRunResult::Level::Success}; } -// Jump the preview to a layer selected by a 0-100 percent of the layer range. Best-effort: switches -// to the preview tab and requests a slice; if the slicer result is already present the slider is -// repositioned immediately, otherwise the user can re-run after slicing. +// Jump the preview to a layer selected by a 0-100 percent of the layer range. The caller has already +// switched to Preview (which may request a slice); if a slicer result is present the slider is +// repositioned immediately, otherwise the jump is a no-op until the user re-slices. void go_to_layer(Plater* plater, const std::string& param) { if (!plater) @@ -100,8 +100,8 @@ AppActionRunResult view_command(Plater* plater, const std::string& dir) return {AppActionRunResult::Level::Success}; } -// Calibration wizards. Reuses MainFrame::run_calibration so the speed dial shows the same cached -// member dialogs as the Calibration menu (the menu handlers call run_calibration too). +// Calibration wizards. Routes through MainFrame::run_calibration, the same entry point as the +// Calibration menu (which caches most of the wizard dialogs). AppActionRunResult calib_command(CalibKind kind) { MainFrame* mf = wxGetApp().mainframe; @@ -115,8 +115,8 @@ AppActionRunResult calib_command(CalibKind kind) std::vector<NativeCommand> build_command_catalog() { std::vector<NativeCommand> out; - auto add = [&](std::string key, std::string title, std::string group, - std::function<AppActionRunResult(const std::string&)> runner, std::string input = {}) { + auto add = [&](std::string key, std::string title, std::string group, std::function<AppActionRunResult(const std::string&)> runner, + std::string input = {}) { out.push_back({std::move(key), std::move(title), std::move(group), std::move(input), std::move(runner)}); }; @@ -207,12 +207,11 @@ std::vector<NativeCommand> build_command_catalog() plater->export_gcode_3mf(false); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"), - [](const std::string&) { - if (Plater* plater = wxGetApp().plater()) - plater->export_gcode_3mf(true); - return AppActionRunResult{AppActionRunResult::Level::Success}; - }); + add("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + plater->export_gcode_3mf(true); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); // ---- Calibration ---- add("calib_temperature", _u8L("Temperature Calibration"), _u8L("Calibration"), @@ -231,8 +230,7 @@ std::vector<NativeCommand> build_command_catalog() [](const std::string&) { return calib_command(CalibKind::InputShapingFreq); }); add("calib_input_shaping_damp", _u8L("Input Shaping Damping Calibration"), _u8L("Calibration"), [](const std::string&) { return calib_command(CalibKind::InputShapingDamp); }); - add("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"), - [](const std::string&) { return calib_command(CalibKind::VFA); }); + add("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"), [](const std::string&) { return calib_command(CalibKind::VFA); }); // ---- View ---- for (auto [key, dir, title] : diff --git a/src/slic3r/GUI/NativeCommands.hpp b/src/slic3r/GUI/NativeCommands.hpp index 80c431364d..d586678be1 100644 --- a/src/slic3r/GUI/NativeCommands.hpp +++ b/src/slic3r/GUI/NativeCommands.hpp @@ -16,12 +16,12 @@ struct NativeCommand std::string key; std::string title; std::string group; - std::string input; // "settings"/"percent"/"tab" or "" for immediate run + std::string input; // "percent"/"tab" or "" for immediate run std::function<AppActionRunResult(const std::string& param)> runner; }; namespace NativeCommands { -// The full built-in command catalog, built once (init()). UI thread only. +// The full built-in command catalog, built once on first use. UI thread only. const std::vector<NativeCommand>& catalog(); // Dispatches `key` to its runner (unknown keys return a quiet Info). UI thread only. From 1d44320f30cb621675db64dd7b9a780fac411c51 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Thu, 10 Sep 2026 13:29:57 +0800 Subject: [PATCH 13/76] Updated unit tests --- .../web/dialog/SpeedDial/speeddial.test.js | 25 +++++++++++++++ src/slic3r/GUI/ActionRegistry.cpp | 30 +++++++++--------- src/slic3r/GUI/ActionRegistry.hpp | 4 +++ tests/slic3rutils/test_action_source.cpp | 31 +++++++++++++++++++ 4 files changed, 76 insertions(+), 14 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 5b51daffbe..61976ac9b6 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -186,4 +186,29 @@ assert.equal(ctx.revealTarget(100, -5, 50), 50, "negative start is clamped to th assert.equal(ctx.revealTarget(200, 50, 100), 150, "a scroll viewpoint reveals a window past the current rows"); assert.equal(ctx.revealTarget(10, 0, 50), 10, "a list shorter than one window stays fully materialized"); +// visibleFavourites: the quick-bar drops pins whose action no longer exists (plugin unloaded, +// command removed) and collapses duplicate ids, keeping the persisted pin order. +assert.deepEqual(ctx.visibleFavourites(["a", "b", "c"], [{ id: "a" }, { id: "b" }]), + ["a", "b"], "a pin with no live action is dropped from the quick-bar"); +assert.deepEqual(ctx.visibleFavourites(["b", "a", "b"], [{ id: "a" }, { id: "b" }]), + ["b", "a"], "duplicate pins collapse to the first occurrence"); +assert.deepEqual(ctx.visibleFavourites([], [{ id: "a" }]), [], "no pins renders an empty quick-bar"); +assert.deepEqual(ctx.visibleFavourites(["a"], []), [], "a stale config with no actions renders nothing"); + +// tileCode: monogram ladder - title initial, then title+source initials, then a stable ordinal +// by id. The ordinal is keyed by id, not by list order, so frecency reshuffles never renumber tiles. +const monoPool = [ + { id: "z", title: "Repair", source: "Mesh Tools" }, + { id: "a", title: "Repair", source: "Mesh Tools" }, + { id: "b", title: "Repair", source: "Filament" } +]; +assert.equal(ctx.tileCode(monoPool[0], monoPool), "MR2", + "same title+source resolves to source+title initials with an id-keyed ordinal (id z sorts after id a)"); +assert.equal(ctx.tileCode(monoPool[1], monoPool), "MR1", + "the earlier id is numbered first among same-title+source tiles"); +assert.equal(ctx.tileCode(monoPool[2], monoPool), "FR", + "same title but different source resolves to source+title initials"); +assert.equal(ctx.tileCode({ id: "x", title: "Slice", source: "OrcaSlicer" }, [{ id: "x", title: "Slice", source: "OrcaSlicer" }]), + "S", "a unique title resolves to the bare title initial"); + console.log("ok"); diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index 050814eee3..35503af44e 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -31,6 +31,19 @@ namespace Slic3r { namespace GUI { +std::vector<std::string> cap_favourites(const std::vector<std::string>& ids, size_t limit) +{ + std::vector<std::string> out; + out.reserve(std::min(ids.size(), limit)); + for (const auto& id : ids) { + if (out.size() >= limit) + break; + if (std::find(out.begin(), out.end(), id) == out.end()) + out.push_back(id); + } + return out; +} + namespace { constexpr const char* kConfigSection = "speed_dial"; @@ -468,18 +481,8 @@ bool ActionRegistry::set_favourite(const std::string& id, bool on) std::vector<std::string> ActionRegistry::favourite_ids() const { assert(wxThread::IsMain()); - // Enforce the cap + dedupe on read so the persisted order can never grow past kFavLimit, - // even from an older config. The pinned order is intentionally preserved (slice, not sort). - std::vector<std::string> favs = read_string_array("favourite_actions"); - std::vector<std::string> out; - out.reserve(std::min(favs.size(), kFavLimit)); - for (const auto& id : favs) { - if (out.size() >= kFavLimit) - break; - if (std::find(out.begin(), out.end(), id) == out.end()) - out.push_back(id); - } - return out; + // Enforce the cap + dedupe on read so the persisted order can never grow past kFavLimit, even from an older config. + return cap_favourites(read_string_array("favourite_actions"), kFavLimit); } void ActionRegistry::reorder_favourites(const std::vector<std::string>& ids) @@ -496,8 +499,7 @@ void ActionRegistry::reorder_favourites(const std::vector<std::string>& ids) if (std::find(next.begin(), next.end(), id) == next.end()) next.push_back(id); // never write the bar back larger than the quick-launch slots - if (next.size() > kFavLimit) - next.resize(kFavLimit); + next = cap_favourites(next, kFavLimit); write_section("favourite_actions", nlohmann::json(next)); } diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index f54b439fb8..2b7af0d132 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -106,6 +106,10 @@ private: std::string m_source_name; // display name of the action's source }; +// Cap + dedupe a persisted favourite-id list, preserving first-occurrence order. A stale or +// hand-edited config must never grow the quick-launch bar past `limit`, and a duplicated id must collapse to its first pin. +std::vector<std::string> cap_favourites(const std::vector<std::string>& ids, size_t limit); + // Self-contained sink and single owner of runnable actions for the app session. // // Workflow: diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 9b6564ea98..35365c58c5 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -1,10 +1,13 @@ #include <catch2/catch_test_macros.hpp> #include "slic3r/GUI/ActionRegistry.hpp" +#include "slic3r/GUI/NativeCommands.hpp" #include <memory> +#include <set> #include <string> #include <type_traits> +#include <vector> using Slic3r::GUI::AppAction; using Slic3r::GUI::AppActionRunResult; @@ -81,3 +84,31 @@ TEST_CASE("Command actions are keyed by catalog key, not display title", "[speed CHECK(AppAction::compose_id("orca_command", "save_project", "orca") != AppAction::compose_id("orca_command", "load_project", "orca")); } + +// The quick-launch cap must stay 10 to match the numbered Alt/Option+1..9,0 keys. The web palette +// mirrors it as K_FAV_LIMIT (asserted in speeddial.test.js); the C++ side pins it here. +static_assert(Slic3r::GUI::ActionRegistry::kFavLimit == 10, "kFavLimit must stay 10"); + +TEST_CASE("Favourite lists are capped and deduped preserving order", "[speeddial][actions]") +{ + using Slic3r::GUI::cap_favourites; + + CHECK(cap_favourites({}, 10) == std::vector<std::string>{}); + CHECK(cap_favourites({"a", "b", "a"}, 10) == std::vector<std::string>{"a", "b"}); + CHECK(cap_favourites({"c", "a", "b", "c"}, 3) == std::vector<std::string>{"c", "a", "b"}); + CHECK(cap_favourites({"a", "b"}, 0) == std::vector<std::string>{}); +} + +TEST_CASE("Native command catalog has unique keys and present titles", "[speeddial][actions]") +{ + const std::vector<Slic3r::GUI::NativeCommand>& commands = Slic3r::GUI::NativeCommands::catalog(); + CHECK_FALSE(commands.empty()); + + std::set<std::string> seen; + for (const auto& c : commands) { + CHECK_FALSE(c.key.empty()); + CHECK_FALSE(c.title.empty()); + // A duplicated key would silently shadow the earlier command in the palette. + CHECK(seen.insert(c.key).second); + } +} From 8bbce371b2a0549b93373db1637c6a696dd49163 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Thu, 10 Sep 2026 18:34:05 +0800 Subject: [PATCH 14/76] Add Help actions. Add Toggle Developer action. Add warning popup when switching between process mode. Add primitives/handy models actions --- resources/web/dialog/SpeedDial/speeddial.js | 72 +++++- .../web/dialog/SpeedDial/speeddial.test.js | 49 ++++ resources/web/dialog/SpeedDial/style.css | 12 + src/slic3r/GUI/ActionRegistry.cpp | 36 ++- src/slic3r/GUI/ActionRegistry.hpp | 12 + src/slic3r/GUI/GUI_Factories.cpp | 214 ++++++++++-------- src/slic3r/GUI/GUI_Factories.hpp | 18 ++ src/slic3r/GUI/NativeCommands.cpp | 133 ++++++++++- src/slic3r/GUI/Search.cpp | 21 +- src/slic3r/GUI/Search.hpp | 8 + src/slic3r/GUI/SpeedDialDialog.cpp | 42 +++- tests/slic3rutils/test_action_source.cpp | 88 +++++++ 12 files changed, 585 insertions(+), 120 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index efe99db1b8..6f251d35eb 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -10,6 +10,11 @@ var sel = { zone: "list", i: 0 }; // zone: 'list' | 'fav' var lastResizeHeight = 0; var matchIndex = {}; +// The user's current settings mode (from the C++ payload) plus the rank order of the modes. Each +// action carries the mode it requires, so "would this need a switch?" is a rank comparison. +var USER_MODE = "simple"; +var MODE_RANK = { simple: 0, advanced: 1, expert: 2, develop: 3 }; + // ---- windowed list render ---------------------------------------------------- // The command list is rendered in windows (append-on-scroll) so a huge settings pool doesn't build // the whole DOM per keystroke. Rows are exactly ROW_H tall (matches .row min-height 44px; see --row-h, @@ -105,11 +110,15 @@ function searchActions(actions, query) { matchIndex = {}; if (!q) { searchNeedle = ""; return list.slice(0); } searchNeedle = NormText(q, false); + // Mode keywords ("advanced"/"expert"/"developer") are a union, not a filter: the normal text + // search still runs on the full query, and every setting requiring a named mode is appended. + var modes = modeFilterFromQuery(q); // Compiled once per pass, reused over every field: non-global so no exec()/lastIndex state leaks // between fields, and EscapeRegExp keeps regex metachars in the query literal. var wwRe = new RegExp("\\b" + EscapeRegExp(searchNeedle) + "\\b"); var scored = []; + var seen = {}; for (var i = 0; i < list.length; i++) { var a = list[i]; var t = fieldMatchScore(titleNorm(a), wwRe); @@ -126,13 +135,28 @@ function searchActions(actions, query) { useEyebrowGroup: !!(a.group) }; scored.push({ a: a, s: score }); + seen[a.id] = true; } scored.sort(function (x, y) { if (x.s !== y.s) return y.s - x.s; if (x.a.title !== y.a.title) return x.a.title < y.a.title ? -1 : 1; return x.a.id < y.a.id ? -1 : x.a.id > y.a.id ? 1 : 0; }); - return scored.map(function (e) { return e.a; }); + var result = scored.map(function (e) { return e.a; }); + if (modes.length) { + // Settings requiring a named mode, after the ranked text matches and without duplicates. + var extras = []; + for (var j = 0; j < list.length; j++) { + if (!seen[list[j].id] && modes.indexOf(list[j].mode) !== -1) + extras.push(list[j]); + } + extras.sort(function (x, y) { + if (x.title !== y.title) return x.title < y.title ? -1 : 1; + return x.id < y.id ? -1 : x.id > y.id ? 1 : 0; + }); + result = result.concat(extras); + } + return result; } // Pure: how many rows must be materialized to cover the given starting index plus `size` more. @@ -264,6 +288,40 @@ function prettySource(source) { return String(source || "").toLowerCase().replace(/\b\w/g, function (c) { return c.toUpperCase(); }); } +// True when the action's required mode is above the user's current mode, i.e. selecting it will +// prompt a mode switch. Unknown/empty modes are treated as "simple" so commands never flag. +function needsModeSwitch(item, userMode) { + var need = MODE_RANK[(item && item.mode) || "simple"] || 0; + var have = MODE_RANK[userMode || "simple"] || 0; + return need > have; +} + +// Short mode tag for an action that needs a switch, or "" when it is already available. +function modeBadge(item, userMode) { + if (!needsModeSwitch(item, userMode)) return ""; + if (item.mode === "develop") return "Developer"; + if (item.mode === "expert") return "Expert"; + if (item.mode === "advanced") return "Advanced"; + return ""; +} + +// Search keywords that name a settings mode. "developer" (and the internal "develop") both select +// Developer; Simple is deliberately absent so it never floods the list with every command. +var MODE_WORDS = { advanced: "advanced", expert: "expert", developer: "develop", develop: "develop" }; + +// The mode values named as whole words in `query`, deduped. Case/diacritic-insensitive via Norm. A +// query with no mode keyword returns [] so the normal text search is completely unaffected. +function modeFilterFromQuery(query) { + var norm = NormText(String(query || "").trim(), false); + var found = []; + norm.split(/[^a-z0-9]+/).forEach(function (word) { + var mode = MODE_WORDS[word]; + if (mode && found.indexOf(mode) === -1) + found.push(mode); + }); + return found; +} + // Accessible label "Title from Pretty Source", disambiguated with the opaque action id when another // action shares the same title+source (case/separator-insensitive) - so two rows never read out identically. function actionLabel(action, actions) { @@ -289,6 +347,7 @@ function stateFromPayload(payload) { actions: payload.actions || [], favourites: payload.favourites || [], recent: payload.recent || [], + userMode: payload.user_mode || "simple", query: "", sel: { zone: "list", i: 0 }, lastResizeHeight: 0, @@ -348,6 +407,7 @@ window.HandleStudio = function (payload) { ACTIONS = next.actions; FAVS = next.favourites; RECENTS = next.recent; + USER_MODE = next.userMode; query = next.query; sel = next.sel; lastResizeHeight = next.lastResizeHeight; @@ -470,7 +530,8 @@ function renderFav() { tile.className = "fav-tile" + (sel.zone === "fav" && sel.i === i ? " sel" : ""); tile.style.setProperty("--h", hue(id)); fillTile(tile, a); - tile.title = a.title; + var tileBadge = modeBadge(a, USER_MODE); + tile.title = a.title + (tileBadge ? " (" + tileBadge + ")" : ""); tile.setAttribute("aria-label", actionLabel(a, ACTIONS)); tile.onclick = function () { sel = { zone: "fav", i: i }; activateEntry(a); }; // Numbered quick-launch badge (Alt/Option+digit), drawn on the corner. @@ -584,6 +645,13 @@ function renderActionRow(a, i) { line.className = "row-line"; var name = markedText("row-name", a.title, mi ? mi.title : null); line.appendChild(name); + var badge = modeBadge(a, USER_MODE); + if (badge) { + var tag = document.createElement("span"); + tag.className = "row-mode"; + tag.textContent = badge; + line.appendChild(tag); + } if (a.shortcut) { var sc = document.createElement("div"); sc.className = "row-sc"; diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 61976ac9b6..c8fd43add6 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -211,4 +211,53 @@ assert.equal(ctx.tileCode(monoPool[2], monoPool), "FR", assert.equal(ctx.tileCode({ id: "x", title: "Slice", source: "OrcaSlicer" }, [{ id: "x", title: "Slice", source: "OrcaSlicer" }]), "S", "a unique title resolves to the bare title initial"); +// needsModeSwitch: a setting is gated only when its required mode outranks the user's current mode. +assert.equal(ctx.needsModeSwitch({ mode: "advanced" }, "simple"), true, "Advanced is gated in Simple mode"); +assert.equal(ctx.needsModeSwitch({ mode: "expert" }, "simple"), true, "Expert is gated in Simple mode"); +assert.equal(ctx.needsModeSwitch({ mode: "expert" }, "advanced"), true, "Expert is gated in Advanced mode"); +assert.equal(ctx.needsModeSwitch({ mode: "develop" }, "expert"), true, "Developer is gated in Expert mode"); +assert.equal(ctx.needsModeSwitch({ mode: "simple" }, "simple"), false, "a Simple setting is not gated"); +assert.equal(ctx.needsModeSwitch({ mode: "advanced" }, "advanced"), false, "an Advanced setting is not gated in Advanced mode"); +assert.equal(ctx.needsModeSwitch({ mode: "develop" }, "develop"), false, "a Developer setting is not gated in Developer mode"); +assert.equal(ctx.needsModeSwitch({}, "simple"), false, "a command with no mode is never gated"); + +// modeBadge: the tag text for gated settings, empty once the setting is available. +assert.equal(ctx.modeBadge({ mode: "advanced" }, "simple"), "Advanced", "Advanced badge text"); +assert.equal(ctx.modeBadge({ mode: "expert" }, "simple"), "Expert", "Expert badge text"); +assert.equal(ctx.modeBadge({ mode: "develop" }, "simple"), "Developer", "Developer badge text"); +assert.equal(ctx.modeBadge({ mode: "advanced" }, "advanced"), "", "no badge when the mode already matches"); + +// modeFilterFromQuery: whole-word, case-insensitive mode keywords -> internal mode values. "developer" +// maps to the internal "develop"; "simple" is deliberately not a keyword; a prefix is not a match. +assert.deepEqual(ctx.modeFilterFromQuery("advanced"), ["advanced"], "Advanced is a mode keyword"); +assert.deepEqual(ctx.modeFilterFromQuery("Expert"), ["expert"], "the keyword is case-insensitive"); +assert.deepEqual(ctx.modeFilterFromQuery("developer"), ["develop"], "Developer maps to the develop value"); +assert.deepEqual(ctx.modeFilterFromQuery("develop"), ["develop"], "the internal develop spelling also works"); +assert.deepEqual(ctx.modeFilterFromQuery("expert retraction"), ["expert"], "a keyword is found among other text"); +assert.deepEqual(ctx.modeFilterFromQuery("advanced expert"), ["advanced", "expert"], "multiple keywords are deduped in order"); +assert.deepEqual(ctx.modeFilterFromQuery("advanced advanced"), ["advanced"], "a repeated keyword is deduped"); +assert.deepEqual(ctx.modeFilterFromQuery("simple"), [], "Simple is not a mode keyword"); +assert.deepEqual(ctx.modeFilterFromQuery("advance"), [], "a mode-word prefix is not a whole-word match"); +assert.deepEqual(ctx.modeFilterFromQuery(""), [], "an empty query names no mode"); + +// searchActions mode union: a mode keyword keeps the normal text matches AND appends every setting +// requiring that mode. Not a filter - a Simple setting literally named "Advanced..." still shows, and +// commands (mode "simple") are never pulled in by a keyword. +const modePool = [ + { id: "a1", title: "Top Surface Layers", source: "Quality", group: "Quality : Layers", mode: "advanced" }, + { id: "a2", title: "Advanced Detection", source: "Quality", group: "Quality", mode: "simple" }, + { id: "a3", title: "Retraction Length", source: "Process", group: "Process : Quality", mode: "expert" }, + { id: "a4", title: "Slice", source: "OrcaSlicer", group: "Commands", mode: "simple" } +]; +var adv = ctx.searchActions(modePool, "advanced"); +assert.deepEqual(adv.map(function (a) { return a.id; }), ["a2", "a1"], + "a text match (a2) ranks above the mode-only setting (a1), and no expert/command leaks in"); +var expert = ctx.searchActions(modePool, "expert"); +assert.deepEqual(expert.map(function (a) { return a.id; }), ["a3"], "the expert keyword pulls in the expert setting"); +assert.deepEqual(ctx.searchActions(modePool, "developer"), [], "no developer settings means no mode extras"); +assert.equal(ctx.searchActions(modePool, "retraction")[0].id, "a3", + "a query with no mode keyword is unaffected by the mode union"); +assert.equal(ctx.searchActions([{ id: "both", title: "Advanced", source: "Quality", group: "", mode: "advanced" }], "advanced").length, + 1, "a setting that both matches text and requires the mode appears exactly once"); + console.log("ok"); diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index 07f0c992eb..d6bc8ff8bf 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -364,6 +364,18 @@ body { gap: 3px; } +/* Mode tag on settings above the user's current mode (Advanced/Expert/Developer). */ +.row-mode { + flex: 0 0 auto; + padding: 1px 6px; + font-size: 10px; + line-height: 1.4; + border-radius: 8px; + color: var(--plugin-status-warn); + background: var(--plugin-status-warn-bg); + white-space: nowrap; +} + kbd { display: inline-flex; align-items: center; diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index 35503af44e..d1b6e13fe1 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -162,6 +162,17 @@ std::string setting_type_context(Preset::Type type) } } +// Stable, non-localized mode token for the webview, which maps it to a badge ("Developer" etc.). +const char* mode_key(ConfigOptionMode mode) +{ + switch (mode) { + case comAdvanced: return "advanced"; + case comExpert: return "expert"; + case comDevelop: return "develop"; + default: return "simple"; + } +} + // A config setting exposed as a first-class action: selecting it jumps the sidebar to the option. // The id is keyed by opt_key+type (NOT the display label), so renaming/localizing never re-keys // the action; title/group/source are purely for display + search. run() performs the jump, and @@ -180,7 +191,8 @@ struct SettingAction : AppAction std::string title, std::string group, std::wstring category_in, - std::string source_name) + std::string source_name, + ConfigOptionMode mode_in) : AppAction(AppActionId{id_for(opt_key_in, type_in)}, std::move(title), kOrcaSourceKey, std::move(source_name)) , opt_key(std::move(opt_key_in)) , type(type_in) @@ -188,8 +200,9 @@ struct SettingAction : AppAction { // A setting is a single-phase command: activating it jumps the sidebar to the option // (like the sidebar's own settings search), then the dial closes. run() performs the jump. - this->kind = AppActionKind::Command; - this->group = std::move(group); + this->kind = AppActionKind::Command; + this->group = std::move(group); + this->required_mode = mode_in; } AppActionRunResult run(const std::string& /*param*/) const override @@ -509,10 +522,9 @@ void ActionRegistry::materialize_setting_actions() // Reuse the Sidebar's live searcher: it's the only OptionsSearcher whose groups_and_categories // map is populated (Tab::add_key feeds it at build time), and it already mirrors the current - // configs/mode/printer-technology - i.e. exactly what the sidebar's own search would show. A - // fresh OptionsSearcher has an empty groups_and_categories, so append_options() would drop every - // option and nothing would materialise. Turn each visible option into a SettingAction. - const std::vector<Search::Option>& options = wxGetApp().sidebar().get_searcher().all_options(); + // configs/printer-technology. Use the all-modes view so the Speed Dial lists every setting, + // including those above the user's current mode, and can prompt to switch before jumping. + const std::vector<Search::Option>& options = wxGetApp().sidebar().get_searcher().all_modes_options(); // Load the persisted per-action state ONCE (not per-option) so a re-materialised setting keeps // its recency/favourite; mirroring seed_state but amortised over the whole option set. @@ -540,7 +552,7 @@ void ActionRegistry::materialize_setting_actions() // title = the option leaf name (last label segment); group stays empty so the source path // (above) is the single display/search breadcrumb rather than being duplicated. auto action = std::make_unique<SettingAction>(opt.opt_key(), opt.type, boost::nowide::narrow(label_w), std::string(), - opt.category_local, boost::nowide::narrow(path)); + opt.category_local, boost::nowide::narrow(path), opt.mode); action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); if (auto it = stats.find(id); it != stats.end() && it->is_object()) { @@ -726,7 +738,8 @@ nlohmann::json ActionRegistry::snapshot() {"source", a->source_name()}, {"group", a->group}, {"input", a->input}, - {"shortcut", ""}}); + {"shortcut", ""}, + {"mode", mode_key(a->required_mode)}}); }; nlohmann::json actions = nlohmann::json::array(); @@ -765,7 +778,10 @@ nlohmann::json ActionRegistry::snapshot() for (const AppAction* a : recent) recent_json.push_back(action_to_json(a)); - return {{"actions", std::move(actions)}, {"favourites", std::move(favourites)}, {"recent", std::move(recent_json)}}; + return {{"actions", std::move(actions)}, + {"favourites", std::move(favourites)}, + {"recent", std::move(recent_json)}, + {"user_mode", mode_key(wxGetApp().get_mode())}}; } // ---- tab options (enumerate the MainFrame notebook's current pages) ---------- diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index 2b7af0d132..c1667e184d 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -2,6 +2,8 @@ #include <nlohmann/json.hpp> +#include <libslic3r/Config.hpp> + #include <wx/string.h> #include <wx/thread.h> @@ -75,6 +77,9 @@ struct AppAction // Second-phase input descriptor for the palette: "percent" (jump to layer by a 0-100 // value) or "tab" (pick a notebook tab). Empty = run immediately on activation. std::string input; + // Settings mode required to edit this action (SettingActions only). The palette prompts before + // running an action whose mode is above the user's current mode. comSimple for everything else. + ConfigOptionMode required_mode = comSimple; virtual ~AppAction() = default; // Re-resolves + runs (UI thread). `param` carries an optional per-run argument for @@ -106,6 +111,13 @@ private: std::string m_source_name; // display name of the action's source }; +// True when a setting at `setting_mode` cannot be edited in `current_mode` and the UI must switch +// first. Developer settings are handled as a separate prompt by the Speed Dial. +inline bool requires_mode_switch(ConfigOptionMode setting_mode, ConfigOptionMode current_mode) +{ + return setting_mode > current_mode; +} + // Cap + dedupe a persisted favourite-id list, preserving first-occurrence order. A stale or // hand-edited config must never grow the quick-launch bar past `limit`, and a duplicated id must collapse to its first pin. std::vector<std::string> cap_favourites(const std::vector<std::string>& ids, size_t limit); diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index d8e54978fa..2678cd5d4b 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -578,113 +578,131 @@ wxMenu* MenuFactory::append_submenu_add_generic(wxMenu* menu, ModelVolumeType ty return sub_menu; } +// Orca: handy models shipped under <resources>/handy_models. Defining everything in one table keeps +// the menu label, the files to load and the per-model behavior in a single place. Labels are wrapped +// in L() so they are picked up for translation. Shared with the command palette. +const std::vector<MenuFactory::HandyModel>& MenuFactory::handy_models() +{ + static const std::vector<HandyModel> models = { + {"orca_cube", L("Orca Cube"), {"OrcaCube_v2.drc", "OrcaPlug_v2.drc"}, true}, + {"orcasliced_combo", L("OrcaSliced Combo"), {"OrcaSliced.3mf", "OrcaCube_v2.drc", "OrcaPlug_v2.drc"}, true}, + {"orca_badge", L("Orca Badge"), {"OrcaBadge.3mf"}}, + {"orca_tolerance_test", L("Orca Tolerance Test"), {"OrcaToleranceTest.drc"}}, + {"3dbenchy", L("3DBenchy"), {"3DBenchy.drc"}}, + {"cali_cat", L("Cali Cat"), {"calicat.drc"}}, + {"autodesk_fdm_test", L("Autodesk FDM Test"), {"ksr_fdmtest_v4.drc"}}, + {"voron_cube", L("Voron Cube"), {"Voron_Design_Cube_v7.drc"}}, + {"stanford_bunny", L("Stanford Bunny"), {"Stanford_Bunny.drc"}}, + {"orca_string_hell", L("Orca String Hell"), {"Orca_stringhell.drc"}, false, true}, + }; + return models; +} + +void MenuFactory::load_handy_model(std::size_t index) +{ + const std::vector<HandyModel>& models = handy_models(); + if (index >= models.size()) + return; + const HandyModel& model = models[index]; + + std::vector<boost::filesystem::path> input_files; + input_files.reserve(model.file_names.size()); + for (const auto& file_name : model.file_names) + input_files.push_back((boost::filesystem::path(Slic3r::resources_dir()) / "handy_models" / file_name)); + + Plater* pl = plater(); + if (!pl) + return; + pl->load_files(input_files, LoadStrategy::LoadModel); + if (model.arrange_after_import) { + pl->set_prepare_state(Job::PREPARE_STATE_MENU); + pl->arrange(); + } + + // Suggest to change settings for stringhell + // This serves as mini tutorial for new users + if (model.is_stringhell) { + wxGetApp().CallAfter([=] { + DynamicPrintConfig* m_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config; + + bool is_only_one_wall_top = m_config->opt_bool("only_one_wall_top"); + auto min_width_top_surface = m_config->option<ConfigOptionFloatOrPercent>("min_width_top_surface")->value; + if (is_only_one_wall_top && min_width_top_surface > 0) { + wxString msg_text = _L("This model features text embossment on the top surface. For optimal results, it is " + "advisable to set the 'One Wall Threshold (min_width_top_surface)' " + "to 0 for the 'Only One Wall on Top Surfaces' to work best.\n" + "Yes - Change these settings automatically\n" + "No - Do not change these settings for me"); + + MessageDialog dialog(wxGetApp().plater(), msg_text, _L("Suggestion"), wxICON_WARNING | wxYES | wxNO); + if (dialog.ShowModal() == wxID_YES) { + m_config->set_key_value("min_width_top_surface", new ConfigOptionFloatOrPercent(0, false)); + wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty(); + wxGetApp().get_tab(Preset::TYPE_PRINT)->reload_config(); + } + wxGetApp().plater()->update(); + } + }); + } +} + // Orca: add submenu for adding handy models wxMenu* MenuFactory::append_submenu_add_handy_model(wxMenu* menu, ModelVolumeType type) { auto sub_menu = new wxMenu; - // Orca: handy models shipped under <resources>/handy_models. Defining everything in one table - // keeps the menu label, the files to load and the per-model behavior in a single place and - // avoids repeating the label strings (and the value-vs-pointer comparison pitfalls that come - // with that). Labels are wrapped in L() so they are picked up for translation. - struct HandyModel - { - const char* label; - std::vector<std::string> file_names; - bool arrange_after_import = false; - bool is_stringhell = false; - }; - static const std::vector<HandyModel> handy_models = { - {L("Orca Cube"), {"OrcaCube_v2.drc", "OrcaPlug_v2.drc"}, true}, - {L("OrcaSliced Combo"), {"OrcaSliced.3mf", "OrcaCube_v2.drc", "OrcaPlug_v2.drc"}, true}, - {L("Orca Badge"), {"OrcaBadge.3mf"}}, - {L("Orca Tolerance Test"), {"OrcaToleranceTest.drc"}}, - {L("3DBenchy"), {"3DBenchy.drc"}}, - {L("Cali Cat"), {"calicat.drc"}}, - {L("Autodesk FDM Test"), {"ksr_fdmtest_v4.drc"}}, - {L("Voron Cube"), {"Voron_Design_Cube_v7.drc"}}, - {L("Stanford Bunny"), {"Stanford_Bunny.drc"}}, - {L("Orca String Hell"), {"Orca_stringhell.drc"}, false, true}, - }; - - for (const auto& model : handy_models) { - append_menu_item( - sub_menu, wxID_ANY, _(model.label), "", - [&model](wxCommandEvent&) { - std::vector<boost::filesystem::path> input_files; - input_files.reserve(model.file_names.size()); - for (const auto& file_name : model.file_names) - input_files.push_back((boost::filesystem::path(Slic3r::resources_dir()) / "handy_models" / file_name)); - - plater()->load_files(input_files, LoadStrategy::LoadModel); - if (model.arrange_after_import) { - plater()->set_prepare_state(Job::PREPARE_STATE_MENU); - plater()->arrange(); - } - - // Suggest to change settings for stringhell - // This serves as mini tutorial for new users - if (model.is_stringhell) { - wxGetApp().CallAfter([=] { - DynamicPrintConfig* m_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config; - - bool is_only_one_wall_top = m_config->opt_bool("only_one_wall_top"); - auto min_width_top_surface = m_config->option<ConfigOptionFloatOrPercent>("min_width_top_surface")->value; - if (is_only_one_wall_top && min_width_top_surface > 0) { - wxString msg_text = _L("This model features text embossment on the top surface. For optimal results, it is " - "advisable to set the 'One Wall Threshold (min_width_top_surface)' " - "to 0 for the 'Only One Wall on Top Surfaces' to work best.\n" - "Yes - Change these settings automatically\n" - "No - Do not change these settings for me"); - - MessageDialog dialog(wxGetApp().plater(), msg_text, _L("Suggestion"), wxICON_WARNING | wxYES | wxNO); - if (dialog.ShowModal() == wxID_YES) { - m_config->set_key_value("min_width_top_surface", new ConfigOptionFloatOrPercent(0, false)); - wxGetApp().get_tab(Preset::TYPE_PRINT)->update_dirty(); - wxGetApp().get_tab(Preset::TYPE_PRINT)->reload_config(); - } - wxGetApp().plater()->update(); - } - }); - } - }, - "", menu); + const std::vector<HandyModel>& models = handy_models(); + for (std::size_t i = 0; i < models.size(); ++i) { + append_menu_item(sub_menu, wxID_ANY, _(models[i].label), "", + [i](wxCommandEvent&) { MenuFactory::load_handy_model(i); }, "", menu); } - return sub_menu; } + +// Create a Text/SVG volume through the matching gizmo. `type == INVALID` means "create a new object". +// Shared by the add menu and the command palette. +static void add_volume_with_gizmo(GLGizmosManager::EType gizmo_type, ModelVolumeType type) +{ + Plater* pl = plater(); + if (!pl) + return; + const GLCanvas3D* canvas = pl->canvas3D(); + if (!canvas) + return; + GLGizmoBase* gizmo_base = canvas->get_gizmos_manager().get_gizmo(gizmo_type); + if (!gizmo_base) + return; + + ModelVolumeType volume_type = type; + // no selected object means create new object + if (volume_type == ModelVolumeType::INVALID) + volume_type = ModelVolumeType::MODEL_PART; + + auto screen_position = canvas->get_popup_menu_position(); + if (gizmo_type == GLGizmosManager::Emboss) { + auto* emboss = dynamic_cast<GLGizmoEmboss*>(gizmo_base); + if (emboss == nullptr) + return; + if (screen_position.has_value()) + emboss->create_volume(volume_type, *screen_position); + else + emboss->create_volume(volume_type); + } else if (gizmo_type == GLGizmosManager::Svg) { + auto* svg = dynamic_cast<GLGizmoSVG*>(gizmo_base); + if (svg == nullptr) + return; + if (screen_position.has_value()) + svg->create_volume(volume_type, *screen_position); + else + svg->create_volume(volume_type); + } +} + +void MenuFactory::add_text_volume(ModelVolumeType type) { add_volume_with_gizmo(GLGizmosManager::Emboss, type); } +void MenuFactory::add_svg_volume(ModelVolumeType type) { add_volume_with_gizmo(GLGizmosManager::Svg, type); } + static void append_menu_itemm_add_(const wxString& name, GLGizmosManager::EType gizmo_type, wxMenu *menu, ModelVolumeType type, bool is_submenu_item) { - auto add_ = [type, gizmo_type](const wxCommandEvent & /*unnamed*/) { - const GLCanvas3D *canvas = plater()->canvas3D(); - const GLGizmosManager &mng = canvas->get_gizmos_manager(); - GLGizmoBase *gizmo_base = mng.get_gizmo(gizmo_type); - - ModelVolumeType volume_type = type; - // no selected object means create new object - if (volume_type == ModelVolumeType::INVALID) - volume_type = ModelVolumeType::MODEL_PART; - - auto screen_position = canvas->get_popup_menu_position(); - if (gizmo_type == GLGizmosManager::Emboss) { - auto emboss = dynamic_cast<GLGizmoEmboss *>(gizmo_base); - assert(emboss != nullptr); - if (emboss == nullptr) return; - if (screen_position.has_value()) { - emboss->create_volume(volume_type, *screen_position); - } else { - emboss->create_volume(volume_type); - } - } else if (gizmo_type == GLGizmosManager::Svg) { - auto svg = dynamic_cast<GLGizmoSVG *>(gizmo_base); - assert(svg != nullptr); - if (svg == nullptr) return; - if (screen_position.has_value()) { - svg->create_volume(volume_type, *screen_position); - } else { - svg->create_volume(volume_type); - } - } - }; + auto add_ = [type, gizmo_type](const wxCommandEvent & /*unnamed*/) { add_volume_with_gizmo(gizmo_type, type); }; if (type == ModelVolumeType::MODEL_PART || type == ModelVolumeType::NEGATIVE_VOLUME || type == ModelVolumeType::PARAMETER_MODIFIER || type == ModelVolumeType::INVALID // cannot use gizmo without selected object diff --git a/src/slic3r/GUI/GUI_Factories.hpp b/src/slic3r/GUI/GUI_Factories.hpp index f80ef85d53..ec7b0a0b03 100644 --- a/src/slic3r/GUI/GUI_Factories.hpp +++ b/src/slic3r/GUI/GUI_Factories.hpp @@ -4,6 +4,7 @@ #include <map> #include <vector> #include <array> +#include <cstddef> #include <wx/bitmap.h> @@ -51,6 +52,23 @@ public: static std::vector<wxBitmap> get_text_volume_bitmaps(); static std::vector<wxBitmap> get_svg_volume_bitmaps(); + // Orca: handy models shipped under <resources>/handy_models. The menu and the command palette + // share this table so the model list and its per-model behavior live in one place. + struct HandyModel + { + const char* key; + const char* label; + std::vector<std::string> file_names; + bool arrange_after_import = false; + bool is_stringhell = false; + }; + static const std::vector<HandyModel>& handy_models(); + static void load_handy_model(std::size_t index); + + // Add a Text/SVG volume through the Emboss/SVG gizmo. Shared by the add menu and the palette. + static void add_text_volume(ModelVolumeType type); + static void add_svg_volume(ModelVolumeType type); + MenuFactory(); ~MenuFactory() = default; diff --git a/src/slic3r/GUI/NativeCommands.cpp b/src/slic3r/GUI/NativeCommands.cpp index 25d29df116..7dba9cf155 100644 --- a/src/slic3r/GUI/NativeCommands.cpp +++ b/src/slic3r/GUI/NativeCommands.cpp @@ -2,18 +2,23 @@ #include "calib_dlg.hpp" #include "Camera.hpp" +#include "DailyTips.hpp" #include "GCodeViewer.hpp" #include "GLCanvas3D.hpp" #include "GUI.hpp" #include "GUI_App.hpp" +#include "GUI_Factories.hpp" +#include "GUI_ObjectList.hpp" #include "I18N.hpp" #include "IMSlider.hpp" #include "MainFrame.hpp" +#include "NetworkTestDialog.hpp" #include "Plater.hpp" #include "PluginsDialog.hpp" #include "PlateSettingsDialog.hpp" #include "DeviceCore/DevManager.h" +#include <libslic3r/Model.hpp> #include <libslic3r/Utils.hpp> #include <algorithm> @@ -24,6 +29,8 @@ #include <tuple> #include <utility> +#include <wx/utils.h> + namespace Slic3r { namespace GUI { namespace { @@ -112,6 +119,19 @@ AppActionRunResult calib_command(CalibKind kind) return {AppActionRunResult::Level::Success}; } +// Palette-only: developer mode overrides the saved mode (get_mode returns comDevelop), so choosing +// Simple/Advanced/Expert must clear it first. Mirrors Preferences: persist the flag, then update. +void select_mode(ConfigOptionMode mode) +{ + GUI_App& app = wxGetApp(); + const bool was_developer = app.app_config->get_bool("developer_mode"); + if (was_developer) + app.app_config->set_bool("developer_mode", false); + app.save_mode(mode); + if (was_developer) + app.app_config->save(); +} + std::vector<NativeCommand> build_command_catalog() { std::vector<NativeCommand> out; @@ -174,17 +194,26 @@ std::vector<NativeCommand> build_command_catalog() // ---- Mode ---- add("mode_simple", _u8L("Mode: Simple"), _u8L("Mode"), [](const std::string&) { - wxGetApp().save_mode(comSimple); + select_mode(comSimple); return AppActionRunResult{AppActionRunResult::Level::Success}; }); add("mode_advanced", _u8L("Mode: Advanced"), _u8L("Mode"), [](const std::string&) { - wxGetApp().save_mode(comAdvanced); + select_mode(comAdvanced); return AppActionRunResult{AppActionRunResult::Level::Success}; }); add("mode_expert", _u8L("Mode: Expert"), _u8L("Mode"), [](const std::string&) { - wxGetApp().save_mode(comExpert); + select_mode(comExpert); return AppActionRunResult{AppActionRunResult::Level::Success}; }); + // Mirrors Preferences > Developer > Developer mode: flip the flag, persist, refresh the UI. + add("toggle_developer_mode", _u8L("Toggle Developer Mode"), _u8L("Mode"), [](const std::string&) { + GUI_App& app = wxGetApp(); + const bool on = !app.app_config->get_bool("developer_mode"); + app.app_config->set_bool("developer_mode", on); + app.app_config->save(); + app.update_mode(); + return AppActionRunResult{AppActionRunResult::Level::Success, on ? _L("Developer mode enabled.") : _L("Developer mode disabled.")}; + }); // ---- Export pipeline ---- add("export_gcode", _u8L("Export G-code"), _u8L("Slice & Export"), [](const std::string&) { @@ -320,6 +349,57 @@ std::vector<NativeCommand> build_command_catalog() return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_arrange(); }, [](Plater* p) { p->orient(); }); }); + // ---- Add Primitive ---- (the Add > Add Primitive submenu; creates a new object) + auto add_primitive = [&](std::string key, std::string title, const char* type_name) { + add(std::move(key), std::move(title), _u8L("Add Primitive"), [type_name](const std::string&) { + Plater* plater = wxGetApp().plater(); + if (plater) { + ensure_3d_view(plater); + if (ObjectList* list = wxGetApp().obj_list()) + list->load_generic_subobject(type_name, ModelVolumeType::INVALID); + } + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + }; + add_primitive("add_primitive_cube", _u8L("Cube"), "Cube"); + add_primitive("add_primitive_cylinder", _u8L("Cylinder"), "Cylinder"); + add_primitive("add_primitive_sphere", _u8L("Sphere"), "Sphere"); + add_primitive("add_primitive_cone", _u8L("Cone"), "Cone"); + add_primitive("add_primitive_disc", _u8L("Disc"), "Disc"); + add_primitive("add_primitive_torus", _u8L("Torus"), "Torus"); + add("add_primitive_text", _u8L("Text"), _u8L("Add Primitive"), [](const std::string&) { + Plater* plater = wxGetApp().plater(); + if (plater) { + ensure_3d_view(plater); + if (GLCanvas3D* canvas = plater->canvas3D()) + canvas->clear_popup_menu_position(); + MenuFactory::add_text_volume(ModelVolumeType::INVALID); + } + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("add_primitive_svg", _u8L("SVG"), _u8L("Add Primitive"), [](const std::string&) { + Plater* plater = wxGetApp().plater(); + if (plater) { + ensure_3d_view(plater); + if (GLCanvas3D* canvas = plater->canvas3D()) + canvas->clear_popup_menu_position(); + MenuFactory::add_svg_volume(ModelVolumeType::INVALID); + } + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + + // ---- Add Handy models ---- (the Add > Add Handy models submenu) + const std::vector<MenuFactory::HandyModel>& handy = MenuFactory::handy_models(); + for (std::size_t i = 0; i < handy.size(); ++i) { + add("add_handy_" + std::string(handy[i].key), Slic3r::GUI::I18N::translate_utf8(handy[i].label), _u8L("Add Handy models"), + [i](const std::string&) { + if (Plater* plater = wxGetApp().plater()) + ensure_3d_view(plater); + MenuFactory::load_handy_model(i); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + } + // ---- Plate ---- add("plate_add", _u8L("Add Plate"), _u8L("Plate"), [](const std::string&) { Plater* plater = wxGetApp().plater(); @@ -458,6 +538,53 @@ std::vector<NativeCommand> build_command_catalog() return AppActionRunResult{AppActionRunResult::Level::Success}; }); + // ---- Help ---- (mirrors the top-bar Help menu, plus the wiki/YouTube links) + add("help_keyboard_shortcuts", _u8L("Keyboard Shortcuts"), _u8L("Help"), [](const std::string&) { + wxGetApp().keyboard_shortcuts(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("help_setup_wizard", _u8L("Setup Wizard"), _u8L("Help"), [](const std::string&) { + wxGetApp().ShowUserGuide(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("help_open_config_folder", _u8L("Show Configuration Folder"), _u8L("Help"), [](const std::string&) { + Slic3r::GUI::desktop_open_datadir_folder(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("help_troubleshoot", _u8L("Troubleshoot Center"), _u8L("Help"), [](const std::string&) { + wxGetApp().troubleshoot(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("help_network_test", _u8L("Open Network Test"), _u8L("Help"), [](const std::string&) { + NetworkTestDialog dlg(wxGetApp().mainframe); + dlg.ShowModal(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("help_tip_of_the_day", _u8L("Show Tip of the Day"), _u8L("Help"), [](const std::string&) { + if (Plater* plater = wxGetApp().plater()) { + plater->get_dailytips()->open(); + if (GLCanvas3D* canvas = plater->get_current_canvas3D()) + canvas->set_as_dirty(); + } + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("help_check_updates", _u8L("Check for Updates"), _u8L("Help"), [](const std::string&) { + wxGetApp().check_new_version_sf(true, 1); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("help_about", _u8L("About OrcaSlicer"), _u8L("Help"), [](const std::string&) { + Slic3r::GUI::about(); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("open_wiki", _u8L("Open Wiki"), _u8L("Help"), [](const std::string&) { + wxLaunchDefaultBrowser("https://www.orcaslicer.com/wiki/", wxBROWSER_NEW_WINDOW); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + add("open_youtube", _u8L("Open YouTube Channel"), _u8L("Help"), [](const std::string&) { + wxLaunchDefaultBrowser("https://www.youtube.com/@OfficialOrcaSlicer/videos", wxBROWSER_NEW_WINDOW); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }); + // ---- Plugins ---- add("open_plugins", _u8L("Open Plugins"), _u8L("Plugins"), [](const std::string&) { wxGetApp().open_plugins_dialog(); diff --git a/src/slic3r/GUI/Search.cpp b/src/slic3r/GUI/Search.cpp index f8fc51ed02..77b80208fc 100644 --- a/src/slic3r/GUI/Search.cpp +++ b/src/slic3r/GUI/Search.cpp @@ -85,7 +85,7 @@ static std::string get_key(const std::string &opt_key, Preset::Type type) { retu void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode) { - auto emplace = [this, type](const std::string key, const wxString &label) { + auto emplace = [this, type](std::vector<Option> &dst, const std::string &key, const wxString &label, ConfigOptionMode opt_mode) { const GroupAndCategory &gc = groups_and_categories[key]; if (gc.group.IsEmpty() || gc.category.IsEmpty()) return; @@ -99,13 +99,14 @@ void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type ty } if (!label.IsEmpty()) - options.emplace_back(Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(), gc.group.ToStdWstring(), - _(gc.group).ToStdWstring(), gc.category.ToStdWstring(), GUI::Tab::translate_category(gc.category, type).ToStdWstring()}); + dst.emplace_back(Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(), gc.group.ToStdWstring(), + _(gc.group).ToStdWstring(), gc.category.ToStdWstring(), GUI::Tab::translate_category(gc.category, type).ToStdWstring(), + false, opt_mode}); }; for (std::string opt_key : config->keys()) { const ConfigOptionDef &opt = config->def()->options.at(opt_key); - if (opt.mode > mode) continue; + const bool in_filtered = opt.mode <= mode; int cnt = 0; @@ -128,12 +129,17 @@ void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type ty wxString label = opt.full_label.empty() ? opt.label : opt.full_label; std::string key = get_key(opt_key, type); + auto add = [&](const std::string &k) { + if (in_filtered) + emplace(options, k, label, opt.mode); + emplace(options_all_modes, k, label, opt.mode); + }; if (cnt == 0) - emplace(key, label); + add(key); else for (int i = 0; i < cnt; ++i) // ! It's very important to use "#". opt_key#n is a real option key used in GroupAndCategory - emplace(key + "#" + std::to_string(i), label); + add(key + "#" + std::to_string(i)); } } @@ -307,6 +313,7 @@ OptionsSearcher::~OptionsSearcher() {} void OptionsSearcher::init(std::vector<InputInfo> input_values) { options.clear(); + options_all_modes.clear(); for (auto i : input_values) append_options(i.config, i.type, i.mode); sort_options(); @@ -318,6 +325,8 @@ void OptionsSearcher::apply(DynamicPrintConfig *config, Preset::Type type, Confi if (options.empty()) return; options.erase(std::remove_if(options.begin(), options.end(), [type](Option opt) { return opt.type == type; }), options.end()); + options_all_modes.erase(std::remove_if(options_all_modes.begin(), options_all_modes.end(), [type](Option opt) { return opt.type == type; }), + options_all_modes.end()); append_options(config, type, mode); diff --git a/src/slic3r/GUI/Search.hpp b/src/slic3r/GUI/Search.hpp index 859a012f46..e28ada2675 100644 --- a/src/slic3r/GUI/Search.hpp +++ b/src/slic3r/GUI/Search.hpp @@ -63,6 +63,7 @@ struct Option std::wstring category; std::wstring category_local; bool multi_category { false }; + ConfigOptionMode mode{comSimple}; // option's visibility threshold; drives the Speed Dial's mode prompt std::string opt_key() const; }; @@ -97,6 +98,9 @@ class OptionsSearcher PrinterTechnology printer_technology; std::vector<Option> options{}; + // Every option regardless of the current UI mode (Simple/Advanced/Expert/Developer), for the + // Speed Dial. The sidebar search keeps using the mode-filtered `options`. + std::vector<Option> options_all_modes{}; std::vector<FoundOption> found{}; void append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode); @@ -152,6 +156,10 @@ public: // The full gated option set built by init() (after visibility/mode/printer-tech filtering). // Used by the Speed Dial to materialise config settings as first-class actions. const std::vector<Option>& all_options() const { return options; } + + // Every option across all UI modes (Developer included), regardless of the current mode. + // Used by the Speed Dial so it can list settings the user would have to switch mode to edit. + const std::vector<Option>& all_modes_options() const { return options_all_modes; } }; //------------------------------------------ diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index fbc446c5a0..88913b2136 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -9,6 +9,8 @@ #include "Plater.hpp" #include "Widgets/WebViewHostDialog.hpp" +#include <libslic3r/AppConfig.hpp> + #include <algorithm> #include <wx/display.h> @@ -35,6 +37,17 @@ int json_int_or(const nlohmann::json& j, const char* key, int fallback) return it != j.end() && it->is_number() ? it->get<int>() : fallback; } +// Display name of a settings mode, for the mode-switch confirmation. +wxString mode_label(ConfigOptionMode mode) +{ + switch (mode) { + case comAdvanced: return _L("Advanced"); + case comExpert: return _L("Expert"); + case comDevelop: return _L("Developer"); + default: return _L("Simple"); + } +} + wxColour bg_color() { return wxGetApp().get_window_default_clr(); } // Give the WebKitGTK widget itself input focus, not its GtkScrolledWindow container. @@ -192,6 +205,32 @@ void SpeedDialWebDialog::run_action(const std::string& id, const std::string& ti // Only plugin actions get the "Run plugin?" confirm. Built-in commands act immediately. const bool ask = a->kind == AppActionKind::Plugin && reg.should_ask(id); const std::string atitle = a->title(); + const ConfigOptionMode required = a->required_mode; + + // Settings the current mode hides require a switch first. Ask while the dial is still up; a + // cancel dismisses both (the dial also auto-hides when the modal takes activation). + if (requires_mode_switch(required, wxGetApp().get_mode())) { + const wxString setting = title.empty() ? from_u8(atitle) : from_u8(title); + if (required == comDevelop) { + RichMessageDialog dlg(wxGetApp().mainframe, + wxString::Format(_L("\"%s\" is a Developer setting. Enable Developer mode to edit it?"), + setting), + _L("Developer setting"), wxOK | wxCANCEL); + if (dlg.ShowModal() != wxID_OK) + return; + wxGetApp().app_config->set_bool("developer_mode", true); + wxGetApp().update_mode(); + } else { + RichMessageDialog dlg(wxGetApp().mainframe, + wxString::Format(_L("\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?"), + setting, mode_label(required), mode_label(wxGetApp().get_mode()), mode_label(required)), + _L("Switch settings mode"), wxOK | wxCANCEL); + if (dlg.ShowModal() != wxID_OK) + return; + wxGetApp().save_mode(required); + } + } + if (IsModal()) EndModal(wxID_CANCEL); else @@ -231,7 +270,8 @@ void SpeedDialWebDialog::send_actions() call_web_handler({{"command", "list_actions"}, {"actions", std::move(snap["actions"])}, {"favourites", std::move(snap["favourites"])}, - {"recent", std::move(snap["recent"])}}); + {"recent", std::move(snap["recent"])}, + {"user_mode", std::move(snap["user_mode"])}}); } }} // namespace Slic3r::GUI diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 35365c58c5..0dde4eb382 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -112,3 +112,91 @@ TEST_CASE("Native command catalog has unique keys and present titles", "[speeddi CHECK(seen.insert(c.key).second); } } + +// The Help-menu commands, wiki/YouTube links and the developer-mode toggle are part of the palette. +// Guard their presence and that they stay grouped with their peers, so a catalog edit cannot drop +// or scatter them. Groups are compared to the peer's own group to stay independent of translation. +TEST_CASE("Native command catalog includes the Help and developer-mode commands", "[speeddial][actions]") +{ + const std::vector<Slic3r::GUI::NativeCommand>& commands = Slic3r::GUI::NativeCommands::catalog(); + auto find = [&commands](const std::string& key) -> const Slic3r::GUI::NativeCommand* { + for (const auto& c : commands) + if (c.key == key) + return &c; + return nullptr; + }; + + const Slic3r::GUI::NativeCommand* first = find("help_keyboard_shortcuts"); + REQUIRE(first != nullptr); + for (const char* key : {"help_setup_wizard", "help_open_config_folder", "help_troubleshoot", "help_network_test", + "help_tip_of_the_day", "help_check_updates", "help_about", "open_wiki", "open_youtube"}) { + const Slic3r::GUI::NativeCommand* c = find(key); + REQUIRE(c != nullptr); + CHECK(c->group == first->group); + } + + const Slic3r::GUI::NativeCommand* mode_simple = find("mode_simple"); + const Slic3r::GUI::NativeCommand* dev_mode = find("toggle_developer_mode"); + REQUIRE(mode_simple != nullptr); + REQUIRE(dev_mode != nullptr); + CHECK(dev_mode->group == mode_simple->group); +} + +// Every "Add Primitive" item and shipped handy model has a palette command, grouped as in the Add +// menu. Groups are compared to a peer's own group to stay independent of translation. +TEST_CASE("Native command catalog covers the Add menus", "[speeddial][actions]") +{ + const std::vector<Slic3r::GUI::NativeCommand>& commands = Slic3r::GUI::NativeCommands::catalog(); + auto group_of = [&commands](const std::string& key) -> const std::string* { + for (const auto& c : commands) + if (c.key == key) + return &c.group; + return nullptr; + }; + + const std::string* primitive_group = group_of("add_primitive_cube"); + REQUIRE(primitive_group != nullptr); + for (const char* key : {"add_primitive_cylinder", "add_primitive_sphere", "add_primitive_cone", "add_primitive_disc", + "add_primitive_torus", "add_primitive_text", "add_primitive_svg"}) { + const std::string* group = group_of(key); + INFO(key); + REQUIRE(group != nullptr); + CHECK(*group == *primitive_group); + } + + const std::string* handy_group = group_of("add_handy_orca_cube"); + REQUIRE(handy_group != nullptr); + for (const char* key : {"add_handy_orcasliced_combo", "add_handy_orca_badge", "add_handy_orca_tolerance_test", + "add_handy_3dbenchy", "add_handy_cali_cat", "add_handy_autodesk_fdm_test", "add_handy_voron_cube", + "add_handy_stanford_bunny", "add_handy_orca_string_hell"}) { + const std::string* group = group_of(key); + INFO(key); + REQUIRE(group != nullptr); + CHECK(*group == *handy_group); + } +} + +// A setting whose mode is above the user's current mode must be prompted before it can be edited. +// Developer settings (comDevelop) are above every non-developer mode, so they always prompt then. +TEST_CASE("Settings above the current mode require a switch", "[speeddial][actions]") +{ + using Slic3r::GUI::requires_mode_switch; + using Slic3r::comAdvanced; + using Slic3r::comDevelop; + using Slic3r::comExpert; + using Slic3r::comSimple; + + CHECK(requires_mode_switch(comAdvanced, comSimple)); + CHECK(requires_mode_switch(comExpert, comSimple)); + CHECK(requires_mode_switch(comExpert, comAdvanced)); + CHECK(requires_mode_switch(comDevelop, comSimple)); + CHECK(requires_mode_switch(comDevelop, comAdvanced)); + CHECK(requires_mode_switch(comDevelop, comExpert)); + + CHECK_FALSE(requires_mode_switch(comSimple, comSimple)); + CHECK_FALSE(requires_mode_switch(comSimple, comAdvanced)); + CHECK_FALSE(requires_mode_switch(comAdvanced, comAdvanced)); + CHECK_FALSE(requires_mode_switch(comAdvanced, comExpert)); + CHECK_FALSE(requires_mode_switch(comExpert, comExpert)); + CHECK_FALSE(requires_mode_switch(comDevelop, comDevelop)); +} From 42bee12481254ebaccb425533526d6e2548e8200 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Fri, 11 Sep 2026 11:36:24 +0800 Subject: [PATCH 15/76] Speed Dial: replace tile monograms with native SVG icons Tiles previously rendered a colored monogram (title/source initials plus an ordinal) with a per-id hue. Show the matching native SVG icon instead: - AppAction/NativeCommand gain an `icon` field; commands get a curated key->icon table and settings inherit their group header's icon. - Notebook tracks each page's resource icon name and reports it in tab_options(), so the tab picker can show it too. - Searcher records the group icon so settings keep it through search. - Web tile rendering swaps monogramFor/hue for an <img>; drop the now-unused hue/text CSS vars. Add a test asserting every non-empty icon resolves to a shipped SVG. --- resources/web/dialog/SpeedDial/speeddial.js | 67 +++++-------- .../web/dialog/SpeedDial/speeddial.test.js | 24 ++--- resources/web/dialog/SpeedDial/style.css | 21 +++-- resources/web/dialog/css/theme.css | 4 - src/slic3r/GUI/ActionRegistry.cpp | 19 +++- src/slic3r/GUI/ActionRegistry.hpp | 3 + src/slic3r/GUI/NativeCommands.cpp | 94 ++++++++++++++++++- src/slic3r/GUI/NativeCommands.hpp | 4 +- src/slic3r/GUI/Notebook.cpp | 2 + src/slic3r/GUI/Notebook.hpp | 10 ++ src/slic3r/GUI/OptionsGroup.cpp | 2 +- src/slic3r/GUI/Search.cpp | 7 +- src/slic3r/GUI/Search.hpp | 5 +- src/slic3r/GUI/Tab.cpp | 8 +- tests/slic3rutils/test_action_source.cpp | 43 +++++++++ 15 files changed, 231 insertions(+), 82 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 6f251d35eb..9045262ea3 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -222,42 +222,29 @@ function shouldRenderActionList(query) { return !!((query || "").trim()); } -// Monogram code for a tile: title initial, escalated on collision by PREPENDING the source -// initial (pi+ti, e.g. "GC"), then a 1-based ordinal - so same-titled items stay distinct. -// why: ordinal is assigned by id, not by list order - list order is frecency-sorted and -// reshuffles as usage changes, which would otherwise flip who's "1" and who's "2" across runs. -function monogramFor(item, list, titleOf, sourceOf, idOf) { - var items = list || []; - var title = titleOf(item) || " "; - var ti = title.charAt(0).toUpperCase(); - var sameTitle = items.filter(function (o) { return (titleOf(o) || " ").charAt(0).toUpperCase() === ti; }); - if (sameTitle.length <= 1) - return ti; - var source = sourceOf(item) || " "; - var pi = source.charAt(0).toUpperCase(); - var sameSource = sameTitle.filter(function (o) { return (sourceOf(o) || " ").charAt(0).toUpperCase() === pi; }); - if (sameSource.length <= 1) - return pi + ti; - sameSource.sort(function (a, b) { return idOf(a) < idOf(b) ? -1 : idOf(a) > idOf(b) ? 1 : 0; }); - for (var i = 0; i < sameSource.length; i++) - if (sameSource[i] === item || idOf(sameSource[i]) === idOf(item)) - return pi + ti + (i + 1); - return pi + ti; +// Tile pictogram base path. The page lives at resources/web/dialog/SpeedDial/, so this climbs to +// resources/images/ where the same SVG icons the native GUI controls use are shipped. +var ICON_BASE = "../../../images/"; + +// SVG base name for an action's tile pictogram, or "" when it has none (commands without a GUI +// icon, plugins). Pure so the node-vm test can exercise it. +function actionIcon(a) { + return (a && a.icon) ? a.icon : ""; } -// Action tile code - see monogramFor for the escalation ladder. Settings are actions now, so -// they share this ladder (title initial, then source, then a stable ordinal). -function tileCode(action, actions) { - return monogramFor(action, actions, - function (o) { return o.title; }, - function (o) { return o.source; }, - function (o) { return o.id; }); -} - -// Put an action's monogram into a tile (search row or favourites tile). A null action (a tab row -// with no backing action) renders an empty tile. -function fillTile(tile, a) { - tile.textContent = a ? tileCode(a, ACTIONS) : ""; +// Put a pictogram into a tile (search row, favourites tile, or tab row). No icon leaves the tile +// blank. `mono` marks the white tab-strip glyphs, which the CSS recolors to the shared gray. +function fillTile(tile, a, mono) { + tile.textContent = ""; + var icon = actionIcon(a); + if (!icon) + return; + var img = document.createElement("img"); + img.className = mono ? "tile-icon tab-mono" : "tile-icon"; + img.src = ICON_BASE + icon + ".svg"; + img.alt = ""; + img.setAttribute("aria-hidden", "true"); + tile.appendChild(img); } // The active list for the main phase. A typed query ranks every action (commands/plugins/settings) @@ -461,13 +448,6 @@ function currentList() { return []; // percent - the input itself is the only field } -function hue(id) { - var h = 0; - for (var i = 0; i < id.length; i++) - h = (h * 31 + id.charCodeAt(i)) >>> 0; - return h % 360; -} - // Build a <div class=className> with the search-match ranges wrapped in <mark>. Used for both the // title and the source eyebrow. Pure (only touches the document factory), so the node-vm test never // calls it and load-time stays DOM-free. @@ -528,7 +508,6 @@ function renderFav() { var a = byId(id); var tile = document.createElement("button"); tile.className = "fav-tile" + (sel.zone === "fav" && sel.i === i ? " sel" : ""); - tile.style.setProperty("--h", hue(id)); fillTile(tile, a); var tileBadge = modeBadge(a, USER_MODE); tile.title = a.title + (tileBadge ? " (" + tileBadge + ")" : ""); @@ -629,7 +608,6 @@ function renderActionRow(a, i) { var tile = document.createElement("div"); tile.className = "tile"; - tile.style.setProperty("--h", hue(a.id)); fillTile(tile, a); var left = document.createElement("div"); @@ -805,8 +783,7 @@ function renderTabRow(t, i) { var tile = document.createElement("div"); tile.className = "tile"; - tile.style.setProperty("--h", hue(t.id)); - fillTile(tile, null); + fillTile(tile, t, true); var left = document.createElement("div"); left.className = "row-left"; diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index c8fd43add6..4fe72aba11 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -195,21 +195,15 @@ assert.deepEqual(ctx.visibleFavourites(["b", "a", "b"], [{ id: "a" }, { id: "b" assert.deepEqual(ctx.visibleFavourites([], [{ id: "a" }]), [], "no pins renders an empty quick-bar"); assert.deepEqual(ctx.visibleFavourites(["a"], []), [], "a stale config with no actions renders nothing"); -// tileCode: monogram ladder - title initial, then title+source initials, then a stable ordinal -// by id. The ordinal is keyed by id, not by list order, so frecency reshuffles never renumber tiles. -const monoPool = [ - { id: "z", title: "Repair", source: "Mesh Tools" }, - { id: "a", title: "Repair", source: "Mesh Tools" }, - { id: "b", title: "Repair", source: "Filament" } -]; -assert.equal(ctx.tileCode(monoPool[0], monoPool), "MR2", - "same title+source resolves to source+title initials with an id-keyed ordinal (id z sorts after id a)"); -assert.equal(ctx.tileCode(monoPool[1], monoPool), "MR1", - "the earlier id is numbered first among same-title+source tiles"); -assert.equal(ctx.tileCode(monoPool[2], monoPool), "FR", - "same title but different source resolves to source+title initials"); -assert.equal(ctx.tileCode({ id: "x", title: "Slice", source: "OrcaSlicer" }, [{ id: "x", title: "Slice", source: "OrcaSlicer" }]), - "S", "a unique title resolves to the bare title initial"); +// actionIcon: the SVG base name for a tile's pictogram, or "" when the action has none (blank tile). +assert.equal(ctx.actionIcon({ id: "x", title: "Slice", icon: "media_play" }), "media_play", + "an action's icon base name is returned verbatim"); +assert.equal(ctx.actionIcon({ id: "x", title: "Go to tab...", icon: "" }), "", + "an empty icon renders a blank tile"); +assert.equal(ctx.actionIcon({ id: "x", title: "Plugin action" }), "", + "a missing icon field renders a blank tile"); +assert.equal(ctx.actionIcon(null), "", + "a null action (tab row) renders a blank tile"); // needsModeSwitch: a setting is gated only when its required mode outranks the user's current mode. assert.equal(ctx.needsModeSwitch({ mode: "advanced" }, "simple"), true, "Advanced is gated in Simple mode"); diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index d6bc8ff8bf..3aea0cf15a 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -60,9 +60,7 @@ body { border: 0; border-radius: 8px; cursor: pointer; - color: hsl(var(--h) var(--speed-tile-text-s, 72%) var(--speed-tile-text-l, 38%)); - font-weight: 700; - /* why: mirror .tile centering - icons/placeholder are 18px glyphs, and a bare <button> inherits + /* why: mirror .tile centering - icons/placeholder are 16px, and a bare <button> inherits 13px + UA padding, which would clip them. inline-flex + pad:0 + overflow:hidden fits them. */ font-size: 12px; padding: 0; @@ -310,9 +308,6 @@ body { width: 26px; height: 26px; border-radius: 6px; - color: hsl(var(--h) var(--speed-tile-text-s, 72%) var(--speed-tile-text-l, 38%)); - font-weight: 700; - font-size: 12px; display: inline-flex; align-items: center; justify-content: center; @@ -320,6 +315,20 @@ body { border: 1px solid var(--speed-tile-border, #d8d8d8); } +/* Native SVG pictogram in a tile; blank tiles (no icon) have no child. */ +.tile-icon { + width: 16px; + height: 16px; + display: block; + pointer-events: none; +} + +/* Tab-strip glyphs are drawn white for the dark tab bar; recolor to the shared #949494 gray so + they read on both the light and dark tile backgrounds. */ +.tile-icon.tab-mono { + filter: brightness(0) invert(.58); +} + .row-left { flex: 1 1 auto; min-width: 0; diff --git a/resources/web/dialog/css/theme.css b/resources/web/dialog/css/theme.css index b0c78712ef..00680bf0b9 100644 --- a/resources/web/dialog/css/theme.css +++ b/resources/web/dialog/css/theme.css @@ -55,8 +55,6 @@ /* Speed dial icon tile treatment */ --speed-tile-bg: #efefef; --speed-tile-border: #d8d8d8; - --speed-tile-text-s: 74%; - --speed-tile-text-l: 34%; } :root[data-orca-theme="dark"] { @@ -95,8 +93,6 @@ /* Speed dial icon tile treatment */ --speed-tile-bg: #34343b; --speed-tile-border: #50505a; - --speed-tile-text-s: 82%; - --speed-tile-text-l: 84%; } /* Re-theme the shared common.css chrome through variables (replaces dark.css's diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index d1b6e13fe1..d1ce814b23 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -232,6 +232,7 @@ private: this->kind = AppActionKind::Command; this->group = c.group; this->input = c.input; + this->icon = c.icon; } }; @@ -554,6 +555,19 @@ void ActionRegistry::materialize_setting_actions() auto action = std::make_unique<SettingAction>(opt.opt_key(), opt.type, boost::nowide::narrow(label_w), std::string(), opt.category_local, boost::nowide::narrow(path), opt.mode); + // Tile pictogram = the icon of the setting's own group header (e.g. Advanced -> param_advanced), + // the one shown next to it in the page. Fall back to the page/category icon for groups + // without one. Keys are the English titles the GUI registers. + action->icon = opt.group_icon; + if (action->icon.empty() && !opt.category.empty()) { + if (Tab* tab = wxGetApp().get_tab(opt.type); tab) { + const auto& icons = tab->get_category_icon_map(); + auto it = icons.find(wxString(opt.category)); + if (it != icons.end()) + action->icon = it->second; + } + } + action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); if (auto it = stats.find(id); it != stats.end() && it->is_object()) { action->count = it->value("count", 0); @@ -738,6 +752,7 @@ nlohmann::json ActionRegistry::snapshot() {"source", a->source_name()}, {"group", a->group}, {"input", a->input}, + {"icon", a->icon}, {"shortcut", ""}, {"mode", mode_key(a->required_mode)}}); }; @@ -800,7 +815,9 @@ nlohmann::json ActionRegistry::tab_options() const const wxString id = notebook->GetPageName(i); if (id.empty()) continue; - out.push_back({{"id", id.ToStdString()}, {"title", notebook->GetPageText(i).ToStdString()}}); + out.push_back({{"id", id.ToStdString()}, + {"title", notebook->GetPageText(i).ToStdString()}, + {"icon", notebook->GetPageIcon(i)}}); } return out; } diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index c1667e184d..cc73d3ad5c 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -77,6 +77,9 @@ struct AppAction // Second-phase input descriptor for the palette: "percent" (jump to layer by a 0-100 // value) or "tab" (pick a notebook tab). Empty = run immediately on activation. std::string input; + // Tile pictogram: SVG base name under resources/images; empty renders a blank tile (commands + // without a GUI icon, plugins). Set from NativeCommands / the setting's category icon. + std::string icon; // Settings mode required to edit this action (SettingActions only). The palette prompts before // running an action whose mode is above the user's current mode. comSimple for everything else. ConfigOptionMode required_mode = comSimple; diff --git a/src/slic3r/GUI/NativeCommands.cpp b/src/slic3r/GUI/NativeCommands.cpp index 7dba9cf155..3886f8eb11 100644 --- a/src/slic3r/GUI/NativeCommands.cpp +++ b/src/slic3r/GUI/NativeCommands.cpp @@ -25,6 +25,7 @@ #include <cmath> #include <cstdlib> #include <exception> +#include <map> #include <string> #include <tuple> #include <utility> @@ -132,12 +133,103 @@ void select_mode(ConfigOptionMode mode) app.app_config->save(); } +// Tile pictogram per command: the SVG base name of the icon the matching GUI control already uses +// (menu/toolbar/sidebar). Absent key => blank tile. Keeping this as one table makes the curation +// reviewable and lets a test check every value resolves to a real file. +const std::map<std::string, std::string>& command_icons() +{ + static const std::map<std::string, std::string> icons = { + // Slice & Export + {"slice_and_preview", "media_play"}, + {"export_gcode", "menu_export_gcode"}, + {"export_stl", "menu_export_stl"}, + {"export_stl_multi", "menu_export_stl"}, + {"export_sliced_file", "menu_export_sliced_file"}, + {"export_all_sliced_file", "menu_export_sliced_file"}, + {"export_toolpaths_obj", "menu_export_toolpaths"}, + {"export_config", "menu_export_config"}, + {"export_3mf", "menu_save"}, + {"export_drc_single", "menu_export_stl"}, + {"export_drc_multi", "menu_export_stl"}, + // Commands + {"load_project", "menu_open"}, + {"save_project", "menu_save"}, + {"save_project_as", "menu_save"}, + {"open_preferences", "cog"}, + {"go_to_layer", "height_range_layer"}, + // Mode: the sidebar mode toggle's own icon (ParamsPanel). + {"mode_simple", "advanced"}, + {"mode_advanced", "advanced"}, + {"mode_expert", "advanced"}, + {"toggle_developer_mode", "advanced"}, + // Calibration + {"calib_temperature", "calib_sf"}, + {"calib_max_volumetric", "calib_sf"}, + {"calib_pressure_advance", "calib_sf"}, + {"calib_flow_ratio", "calib_sf"}, + {"calib_retraction", "calib_sf"}, + {"calib_cornering", "calib_sf"}, + {"calib_input_shaping_freq", "calib_sf"}, + {"calib_input_shaping_damp", "calib_sf"}, + {"calib_vfa", "calib_sf"}, + // View + {"reset_window_layout", "toolbar_reset"}, + // Object + {"obj_delete", "menu_delete"}, + {"obj_delete_all", "menu_remove"}, + {"obj_mirror_x", "menu_mirror_x"}, + {"obj_mirror_y", "menu_mirror_y"}, + {"obj_mirror_z", "menu_mirror_z"}, + {"obj_split_objects", "menu_split_objects"}, + {"obj_split_parts", "menu_split_parts"}, + {"obj_drop", "toolbar_flatten"}, + {"obj_instances_up", "instance_add"}, + {"obj_instances_down", "instance_remove"}, + {"obj_arrange", "toolbar_arrange"}, + {"obj_orient", "toolbar_orient"}, + // Add Primitive + {"add_primitive_cube", "menu_obj_cube"}, + {"add_primitive_cylinder", "menu_obj_cylinder"}, + {"add_primitive_sphere", "menu_obj_sphere"}, + {"add_primitive_cone", "menu_obj_cone"}, + {"add_primitive_disc", "menu_obj_disc"}, + {"add_primitive_torus", "menu_obj_torus"}, + {"add_primitive_text", "menu_obj_text"}, + {"add_primitive_svg", "menu_obj_svg"}, + // Plate + {"plate_add", "toolbar_add_plate"}, + {"plate_duplicate", "menu_copy"}, + {"plate_delete", "menu_delete"}, + {"plate_rename", "plate_name_edit"}, + {"plate_toggle_lock", "lock_normal"}, + {"plate_goto", "go_next_plate"}, + // Printer / Presets + {"sync_ams", "ams_fila_sync"}, + {"sync_presets", "printer_sync_ok"}, + {"preset_bundle", "menu_edit_preset"}, + // Import + {"import_file", "menu_import"}, + {"import_zip_archive", "menu_import"}, + {"import_configs", "menu_import"}, + // Help + {"help_open_config_folder", "folder-closed"}, + {"help_tip_of_the_day", "info"}, + {"help_check_updates", "ams_refresh_normal"}, + {"help_about", "OrcaSlicer_about"}, + {"open_wiki", "link_wiki_img"}, + }; + return icons; +} + std::vector<NativeCommand> build_command_catalog() { std::vector<NativeCommand> out; auto add = [&](std::string key, std::string title, std::string group, std::function<AppActionRunResult(const std::string&)> runner, std::string input = {}) { - out.push_back({std::move(key), std::move(title), std::move(group), std::move(input), std::move(runner)}); + std::string icon; + if (auto it = command_icons().find(key); it != command_icons().end()) + icon = it->second; + out.push_back({std::move(key), std::move(title), std::move(group), std::move(input), std::move(icon), std::move(runner)}); }; // ---- Slice & Export ---- diff --git a/src/slic3r/GUI/NativeCommands.hpp b/src/slic3r/GUI/NativeCommands.hpp index d586678be1..52143ed506 100644 --- a/src/slic3r/GUI/NativeCommands.hpp +++ b/src/slic3r/GUI/NativeCommands.hpp @@ -10,13 +10,15 @@ namespace Slic3r { namespace GUI { // A built-in speed-dial command: identity + how to run it. The registry keeps commands as thin // values (CommandAction) and routes run() here, so this catalog is the single source of truth for -// the behaviour (runner => an owner method) and the presentation (title/group/input). +// the behaviour (runner => an owner method), the presentation (title/group/input), and the tile +// pictogram (icon = an SVG base name under resources/images, "" for no icon). struct NativeCommand { std::string key; std::string title; std::string group; std::string input; // "percent"/"tab" or "" for immediate run + std::string icon; // SVG base name, or "" to render a blank tile std::function<AppActionRunResult(const std::string& param)> runner; }; diff --git a/src/slic3r/GUI/Notebook.cpp b/src/slic3r/GUI/Notebook.cpp index 5d10e230e9..a9eaffbc8d 100644 --- a/src/slic3r/GUI/Notebook.cpp +++ b/src/slic3r/GUI/Notebook.cpp @@ -201,6 +201,7 @@ bool ButtonsListCtrl::InsertPage(size_t n, const wxString &text, bool bSelect /* Slic3r::GUI::wxGetApp().UpdateDarkUI(btn); m_pageButtons.insert(m_pageButtons.begin() + n, btn); m_pageLabels.insert(m_pageLabels.begin() + n, text); // ORCA + m_pageIcons.insert(m_pageIcons.begin() + n, bmp_name); m_buttons_sizer->Insert(n, new wxSizerItem(btn)); m_buttons_sizer->SetCols(m_buttons_sizer->GetCols() + 1); m_sizer->Layout(); @@ -220,6 +221,7 @@ void ButtonsListCtrl::RemovePage(size_t n) Button* btn = m_pageButtons[n]; m_pageButtons.erase(m_pageButtons.begin() + n); m_pageLabels.erase(m_pageLabels.begin() + n); // ORCA + m_pageIcons.erase(m_pageIcons.begin() + n); m_buttons_sizer->Remove(n); #if __WXOSX__ RemoveChild(btn); diff --git a/src/slic3r/GUI/Notebook.hpp b/src/slic3r/GUI/Notebook.hpp index 4734122b18..6e166a337c 100644 --- a/src/slic3r/GUI/Notebook.hpp +++ b/src/slic3r/GUI/Notebook.hpp @@ -33,6 +33,8 @@ public: void SetPageText(size_t n, const wxString& strText); void SetCompact(size_t n, bool compact); // ORCA wxString GetPageText(size_t n) const; + // Resource name the page was inserted with (empty for plugin pages, which pass a wxBitmap). + const std::string& GetPageIcon(size_t n) const { return m_pageIcons[n]; } wxFlexGridSizer* GetBtnsSizer(){return m_buttons_sizer;}; // ORCA // ORCA: a companion widget shown right after the tab buttons (before any side_tools), e.g. // an overflow indicator. Pass nullptr to remove it; ownership stays with the caller. @@ -47,6 +49,7 @@ private: int m_btn_margin; int m_line_margin; std::vector<wxString> m_pageLabels; // ORCA + std::vector<std::string> m_pageIcons; // ORCA: resource icon name per page, plugin pages empty wxWindow* m_overflow_button{nullptr}; // ORCA }; @@ -241,6 +244,13 @@ public: return GetBtnsListCtrl()->GetPageText(n); } + // Resource icon name the page was inserted with; empty for pages added with a wxBitmap. + std::string GetPageIcon(size_t n) const + { + wxCHECK_MSG(n < GetPageCount(), std::string(), wxS("Invalid page")); + return GetBtnsListCtrl()->GetPageIcon(n); + } + virtual bool SetPageImage(size_t WXUNUSED(n), int WXUNUSED(imageId)) override { return false; diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index 25c13c4b8d..af8936a75a 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -650,7 +650,7 @@ Option ConfigOptionsGroup::get_option(const std::string& opt_key, int opt_index m_opt_map.emplace(opt_id, pair); if (m_use_custom_ctrl) // fill group and category values just for options from Settings Tab - wxGetApp().sidebar().get_searcher().add_key(opt_id, static_cast<Preset::Type>(this->config_type()), title, this->config_category()); + wxGetApp().sidebar().get_searcher().add_key(opt_id, static_cast<Preset::Type>(this->config_type()), title, this->config_category(), this->icon); return Option(*m_config->def()->get(opt_key), opt_id); } diff --git a/src/slic3r/GUI/Search.cpp b/src/slic3r/GUI/Search.cpp index 77b80208fc..aece404515 100644 --- a/src/slic3r/GUI/Search.cpp +++ b/src/slic3r/GUI/Search.cpp @@ -100,7 +100,7 @@ void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type ty if (!label.IsEmpty()) dst.emplace_back(Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(), gc.group.ToStdWstring(), - _(gc.group).ToStdWstring(), gc.category.ToStdWstring(), GUI::Tab::translate_category(gc.category, type).ToStdWstring(), + _(gc.group).ToStdWstring(), into_u8(gc.icon), gc.category.ToStdWstring(), GUI::Tab::translate_category(gc.category, type).ToStdWstring(), false, opt_mode}); }; @@ -394,6 +394,7 @@ static Option create_option(const std::string &opt_key, const wxString &label, P (_(label) + suffix_local).ToStdWstring(), gc.group.ToStdWstring(), _(gc.group).ToStdWstring(), + into_u8(gc.icon), gc.category.ToStdWstring(), GUI::Tab::translate_category(category, type).ToStdWstring()}; } @@ -447,9 +448,9 @@ void OptionsSearcher::dlg_msw_rescale() if (search_dialog) search_dialog->msw_rescale(); } -void OptionsSearcher::add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category) +void OptionsSearcher::add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, const wxString &icon) { - groups_and_categories[get_key(opt_key, type)] = GroupAndCategory{group, category}; + groups_and_categories[get_key(opt_key, type)] = GroupAndCategory{group, category, icon}; } //------------------------------------------ // SearchItem diff --git a/src/slic3r/GUI/Search.hpp b/src/slic3r/GUI/Search.hpp index e28ada2675..b32f2b11ca 100644 --- a/src/slic3r/GUI/Search.hpp +++ b/src/slic3r/GUI/Search.hpp @@ -45,6 +45,7 @@ struct GroupAndCategory { wxString group; wxString category; + wxString icon; // icon of the group's own header, or empty }; struct Option @@ -60,6 +61,7 @@ struct Option std::wstring label_local; std::wstring group; std::wstring group_local; + std::string group_icon; // SVG base name of the group's own header icon, or empty std::wstring category; std::wstring category_local; bool multi_category { false }; @@ -128,7 +130,8 @@ public: bool search(); bool search(const std::string &search, bool force = false, Preset::Type type = Preset::TYPE_INVALID); - void add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category); + void add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, + const wxString &icon = wxEmptyString); size_t size() const { return found_size(); } diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 2dedb23365..d404283c70 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -5050,7 +5050,7 @@ void TabPrinter::build_fff() // Register by hand so the UnsavedChanges dialog can render a row for it. wxGetApp().sidebar().get_searcher().add_key("printer_agent", m_type, optgroup->title, - optgroup->config_category()); + optgroup->config_category(), optgroup->icon); } } @@ -5765,7 +5765,7 @@ if (is_marlin_flavor) for (auto &group : m_pages[n_before_extruders]->m_optgroups) { group->set_config_category_and_type(first_extruder_title, m_type); for (auto &opt : group->opt_map()) - searcher.add_key(opt.first + "#0", m_type, group->title, first_extruder_title); + searcher.add_key(opt.first + "#0", m_type, group->title, first_extruder_title, group->icon); } Thaw(); @@ -7869,8 +7869,8 @@ wxSizer* TabPrinter::create_bed_shape_widget(wxWindow* parent) { Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher(); const Search::GroupAndCategory& gc = searcher.get_group_and_category("printable_area"); - searcher.add_key("bed_custom_texture", m_type, gc.group, gc.category); - searcher.add_key("bed_custom_model", m_type, gc.group, gc.category); + searcher.add_key("bed_custom_texture", m_type, gc.group, gc.category, gc.icon); + searcher.add_key("bed_custom_model", m_type, gc.group, gc.category, gc.icon); } return sizer; diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 0dde4eb382..8c5e074a2e 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -3,6 +3,8 @@ #include "slic3r/GUI/ActionRegistry.hpp" #include "slic3r/GUI/NativeCommands.hpp" +#include <boost/filesystem.hpp> + #include <memory> #include <set> #include <string> @@ -113,6 +115,47 @@ TEST_CASE("Native command catalog has unique keys and present titles", "[speeddi } } +// Every command's tile pictogram is the SVG the matching GUI control already uses; an absent icon +// means a blank tile (like the tab picker). Guard representative names and that every non-empty +// value resolves to a shipped file, so a rename/typo cannot leave broken images in the palette. +TEST_CASE("Native command icons resolve to shipped SVGs", "[speeddial][actions]") +{ + const std::vector<Slic3r::GUI::NativeCommand>& commands = Slic3r::GUI::NativeCommands::catalog(); + auto icon_of = [&commands](const std::string& key) -> const std::string* { + for (const auto& c : commands) + if (c.key == key) + return &c.icon; + return nullptr; + }; + + struct Expected + { + const char* key; + const char* icon; + }; + for (const Expected& e : {Expected{"load_project", "menu_open"}, + Expected{"save_project", "menu_save"}, + Expected{"sync_ams", "ams_fila_sync"}, + Expected{"mode_simple", "advanced"}, + Expected{"calib_temperature", "calib_sf"}, + Expected{"plate_add", "toolbar_add_plate"}, + Expected{"add_primitive_cube", "menu_obj_cube"}, + Expected{"go_to_tab", ""}}) { + const std::string* icon = icon_of(e.key); + INFO(e.key); + REQUIRE(icon != nullptr); + CHECK(*icon == e.icon); + } + + const boost::filesystem::path images = boost::filesystem::path(PROFILES_DIR).parent_path() / "images"; + for (const auto& c : commands) { + if (c.icon.empty()) + continue; + INFO(c.key << " -> " << c.icon); + CHECK(boost::filesystem::exists(images / (c.icon + ".svg"))); + } +} + // The Help-menu commands, wiki/YouTube links and the developer-mode toggle are part of the palette. // Guard their presence and that they stay grouped with their peers, so a catalog edit cannot drop // or scatter them. Groups are compared to the peer's own group to stay independent of translation. From 7c2991d00c3c9fc6554bf329129cad10170176bc Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Fri, 11 Sep 2026 13:05:39 +0800 Subject: [PATCH 16/76] Update translations. Code dedup and cleanup --- .github/workflows/unit_tests.yml | 6 + localization/i18n/OrcaSlicer.pot | 76 +++-- localization/i18n/ca/OrcaSlicer_ca.po | 116 +++++-- localization/i18n/cs/OrcaSlicer_cs.po | 116 +++++-- localization/i18n/de/OrcaSlicer_de.po | 116 +++++-- localization/i18n/en/OrcaSlicer_en.po | 76 +++-- localization/i18n/es/OrcaSlicer_es.po | 108 +++++-- localization/i18n/eu/OrcaSlicer_eu.po | 114 +++++-- localization/i18n/fr/OrcaSlicer_fr.po | 116 +++++-- localization/i18n/hu/OrcaSlicer_hu.po | 116 +++++-- localization/i18n/it/OrcaSlicer_it.po | 116 +++++-- localization/i18n/ja/OrcaSlicer_ja.po | 116 +++++-- localization/i18n/ko/OrcaSlicer_ko.po | 116 +++++-- localization/i18n/lt/OrcaSlicer_lt.po | 116 +++++-- localization/i18n/nl/OrcaSlicer_nl.po | 116 +++++-- localization/i18n/pl/OrcaSlicer_pl.po | 116 +++++-- localization/i18n/pt_BR/OrcaSlicer_pt_BR.po | 110 +++++-- localization/i18n/ru/OrcaSlicer_ru.po | 112 +++++-- localization/i18n/sv/OrcaSlicer_sv.po | 116 +++++-- localization/i18n/th/OrcaSlicer_th.po | 116 +++++-- localization/i18n/tr/OrcaSlicer_tr.po | 116 +++++-- localization/i18n/uk/OrcaSlicer_uk.po | 118 +++++-- localization/i18n/vi/OrcaSlicer_vi.po | 116 +++++-- localization/i18n/zh_CN/OrcaSlicer_zh_CN.po | 116 +++++-- localization/i18n/zh_TW/OrcaSlicer_zh_TW.po | 116 +++++-- resources/web/data/text.js | 30 ++ resources/web/dialog/SpeedDial/index.html | 1 + resources/web/dialog/SpeedDial/speeddial.js | 276 +++++++++-------- .../web/dialog/SpeedDial/speeddial.test.js | 16 +- resources/web/js/fuzzy-search.js | 38 ++- resources/web/js/fuzzy-search.test.js | 11 +- src/slic3r/GUI/ActionRegistry.cpp | 132 +++----- src/slic3r/GUI/ActionRegistry.hpp | 30 +- src/slic3r/GUI/GUI_App.cpp | 47 ++- src/slic3r/GUI/GUI_App.hpp | 5 + src/slic3r/GUI/KBShortcutsDialog.cpp | 4 +- src/slic3r/GUI/MainFrame.cpp | 19 +- src/slic3r/GUI/NativeCommands.cpp | 291 +++++++----------- src/slic3r/GUI/NativeCommands.hpp | 16 +- src/slic3r/GUI/Notebook.cpp | 6 + src/slic3r/GUI/Notebook.hpp | 15 +- src/slic3r/GUI/PluginsDialog.cpp | 27 +- src/slic3r/GUI/Preferences.cpp | 5 + src/slic3r/GUI/Search.cpp | 4 +- src/slic3r/GUI/Search.hpp | 4 - src/slic3r/GUI/SpeedDialDialog.cpp | 15 +- tests/slic3rutils/test_action_source.cpp | 55 +++- 47 files changed, 2559 insertions(+), 1180 deletions(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 5f54f6581d..e05a927a03 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -49,6 +49,12 @@ jobs: cmakeVersion: "~4.3.0" # use most recent 4.3.x version useLocalCache: true useCloudCache: true + - name: Run web dialog JS tests + timeout-minutes: 5 + shell: bash + run: | + node resources/web/js/fuzzy-search.test.js + node resources/web/dialog/SpeedDial/speeddial.test.js - name: Unpackage and Run Unit Tests timeout-minutes: 20 shell: bash diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index bbdc0e59be..15768b24ea 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -2293,13 +2293,6 @@ msgstr "" msgid "%s has been removed." msgstr "" - -msgid "Select the language" -msgstr "" - -msgid "Language" -msgstr "" - #, possible-c-format, possible-boost-format msgid "Switching Orca Slicer to language %s failed." msgstr "" @@ -2327,6 +2320,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "" +msgid "Plugins refreshed." +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + msgid "Plugin Terminal" msgstr "" @@ -4322,6 +4328,12 @@ msgid "" "Error message: %1%" msgstr "" +#, possible-boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, possible-boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "" @@ -6129,6 +6141,9 @@ msgstr "" msgid "Preferences" msgstr "" +msgid "Open speed dial..." +msgstr "" + msgctxt "Menu" msgid "Edit" msgstr "" @@ -8292,7 +8307,6 @@ msgstr "" msgid "Language selection" msgstr "" - msgid "Asia-Pacific" msgstr "" @@ -8386,6 +8400,9 @@ msgstr "" msgid "General" msgstr "" +msgid "Language" +msgstr "" + msgid "Metric" msgstr "" @@ -8568,6 +8585,12 @@ msgstr "" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "" +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "" @@ -9232,6 +9255,9 @@ msgstr "" msgid "Detach from parent" msgstr "" +msgid "Save without parent" +msgstr "" + msgid "Unique preset" msgstr "" @@ -10983,6 +11009,16 @@ msgstr "" msgid "Switch table page" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "" @@ -11138,13 +11174,6 @@ msgstr "" msgid "Switch between Prepare/Preview" msgstr "" -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "" - -msgid "Open actions speed dial" -msgstr "" - msgid "Plater" msgstr "" @@ -11403,7 +11432,7 @@ msgstr "" msgid "Copying of file %1% to %2% failed: %3%" msgstr "" -msgid "Please check any unsaved changes before updating the configuration." +msgid "Downloading new vendor profile(s): " msgstr "" msgid "Configuration package: " @@ -11412,6 +11441,12 @@ msgstr "" msgid " updated to " msgstr "" +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "" + msgid "Open G-code file:" msgstr "" @@ -12754,6 +12789,9 @@ msgstr "" msgid "Concentric" msgstr "" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "" @@ -12823,7 +12861,7 @@ msgid "Top surface fill order" msgstr "" msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" @@ -12832,7 +12870,7 @@ msgid "Bottom surface fill order" msgstr "" msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index 373eb6e9fd..d121446844 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2025-03-15 10:55+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -2522,13 +2522,6 @@ msgstr "Hi ha una actualització disponible. Obriu el quadre de diàleg del paqu msgid "%s has been removed." msgstr "%s s'ha eliminat." - -msgid "Select the language" -msgstr "Seleccioneu l'idioma" - -msgid "Language" -msgstr "Idioma" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2566,6 +2559,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "No s'ha pogut obrir el quadre de diàleg de Connectors (error desconegut)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Terminal de connectors" @@ -4687,6 +4693,12 @@ msgstr "" "Error en copiar el codi-G temporal al codi-G de sortida. Potser la targeta SD està bloquejada contra escriptura?\n" "Missatge d'error: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Error en copiar el codi-G temporal al codi-G de sortida. Hi pot haver un problema amb el dispositiu de destinació, intenteu exportar novament o utilitzeu un dispositiu diferent. El codi-G de sortida malmès és a %1%.tmp." @@ -6599,6 +6611,9 @@ msgstr "Mostrar el contorn al voltant de l'objecte seleccionat a l'escena 3D" msgid "Preferences" msgstr "Preferències" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8922,7 +8937,6 @@ msgstr "Voleu continuar?" msgid "Language selection" msgstr "Selecció d'idiomes" - msgid "Asia-Pacific" msgstr "Àsia-Pacífic" @@ -9028,6 +9042,9 @@ msgstr "Ruta de la Instància Actual: " msgid "General" msgstr "General" +msgid "Language" +msgstr "Idioma" + msgid "Metric" msgstr "Mètric" @@ -9236,6 +9253,12 @@ msgstr "Gestió multidispositiu" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Amb aquesta opció habilitada, podeu enviar una tasca a diversos dispositius alhora i gestionar múltiples dispositius." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Finestra emergent per seleccionar el mode d'agrupació de filaments" @@ -9989,6 +10012,9 @@ msgstr "Copia en aquest perfil tots els valors heretats del perfil pare i elimin msgid "Detach from parent" msgstr "Desvincula del pare" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Perfil únic" @@ -11912,6 +11938,17 @@ msgstr "Mostrar/Amagar quadre de diàleg Configuració de Dispositius 3Dconnexio msgid "Switch table page" msgstr "Canviar de pàgina de taula" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Espai" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Mostrar la llista de dreceres de teclat" @@ -12077,15 +12114,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Canviar entre Preparar/Previsualitzar" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Espai" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Obrir el marcatge ràpid d'accions" - msgid "Plater" msgstr "Plataforma" @@ -12359,8 +12387,8 @@ msgstr "Reparació cancel·lada" msgid "Copying of file %1% to %2% failed: %3%" msgstr "La còpia del fitxer %1% a %2% ha fallat: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Cal comprovar els canvis no desats abans de les actualitzacions de configuració." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Paquet de configuració: " @@ -12368,6 +12396,12 @@ msgstr "Paquet de configuració: " msgid " updated to " msgstr " actualitzat a " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Cal comprovar els canvis no desats abans de les actualitzacions de configuració." + msgid "Open G-code file:" msgstr "Obre el fitxer de Codi-G:" @@ -13991,6 +14025,9 @@ msgstr "Alineat Rectilini" msgid "Concentric" msgstr "Concèntric" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Corba de Hilbert" @@ -14080,29 +14117,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Ordre d'emplenament de la superfície superior" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Direcció en què s'omplen les superfícies superiors quan s'utilitza un patró centrat (Concèntric, Acords d'Arquimedes, Octograma en Espiral).\n" -"Cap a fora comença al centre de la superfície, de manera que l'excés de material es desplaça cap a la vora, on és menys visible. Cap a dins comença a la vora i acaba amb les corbes tancades del centre.\n" -"Per defecte utilitza l'ordenació pel camí més curt, que pot anar en qualsevol direcció." # AI Translated msgid "Bottom surface fill order" msgstr "Ordre d'emplenament de la superfície inferior" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Direcció en què s'omplen les superfícies inferiors quan s'utilitza un patró centrat (Concèntric, Acords d'Arquimedes, Octograma en Espiral).\n" -"Cap a dins comença cada superfície amb les corbes exteriors més amples, cosa que millora l'adherència de la capa inicial en plaques on les corbes tancades del centre poden no adherir-se. Cap a fora comença al centre i desplaça l'excés de material cap a la vora.\n" -"Per defecte utilitza l'ordenació pel camí més curt, que pot anar en qualsevol direcció." msgid "Internal solid infill pattern" msgstr "Patró de farciment sòlid intern" @@ -22204,6 +22233,33 @@ msgstr "" "Evitar la deformació( warping )\n" "Sabíeu que quan imprimiu materials propensos a deformar-se, com ara l'ABS, augmentar adequadament la temperatura del llit pot reduir la probabilitat de deformació?" +#~ msgid "Select the language" +#~ msgstr "Seleccioneu l'idioma" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Obrir el marcatge ràpid d'accions" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Direcció en què s'omplen les superfícies superiors quan s'utilitza un patró centrat (Concèntric, Acords d'Arquimedes, Octograma en Espiral).\n" +#~ "Cap a fora comença al centre de la superfície, de manera que l'excés de material es desplaça cap a la vora, on és menys visible. Cap a dins comença a la vora i acaba amb les corbes tancades del centre.\n" +#~ "Per defecte utilitza l'ordenació pel camí més curt, que pot anar en qualsevol direcció." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Direcció en què s'omplen les superfícies inferiors quan s'utilitza un patró centrat (Concèntric, Acords d'Arquimedes, Octograma en Espiral).\n" +#~ "Cap a dins comença cada superfície amb les corbes exteriors més amples, cosa que millora l'adherència de la capa inicial en plaques on les corbes tancades del centre poden no adherir-se. Cap a fora comença al centre i desplaça l'excés de material cap a la vora.\n" +#~ "Per defecte utilitza l'ordenació pel camí més curt, que pot anar en qualsevol direcció." + # AI Translated #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "La visualització en directe nativa de Wayland requereix el sink de vídeo GTK de GStreamer. Instal·leu el connector gtksink per a GStreamer i reinicieu l'OrcaSlicer." diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index b0d64c8005..0fee4eedd1 100644 --- a/localization/i18n/cs/OrcaSlicer_cs.po +++ b/localization/i18n/cs/OrcaSlicer_cs.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: \n" "Last-Translator: Jakub Hencl\n" "Language-Team: \n" @@ -2482,13 +2482,6 @@ msgstr "Je k dispozici aktualizace. Otevřete dialog balíčku předvoleb a prov msgid "%s has been removed." msgstr "%s bylo odstraněno." - -msgid "Select the language" -msgstr "Zvolte jazyk" - -msgid "Language" -msgstr "Jazyk" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2526,6 +2519,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Nepodařilo se otevřít dialog Pluginy (neznámá chyba)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Terminál pluginu" @@ -4647,6 +4653,12 @@ msgstr "" "Kopírování dočasného G-kódu do výstupního G-kódu selhalo. Možná je SD karta uzamčená pro zápis?\n" "Chybová zpráva: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Kopírování dočasného G-kódu do výstupního G-kódu selhalo. Může být problém s cílovým zařízením, zkuste prosím exportovat znovu nebo použijte jiné zařízení. Poškozený výstupní G-kód je na %1%.tmp." @@ -6564,6 +6576,9 @@ msgstr "Zobrazit obrys kolem vybraného objektu ve 3D scéně." msgid "Preferences" msgstr "Předvolby" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8880,7 +8895,6 @@ msgstr "Chcete pokračovat?" msgid "Language selection" msgstr "Výběr jazyka" - msgid "Asia-Pacific" msgstr "Asie-Pacifik" @@ -8986,6 +9000,9 @@ msgstr "Cesta k aktuální instanci: " msgid "General" msgstr "Obecné" +msgid "Language" +msgstr "Jazyk" + msgid "Metric" msgstr "Metrika" @@ -9190,6 +9207,12 @@ msgstr "Správa více zařízení" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Pokud je tato volba povolena, můžete odeslat úlohu na více zařízení současně a spravovat více zařízení." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Zobrazit dialog pro výběr režimu seskupení filamentů" @@ -9938,6 +9961,9 @@ msgstr "Zkopíruje do této předvolby všechny hodnoty zděděné z nadřazené msgid "Detach from parent" msgstr "Oddělit od nadřazeného" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Samostatná předvolba" @@ -11899,6 +11925,17 @@ msgstr "Zobrazit/Skrýt dialog nastavení zařízení 3Dconnexion" msgid "Switch table page" msgstr "Přepnout stránku tabulky" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Mezerník" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Zobrazit seznam klávesových zkratek" @@ -12061,15 +12098,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Přepnout mezi Přípravou/Náhledem" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Mezerník" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Otevřít rychlou nabídku akcí" - msgid "Plater" msgstr "Deska" @@ -12343,8 +12371,8 @@ msgstr "Oprava zrušena" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Kopírování souboru %1% do %2% selhalo: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Nejprve je třeba zkontrolovat neuložené změny před aktualizací konfigurace." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Balíček konfigurace: " @@ -12352,6 +12380,12 @@ msgstr "Balíček konfigurace: " msgid " updated to " msgstr " aktualizováno na " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Nejprve je třeba zkontrolovat neuložené změny před aktualizací konfigurace." + msgid "Open G-code file:" msgstr "Otevřít G-code soubor:" @@ -13956,6 +13990,9 @@ msgstr "Zarovnaná pravoúhlá" msgid "Concentric" msgstr "Koncentrický" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Hilbertova křivka" @@ -14045,29 +14082,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Pořadí vyplňování horního povrchu" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Směr, ve kterém jsou horní povrchy vyplňovány při použití vzoru vycházejícího ze středu (Koncentrický, Archimédovy akordy, Oktagramová spirála).\n" -"Ven začíná ve středu povrchu, takže je přebytečný materiál vytlačen k okraji, kde je nejméně viditelný. Dovnitř začíná u okraje a končí těsnými oblouky ve středu.\n" -"Výchozí používá řazení podle nejkratší dráhy, které může probíhat v obou směrech." # AI Translated msgid "Bottom surface fill order" msgstr "Pořadí vyplňování spodního povrchu" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Směr, ve kterém jsou spodní povrchy vyplňovány při použití vzoru vycházejícího ze středu (Koncentrický, Archimédovy akordy, Oktagramová spirála).\n" -"Dovnitř začíná každý povrch širšími vnějšími oblouky, což zlepšuje přilnavost první vrstvy na podložkách, kde se těsné oblouky ve středu nemusí přichytit. Ven začíná ve středu a přebytečný materiál vytlačuje k okraji.\n" -"Výchozí používá řazení podle nejkratší dráhy, které může probíhat v obou směrech." msgid "Internal solid infill pattern" msgstr "Vzor vnitřní plné výplně" @@ -22185,6 +22214,33 @@ msgstr "" "Zamezte kroucení\n" "Víte, že při tisku materiálů náchylných ke kroucení, jako je ABS, může vhodné zvýšení teploty vyhřívané desky snížit pravděpodobnost kroucení?" +#~ msgid "Select the language" +#~ msgstr "Zvolte jazyk" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Otevřít rychlou nabídku akcí" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Směr, ve kterém jsou horní povrchy vyplňovány při použití vzoru vycházejícího ze středu (Koncentrický, Archimédovy akordy, Oktagramová spirála).\n" +#~ "Ven začíná ve středu povrchu, takže je přebytečný materiál vytlačen k okraji, kde je nejméně viditelný. Dovnitř začíná u okraje a končí těsnými oblouky ve středu.\n" +#~ "Výchozí používá řazení podle nejkratší dráhy, které může probíhat v obou směrech." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Směr, ve kterém jsou spodní povrchy vyplňovány při použití vzoru vycházejícího ze středu (Koncentrický, Archimédovy akordy, Oktagramová spirála).\n" +#~ "Dovnitř začíná každý povrch širšími vnějšími oblouky, což zlepšuje přilnavost první vrstvy na podložkách, kde se těsné oblouky ve středu nemusí přichytit. Ven začíná ve středu a přebytečný materiál vytlačuje k okraji.\n" +#~ "Výchozí používá řazení podle nejkratší dráhy, které může probíhat v obou směrech." + # AI Translated #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Nativní živý náhled ve Waylandu vyžaduje video sink GStreamer GTK. Nainstalujte prosím plugin gtksink pro GStreamer a poté restartujte OrcaSlicer." diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index bd25405cc3..8b61d9e08d 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: \n" "Last-Translator: Heiko Liebscher <hliebschergmail.com>\n" "Language-Team: \n" @@ -2430,13 +2430,6 @@ msgstr "Es ist ein Update verfügbar. Öffnen Sie den Profilbündel-Dialog, um e msgid "%s has been removed." msgstr "%s wurde entfernt." - -msgid "Select the language" -msgstr "Sprache wählen" - -msgid "Language" -msgstr "Sprache" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2474,6 +2467,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Öffnen des Plugins-Dialogs fehlgeschlagen (unbekannter Fehler)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Plugin-Terminal" @@ -4554,6 +4560,12 @@ msgstr "" "Das Kopieren des temporären G-Codes in den Ausgabe-G-Code ist fehlgeschlagen. Ist die SD-Karte schreibgeschützt?\n" "Fehlermeldung: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Das Kopieren des temporären G-Codes in den Ausgabe-G-Code ist fehlgeschlagen. Es könnte ein Problem mit dem Zielgerät geben. Versuchen Sie es erneut oder verwenden Sie ein anderes Gerät. Der beschädigte Ausgabe-G-Code befindet sich in %1%.tmp." @@ -6452,6 +6464,9 @@ msgstr "Kontur um das ausgewählte Objekt in der 3D-Szene anzeigen." msgid "Preferences" msgstr "Einstellungen" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8752,7 +8767,6 @@ msgstr "Möchten Sie fortfahren?" msgid "Language selection" msgstr "Sprachauswahl" - msgid "Asia-Pacific" msgstr "Asien-Pazifik" @@ -8857,6 +8871,9 @@ msgstr "Aktueller Instanzpfad: " msgid "General" msgstr "Allgemein" +msgid "Language" +msgstr "Sprache" + msgid "Metric" msgstr "Metrisch" @@ -9061,6 +9078,12 @@ msgstr "Multi-Geräte-Verwaltung" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Wenn diese Option aktiviert ist, können Sie eine Aufgabe gleichzeitig an mehrere Geräte senden und mehrere Geräte verwalten." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Popup zum Auswählen des Filament-Gruppierungsmodus" @@ -9771,6 +9794,9 @@ msgstr "Kopiert alle vom übergeordneten Profil geerbten Werte in dieses Profil msgid "Detach from parent" msgstr "Vom übergeordneten Element trennen" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Eigenständiges Profil" @@ -11655,6 +11681,17 @@ msgstr "Dialogfeld für 3Dconnexion Geräteeinstellungen anzeigen/ausblenden" msgid "Switch table page" msgstr "Seitenwechsel" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Leertaste" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Liste der Tastaturkürzel anzeigen" @@ -11815,15 +11852,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Zwischen Vorbereiten/ Vorschau wechseln" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Leertaste" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Aktions-Schnellwahl öffnen" - msgid "Plater" msgstr "Druckplatte" @@ -12090,8 +12118,8 @@ msgstr "Reparatur abgebrochen" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Kopieren der Datei %1% nach %2% fehlgeschlagen: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Vor der Aktualisierung der Konfiguration müssen die nicht gespeicherten Änderungen überprüft werden." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Konfigurationspaket:" @@ -12099,6 +12127,12 @@ msgstr "Konfigurationspaket:" msgid " updated to " msgstr " aktualisiert auf " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Vor der Aktualisierung der Konfiguration müssen die nicht gespeicherten Änderungen überprüft werden." + msgid "Open G-code file:" msgstr "Öffne G-Code-Datei:" @@ -13665,6 +13699,9 @@ msgstr "Geradlinig ausgerichtet" msgid "Concentric" msgstr "Konzentrisch" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Hilbert-Kurve" @@ -13754,29 +13791,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Füllreihenfolge der oberen Oberfläche" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Richtung, in der obere Oberflächen gefüllt werden, wenn ein mittenbasiertes Muster (Konzentrisch, Archimedische Akkorde, Oktagramm Spirale) verwendet wird.\n" -"Nach außen beginnt in der Mitte der Oberfläche, sodass überschüssiges Material zum Rand geschoben wird, wo es am wenigsten sichtbar ist. Nach innen beginnt am Rand und endet mit den engen Kurven in der Mitte.\n" -"Standard verwendet die Sortierung nach kürzestem Pfad, die in beide Richtungen verlaufen kann." # AI Translated msgid "Bottom surface fill order" msgstr "Füllreihenfolge der unteren Oberfläche" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Richtung, in der untere Oberflächen gefüllt werden, wenn ein mittenbasiertes Muster (Konzentrisch, Archimedische Akkorde, Oktagramm Spirale) verwendet wird.\n" -"Nach innen beginnt jede Oberfläche mit den breiteren äußeren Kurven, was die Haftung der ersten Schicht auf Druckbetten verbessert, auf denen die engen Kurven in der Mitte möglicherweise nicht haften. Nach außen beginnt in der Mitte und schiebt überschüssiges Material zum Rand.\n" -"Standard verwendet die Sortierung nach kürzestem Pfad, die in beide Richtungen verlaufen kann." msgid "Internal solid infill pattern" msgstr "Muster für das interne feste Füllmuster" @@ -21605,6 +21634,33 @@ msgstr "" "Verwerfungen vermeiden\n" "Wussten Sie, dass beim Drucken von Materialien, die zu Verwerfungen neigen, wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die Wahrscheinlichkeit von Verwerfungen verringert werden kann?" +#~ msgid "Select the language" +#~ msgstr "Sprache wählen" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Aktions-Schnellwahl öffnen" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Richtung, in der obere Oberflächen gefüllt werden, wenn ein mittenbasiertes Muster (Konzentrisch, Archimedische Akkorde, Oktagramm Spirale) verwendet wird.\n" +#~ "Nach außen beginnt in der Mitte der Oberfläche, sodass überschüssiges Material zum Rand geschoben wird, wo es am wenigsten sichtbar ist. Nach innen beginnt am Rand und endet mit den engen Kurven in der Mitte.\n" +#~ "Standard verwendet die Sortierung nach kürzestem Pfad, die in beide Richtungen verlaufen kann." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Richtung, in der untere Oberflächen gefüllt werden, wenn ein mittenbasiertes Muster (Konzentrisch, Archimedische Akkorde, Oktagramm Spirale) verwendet wird.\n" +#~ "Nach innen beginnt jede Oberfläche mit den breiteren äußeren Kurven, was die Haftung der ersten Schicht auf Druckbetten verbessert, auf denen die engen Kurven in der Mitte möglicherweise nicht haften. Nach außen beginnt in der Mitte und schiebt überschüssiges Material zum Rand.\n" +#~ "Standard verwendet die Sortierung nach kürzestem Pfad, die in beide Richtungen verlaufen kann." + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Native Wayland Liveview erfordert das GStreamer GTK Video Sink. Bitte installieren Sie das gtksink-Plugin für GStreamer und starten Sie OrcaSlicer neu." diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index 35c7f8a87a..0cdadcb5d3 100644 --- a/localization/i18n/en/OrcaSlicer_en.po +++ b/localization/i18n/en/OrcaSlicer_en.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2026-06-17 15:44-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: \n" @@ -2289,13 +2289,6 @@ msgstr "" msgid "%s has been removed." msgstr "" - -msgid "Select the language" -msgstr "" - -msgid "Language" -msgstr "" - #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." msgstr "" @@ -2323,6 +2316,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "" +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + msgid "Plugin Terminal" msgstr "" @@ -4318,6 +4324,12 @@ msgid "" "Error message: %1%" msgstr "" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "" @@ -6125,6 +6137,9 @@ msgstr "" msgid "Preferences" msgstr "" +msgid "Open speed dial..." +msgstr "" + msgctxt "Menu" msgid "Edit" msgstr "" @@ -8288,7 +8303,6 @@ msgstr "" msgid "Language selection" msgstr "" - msgid "Asia-Pacific" msgstr "" @@ -8382,6 +8396,9 @@ msgstr "" msgid "General" msgstr "" +msgid "Language" +msgstr "" + msgid "Metric" msgstr "" @@ -8564,6 +8581,12 @@ msgstr "" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "" +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "" @@ -9228,6 +9251,9 @@ msgstr "" msgid "Detach from parent" msgstr "" +msgid "Save without parent" +msgstr "" + msgid "Unique preset" msgstr "" @@ -10979,6 +11005,16 @@ msgstr "" msgid "Switch table page" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "" @@ -11134,13 +11170,6 @@ msgstr "" msgid "Switch between Prepare/Preview" msgstr "" -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "" - -msgid "Open actions speed dial" -msgstr "" - msgid "Plater" msgstr "" @@ -11399,7 +11428,7 @@ msgstr "" msgid "Copying of file %1% to %2% failed: %3%" msgstr "" -msgid "Please check any unsaved changes before updating the configuration." +msgid "Downloading new vendor profile(s): " msgstr "" msgid "Configuration package: " @@ -11408,6 +11437,12 @@ msgstr "" msgid " updated to " msgstr "" +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "" + msgid "Open G-code file:" msgstr "" @@ -12750,6 +12785,9 @@ msgstr "" msgid "Concentric" msgstr "" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "" @@ -12819,7 +12857,7 @@ msgid "Top surface fill order" msgstr "" msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" @@ -12828,7 +12866,7 @@ msgid "Bottom surface fill order" msgstr "" msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index efe4c7dbcd..9ea245a1bd 100644 --- a/localization/i18n/es/OrcaSlicer_es.po +++ b/localization/i18n/es/OrcaSlicer_es.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: \n" "Last-Translator: Ian A. Bassi <>\n" "Language-Team: \n" @@ -2356,13 +2356,6 @@ msgstr "Hay una actualización disponible. Abra el cuadro de diálogo del paquet msgid "%s has been removed." msgstr "Se ha eliminado %s." - -msgid "Select the language" -msgstr "Seleccionar el idioma" - -msgid "Language" -msgstr "Idioma" - #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." msgstr "No se pudo cambiar Orca Slicer al idioma %s." @@ -2394,6 +2387,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "No se pudo abrir el cuadro de diálogo de plugins (error desconocido)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + msgid "Plugin Terminal" msgstr "Terminal de plugins" @@ -4424,6 +4430,12 @@ msgstr "" "Error al copiar el G-Code temporal en el G-Code de salida. ¿Quizás la tarjeta SD está protegida contra escritura?\n" "Mensaje de error: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "La copia del G-Code temporal al G-Code de salida ha fallado. Puede haber un problema con el dispositivo de destino, intenta exportar nuevamente o usa un dispositivo diferente. El G-Code de salida dañado está en %1%.tmp." @@ -6307,6 +6319,9 @@ msgstr "Mostrar el contorno alrededor del objeto seleccionado en la escena 3D." msgid "Preferences" msgstr "Preferencias" +msgid "Open speed dial..." +msgstr "" + msgctxt "Menu" msgid "Edit" msgstr "Edición" @@ -8527,7 +8542,6 @@ msgstr "¿Quieres continuar?" msgid "Language selection" msgstr "Selección de idiomas" - msgid "Asia-Pacific" msgstr "Asia-Pacífico" @@ -8632,6 +8646,9 @@ msgstr "Ruta de Instancia Actual: " msgid "General" msgstr "General" +msgid "Language" +msgstr "Idioma" + msgid "Metric" msgstr "Métrico" @@ -8828,6 +8845,12 @@ msgstr "Gestión multidispositivo" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Con esta opción activada, puede enviar una tarea a varios dispositivos al mismo tiempo y gestionar varios dispositivos." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Ventana emergente para seleccionar el modo de agrupación de filamentos" @@ -9528,6 +9551,9 @@ msgstr "Copia en este perfil todos los valores heredados del perfil padre y elim msgid "Detach from parent" msgstr "Separar del elemento padre" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Perfil único" @@ -11357,6 +11383,16 @@ msgstr "Mostrar/Ocultar el diálogo de ajustes de los dispositivos 3Dconnexion" msgid "Switch table page" msgstr "Cambiar de página de tabla" +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Espacio" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Muestra lista de atajos de teclado" @@ -11512,13 +11548,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Cambiar entre Preparar/Previsualizar" -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Espacio" - -msgid "Open actions speed dial" -msgstr "Abrir el menú rápido de acciones" - msgid "Plater" msgstr "Cama" @@ -11779,8 +11808,8 @@ msgstr "Reparación cancelada" msgid "Copying of file %1% to %2% failed: %3%" msgstr "La copia del archivo %1% a %2% falló: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Es necesario comprobar los cambios no guardados antes de actualizar la configuración." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Paquete de configuración: " @@ -11788,6 +11817,12 @@ msgstr "Paquete de configuración: " msgid " updated to " msgstr " Actualizado a " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Es necesario comprobar los cambios no guardados antes de actualizar la configuración." + msgid "Open G-code file:" msgstr "Abrir archivo G-Code:" @@ -13344,6 +13379,9 @@ msgstr "Rectilíneo Alineado" msgid "Concentric" msgstr "Concéntrico" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Curva de Hilbert" @@ -13424,25 +13462,19 @@ msgid "Top surface fill order" msgstr "Orden de relleno de la superficie superior" msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Dirección en la que se rellenan las superficies superiores al usar un patrón basado en el centro (Concéntrico, Cuerdas de Arquímedes, Espiral de octograma).\n" -"Hacia afuera comienza en el centro de la superficie, de modo que cualquier exceso de material se empuja hacia el borde, donde es menos visible. Hacia adentro comienza en el borde y termina con las curvas cerradas del centro.\n" -"Por defecto usa el orden de ruta más corta, que puede ir en cualquier dirección." msgid "Bottom surface fill order" msgstr "Orden de relleno de la superficie inferior" msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Dirección en la que se rellenan las superficies inferiores al usar un patrón basado en el centro (Concéntrico, Cuerdas de Arquímedes, Espiral de octograma).\n" -"Hacia adentro comienza cada superficie con las curvas exteriores más amplias, lo que mejora la adherencia de la primera capa en las camas donde las curvas cerradas del centro pueden no adherirse. Hacia afuera comienza en el centro, empujando cualquier exceso de material hacia el borde.\n" -"Por defecto usa el orden de ruta más corta, que puede ir en cualquier dirección." msgid "Internal solid infill pattern" msgstr "Patrón de relleno sólido interno" @@ -21148,6 +21180,30 @@ 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 "Select the language" +#~ msgstr "Seleccionar el idioma" + +#~ msgid "Open actions speed dial" +#~ msgstr "Abrir el menú rápido de acciones" + +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Dirección en la que se rellenan las superficies superiores al usar un patrón basado en el centro (Concéntrico, Cuerdas de Arquímedes, Espiral de octograma).\n" +#~ "Hacia afuera comienza en el centro de la superficie, de modo que cualquier exceso de material se empuja hacia el borde, donde es menos visible. Hacia adentro comienza en el borde y termina con las curvas cerradas del centro.\n" +#~ "Por defecto usa el orden de ruta más corta, que puede ir en cualquier dirección." + +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Dirección en la que se rellenan las superficies inferiores al usar un patrón basado en el centro (Concéntrico, Cuerdas de Arquímedes, Espiral de octograma).\n" +#~ "Hacia adentro comienza cada superficie con las curvas exteriores más amplias, lo que mejora la adherencia de la primera capa en las camas donde las curvas cerradas del centro pueden no adherirse. Hacia afuera comienza en el centro, empujando cualquier exceso de material hacia el borde.\n" +#~ "Por defecto usa el orden de ruta más corta, que puede ir en cualquier dirección." + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "La función de visualización en directo nativa de Wayland requiere el receptor de vídeo GTK de GStreamer. Instale el plugin gtksink para GStreamer y, a continuación, reinicie OrcaSlicer." diff --git a/localization/i18n/eu/OrcaSlicer_eu.po b/localization/i18n/eu/OrcaSlicer_eu.po index 698941018e..558c1a80dc 100644 --- a/localization/i18n/eu/OrcaSlicer_eu.po +++ b/localization/i18n/eu/OrcaSlicer_eu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2026-07-20 13:33+0200\n" "Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n" "Language-Team: \n" @@ -2390,13 +2390,6 @@ msgstr "Eguneratze bat dago erabilgarri. Ireki aurrezarpen-paketeen elkarrizketa msgid "%s has been removed." msgstr "%s kendu da." - -msgid "Select the language" -msgstr "Hautatu hizkuntza" - -msgid "Language" -msgstr "Hizkuntza" - #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." msgstr "Ezin izan da OrcaSlicer %s hizkuntzara aldatu." @@ -2428,6 +2421,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Ezin izan da pluginen elkarrizketa-koadroa ireki (errore ezezaguna)" +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + msgid "Plugin Terminal" msgstr "Plugin-terminala" @@ -4470,6 +4476,12 @@ msgstr "" "Aldi baterako G-code-a irteerako G-code-an kopiatzeak huts egin du. Agian SD txartela idazteko blokeatuta dago?\n" "Errore- mezua: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Aldi baterako G-code-a irteerako G-code-an kopiatzeak huts egin du. Arazoak egon daitezke helburuko gailuarekin, saiatu berriro esportatzen edo beste gailu bat erabiltzen. Hondatutako irteerako G-code-a hemen da: %1%.tmp." @@ -6353,6 +6365,9 @@ msgstr "Erakutsi hautatutako objektuaren inguruko ingerada 3D eszenan." msgid "Preferences" msgstr "Hobespenak" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8608,7 +8623,6 @@ msgstr "Jarraitu nahi duzu?" msgid "Language selection" msgstr "Hizkuntza-hautaketa" - msgid "Asia-Pacific" msgstr "Asia-Pazifikoa" @@ -8713,6 +8727,9 @@ msgstr "Uneko instantziaren bide-izena: " msgid "General" msgstr "Orokorra" +msgid "Language" +msgstr "Hizkuntza" + msgid "Metric" msgstr "Metrikoa" @@ -8909,6 +8926,12 @@ msgstr "Gailu anitzen kudeaketa" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Aukera hau gaituta, zeregin bat hainbat gailutara bidali eta hainbat gailu kudea ditzakezu aldi berean." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Erakutsi filamentuak taldekatzeko modua hautatzeko leihoa" @@ -9614,6 +9637,9 @@ msgstr "Aurrezarpen honetara gurasoaren balio heredatu guztiak kopiatzen ditu et msgid "Detach from parent" msgstr "Bereizi gurasotik" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Aurrezarpen bakarra" @@ -11467,6 +11493,17 @@ msgstr "Erakutsi/Ezkutatu 3Dconnexion gailuen ezarpenen elkarrizketa-koadroa" msgid "Switch table page" msgstr "Aldatu taula-orria" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Zuriunea" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Erakutsi teklatu-lasterbideen zerrenda" @@ -11627,14 +11664,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Aldatu Prestatu/Aurrebista artean" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Zuriunea" - -msgid "Open actions speed dial" -msgstr "Ekintzen markatze azkarra ireki" - msgid "Plater" msgstr "Plaka-antolatzailea" @@ -11899,8 +11928,8 @@ msgstr "Konponketa bertan behera utzi da" msgid "Copying of file %1% to %2% failed: %3%" msgstr "%1% fitxategia %2% helmugara kopiatzeak huts egin du: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Egiaztatu gorde gabeko aldaketarik dagoen konfigurazioa eguneratu aurretik." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Konfigurazio-paketea: " @@ -11908,6 +11937,12 @@ msgstr "Konfigurazio-paketea: " msgid " updated to " msgstr " hona eguneratu da: " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Egiaztatu gorde gabeko aldaketarik dagoen konfigurazioa eguneratu aurretik." + msgid "Open G-code file:" msgstr "Ireki G-code fitxategia:" @@ -13477,6 +13512,9 @@ msgstr "Lerrozuzen lerrokatua" msgid "Concentric" msgstr "Kontzentrikoa" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Hilbert kurba" @@ -13560,28 +13598,20 @@ msgstr "" msgid "Top surface fill order" msgstr "Goiko gainazala betetzeko ordena" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Goiko gainazalak betetzen diren noranzkoa zentroan oinarritutako patroia erabiltzen denean (Kontzentrikoa, Arkimedesen kordak, Oktagrama-kiribila).\n" -"Kanporanzkoa erdialdean hasten da, beraz, gehiegizko materiala gutxien ikusten den ertzera bultzatzen da. Barruranzkoa ertzean hasten da eta erdian kurba estuekin amaitzen da.\n" -"Lehenetsiak bide laburreneko ordena erabiltzen du, zeina norabide batean zein bestean ibil daitekeen." msgid "Bottom surface fill order" msgstr "Beheko gainazala betetzeko ordena" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Beheko gainazalak betetzen diren noranzkoa zentroan oinarritutako patroia erabiltzen denean (Kontzentrikoa, Arkimedesen kordak, Oktagrama-kiribila).\n" -"Barruranzkoa hasten da gainazal bakoitza kanpoko kurba zabalagoekin, eta horrek lehen geruzaren atxikimendua hobetzen du erdiko kurba estuak itsatsi ez daitezkeen inprimatze-plaketan. Kanporanzkoa erdialdean hasten da, gehiegizko materiala ertzera bultzatuz.\n" -"Lehenetsiak bide laburreneko ordena erabiltzen du, zeina norabide batean zein bestean ibil daitekeen." # AI Translated msgid "Internal solid infill pattern" @@ -21337,6 +21367,32 @@ msgstr "" "Saihestu okertzea\n" "Ba al zenekien ABS bezalako okertzeko joera duten materialak inprimatzean ohe beroaren tenperatura egoki igotzeak okertzeko probabilitatea murriztu dezakeela?" +#~ msgid "Select the language" +#~ msgstr "Hautatu hizkuntza" + +#~ msgid "Open actions speed dial" +#~ msgstr "Ekintzen markatze azkarra ireki" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Goiko gainazalak betetzen diren noranzkoa zentroan oinarritutako patroia erabiltzen denean (Kontzentrikoa, Arkimedesen kordak, Oktagrama-kiribila).\n" +#~ "Kanporanzkoa erdialdean hasten da, beraz, gehiegizko materiala gutxien ikusten den ertzera bultzatzen da. Barruranzkoa ertzean hasten da eta erdian kurba estuekin amaitzen da.\n" +#~ "Lehenetsiak bide laburreneko ordena erabiltzen du, zeina norabide batean zein bestean ibil daitekeen." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Beheko gainazalak betetzen diren noranzkoa zentroan oinarritutako patroia erabiltzen denean (Kontzentrikoa, Arkimedesen kordak, Oktagrama-kiribila).\n" +#~ "Barruranzkoa hasten da gainazal bakoitza kanpoko kurba zabalagoekin, eta horrek lehen geruzaren atxikimendua hobetzen du erdiko kurba estuak itsatsi ez daitezkeen inprimatze-plaketan. Kanporanzkoa erdialdean hasten da, gehiegizko materiala ertzera bultzatuz.\n" +#~ "Lehenetsiak bide laburreneko ordena erabiltzen du, zeina norabide batean zein bestean ibil daitekeen." + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Waylanden jatorrizko zuzeneko ikuspegiak GStreamer GTK bideo-hustubidea behar du. Instalatu GStreamerrerako gtksink plugina eta berrabiarazi OrcaSlicer." diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index 6344696234..aaac6d576a 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Guislain Cyril, Thomas Lété\n" @@ -2414,13 +2414,6 @@ msgstr "Une mise à jour est disponible. Ouvrez la boîte de dialogue du paquet msgid "%s has been removed." msgstr "%s a été supprimé." - -msgid "Select the language" -msgstr "Sélectionner la langue" - -msgid "Language" -msgstr "Langue" - #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." msgstr "Le passage d’Orca Slicer à la langue %s a échoué." @@ -2455,6 +2448,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Échec de l'ouverture de la boîte de dialogue des plugins (erreur inconnue)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Terminal des plugins" @@ -4507,6 +4513,12 @@ msgstr "" "La copie du G-code temporaire vers le G-code de sortie a échoué. La carte SD est peut-être bloquée en écriture ?\n" "Message d’erreur : %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "La copie du G-code temporaire vers le G-code de sortie a échoué. Il se peut qu’il y ait un problème avec le dispositif cible, veuillez essayer d’exporter à nouveau ou d’utiliser un autre périphérique. Le G-code de sortie corrompu se trouve dans %1%.tmp." @@ -6401,6 +6413,9 @@ msgstr "Afficher le tracé contour de l’objet sélectionné dans la scène 3D. msgid "Preferences" msgstr "Préférences" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8676,7 +8691,6 @@ msgstr "Voulez-vous continuer ?" msgid "Language selection" msgstr "Sélection de la langue" - msgid "Asia-Pacific" msgstr "Asie-Pacifique" @@ -8781,6 +8795,9 @@ msgstr "Chemin d’accès à l’instance courante : " msgid "General" msgstr "Général" +msgid "Language" +msgstr "Langue" + msgid "Metric" msgstr "Métrique" @@ -8977,6 +8994,12 @@ msgstr "Gestion multi appareils" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Si cette option est activée, vous pouvez envoyer une tâche à plusieurs appareils en même temps et gérer plusieurs appareils." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Fenêtre contextuelle pour sélectionner le mode de regroupement des filaments" @@ -9685,6 +9708,9 @@ msgstr "Copie dans ce préréglage toutes les valeurs héritées du préréglage msgid "Detach from parent" msgstr "Détacher du parent" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Préréglage unique" @@ -11563,6 +11589,17 @@ msgstr "Afficher/Masquer la boîte de dialogue des paramètres des périphériqu msgid "Switch table page" msgstr "Page du tableau de commutation" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Espace" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Afficher la liste des raccourcis clavier" @@ -11723,15 +11760,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Basculer entre Préparer/Aperçu" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Espace" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Ouvrir le menu d'actions rapides" - msgid "Plater" msgstr "Plateau" @@ -11997,8 +12025,8 @@ msgstr "Réparation annulée" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Échec de la copie du fichier %1% vers %2% : %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Besoin de vérifier les modifications non enregistrées avant les mises à jour de configuration." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Paquet de configuration : " @@ -12006,6 +12034,12 @@ msgstr "Paquet de configuration : " msgid " updated to " msgstr " mis à jour en " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Besoin de vérifier les modifications non enregistrées avant les mises à jour de configuration." + msgid "Open G-code file:" msgstr "Ouvrir un fichier G-code :" @@ -13571,6 +13605,9 @@ msgstr "Rectiligne Aligné" msgid "Concentric" msgstr "Concentrique" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Courbe de Hilbert" @@ -13660,29 +13697,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Ordre de remplissage de la surface supérieure" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Direction dans laquelle les surfaces supérieures sont remplies lors de l'utilisation d'un motif centré (Concentrique, Cordes d'Archimède, Spirale d'octogramme).\n" -"Vers l'extérieur commence au centre de la surface, de sorte que tout excès de matière est poussé vers le bord où il est le moins visible. Vers l'intérieur commence au bord et se termine par les courbes serrées au centre.\n" -"Par défaut utilise un ordonnancement par chemin le plus court, qui peut aller dans les deux sens." # AI Translated msgid "Bottom surface fill order" msgstr "Ordre de remplissage de la surface inférieure" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Direction dans laquelle les surfaces inférieures sont remplies lors de l'utilisation d'un motif centré (Concentrique, Cordes d'Archimède, Spirale d'octogramme).\n" -"Vers l'intérieur commence chaque surface par les courbes extérieures plus larges, ce qui améliore l'adhérence de la première couche sur les plateaux où les courbes serrées au centre peuvent ne pas adhérer. Vers l'extérieur commence au centre, poussant tout excès de matière vers le bord.\n" -"Par défaut utilise un ordonnancement par chemin le plus court, qui peut aller dans les deux sens." msgid "Internal solid infill pattern" msgstr "Motif de remplissage plein interne" @@ -21495,6 +21524,33 @@ msgstr "" "Éviter la déformation\n" "Saviez-vous que lors de l’impression de matériaux susceptibles de se déformer, tels que l’ABS, une augmentation appropriée de la température du plateau chauffant peut réduire la probabilité de déformation?" +#~ msgid "Select the language" +#~ msgstr "Sélectionner la langue" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Ouvrir le menu d'actions rapides" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Direction dans laquelle les surfaces supérieures sont remplies lors de l'utilisation d'un motif centré (Concentrique, Cordes d'Archimède, Spirale d'octogramme).\n" +#~ "Vers l'extérieur commence au centre de la surface, de sorte que tout excès de matière est poussé vers le bord où il est le moins visible. Vers l'intérieur commence au bord et se termine par les courbes serrées au centre.\n" +#~ "Par défaut utilise un ordonnancement par chemin le plus court, qui peut aller dans les deux sens." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Direction dans laquelle les surfaces inférieures sont remplies lors de l'utilisation d'un motif centré (Concentrique, Cordes d'Archimède, Spirale d'octogramme).\n" +#~ "Vers l'intérieur commence chaque surface par les courbes extérieures plus larges, ce qui améliore l'adhérence de la première couche sur les plateaux où les courbes serrées au centre peuvent ne pas adhérer. Vers l'extérieur commence au centre, poussant tout excès de matière vers le bord.\n" +#~ "Par défaut utilise un ordonnancement par chemin le plus court, qui peut aller dans les deux sens." + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "L’aperçu en direct natif sous Wayland nécessite le récepteur vidéo GStreamer GTK. Veuillez installer le plugin gtksink pour GStreamer, puis redémarrer OrcaSlicer." diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index 78c06dd4c0..f92b87a246 100644 --- a/localization/i18n/hu/OrcaSlicer_hu.po +++ b/localization/i18n/hu/OrcaSlicer_hu.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2460,13 +2460,6 @@ msgstr "Frissítés érhető el. Nyisd meg a beállításcsomag párbeszédablak msgid "%s has been removed." msgstr "%s eltávolítva." - -msgid "Select the language" -msgstr "Válaszd ki a nyelvet" - -msgid "Language" -msgstr "Nyelv" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2504,6 +2497,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Nem sikerült megnyitni a Bővítmények párbeszédablakot (ismeretlen hiba)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Bővítményterminál" @@ -4601,6 +4607,12 @@ msgstr "" "Nem sikerült az ideiglenes G-kódot a kimeneti G-kódba másolni. Lehet, hogy az SD-kártya írásvédett?\n" "Hibaüzenet: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Nem sikerült az ideiglenes G-kódot a kimeneti G-kódba másolni. Probléma lehet a céleszközzel. Kérlek, exportáld újra, vagy használj másik eszközt. A sérült kimeneti G-kód helye: %1%.tmp." @@ -6503,6 +6515,9 @@ msgstr "Körvonal megjelenítése a kijelölt objektum körül a 3D nézetben." msgid "Preferences" msgstr "Beállítások" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8804,7 +8819,6 @@ msgstr "Szeretnéd folytatni?" msgid "Language selection" msgstr "Nyelv kiválasztása" - msgid "Asia-Pacific" msgstr "Ázsia-Csendes-óceáni térség" @@ -8909,6 +8923,9 @@ msgstr "Jelenlegi példány útvonala: " msgid "General" msgstr "Általános" +msgid "Language" +msgstr "Nyelv" + msgid "Metric" msgstr "Metrikus" @@ -9113,6 +9130,12 @@ msgstr "Többeszközös kezelés" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Ezzel az opcióval egyszerre több eszközre küldhetsz feladatot és több eszközt kezelhetsz." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Felugró ablak a filamentcsoportosítási mód kiválasztásához" @@ -9845,6 +9868,9 @@ msgstr "Az összes örökölt értéket átmásolja a szülő előbeállításb msgid "Detach from parent" msgstr "Leválasztás a szülőről" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Önálló előbeállítás" @@ -11747,6 +11773,17 @@ msgstr "3Dconnexion-eszközbeállítások párbeszédablak megjelenítése/elrej msgid "Switch table page" msgstr "Váltás táblázatra" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Szóköz" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Gyorsgombok listájának megjelenítése" @@ -11907,15 +11944,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Váltás előkészítés/előnézet között" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Szóköz" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Műveletek gyorsmenüjének megnyitása" - msgid "Plater" msgstr "Tálca" @@ -12187,8 +12215,8 @@ msgstr "Javítás megszakítva" msgid "Copying of file %1% to %2% failed: %3%" msgstr "%1% fájl másolása sikertelen a következő helyre: %2% Hiba: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Kérlek, ellenőrizd a nem mentett módosításokat a konfiguráció frissítése előtt." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Konfigurációs csomag: " @@ -12196,6 +12224,12 @@ msgstr "Konfigurációs csomag: " msgid " updated to " msgstr " frissítve erre: " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Kérlek, ellenőrizd a nem mentett módosításokat a konfiguráció frissítése előtt." + msgid "Open G-code file:" msgstr "G-kód fájl megnyitása:" @@ -13794,6 +13828,9 @@ msgstr "Igazított vonal" msgid "Concentric" msgstr "Koncentrikus" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Hilbert-görbe" @@ -13883,29 +13920,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Felső felület kitöltési sorrendje" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Az az irány, amelyben a felső felületek kitöltése történik középpont alapú mintázat (Koncentrikus, Archimédeszi vonalak, Nyolcágú spirál) használatakor.\n" -"A Kifelé a felület közepén kezd, így a felesleges anyag a szélek felé tolódik, ahol a legkevésbé látszik. A Befelé a szélén kezd, és a középen lévő szűk ívekkel fejeződik be.\n" -"Az Alapértelmezett a legrövidebb útvonal szerinti sorrendet használja, amely bármelyik irányba haladhat." # AI Translated msgid "Bottom surface fill order" msgstr "Alsó felület kitöltési sorrendje" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Az az irány, amelyben az alsó felületek kitöltése történik középpont alapú mintázat (Koncentrikus, Archimédeszi vonalak, Nyolcágú spirál) használatakor.\n" -"A Befelé minden felületet a szélesebb külső ívekkel kezd, ami javítja az első réteg tapadását azokon az asztalokon, ahol a középen lévő szűk ívek nem tapadnak meg jól. A Kifelé a közepén kezd, a felesleges anyagot a szélek felé tolva.\n" -"Az Alapértelmezett a legrövidebb útvonal szerinti sorrendet használja, amely bármelyik irányba haladhat." # AI Translated msgid "Internal solid infill pattern" @@ -21926,6 +21955,33 @@ msgstr "" "Kunkorodás elkerülése\n" "Tudtad, hogy a kunkorodásra hajlamos anyagok (például ABS) nyomtatásakor az asztal hőmérsékletének növelése csökkentheti a kunkorodás valószínűségét?" +#~ msgid "Select the language" +#~ msgstr "Válaszd ki a nyelvet" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Műveletek gyorsmenüjének megnyitása" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Az az irány, amelyben a felső felületek kitöltése történik középpont alapú mintázat (Koncentrikus, Archimédeszi vonalak, Nyolcágú spirál) használatakor.\n" +#~ "A Kifelé a felület közepén kezd, így a felesleges anyag a szélek felé tolódik, ahol a legkevésbé látszik. A Befelé a szélén kezd, és a középen lévő szűk ívekkel fejeződik be.\n" +#~ "Az Alapértelmezett a legrövidebb útvonal szerinti sorrendet használja, amely bármelyik irányba haladhat." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Az az irány, amelyben az alsó felületek kitöltése történik középpont alapú mintázat (Koncentrikus, Archimédeszi vonalak, Nyolcágú spirál) használatakor.\n" +#~ "A Befelé minden felületet a szélesebb külső ívekkel kezd, ami javítja az első réteg tapadását azokon az asztalokon, ahol a középen lévő szűk ívek nem tapadnak meg jól. A Kifelé a közepén kezd, a felesleges anyagot a szélek felé tolva.\n" +#~ "Az Alapértelmezett a legrövidebb útvonal szerinti sorrendet használja, amely bármelyik irányba haladhat." + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "A natív Wayland élőképhez a GStreamer GTK videonyelő szükséges. Telepítsd a gtksink beépülő modult a GStreamerhez, majd indítsd újra az OrcaSlicert." diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index cf5099bca3..814c2b627d 100644 --- a/localization/i18n/it/OrcaSlicer_it.po +++ b/localization/i18n/it/OrcaSlicer_it.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2466,13 +2466,6 @@ msgstr "È disponibile un aggiornamento. Apri la finestra di dialogo del bundle msgid "%s has been removed." msgstr "%s è stato rimosso." - -msgid "Select the language" -msgstr "Seleziona la lingua" - -msgid "Language" -msgstr "Lingua" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2510,6 +2503,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Impossibile aprire la finestra di dialogo Plugin (errore sconosciuto)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Terminale plugin" @@ -4603,6 +4609,12 @@ msgstr "" "Copia del G-code temporaneo sul G-code di uscita non riuscita. Forse la scheda SD è protetta da scrittura?\n" "Messaggio di errore: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Copia del G-code temporaneo nel G-code di uscita non riuscita. Potrebbe esserci un problema nel dispositivo di destinazione. Prova ad esportare di nuovo o usa un dispositivo diverso. Il file G-code corrotto è su %1%.tmp." @@ -6505,6 +6517,9 @@ msgstr "Mostra il contorno attorno all'oggetto selezionato nella scena 3D." msgid "Preferences" msgstr "Preferenze" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8805,7 +8820,6 @@ msgstr "Vuoi continuare?" msgid "Language selection" msgstr "Selezione lingua" - msgid "Asia-Pacific" msgstr "Asia-Pacifico" @@ -8911,6 +8925,9 @@ msgstr "Percorso istanza attuale: " msgid "General" msgstr "Generale" +msgid "Language" +msgstr "Lingua" + msgid "Metric" msgstr "Metrico" @@ -9115,6 +9132,12 @@ msgstr "Gestione multi-dispositivo" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Abilitando questa opzione, puoi inviare un'attività a più dispositivi contemporaneamente e gestire più dispositivi." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Popup per selezionare la modalità di raggruppamento filamenti" @@ -9863,6 +9886,9 @@ msgstr "Copia in questo profilo tutti i valori ereditati dal profilo padre e rim msgid "Detach from parent" msgstr "Scollega dal genitore" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Profilo unico" @@ -11767,6 +11793,17 @@ msgstr "Mostra/nascondi la finestra di dialogo delle impostazioni dei dispositiv msgid "Switch table page" msgstr "Cambia pagina tabella" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Spazio" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Mostra elenco scorciatoie da tastiera" @@ -11928,15 +11965,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Passa tra Prepara e Anteprima" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Spazio" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Apri la selezione rapida delle azioni" - msgid "Plater" msgstr "Piatto" @@ -12208,8 +12236,8 @@ msgstr "Riparazione annullata" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Copia del file %1% su %2% non riuscita: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Controllare le modifiche non salvate prima di aggiornare la configurazione." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Pacchetto di configurazione: " @@ -12217,6 +12245,12 @@ msgstr "Pacchetto di configurazione: " msgid " updated to " msgstr " aggiornato a " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Controllare le modifiche non salvate prima di aggiornare la configurazione." + msgid "Open G-code file:" msgstr "Apri un file G-code:" @@ -13814,6 +13848,9 @@ msgstr "Rettilineo allineato" msgid "Concentric" msgstr "Concentrico" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Curva di Hilbert" @@ -13903,29 +13940,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Ordine di riempimento della superficie superiore" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Direzione in cui vengono riempite le superfici superiori quando si utilizza un motivo basato sul centro (Concentrico, Corde di Archimede, Spirale a ottagramma).\n" -"Verso l'esterno inizia dal centro della superficie, in modo che il materiale in eccesso venga spinto verso il bordo dove è meno visibile. Verso l'interno inizia dal bordo e termina con le curve strette al centro.\n" -"L'impostazione predefinita utilizza l'ordinamento a percorso più breve, che può procedere in entrambe le direzioni." # AI Translated msgid "Bottom surface fill order" msgstr "Ordine di riempimento della superficie inferiore" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Direzione in cui vengono riempite le superfici inferiori quando si utilizza un motivo basato sul centro (Concentrico, Corde di Archimede, Spirale a ottagramma).\n" -"Verso l'interno inizia ogni superficie con le curve esterne più ampie, il che migliora l'adesione del primo strato sui piatti di stampa dove le curve strette al centro potrebbero non aderire. Verso l'esterno inizia dal centro, spingendo il materiale in eccesso verso il bordo.\n" -"L'impostazione predefinita utilizza l'ordinamento a percorso più breve, che può procedere in entrambe le direzioni." msgid "Internal solid infill pattern" msgstr "Motivo riempimento solido interno" @@ -21950,6 +21979,33 @@ msgstr "" "Evita le deformazioni\n" "Sapevi che quando si stampano materiali soggetti a deformazioni come l'ABS, aumentare in modo appropriato la temperatura del piano riscaldato può ridurre la probabilità di deformazione?" +#~ msgid "Select the language" +#~ msgstr "Seleziona la lingua" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Apri la selezione rapida delle azioni" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Direzione in cui vengono riempite le superfici superiori quando si utilizza un motivo basato sul centro (Concentrico, Corde di Archimede, Spirale a ottagramma).\n" +#~ "Verso l'esterno inizia dal centro della superficie, in modo che il materiale in eccesso venga spinto verso il bordo dove è meno visibile. Verso l'interno inizia dal bordo e termina con le curve strette al centro.\n" +#~ "L'impostazione predefinita utilizza l'ordinamento a percorso più breve, che può procedere in entrambe le direzioni." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Direzione in cui vengono riempite le superfici inferiori quando si utilizza un motivo basato sul centro (Concentrico, Corde di Archimede, Spirale a ottagramma).\n" +#~ "Verso l'interno inizia ogni superficie con le curve esterne più ampie, il che migliora l'adesione del primo strato sui piatti di stampa dove le curve strette al centro potrebbero non aderire. Verso l'esterno inizia dal centro, spingendo il materiale in eccesso verso il bordo.\n" +#~ "L'impostazione predefinita utilizza l'ordinamento a percorso più breve, che può procedere in entrambe le direzioni." + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "La funzione di visualizzazione in tempo reale nativa di Wayland richiede il ricevitore video GTK di GStreamer. Installare il modulo gtksink per GStreamer e riavviare OrcaSlicer." diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index 99cd0d0a83..c170f2f6c1 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2473,13 +2473,6 @@ msgstr "アップデートが利用可能です。プリセットバンドルの msgid "%s has been removed." msgstr "%sを削除しました。" - -msgid "Select the language" -msgstr "言語を選択" - -msgid "Language" -msgstr "言語" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2517,6 +2510,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "プラグインダイアログを開けませんでした (不明なエラー)。" +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "プラグインターミナル" @@ -4610,6 +4616,12 @@ msgstr "" "一時的なGコードの出力Gコードへのコピーに失敗しました。 もしかしたらSDカードが書き込みロックされていませんか?\n" "エラーメッセージ:%1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "一時Gコードの出力Gコードへのコピーに失敗しました。 ターゲットデバイスに問題がある可能性があります。もう一度エクスポートするか、別のデバイスを使用してみてください。 破損した出力Gコードは%1%.tmpにあります。" @@ -6514,6 +6526,9 @@ msgstr "3Dシーンで選択したオブジェクトの周りにアウトライ msgid "Preferences" msgstr "設定" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8823,7 +8838,6 @@ msgstr "続行しますか?" msgid "Language selection" msgstr "言語選択" - msgid "Asia-Pacific" msgstr "アジア太平洋地域" @@ -8928,6 +8942,9 @@ msgstr "現在のインスタンスのパス: " msgid "General" msgstr "一般" +msgid "Language" +msgstr "言語" + msgid "Metric" msgstr "メートル" @@ -9135,6 +9152,12 @@ msgstr "マルチデバイス管理" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "このオプションを有効にすると、複数のデバイスに同時にタスクを送信し、複数のデバイスを管理できます。" +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "フィラメントグルーピングモード選択のポップアップ" @@ -9885,6 +9908,9 @@ msgstr "親プリセットから継承したすべての値をこのプリセッ msgid "Detach from parent" msgstr "親から分離" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "独立したプリセット" @@ -11788,6 +11814,17 @@ msgstr "3Dconnexion設定を表示/非表示" msgid "Switch table page" msgstr "テーブルページを切り替え" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "ショートカット一覧を表示" @@ -11950,15 +11987,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "準備/プレビュー間の切り替え" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -# AI Translated -msgid "Open actions speed dial" -msgstr "アクションスピードダイヤルを開く" - msgid "Plater" msgstr "準備" @@ -12234,8 +12262,8 @@ msgstr "修復を取消しました" msgid "Copying of file %1% to %2% failed: %3%" msgstr "ファイル %1% を %2% へのコピーが失敗しました (%3%)" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "構成を更新する前に、未保存の変更をご確認ください" +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "設定パッケージ: " @@ -12243,6 +12271,12 @@ msgstr "設定パッケージ: " msgid " updated to " msgstr " を更新しました " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "構成を更新する前に、未保存の変更をご確認ください" + msgid "Open G-code file:" msgstr "G-codeファイルを開く" @@ -13905,6 +13939,9 @@ msgstr "整列直線" msgid "Concentric" msgstr "同心" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "ヒルベルト曲線" @@ -13996,29 +14033,21 @@ msgstr "" msgid "Top surface fill order" msgstr "上面の充填順序" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"中心を基準とするパターン (同心円、アルキメデス弦、八芒星スパイラル) を使用する場合に、上面を充填する方向です。\n" -"外向きは面の中心から始まるため、余分な材料が最も目立たない縁へ押し出されます。内向きは縁から始まり、中心の細かいカーブで終わります。\n" -"デフォルトは最短経路順で、どちらの方向にもなり得ます。" # AI Translated msgid "Bottom surface fill order" msgstr "底面の充填順序" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"中心を基準とするパターン (同心円、アルキメデス弦、八芒星スパイラル) を使用する場合に、底面を充填する方向です。\n" -"内向きは各面を幅の広い外側のカーブから始めるため、中心の細かいカーブが定着しにくいベッドでも1層目の密着性が向上します。外向きは中心から始まり、余分な材料を縁へ押し出します。\n" -"デフォルトは最短経路順で、どちらの方向にもなり得ます。" msgid "Internal solid infill pattern" msgstr "内部ソリッドインフィルパターン" @@ -22505,6 +22534,33 @@ msgstr "" "反りを避ける\n" "ABSのような反りやすい素材を印刷する場合、ヒートベッドの温度を適切に上げることで、反りが発生する確率を下げることができることをご存知ですか?" +#~ msgid "Select the language" +#~ msgstr "言語を選択" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "アクションスピードダイヤルを開く" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "中心を基準とするパターン (同心円、アルキメデス弦、八芒星スパイラル) を使用する場合に、上面を充填する方向です。\n" +#~ "外向きは面の中心から始まるため、余分な材料が最も目立たない縁へ押し出されます。内向きは縁から始まり、中心の細かいカーブで終わります。\n" +#~ "デフォルトは最短経路順で、どちらの方向にもなり得ます。" + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "中心を基準とするパターン (同心円、アルキメデス弦、八芒星スパイラル) を使用する場合に、底面を充填する方向です。\n" +#~ "内向きは各面を幅の広い外側のカーブから始めるため、中心の細かいカーブが定着しにくいベッドでも1層目の密着性が向上します。外向きは中心から始まり、余分な材料を縁へ押し出します。\n" +#~ "デフォルトは最短経路順で、どちらの方向にもなり得ます。" + # AI Translated #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "ネイティブWaylandのライブビューにはGStreamer GTKビデオシンクが必要です。GStreamer用のgtksinkプラグインをインストールし、OrcaSlicerを再起動してください。" diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index 8d12c90228..2e883a3f99 100644 --- a/localization/i18n/ko/OrcaSlicer_ko.po +++ b/localization/i18n/ko/OrcaSlicer_ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2025-06-02 17:12+0900\n" "Last-Translator: crwusiz <crwusiz@gmail.com>\n" "Language-Team: \n" @@ -2481,13 +2481,6 @@ msgstr "사용 가능한 업데이트가 있습니다. 사전 설정 번들 대 msgid "%s has been removed." msgstr "%s이(가) 제거되었습니다." - -msgid "Select the language" -msgstr "언어 선택" - -msgid "Language" -msgstr "언어" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2525,6 +2518,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "플러그인 대화 상자를 열지 못했습니다(알 수 없는 오류)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "플러그인 터미널" @@ -4625,6 +4631,12 @@ msgstr "" "임시 Gcode를 출력 Gcode로 복사하지 못했습니다. SD 카드가 쓰기 잠겨 있나요?\n" "오류 메시지입니다: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "임시 Gcode를 출력 Gcode로 복사하지 못했습니다. 대상 장치에 문제가 있을 수 있으니 다시 내보내거나 다른 장치를 사용해 보세요. 손상된 출력 Gcode는 %1%.tmp에 있습니다." @@ -6528,6 +6540,9 @@ msgstr "3D 장면에서 선택한 객체 주변에 윤곽선 표시" msgid "Preferences" msgstr "기본 설정" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8858,7 +8873,6 @@ msgstr "계속하시겠습니까?" msgid "Language selection" msgstr "언어 선택" - msgid "Asia-Pacific" msgstr "아시아 태평양" @@ -8972,6 +8986,9 @@ msgstr "현재 인스턴스 경로: " msgid "General" msgstr "일반" +msgid "Language" +msgstr "언어" + msgid "Metric" msgstr "미터법" @@ -9197,6 +9214,12 @@ msgstr "다중 장치 관리" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "활성화하면 여러 장치에 동시에 작업을 보내고 여러 장치를 관리할 수 있습니다." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "필라멘트 그룹화 모드를 선택하기 위한 팝업" @@ -9976,6 +9999,9 @@ msgstr "상위 사전 설정에서 상속한 모든 값을 이 사전 설정으 msgid "Detach from parent" msgstr "상위 항목에서 분리" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "독립 사전 설정" @@ -11922,6 +11948,17 @@ msgstr "3D 연결 장치 설정 표시/숨기기 대화상자" msgid "Switch table page" msgstr "테이블 페이지 전환" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "키보드 단축키 목록 보기" @@ -12086,15 +12123,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "준비 하기/미리 보기 전환" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -# AI Translated -msgid "Open actions speed dial" -msgstr "작업 스피드 다이얼 열기" - msgid "Plater" msgstr "출력판" @@ -12368,8 +12396,8 @@ msgstr "수리 취소됨" msgid "Copying of file %1% to %2% failed: %3%" msgstr "파일 %1%를 %2%으로 복사 실패: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "구성 업데이트 전에 저장되지 않은 변경 사항을 확인해야 합니다." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "구성 패키지: " @@ -12377,6 +12405,12 @@ msgstr "구성 패키지: " msgid " updated to " msgstr " 로 업데이트되었습니다 " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "구성 업데이트 전에 저장되지 않은 변경 사항을 확인해야 합니다." + msgid "Open G-code file:" msgstr "Gcode 파일 열기:" @@ -14033,6 +14067,9 @@ msgstr "정렬된 직선" msgid "Concentric" msgstr "동심" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "힐베르트 곡선" @@ -14124,29 +14161,21 @@ msgstr "" msgid "Top surface fill order" msgstr "상단 표면 채우기 순서" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"중심 기반 패턴(동심원, 아르키메데스 현, 팔각별 나선)을 사용할 때 상단 표면을 채우는 방향입니다.\n" -"바깥쪽은 표면 중앙에서 시작하므로 남는 재료가 가장 눈에 덜 띄는 가장자리로 밀려납니다. 안쪽은 가장자리에서 시작하여 중앙의 좁은 곡선에서 끝납니다.\n" -"기본값은 최단 경로 순서를 사용하며 어느 방향으로든 진행될 수 있습니다." # AI Translated msgid "Bottom surface fill order" msgstr "하단 표면 채우기 순서" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"중심 기반 패턴(동심원, 아르키메데스 현, 팔각별 나선)을 사용할 때 하단 표면을 채우는 방향입니다.\n" -"안쪽은 각 표면을 더 넓은 바깥쪽 곡선에서 시작하므로, 중앙의 좁은 곡선이 잘 붙지 않는 빌드 플레이트에서 초기 레이어 접착력이 향상됩니다. 바깥쪽은 중앙에서 시작하여 남는 재료를 가장자리로 밀어냅니다.\n" -"기본값은 최단 경로 순서를 사용하며 어느 방향으로든 진행될 수 있습니다." msgid "Internal solid infill pattern" msgstr "꽉찬 내부 채우기 패턴" @@ -22372,6 +22401,33 @@ msgstr "" "뒤틀림 방지\n" "ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?" +#~ msgid "Select the language" +#~ msgstr "언어 선택" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "작업 스피드 다이얼 열기" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "중심 기반 패턴(동심원, 아르키메데스 현, 팔각별 나선)을 사용할 때 상단 표면을 채우는 방향입니다.\n" +#~ "바깥쪽은 표면 중앙에서 시작하므로 남는 재료가 가장 눈에 덜 띄는 가장자리로 밀려납니다. 안쪽은 가장자리에서 시작하여 중앙의 좁은 곡선에서 끝납니다.\n" +#~ "기본값은 최단 경로 순서를 사용하며 어느 방향으로든 진행될 수 있습니다." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "중심 기반 패턴(동심원, 아르키메데스 현, 팔각별 나선)을 사용할 때 하단 표면을 채우는 방향입니다.\n" +#~ "안쪽은 각 표면을 더 넓은 바깥쪽 곡선에서 시작하므로, 중앙의 좁은 곡선이 잘 붙지 않는 빌드 플레이트에서 초기 레이어 접착력이 향상됩니다. 바깥쪽은 중앙에서 시작하여 남는 재료를 가장자리로 밀어냅니다.\n" +#~ "기본값은 최단 경로 순서를 사용하며 어느 방향으로든 진행될 수 있습니다." + # AI Translated #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "네이티브 Wayland 실시간 보기에는 GStreamer GTK 비디오 싱크가 필요합니다. GStreamer용 gtksink 플러그인을 설치한 후 OrcaSlicer를 다시 시작하십시오." diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po index 67d02bef6d..6a642229f8 100644 --- a/localization/i18n/lt/OrcaSlicer_lt.po +++ b/localization/i18n/lt/OrcaSlicer_lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2026-07-02 14:13+0300\n" "Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n" "Language-Team: \n" @@ -2449,13 +2449,6 @@ msgstr "Yra prieinamas atnaujinimas. Atidarykite profilių paketo dialogo langą msgid "%s has been removed." msgstr "%s buvo pašalintas." - -msgid "Select the language" -msgstr "Pasirinkite kalbą" - -msgid "Language" -msgstr "Kalba" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2493,6 +2486,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Nepavyko atidaryti papildinių dialogo lango (nežinoma klaida)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Papildinio terminalas" @@ -4587,6 +4593,12 @@ msgstr "" "Nepavyko nukopijuoti laikinojo G-kodo į išvesties G-kodą. Gal draudžiama įrašinėti į SD kortelę?\n" "Klaidos pranešimas: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Nepavyko nukopijuoti laikinojo G-kodo į išvesties G-kodą. Gali kilti problemų dėl tikslinio įrenginio. Bandykite eksportuoti dar kartą arba naudokite kitą įrenginį. Sugadintas išvesties G-kodas yra %1%.tmp." @@ -6490,6 +6502,9 @@ msgstr "Rodyti kontūrą aplink pasirinktą objektą 3D scenoje." msgid "Preferences" msgstr "Parinktys" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8795,7 +8810,6 @@ msgstr "Ar norite tęsti?" msgid "Language selection" msgstr "Kalbos pasirinkimas" - msgid "Asia-Pacific" msgstr "Azija-Ramusis vandenynas" @@ -8900,6 +8914,9 @@ msgstr "Dabartinės versijos kelias: " msgid "General" msgstr "Bendras" +msgid "Language" +msgstr "Kalba" + msgid "Metric" msgstr "Metrinė" @@ -9096,6 +9113,12 @@ msgstr "Kelių įrenginių valdymas" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Kai įjungta ši funkcija, jūs galite siųsti užduotį keliems įrenginiams vienu metu, taip apt kontroliuoti keletą įrenginių." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Iššokantis langas gijų grupavimo režimui pasirinkti" @@ -9802,6 +9825,9 @@ msgstr "Nukopijuoja į šį profilį visas iš pirminio profilio paveldėtas rei msgid "Detach from parent" msgstr "Atskirti nuo tėvinio profilio" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Savarankiškas profilis" @@ -11692,6 +11718,17 @@ msgstr "Rodyti/slėpti 3DConnexion įrenginių nustatymų dialogo langą" msgid "Switch table page" msgstr "Perjungti lentelės puslapį" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Tarpas" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Rodyti sparčiųjų klavišų sąrašą" @@ -11852,15 +11889,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Perjungimas tarp Paruošti / Peržiūrėti" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Tarpas" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Atidaryti veiksmų greitosios prieigos meniu" - msgid "Plater" msgstr "Plokštė" @@ -12128,8 +12156,8 @@ msgstr "Taisymas atšauktas" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Failo %1% kopijavimas į %2% nepavyko: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Prieš atnaujinant konfigūraciją reikia patikrinti neišsaugotus pakeitimus." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Konfigūracijos paketas: " @@ -12137,6 +12165,12 @@ msgstr "Konfigūracijos paketas: " msgid " updated to " msgstr " atnaujintas į " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Prieš atnaujinant konfigūraciją reikia patikrinti neišsaugotus pakeitimus." + msgid "Open G-code file:" msgstr "Atidaryti G-kodo failą:" @@ -13703,6 +13737,9 @@ msgstr "Sulygiuotas tiesiaeigis" msgid "Concentric" msgstr "Koncentrinis" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Hilberto kreivė" @@ -13792,29 +13829,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Viršutinio paviršiaus užpildymo tvarka" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Kryptis, kuria užpildomi viršutiniai paviršiai naudojant į centrą orientuotą raštą (koncentrinį, Archimedo stygų, Oktogramos spiralės).\n" -"„Į išorę“ prasideda paviršiaus centre, todėl bet koks perteklinė medžiaga stumiama link krašto, kur ji mažiausiai matoma. „Į vidų“ prasideda nuo krašto ir baigiasi ankštomis kreivėmis centre.\n" -"Numatytoji tvarka naudoja trumpiausio kelio rikiavimą, kuris gali vykti bet kuria kryptimi." # AI Translated msgid "Bottom surface fill order" msgstr "Apatinio paviršiaus užpildymo tvarka" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Kryptis, kuria užpildomi apatiniai paviršiai naudojant į centrą orientuotą raštą (koncentrinį, Archimedo stygų, Oktogramos spiralės).\n" -"„Į vidų“ pradeda kiekvieną paviršių platesnėmis išorinėmis kreivėmis, o tai pagerina pirmojo sluoksnio sukibimą ant pagrindų, kur ankštos kreivės centre gali nesilaikyti. „Į išorę“ prasideda centre, stumdama bet kokią perteklinę medžiagą link krašto.\n" -"Numatytoji tvarka naudoja trumpiausio kelio rikiavimą, kuris gali vykti bet kuria kryptimi." msgid "Internal solid infill pattern" msgstr "Vidinio tvirto užpildo raštas" @@ -21652,6 +21681,33 @@ msgstr "" "Venkite deformacijų (warping)\n" "Ar žinojote, kad spausdinant medžiagas, kurios yra linkusios trauktis ir riestis (pvz., ABS), tinkamas kaitinamojo pagrindo temperatūros padidinimas gali sumažinti deformacijų (warping) tikimybę?" +#~ msgid "Select the language" +#~ msgstr "Pasirinkite kalbą" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Atidaryti veiksmų greitosios prieigos meniu" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Kryptis, kuria užpildomi viršutiniai paviršiai naudojant į centrą orientuotą raštą (koncentrinį, Archimedo stygų, Oktogramos spiralės).\n" +#~ "„Į išorę“ prasideda paviršiaus centre, todėl bet koks perteklinė medžiaga stumiama link krašto, kur ji mažiausiai matoma. „Į vidų“ prasideda nuo krašto ir baigiasi ankštomis kreivėmis centre.\n" +#~ "Numatytoji tvarka naudoja trumpiausio kelio rikiavimą, kuris gali vykti bet kuria kryptimi." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Kryptis, kuria užpildomi apatiniai paviršiai naudojant į centrą orientuotą raštą (koncentrinį, Archimedo stygų, Oktogramos spiralės).\n" +#~ "„Į vidų“ pradeda kiekvieną paviršių platesnėmis išorinėmis kreivėmis, o tai pagerina pirmojo sluoksnio sukibimą ant pagrindų, kur ankštos kreivės centre gali nesilaikyti. „Į išorę“ prasideda centre, stumdama bet kokią perteklinę medžiagą link krašto.\n" +#~ "Numatytoji tvarka naudoja trumpiausio kelio rikiavimą, kuris gali vykti bet kuria kryptimi." + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Tiesioginei „Native Wayland“ peržiūrai reikalingas „GStreamer GTK“ vaizdo sinchronizatorius (video sink). Įdiekite „GStreamer“ skirtą „gtksink“ papildinį, tada iš naujo paleiskite „OrcaSlicer“." diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index eff0fdc6b0..bcf29ef0ea 100644 --- a/localization/i18n/nl/OrcaSlicer_nl.po +++ b/localization/i18n/nl/OrcaSlicer_nl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2679,13 +2679,6 @@ msgstr "Er is een update beschikbaar. Open het dialoogvenster voor de voorinstel msgid "%s has been removed." msgstr "%s is verwijderd." - -msgid "Select the language" -msgstr "Kies de taal" - -msgid "Language" -msgstr "Taal" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2723,6 +2716,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Openen van het dialoogvenster Plug-ins is mislukt (onbekende fout)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Plug-in-terminal" @@ -5008,6 +5014,12 @@ msgstr "" "Fout bij het exporteren naar output-G-code. Is de SD-kaart geblokkeerd tegen schrijven?\n" "Foutbericht: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Fout bij het exporteren naar output-G-code. Het probleem ligt mogelijk bij het doelapparaat. Probeer het opnieuw te exporteren of gebruik een ander apparat. De beschadigde G-code is opgeslagen als %1%.tmp." @@ -7086,6 +7098,9 @@ msgstr "Toon een omtrek rond het geselecteerde object in de 3D-scène." msgid "Preferences" msgstr "Voorkeuren" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -9600,7 +9615,6 @@ msgstr "Wilt u doorgaan?" msgid "Language selection" msgstr "Taal selectie" - msgid "Asia-Pacific" msgstr "Azië-Pacific" @@ -9715,6 +9729,9 @@ msgstr "Huidig instancepad: " msgid "General" msgstr "Algemeen" +msgid "Language" +msgstr "Taal" + msgid "Metric" msgstr "Metrisch" @@ -9946,6 +9963,12 @@ msgstr "Beheer van meerdere apparaten" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Met deze optie ingeschakeld kunt u een taak tegelijkertijd naar meerdere apparaten sturen en meerdere apparaten beheren." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + # AI Translated msgid "Pop up to select filament grouping mode" msgstr "Pop-up om de filamentgroeperingsmodus te kiezen" @@ -10737,6 +10760,9 @@ msgstr "Kopieert alle overgeërfde waarden van de bovenliggende voorinstelling n msgid "Detach from parent" msgstr "Losmaken van bovenliggend element" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Unieke voorinstelling" @@ -12818,6 +12844,17 @@ msgstr "Dialoogvenster met instellingen voor 3Dconnexion-apparaten weergeven/ver msgid "Switch table page" msgstr "Schakeltabel pagina" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Spatie" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Toon lijst met sneltoetsen" @@ -12985,15 +13022,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Wisselen tussen Voorbereiden/Voorvertoning" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Spatie" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Snelmenu met acties openen" - msgid "Plater" msgstr "Plaat" @@ -13292,8 +13320,8 @@ msgstr "Repareren geannuleerd" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Het kopieeren van bestand %1% naar %2% is mislukt: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Controleer niet-opgeslagen wijzigingen voordat u de configuratie bijwerkt." +msgid "Downloading new vendor profile(s): " +msgstr "" # AI Translated msgid "Configuration package: " @@ -13303,6 +13331,12 @@ msgstr "Configuratiepakket: " msgid " updated to " msgstr " bijgewerkt naar " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Controleer niet-opgeslagen wijzigingen voordat u de configuratie bijwerkt." + msgid "Open G-code file:" msgstr "Open G-code bestand:" @@ -15049,6 +15083,9 @@ msgstr "Uitgelijnd Rechtlijnig" msgid "Concentric" msgstr "Concentrisch" +msgid "Spiral Inset" +msgstr "" + # AI Translated msgid "Hilbert Curve" msgstr "Hilbertkromme" @@ -15144,29 +15181,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Vulvolgorde bovenoppervlak" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Richting waarin bovenoppervlakken worden gevuld bij gebruik van een patroon dat vanuit het midden werkt (Concentrisch, Archimedische koorden, Octagramspiraal).\n" -"Naar buiten begint in het midden van het oppervlak, zodat overtollig materiaal naar de rand wordt geduwd, waar het het minst zichtbaar is. Naar binnen begint aan de rand en eindigt met de krappe bochten in het midden.\n" -"Standaard gebruikt de volgorde van het kortste pad, die beide kanten op kan lopen." # AI Translated msgid "Bottom surface fill order" msgstr "Vulvolgorde onderoppervlak" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Richting waarin onderoppervlakken worden gevuld bij gebruik van een patroon dat vanuit het midden werkt (Concentrisch, Archimedische koorden, Octagramspiraal).\n" -"Naar binnen begint elk oppervlak met de bredere buitenbochten, wat de hechting van de eerste laag verbetert op printbedden waar de krappe bochten in het midden mogelijk niet hechten. Naar buiten begint in het midden en duwt overtollig materiaal naar de rand.\n" -"Standaard gebruikt de volgorde van het kortste pad, die beide kanten op kan lopen." msgid "Internal solid infill pattern" msgstr "Intern massief invulpatroon" @@ -24092,6 +24121,33 @@ msgstr "" "Kromtrekken voorkomen\n" "Wist je dat bij het printen van materialen die gevoelig zijn voor kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het warmtebed de kans op kromtrekken kan verkleinen?" +#~ msgid "Select the language" +#~ msgstr "Kies de taal" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Snelmenu met acties openen" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Richting waarin bovenoppervlakken worden gevuld bij gebruik van een patroon dat vanuit het midden werkt (Concentrisch, Archimedische koorden, Octagramspiraal).\n" +#~ "Naar buiten begint in het midden van het oppervlak, zodat overtollig materiaal naar de rand wordt geduwd, waar het het minst zichtbaar is. Naar binnen begint aan de rand en eindigt met de krappe bochten in het midden.\n" +#~ "Standaard gebruikt de volgorde van het kortste pad, die beide kanten op kan lopen." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Richting waarin onderoppervlakken worden gevuld bij gebruik van een patroon dat vanuit het midden werkt (Concentrisch, Archimedische koorden, Octagramspiraal).\n" +#~ "Naar binnen begint elk oppervlak met de bredere buitenbochten, wat de hechting van de eerste laag verbetert op printbedden waar de krappe bochten in het midden mogelijk niet hechten. Naar buiten begint in het midden en duwt overtollig materiaal naar de rand.\n" +#~ "Standaard gebruikt de volgorde van het kortste pad, die beide kanten op kan lopen." + # AI Translated #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Voor de native Wayland-liveview is de GStreamer GTK-videosink nodig. Installeer de gtksink-plug-in voor GStreamer en start OrcaSlicer opnieuw." diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index 6f74f4b602..880d786d5e 100644 --- a/localization/i18n/pl/OrcaSlicer_pl.po +++ b/localization/i18n/pl/OrcaSlicer_pl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer 2.3.0-rc\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: \n" "Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\n" "Language-Team: \n" @@ -2512,13 +2512,6 @@ msgstr "Dostępna jest aktualizacja. Otwórz okno pakietu profili, aby ją zains msgid "%s has been removed." msgstr "%s został usunięty." - -msgid "Select the language" -msgstr "Wybierz język" - -msgid "Language" -msgstr "Język" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2556,6 +2549,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Nie udało się otworzyć okna wtyczek (nieznany błąd)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Terminal wtyczek" @@ -4702,6 +4708,12 @@ msgstr "" "Kopiowanie tymczasowego G-code do wyjściowego pliku G-code nie powiodło się. Być może karta SD jest zablokowana do zapisu?\n" "Komunikat błędu: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Kopiowanie tymczasowego G-code do wyjściowego pliku G-code nie powiodło się. Może być problem z urządzeniem docelowym, spróbuj ponownie wyeksportować lub użyć innego urządzenia. Uszkodzony plik wyjściowego G-code znajduje się w pliku %1%.tmp." @@ -6651,6 +6663,9 @@ msgstr "Przełącza wyświetlanie konturu wokół zaznaczonego obiektu w scenie msgid "Preferences" msgstr "Preferencje" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -9014,7 +9029,6 @@ msgstr "Czy kontynuować?" msgid "Language selection" msgstr "Wybór języka" - msgid "Asia-Pacific" msgstr "Azja i Pacyfik" @@ -9128,6 +9142,9 @@ msgstr "Aktualna ścieżka instancji: " msgid "General" msgstr "Ogólne" +msgid "Language" +msgstr "Język" + msgid "Metric" msgstr "Metryczne" @@ -9352,6 +9369,12 @@ msgstr "Obsługiwanie wielu urządzeń" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Umożliwia wysyłanie zadania do wielu urządzeń jednocześnie i zarządzanie nimi." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Okno dialogowe do wyboru trybu grupowania filamentów" @@ -10132,6 +10155,9 @@ msgstr "Kopiuje do tego profilu wszystkie wartości odziedziczone z profilu nadr msgid "Detach from parent" msgstr "Odłącz od elementu nadrzędnego" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Profil niezależny" @@ -12095,6 +12121,17 @@ msgstr "Pokaż/ukryj okno dialogowe ustawień urządzeń 3Dconnexion" msgid "Switch table page" msgstr "Przełącz stronę tabeli" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Spacja" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Pokaż listę skrótów klawiszowych" @@ -12257,15 +12294,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Przełączanie między przygotowaniem/podglądem" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Spacja" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Otwórz szybkie menu akcji" - msgid "Plater" msgstr "Płyta" @@ -12540,8 +12568,8 @@ msgstr "Naprawa anulowana" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Nie udało się skopiować pliku %1% do %2%: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Należy sprawdzić niezapisane zmiany przed aktualizacją konfiguracji." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Pakiet konfiguracyjny:" @@ -12549,6 +12577,12 @@ msgstr "Pakiet konfiguracyjny:" msgid " updated to " msgstr " aktualizacja do " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Należy sprawdzić niezapisane zmiany przed aktualizacją konfiguracji." + msgid "Open G-code file:" msgstr "Otwórz plik G-code:" @@ -14206,6 +14240,9 @@ msgstr "Wyrównany prostoliniowy" msgid "Concentric" msgstr "Koncentryczny" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Krzywa Hilberta" @@ -14297,29 +14334,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Kolejność wypełniania górnej powierzchni" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Kierunek wypełniania górnych powierzchni przy użyciu wzoru opartego na środku (Koncentryczny, Cięciwy Archimedesa, Spirala Octagram).\n" -"Na zewnątrz zaczyna od środka powierzchni, dzięki czemu nadmiar materiału jest wypychany ku krawędzi, gdzie jest najmniej widoczny. Do wewnątrz zaczyna od krawędzi i kończy ciasnymi łukami na środku.\n" -"Domyślnie używana jest kolejność najkrótszej ścieżki, która może przebiegać w dowolnym kierunku." # AI Translated msgid "Bottom surface fill order" msgstr "Kolejność wypełniania dolnej powierzchni" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Kierunek wypełniania dolnych powierzchni przy użyciu wzoru opartego na środku (Koncentryczny, Cięciwy Archimedesa, Spirala Octagram).\n" -"Do wewnątrz rozpoczyna każdą powierzchnię od szerszych łuków zewnętrznych, co poprawia przyczepność pierwszej warstwy na stołach, do których ciasne łuki na środku mogą nie przylegać. Na zewnątrz zaczyna od środka, wypychając nadmiar materiału ku krawędzi.\n" -"Domyślnie używana jest kolejność najkrótszej ścieżki, która może przebiegać w dowolnym kierunku." msgid "Internal solid infill pattern" msgstr "Wzór wewnętrznego pełnego wypełnienia" @@ -22549,6 +22578,33 @@ msgstr "" "Unikaj odkształceń\n" "Czy wiesz, że podczas drukowania filamentami podatnymi na odkształcenia, takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może zmniejszyć prawdopodobieństwo odkształceń?" +#~ msgid "Select the language" +#~ msgstr "Wybierz język" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Otwórz szybkie menu akcji" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Kierunek wypełniania górnych powierzchni przy użyciu wzoru opartego na środku (Koncentryczny, Cięciwy Archimedesa, Spirala Octagram).\n" +#~ "Na zewnątrz zaczyna od środka powierzchni, dzięki czemu nadmiar materiału jest wypychany ku krawędzi, gdzie jest najmniej widoczny. Do wewnątrz zaczyna od krawędzi i kończy ciasnymi łukami na środku.\n" +#~ "Domyślnie używana jest kolejność najkrótszej ścieżki, która może przebiegać w dowolnym kierunku." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Kierunek wypełniania dolnych powierzchni przy użyciu wzoru opartego na środku (Koncentryczny, Cięciwy Archimedesa, Spirala Octagram).\n" +#~ "Do wewnątrz rozpoczyna każdą powierzchnię od szerszych łuków zewnętrznych, co poprawia przyczepność pierwszej warstwy na stołach, do których ciasne łuki na środku mogą nie przylegać. Na zewnątrz zaczyna od środka, wypychając nadmiar materiału ku krawędzi.\n" +#~ "Domyślnie używana jest kolejność najkrótszej ścieżki, która może przebiegać w dowolnym kierunku." + # AI Translated #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Natywny podgląd na żywo w Wayland wymaga ujścia wideo GStreamer GTK. Zainstaluj wtyczkę gtksink dla GStreamer, a następnie uruchom ponownie OrcaSlicer." diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index 6f7bf473c0..183c8f7088 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2026-07-26 11:14-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: Portuguese, Brazilian\n" @@ -2356,13 +2356,6 @@ msgstr "Há uma atualização disponível. Abra a caixa de diálogo do pacote de msgid "%s has been removed." msgstr "%s foi removido." - -msgid "Select the language" -msgstr "Selecione o idioma" - -msgid "Language" -msgstr "Idioma" - #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." msgstr "Falha ao mudar o idioma do OrcaSlicer para %s." @@ -2395,6 +2388,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Falha ao abrir a caixa de diálogo de Plugins (erro desconhecido)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Terminal de plugin" @@ -4441,6 +4447,12 @@ msgstr "" "A cópia do G-code temporário para o G-code de saída falhou. Talvez o cartão SD esteja travado pra escrita?\n" "Mensagem de erro: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "A cópia do G-code temporário para o G-code de saída falhou. Pode haver problema com o dispositivo de destino, por favor tente exportar novamente ou usar outro dispositivo. O G-code de saída corrompido está em %1%.tmp." @@ -6323,6 +6335,9 @@ msgstr "Mostrar contorno ao redor do objeto selecionado na cena 3D." msgid "Preferences" msgstr "Preferências" +msgid "Open speed dial..." +msgstr "" + msgctxt "Menu" msgid "Edit" msgstr "Editar" @@ -8570,7 +8585,6 @@ msgstr "Você deseja continuar?" msgid "Language selection" msgstr "Seleção de idioma" - msgid "Asia-Pacific" msgstr "Ásia-Pacífico" @@ -8675,6 +8689,9 @@ msgstr "Caminho da Instância Atual: " msgid "General" msgstr "Geral" +msgid "Language" +msgstr "Idioma" + msgid "Metric" msgstr "Métrico" @@ -8879,6 +8896,12 @@ msgstr "Gerenciamento de multi dispositivos" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Com esta opção habilitada, você pode enviar uma tarefa para vários dispositivos ao mesmo tempo e gerenciar vários dispositivos." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Abrir seleção do modo de agrupamento de filamento" @@ -9587,6 +9610,9 @@ msgstr "Copia para esta predefinição todos os valores herdados da predefiniç msgid "Detach from parent" msgstr "Separar do pai" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Predefinição única" @@ -11450,6 +11476,16 @@ msgstr "Mostrar/Ocultar diálogo de configurações de dispositivos 3Dconnexion" msgid "Switch table page" msgstr "Trocar página da tabela" +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Espaço" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Mostrar lista de atalhos de teclado" @@ -11605,14 +11641,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Alternar entre Preparar/Pré-visualizar" -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Espaço" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Abrir menu rápido de ações" - msgid "Plater" msgstr "Mesa" @@ -11877,8 +11905,8 @@ msgstr "Reparo cancelado" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Falha ao copiar o arquivo %1% para %2%: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Verifique as alterações não salvas antes de atualizar a configuração." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Pacote de configuração: " @@ -11886,6 +11914,12 @@ msgstr "Pacote de configuração: " msgid " updated to " msgstr " atualizado para " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Verifique as alterações não salvas antes de atualizar a configuração." + msgid "Open G-code file:" msgstr "Abrir arquivo G-code:" @@ -13455,6 +13489,9 @@ msgstr "Retilíneo alinhado" msgid "Concentric" msgstr "Concêntrico" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Curva de Hilbert" @@ -13535,25 +13572,19 @@ msgid "Top surface fill order" msgstr "Ordem de preenchimento da superfície superior" msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Direção em que as superfícies superiores são preenchidas ao usar um padrão baseado no centro (Concêntrico, Cordas de Arquimedes, Espiral de Octograma).\n" -"Para fora começa no centro da superfície, de modo que qualquer excesso de material seja empurrado em direção à borda, onde é menos visível. Para dentro começa na borda e termina com as curvas fechadas no centro.\n" -"O padrão usa a ordenação de caminho mais curto, que pode seguir em qualquer direção." msgid "Bottom surface fill order" msgstr "Ordem de preenchimento da superfície inferior" msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Direção em que as superfícies inferiores são preenchidas ao usar um padrão baseado no centro (Concêntrico, Cordas de Arquimedes, Espiral de Octograma).\n" -"Para dentro começa cada superfície com as curvas externas mais largas, o que melhora a aderência da primeira camada em mesas onde as curvas fechadas no centro podem não aderir. Para fora começa no centro, empurrando qualquer excesso de material em direção à borda.\n" -"O padrão usa a ordenação de caminho mais curto, que pode seguir em qualquer direção." msgid "Internal solid infill pattern" msgstr "Padrão de preenchimento sólido interno" @@ -21261,6 +21292,31 @@ msgstr "" "Evitar empenamento\n" "Você sabia que ao imprimir materiais propensos ao empenamento como ABS, aumentar adequadamente a temperatura da mesa aquecida pode reduzir a probabilidade de empenamento?" +#~ msgid "Select the language" +#~ msgstr "Selecione o idioma" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Abrir menu rápido de ações" + +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Direção em que as superfícies superiores são preenchidas ao usar um padrão baseado no centro (Concêntrico, Cordas de Arquimedes, Espiral de Octograma).\n" +#~ "Para fora começa no centro da superfície, de modo que qualquer excesso de material seja empurrado em direção à borda, onde é menos visível. Para dentro começa na borda e termina com as curvas fechadas no centro.\n" +#~ "O padrão usa a ordenação de caminho mais curto, que pode seguir em qualquer direção." + +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Direção em que as superfícies inferiores são preenchidas ao usar um padrão baseado no centro (Concêntrico, Cordas de Arquimedes, Espiral de Octograma).\n" +#~ "Para dentro começa cada superfície com as curvas externas mais largas, o que melhora a aderência da primeira camada em mesas onde as curvas fechadas no centro podem não aderir. Para fora começa no centro, empurrando qualquer excesso de material em direção à borda.\n" +#~ "O padrão usa a ordenação de caminho mais curto, que pode seguir em qualquer direção." + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "A visualização ao vivo nativa do Wayland requer o receptor de vídeo GTK do GStreamer. Instale o plugin gtksink para GStreamer e reinicie o OrcaSlicer." diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index 2e33546ae8..8d1bf38c13 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer V2.5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2026-02-25 13:38+0300\n" "Last-Translator: Felix14_v2\n" "Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg <andylg@yandex.ru>\n" @@ -2431,13 +2431,6 @@ msgstr "Доступно обновление. Проверьте меню па msgid "%s has been removed." msgstr "%s был удалён." - -msgid "Select the language" -msgstr "Выбор языка" - -msgid "Language" -msgstr "Язык" - #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." msgstr "Не удалось переключить язык на %s." @@ -2469,6 +2462,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Не удалось открыть меню плагинов (неизвестная ошибка)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + msgid "Plugin Terminal" msgstr "Консоль плагина" @@ -4577,6 +4583,12 @@ msgstr "" "Не удалось скопировать временный G-код в целевое расположение. Возможно, накопитель защищён от записи?\n" "Сообщение об ошибке: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Не удалось скопировать временный G-код в целевое расположение. Возможно, проблема с устройством хранения, попробуйте выполнить экспорт снова или использовать другое устройство. Повреждённый выходной файл G-кода находится в %1%.tmp." @@ -6558,6 +6570,9 @@ msgstr "Отображение контура вокруг выбранных м msgid "Preferences" msgstr "Настройки" +msgid "Open speed dial..." +msgstr "" + msgctxt "Menu" msgid "Edit" msgstr "Правка" @@ -8850,7 +8865,6 @@ msgstr "Хотите продолжить?" msgid "Language selection" msgstr "Выбор языка" - msgid "Asia-Pacific" msgstr "Азиатско-Тихоокеанский" @@ -8956,6 +8970,9 @@ msgstr "Расположение: " msgid "General" msgstr "Общие" +msgid "Language" +msgstr "Язык" + msgid "Metric" msgstr "Метрическая СИ" @@ -9159,6 +9176,12 @@ msgstr "Управление несколькими устройствами Bam msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Если включено, вы сможете управлять несколькими устройствами и отправлять задания на печать на несколько устройств одновременно." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + # Запрашивать выбор режима группировки? msgid "Pop up to select filament grouping mode" msgstr "Всплывающее окно для выбора режима группировки материалов" @@ -9879,6 +9902,9 @@ msgstr "Копирует в этот профиль все значения, у msgid "Detach from parent" msgstr "Сделать независимым" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Независимый профиль" @@ -11780,6 +11806,16 @@ msgstr "Показать/скрыть диалоговое окно настро msgid "Switch table page" msgstr "Переключение между вкладками" +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Пробел" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Показать список сочетаний клавиш" @@ -11936,13 +11972,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Переключение между подготовкой и просмотром нарезки" -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Пробел" - -msgid "Open actions speed dial" -msgstr "Открыть строку быстрых действий" - # Plater – это название библиотеки. Используется в меню горячих клавиш в качестве заголовка сочетаний клавиш, которые работают внутри пространства Plater. Как минимум на Windows не отображается. msgid "Plater" msgstr "Рабочая область" @@ -12207,8 +12236,8 @@ msgstr "Восстановление отменено" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Не удалось скопировать файл %1% в %2%: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Перед обновлением профилей необходимо проверить несохранённые изменения." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Пакет профилей: " @@ -12216,6 +12245,12 @@ msgstr "Пакет профилей: " msgid " updated to " msgstr " обновлён до " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Перед обновлением профилей необходимо проверить несохранённые изменения." + msgid "Open G-code file:" msgstr "Выберите G-код файл:" @@ -13850,6 +13885,9 @@ msgstr "Ровный зигзаг" msgid "Concentric" msgstr "Эквидистанты" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Кривая Гильберта" @@ -13944,27 +13982,19 @@ msgid "Top surface fill order" msgstr "Направление печати" msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Направление печати спирали/эквидистант на верхних поверхностях. Позволяет управляемо распределять избыток материала.\n" -"• По умолчанию: использовать кратчайший путь.\n" -"• Наружу: от центра шаблона к краю модели.\n" -"• Внутрь: от края модели к центру шаблона." msgid "Bottom surface fill order" msgstr "Направление печати" msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Направление печати спирали/эквидистант на нижних поверхностях. Позволяет управляемо распределять избыток материала.\n" -"• По умолчанию: использовать кратчайший путь.\n" -"• Наружу: от центра шаблона к краю модели.\n" -"• Внутрь: от края модели к центру шаблона." msgid "Internal solid infill pattern" msgstr "Шаблон сплошного заполнения" @@ -22301,6 +22331,32 @@ msgstr "" "Предотвращение коробления материала\n" "Знаете ли вы, что при печати материалами, склонными к короблению, таких как ABS, повышение температуры подогреваемого стола может снизить эту вероятность?" +#~ msgid "Select the language" +#~ msgstr "Выбор языка" + +#~ msgid "Open actions speed dial" +#~ msgstr "Открыть строку быстрых действий" + +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Направление печати спирали/эквидистант на верхних поверхностях. Позволяет управляемо распределять избыток материала.\n" +#~ "• По умолчанию: использовать кратчайший путь.\n" +#~ "• Наружу: от центра шаблона к краю модели.\n" +#~ "• Внутрь: от края модели к центру шаблона." + +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Направление печати спирали/эквидистант на нижних поверхностях. Позволяет управляемо распределять избыток материала.\n" +#~ "• По умолчанию: использовать кратчайший путь.\n" +#~ "• Наружу: от центра шаблона к краю модели.\n" +#~ "• Внутрь: от края модели к центру шаблона." + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Для нативного отображения трансляции в Wayland требуется gtksink (плагин для GStreamer). Установите необходимый пакет плагинов и перезапустите OrcaSlicer." diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index b9aa481d4c..e71aaaa56a 100644 --- a/localization/i18n/sv/OrcaSlicer_sv.po +++ b/localization/i18n/sv/OrcaSlicer_sv.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2767,13 +2767,6 @@ msgstr "Det finns en uppdatering tillgänglig. Öppna dialogrutan för förinst msgid "%s has been removed." msgstr "%s har tagits bort." - -msgid "Select the language" -msgstr "Välj språk" - -msgid "Language" -msgstr "Språk" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2811,6 +2804,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Det gick inte att öppna dialogrutan Insticksmoduler (okänt fel)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Terminal för insticksmoduler" @@ -5066,6 +5072,12 @@ msgstr "" "Det gick inte att kopiera den tillfälliga G-code-filen till utdatafilen. Kanske är SD-kortet skrivskyddat?\n" "Felmeddelande: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + # AI Translated #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." @@ -7169,6 +7181,9 @@ msgstr "Visa en kontur runt det markerade objektet i 3D-scenen." msgid "Preferences" msgstr "Inställningar" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -9692,7 +9707,6 @@ msgstr "Fortsätta?" msgid "Language selection" msgstr "Språkval" - msgid "Asia-Pacific" msgstr "Asien-Stillahavsområdet" @@ -9812,6 +9826,9 @@ msgstr "Sökväg till aktuell instans: " msgid "General" msgstr "Allmän" +msgid "Language" +msgstr "Språk" + msgid "Metric" msgstr "Metrisk" @@ -10052,6 +10069,12 @@ msgstr "Hantering av flera enheter" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Med det här alternativet aktiverat kan du skicka en uppgift till flera enheter samtidigt och hantera flera enheter." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + # AI Translated msgid "Pop up to select filament grouping mode" msgstr "Visa dialogruta för val av filamentgrupperingsläge" @@ -10851,6 +10874,9 @@ msgstr "Kopierar alla ärvda värden från den överordnade förinställningen t msgid "Detach from parent" msgstr "Koppla loss från överordnad" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Unik förinställning" @@ -12982,6 +13008,17 @@ msgstr "Visa/Dölj 3Dconnexion enheternas inställnings dialogruta" msgid "Switch table page" msgstr "Byt tabellsida" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Blanksteg" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Visa tangentbordets genvägs lista" @@ -13147,15 +13184,6 @@ msgstr "Tabb" msgid "Switch between Prepare/Preview" msgstr "Växla mellan Förbered/Förhandsgranska" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Blanksteg" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Öppna snabbvalsmenyn för åtgärder" - msgid "Plater" msgstr "Plätering/Förgyllning" @@ -13454,8 +13482,8 @@ msgstr "Reparation avbruten" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Kopierar fil %1% till %2% misslyckade: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Kontrollera ej sparade ändringar innan konfigureringen uppdateras." +msgid "Downloading new vendor profile(s): " +msgstr "" # AI Translated msgid "Configuration package: " @@ -13465,6 +13493,12 @@ msgstr "Konfigurationspaket: " msgid " updated to " msgstr " uppdaterat till " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Kontrollera ej sparade ändringar innan konfigureringen uppdateras." + msgid "Open G-code file:" msgstr "Öppna G-kod fil:" @@ -15218,6 +15252,9 @@ msgstr "Justerade Rätlinjig" msgid "Concentric" msgstr "Koncentrisk" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Hilbert kurvan" @@ -15313,29 +15350,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Fyllordning för ovansidan" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Riktning i vilken ovansidor fylls när ett centrumbaserat mönster används (Koncentrisk, Arkimediska kordor, Oktagramspiral).\n" -"Utåt börjar i ytans mitt, så att överskottsmaterial trycks ut mot kanten där det syns minst. Inåt börjar vid kanten och slutar med de trånga kurvorna i mitten.\n" -"Standard använder ordning efter kortaste väg, vilken kan gå i endera riktningen." # AI Translated msgid "Bottom surface fill order" msgstr "Fyllordning för undersidan" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Riktning i vilken undersidor fylls när ett centrumbaserat mönster används (Koncentrisk, Arkimediska kordor, Oktagramspiral).\n" -"Inåt börjar varje yta med de bredare yttre kurvorna, vilket förbättrar det första lagrets vidhäftning på byggplattor där de trånga kurvorna i mitten kanske inte fastnar. Utåt börjar i mitten och trycker överskottsmaterial mot kanten.\n" -"Standard använder ordning efter kortaste väg, vilken kan gå i endera riktningen." msgid "Internal solid infill pattern" msgstr "Invändigt mönster för fyllning av solida ytor" @@ -24380,6 +24409,33 @@ msgstr "" "Undvik vridning\n" "Visste du att när du skriver ut material som är benägna att vrida, såsom ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten för vridning?" +#~ msgid "Select the language" +#~ msgstr "Välj språk" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Öppna snabbvalsmenyn för åtgärder" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Riktning i vilken ovansidor fylls när ett centrumbaserat mönster används (Koncentrisk, Arkimediska kordor, Oktagramspiral).\n" +#~ "Utåt börjar i ytans mitt, så att överskottsmaterial trycks ut mot kanten där det syns minst. Inåt börjar vid kanten och slutar med de trånga kurvorna i mitten.\n" +#~ "Standard använder ordning efter kortaste väg, vilken kan gå i endera riktningen." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Riktning i vilken undersidor fylls när ett centrumbaserat mönster används (Koncentrisk, Arkimediska kordor, Oktagramspiral).\n" +#~ "Inåt börjar varje yta med de bredare yttre kurvorna, vilket förbättrar det första lagrets vidhäftning på byggplattor där de trånga kurvorna i mitten kanske inte fastnar. Utåt börjar i mitten och trycker överskottsmaterial mot kanten.\n" +#~ "Standard använder ordning efter kortaste väg, vilken kan gå i endera riktningen." + # AI Translated #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Liveview i Wayland kräver GStreamers GTK-videosink. Installera insticksmodulen gtksink för GStreamer och starta sedan om OrcaSlicer." diff --git a/localization/i18n/th/OrcaSlicer_th.po b/localization/i18n/th/OrcaSlicer_th.po index ee7430015e..9c0bab2947 100644 --- a/localization/i18n/th/OrcaSlicer_th.po +++ b/localization/i18n/th/OrcaSlicer_th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2026-06-19 13:40+0700\n" "Last-Translator: Icezaza\n" "Language-Team: Thai\n" @@ -2456,13 +2456,6 @@ msgstr "มีอัปเดตพร้อมใช้งาน เปิด msgid "%s has been removed." msgstr "ลบ %s แล้ว" - -msgid "Select the language" -msgstr "เลือกภาษา" - -msgid "Language" -msgstr "ภาษา" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2500,6 +2493,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "ไม่สามารถเปิดกล่องโต้ตอบปลั๊กอินได้ (ข้อผิดพลาดที่ไม่รู้จัก)" +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "เทอร์มินัลปลั๊กอิน" @@ -4582,6 +4588,12 @@ msgstr "" "การคัดลอก G-code ชั่วคราวไปยังเอาต์พุต G-code ล้มเหลว บางทีการ์ด SD อาจถูกล็อคการเขียน?\n" "ข้อความแสดงข้อผิดพลาด: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "การคัดลอก G-code ชั่วคราวไปยังเอาต์พุต G-code ล้มเหลว อาจมีปัญหากับอุปกรณ์เป้าหมาย โปรดลองส่งออกอีกครั้งหรือใช้อุปกรณ์อื่น G-code เอาต์พุตที่เสียหายอยู่ที่ %1%.tmp" @@ -6482,6 +6494,9 @@ msgstr "แสดงเค้าร่างรอบๆ วัตถุที msgid "Preferences" msgstr "การตั้งค่า" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8756,7 +8771,6 @@ msgstr "ต้องการดำเนินการต่อหรือไ msgid "Language selection" msgstr "การเลือกภาษา" - msgid "Asia-Pacific" msgstr "เอเชียแปซิฟิก" @@ -8861,6 +8875,9 @@ msgstr "เส้นทางอินสแตนซ์ปัจจุบัน msgid "General" msgstr "ทั่วไป" +msgid "Language" +msgstr "ภาษา" + msgid "Metric" msgstr "เมตริก" @@ -9065,6 +9082,12 @@ msgstr "การจัดการอุปกรณ์หลายเครื msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "เมื่อเปิดใช้งานตัวเลือกนี้ คุณสามารถส่งงานไปยังอุปกรณ์หลายเครื่องพร้อมกันและจัดการอุปกรณ์หลายเครื่องได้" +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "ปรากฏขึ้นเพื่อเลือกโหมดการจัดกลุ่มเส้นพลาสติก" @@ -9776,6 +9799,9 @@ msgstr "คัดลอกค่าที่สืบทอดมาจากพ msgid "Detach from parent" msgstr "แยกออกจากพรีเซ็ตแม่" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "พรีเซ็ตอิสระ" @@ -11664,6 +11690,17 @@ msgstr "แสดง/ซ่อนกล่องโต้ตอบการต msgid "Switch table page" msgstr "สลับหน้าตาราง" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "แสดงรายการแป้นพิมพ์ลัด" @@ -11824,15 +11861,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "สลับระหว่างการเตรียม/ดูตัวอย่าง" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -# AI Translated -msgid "Open actions speed dial" -msgstr "เปิดสปีดไดอัลการดำเนินการ" - msgid "Plater" msgstr "เพลเตอร์" @@ -12100,8 +12128,8 @@ msgstr "ยกเลิกการซ่อมแล้ว" msgid "Copying of file %1% to %2% failed: %3%" msgstr "การคัดลอกไฟล์ %1% ถึง %2% ล้มเหลว: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "โปรดตรวจสอบการเปลี่ยนแปลงที่ยังไม่ได้บันทึกก่อนอัปเดตการกำหนดค่า" +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "แพคเกจการกำหนดค่า:" @@ -12109,6 +12137,12 @@ msgstr "แพคเกจการกำหนดค่า:" msgid " updated to " msgstr "อัปเดตเป็น" +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "โปรดตรวจสอบการเปลี่ยนแปลงที่ยังไม่ได้บันทึกก่อนอัปเดตการกำหนดค่า" + msgid "Open G-code file:" msgstr "เปิดไฟล์ G-code:" @@ -13674,6 +13708,9 @@ msgstr "จัดแนวเป็นเส้นตรง" msgid "Concentric" msgstr "ศูนย์กลาง" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "ฮิลเบิร์ต เคิร์ฟ" @@ -13763,29 +13800,21 @@ msgstr "" msgid "Top surface fill order" msgstr "ลำดับการเติมพื้นผิวด้านบน" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"ทิศทางที่พื้นผิวด้านบนถูกเติมเมื่อใช้ลวดลายแบบอิงจุดศูนย์กลาง (Concentric, Archimedean Chords, Octagram Spiral)\n" -"ออกด้านนอกเริ่มที่กึ่งกลางของพื้นผิว ดังนั้นวัสดุส่วนเกินจะถูกดันไปทางขอบซึ่งมองเห็นได้น้อยที่สุด เข้าด้านในเริ่มที่ขอบและจบด้วยเส้นโค้งแคบที่กึ่งกลาง\n" -"ค่าเริ่มต้นใช้การเรียงลำดับเส้นทางสั้นที่สุด ซึ่งอาจทำงานในทิศทางใดก็ได้" # AI Translated msgid "Bottom surface fill order" msgstr "ลำดับการเติมพื้นผิวด้านล่าง" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"ทิศทางที่พื้นผิวด้านล่างถูกเติมเมื่อใช้ลวดลายแบบอิงจุดศูนย์กลาง (Concentric, Archimedean Chords, Octagram Spiral)\n" -"เข้าด้านในเริ่มแต่ละพื้นผิวด้วยเส้นโค้งด้านนอกที่กว้างกว่า ซึ่งช่วยเพิ่มการยึดเกาะเลเยอร์แรกบนฐานพิมพ์ที่เส้นโค้งแคบตรงกลางอาจไม่ติด ออกด้านนอกเริ่มที่กึ่งกลาง โดยดันวัสดุส่วนเกินไปทางขอบ\n" -"ค่าเริ่มต้นใช้การเรียงลำดับเส้นทางสั้นที่สุด ซึ่งอาจทำงานในทิศทางใดก็ได้" msgid "Internal solid infill pattern" msgstr "รูปแบบไส้ในของแข็งภายใน" @@ -21680,6 +21709,33 @@ msgstr "" "หลีกเลี่ยงการบิดเบี้ยว\n" "คุณรู้หรือไม่ว่าเมื่อพิมพ์วัสดุที่มีแนวโน้มที่จะเกิดการบิดเบี้ยว เช่น ABS การเพิ่มอุณหภูมิฐานพิมพ์อย่างเหมาะสมสามารถลดความน่าจะเป็นของการบิดเบี้ยวได้" +#~ msgid "Select the language" +#~ msgstr "เลือกภาษา" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "เปิดสปีดไดอัลการดำเนินการ" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "ทิศทางที่พื้นผิวด้านบนถูกเติมเมื่อใช้ลวดลายแบบอิงจุดศูนย์กลาง (Concentric, Archimedean Chords, Octagram Spiral)\n" +#~ "ออกด้านนอกเริ่มที่กึ่งกลางของพื้นผิว ดังนั้นวัสดุส่วนเกินจะถูกดันไปทางขอบซึ่งมองเห็นได้น้อยที่สุด เข้าด้านในเริ่มที่ขอบและจบด้วยเส้นโค้งแคบที่กึ่งกลาง\n" +#~ "ค่าเริ่มต้นใช้การเรียงลำดับเส้นทางสั้นที่สุด ซึ่งอาจทำงานในทิศทางใดก็ได้" + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "ทิศทางที่พื้นผิวด้านล่างถูกเติมเมื่อใช้ลวดลายแบบอิงจุดศูนย์กลาง (Concentric, Archimedean Chords, Octagram Spiral)\n" +#~ "เข้าด้านในเริ่มแต่ละพื้นผิวด้วยเส้นโค้งด้านนอกที่กว้างกว่า ซึ่งช่วยเพิ่มการยึดเกาะเลเยอร์แรกบนฐานพิมพ์ที่เส้นโค้งแคบตรงกลางอาจไม่ติด ออกด้านนอกเริ่มที่กึ่งกลาง โดยดันวัสดุส่วนเกินไปทางขอบ\n" +#~ "ค่าเริ่มต้นใช้การเรียงลำดับเส้นทางสั้นที่สุด ซึ่งอาจทำงานในทิศทางใดก็ได้" + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Native Wayland liveview ต้องใช้ GStreamer GTK video sink โปรดติดตั้งปลั๊กอิน gtksink สำหรับ GStreamer จากนั้นรีสตาร์ท OrcaSlicer" diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index 0cf9d57412..864bd15610 100644 --- a/localization/i18n/tr/OrcaSlicer_tr.po +++ b/localization/i18n/tr/OrcaSlicer_tr.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2026-08-21 23:18+0300\n" "Last-Translator: GlauTech\n" "Language-Team: \n" @@ -2480,13 +2480,6 @@ msgstr "Kullanılabilir bir güncelleme var. Güncellemek için ön ayar paketi msgid "%s has been removed." msgstr "%s kaldırıldı." - -msgid "Select the language" -msgstr "Dili seçin" - -msgid "Language" -msgstr "Dil" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2524,6 +2517,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Eklentiler iletişim kutusu açılamadı (bilinmeyen hata)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Eklenti Terminali" @@ -4641,6 +4647,12 @@ msgstr "" "Geçici G-code'un çıkış G-code'a kopyalanması başarısız oldu. Belki SD kart yazma kilitlidir.\n" "Hata mesajı: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Geçici G-code'un çıkış G-code'a kopyalanması başarısız oldu. Hedef cihazda sorun olabilir, lütfen tekrar dışa aktarmayı veya farklı bir cihaz kullanmayı deneyin. Bozuk çıktı G-code %1%.tmp konumunda." @@ -6550,6 +6562,9 @@ msgstr "3D sahnede seçilen nesnenin etrafındaki ana hatları göster." msgid "Preferences" msgstr "Tercihler" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8858,7 +8873,6 @@ msgstr "Devam etmek istiyor musun?" msgid "Language selection" msgstr "Dil seçimi" - msgid "Asia-Pacific" msgstr "Asya Pasifik" @@ -8963,6 +8977,9 @@ msgstr "Mevcut Örnek Yolu: " msgid "General" msgstr "Genel" +msgid "Language" +msgstr "Dil" + msgid "Metric" msgstr "Metrik" @@ -9170,6 +9187,12 @@ msgstr "Çoklu cihaz yönetimi" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Bu seçenek etkinleştirildiğinde, aynı anda birden fazla cihaza bir görev gönderebilir ve birden fazla cihazı yönetebilirsiniz." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Filament gruplama modunu seçmek için açılır pencere" @@ -9920,6 +9943,9 @@ msgstr "Üst ön ayardan devralınan tüm değerleri bu ön ayara kopyalar ve ü msgid "Detach from parent" msgstr "Ebeveynden ayrıl" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Bağımsız ön ayar" @@ -11850,6 +11876,17 @@ msgstr "3Dconnexion cihazları ayarları iletişim kutusunu Göster/Gizle" msgid "Switch table page" msgstr "Tablo sayfasını değiştir" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Boşluk" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Klavye kısayolları listesini göster" @@ -12012,15 +12049,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Hazırlama/Önizleme arasında geçiş yap" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Boşluk" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Eylem hızlı erişim menüsünü aç" - msgid "Plater" msgstr "Plakacı" @@ -12295,8 +12323,8 @@ msgstr "Onarım iptal edildi" msgid "Copying of file %1% to %2% failed: %3%" msgstr "%1% dosyasının %2% dosyasına kopyalanması başarısız oldu: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Yapılandırma güncellemelerinden önce kaydedilmemiş değişiklikleri kontrol etmeniz gerekir." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Yapılandırma paketi: " @@ -12304,6 +12332,12 @@ msgstr "Yapılandırma paketi: " msgid " updated to " msgstr " güncellendi " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Yapılandırma güncellemelerinden önce kaydedilmemiş değişiklikleri kontrol etmeniz gerekir." + msgid "Open G-code file:" msgstr "G-code dosyasını açın:" @@ -13922,6 +13956,9 @@ msgstr "Hizalanmış doğrusal" msgid "Concentric" msgstr "Konsantrik" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Hilbert eğrisi" @@ -14011,29 +14048,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Üst yüzey doldurma sırası" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Merkez tabanlı bir desen (Konsantrik, Arşimet akorları, Sekizgen spiral) kullanılırken üst yüzeylerin doldurulma yönü.\n" -"Dışarı, yüzeyin merkezinden başlar; böylece fazla malzeme en az göründüğü kenara doğru itilir. İçeri kenardan başlar ve merkezdeki dar kavislerle biter.\n" -"Varsayılan, her iki yönde de ilerleyebilen en kısa yol sıralamasını kullanır." # AI Translated msgid "Bottom surface fill order" msgstr "Alt yüzey doldurma sırası" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Merkez tabanlı bir desen (Konsantrik, Arşimet akorları, Sekizgen spiral) kullanılırken alt yüzeylerin doldurulma yönü.\n" -"İçeri, her yüzeye daha geniş dış kavislerle başlar; bu da merkezdeki dar kavislerin yapışmayabileceği yapı plakalarında ilk katman yapışmasını iyileştirir. Dışarı merkezden başlar ve fazla malzemeyi kenara doğru iter.\n" -"Varsayılan, her iki yönde de ilerleyebilen en kısa yol sıralamasını kullanır." msgid "Internal solid infill pattern" msgstr "İç katı dolgu deseni" @@ -22135,6 +22164,33 @@ msgstr "" "Eğilmeyi önleyin\n" "ABS gibi bükülmeye yatkın malzemelere baskı yaparken, ısıtma yatağı sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını azaltabileceğini biliyor muydunuz?" +#~ msgid "Select the language" +#~ msgstr "Dili seçin" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Eylem hızlı erişim menüsünü aç" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Merkez tabanlı bir desen (Konsantrik, Arşimet akorları, Sekizgen spiral) kullanılırken üst yüzeylerin doldurulma yönü.\n" +#~ "Dışarı, yüzeyin merkezinden başlar; böylece fazla malzeme en az göründüğü kenara doğru itilir. İçeri kenardan başlar ve merkezdeki dar kavislerle biter.\n" +#~ "Varsayılan, her iki yönde de ilerleyebilen en kısa yol sıralamasını kullanır." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Merkez tabanlı bir desen (Konsantrik, Arşimet akorları, Sekizgen spiral) kullanılırken alt yüzeylerin doldurulma yönü.\n" +#~ "İçeri, her yüzeye daha geniş dış kavislerle başlar; bu da merkezdeki dar kavislerin yapışmayabileceği yapı plakalarında ilk katman yapışmasını iyileştirir. Dışarı merkezden başlar ve fazla malzemeyi kenara doğru iter.\n" +#~ "Varsayılan, her iki yönde de ilerleyebilen en kısa yol sıralamasını kullanır." + # AI Translated #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Yerel Wayland canlı görüntüsü, GStreamer GTK video alıcısını gerektirir. Lütfen GStreamer için gtksink eklentisini yükleyin ve ardından OrcaSlicer'ı yeniden başlatın." diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index ec9e97bae0..5c352f52dd 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: orcaslicerua\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2026-07-17 16:25+0300\n" "Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n" "Language-Team: Ukrainian\n" @@ -2424,13 +2424,6 @@ msgstr "Доступне оновлення. Відкрийте вікно на msgid "%s has been removed." msgstr "%s вилучено." - -msgid "Select the language" -msgstr "Вибрати мову" - -msgid "Language" -msgstr "Мова" - #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." msgstr "Не вдалося перемкнути Orca Slicer на мову %s." @@ -2465,6 +2458,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Не вдалося відкрити діалогове вікно плагінів (невідома помилка)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Термінал плагіна" @@ -4577,6 +4583,12 @@ msgstr "" "Не вдалося скопіювати тимчасовий G-код у місцезнаходження вихідного файлу G-коду. Чи може ваша SD карта захищена від запису?\n" "Повідомлення про помилку: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Не вдалося скопіювати тимчасовий G-код у вихідний G-код. Можливо, проблема з цільовим пристроєм, спробуйте експортувати ще раз або використати інший пристрій. Пошкоджений вихідний G-код - %1% .tmp." @@ -6519,6 +6531,9 @@ msgstr "Показувати контур навколо виділеного о msgid "Preferences" msgstr "Налаштування" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8872,7 +8887,6 @@ msgstr "Ви хочете продовжувати?" msgid "Language selection" msgstr "Вибір мови" - msgid "Asia-Pacific" msgstr "Азіатсько-Тихоокеанський регіон" @@ -8980,6 +8994,9 @@ msgstr "Шлях Поточної Інсталяції: " msgid "General" msgstr "Загальні" +msgid "Language" +msgstr "Мова" + msgid "Metric" msgstr "Метрика" @@ -9188,6 +9205,12 @@ msgstr "Керування кількома пристроями" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "З цією опцією ввімкненою, ви можете відправляти завдання на кілька пристроїв одночасно та керувати декількома пристроями." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + # AI Translated msgid "Pop up to select filament grouping mode" msgstr "Показувати вікно вибору режиму групування філаментів" @@ -9924,6 +9947,9 @@ msgstr "Копіює в цей пресет усі значення, успад msgid "Detach from parent" msgstr "Відʼєднати від батьківського" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Незалежний пресет" @@ -11912,6 +11938,17 @@ msgstr "Показати/приховати діалог налаштувань msgid "Switch table page" msgstr "Перемкнути сторінку таблиці" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Пробіл" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Показати список клавіш" @@ -12074,15 +12111,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Переключення між Підготовка/Попередній перегляд" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Пробіл" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Відкрити панель швидких дій" - msgid "Plater" msgstr "Тарілка" @@ -12353,9 +12381,8 @@ msgstr "Ремонт скасовано" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Копіювання %1% у %2% не вдалося: %3%" -# AI Translated -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Будь ласка, перевірте незбережені зміни перед оновленням конфігурації." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Пакет конфігурації: " @@ -12363,6 +12390,13 @@ msgstr "Пакет конфігурації: " msgid " updated to " msgstr " оновлено до " +msgid "Failed to download vendor profile(s): " +msgstr "" + +# AI Translated +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Будь ласка, перевірте незбережені зміни перед оновленням конфігурації." + msgid "Open G-code file:" msgstr "Відкрити файл G-коду:" @@ -14018,6 +14052,9 @@ msgstr "Вирівняний прямолінійний" msgid "Concentric" msgstr "Концентричний" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Крива Гільберта" @@ -14106,29 +14143,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Порядок заповнення верхньої поверхні" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Напрямок, у якому заповнюються верхні поверхні при використанні шаблону з центром (Концентричний, Хорди Архімеда, Спіральна октограма).\n" -"Назовні починає з центру поверхні, тож надлишок матеріалу виштовхується до краю, де він найменш помітний. Усередину починає з краю та завершується щільними кривими в центрі.\n" -"Типово використовується впорядкування за найкоротшим шляхом, яке може йти в будь-якому напрямку." # AI Translated msgid "Bottom surface fill order" msgstr "Порядок заповнення нижньої поверхні" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Напрямок, у якому заповнюються нижні поверхні при використанні шаблону з центром (Концентричний, Хорди Архімеда, Спіральна октограма).\n" -"Усередину починає кожну поверхню з ширших зовнішніх кривих, що покращує зчеплення першого шару на столах, де щільні криві в центрі можуть не прилипати. Назовні починає з центру, виштовхуючи надлишок матеріалу до краю.\n" -"Типово використовується впорядкування за найкоротшим шляхом, яке може йти в будь-якому напрямку." msgid "Internal solid infill pattern" msgstr "Шаблон внутрішнього суцільного заповнення" @@ -22296,6 +22325,33 @@ msgstr "" "Уникнення деформації\n" "Чи знаєте ви, що при друку матеріалами, схильними до деформації, такими як ABS, відповідне підвищення температури столу може зменшити ймовірність деформації?" +#~ msgid "Select the language" +#~ msgstr "Вибрати мову" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Відкрити панель швидких дій" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Напрямок, у якому заповнюються верхні поверхні при використанні шаблону з центром (Концентричний, Хорди Архімеда, Спіральна октограма).\n" +#~ "Назовні починає з центру поверхні, тож надлишок матеріалу виштовхується до краю, де він найменш помітний. Усередину починає з краю та завершується щільними кривими в центрі.\n" +#~ "Типово використовується впорядкування за найкоротшим шляхом, яке може йти в будь-якому напрямку." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Напрямок, у якому заповнюються нижні поверхні при використанні шаблону з центром (Концентричний, Хорди Архімеда, Спіральна октограма).\n" +#~ "Усередину починає кожну поверхню з ширших зовнішніх кривих, що покращує зчеплення першого шару на столах, де щільні криві в центрі можуть не прилипати. Назовні починає з центру, виштовхуючи надлишок матеріалу до краю.\n" +#~ "Типово використовується впорядкування за найкоротшим шляхом, яке може йти в будь-якому напрямку." + # AI Translated #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Нативний перегляд у Wayland потребує відеоприймача GStreamer GTK. Встановіть плагін gtksink для GStreamer, а потім перезапустіть OrcaSlicer." diff --git a/localization/i18n/vi/OrcaSlicer_vi.po b/localization/i18n/vi/OrcaSlicer_vi.po index a80f47cfc1..dedb1d33cb 100644 --- a/localization/i18n/vi/OrcaSlicer_vi.po +++ b/localization/i18n/vi/OrcaSlicer_vi.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2025-10-02 17:43+0700\n" "Last-Translator: \n" "Language-Team: hainguyen.ts13@gmail.com\n" @@ -2568,13 +2568,6 @@ msgstr "Có bản cập nhật khả dụng. Hãy mở hộp thoại gói cài msgid "%s has been removed." msgstr "%s đã bị xóa." - -msgid "Select the language" -msgstr "Chọn ngôn ngữ" - -msgid "Language" -msgstr "Ngôn ngữ" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2612,6 +2605,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "Không thể mở hộp thoại Plugin (lỗi không xác định)." +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "Terminal plugin" @@ -4834,6 +4840,12 @@ msgstr "" "Sao chép G-code tạm thời sang G-code đầu ra thất bại. Có thể thẻ SD bị khóa ghi?\n" "Thông báo lỗi: %1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "Sao chép G-code tạm thời sang G-code đầu ra thất bại. Có thể có vấn đề với thiết bị đích, vui lòng thử xuất lại hoặc dùng thiết bị khác. G-code đầu ra bị hỏng ở %1%.tmp." @@ -6871,6 +6883,9 @@ msgstr "Hiện đường viền xung quanh vật thể đã chọn trong cảnh msgid "Preferences" msgstr "Tùy chọn" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -9307,7 +9322,6 @@ msgstr "Bạn có muốn tiếp tục?" msgid "Language selection" msgstr "Chọn ngôn ngữ" - msgid "Asia-Pacific" msgstr "Châu Á-Thái Bình Dương" @@ -9423,6 +9437,9 @@ msgstr "Đường dẫn phiên bản hiện tại: " msgid "General" msgstr "Chung" +msgid "Language" +msgstr "Ngôn ngữ" + msgid "Metric" msgstr "Hệ mét" @@ -9651,6 +9668,12 @@ msgstr "Quản lý nhiều thiết bị" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Với tùy chọn này được bật, bạn có thể gửi tác vụ đến nhiều thiết bị cùng lúc và quản lý nhiều thiết bị." +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + # AI Translated msgid "Pop up to select filament grouping mode" msgstr "Hiện cửa sổ để chọn chế độ nhóm filament" @@ -10437,6 +10460,9 @@ msgstr "Sao chép tất cả các giá trị kế thừa từ preset cha vào pr msgid "Detach from parent" msgstr "Tách khỏi vật thể cha" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "Preset độc lập" @@ -12465,6 +12491,17 @@ msgstr "Hiển thị/Ẩn hộp thoại cài đặt thiết bị 3Dconnexion" msgid "Switch table page" msgstr "Chuyển trang bảng" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "Hiển thị danh sách phím tắt" @@ -12631,15 +12668,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "Chuyển đổi giữa Chuẩn bị/Xem trước" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -# AI Translated -msgid "Open actions speed dial" -msgstr "Mở vòng quay thao tác nhanh" - msgid "Plater" msgstr "Bàn in" @@ -12925,8 +12953,8 @@ msgstr "Sửa chữa đã hủy" msgid "Copying of file %1% to %2% failed: %3%" msgstr "Sao chép file %1% sang %2% thất bại: %3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "Cần kiểm tra các thay đổi chưa lưu trước khi cập nhật cấu hình." +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "Gói cấu hình: " @@ -12934,6 +12962,12 @@ msgstr "Gói cấu hình: " msgid " updated to " msgstr " đã cập nhật lên " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "Cần kiểm tra các thay đổi chưa lưu trước khi cập nhật cấu hình." + msgid "Open G-code file:" msgstr "Mở file G-code:" @@ -14585,6 +14619,9 @@ msgstr "Thẳng hàng căn chỉnh" msgid "Concentric" msgstr "Đồng tâm" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "Đường cong Hilbert" @@ -14674,29 +14711,21 @@ msgstr "" msgid "Top surface fill order" msgstr "Thứ tự lấp bề mặt trên" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Hướng lấp các bề mặt trên khi dùng mẫu dựa trên tâm (Đồng tâm, Dây cung Archimedes, Xoắn ốc bát giác).\n" -"Ra ngoài bắt đầu từ tâm bề mặt, nhờ đó vật liệu dư bị đẩy về phía mép nơi ít nhìn thấy nhất. Vào trong bắt đầu từ mép và kết thúc bằng các đường cong hẹp ở tâm.\n" -"Mặc định dùng thứ tự đường đi ngắn nhất, có thể chạy theo hướng bất kỳ." # AI Translated msgid "Bottom surface fill order" msgstr "Thứ tự lấp bề mặt dưới" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"Hướng lấp các bề mặt dưới khi dùng mẫu dựa trên tâm (Đồng tâm, Dây cung Archimedes, Xoắn ốc bát giác).\n" -"Vào trong bắt đầu mỗi bề mặt bằng các đường cong ngoài rộng hơn, giúp cải thiện độ bám lớp đầu tiên trên những bàn in mà các đường cong hẹp ở tâm có thể không dính. Ra ngoài bắt đầu từ tâm, đẩy vật liệu dư về phía mép.\n" -"Mặc định dùng thứ tự đường đi ngắn nhất, có thể chạy theo hướng bất kỳ." msgid "Internal solid infill pattern" msgstr "Mẫu infill đặc bên trong" @@ -23019,6 +23048,33 @@ msgstr "" "Tránh cong vênh\n" "Bạn có biết rằng khi in vật liệu dễ cong vênh như ABS, tăng nhiệt độ bàn nóng một cách thích hợp có thể giảm xác suất cong vênh không?" +#~ msgid "Select the language" +#~ msgstr "Chọn ngôn ngữ" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "Mở vòng quay thao tác nhanh" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Hướng lấp các bề mặt trên khi dùng mẫu dựa trên tâm (Đồng tâm, Dây cung Archimedes, Xoắn ốc bát giác).\n" +#~ "Ra ngoài bắt đầu từ tâm bề mặt, nhờ đó vật liệu dư bị đẩy về phía mép nơi ít nhìn thấy nhất. Vào trong bắt đầu từ mép và kết thúc bằng các đường cong hẹp ở tâm.\n" +#~ "Mặc định dùng thứ tự đường đi ngắn nhất, có thể chạy theo hướng bất kỳ." + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "Hướng lấp các bề mặt dưới khi dùng mẫu dựa trên tâm (Đồng tâm, Dây cung Archimedes, Xoắn ốc bát giác).\n" +#~ "Vào trong bắt đầu mỗi bề mặt bằng các đường cong ngoài rộng hơn, giúp cải thiện độ bám lớp đầu tiên trên những bàn in mà các đường cong hẹp ở tâm có thể không dính. Ra ngoài bắt đầu từ tâm, đẩy vật liệu dư về phía mép.\n" +#~ "Mặc định dùng thứ tự đường đi ngắn nhất, có thể chạy theo hướng bất kỳ." + # AI Translated #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "Xem trực tiếp trên Wayland thuần cần GStreamer GTK video sink. Vui lòng cài đặt plugin gtksink cho GStreamer, sau đó khởi động lại OrcaSlicer." diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index faa3419ae5..cfacff0458 100644 --- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po +++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2026-06-11 12:37-0300\n" "Last-Translator: Handle <mail@bysb.net>\n" "Language-Team: \n" @@ -2361,13 +2361,6 @@ msgstr "有更新可用。打开预设包对话框进行更新。" msgid "%s has been removed." msgstr "%s 已被移除。" - -msgid "Select the language" -msgstr "选择语言" - -msgid "Language" -msgstr "语言" - #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." msgstr "切换 Orca Slicer 语言到 %s 失败。" @@ -2400,6 +2393,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "无法打开插件对话框(未知错误)。" +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + msgid "Plugin Terminal" msgstr "插件终端" @@ -4437,6 +4443,12 @@ msgstr "" "将临时 G-Code 复制到输出 G-Code 失败。也许 SD 卡被写锁定了?\n" "错误消息:%1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "将临时 G-Code 复制到输出 G-Code 失败。目标设备可能有问题,请再次尝试导出或使用其他设备。损坏的输出 G-Code 在 %1%.tmp。" @@ -6337,6 +6349,9 @@ msgstr "在3D场景中显示选中对象的轮廓" msgid "Preferences" msgstr "偏好设置" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8585,7 +8600,6 @@ msgstr "是否继续?" msgid "Language selection" msgstr "语言选择" - msgid "Asia-Pacific" msgstr "亚太" @@ -8683,6 +8697,9 @@ msgstr "当前实例路径" msgid "General" msgstr "常规" +msgid "Language" +msgstr "语言" + msgid "Metric" msgstr "公制(Metric)" @@ -8887,6 +8904,12 @@ msgstr "多设备管理" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "启用此选项后,您可以同时向多个设备发送任务并管理多个设备。" +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "弹出选择耗材丝分组模式" @@ -9598,6 +9621,9 @@ msgstr "将父预设继承的所有数值复制到当前预设,并解除继承 msgid "Detach from parent" msgstr "与父级分离" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "独立预设" @@ -11453,6 +11479,17 @@ msgstr "显示/隐藏 3Dconnexion设备的设置对话框" msgid "Switch table page" msgstr "切换标签页" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "显示键盘快捷键列表" @@ -11620,15 +11657,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "准备/预览之间的切换" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -# AI Translated -msgid "Open actions speed dial" -msgstr "打开快捷操作盘" - msgid "Plater" msgstr "准备" @@ -11896,8 +11924,8 @@ msgstr "修复被取消" msgid "Copying of file %1% to %2% failed: %3%" msgstr "从%1%拷贝文件到%2%失败:%3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "需要在配置更新之前检查没有保存的参数修改。" +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "配置包:" @@ -11905,6 +11933,12 @@ msgstr "配置包:" msgid " updated to " msgstr "更新到" +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "需要在配置更新之前检查没有保存的参数修改。" + msgid "Open G-code file:" msgstr "打开G-code文件:" @@ -13431,6 +13465,9 @@ msgstr "直线排列" msgid "Concentric" msgstr "同心" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "希尔伯特曲线" @@ -13524,29 +13561,21 @@ msgstr "" msgid "Top surface fill order" msgstr "顶面填充顺序" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"使用基于中心的图案(同心、阿基米德和弦、八角螺旋)时填充顶面的方向。\n" -"向外从表面中心开始,因此多余的材料会被推向边缘等最不显眼的位置。向内从边缘开始,并以中心处的紧密曲线结束。\n" -"默认使用最短路径排序,可能沿任一方向进行。" # AI Translated msgid "Bottom surface fill order" msgstr "底面填充顺序" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"使用基于中心的图案(同心、阿基米德和弦、八角螺旋)时填充底面的方向。\n" -"向内以较宽的外侧曲线开始每个表面,这可以改善在热床上的首层附着,因为中心处的紧密曲线可能无法粘牢。向外从中心开始,将多余的材料推向边缘。\n" -"默认使用最短路径排序,可能沿任一方向进行。" msgid "Internal solid infill pattern" msgstr "内部实心填充图案" @@ -21428,6 +21457,33 @@ msgstr "" "避免翘曲\n" "您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。" +#~ msgid "Select the language" +#~ msgstr "选择语言" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "打开快捷操作盘" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "使用基于中心的图案(同心、阿基米德和弦、八角螺旋)时填充顶面的方向。\n" +#~ "向外从表面中心开始,因此多余的材料会被推向边缘等最不显眼的位置。向内从边缘开始,并以中心处的紧密曲线结束。\n" +#~ "默认使用最短路径排序,可能沿任一方向进行。" + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "使用基于中心的图案(同心、阿基米德和弦、八角螺旋)时填充底面的方向。\n" +#~ "向内以较宽的外侧曲线开始每个表面,这可以改善在热床上的首层附着,因为中心处的紧密曲线可能无法粘牢。向外从中心开始,将多余的材料推向边缘。\n" +#~ "默认使用最短路径排序,可能沿任一方向进行。" + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "原生 Wayland 实时画面需要 GStreamer GTK 视频接收器。请安装 GStreamer 的 gtksink 插件,然后重启 OrcaSlicer。" diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index 8f17cfdc5d..fc24dcfaa2 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-03 10:27+0800\n" +"POT-Creation-Date: 2026-09-11 12:33+0800\n" "PO-Revision-Date: 2025-11-28 13:48-0600\n" "Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n" "Language-Team: \n" @@ -2425,13 +2425,6 @@ msgstr "有可用的更新。請開啟預設組合對話框進行更新。" msgid "%s has been removed." msgstr "%s 已移除。" - -msgid "Select the language" -msgstr "選擇語言" - -msgid "Language" -msgstr "語言" - # AI Translated #, c-format, boost-format msgid "Switching Orca Slicer to language %s failed." @@ -2469,6 +2462,19 @@ msgstr "" msgid "Failed to open the Plugins dialog (unknown error)." msgstr "無法開啟外掛對話框(未知錯誤)。" +msgid "Plugins refreshed." +msgstr "" + +#, c-format, boost-format +msgid "Failed to refresh plugins: %s" +msgstr "" + +msgid "Select plugin package" +msgstr "" + +msgid "Plugin files (*.py;*.whl)|*.py;*.whl" +msgstr "" + # AI Translated msgid "Plugin Terminal" msgstr "外掛終端機" @@ -4550,6 +4556,12 @@ msgstr "" "錯誤訊息:%1%將臨時的 G-code 複製到輸出的 G-code 失敗 ,也許 SD 卡寫入被鎖定?\n" "錯誤訊息:%1%" +#, boost-format +msgid "" +"Copying of the temporary G-code to the output G-code failed.\n" +"Error message: %1%" +msgstr "" + #, boost-format msgid "Copying of the temporary G-code to the output G-code failed. There might be problem with target device, please try exporting again or using different device. The corrupted output G-code is at %1%.tmp." msgstr "將臨時 G-code 複製到輸出 G-code 時失敗。目標裝置可能存在問題,請嘗試再次匯出或使用不同的裝置。損壞的 G-code 已輸出為 %1%.tmp。將臨時 G-code 複製到輸出 G-code 時失敗。目標裝置可能存在問題,請嘗試再次匯出或使用不同的裝置。損壞的 G-code 已輸出為 %1%.tmp。" @@ -6467,6 +6479,9 @@ msgstr "在 3D 場景中顯示選定物件的輪廓" msgid "Preferences" msgstr "偏好設定" +msgid "Open speed dial..." +msgstr "" + # AI Translated msgctxt "Menu" msgid "Edit" @@ -8751,7 +8766,6 @@ msgstr "是否繼續?" msgid "Language selection" msgstr "語言選擇" - msgid "Asia-Pacific" msgstr "亞太" @@ -8856,6 +8870,9 @@ msgstr "目前實例路徑:" msgid "General" msgstr "一般" +msgid "Language" +msgstr "語言" + msgid "Metric" msgstr "公制" @@ -9060,6 +9077,12 @@ msgstr "多臺裝置管理" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "啟用時可以同時傳送到並管理多個機臺。" +msgid "Open the Speed Dial with the Space key" +msgstr "" + +msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "彈出視窗選擇線材分組模式" @@ -9771,6 +9794,9 @@ msgstr "將父配置繼承的所有數值複製到目前的配置,並解除繼 msgid "Detach from parent" msgstr "從父預設分離" +msgid "Save without parent" +msgstr "" + # AI Translated msgid "Unique preset" msgstr "獨立配置" @@ -11661,6 +11687,17 @@ msgstr "顯示/隱藏 3Dconnexion 裝置的設定對話框" msgid "Switch table page" msgstr "切換表單頁面" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" + +msgid "Open speed dial" +msgstr "" + +msgid "Run a Speed Dial favourite (while the Speed Dial is open)" +msgstr "" + msgid "Show keyboard shortcuts list" msgstr "顯示鍵盤快速鍵清單" @@ -11825,15 +11862,6 @@ msgstr "Tab" msgid "Switch between Prepare/Preview" msgstr "在準備/預覽模式之中切換" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -# AI Translated -msgid "Open actions speed dial" -msgstr "開啟操作快捷選單" - msgid "Plater" msgstr "準備" @@ -12100,8 +12128,8 @@ msgstr "修復被取消" msgid "Copying of file %1% to %2% failed: %3%" msgstr "從 %1% 複製檔案到 %2% 失敗:%3%" -msgid "Please check any unsaved changes before updating the configuration." -msgstr "在設定更新之前需要檢查未儲存的設定變更。" +msgid "Downloading new vendor profile(s): " +msgstr "" msgid "Configuration package: " msgstr "設定檔:" @@ -12109,6 +12137,12 @@ msgstr "設定檔:" msgid " updated to " msgstr "更新到 " +msgid "Failed to download vendor profile(s): " +msgstr "" + +msgid "Please check any unsaved changes before updating the configuration." +msgstr "在設定更新之前需要檢查未儲存的設定變更。" + msgid "Open G-code file:" msgstr "開啟 G-code 檔案:" @@ -13646,6 +13680,9 @@ msgstr "直線排列" msgid "Concentric" msgstr "同心" +msgid "Spiral Inset" +msgstr "" + msgid "Hilbert Curve" msgstr "希爾伯特曲線" @@ -13735,29 +13772,21 @@ msgstr "" msgid "Top surface fill order" msgstr "頂面填充順序" -# AI Translated msgid "" -"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which top surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"使用以中心為基礎的圖樣(同心、阿基米德弦線、八角星螺旋)時,頂面填充的方向。\n" -"「向外」從表面中心開始,因此多餘的材料會被推向最不明顯的邊緣。「向內」從邊緣開始,並以中心的緊密曲線結束。\n" -"預設使用最短路徑排序,方向可能為任一種。" # AI Translated msgid "Bottom surface fill order" msgstr "底面填充順序" -# AI Translated msgid "" -"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +"Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Spiral Inset, Archimedean Chords, Octagram Spiral).\n" "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" "Default uses shortest-path ordering, which may run in either direction." msgstr "" -"使用以中心為基礎的圖樣(同心、阿基米德弦線、八角星螺旋)時,底面填充的方向。\n" -"「向內」讓每個表面從較寬的外側曲線開始,可改善中心緊密曲線可能無法附著的列印板上的第一層附著。「向外」從中心開始,將多餘的材料推向邊緣。\n" -"預設使用最短路徑排序,方向可能為任一種。" msgid "Internal solid infill pattern" msgstr "內部實心填充圖案" @@ -21642,6 +21671,33 @@ msgstr "" "避免翹曲\n" "您知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率。" +#~ msgid "Select the language" +#~ msgstr "選擇語言" + +# AI Translated +#~ msgid "Open actions speed dial" +#~ msgstr "開啟操作快捷選單" + +# AI Translated +#~ msgid "" +#~ "Direction in which top surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Outward starts at the center of the surface, so any excess material is pushed towards the edge where it is least visible. Inward starts at the edge and ends with the tight curves at the center.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "使用以中心為基礎的圖樣(同心、阿基米德弦線、八角星螺旋)時,頂面填充的方向。\n" +#~ "「向外」從表面中心開始,因此多餘的材料會被推向最不明顯的邊緣。「向內」從邊緣開始,並以中心的緊密曲線結束。\n" +#~ "預設使用最短路徑排序,方向可能為任一種。" + +# AI Translated +#~ msgid "" +#~ "Direction in which bottom surfaces are filled when using a center-based pattern (Concentric, Archimedean Chords, Octagram Spiral).\n" +#~ "Inward starts each surface with the wider outer curves, which improves first layer adhesion on build plates where the tight curves at the center may not stick. Outward starts at the center, pushing any excess material towards the edge.\n" +#~ "Default uses shortest-path ordering, which may run in either direction." +#~ msgstr "" +#~ "使用以中心為基礎的圖樣(同心、阿基米德弦線、八角星螺旋)時,底面填充的方向。\n" +#~ "「向內」讓每個表面從較寬的外側曲線開始,可改善中心緊密曲線可能無法附著的列印板上的第一層附著。「向外」從中心開始,將多餘的材料推向邊緣。\n" +#~ "預設使用最短路徑排序,方向可能為任一種。" + #~ msgid "Native Wayland liveview requires the GStreamer GTK video sink. Please install the gtksink plugin for GStreamer, then restart OrcaSlicer." #~ msgstr "原生 Wayland 即時檢視需要 GStreamer GTK 視訊接收器。請為 GStreamer 安裝 gtksink 外掛程式,然後重新啟動 OrcaSlicer。" diff --git a/resources/web/data/text.js b/resources/web/data/text.js index 95342acdaf..1a17c5ccdb 100644 --- a/resources/web/data/text.js +++ b/resources/web/data/text.js @@ -118,6 +118,36 @@ var LangText = { orca10: "Not connected", orca11: "Connected", orca12: "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud.", + sd_search: "Search actions", + sd_clear: "Clear", + sd_search_n: "Search %s actions", + sd_showing: "Showing", + sd_of: "of", + sd_actions: "actions", + sd_recent: "recent", + sd_matches: "matches", + sd_tabs: "tabs", + sd_no_match: "No actions match", + sd_total: "Total", + sd_no_actions: "No actions yet", + sd_no_tabs_match: "No tabs match", + sd_no_tabs: "No tabs", + sd_go_to_pct: "Go to %s% of the layer range", + sd_enter_pct: "Enter a layer percentage (0-100)", + sd_go_layer_ph: "Go to layer % (0-100)", + sd_go_tab_ph: "Go to tab", + sd_favs_full: "Favourites are full", + sd_max: "max", + sd_pin_fav: "Pin to favourites (Ctrl+B)", + sd_unpin_fav: "Unpin from favourites (Ctrl+B)", + sd_remove_fav: "Remove from favourites", + sd_favourite: "Favourite", + sd_move_left: "Move left", + sd_move_right: "Move right", + sd_unpin: "Unpin", + sd_mode_advanced: "Advanced", + sd_mode_expert: "Expert", + sd_mode_develop: "Developer", }, ca_ES: { t1: "Benvingut a Orca Slicer", diff --git a/resources/web/dialog/SpeedDial/index.html b/resources/web/dialog/SpeedDial/index.html index 95a34b377a..a6f9e753a6 100644 --- a/resources/web/dialog/SpeedDial/index.html +++ b/resources/web/dialog/SpeedDial/index.html @@ -7,6 +7,7 @@ <link rel="stylesheet" href="./style.css" /> <link rel="stylesheet" type="text/css" href="../css/theme.css" /> <script type="text/javascript" src="../../include/globalapi.js"></script> + <script type="text/javascript" src="../../data/text.js"></script> <script src="../../js/fuzzy-search.js"></script> <script src="./speeddial.js"></script> </head> diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 9045262ea3..2e61165559 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -2,9 +2,9 @@ // node vm can exercise the pure helpers (searchActions / filterTabs / actionLabel / nextSel / commandList). // ---- state (populated by the C++ bridge via window.HandleStudio) ---- -var ACTIONS = []; // [{id,title,source,group,input,shortcut}], already frecency-sorted by C++ +var ACTIONS = []; // [{id,title,source,group,input,icon,mode}], already frecency-sorted by C++ var FAVS = []; // [id...] -var RECENTS = []; // [{id,title,source,group,input,shortcut}] - last-N launched +var RECENTS = []; // [{id,title,source,group,input,icon,mode}] - last-N launched var query = ""; var sel = { zone: "list", i: 0 }; // zone: 'list' | 'fav' var lastResizeHeight = 0; @@ -15,6 +15,26 @@ var matchIndex = {}; var USER_MODE = "simple"; var MODE_RANK = { simple: 0, advanced: 1, expert: 2, develop: 3 }; +// Search ranking weights: every contiguous match must outrank every fuzzy one regardless of field, +// and title must outrank group, which outranks source. +var SCORE_CONTIGUOUS = 100000; +var SCORE_TITLE = 2000; +var SCORE_GROUP = 1000; + +// Localized lookup for strings this page builds at runtime. text.js (loaded before this script) +// defines LangText; a missing entry falls back to the English literal. Extra args replace +// successive %s placeholders. +function T(key, fallback) { + var table = (typeof LangText !== "undefined" && LangText) || null; + var lang = "en"; + try { lang = localStorage.getItem(LANG_COOKIE_NAME) || "en"; } catch (e) {} + var s = table && table[lang] && table[lang][key] !== undefined ? table[lang][key] : + table && table.en && table.en[key] !== undefined ? table.en[key] : fallback; + for (var i = 2; i < arguments.length; i++) + s = s.replace("%s", arguments[i]); + return s; +} + // ---- windowed list render ---------------------------------------------------- // The command list is rendered in windows (append-on-scroll) so a huge settings pool doesn't build // the whole DOM per keystroke. Rows are exactly ROW_H tall (matches .row min-height 44px; see --row-h, @@ -36,11 +56,11 @@ var searchNeedle = ""; var phase = "commands"; var tabOptions = []; // [{id,title}] - notebook pages, fetched on entering the tab phase -// why: the fuzzy matcher (NormText/FuzzyRangesNorm/WholeWordRangesNorm) lives in shared +// why: the fuzzy matcher (NormText/FuzzyRangesNorm) lives in shared // ../../js/fuzzy-search.js, loaded before this script. Search is always case-insensitive. // element handles, assigned in OnInit (kept null so load-time touches no DOM) -var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, countEl = null, headEl = null; +var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, countEl = null; // ---- pure helpers (no DOM; unit-tested) ------------------------------------- // Pre-normalized haystacks, cached on the action object. The fold is length-preserving (1:1 per @@ -89,14 +109,20 @@ function fieldMatchScore(norm, wwRe) { return { score: 1000 - r[0][0] * 10 - gaps * 10, ranges: r, contiguous: r.length === 1 && len === searchNeedle.length }; } -// Combine the per-field match scores into one comparable value. Ranking tiers, strongest first: +// Combine the per-field match scores into one comparable value, or null when no field matched. +// Ranking tiers, strongest first: // tier (contiguous/perfect vs fuzzy) > field (title > group > source) > start/gaps. // The additive weights keep every contiguous match above every fuzzy one regardless of field. function scoreFields(t, g, s) { - var best = -1; - if (t) best = Math.max(best, (t.contiguous ? 100000 : 0) + 2000 + t.score); - if (g) best = Math.max(best, (g.contiguous ? 100000 : 0) + 1000 + g.score); - if (s) best = Math.max(best, (s.contiguous ? 100000 : 0) + s.score); + var best = null; + function consider(m, weight) { + if (!m) return; + var v = (m.contiguous ? SCORE_CONTIGUOUS : 0) + weight + m.score; + best = best === null ? v : Math.max(best, v); + } + consider(t, SCORE_TITLE); + consider(g, SCORE_GROUP); + consider(s, 0); return best; } @@ -125,7 +151,7 @@ function searchActions(actions, query) { var g = fieldMatchScore(groupNorm(a), wwRe); var s = fieldMatchScore(sourceNorm(a), wwRe); var score = scoreFields(t, g, s); - if (score < 0) continue; + if (score === null) continue; // Ranges are per-field against the ACTUAL text drawn: title for the row-name, and group (or // source when group is empty) for the eyebrow - so highlight offsets stay aligned to the label. matchIndex[a.id] = { @@ -198,7 +224,8 @@ function favIndexForDigit(d) { } function resultCountText(total, shown, query) { - return (query || "").trim() ? "Showing " + shown + " of " + total + " actions" : total + " actions"; + var n = total + " " + T("sd_actions", "actions"); + return (query || "").trim() ? T("sd_showing", "Showing") + " " + shown + " " + T("sd_of", "of") + " " + n : n; } // Display label for a notebook tab. Trim any stray whitespace; pages added with an empty title @@ -259,7 +286,7 @@ function commandList(actions, recents, query) { // visible favourites, list zone the active commands list. `actions` must be the already-resolved // list (recents for an empty query, the filtered list otherwise) - pure so runSelected() shares // one lookup and the node-vm test can call it directly. -function selectedActionId(sel, actions, favIds, query) { +function selectedActionId(sel, actions, favIds) { if (sel.zone === "fav") return favIds[sel.i]; if (!actions || !actions.length) @@ -286,9 +313,9 @@ function needsModeSwitch(item, userMode) { // Short mode tag for an action that needs a switch, or "" when it is already available. function modeBadge(item, userMode) { if (!needsModeSwitch(item, userMode)) return ""; - if (item.mode === "develop") return "Developer"; - if (item.mode === "expert") return "Expert"; - if (item.mode === "advanced") return "Advanced"; + if (item.mode === "develop") return T("sd_mode_develop", "Developer"); + if (item.mode === "expert") return T("sd_mode_expert", "Expert"); + if (item.mode === "advanced") return T("sd_mode_advanced", "Advanced"); return ""; } @@ -334,12 +361,7 @@ function stateFromPayload(payload) { actions: payload.actions || [], favourites: payload.favourites || [], recent: payload.recent || [], - userMode: payload.user_mode || "simple", - query: "", - sel: { zone: "list", i: 0 }, - lastResizeHeight: 0, - phase: "commands", - tabOptions: [] + userMode: payload.user_mode || "simple" }; } @@ -395,19 +417,19 @@ window.HandleStudio = function (payload) { FAVS = next.favourites; RECENTS = next.recent; USER_MODE = next.userMode; - query = next.query; - sel = next.sel; - lastResizeHeight = next.lastResizeHeight; - phase = next.phase; - tabOptions = next.tabOptions; + // A fresh payload re-opens the main phase; C++ never rehydrates the transient phase/query state. + phase = "commands"; + tabOptions = []; + query = ""; + sel = { zone: "list", i: 0 }; + lastResizeHeight = 0; // why: builtKey caches phase|query so renderCommandsList can skip a rebuild on arrow-nav. // It survives a re-open (which never goes through exitPhase), so without a reset the cached // empty-query key would skip the rebuild and leave stale list content. builtKey = ""; - if (headEl) headEl.hidden = false; if (qEl) { qEl.value = ""; - qEl.placeholder = "Search " + ACTIONS.length + " actions"; + qEl.placeholder = T("sd_search_n", "Search %s actions", ACTIONS.length); syncClearButton(); } render({ resize: true, resetScroll: true }); @@ -422,7 +444,7 @@ window.HandleStudio = function (payload) { var fid = payload.id; if (fid && FAVS.indexOf(fid) !== -1) FAVS.splice(FAVS.indexOf(fid), 1); render({ resize: true, keepScroll: true }); - flashHint("Favourites are full (" + (payload.limit || K_FAV_LIMIT) + " max)"); + flashHint(T("sd_favs_full", "Favourites are full") + " (" + (payload.limit || K_FAV_LIMIT) + " " + T("sd_max", "max") + ")"); } }; @@ -485,7 +507,7 @@ function pinSvg(on) { function setPinState(pin, on) { pin.classList.toggle("on", on); pin.innerHTML = pinSvg(on); - pin.title = on ? "Unpin from favourites (Ctrl+B)" : "Pin to favourites (Ctrl+B)"; + pin.title = on ? T("sd_unpin_fav", "Unpin from favourites (Ctrl+B)") : T("sd_pin_fav", "Pin to favourites (Ctrl+B)"); } // ---- render ------------------------------------------------------------------ @@ -519,15 +541,16 @@ function renderFav() { var badge = document.createElement("span"); badge.className = "fav-slot"; badge.textContent = slot; - badge.title = slot === "0" ? "Favourite 10 (Alt+0)" : "Favourite " + slot + " (Alt+" + slot + ")"; + badge.title = slot === "0" ? T("sd_favourite", "Favourite") + " 10 (Alt+0)" : + T("sd_favourite", "Favourite") + " " + slot + " (Alt+" + slot + ")"; tile.appendChild(badge); } // Direct removal: a hover-revealed ✕ in the tile's corner. click() stops propagation so it // unpins without activating the action. var unpin = document.createElement("button"); unpin.className = "fav-unpin"; - unpin.title = "Remove from favourites"; - unpin.setAttribute("aria-label", "Remove from favourites"); + unpin.title = T("sd_remove_fav", "Remove from favourites"); + unpin.setAttribute("aria-label", T("sd_remove_fav", "Remove from favourites")); unpin.innerHTML = '<svg width="9" height="9" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" aria-hidden="true"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>'; unpin.onclick = function (ev) { ev.stopPropagation(); toggleFav(id); }; tile.appendChild(unpin); @@ -567,9 +590,9 @@ function showFavMenu(x, y, id) { favMenuEl.innerHTML = ""; var favs = currentVisibleFavs(); var vi = favs.indexOf(id); - addFavMenuItem("Move left", vi > 0, function () { moveFav(id, -1); }); - addFavMenuItem("Move right", vi >= 0 && vi < favs.length - 1, function () { moveFav(id, 1); }); - addFavMenuItem("Unpin", true, function () { toggleFav(id); }); + addFavMenuItem(T("sd_move_left", "Move left"), vi > 0, function () { moveFav(id, -1); }); + addFavMenuItem(T("sd_move_right", "Move right"), vi >= 0 && vi < favs.length - 1, function () { moveFav(id, 1); }); + addFavMenuItem(T("sd_unpin", "Unpin"), true, function () { toggleFav(id); }); favMenuEl.hidden = false; favMenuEl.style.left = Math.max(0, Math.min(x, window.innerWidth - favMenuEl.offsetWidth - 4)) + "px"; favMenuEl.style.top = Math.max(0, Math.min(y, window.innerHeight - favMenuEl.offsetHeight - 4)) + "px"; @@ -598,52 +621,47 @@ function updateFavEyebrow(favs) { eyeEl.hidden = !a; } +// Row shell shared by action and tab rows: the row (selection class + aria label), the icon tile and +// the text column. Returns the pieces the caller fills in (eyebrow/name/badge/pin, handlers). +function beginRow(item, i, mono, ariaLabel) { + var row = document.createElement("div"); + row.className = "row" + (sel.zone === "list" && sel.i === i ? " sel" : ""); + row.setAttribute("aria-label", ariaLabel); + + var tile = document.createElement("div"); + tile.className = "tile"; + fillTile(tile, item, mono); + + var left = document.createElement("div"); + left.className = "row-left"; + var line = document.createElement("div"); + line.className = "row-line"; + left.appendChild(line); + row.appendChild(tile); + row.appendChild(left); + return { row: row, left: left, line: line }; +} + // A command/action row - used for search results, recents, and (because settings are actions now) // the setting options too. All rows are pinnable, so every row carries a bookmark. function renderActionRow(a, i) { var on = FAVS.indexOf(a.id) !== -1; - var row = document.createElement("div"); - row.className = "row" + (sel.zone === "list" && sel.i === i ? " sel" : ""); - row.setAttribute("aria-label", actionLabel(a, ACTIONS)); - - var tile = document.createElement("div"); - tile.className = "tile"; - fillTile(tile, a); - - var left = document.createElement("div"); - left.className = "row-left"; + var shell = beginRow(a, i, false, actionLabel(a, ACTIONS)); var mi = matchIndex[a.id]; // The eyebrow shows group when present, else source. Highlight with the ranges of whichever of the // two the eyebrow actually renders (so a "Recent Projects"/"Object" header match lights up like a // setting path does - the offsets are computed against the same string we are marking). var eyebrow = a.group || a.source; var eyebrowMatch = mi ? (mi.useEyebrowGroup ? mi.group : mi.source) : null; - var sourceEl = markedText("row-eyebrow", eyebrow, eyebrowMatch); - var line = document.createElement("div"); - line.className = "row-line"; - var name = markedText("row-name", a.title, mi ? mi.title : null); - line.appendChild(name); + shell.left.insertBefore(markedText("row-eyebrow", eyebrow, eyebrowMatch), shell.line); + shell.line.appendChild(markedText("row-name", a.title, mi ? mi.title : null)); var badge = modeBadge(a, USER_MODE); if (badge) { var tag = document.createElement("span"); tag.className = "row-mode"; tag.textContent = badge; - line.appendChild(tag); + shell.line.appendChild(tag); } - if (a.shortcut) { - var sc = document.createElement("div"); - sc.className = "row-sc"; - a.shortcut.split("+").forEach(function (k) { - var key = document.createElement("kbd"); - key.textContent = k; - sc.appendChild(key); - }); - line.appendChild(sc); - } - left.appendChild(sourceEl); - left.appendChild(line); - row.appendChild(tile); - row.appendChild(left); var pin = document.createElement("button"); pin.className = "pin"; @@ -651,11 +669,11 @@ function renderActionRow(a, i) { pin.onclick = function (ev) { ev.stopPropagation(); toggleFav(a.id); }; // why: two quick fav/unfav clicks must not dblclick-run the row pin.ondblclick = function (ev) { ev.stopPropagation(); }; - row.appendChild(pin); + shell.row.appendChild(pin); - row.onclick = function () { sel = { zone: "list", i: i }; render({ resize: true }); }; - row.ondblclick = function () { sel = { zone: "list", i: i }; activateEntry(a); }; - return row; + shell.row.onclick = function () { sel = { zone: "list", i: i }; render({ resize: true }); }; + shell.row.ondblclick = function () { sel = { zone: "list", i: i }; activateEntry(a); }; + return shell.row; } // Append rows [from, to) into listEl, always inserting before the bottom spacer so row order is preserved. @@ -731,6 +749,18 @@ function updatePins(list) { } } +// Replace the list with a single placeholder message (no matches / empty state). Shared by all phases. +function renderEmpty(text) { + listEl.innerHTML = ""; + spacerEl = null; + listEl.className = "dial-list empty"; + if (countEl) countEl.hidden = true; + var empty = document.createElement("div"); + empty.className = "dial-empty"; + empty.textContent = text; + listEl.appendChild(empty); +} + function renderCommandsList() { var list = currentList(); var total = list.length; @@ -742,14 +772,8 @@ function renderCommandsList() { matchIndex = {}; if (!total) { - listEl.innerHTML = ""; - spacerEl = null; - listEl.className = "dial-list empty"; - if (countEl) countEl.hidden = true; - var empty = document.createElement("div"); - empty.className = "dial-empty"; - empty.textContent = showList ? ("No actions match (Total: " + ACTIONS.length + ")") : "No actions yet"; - listEl.appendChild(empty); + renderEmpty(showList ? (T("sd_no_match", "No actions match") + " (" + T("sd_total", "Total") + ": " + ACTIONS.length + ")") + : T("sd_no_actions", "No actions yet")); renderEnd = 0; builtKey = buildKey() + "|0"; return; @@ -767,7 +791,7 @@ function renderCommandsList() { listEl.className = "dial-list"; if (countEl) { countEl.hidden = false; - countEl.textContent = showList ? resultCountText(ACTIONS.length, total, query) : total + " recent"; + countEl.textContent = showList ? resultCountText(ACTIONS.length, total, query) : total + " " + T("sd_recent", "recent"); } updateSelection(); updatePins(list); @@ -777,29 +801,14 @@ function renderCommandsList() { // tabTitle so pages added with an empty text (e.g. Home) still show a label. function renderTabRow(t, i) { var label = tabTitle(t); - var row = document.createElement("div"); - row.className = "row" + (sel.zone === "list" && sel.i === i ? " sel" : ""); - row.setAttribute("aria-label", label); - - var tile = document.createElement("div"); - tile.className = "tile"; - fillTile(tile, t, true); - - var left = document.createElement("div"); - left.className = "row-left"; - var line = document.createElement("div"); - line.className = "row-line"; + var shell = beginRow(t, i, true, label); var name = document.createElement("div"); name.className = "row-name"; name.textContent = label; - line.appendChild(name); - left.appendChild(line); - - row.appendChild(tile); - row.appendChild(left); - row.onclick = function () { sel = { zone: "list", i: i }; render({ resize: true }); }; - row.ondblclick = function () { sel = { zone: "list", i: i }; jumpToTab(t); }; - return row; + shell.line.appendChild(name); + shell.row.onclick = function () { sel = { zone: "list", i: i }; render({ resize: true }); }; + shell.row.ondblclick = function () { sel = { zone: "list", i: i }; jumpToTab(t); }; + return shell.row; } function renderTabList() { @@ -808,12 +817,7 @@ function renderTabList() { listEl.innerHTML = ""; if (!list.length) { - listEl.className = "dial-list empty"; - if (countEl) countEl.hidden = true; - var empty = document.createElement("div"); - empty.className = "dial-empty"; - empty.textContent = q ? "No tabs match" : "No tabs"; - listEl.appendChild(empty); + renderEmpty(q ? T("sd_no_tabs_match", "No tabs match") : T("sd_no_tabs", "No tabs")); return; } if (sel.zone === "list") @@ -821,20 +825,14 @@ function renderTabList() { listEl.className = "dial-list"; if (countEl) { countEl.hidden = false; - countEl.textContent = q ? list.length + " matches" : list.length + " tabs"; + countEl.textContent = q ? list.length + " " + T("sd_matches", "matches") : list.length + " " + T("sd_tabs", "tabs"); } list.forEach(function (t, i) { listEl.appendChild(renderTabRow(t, i)); }); } function renderPercentList() { var q = (query || "").trim(); - listEl.innerHTML = ""; - listEl.className = "dial-list empty"; - if (countEl) countEl.hidden = true; - var ph = document.createElement("div"); - ph.className = "dial-empty"; - ph.textContent = q ? ("Go to " + q + "% of the layer range") : "Enter a layer percentage (0-100)"; - listEl.appendChild(ph); + renderEmpty(q ? T("sd_go_to_pct", "Go to %s% of the layer range", q) : T("sd_enter_pct", "Enter a layer percentage (0-100)")); } function renderList() { @@ -936,7 +934,7 @@ function runSelected() { return; } var list = currentList(); - var id = selectedActionId(sel, list, currentVisibleFavs(), query); + var id = selectedActionId(sel, list, currentVisibleFavs()); if (id) activateEntry(byId(id)); } @@ -950,38 +948,43 @@ function runJumpToLayer(pct) { } function jumpToTab(t) { - SendMessage({ command: "go_to_tab", id: t.id, title: tabTitle(t) }); + var a = findActionByInput("tab"); + if (!a || !t) return; + SendMessage({ command: "run_action", id: a.id, title: a.title, param: t.id }); +} + +// Clear the shared query/cursor state when entering or leaving a phase. Callers set the +// phase-specific placeholder, then render. +function resetPhaseInput() { + query = ""; qEl.value = ""; sel = { zone: "list", i: 0 }; + syncClearButton(); } function enterPercentPhase() { - phase = "percent"; query = ""; qEl.value = ""; - sel = { zone: "list", i: 0 }; - qEl.placeholder = "Go to layer % (0-100)"; - syncClearButton(); + phase = "percent"; + resetPhaseInput(); + qEl.placeholder = T("sd_go_layer_ph", "Go to layer % (0-100)"); render({ resize: true, resetScroll: true }); qEl.focus(); } function enterTabsPhase() { - phase = "tab"; tabOptions = []; query = ""; qEl.value = ""; - sel = { zone: "list", i: 0 }; - qEl.placeholder = "Go to tab"; - syncClearButton(); + phase = "tab"; tabOptions = []; + resetPhaseInput(); + qEl.placeholder = T("sd_go_tab_ph", "Go to tab"); render({ resize: true, resetScroll: true }); qEl.focus(); SendMessage({ command: "search_tabs" }); } function exitPhase() { - phase = "commands"; tabOptions = []; query = ""; qEl.value = ""; - if (headEl) headEl.hidden = false; - sel = { zone: "list", i: 0 }; + phase = "commands"; tabOptions = []; + resetPhaseInput(); // why: builtKey caches phase|query so renderCommandsList can skip a rebuild on arrow-nav/click. // It survives a second-phase exit (which never goes through exitPhase from the commands view), // so without a reset the cached empty-query key would skip the rebuild and leave stale content. builtKey = ""; - qEl.placeholder = "Search " + ACTIONS.length + " actions"; - syncClearButton(); + qEl.placeholder = T("sd_search_n", "Search %s actions", ACTIONS.length); render({ resize: true, resetScroll: true }); qEl.focus(); } @@ -991,13 +994,20 @@ function focusInput() { setTimeout(function () { if (qEl) qEl.focus(); }, 0); } // ---- init -------------------------------------------------------------------- function OnInit() { qEl = $("q"); listEl = $("list"); favEl = $("favBar"); clearEl = $("clear"); eyeEl = $("favEyebrow"); countEl = $("count"); - headEl = document.querySelector(".dial-head"); + // text.js's TranslatePage() targets jQuery `.trans` nodes; this page has none and defines its own + // `$`, so don't call it. Runtime strings go through T() instead. + qEl.placeholder = T("sd_search", "Search actions"); + qEl.setAttribute("aria-label", T("sd_search", "Search actions")); + if (clearEl) { + clearEl.title = T("sd_clear", "Clear"); + clearEl.setAttribute("aria-label", T("sd_clear", "Clear")); + } syncClearButton(); $("clear").onclick = function () { - query = ""; qEl.value = ""; sel = { zone: "list", i: 0 }; - render({ resize: true, resetScroll: true }); qEl.focus(); - syncClearButton(); + resetPhaseInput(); + render({ resize: true, resetScroll: true }); + qEl.focus(); }; qEl.addEventListener("input", function () { query = qEl.value; sel = { zone: "list", i: 0 }; syncClearButton(); @@ -1026,7 +1036,7 @@ function OnInit() { if (phase === "commands" && (e.ctrlKey || e.metaKey) && !e.altKey && !e.shiftKey && e.key.toLowerCase() === "b") { e.preventDefault(); - var id = selectedActionId(sel, currentList(), currentVisibleFavs(), query); + var id = selectedActionId(sel, currentList(), currentVisibleFavs()); if (id) toggleFav(id); return; } diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 4fe72aba11..7f08880510 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -109,6 +109,14 @@ ctx.searchActions(orientPool, "orient"); assert.deepEqual(ctx.matchIndex.ao.title, [[5, 11]], "a whole-word match highlights the full word, not a scattered fuzzy pick"); +// A fuzzy source-only match with a very late start still counts, even though its score is negative; +// the old `score < 0` sentinel mistook it for "no field matched" and dropped the action. +const negativePool = [ + { id: "n", title: "Unrelated", source: "o" + "x".repeat(200) + "rnt", group: "", input: "" } +]; +assert.equal(ctx.searchActions(negativePool, "ornt").length, 1, + "a low-score fuzzy match is not mistaken for no match"); + // commandList (the main-phase list) delegates to the ranked search for a typed query and returns // the mixed recents (no discrimination) for an empty query. const mixed = [ @@ -122,22 +130,22 @@ assert.deepEqual(ctx.commandList(mixed, mixed.slice(0, 1), "").map(function (a) // selectedActionId: resolves the active list (recents for an empty query, filtered list otherwise). assert.equal( - ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], ""), [], ""), + ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], ""), []), null, "Enter with an empty query and no recents must not resolve to an action the list never showed" ); assert.equal( - ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], "rep"), [], "rep"), + ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], "rep"), []), "0123456789abcdef", "a typed query resolves the list selection" ); assert.equal( - ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [duplicateActions[0]], ""), [], ""), + ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [duplicateActions[0]], ""), []), "0123456789abcdef", "Enter with an empty query resolves the recent entry" ); assert.equal( - ctx.selectedActionId({ zone: "fav", i: 0 }, duplicateActions, ["fedcba9876543210"], ""), + ctx.selectedActionId({ zone: "fav", i: 0 }, duplicateActions, ["fedcba9876543210"]), "fedcba9876543210", "favourites stay runnable with an empty query - the fav bar is always visible" ); diff --git a/resources/web/js/fuzzy-search.js b/resources/web/js/fuzzy-search.js index 66b2c7b520..22fa8491f9 100644 --- a/resources/web/js/fuzzy-search.js +++ b/resources/web/js/fuzzy-search.js @@ -19,18 +19,31 @@ function Norm(ch, caseSensitive) { return caseSensitive ? folded : folded.toLowerCase(); // case-sensitivity is the only toggle } -// Pre-normalize a whole haystack with the SAME per-char fold FuzzyRanges uses, so a caller can match -// it repeatedly against one cached string. The fold is 1:1 in length, so indices stay aligned to the -// ORIGINAL text - the highlight ranges that FuzzyRangesNorm returns slice the original correctly. -// Iterate by UTF-16 code unit (not Array.from code point) to mirror FuzzyRanges' own indexing exactly. +// Pre-normalize a whole haystack with a length-preserving fold, so a caller can match it repeatedly +// against one cached string. One input UTF-16 code unit always maps to one output code unit, so +// indices stay aligned to the ORIGINAL text - the highlight ranges that FuzzyRangesNorm returns slice +// the original correctly. Iterate by UTF-16 code unit (not Array.from code point) to mirror +// FuzzyRanges' own indexing exactly. function NormText(text, caseSensitive) { const src = text || ""; let out = ""; for (let i = 0; i < src.length; i++) - out += Norm(src[i], caseSensitive); + out += NormStable(src[i], caseSensitive); return out; } +// Length-preserving variant of Norm: NFD can expand a code unit (Hangul syllables become Jamo) or +// drop it (combining diacritics), and toLowerCase can expand one too (U+0130). Any of those would +// desync highlight offsets, so fall back to the original unit whenever the fold is not 1:1. +function NormStable(ch, caseSensitive) { + const folded = FoldChar(ch); + const stable = folded.length === 1 ? folded : ch; + if (caseSensitive) + return stable; + const lower = stable.toLowerCase(); + return lower.length === 1 ? lower : stable; +} + // Match a PRE-normalized haystack against a PRE-normalized needle (both produced by NormText with the // same caseSensitive flag). Skipping the per-character fold makes repeated matching (per keystroke over a // cached pool) cheap. Returns ranges in original coordinates, or null on no match. @@ -115,18 +128,3 @@ function WholeWordRanges(text, query, caseSensitive) { ranges.push([match.index, match.index + match[0].length]); return ranges.length > 0 ? ranges : null; } - -// Same whole-word (\b-bounded) match as WholeWordRanges, but against PRE-normalized haystack/needle -// (NormText output, so offsets stay length-aligned to the original text). Returns the first match as -// [[i, i+len]] in original coordinates, or null. Non-global so the caller can reuse one compiled regex -// across many fields without re-setting lastIndex. Skipping the per-char fold keeps the Speed Dial's -// per-keystroke scan over thousands of cached settings cheap. -function WholeWordRangesNorm(haystackNorm, needleNorm) { - const t = haystackNorm || ""; - const needle = needleNorm || ""; - if (!needle) - return null; - const re = new RegExp(`\\b${EscapeRegExp(needle)}\\b`); - const match = re.exec(t); - return match ? [[match.index, match.index + match[0].length]] : null; -} diff --git a/resources/web/js/fuzzy-search.test.js b/resources/web/js/fuzzy-search.test.js index 48d2352907..92cbf1c9f8 100644 --- a/resources/web/js/fuzzy-search.test.js +++ b/resources/web/js/fuzzy-search.test.js @@ -5,7 +5,7 @@ const vm = require("vm"), assert = require("assert"), fs = require("fs"); const ctx = {}; vm.createContext(ctx); vm.runInContext(fs.readFileSync(__dirname + "/fuzzy-search.js", "utf8"), ctx); -const { FoldChar, Norm, NormText, EscapeRegExp, FuzzyRanges, WholeWordRanges, FuzzyRangesNorm, WholeWordRangesNorm } = ctx; +const { FoldChar, Norm, NormText, EscapeRegExp, FuzzyRanges, WholeWordRanges, FuzzyRangesNorm } = ctx; // FoldChar / Norm: accents fold, case only folds when case-insensitive. assert.equal(FoldChar("é"), "e"); @@ -41,8 +41,11 @@ assert.deepEqual(FuzzyRangesNorm(NormText("Auto-Orient", false), NormText("orien assert.deepEqual(FuzzyRangesNorm(NormText("AutoOriented", false), NormText("orient", false)), [[4, 10]]); assert.equal(FuzzyRangesNorm(NormText("Measure", false), NormText("xyz", false)), null); // no subsequence -// WholeWordRangesNorm: \b-bounded literal against a pre-normalized haystack, offsets in original coords. -assert.deepEqual(WholeWordRangesNorm(NormText("Auto-Orient", false), NormText("orient", false)), [[5, 11]]); -assert.equal(WholeWordRangesNorm(NormText("AutoOriented", false), NormText("orient", false)), null); // inside a word +// NormText stays 1:1 with the original even when NFD expands (Hangul syllables) or drops (combining +// diacritics, U+0130) a code unit, so highlight ranges remain aligned to the original string. +assert.equal(NormText("각x", false).length, "각x".length); +assert.equal(NormText("e\u0301x", false).length, "e\u0301x".length); +assert.equal(NormText("\u0130x", false).length, "\u0130x".length); +assert.equal(FuzzyRangesNorm(NormText("각abcdeXfgh", false), NormText("X", false))[0][0], 6); console.log("ok"); diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index d1ce814b23..a64fe9f705 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -141,9 +141,6 @@ std::unique_ptr<AppAction> make_action(const std::string& plugin_key, const std: // ---- built-in command actions (the speed dial "commands" section) ------ -constexpr const char* kCommandPrefix = "orca_command"; -constexpr const char* kOrcaSourceKey = "orca"; -constexpr const char* kOrcaSourceName = "OrcaSlicer"; constexpr const char* kSettingPrefix = "orca_setting"; constexpr const char* kPlateGotoPrefix = "orca_plate_goto"; constexpr const char* kRecentProjectPrefix = "orca_recent_project"; @@ -212,29 +209,28 @@ struct SettingAction : AppAction } }; -// A built-in command action. Thin value: identity + presentation come from the NativeCommands -// catalog, and run() routes back to it - the catalog is the single source of truth for its -// behaviour. The id is keyed by the stable catalog key (NOT the display title), so a rename or a -// UI-language switch never re-keys the action; the title is display-only. -struct CommandAction : AppAction +// Seed one action's persisted state (favourite flag + frecency counters) from an already-parsed +// stats blob and capped favourite list. Shared by the dynamic materialisers. +void seed_from(const nlohmann::json& stats, const std::vector<std::string>& favs, const std::string& id, AppAction& a) { - static std::unique_ptr<CommandAction> make(const NativeCommand& c) { return std::unique_ptr<CommandAction>(new CommandAction(c)); } - - std::string command_key; - - AppActionRunResult run(const std::string& param) const override { return NativeCommands::run(command_key, param); } - -private: - explicit CommandAction(const NativeCommand& c) - : AppAction(AppActionId{AppAction::compose_id(kCommandPrefix, c.key, kOrcaSourceKey)}, c.title, kOrcaSourceKey, kOrcaSourceName) - , command_key(c.key) - { - this->kind = AppActionKind::Command; - this->group = c.group; - this->input = c.input; - this->icon = c.icon; + a.favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); + if (auto it = stats.find(id); it != stats.end() && it->is_object()) { + a.count = it->value("count", 0); + a.last = it->value("last", 0LL); } -}; +} + +// Drop actions whose id starts with `prefix` but that were not seen in this pass (a stale materialisation). +void drop_stale(std::unordered_map<std::string, std::shared_ptr<AppAction>>& actions, const char* prefix, + const std::unordered_set<std::string>& seen) +{ + for (auto it = actions.begin(); it != actions.end();) { + if (it->first.rfind(prefix, 0) == 0 && !seen.count(it->first)) + it = actions.erase(it); + else + ++it; + } +} // A dynamic "Go to Plate N" action, one per live plate, rebuilt on every snapshot() (so a // rename/move immediately shows up). id is keyed by plate index, NOT the display title, so @@ -343,10 +339,10 @@ void ActionRegistry::init() // Built-in palette commands (Save/Load, Preferences, Mode switch, Slice/Preview, Go to layer). // Register after plugins so the plugin ids win on any (unlikely) id collision - ids are distinct - // by prefix, so this is order-independent. The catalog lives in NativeCommands - the registry - // only materialises thin CommandAction values from it. + // by prefix, so this is order-independent. The catalog (and its thin AppAction adapter) lives in + // NativeCommands; the registry only stores and dispatches the result. for (const NativeCommand& c : NativeCommands::catalog()) - upsert(CommandAction::make(c)); + upsert(NativeCommands::make_action(c)); } void ActionRegistry::refresh_source(const std::string& plugin_key, ActionChange change) @@ -429,6 +425,14 @@ void ActionRegistry::seed_state(AppAction& a) const } } +void ActionRegistry::load_persisted(nlohmann::json& stats, std::vector<std::string>& favs) const +{ + stats = read_section("stats", nlohmann::json::object()); + if (!stats.is_object()) + stats = nlohmann::json::object(); + favs = favourite_ids(); +} + // ---- read surface ----------------------------------------------------------- const AppAction* ActionRegistry::by_id(const std::string& id) const @@ -529,10 +533,9 @@ void ActionRegistry::materialize_setting_actions() // Load the persisted per-action state ONCE (not per-option) so a re-materialised setting keeps // its recency/favourite; mirroring seed_state but amortised over the whole option set. - nlohmann::json stats = read_section("stats", nlohmann::json::object()); - if (!stats.is_object()) - stats = nlohmann::json::object(); - const std::vector<std::string> favs = favourite_ids(); + nlohmann::json stats; + std::vector<std::string> favs; + load_persisted(stats, favs); std::unordered_set<std::string> seen; for (const Search::Option& opt : options) { @@ -568,11 +571,7 @@ void ActionRegistry::materialize_setting_actions() } } - action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); - if (auto it = stats.find(id); it != stats.end() && it->is_object()) { - action->count = it->value("count", 0); - action->last = it->value("last", 0LL); - } + seed_from(stats, favs, id, *action); auto const action_id = action->id(); auto const app_action = std::shared_ptr<AppAction>(std::move(action)); m_actions.insert_or_assign(action_id, app_action); @@ -580,12 +579,7 @@ void ActionRegistry::materialize_setting_actions() // Drop SettingActions whose option no longer exists in the current configs (e.g. the printer // technology / UI mode changed). Non-setting actions are untouched. - for (auto it = m_actions.begin(); it != m_actions.end();) { - if (it->first.rfind(kSettingPrefix, 0) == 0 && !seen.count(it->first)) - it = m_actions.erase(it); - else - ++it; - } + drop_stale(m_actions, kSettingPrefix, seen); } void ActionRegistry::materialize_plate_actions() @@ -597,21 +591,15 @@ void ActionRegistry::materialize_plate_actions() Plater* plater = wxTheApp ? wxGetApp().plater() : nullptr; if (!plater || plater->printer_technology() != ptFFF || plater->only_gcode_mode()) { // Drop any stale plate actions (e.g. the printer technology switched to SLA). - for (auto it = m_actions.begin(); it != m_actions.end();) { - if (it->first.rfind(kPlateGotoPrefix, 0) == 0) - it = m_actions.erase(it); - else - ++it; - } + drop_stale(m_actions, kPlateGotoPrefix, {}); return; } // Persisted per-action state, read ONCE (mirrors materialize_setting_actions) so a relisted // "Go to Plate N" keeps its recency/favourite when the plate is renamed - the id is index-keyed. - nlohmann::json stats = read_section("stats", nlohmann::json::object()); - if (!stats.is_object()) - stats = nlohmann::json::object(); - const std::vector<std::string> favs = favourite_ids(); + nlohmann::json stats; + std::vector<std::string> favs; + load_persisted(stats, favs); const std::vector<PartPlate*>& list = plater->get_partplate_list().get_plate_list(); std::unordered_set<std::string> seen; @@ -629,24 +617,15 @@ void ActionRegistry::materialize_plate_actions() if (!name.empty()) title += " (" + name + ")"; - auto action = std::make_unique<PlateAction>(int(i), title, kOrcaSourceName); - action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); - if (auto it = stats.find(id); it != stats.end() && it->is_object()) { - action->count = it->value("count", 0); - action->last = it->value("last", 0LL); - } + auto action = std::make_unique<PlateAction>(int(i), title, kOrcaSourceName); + seed_from(stats, favs, id, *action); auto const action_id = action->id(); auto const app_action = std::shared_ptr<AppAction>(std::move(action)); m_actions.insert_or_assign(action_id, app_action); } // Drop plate actions whose index no longer exists (a plate was deleted / moved to the front). - for (auto it = m_actions.begin(); it != m_actions.end();) { - if (it->first.rfind(kPlateGotoPrefix, 0) == 0 && !seen.count(it->first)) - it = m_actions.erase(it); - else - ++it; - } + drop_stale(m_actions, kPlateGotoPrefix, seen); } void ActionRegistry::materialize_recent_project_actions() @@ -655,10 +634,9 @@ void ActionRegistry::materialize_recent_project_actions() // Persisted per-action state, read ONCE (mirrors materialize_plate_actions) so a relisted recent // project keeps its recency/favourite when the recents list reorders - the id is path-keyed. - nlohmann::json stats = read_section("stats", nlohmann::json::object()); - if (!stats.is_object()) - stats = nlohmann::json::object(); - const std::vector<std::string> favs = favourite_ids(); + nlohmann::json stats; + std::vector<std::string> favs; + load_persisted(stats, favs); // app_config stores recents oldest-first; the palette shows newest-first. std::vector<std::string> recents = wxGetApp().app_config->get_recent_projects(); @@ -680,24 +658,15 @@ void ActionRegistry::materialize_recent_project_actions() if (title.empty()) title = path; - auto action = std::make_unique<RecentProjectAction>(path, std::move(title), path); - action->favourite = std::find(favs.begin(), favs.end(), id) != favs.end(); - if (auto it = stats.find(id); it != stats.end() && it->is_object()) { - action->count = it->value("count", 0); - action->last = it->value("last", 0LL); - } + auto action = std::make_unique<RecentProjectAction>(path, std::move(title), path); + seed_from(stats, favs, id, *action); auto const action_id = action->id(); auto const app_action = std::shared_ptr<AppAction>(std::move(action)); m_actions.insert_or_assign(action_id, app_action); } // Drop recent-project actions whose file no longer exists / was removed from the recents list. - for (auto it = m_actions.begin(); it != m_actions.end();) { - if (it->first.rfind(kRecentProjectPrefix, 0) == 0 && !seen.count(it->first)) - it = m_actions.erase(it); - else - ++it; - } + drop_stale(m_actions, kRecentProjectPrefix, seen); } bool ActionRegistry::should_ask(const std::string& id) const @@ -753,7 +722,6 @@ nlohmann::json ActionRegistry::snapshot() {"group", a->group}, {"input", a->input}, {"icon", a->icon}, - {"shortcut", ""}, {"mode", mode_key(a->required_mode)}}); }; @@ -816,7 +784,7 @@ nlohmann::json ActionRegistry::tab_options() const if (id.empty()) continue; out.push_back({{"id", id.ToStdString()}, - {"title", notebook->GetPageText(i).ToStdString()}, + {"title", notebook->GetPageLabel(i).ToStdString()}, {"icon", notebook->GetPageIcon(i)}}); } return out; diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index cc73d3ad5c..3c71317eed 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -114,6 +114,12 @@ private: std::string m_source_name; // display name of the action's source }; +// Stable identity/display name of the built-in ("OrcaSlicer") action source. Shared by the native +// command catalog and the dynamically materialised setting/plate/recent actions so every built-in +// action re-keys together. +inline constexpr const char* kOrcaSourceKey = "orca"; +inline constexpr const char* kOrcaSourceName = "OrcaSlicer"; + // True when a setting at `setting_mode` cannot be edited in `current_mode` and the UI must switch // first. Developer settings are handled as a separate prompt by the Speed Dial. inline bool requires_mode_switch(ConfigOptionMode setting_mode, ConfigOptionMode current_mode) @@ -128,15 +134,17 @@ std::vector<std::string> cap_favourites(const std::vector<std::string>& ids, siz // Self-contained sink and single owner of runnable actions for the app session. // // Workflow: -// 1. init() (once, UI thread) subscribes to the plugin loader and enumerates the -// current script capabilities into actions. +// 1. init() (once, UI thread) subscribes to the plugin loader and enumerates the current script +// capabilities into actions, then materialises the static built-ins from the NativeCommands catalog. // 2. Loader load/unload callbacks route through refresh_source()/refresh_capability(), // which upsert()/remove() actions. The registry keeps the only action list and // restores persisted user state as actions arrive. -// 3. Consumers use by_id(), snapshot(), and run() without knowing the source. +// 3. Dynamic built-in families (settings, plates, recent projects) are re-materialised at the top of +// snapshot(), because their membership follows live state (the current configs, plate list, recents). +// 4. Consumers use by_id(), snapshot(), and run() without knowing the source. // -// note: there is exactly one source (script plugins), so it lives inline here rather -// than behind a polymorphic source interface. +// note: the static catalog lives in NativeCommands; the registry owns the pool, persistence and +// dispatch, and materialises the dynamic families inline rather than behind a source interface. class ActionRegistry { public: @@ -180,16 +188,20 @@ public: nlohmann::json snapshot(); // "Go to tab..." Speed Dial helper: enumerate the MainFrame notebook's current pages - // as [{id,title},...]. Live by construction - built-in tabs (Home/Prepare/Preview/Device/ - // Project/Calibration) and plugin tabs (plugin.<key>.<name>) are all Notebook pages, so a - // page appears/disappears with the notebook. Plugin tabs hidden in the overflow menu (many - // plugins) aren't separate pages and are not listed. Call on the UI thread; null-safe. + // as [{id,title,icon},...], using the page's real label (not the compact-blanked button text). + // Live by construction - built-in tabs (Home/Prepare/Preview/Device/Project/Calibration) and + // plugin tabs (plugin.<key>.<name>) are all Notebook pages, so a page appears/disappears with + // the notebook. Plugin tabs hidden in the overflow menu (many plugins) aren't separate pages and + // are not listed. Call on the UI thread; null-safe. nlohmann::json tab_options() const; private: void seed_state(AppAction& a) const; // favourite/stats from config AppAction* find(const std::string& id); + // Read the persisted stats blob + capped favourite list once for a materialisation pass. + void load_persisted(nlohmann::json& stats, std::vector<std::string>& favs) const; + // (Re)materialise the current visible config settings as SettingActions from the live // searcher (respecting printer-tech + user-mode + visibility filtering), removing stale ones. // Called at the top of snapshot() so the palette always reflects the current configs. diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 4cd014952a..f9fbb463a6 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -2616,6 +2616,10 @@ void GUI_App::init_app_config() } #endif // _WIN32 } + // Speed Dial opens on a bare Space from any page by default. Seed the flag so Preferences and the + // MainFrame shortcut read the same value; an existing config (true or false) is left untouched. + if (app_config->get("enable_speed_dial").empty()) + app_config->set_bool("enable_speed_dial", true); set_logging_level(Slic3r::level_string_to_boost(app_config->get("log_severity_level"))); } @@ -8163,6 +8167,22 @@ void GUI_App::save_mode(const /*ConfigOptionMode*/int mode) update_mode(); } +void GUI_App::set_mode(ConfigOptionMode mode) +{ + const bool was_developer = app_config->get_bool("developer_mode"); + if (was_developer) + app_config->set_bool("developer_mode", false); + save_mode(mode); + if (was_developer) + app_config->save(); +} + +void GUI_App::enable_developer_mode() +{ + app_config->set_bool("developer_mode", true); + update_mode(); +} + // Update view mode according to selected menu void GUI_App::update_mode() { @@ -8316,17 +8336,32 @@ void GUI_App::refresh_plugins() // The metadata refresh blocks on disc discovery and a cloud round-trip, so run it on a worker // and report completion through the notification manager -- the speed dial needs no dialog. std::thread([]() { - refresh_plugin_metadata_blocking(/*fetch_cloud=*/true); - wxTheApp->CallAfter([]() { + wxString error; + try { + refresh_plugin_metadata_blocking(/*fetch_cloud=*/true); + } catch (const std::exception& ex) { + error = from_u8(ex.what()); + } catch (...) { + error = "Unknown error"; // plain literal: wx translation isn't safe off the UI thread + } + if (!wxTheApp) + return; + wxTheApp->CallAfter([error]() { if (wxGetApp().is_closing()) return; Plater* plater = wxGetApp().plater(); if (plater == nullptr) return; - plater->get_notification_manager()->push_notification( - NotificationType::CustomNotification, - NotificationManager::NotificationLevel::RegularNotificationLevel, - into_u8(_L("Plugins refreshed."))); + if (error.IsEmpty()) + plater->get_notification_manager()->push_notification( + NotificationType::CustomNotification, + NotificationManager::NotificationLevel::RegularNotificationLevel, + into_u8(_L("Plugins refreshed."))); + else + plater->get_notification_manager()->push_notification( + NotificationType::CustomNotification, + NotificationManager::NotificationLevel::ErrorNotificationLevel, + into_u8(wxString::Format(_L("Failed to refresh plugins: %s"), error))); }); }).detach(); } diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 5e8dbad245..d0c38b04dc 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -593,6 +593,11 @@ public: std::string get_saved_mode_str(); std::string get_mode_str(); void save_mode(const /*ConfigOptionMode*/int mode) ; + // Switch to `mode` from the Speed Dial: a developer-mode override hides the saved mode + // (get_mode returns comDevelop), so clear it first and persist the choice. + void set_mode(ConfigOptionMode mode); + // Turn the developer-mode override on and refresh the UI (used before jumping to a Developer setting). + void enable_developer_mode(); void update_mode(); void update_internal_development(); void show_ip_address_enter_dialog(wxString title = wxEmptyString); diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index aa9472c15c..be1f53ef97 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -199,8 +199,8 @@ void KBShortcutsDialog::fill_shortcuts() // Switch table page { ctrl + L("Tab"), L("Switch table page")}, // Open speed dial - { "Space", L("Open speed dial") }, - { alt + "1..9,0", L("Run a Speed Dial favourite") }, + { L_CONTEXT("Space", "Keyboard Shortcut"), L("Open speed dial") }, + { alt + "1..9,0", L("Run a Speed Dial favourite (while the Speed Dial is open)") }, //DEL #ifdef __APPLE__ {"fn+⌫", L("Delete Selected")}, diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 8ee09b4136..4681a67c29 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -45,6 +45,7 @@ #include "Preferences.hpp" #include "Widgets/Button.hpp" #include "Widgets/ProgressDialog.hpp" +#include "Widgets/StaticBox.hpp" #include "BindDialog.hpp" #include "../Utils/MacDarkMode.hpp" #include "../Utils/NetworkAgentFactory.hpp" @@ -109,17 +110,21 @@ namespace { // Space opens the speed dial, but it is the activation key for buttons, checkboxes and other // controls. CHAR_HOOK runs before the focused child, so only take Space when the focused window has -// no keyboard-activation meaning of its own. Canvases (GLCanvas3D) and panels are not wxControls and -// fall through to "open"; Notebook and wxWebView are wxControls that don't use Space, so allow them. +// no keyboard-activation meaning of its own. Canvases (GLCanvas3D) and panels are not controls and +// fall through to "open"; the Notebook itself does too, so Space still opens the dial on any page. bool focus_keeps_space(wxWindow* focus) { if (!focus) return false; if (dynamic_cast<wxTextEntryBase*>(focus)) return true; // typing a space into a text field + if (dynamic_cast<wxWebView*>(focus)) + return true; // web content scrolls and hosts its own text fields if (dynamic_cast<::Button*>(focus)) return true; // custom button: Space clicks it (it is a wxWindow, not a wxControl) - if (dynamic_cast<wxControl*>(focus) && !dynamic_cast<Notebook*>(focus) && !dynamic_cast<wxWebView*>(focus)) + if (dynamic_cast<StaticBox*>(focus)) + return true; // custom composites (ComboBox, SpinInput, ...) activate with Space and are wxWindow + if (dynamic_cast<wxControl*>(focus) && !dynamic_cast<Notebook*>(focus)) return true; // stock button/checkbox/choice/list/etc. keep Space return false; } @@ -724,8 +729,10 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ // Orca: open the speed dial from any page with a bare Space. Only when no modifier is held (so // editing shortcuts like Ctrl+Shift+Space in the canvas still reach it) and the focused window // doesn't use Space to activate itself (buttons, checkboxes, list/choice controls, text fields), - // so a bare Space there still clicks/toggles instead of being hijacked. - if (!evt.CmdDown() && !evt.ShiftDown() && !evt.AltDown() && evt.GetKeyCode() == WXK_SPACE) { + // so a bare Space there still clicks/toggles instead of being hijacked. Gated by a preference + // (default on) so users can hand Space back to the focused control entirely. + if (wxGetApp().app_config->get_bool("enable_speed_dial") && !evt.CmdDown() && !evt.ShiftDown() && + !evt.AltDown() && evt.GetKeyCode() == WXK_SPACE) { if (focus_keeps_space(wxWindow::FindFocus())) { evt.Skip(); // let the focused control keep Space return; @@ -4325,7 +4332,7 @@ void MainFrame::technology_changed() // update menu titles PrinterTechnology pt = plater()->printer_technology(); if (int id = m_menubar->FindMenu(pt == ptFFF ? _omitL("Material Settings") : _L("Filament settings")); id != wxNOT_FOUND) - m_menubar->SetMenuLabel(id, pt == ptFFF ? _omitL("Material Settings") : _L("Filament settings")); + m_menubar->SetMenuLabel(id, pt == ptSLA ? _omitL("Material Settings") : _L("Filament settings")); } // Opens the calibration wizard for `calib_kind`. Single source of truth for the wizard lifecycle: diff --git a/src/slic3r/GUI/NativeCommands.cpp b/src/slic3r/GUI/NativeCommands.cpp index 3886f8eb11..b1f517e12e 100644 --- a/src/slic3r/GUI/NativeCommands.cpp +++ b/src/slic3r/GUI/NativeCommands.cpp @@ -25,7 +25,7 @@ #include <cmath> #include <cstdlib> #include <exception> -#include <map> +#include <memory> #include <string> #include <tuple> #include <utility> @@ -120,120 +120,43 @@ AppActionRunResult calib_command(CalibKind kind) return {AppActionRunResult::Level::Success}; } -// Palette-only: developer mode overrides the saved mode (get_mode returns comDevelop), so choosing -// Simple/Advanced/Expert must clear it first. Mirrors Preferences: persist the flag, then update. -void select_mode(ConfigOptionMode mode) -{ - GUI_App& app = wxGetApp(); - const bool was_developer = app.app_config->get_bool("developer_mode"); - if (was_developer) - app.app_config->set_bool("developer_mode", false); - app.save_mode(mode); - if (was_developer) - app.app_config->save(); -} +constexpr const char* kCommandPrefix = "orca_command"; -// Tile pictogram per command: the SVG base name of the icon the matching GUI control already uses -// (menu/toolbar/sidebar). Absent key => blank tile. Keeping this as one table makes the curation -// reviewable and lets a test check every value resolves to a real file. -const std::map<std::string, std::string>& command_icons() +// Thin AppAction wrapper for one catalog entry: identity and presentation come from the catalog, +// run() routes back to it. The id is keyed by the stable catalog key (not the display title), so a +// rename or a UI-language switch never re-keys the action. +struct CommandAction : AppAction { - static const std::map<std::string, std::string> icons = { - // Slice & Export - {"slice_and_preview", "media_play"}, - {"export_gcode", "menu_export_gcode"}, - {"export_stl", "menu_export_stl"}, - {"export_stl_multi", "menu_export_stl"}, - {"export_sliced_file", "menu_export_sliced_file"}, - {"export_all_sliced_file", "menu_export_sliced_file"}, - {"export_toolpaths_obj", "menu_export_toolpaths"}, - {"export_config", "menu_export_config"}, - {"export_3mf", "menu_save"}, - {"export_drc_single", "menu_export_stl"}, - {"export_drc_multi", "menu_export_stl"}, - // Commands - {"load_project", "menu_open"}, - {"save_project", "menu_save"}, - {"save_project_as", "menu_save"}, - {"open_preferences", "cog"}, - {"go_to_layer", "height_range_layer"}, - // Mode: the sidebar mode toggle's own icon (ParamsPanel). - {"mode_simple", "advanced"}, - {"mode_advanced", "advanced"}, - {"mode_expert", "advanced"}, - {"toggle_developer_mode", "advanced"}, - // Calibration - {"calib_temperature", "calib_sf"}, - {"calib_max_volumetric", "calib_sf"}, - {"calib_pressure_advance", "calib_sf"}, - {"calib_flow_ratio", "calib_sf"}, - {"calib_retraction", "calib_sf"}, - {"calib_cornering", "calib_sf"}, - {"calib_input_shaping_freq", "calib_sf"}, - {"calib_input_shaping_damp", "calib_sf"}, - {"calib_vfa", "calib_sf"}, - // View - {"reset_window_layout", "toolbar_reset"}, - // Object - {"obj_delete", "menu_delete"}, - {"obj_delete_all", "menu_remove"}, - {"obj_mirror_x", "menu_mirror_x"}, - {"obj_mirror_y", "menu_mirror_y"}, - {"obj_mirror_z", "menu_mirror_z"}, - {"obj_split_objects", "menu_split_objects"}, - {"obj_split_parts", "menu_split_parts"}, - {"obj_drop", "toolbar_flatten"}, - {"obj_instances_up", "instance_add"}, - {"obj_instances_down", "instance_remove"}, - {"obj_arrange", "toolbar_arrange"}, - {"obj_orient", "toolbar_orient"}, - // Add Primitive - {"add_primitive_cube", "menu_obj_cube"}, - {"add_primitive_cylinder", "menu_obj_cylinder"}, - {"add_primitive_sphere", "menu_obj_sphere"}, - {"add_primitive_cone", "menu_obj_cone"}, - {"add_primitive_disc", "menu_obj_disc"}, - {"add_primitive_torus", "menu_obj_torus"}, - {"add_primitive_text", "menu_obj_text"}, - {"add_primitive_svg", "menu_obj_svg"}, - // Plate - {"plate_add", "toolbar_add_plate"}, - {"plate_duplicate", "menu_copy"}, - {"plate_delete", "menu_delete"}, - {"plate_rename", "plate_name_edit"}, - {"plate_toggle_lock", "lock_normal"}, - {"plate_goto", "go_next_plate"}, - // Printer / Presets - {"sync_ams", "ams_fila_sync"}, - {"sync_presets", "printer_sync_ok"}, - {"preset_bundle", "menu_edit_preset"}, - // Import - {"import_file", "menu_import"}, - {"import_zip_archive", "menu_import"}, - {"import_configs", "menu_import"}, - // Help - {"help_open_config_folder", "folder-closed"}, - {"help_tip_of_the_day", "info"}, - {"help_check_updates", "ams_refresh_normal"}, - {"help_about", "OrcaSlicer_about"}, - {"open_wiki", "link_wiki_img"}, - }; - return icons; -} + std::string command_key; + + AppActionRunResult run(const std::string& param) const override { return NativeCommands::run(command_key, param); } + + explicit CommandAction(const NativeCommand& c) + : AppAction(AppActionId{AppAction::compose_id(kCommandPrefix, c.key, kOrcaSourceKey)}, c.title, kOrcaSourceKey, kOrcaSourceName) + , command_key(c.key) + { + this->kind = AppActionKind::Command; + this->group = c.group; + this->input = c.input; + this->icon = c.icon; + } +}; std::vector<NativeCommand> build_command_catalog() { std::vector<NativeCommand> out; auto add = [&](std::string key, std::string title, std::string group, std::function<AppActionRunResult(const std::string&)> runner, - std::string input = {}) { - std::string icon; - if (auto it = command_icons().find(key); it != command_icons().end()) - icon = it->second; + std::string input = {}, std::string icon = {}) { out.push_back({std::move(key), std::move(title), std::move(group), std::move(input), std::move(icon), std::move(runner)}); }; + // Presentation-first overload: keeps the tile icon next to the title/group it belongs to. + auto add_with_icon = [&](std::string key, std::string title, std::string group, std::string icon, + std::function<AppActionRunResult(const std::string&)> runner, std::string input = {}) { + add(std::move(key), std::move(title), std::move(group), std::move(runner), std::move(input), std::move(icon)); + }; // ---- Slice & Export ---- - add("slice_and_preview", _u8L("Slice and Preview"), _u8L("Slice & Export"), [](const std::string&) { + add_with_icon("slice_and_preview", _u8L("Slice and Preview"), _u8L("Slice & Export"), "media_play", [](const std::string&) { Plater* plater = wxGetApp().plater(); if (plater) { plater->reslice(); @@ -244,8 +167,8 @@ std::vector<NativeCommand> build_command_catalog() return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add( - "go_to_layer", _u8L("Go to layer (percent)"), _u8L("Commands"), + add_with_icon( + "go_to_layer", _u8L("Go to layer (percent)"), _u8L("Commands"), "height_range_layer", [](const std::string& param) { Plater* plater = wxGetApp().plater(); if (plater) { @@ -258,47 +181,52 @@ std::vector<NativeCommand> build_command_catalog() }, "percent"); - // "go_to_tab" is two-phase: the palette collects the tab after activating it, so dispatch here - // is a no-op (the jump goes through the go_to_tab web command). + // "go_to_tab" is two-phase: the palette collects the tab after activating it, then hands the tab + // id back as `param` (same contract as go_to_layer's percent). add( "go_to_tab", _u8L("Go to tab..."), _u8L("Commands"), - [](const std::string&) { return AppActionRunResult{AppActionRunResult::Level::Success}; }, "tab"); + [](const std::string& param) { + if (MainFrame* mf = wxGetApp().mainframe; mf && !param.empty()) + mf->select_tab(from_u8(param)); + return AppActionRunResult{AppActionRunResult::Level::Success}; + }, + "tab"); - add("load_project", _u8L("Load Project"), _u8L("Commands"), [](const std::string&) { + add_with_icon("load_project", _u8L("Load Project"), _u8L("Commands"), "menu_open", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->load_project(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("save_project", _u8L("Save Project"), _u8L("Commands"), [](const std::string&) { + add_with_icon("save_project", _u8L("Save Project"), _u8L("Commands"), "menu_save", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->save_project(false); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("save_project_as", _u8L("Save Project As"), _u8L("Commands"), [](const std::string&) { + add_with_icon("save_project_as", _u8L("Save Project As"), _u8L("Commands"), "menu_save", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->save_project(true); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("open_preferences", _u8L("Preferences"), _u8L("Commands"), [](const std::string&) { + add_with_icon("open_preferences", _u8L("Preferences"), _u8L("Commands"), "cog", [](const std::string&) { wxGetApp().open_preferences(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); // ---- Mode ---- - add("mode_simple", _u8L("Mode: Simple"), _u8L("Mode"), [](const std::string&) { - select_mode(comSimple); + add_with_icon("mode_simple", _u8L("Mode: Simple"), _u8L("Mode"), "advanced", [](const std::string&) { + wxGetApp().set_mode(comSimple); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("mode_advanced", _u8L("Mode: Advanced"), _u8L("Mode"), [](const std::string&) { - select_mode(comAdvanced); + add_with_icon("mode_advanced", _u8L("Mode: Advanced"), _u8L("Mode"), "advanced", [](const std::string&) { + wxGetApp().set_mode(comAdvanced); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("mode_expert", _u8L("Mode: Expert"), _u8L("Mode"), [](const std::string&) { - select_mode(comExpert); + add_with_icon("mode_expert", _u8L("Mode: Expert"), _u8L("Mode"), "advanced", [](const std::string&) { + wxGetApp().set_mode(comExpert); return AppActionRunResult{AppActionRunResult::Level::Success}; }); // Mirrors Preferences > Developer > Developer mode: flip the flag, persist, refresh the UI. - add("toggle_developer_mode", _u8L("Toggle Developer Mode"), _u8L("Mode"), [](const std::string&) { + add_with_icon("toggle_developer_mode", _u8L("Toggle Developer Mode"), _u8L("Mode"), "advanced", [](const std::string&) { GUI_App& app = wxGetApp(); const bool on = !app.app_config->get_bool("developer_mode"); app.app_config->set_bool("developer_mode", on); @@ -308,50 +236,50 @@ std::vector<NativeCommand> build_command_catalog() }); // ---- Export pipeline ---- - add("export_gcode", _u8L("Export G-code"), _u8L("Slice & Export"), [](const std::string&) { + add_with_icon("export_gcode", _u8L("Export G-code"), _u8L("Slice & Export"), "menu_export_gcode", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_gcode(false); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("export_stl", _u8L("Export STL"), _u8L("Slice & Export"), [](const std::string&) { + add_with_icon("export_stl", _u8L("Export STL"), _u8L("Slice & Export"), "menu_export_stl", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_stl(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("export_3mf", _u8L("Export 3MF"), _u8L("Slice & Export"), [](const std::string&) { + add_with_icon("export_3mf", _u8L("Export 3MF"), _u8L("Slice & Export"), "menu_save", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_core_3mf(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("export_sliced_file", _u8L("Export Sliced File"), _u8L("Slice & Export"), [](const std::string&) { + add_with_icon("export_sliced_file", _u8L("Export Sliced File"), _u8L("Slice & Export"), "menu_export_sliced_file", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_gcode_3mf(false); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"), [](const std::string&) { + add_with_icon("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"), "menu_export_sliced_file", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_gcode_3mf(true); return AppActionRunResult{AppActionRunResult::Level::Success}; }); // ---- Calibration ---- - add("calib_temperature", _u8L("Temperature Calibration"), _u8L("Calibration"), + add_with_icon("calib_temperature", _u8L("Temperature Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::Temperature); }); - add("calib_max_volumetric", _u8L("Max Volumetric Speed Calibration"), _u8L("Calibration"), + add_with_icon("calib_max_volumetric", _u8L("Max Volumetric Speed Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::MaxVolumetric); }); - add("calib_pressure_advance", _u8L("Pressure Advance Calibration"), _u8L("Calibration"), + add_with_icon("calib_pressure_advance", _u8L("Pressure Advance Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::PressureAdvance); }); - add("calib_flow_ratio", _u8L("Flow Ratio Calibration"), _u8L("Calibration"), + add_with_icon("calib_flow_ratio", _u8L("Flow Ratio Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::FlowRatio); }); - add("calib_retraction", _u8L("Retraction Calibration"), _u8L("Calibration"), + add_with_icon("calib_retraction", _u8L("Retraction Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::Retraction); }); - add("calib_cornering", _u8L("Cornering Calibration"), _u8L("Calibration"), + add_with_icon("calib_cornering", _u8L("Cornering Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::Cornering); }); - add("calib_input_shaping_freq", _u8L("Input Shaping Frequency Calibration"), _u8L("Calibration"), + add_with_icon("calib_input_shaping_freq", _u8L("Input Shaping Frequency Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::InputShapingFreq); }); - add("calib_input_shaping_damp", _u8L("Input Shaping Damping Calibration"), _u8L("Calibration"), + add_with_icon("calib_input_shaping_damp", _u8L("Input Shaping Damping Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::InputShapingDamp); }); - add("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"), [](const std::string&) { return calib_command(CalibKind::VFA); }); + add_with_icon("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::VFA); }); // ---- View ---- for (auto [key, dir, title] : @@ -386,39 +314,39 @@ std::vector<NativeCommand> build_command_catalog() plater->get_camera().select_next_type(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("reset_window_layout", _u8L("Reset Window Layout"), _u8L("View"), [](const std::string&) { + add_with_icon("reset_window_layout", _u8L("Reset Window Layout"), _u8L("View"), "toolbar_reset", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->reset_window_layout(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); // ---- Object ---- - add("obj_delete", _u8L("Delete Selected"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_delete", _u8L("Delete Selected"), _u8L("Object"), "menu_delete", [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->remove_selected(); }); }); - add("obj_delete_all", _u8L("Delete All Objects"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_delete_all", _u8L("Delete All Objects"), _u8L("Object"), "menu_remove", [](const std::string&) { return object_op( wxGetApp().plater(), [](Plater* p) { return p->can_delete_all(); }, [](Plater* p) { p->delete_all_objects_from_model(); }); }); - add("obj_mirror_x", _u8L("Mirror X"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_mirror_x", _u8L("Mirror X"), _u8L("Object"), "menu_mirror_x", [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::X); }); }); - add("obj_mirror_y", _u8L("Mirror Y"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_mirror_y", _u8L("Mirror Y"), _u8L("Object"), "menu_mirror_y", [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::Y); }); }); - add("obj_mirror_z", _u8L("Mirror Z"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_mirror_z", _u8L("Mirror Z"), _u8L("Object"), "menu_mirror_z", [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_mirror(); }, [](Plater* p) { p->mirror(Axis::Z); }); }); - add("obj_split_objects", _u8L("Split to Objects"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_split_objects", _u8L("Split to Objects"), _u8L("Object"), "menu_split_objects", [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_split_to_objects(); }, [](Plater* p) { p->split_object(true); }); }); - add("obj_split_parts", _u8L("Split to Parts"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_split_parts", _u8L("Split to Parts"), _u8L("Object"), "menu_split_parts", [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_split_to_volumes(); }, [](Plater* p) { p->split_volume(); }); }); add("obj_center", _u8L("Center Selected on Plate"), _u8L("Object"), [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->center_selection(); }); }); - add("obj_drop", _u8L("Drop to Bed"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_drop", _u8L("Drop to Bed"), _u8L("Object"), "toolbar_flatten", [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->drop_selection(); }); }); add("obj_fit_volume", _u8L("Scale to Fit Print Volume"), _u8L("Object"), [](const std::string&) { @@ -426,24 +354,24 @@ std::vector<NativeCommand> build_command_catalog() wxGetApp().plater(), [](Plater* p) { return p->can_scale_to_print_volume(); }, [](Plater* p) { p->scale_selection_to_fit_print_volume(); }); }); - add("obj_instances_up", _u8L("Increase Instances"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_instances_up", _u8L("Increase Instances"), _u8L("Object"), "instance_add", [](const std::string&) { return object_op( wxGetApp().plater(), [](Plater* p) { return p->can_increase_instances(); }, [](Plater* p) { p->increase_instances(); }); }); - add("obj_instances_down", _u8L("Decrease Instances"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_instances_down", _u8L("Decrease Instances"), _u8L("Object"), "instance_remove", [](const std::string&) { return object_op( wxGetApp().plater(), [](Plater* p) { return p->can_decrease_instances(); }, [](Plater* p) { p->decrease_instances(); }); }); - add("obj_arrange", _u8L("Auto-Arrange"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_arrange", _u8L("Auto-Arrange"), _u8L("Object"), "toolbar_arrange", [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_arrange(); }, [](Plater* p) { p->arrange(); }); }); - add("obj_orient", _u8L("Auto-Orient"), _u8L("Object"), [](const std::string&) { + add_with_icon("obj_orient", _u8L("Auto-Orient"), _u8L("Object"), "toolbar_orient", [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return p->can_arrange(); }, [](Plater* p) { p->orient(); }); }); // ---- Add Primitive ---- (the Add > Add Primitive submenu; creates a new object) - auto add_primitive = [&](std::string key, std::string title, const char* type_name) { - add(std::move(key), std::move(title), _u8L("Add Primitive"), [type_name](const std::string&) { + auto add_primitive = [&](std::string key, std::string title, std::string icon, const char* type_name) { + add_with_icon(std::move(key), std::move(title), _u8L("Add Primitive"), std::move(icon), [type_name](const std::string&) { Plater* plater = wxGetApp().plater(); if (plater) { ensure_3d_view(plater); @@ -453,13 +381,13 @@ std::vector<NativeCommand> build_command_catalog() return AppActionRunResult{AppActionRunResult::Level::Success}; }); }; - add_primitive("add_primitive_cube", _u8L("Cube"), "Cube"); - add_primitive("add_primitive_cylinder", _u8L("Cylinder"), "Cylinder"); - add_primitive("add_primitive_sphere", _u8L("Sphere"), "Sphere"); - add_primitive("add_primitive_cone", _u8L("Cone"), "Cone"); - add_primitive("add_primitive_disc", _u8L("Disc"), "Disc"); - add_primitive("add_primitive_torus", _u8L("Torus"), "Torus"); - add("add_primitive_text", _u8L("Text"), _u8L("Add Primitive"), [](const std::string&) { + add_primitive("add_primitive_cube", _u8L("Cube"), "menu_obj_cube", "Cube"); + add_primitive("add_primitive_cylinder", _u8L("Cylinder"), "menu_obj_cylinder", "Cylinder"); + add_primitive("add_primitive_sphere", _u8L("Sphere"), "menu_obj_sphere", "Sphere"); + add_primitive("add_primitive_cone", _u8L("Cone"), "menu_obj_cone", "Cone"); + add_primitive("add_primitive_disc", _u8L("Disc"), "menu_obj_disc", "Disc"); + add_primitive("add_primitive_torus", _u8L("Torus"), "menu_obj_torus", "Torus"); + add_with_icon("add_primitive_text", _u8L("Text"), _u8L("Add Primitive"), "menu_obj_text", [](const std::string&) { Plater* plater = wxGetApp().plater(); if (plater) { ensure_3d_view(plater); @@ -469,7 +397,7 @@ std::vector<NativeCommand> build_command_catalog() } return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("add_primitive_svg", _u8L("SVG"), _u8L("Add Primitive"), [](const std::string&) { + add_with_icon("add_primitive_svg", _u8L("SVG"), _u8L("Add Primitive"), "menu_obj_svg", [](const std::string&) { Plater* plater = wxGetApp().plater(); if (plater) { ensure_3d_view(plater); @@ -493,7 +421,7 @@ std::vector<NativeCommand> build_command_catalog() } // ---- Plate ---- - add("plate_add", _u8L("Add Plate"), _u8L("Plate"), [](const std::string&) { + add_with_icon("plate_add", _u8L("Add Plate"), _u8L("Plate"), "toolbar_add_plate", [](const std::string&) { Plater* plater = wxGetApp().plater(); if (!is_fff_plater(plater)) return plate_unavailable(); @@ -502,7 +430,7 @@ std::vector<NativeCommand> build_command_catalog() plater->add_plate(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("plate_duplicate", _u8L("Duplicate Plate"), _u8L("Plate"), [](const std::string&) { + add_with_icon("plate_duplicate", _u8L("Duplicate Plate"), _u8L("Plate"), "menu_copy", [](const std::string&) { Plater* plater = wxGetApp().plater(); if (!is_fff_plater(plater)) return plate_unavailable(); @@ -511,7 +439,7 @@ std::vector<NativeCommand> build_command_catalog() plater->duplicate_plate(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("plate_delete", _u8L("Delete Plate"), _u8L("Plate"), [](const std::string&) { + add_with_icon("plate_delete", _u8L("Delete Plate"), _u8L("Plate"), "menu_delete", [](const std::string&) { Plater* plater = wxGetApp().plater(); if (!is_fff_plater(plater)) return plate_unavailable(); @@ -520,7 +448,7 @@ std::vector<NativeCommand> build_command_catalog() plater->delete_plate(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("plate_rename", _u8L("Rename Plate"), _u8L("Plate"), [](const std::string&) { + add_with_icon("plate_rename", _u8L("Rename Plate"), _u8L("Plate"), "plate_name_edit", [](const std::string&) { Plater* plater = wxGetApp().plater(); if (!is_fff_plater(plater)) return plate_unavailable(); @@ -531,7 +459,7 @@ std::vector<NativeCommand> build_command_catalog() curr->set_plate_name(dlg.get_plate_name().ToUTF8().data()); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("plate_toggle_lock", _u8L("Toggle Plate Lock"), _u8L("Plate"), [](const std::string&) { + add_with_icon("plate_toggle_lock", _u8L("Toggle Plate Lock"), _u8L("Plate"), "lock_normal", [](const std::string&) { Plater* plater = wxGetApp().plater(); if (!is_fff_plater(plater)) return plate_unavailable(); @@ -541,7 +469,7 @@ std::vector<NativeCommand> build_command_catalog() plates.lock_plate(index, !plates.is_locked(index)); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("plate_goto", _u8L("Go to Plate"), _u8L("Plate"), [](const std::string& param) { + add_with_icon("plate_goto", _u8L("Go to Plate"), _u8L("Plate"), "go_next_plate", [](const std::string& param) { Plater* plater = wxGetApp().plater(); if (!is_fff_plater(plater)) return plate_unavailable(); @@ -559,7 +487,7 @@ std::vector<NativeCommand> build_command_catalog() }); // ---- Printer / device connection ---- - add("sync_ams", _u8L("Synchronize Filament List from AMS"), _u8L("Printer"), [](const std::string&) { + add_with_icon("sync_ams", _u8L("Synchronize Filament List from AMS"), _u8L("Printer"), "ams_fila_sync", [](const std::string&) { Plater* plater = wxGetApp().plater(); DeviceManager* dev = wxGetApp().getDeviceManager(); if (dev && dev->get_selected_machine() && plater) { @@ -570,11 +498,11 @@ std::vector<NativeCommand> build_command_catalog() }); // ---- Presets / cloud ---- - add("preset_bundle", _u8L("Open Preset Bundle"), _u8L("Presets"), [](const std::string&) { + add_with_icon("preset_bundle", _u8L("Open Preset Bundle"), _u8L("Presets"), "menu_edit_preset", [](const std::string&) { wxGetApp().open_presetbundledialog(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("sync_presets", _u8L("Sync Presets"), _u8L("Presets"), [](const std::string&) { + add_with_icon("sync_presets", _u8L("Sync Presets"), _u8L("Presets"), "printer_sync_ok", [](const std::string&) { if (!wxGetApp().is_user_login()) return AppActionRunResult{AppActionRunResult::Level::Info, _L("Sign in to sync presets.")}; wxGetApp().restart_sync_user_preset(); @@ -582,7 +510,7 @@ std::vector<NativeCommand> build_command_catalog() }); // ---- Import ---- - add("import_file", _u8L("Import 3MF/STL/STEP/SVG/OBJ/AMF"), _u8L("Import"), [](const std::string&) { + add_with_icon("import_file", _u8L("Import 3MF/STL/STEP/SVG/OBJ/AMF"), _u8L("Import"), "menu_import", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) { #ifdef __APPLE__ plater->add_model(); @@ -592,39 +520,39 @@ std::vector<NativeCommand> build_command_catalog() } return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("import_zip_archive", _u8L("Import ZIP Archive"), _u8L("Import"), [](const std::string&) { + add_with_icon("import_zip_archive", _u8L("Import ZIP Archive"), _u8L("Import"), "menu_import", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->import_zip_archive(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("import_configs", _u8L("Import Configs"), _u8L("Import"), [](const std::string&) { + add_with_icon("import_configs", _u8L("Import Configs"), _u8L("Import"), "menu_import", [](const std::string&) { if (MainFrame* mf = wxGetApp().mainframe) mf->load_config_file(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); // ---- Export extras ---- - add("export_stl_multi", _u8L("Export All Objects as STLs"), _u8L("Export"), [](const std::string&) { + add_with_icon("export_stl_multi", _u8L("Export All Objects as STLs"), _u8L("Export"), "menu_export_stl", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_stl(false, false, true); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("export_drc_single", _u8L("Export All Objects as DRC (one file)"), _u8L("Export"), [](const std::string&) { + add_with_icon("export_drc_single", _u8L("Export All Objects as DRC (one file)"), _u8L("Export"), "menu_export_stl", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_stl(false, false, false, FT_DRC); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("export_drc_multi", _u8L("Export All Objects as DRCs"), _u8L("Export"), [](const std::string&) { + add_with_icon("export_drc_multi", _u8L("Export All Objects as DRCs"), _u8L("Export"), "menu_export_stl", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_stl(false, false, true, FT_DRC); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("export_toolpaths_obj", _u8L("Export Toolpaths as OBJ"), _u8L("Export"), [](const std::string&) { + add_with_icon("export_toolpaths_obj", _u8L("Export Toolpaths as OBJ"), _u8L("Export"), "menu_export_toolpaths", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_toolpaths_to_obj(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("export_config", _u8L("Export Preset Bundle"), _u8L("Export"), [](const std::string&) { + add_with_icon("export_config", _u8L("Export Preset Bundle"), _u8L("Export"), "menu_export_config", [](const std::string&) { if (MainFrame* mf = wxGetApp().mainframe) mf->export_config(); return AppActionRunResult{AppActionRunResult::Level::Success}; @@ -639,7 +567,7 @@ std::vector<NativeCommand> build_command_catalog() wxGetApp().ShowUserGuide(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("help_open_config_folder", _u8L("Show Configuration Folder"), _u8L("Help"), [](const std::string&) { + add_with_icon("help_open_config_folder", _u8L("Show Configuration Folder"), _u8L("Help"), "folder-closed", [](const std::string&) { Slic3r::GUI::desktop_open_datadir_folder(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); @@ -652,7 +580,7 @@ std::vector<NativeCommand> build_command_catalog() dlg.ShowModal(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("help_tip_of_the_day", _u8L("Show Tip of the Day"), _u8L("Help"), [](const std::string&) { + add_with_icon("help_tip_of_the_day", _u8L("Show Tip of the Day"), _u8L("Help"), "info", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) { plater->get_dailytips()->open(); if (GLCanvas3D* canvas = plater->get_current_canvas3D()) @@ -660,15 +588,15 @@ std::vector<NativeCommand> build_command_catalog() } return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("help_check_updates", _u8L("Check for Updates"), _u8L("Help"), [](const std::string&) { + add_with_icon("help_check_updates", _u8L("Check for Updates"), _u8L("Help"), "ams_refresh_normal", [](const std::string&) { wxGetApp().check_new_version_sf(true, 1); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("help_about", _u8L("About OrcaSlicer"), _u8L("Help"), [](const std::string&) { + add_with_icon("help_about", _u8L("About OrcaSlicer"), _u8L("Help"), "OrcaSlicer_about", [](const std::string&) { Slic3r::GUI::about(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add("open_wiki", _u8L("Open Wiki"), _u8L("Help"), [](const std::string&) { + add_with_icon("open_wiki", _u8L("Open Wiki"), _u8L("Help"), "link_wiki_img", [](const std::string&) { wxLaunchDefaultBrowser("https://www.orcaslicer.com/wiki/", wxBROWSER_NEW_WINDOW); return AppActionRunResult{AppActionRunResult::Level::Success}; }); @@ -706,6 +634,11 @@ const std::vector<NativeCommand>& NativeCommands::catalog() return commands; } +std::unique_ptr<AppAction> NativeCommands::make_action(const NativeCommand& command) +{ + return std::make_unique<CommandAction>(command); +} + AppActionRunResult NativeCommands::run(const std::string& key, const std::string& param) { GUI_App& app = wxGetApp(); diff --git a/src/slic3r/GUI/NativeCommands.hpp b/src/slic3r/GUI/NativeCommands.hpp index 52143ed506..32ae6ea898 100644 --- a/src/slic3r/GUI/NativeCommands.hpp +++ b/src/slic3r/GUI/NativeCommands.hpp @@ -1,17 +1,18 @@ #pragma once #include <functional> +#include <memory> #include <string> #include <vector> -#include "ActionRegistry.hpp" // for AppActionRunResult +#include "ActionRegistry.hpp" // for AppAction / AppActionRunResult namespace Slic3r { namespace GUI { -// A built-in speed-dial command: identity + how to run it. The registry keeps commands as thin -// values (CommandAction) and routes run() here, so this catalog is the single source of truth for -// the behaviour (runner => an owner method), the presentation (title/group/input), and the tile -// pictogram (icon = an SVG base name under resources/images, "" for no icon). +// A built-in speed-dial command: identity + how to run it. make_action() wraps a value as a thin +// AppAction for the registry, so this catalog is the single source of truth for the behaviour +// (runner => an owner method), the presentation (title/group/input), and the tile pictogram +// (icon = an SVG base name under resources/images, "" for no icon). struct NativeCommand { std::string key; @@ -28,6 +29,11 @@ const std::vector<NativeCommand>& catalog(); // Dispatches `key` to its runner (unknown keys return a quiet Info). UI thread only. AppActionRunResult run(const std::string& key, const std::string& param = {}); + +// Materialises one catalog entry as a runnable AppAction. Keeps the catalog's identity, +// presentation and behaviour as the single source of truth; ActionRegistry only stores and +// dispatches the result. UI thread only. +std::unique_ptr<AppAction> make_action(const NativeCommand& command); } // namespace NativeCommands }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Notebook.cpp b/src/slic3r/GUI/Notebook.cpp index a9eaffbc8d..7b69effacc 100644 --- a/src/slic3r/GUI/Notebook.cpp +++ b/src/slic3r/GUI/Notebook.cpp @@ -267,6 +267,12 @@ wxString ButtonsListCtrl::GetPageText(size_t n) const return btn->GetLabel(); } +// ORCA +wxString ButtonsListCtrl::GetPageLabel(size_t n) const +{ + return n < m_pageLabels.size() ? m_pageLabels[n] : wxString(); +} + // ORCA void ButtonsListCtrl::SetOverflowButton(wxWindow* button) { diff --git a/src/slic3r/GUI/Notebook.hpp b/src/slic3r/GUI/Notebook.hpp index 6e166a337c..cc6ad91f21 100644 --- a/src/slic3r/GUI/Notebook.hpp +++ b/src/slic3r/GUI/Notebook.hpp @@ -33,8 +33,14 @@ public: void SetPageText(size_t n, const wxString& strText); void SetCompact(size_t n, bool compact); // ORCA wxString GetPageText(size_t n) const; + // ORCA: the full page label, unaffected by SetCompact() blanking the button text. + wxString GetPageLabel(size_t n) const; // Resource name the page was inserted with (empty for plugin pages, which pass a wxBitmap). - const std::string& GetPageIcon(size_t n) const { return m_pageIcons[n]; } + const std::string& GetPageIcon(size_t n) const + { + static const std::string empty; + return n < m_pageIcons.size() ? m_pageIcons[n] : empty; + } wxFlexGridSizer* GetBtnsSizer(){return m_buttons_sizer;}; // ORCA // ORCA: a companion widget shown right after the tab buttons (before any side_tools), e.g. // an overflow indicator. Pass nullptr to remove it; ownership stays with the caller. @@ -244,6 +250,13 @@ public: return GetBtnsListCtrl()->GetPageText(n); } + // ORCA: the real page label. GetPageText() returns the button label, which SetCompact() blanks. + wxString GetPageLabel(size_t n) const + { + wxCHECK_MSG(n < GetPageCount(), wxString(), wxS("Invalid page")); + return GetBtnsListCtrl()->GetPageLabel(n); + } + // Resource icon name the page was inserted with; empty for pages added with a wxBitmap. std::string GetPageIcon(size_t n) const { diff --git a/src/slic3r/GUI/PluginsDialog.cpp b/src/slic3r/GUI/PluginsDialog.cpp index 4f97a7d089..8bee3919b2 100644 --- a/src/slic3r/GUI/PluginsDialog.cpp +++ b/src/slic3r/GUI/PluginsDialog.cpp @@ -543,15 +543,16 @@ bool install_local_plugin_package(const boost::filesystem::path& package_file, w }); timer->Start(100); - bool finished = false; - wxEventLoop loop; - auto on_finish = [&finished, &loop]() { - finished = true; - if (loop.IsRunning()) - loop.Exit(); + // finished/loop live on the heap: the worker's completion callback is posted to the UI loop + // and can still fire after this stack frame is gone, so it must not reference locals. + struct WaitState + { + bool finished = false; + wxEventLoop loop; }; + auto wait = std::make_shared<WaitState>(); - std::thread([state, package_file, on_finish]() mutable { + std::thread([state, package_file, wait]() mutable { std::string error; bool ok = false; try { @@ -570,11 +571,17 @@ bool install_local_plugin_package(const boost::filesystem::path& package_file, w state->ok = ok; state->error = std::move(error); } - wxTheApp->CallAfter(on_finish); + if (!wxTheApp) + return; + wxTheApp->CallAfter([wait]() { + wait->finished = true; + if (wait->loop.IsRunning()) + wait->loop.Exit(); + }); }).detach(); - if (!finished) - loop.Run(); + if (!wait->finished) + wait->loop.Run(); timer->Stop(); delete timer; diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 7d80147efa..c5f9bf1f89 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -1723,6 +1723,11 @@ void PreferencesDialog::create_items() auto item_multi_machine = create_item_checkbox(_L("Multi device management"), _L("With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices."), "enable_multi_machine", _L("(Requires restart)")); g_sizer->Add(item_multi_machine); + auto item_speed_dial = create_item_checkbox(_L("Open the Speed Dial with the Space key"), + _L("When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."), + "enable_speed_dial"); + g_sizer->Add(item_speed_dial); + #if 0 g_sizer->Add(create_item_title(_L("Filament Grouping")), 1, wxEXPAND); //temporarily disable it diff --git a/src/slic3r/GUI/Search.cpp b/src/slic3r/GUI/Search.cpp index aece404515..21aa8b7350 100644 --- a/src/slic3r/GUI/Search.cpp +++ b/src/slic3r/GUI/Search.cpp @@ -322,7 +322,9 @@ void OptionsSearcher::init(std::vector<InputInfo> input_values) void OptionsSearcher::apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode) { - if (options.empty()) return; + // options_all_modes is a separate consumer (the Speed Dial), so "nothing initialised yet" means + // both views are empty - the mode-filtered options can be empty while the all-modes view is not. + if (options.empty() && options_all_modes.empty()) return; options.erase(std::remove_if(options.begin(), options.end(), [type](Option opt) { return opt.type == type; }), options.end()); options_all_modes.erase(std::remove_if(options_all_modes.begin(), options_all_modes.end(), [type](Option opt) { return opt.type == type; }), diff --git a/src/slic3r/GUI/Search.hpp b/src/slic3r/GUI/Search.hpp index b32f2b11ca..bf2441e15c 100644 --- a/src/slic3r/GUI/Search.hpp +++ b/src/slic3r/GUI/Search.hpp @@ -156,10 +156,6 @@ public: void dlg_sys_color_changed(); void dlg_msw_rescale(); - // The full gated option set built by init() (after visibility/mode/printer-tech filtering). - // Used by the Speed Dial to materialise config settings as first-class actions. - const std::vector<Option>& all_options() const { return options; } - // Every option across all UI modes (Developer included), regardless of the current mode. // Used by the Speed Dial so it can list settings the user would have to switch mode to edit. const std::vector<Option>& all_modes_options() const { return options_all_modes; } diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index 88913b2136..af079d48e4 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -9,8 +9,6 @@ #include "Plater.hpp" #include "Widgets/WebViewHostDialog.hpp" -#include <libslic3r/AppConfig.hpp> - #include <algorithm> #include <wx/display.h> @@ -156,15 +154,7 @@ void SpeedDialWebDialog::handle_web_command(const nlohmann::json& payload) run_action(payload.value("id", ""), payload.value("title", ""), payload.value("param", "")); else if (command == "search_tabs") search_tabs(); - else if (command == "go_to_tab") { - // "Go to tab..." second phase: the page hands back the tab id it matched. - const std::string tab_id = payload.value("id", ""); - if (!tab_id.empty()) { - Hide(); - if (wxGetApp().mainframe) - wxGetApp().mainframe->select_tab(from_u8(tab_id)); - } - } else if (command == "resize") + else if (command == "resize") resize_to_content(json_int_or(payload, "height", 0)); } @@ -218,8 +208,7 @@ void SpeedDialWebDialog::run_action(const std::string& id, const std::string& ti _L("Developer setting"), wxOK | wxCANCEL); if (dlg.ShowModal() != wxID_OK) return; - wxGetApp().app_config->set_bool("developer_mode", true); - wxGetApp().update_mode(); + wxGetApp().enable_developer_mode(); } else { RichMessageDialog dlg(wxGetApp().mainframe, wxString::Format(_L("\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?"), diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 8c5e074a2e..59a81d21fa 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -29,14 +29,14 @@ public: } // namespace -TEST_CASE("AppAction composes a stable id from prefix:title:source_key", "[speeddial][actions]") +TEST_CASE("AppAction composes a stable id from prefix:title:source_key", "[ActionSource][SpeedDial]") { CHECK(AppAction::compose_id("test", "Action title", "src-key") == "test:Action title:src-key"); // source_key (not the display name) carries identity, so it is the third field. CHECK(AppAction::compose_id("script", "Do Thing", "pack.py") == "script:Do Thing:pack.py"); } -TEST_CASE("AppAction definitions are immutable after construction", "[speeddial][actions]") +TEST_CASE("AppAction definitions are immutable after construction", "[ActionSource][SpeedDial]") { using StringAccessor = const std::string& (AppAction::*) () const; @@ -52,7 +52,7 @@ TEST_CASE("AppAction definitions are immutable after construction", "[speeddial] CHECK(action.source_name() == "Action source"); } -TEST_CASE("ActionRegistry takes exclusive ownership of published actions", "[speeddial][actions]") +TEST_CASE("ActionRegistry takes exclusive ownership of published actions", "[ActionSource][SpeedDial]") { using ExpectedUpsert = void (ActionRegistry::*)(std::unique_ptr<AppAction>); @@ -61,7 +61,7 @@ TEST_CASE("ActionRegistry takes exclusive ownership of published actions", "[spe // A dynamic "Go to Plate N" action is keyed by plate index (not the display title), so renaming // a plate never re-keys it - the same contract as a setting action. -TEST_CASE("Go-to-plate actions are keyed by index, not title", "[speeddial][actions]") +TEST_CASE("Go-to-plate actions are keyed by index, not title", "[ActionSource][SpeedDial]") { CHECK(AppAction::compose_id("orca_plate_goto", "0", "orca") == "orca_plate_goto:0:orca"); CHECK(AppAction::compose_id("orca_plate_goto", "2", "orca") == "orca_plate_goto:2:orca"); @@ -69,7 +69,7 @@ TEST_CASE("Go-to-plate actions are keyed by index, not title", "[speeddial][acti // A dynamic "Open recent project" action is keyed by file path (not the display name), so renaming // a project or reordering the recents list never re-keys it - the same contract as a setting action. -TEST_CASE("Recent-project actions are keyed by path, not title", "[speeddial][actions]") +TEST_CASE("Recent-project actions are keyed by path, not title", "[ActionSource][SpeedDial]") { CHECK(AppAction::compose_id("orca_recent_project", "/a/b/project.3mf", "orca") == "orca_recent_project:/a/b/project.3mf:orca"); @@ -79,7 +79,7 @@ TEST_CASE("Recent-project actions are keyed by path, not title", "[speeddial][ac // A built-in command is keyed by its stable catalog key (not the localized display title), so a // rename or a UI-language switch never re-keys the action and its persisted favourite/stats survive. -TEST_CASE("Command actions are keyed by catalog key, not display title", "[speeddial][actions]") +TEST_CASE("Command actions are keyed by catalog key, not display title", "[ActionSource][SpeedDial]") { CHECK(AppAction::compose_id("orca_command", "save_project", "orca") == "orca_command:save_project:orca"); // The second field is the stable key, so distinct commands never collide. @@ -87,11 +87,42 @@ TEST_CASE("Command actions are keyed by catalog key, not display title", "[speed AppAction::compose_id("orca_command", "load_project", "orca")); } +// The real catalog -> action mapping keys by the stable catalog key and copies presentation from the +// catalog, so a rename or a UI-language switch never re-keys the action. +TEST_CASE("Command action construction keys by catalog key", "[ActionSource][SpeedDial]") +{ + const std::vector<Slic3r::GUI::NativeCommand>& commands = Slic3r::GUI::NativeCommands::catalog(); + REQUIRE_FALSE(commands.empty()); + const Slic3r::GUI::NativeCommand& c = commands.front(); + + std::unique_ptr<AppAction> action = Slic3r::GUI::NativeCommands::make_action(c); + REQUIRE(action != nullptr); + CHECK(action->id() == AppAction::compose_id("orca_command", c.key, "orca")); + CHECK(action->id() != AppAction::compose_id("orca_command", c.title, "orca")); + CHECK(action->title() == c.title); + CHECK(action->group == c.group); + CHECK(action->input == c.input); + CHECK(action->icon == c.icon); +} + +// Two-phase commands declare the input the palette must collect before they can run. +TEST_CASE("Two-phase commands declare their input phase", "[ActionSource][SpeedDial]") +{ + auto input_of = [](const std::string& key) -> std::string { + for (const auto& c : Slic3r::GUI::NativeCommands::catalog()) + if (c.key == key) + return c.input; + return {}; + }; + CHECK(input_of("go_to_layer") == "percent"); + CHECK(input_of("go_to_tab") == "tab"); +} + // The quick-launch cap must stay 10 to match the numbered Alt/Option+1..9,0 keys. The web palette // mirrors it as K_FAV_LIMIT (asserted in speeddial.test.js); the C++ side pins it here. static_assert(Slic3r::GUI::ActionRegistry::kFavLimit == 10, "kFavLimit must stay 10"); -TEST_CASE("Favourite lists are capped and deduped preserving order", "[speeddial][actions]") +TEST_CASE("Favourite lists are capped and deduped preserving order", "[ActionSource][SpeedDial]") { using Slic3r::GUI::cap_favourites; @@ -101,7 +132,7 @@ TEST_CASE("Favourite lists are capped and deduped preserving order", "[speeddial CHECK(cap_favourites({"a", "b"}, 0) == std::vector<std::string>{}); } -TEST_CASE("Native command catalog has unique keys and present titles", "[speeddial][actions]") +TEST_CASE("Native command catalog has unique keys and present titles", "[ActionSource][SpeedDial]") { const std::vector<Slic3r::GUI::NativeCommand>& commands = Slic3r::GUI::NativeCommands::catalog(); CHECK_FALSE(commands.empty()); @@ -118,7 +149,7 @@ TEST_CASE("Native command catalog has unique keys and present titles", "[speeddi // Every command's tile pictogram is the SVG the matching GUI control already uses; an absent icon // means a blank tile (like the tab picker). Guard representative names and that every non-empty // value resolves to a shipped file, so a rename/typo cannot leave broken images in the palette. -TEST_CASE("Native command icons resolve to shipped SVGs", "[speeddial][actions]") +TEST_CASE("Native command icons resolve to shipped SVGs", "[ActionSource][SpeedDial]") { const std::vector<Slic3r::GUI::NativeCommand>& commands = Slic3r::GUI::NativeCommands::catalog(); auto icon_of = [&commands](const std::string& key) -> const std::string* { @@ -159,7 +190,7 @@ TEST_CASE("Native command icons resolve to shipped SVGs", "[speeddial][actions]" // The Help-menu commands, wiki/YouTube links and the developer-mode toggle are part of the palette. // Guard their presence and that they stay grouped with their peers, so a catalog edit cannot drop // or scatter them. Groups are compared to the peer's own group to stay independent of translation. -TEST_CASE("Native command catalog includes the Help and developer-mode commands", "[speeddial][actions]") +TEST_CASE("Native command catalog includes the Help and developer-mode commands", "[ActionSource][SpeedDial]") { const std::vector<Slic3r::GUI::NativeCommand>& commands = Slic3r::GUI::NativeCommands::catalog(); auto find = [&commands](const std::string& key) -> const Slic3r::GUI::NativeCommand* { @@ -187,7 +218,7 @@ TEST_CASE("Native command catalog includes the Help and developer-mode commands" // Every "Add Primitive" item and shipped handy model has a palette command, grouped as in the Add // menu. Groups are compared to a peer's own group to stay independent of translation. -TEST_CASE("Native command catalog covers the Add menus", "[speeddial][actions]") +TEST_CASE("Native command catalog covers the Add menus", "[ActionSource][SpeedDial]") { const std::vector<Slic3r::GUI::NativeCommand>& commands = Slic3r::GUI::NativeCommands::catalog(); auto group_of = [&commands](const std::string& key) -> const std::string* { @@ -221,7 +252,7 @@ TEST_CASE("Native command catalog covers the Add menus", "[speeddial][actions]") // A setting whose mode is above the user's current mode must be prompted before it can be edited. // Developer settings (comDevelop) are above every non-developer mode, so they always prompt then. -TEST_CASE("Settings above the current mode require a switch", "[speeddial][actions]") +TEST_CASE("Settings above the current mode require a switch", "[ActionSource][SpeedDial]") { using Slic3r::GUI::requires_mode_switch; using Slic3r::comAdvanced; From 81458dae8678c71d56fae8102690a8f9d3607f23 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Fri, 11 Sep 2026 14:56:59 +0800 Subject: [PATCH 17/76] Add category headers. Alphabetical sorting when no search query. Recent count adjustments --- resources/web/data/text.js | 4 +- resources/web/dialog/SpeedDial/speeddial.js | 118 ++++++++++++++++-- .../web/dialog/SpeedDial/speeddial.test.js | 81 +++++++++--- resources/web/dialog/SpeedDial/style.css | 15 +++ src/libslic3r/AppConfig.cpp | 18 +++ src/libslic3r/AppConfig.hpp | 8 ++ src/slic3r/GUI/ActionRegistry.cpp | 10 +- src/slic3r/GUI/Preferences.cpp | 10 ++ tests/libslic3r/test_appconfig.cpp | 38 ++++++ 9 files changed, 271 insertions(+), 31 deletions(-) diff --git a/resources/web/data/text.js b/resources/web/data/text.js index 1a17c5ccdb..2f6682c051 100644 --- a/resources/web/data/text.js +++ b/resources/web/data/text.js @@ -124,7 +124,9 @@ var LangText = { sd_showing: "Showing", sd_of: "of", sd_actions: "actions", - sd_recent: "recent", + sd_recent: "Recent", + sd_plugins: "Plugins", + sd_other: "Other", sd_matches: "matches", sd_tabs: "tabs", sd_no_match: "No actions match", diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 2e61165559..2045d42224 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -1,10 +1,11 @@ // Speed Dial launcher page. Static-safe module: no DOM access at load time so a -// node vm can exercise the pure helpers (searchActions / filterTabs / actionLabel / nextSel / commandList). +// node vm can exercise the pure helpers (searchActions / filterTabs / actionLabel / nextSel / +// commandList / commandSections / actionCategory / groupActions). // ---- state (populated by the C++ bridge via window.HandleStudio) ---- -var ACTIONS = []; // [{id,title,source,group,input,icon,mode}], already frecency-sorted by C++ +var ACTIONS = []; // [{id,title,source,group,kind,input,icon,mode}], already frecency-sorted by C++ var FAVS = []; // [id...] -var RECENTS = []; // [{id,title,source,group,input,icon,mode}] - last-N launched +var RECENTS = []; // [{id,title,source,group,kind,input,icon,mode}] - last-N launched var query = ""; var sel = { zone: "list", i: 0 }; // zone: 'list' | 'fav' var lastResizeHeight = 0; @@ -47,6 +48,14 @@ var renderEnd = 0; var builtKey = ""; // phase|query|listLen - when it changes, rows are rebuilt from the first window var spacerEl = null; // the trailing height spacer, always the last child of listEl +// Section headers in the empty-query list ("Recent" then one per category). sectionStarts maps a flat +// action index to the header label that sits above it. sectionTotal/Rendered count headers so the +// bottom spacer reserves the same vertical space the not-yet-rendered headers will occupy. +var SECTION_H = 30; // MUST match .dial-section height (30px) +var sectionStarts = null; +var sectionTotal = 0; +var sectionRendered = 0; + // search-cache: the normalized (folded+lowercased) needle for the current query pass. var searchNeedle = ""; @@ -274,12 +283,75 @@ function fillTile(tile, a, mono) { tile.appendChild(img); } +// Category a row is grouped under in the empty-query list. Native commands and dynamic plate/recent +// actions carry a group; settings derive their top-level preset type from the source breadcrumb +// ("Process : Quality : Layers" -> "Process"); plugins all share one header. +function actionCategory(a) { + if (!a) return T("sd_other", "Other"); + if (a.kind === "plugin") return T("sd_plugins", "Plugins"); + if (a.group) return a.group; + var src = a.source || ""; + var sep = src.indexOf(" : "); + var cat = sep === -1 ? src : src.slice(0, sep); + return cat || T("sd_other", "Other"); +} + +// Stable-bucket actions by category, then order the groups alphabetically. Within a group the incoming +// (frecency) order is kept. Pure so the node-vm test can exercise grouping. +function groupActions(list) { + var buckets = Object.create(null); + var order = []; + (list || []).forEach(function (a) { + var c = actionCategory(a); + if (!buckets[c]) { buckets[c] = []; order.push(c); } + buckets[c].push(a); + }); + order.sort(function (x, y) { + var a = x.toLowerCase(), b = y.toLowerCase(); + return a < b ? -1 : a > b ? 1 : 0; + }); + var out = []; + order.forEach(function (c) { out = out.concat(buckets[c]); }); + return out; +} + // The active list for the main phase. A typed query ranks every action (commands/plugins/settings) -// by relevance; an empty query shows the recent list (recents are a mixed bag - no discrimination). +// by relevance; an empty query shows the recents first, then the rest grouped under category headers. +// The empty-query result is cached on the action/recents array identities so scrolling doesn't regroup. +var commandListCache = null; function commandList(actions, recents, query) { + var all = actions || []; if (shouldRenderActionList(query)) - return searchActions(actions || [], query); - return (recents || []).slice(0); + return searchActions(all, query); + var rec = recents || []; + if (commandListCache && commandListCache.actions === all && commandListCache.recents === rec) + return commandListCache.list; + var recentIds = {}; + for (var i = 0; i < rec.length; i++) + recentIds[rec[i].id] = true; + var rest = all.filter(function (a) { return !recentIds[a.id]; }); + var list = rec.concat(groupActions(rest)); + commandListCache = { actions: all, recents: rec, list: list }; + return list; +} + +// Section headers for the main list: "Recent" (when recents exist) then one per category. The list is +// already grouped, so a header is emitted whenever the category changes. A typed query has no headers. +// Returns {startIndex: label}, where startIndex is the flat list index the header sits above. +function commandSections(list, recentsLen, query) { + if (shouldRenderActionList(query) || !list || !list.length) + return null; + var sections = {}; + if (recentsLen > 0) + sections[0] = T("sd_recent", "Recent"); + var prev = null; + for (var i = recentsLen; i < list.length; i++) { + var c = actionCategory(list[i]); + if (i === recentsLen || c !== prev) + sections[i] = c; + prev = c; + } + return sections; } // Resolve the selection cursor {zone,i} to the action id it points at: fav zone indexes the @@ -676,16 +748,31 @@ function renderActionRow(a, i) { return shell.row; } -// Append rows [from, to) into listEl, always inserting before the bottom spacer so row order is preserved. +// Append rows [from, to) into listEl, always inserting before the bottom spacer so row order is +// preserved. A section header is inserted just before the first row of its section. function appendActionRows(list, from, to) { var spacer = spacerEl || ensureSpacer(); for (var i = from; i < to; i++) { + if (sectionStarts && sectionStarts[i] !== undefined) { + var header = document.createElement("div"); + header.className = "dial-section"; + header.textContent = sectionStarts[i]; + listEl.insertBefore(header, spacer); + sectionRendered++; + } var row = renderActionRow(list[i], i); row.setAttribute("data-idx", i); listEl.insertBefore(row, spacer); } } +// Set the section map for the current list and reset the rendered-header counters (a fresh build). +function setSections(sections) { + sectionStarts = sections || null; + sectionTotal = sectionStarts ? Object.keys(sectionStarts).length : 0; + sectionRendered = 0; +} + // Ensure the bottom spacer exists as the last child of listEl. It is (re)created on rebuild because // listEl.innerHTML="" destroys the old node. function ensureSpacer() { @@ -697,10 +784,13 @@ function ensureSpacer() { return spacerEl; } -// Size the spacer to the un-rendered tail so the scrollbar reflects the full match count. +// Size the spacer to the un-rendered tail so the scrollbar reflects the full match count. Pending +// section headers reserve their own height too, so the last rows stay reachable. function setBottomSpacer(total) { ensureSpacer(); - spacerEl.style.height = Math.max(0, total - renderEnd) * ROW_H + "px"; + var remainingRows = Math.max(0, total - renderEnd); + var remainingHeaders = Math.max(0, sectionTotal - sectionRendered); + spacerEl.style.height = (remainingRows * ROW_H + remainingHeaders * SECTION_H) + "px"; } // Reveal rows up to `upto` (an exclusive index), appending without rebuilding the whole list. Used by @@ -720,6 +810,7 @@ function rebuildCommandsList(list) { listEl.className = "dial-list"; ensureSpacer(); renderEnd = 0; + sectionRendered = 0; appendActionRows(list, 0, Math.min(list.length, K_ROWS)); renderEnd = Math.min(list.length, K_ROWS); setBottomSpacer(list.length); @@ -754,6 +845,7 @@ function renderEmpty(text) { listEl.innerHTML = ""; spacerEl = null; listEl.className = "dial-list empty"; + setSections(null); if (countEl) countEl.hidden = true; var empty = document.createElement("div"); empty.className = "dial-empty"; @@ -782,6 +874,8 @@ function renderCommandsList() { var key = buildKey() + "|" + total; if (key !== builtKey) { builtKey = key; + // Headers split the empty-query list into recents + category groups; typed queries have none. + setSections(showList ? null : commandSections(list, (RECENTS || []).length, query)); rebuildCommandsList(list); } else if (sel.i >= renderEnd) { // Arrow-nav walked past the rendered window - reveal enough to keep the selection visible. @@ -789,9 +883,11 @@ function renderCommandsList() { } listEl.className = "dial-list"; + // The empty-query list is labelled by its section headers instead. if (countEl) { - countEl.hidden = false; - countEl.textContent = showList ? resultCountText(ACTIONS.length, total, query) : total + " " + T("sd_recent", "recent"); + countEl.hidden = !showList; + if (showList) + countEl.textContent = resultCountText(ACTIONS.length, total, query); } updateSelection(); updatePins(list); diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 7f08880510..521705d68f 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -22,16 +22,16 @@ assert.equal( "duplicate labels should use the opaque id without interpreting its contents" ); -assert.equal(ctx.shouldRenderActionList(""), false, "an empty search keeps recent/empty list"); -assert.equal(ctx.shouldRenderActionList(" "), false, "whitespace-only search keeps recent/empty list"); +assert.equal(ctx.shouldRenderActionList(""), false, "an empty search shows the recents+pool list"); +assert.equal(ctx.shouldRenderActionList(" "), false, "whitespace-only search shows the recents+pool list"); assert.equal(ctx.shouldRenderActionList("r"), true, "typing starts rendering matching actions"); -// commandList: an empty query shows recents; a typed query filters all actions. -assert.deepEqual(ctx.commandList(duplicateActions, [], ""), [], - "empty query + no recents shows nothing"); +// commandList: an empty query shows recents first, then every other action; a typed query filters all. +assert.deepEqual(ctx.commandList(duplicateActions, [], ""), duplicateActions, + "empty query + no recents shows the whole action pool"); assert.deepEqual(ctx.commandList(duplicateActions, [duplicateActions[0]], ""), - [duplicateActions[0]], - "empty query shows the recent list"); + [duplicateActions[0], duplicateActions[1]], + "empty query shows the recent first, then the remaining actions"); assert.deepEqual(ctx.commandList(duplicateActions, [], "rep"), duplicateActions, "a typed query filters actions (both identical titles match) instead of showing recents"); @@ -117,22 +117,73 @@ const negativePool = [ assert.equal(ctx.searchActions(negativePool, "ornt").length, 1, "a low-score fuzzy match is not mistaken for no match"); +// actionCategory: a command/dynamic action's group is its category; a setting uses the top-level +// source segment; every plugin shares one header; a category-less action falls back to "Other". +assert.equal(ctx.actionCategory({ id: "c", group: "Help", source: "OrcaSlicer", kind: "command" }), "Help", + "a command's group is its category"); +assert.equal(ctx.actionCategory({ id: "s", group: "", source: "Process : Quality : Layers", kind: "command" }), "Process", + "a setting's category is the top-level source segment"); +assert.equal(ctx.actionCategory({ id: "s", group: "", source: "Filament : Cooling", kind: "command" }), "Filament", + "a Filament setting groups under Filament"); +assert.equal(ctx.actionCategory({ id: "plugin_script_action:Foo:bar.py", group: "", source: "Gcode Optimizer", kind: "plugin" }), "Plugins", + "every plugin shares one Plugins header"); +assert.equal(ctx.actionCategory({ id: "x", group: "", source: "", kind: "command" }), "Other", + "a category-less action falls back to Other"); + +// groupActions: bucket by category, order the groups alphabetically, keep the incoming order within +// each group (the pool arrives frecency-sorted). +const groupPool = [ + { id: "q1", title: "Q1", source: "Quality", group: "Quality", kind: "command" }, + { id: "h1", title: "H1", source: "OrcaSlicer", group: "Help", kind: "command" }, + { id: "p1", title: "P1", source: "Process : A", group: "", kind: "command" }, + { id: "h2", title: "H2", source: "OrcaSlicer", group: "Help", kind: "command" } +]; +assert.deepEqual(ctx.groupActions(groupPool).map(function (a) { return a.id; }), ["h1", "h2", "p1", "q1"], + "groups are alphabetical and each group keeps its incoming order"); + // commandList (the main-phase list) delegates to the ranked search for a typed query and returns -// the mixed recents (no discrimination) for an empty query. +// recents + the category-grouped pool for an empty query. const mixed = [ - { id: "cmd", title: "Slice", source: "OrcaSlicer", group: "Commands", input: "" }, - { id: "set", title: "Sparse Infill Density", source: "Quality", group: "Quality", input: "" } + { id: "cmd", title: "Slice", source: "OrcaSlicer", group: "Commands", kind: "command", input: "" }, + { id: "set", title: "Sparse Infill Density", source: "Quality", group: "Quality", kind: "command", input: "" } ]; assert.equal(ctx.commandList(mixed, [], "sli")[0].id, "cmd", "a typed query keeps the relevance-ranked action list (best match first)"); -assert.deepEqual(ctx.commandList(mixed, mixed.slice(0, 1), "").map(function (a) { return a.id; }), ["cmd"], - "an empty query shows the mixed recents list verbatim"); +assert.deepEqual(ctx.commandList(mixed, mixed.slice(0, 1), "").map(function (a) { return a.id; }), ["cmd", "set"], + "an empty query shows the recents first and de-dupes them out of the tail"); +assert.deepEqual(ctx.commandList(mixed, [], "").map(function (a) { return a.id; }), ["cmd", "set"], + "empty query + no recents shows the whole action pool"); +assert.deepEqual(ctx.commandList(mixed, [mixed[1]], "").map(function (a) { return a.id; }), ["set", "cmd"], + "the recent is hoisted above the alphabetically-ordered groups"); -// selectedActionId: resolves the active list (recents for an empty query, filtered list otherwise). +// commandSections: "Recent" (when recents exist) plus one header per category in the grouped list; +// a typed query or an empty list yields no headers. Uses a computed grouped list so the recents +// hoist and the category ordering are exercised together. +const sectionPool = [ + { id: "cmd", title: "Slice", source: "OrcaSlicer", group: "Commands", kind: "command" }, + { id: "help", title: "Shortcuts", source: "OrcaSlicer", group: "Help", kind: "command" }, + { id: "set", title: "Infill", source: "Quality", group: "Quality", kind: "command" } +]; +const sectionList = ctx.commandList(sectionPool, [sectionPool[0]], ""); +assert.deepEqual(sectionList.map(function (a) { return a.id; }), ["cmd", "help", "set"], + "recents are hoisted, then the rest is grouped alphabetically (Commands, Help, Quality)"); +assert.deepEqual(ctx.commandSections(sectionList, 1, ""), { 0: "Recent", 1: "Help", 2: "Quality" }, + "recents + grouped actions get one header per category"); +assert.deepEqual(ctx.commandSections([sectionPool[0]], 1, ""), { 0: "Recent" }, + "a list that is all recents gets only the Recent header"); +assert.deepEqual(ctx.commandSections(ctx.commandList(sectionPool, [], ""), 0, ""), + { 0: "Commands", 1: "Help", 2: "Quality" }, + "with no recents the grouped list still gets category headers"); +assert.equal(ctx.commandSections(sectionList, 1, "sli"), null, + "a typed query has no section headers"); +assert.equal(ctx.commandSections([], 0, ""), null, + "an empty list has no section headers"); + +// selectedActionId: resolves the active list (recents+pool for an empty query, filtered list otherwise). assert.equal( ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], ""), []), - null, - "Enter with an empty query and no recents must not resolve to an action the list never showed" + "0123456789abcdef", + "Enter with an empty query resolves the first action in the recents+pool list" ); assert.equal( ctx.selectedActionId({ zone: "list", i: 0 }, ctx.commandList(duplicateActions, [], "rep"), []), diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index 3aea0cf15a..6aaca682d9 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -279,6 +279,21 @@ body { overflow-y: hidden; } +/* Section header in the empty-query list ("Recent" then one per category). Its 30px height MUST match + SECTION_H in speeddial.js, which reserves header space in the windowed-list bottom spacer. */ +.dial-section { + height: 30px; + display: flex; + align-items: center; + padding: 0 8px; + font-size: 10px; + font-weight: 600; + letter-spacing: .04em; + text-transform: uppercase; + color: var(--muted, var(--orca-muted, #6b7280)); + opacity: .85; +} + /* Bottom spacer for the windowed command list: fills the un-rendered tail so the scrollbar reflects the full match count, while only a near-viewport window of rows exists in the DOM. */ .dial-spacer-bottom { diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index 4c6eefa470..d1f488e523 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -286,6 +286,8 @@ void AppConfig::set_defaults() // The getter already defaults, parses and clamps; write back what it resolves to. set(SETTING_PLUGIN_PAGES_VISIBLE_COUNT, std::to_string(get_plugin_pages_visible_count())); + set(SETTING_SPEED_DIAL_RECENT_COUNT, std::to_string(get_speed_dial_recent_count())); + if (get(SETTING_OPENGL_SHOW_FPS_OVERLAY).empty()) set_bool(SETTING_OPENGL_SHOW_FPS_OVERLAY, false); @@ -1664,6 +1666,22 @@ int AppConfig::get_plugin_pages_visible_count() const return std::clamp(visible_count, PLUGIN_PAGES_VISIBLE_COUNT_MIN, PLUGIN_PAGES_VISIBLE_COUNT_MAX); } +int AppConfig::get_speed_dial_recent_count() const +{ + std::string value = get(SETTING_SPEED_DIAL_RECENT_COUNT); + if (value.empty()) + return SPEED_DIAL_RECENT_COUNT_DEFAULT; + + int recent_count = SPEED_DIAL_RECENT_COUNT_DEFAULT; + try { + recent_count = std::stoi(value); + } + catch (...) { + return SPEED_DIAL_RECENT_COUNT_DEFAULT; + } + return std::clamp(recent_count, SPEED_DIAL_RECENT_COUNT_MIN, SPEED_DIAL_RECENT_COUNT_MAX); +} + std::vector<std::string> AppConfig::get_skipped_network_versions() const { std::vector<std::string> result; diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp index c799502993..8e3305105a 100644 --- a/src/libslic3r/AppConfig.hpp +++ b/src/libslic3r/AppConfig.hpp @@ -46,6 +46,11 @@ using namespace nlohmann; #define PLUGIN_PAGES_VISIBLE_COUNT_DEFAULT 5 #define PLUGIN_PAGES_VISIBLE_COUNT_MAX 10 +#define SETTING_SPEED_DIAL_RECENT_COUNT "speed_dial_recent_count" +#define SPEED_DIAL_RECENT_COUNT_MIN 0 +#define SPEED_DIAL_RECENT_COUNT_DEFAULT 5 +#define SPEED_DIAL_RECENT_COUNT_MAX 10 + #if defined(_WIN32) || defined(_WIN64) #define BAMBU_NETWORK_AGENT_VERSION_LEGACY "01.10.01.09" #else @@ -394,6 +399,9 @@ public: // dropdown on the last tab. int get_plugin_pages_visible_count() const; + // Number of recently launched actions shown at the top of the Speed Dial; 0 hides them. + int get_speed_dial_recent_count() const; + std::vector<std::string> get_skipped_network_versions() const; void add_skipped_network_version(const std::string& version); bool is_network_version_skipped(const std::string& version) const; diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index a64fe9f705..b44d73ddc1 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -720,6 +720,7 @@ nlohmann::json ActionRegistry::snapshot() {"title", a->title()}, {"source", a->source_name()}, {"group", a->group}, + {"kind", a->kind == AppActionKind::Plugin ? "plugin" : "command"}, {"input", a->input}, {"icon", a->icon}, {"mode", mode_key(a->required_mode)}}); @@ -744,8 +745,9 @@ nlohmann::json ActionRegistry::snapshot() write_section("favourite_actions", nlohmann::json(live_favs)); nlohmann::json favourites(live_favs); - // Recent = the last-N launched actions by recency (only actions with a run history). - constexpr size_t kRecentLimit = 5; + // Recent = the last-N launched actions by recency (only actions with a run history). N is a + // user preference; 0 hides recents without affecting the frecency order below. + const size_t recent_limit = size_t(wxGetApp().app_config->get_speed_dial_recent_count()); std::vector<const AppAction*> recent; for (const auto& entry : m_actions) if (entry.second->last > 0) @@ -755,8 +757,8 @@ nlohmann::json ActionRegistry::snapshot() return a->last > b->last; return a->id() < b->id(); }); - if (recent.size() > kRecentLimit) - recent.resize(kRecentLimit); + if (recent.size() > recent_limit) + recent.resize(recent_limit); nlohmann::json recent_json = nlohmann::json::array(); for (const AppAction* a : recent) recent_json.push_back(action_to_json(a)); diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index c5f9bf1f89..54f117f245 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -1728,6 +1728,16 @@ void PreferencesDialog::create_items() "enable_speed_dial"); g_sizer->Add(item_speed_dial); + auto item_speed_dial_recents = create_item_spinctrl( + _L("Recent actions"), + "", + _L("actions"), + _L("How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions."), + SETTING_SPEED_DIAL_RECENT_COUNT, + SPEED_DIAL_RECENT_COUNT_MIN, + SPEED_DIAL_RECENT_COUNT_MAX); + g_sizer->Add(item_speed_dial_recents); + #if 0 g_sizer->Add(create_item_title(_L("Filament Grouping")), 1, wxEXPAND); //temporarily disable it diff --git a/tests/libslic3r/test_appconfig.cpp b/tests/libslic3r/test_appconfig.cpp index 59f9d11808..d3811c9827 100644 --- a/tests/libslic3r/test_appconfig.cpp +++ b/tests/libslic3r/test_appconfig.cpp @@ -43,3 +43,41 @@ TEST_CASE("AppConfig network version helpers", "[AppConfig]") { REQUIRE(config.is_network_version_skipped("02.01.01.52")); } } + +TEST_CASE("AppConfig Speed Dial recent count defaults, clamps and parses", "[AppConfig]") { + AppConfig config; + + SECTION("unset falls back to the default") { + REQUIRE(config.get_speed_dial_recent_count() == SPEED_DIAL_RECENT_COUNT_DEFAULT); + } + + SECTION("zero disables recents") { + config.set(SETTING_SPEED_DIAL_RECENT_COUNT, "0"); + REQUIRE(config.get_speed_dial_recent_count() == 0); + } + + SECTION("a value in range is returned as-is") { + config.set(SETTING_SPEED_DIAL_RECENT_COUNT, "7"); + REQUIRE(config.get_speed_dial_recent_count() == 7); + } + + SECTION("the maximum is kept") { + config.set(SETTING_SPEED_DIAL_RECENT_COUNT, "10"); + REQUIRE(config.get_speed_dial_recent_count() == SPEED_DIAL_RECENT_COUNT_MAX); + } + + SECTION("values above the maximum clamp down") { + config.set(SETTING_SPEED_DIAL_RECENT_COUNT, "42"); + REQUIRE(config.get_speed_dial_recent_count() == SPEED_DIAL_RECENT_COUNT_MAX); + } + + SECTION("negative values clamp up to 0") { + config.set(SETTING_SPEED_DIAL_RECENT_COUNT, "-3"); + REQUIRE(config.get_speed_dial_recent_count() == 0); + } + + SECTION("garbage falls back to the default") { + config.set(SETTING_SPEED_DIAL_RECENT_COUNT, "abc"); + REQUIRE(config.get_speed_dial_recent_count() == SPEED_DIAL_RECENT_COUNT_DEFAULT); + } +} From 70a2b3a814d7c6efebee12f15e838ba57e8fbbca Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Fri, 11 Sep 2026 15:43:46 +0800 Subject: [PATCH 18/76] Code cleanup, dedup, update unit tests --- resources/web/dialog/SpeedDial/speeddial.js | 89 +++++- .../web/dialog/SpeedDial/speeddial.test.js | 21 ++ resources/web/dialog/SpeedDial/style.css | 21 -- src/slic3r/GUI/ActionRegistry.cpp | 4 +- src/slic3r/GUI/MainFrame.cpp | 4 +- src/slic3r/GUI/PluginsDialog.cpp | 78 ++--- src/slic3r/GUI/PluginsDialog.hpp | 289 ++++++++++-------- src/slic3r/GUI/Search.cpp | 25 +- tests/slic3rutils/test_action_source.cpp | 10 + 9 files changed, 316 insertions(+), 225 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 2045d42224..3dcbbd4fd1 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -1,6 +1,14 @@ // Speed Dial launcher page. Static-safe module: no DOM access at load time so a // node vm can exercise the pure helpers (searchActions / filterTabs / actionLabel / nextSel / -// commandList / commandSections / actionCategory / groupActions). +// commandList / commandSections / actionCategory / groupActions / favDigitFromEvent / spacerHeight). +// +// Cross-boundary contracts (keep in sync; the C++ side pins its half in tests): +// - favourite cap 10 -> ActionRegistry::kFavLimit (K_FAV_LIMIT here) +// - mode rank simple<advanced<expert<develop -> ConfigOptionMode order (MODE_RANK here) +// - action.mode token -> ActionRegistry::mode_key / SpeedDialDialog::mode_label +// - action.input "percent"/"tab" -> NativeCommands catalog (phases handled in activateEntry) +// - action.icon SVG base name -> AppAction::icon / resources/images/<name>.svg +// - action list is frecency-sorted -> ActionRegistry::snapshot() // ---- state (populated by the C++ bridge via window.HandleStudio) ---- var ACTIONS = []; // [{id,title,source,group,kind,input,icon,mode}], already frecency-sorted by C++ @@ -45,7 +53,7 @@ function T(key, fallback) { var K_ROWS = 50; var ROW_H = 44; var renderEnd = 0; -var builtKey = ""; // phase|query|listLen - when it changes, rows are rebuilt from the first window +var builtKey = ""; // phase|query|total - when it changes, rows are rebuilt from the first window [0, K_ROWS) var spacerEl = null; // the trailing height spacer, always the last child of listEl // Section headers in the empty-query list ("Recent" then one per category). sectionStarts maps a flat @@ -200,6 +208,12 @@ function revealTarget(total, fromIndex, size) { return Math.min(total, Math.max(0, fromIndex) + size); } +// Pure: the bottom spacer's height - the un-rendered row tail plus any not-yet-rendered section +// headers, so the scrollbar reflects the full list and the last rows stay reachable. +function spacerHeight(total, rendered, totalSections, renderedSections) { + return Math.max(0, total - rendered) * ROW_H + Math.max(0, totalSections - renderedSections) * SECTION_H; +} + // buildKey: the command-list signature that decides whether rows must be rebuilt (new search / phase) // or just have their selection refreshed in place (arrow-nav / click). Cheap to compute. function buildKey() { return phase + "|" + (query || "").trim(); } @@ -232,6 +246,13 @@ function favIndexForDigit(d) { return -1; } +// Physical digit for a keydown event. Use e.code so macOS Option+digit (which composes to a symbol +// in e.key, e.g. Alt+1 -> "¡") still maps to the intended slot; fall back to e.key elsewhere. +function favDigitFromEvent(e) { + var m = /^(?:Digit|Numpad)([0-9])$/.exec((e && e.code) || ""); + return m ? m[1] : ((e && e.key) || ""); +} + function resultCountText(total, shown, query) { var n = total + " " + T("sd_actions", "actions"); return (query || "").trim() ? T("sd_showing", "Showing") + " " + shown + " " + T("sd_of", "of") + " " + n : n; @@ -319,10 +340,22 @@ function groupActions(list) { // by relevance; an empty query shows the recents first, then the rest grouped under category headers. // The empty-query result is cached on the action/recents array identities so scrolling doesn't regroup. var commandListCache = null; +// Typed-query result cache, keyed on the pool identity + query. searchActions populates the +// module-level matchIndex/searchNeedle; a hit restores both so a repeated call (keydown + input, +// or a scroll tick) skips the whole scan instead of recomputing it. +var searchCache = null; function commandList(actions, recents, query) { var all = actions || []; - if (shouldRenderActionList(query)) - return searchActions(all, query); + if (shouldRenderActionList(query)) { + if (searchCache && searchCache.actions === all && searchCache.query === query) { + matchIndex = searchCache.matchIndex; + searchNeedle = searchCache.needle; + return searchCache.list; + } + var found = searchActions(all, query); + searchCache = { actions: all, query: query, list: found, matchIndex: matchIndex, needle: searchNeedle }; + return found; + } var rec = recents || []; if (commandListCache && commandListCache.actions === all && commandListCache.recents === rec) return commandListCache.list; @@ -408,15 +441,35 @@ function modeFilterFromQuery(query) { return found; } +// Precomputed label parts for one action pool, keyed on the pool's array identity. The fold pass is +// O(N); doing it here instead of inside every actionLabel() call keeps row rendering O(rows), not O(rows*N). +var labelCache = null; +function labelParts(actions) { + if (labelCache && labelCache.actions === actions) + return labelCache; + var sig = {}, count = {}; + (actions || []).forEach(function (o) { + var s = foldLabel(o.title) + "|" + foldLabel(o.source || o.group || ""); + sig[o.id] = s; + count[s] = (count[s] || 0) + 1; + }); + labelCache = { actions: actions, sig: sig, count: count }; + return labelCache; +} + // Accessible label "Title from Pretty Source", disambiguated with the opaque action id when another // action shares the same title+source (case/separator-insensitive) - so two rows never read out identically. function actionLabel(action, actions) { var label = action.title + " from " + prettySource(action.source || action.group || ""); if (actions && actions.length) { - var mine = foldLabel(action.title) + "|" + foldLabel(action.source || action.group || ""); - var clash = actions.some(function (o) { - return o.id !== action.id && foldLabel(o.title) + "|" + foldLabel(o.source || o.group || "") === mine; - }); + var cache = labelParts(actions); + var mine = cache.sig[action.id]; + // mine is undefined only for an action outside the cached pool (e.g. a transient row); scan then. + var clash = mine !== undefined ? cache.count[mine] > 1 : + actions.some(function (o) { + return o.id !== action.id && foldLabel(o.title) + "|" + foldLabel(o.source || o.group || "") === + foldLabel(action.title) + "|" + foldLabel(action.source || action.group || ""); + }); if (clash) label += " (" + action.id + ")"; } @@ -788,13 +841,14 @@ function ensureSpacer() { // section headers reserve their own height too, so the last rows stay reachable. function setBottomSpacer(total) { ensureSpacer(); - var remainingRows = Math.max(0, total - renderEnd); - var remainingHeaders = Math.max(0, sectionTotal - sectionRendered); - spacerEl.style.height = (remainingRows * ROW_H + remainingHeaders * SECTION_H) + "px"; + spacerEl.style.height = spacerHeight(total, renderEnd, sectionTotal, sectionRendered) + "px"; } // Reveal rows up to `upto` (an exclusive index), appending without rebuilding the whole list. Used by // the scroll handler (viewport + overscan) and by arrow-nav that runs off the end of the current window. +// The window is append-only and row indices are absolute, so jumping the selection to the very last row +// (ArrowUp wrap with no fav bar) necessarily materializes the whole list; the label/search caches above +// keep that one-off cost linear rather than quadratic. function revealTo(list, upto) { var need = Math.min(list.length, upto); if (need <= renderEnd) @@ -893,8 +947,9 @@ function renderCommandsList() { updatePins(list); } -// A tab row: no pin/unpin (tabs aren't pinnable), placeholder tile (tabs have no pictogram). Uses -// tabTitle so pages added with an empty text (e.g. Home) still show a label. +// A tab row: no pin/unpin (tabs aren't pinnable), and a tile that shows the page icon when the +// notebook has one (plugin pages often don't). Uses tabTitle so pages added with an empty text +// (e.g. Home) still show a label. function renderTabRow(t, i) { var label = tabTitle(t); var shell = beginRow(t, i, true, label); @@ -911,6 +966,7 @@ function renderTabList() { var q = (query || "").trim(); var list = currentList(); listEl.innerHTML = ""; + spacerEl = null; // the tab list has no windowed spacer; rebuildCommandsList recreates it if (!list.length) { renderEmpty(q ? T("sd_no_tabs_match", "No tabs match") : T("sd_no_tabs", "No tabs")); @@ -990,7 +1046,10 @@ function flashHint(text) { hint.textContent = text; launcher.insertBefore(hint, launcher.firstChild); setTimeout(function () { - if (hint && hint.parentNode) hint.parentNode.removeChild(hint); + if (hint && hint.parentNode) { + hint.parentNode.removeChild(hint); + requestResize(); // reclaim the hint's height so the popup doesn't stay tall + } }, 2500); } @@ -1139,7 +1198,7 @@ function OnInit() { // Quick-launch a numbered favourite: Alt/Option + digit (0 = the 10th). Only in the // commands phase, where the pinned bar is shown. if (phase === "commands" && e.altKey && !e.ctrlKey && !e.metaKey) { - var slotIdx = favIndexForDigit(e.key); + var slotIdx = favIndexForDigit(favDigitFromEvent(e)); var favIds = currentVisibleFavs(); if (slotIdx >= 0 && slotIdx < favIds.length) { e.preventDefault(); diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 521705d68f..85a0bcd064 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -216,6 +216,15 @@ assert.equal(ctx.favSlotForIndex(10), null, "index 10 is beyond the cap"); assert.equal(ctx.favSlotForIndex(-1), null, "negative index is not a slot"); assert.equal(ctx.K_FAV_LIMIT, 10, "the slot count matches the quick-launch cap"); +// favDigitFromEvent: prefer the physical code (so macOS Option+digit still maps even though e.key +// is the composed symbol), and fall back to e.key for keyboards/synthetic events without a code. +assert.equal(ctx.favDigitFromEvent({ code: "Digit1", key: "¡" }), "1", "Digit1 wins over a composed key"); +assert.equal(ctx.favDigitFromEvent({ code: "Digit0", key: "0" }), "0", "Digit0 is a physical digit"); +assert.equal(ctx.favDigitFromEvent({ code: "Numpad7", key: "7" }), "7", "numpad digits count"); +assert.equal(ctx.favDigitFromEvent({ code: "", key: "3" }), "3", "a missing code falls back to key"); +assert.equal(ctx.favDigitFromEvent({ key: "a" }), "a", "non-digit input is passed through (maps to -1)"); +assert.equal(ctx.favDigitFromEvent(null), "", "a null event yields no digit"); + // nextSel: arrow-nav wrapping. Down wraps at the list bottom to the first row; Up wraps at the // list top to the last row ONLY when there's no fav bar above (else it goes to the fav bar). assert.deepEqual(ctx.nextSel({ zone: "list", i: 2 }, "ArrowDown", 3, 0), { zone: "list", i: 0 }, @@ -245,6 +254,14 @@ assert.equal(ctx.revealTarget(100, -5, 50), 50, "negative start is clamped to th assert.equal(ctx.revealTarget(200, 50, 100), 150, "a scroll viewpoint reveals a window past the current rows"); assert.equal(ctx.revealTarget(10, 0, 50), 10, "a list shorter than one window stays fully materialized"); +// spacerHeight: un-rendered rows (44px) plus un-rendered section headers (30px), never negative. +assert.equal(ctx.spacerHeight(100, 50, 0, 0), 50 * 44, "the tail rows reserve their full height"); +assert.equal(ctx.spacerHeight(100, 100, 0, 0), 0, "a fully-rendered list needs no spacer"); +assert.equal(ctx.spacerHeight(100, 50, 3, 1), 50 * 44 + 2 * 30, "pending section headers reserve their height too"); +assert.equal(ctx.spacerHeight(10, 0, 2, 0), 10 * 44 + 2 * 30, "a short list still reserves its headers"); +assert.equal(ctx.spacerHeight(0, 0, 0, 0), 0, "an empty list has no spacer"); +assert.equal(ctx.spacerHeight(10, 20, 0, 5), 0, "over-rendered counters clamp to zero"); + // visibleFavourites: the quick-bar drops pins whose action no longer exists (plugin unloaded, // command removed) and collapses duplicate ids, keeping the persisted pin order. assert.deepEqual(ctx.visibleFavourites(["a", "b", "c"], [{ id: "a" }, { id: "b" }]), @@ -274,6 +291,10 @@ assert.equal(ctx.needsModeSwitch({ mode: "advanced" }, "advanced"), false, "an A assert.equal(ctx.needsModeSwitch({ mode: "develop" }, "develop"), false, "a Developer setting is not gated in Developer mode"); assert.equal(ctx.needsModeSwitch({}, "simple"), false, "a command with no mode is never gated"); +// MODE_RANK must match the C++ ConfigOptionMode order (comSimple < comAdvanced < comExpert < comDevelop). +assert.deepEqual(ctx.MODE_RANK, { simple: 0, advanced: 1, expert: 2, develop: 3 }, + "mode rank matches the C++ ConfigOptionMode order"); + // modeBadge: the tag text for gated settings, empty once the setting is available. assert.equal(ctx.modeBadge({ mode: "advanced" }, "simple"), "Advanced", "Advanced badge text"); assert.equal(ctx.modeBadge({ mode: "expert" }, "simple"), "Expert", "Expert badge text"); diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index 6aaca682d9..c9532d8dab 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -382,12 +382,6 @@ body { border-radius: 2px; } -.row-sc { - flex: 0 0 auto; - display: inline-flex; - gap: 3px; -} - /* Mode tag on settings above the user's current mode (Advanced/Expert/Developer). */ .row-mode { flex: 0 0 auto; @@ -400,21 +394,6 @@ body { white-space: nowrap; } -kbd { - display: inline-flex; - align-items: center; - justify-content: center; - min-width: 18px; - height: 18px; - padding: 0 5px; - font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; - font-size: 11px; - color: var(--muted, var(--orca-muted, #6b7280)); - background: rgba(127, 127, 127, .12); - border: 1px solid var(--border, var(--orca-border, #ddd)); - border-radius: 4px; -} - .pin { flex: 0 0 auto; width: 24px; diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index b44d73ddc1..fb98b96a17 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -178,7 +178,7 @@ struct SettingAction : AppAction { std::string opt_key; Preset::Type type; - std::wstring category; // localized category, forwarded to jump_to_option + std::wstring category; // English category, forwarded to jump_to_option (it localizes) static std::string id_for(const std::string& opt_key, Preset::Type type) { return std::string(kSettingPrefix) + ":" + opt_key + ":" + std::to_string(int(type)); } @@ -556,7 +556,7 @@ void ActionRegistry::materialize_setting_actions() // title = the option leaf name (last label segment); group stays empty so the source path // (above) is the single display/search breadcrumb rather than being duplicated. auto action = std::make_unique<SettingAction>(opt.opt_key(), opt.type, boost::nowide::narrow(label_w), std::string(), - opt.category_local, boost::nowide::narrow(path), opt.mode); + opt.category, boost::nowide::narrow(path), opt.mode); // Tile pictogram = the icon of the setting's own group header (e.g. Advanced -> param_advanced), // the one shown next to it in the page. Fall back to the page/category icon for groups diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 4681a67c29..828c698ce1 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -737,7 +737,9 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ evt.Skip(); // let the focused control keep Space return; } - wxGetApp().open_speed_dial(); + // Defer out of the native key-event stack: open_speed_dial() may create a WebView and + // run script, the same window work the codebase avoids doing on native callbacks. + this->CallAfter([this] { wxGetApp().open_speed_dial(); }); return; } if (evt.CmdDown() && evt.GetKeyCode() == 'R') { if (m_slice_enable) { wxGetApp().plater()->update(true, true); wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_SLICE_PLATE)); this->m_tabpanel->SelectPageByName(TAB_ID_PREVIEW); } return; } diff --git a/src/slic3r/GUI/PluginsDialog.cpp b/src/slic3r/GUI/PluginsDialog.cpp index 8bee3919b2..5b1e203c17 100644 --- a/src/slic3r/GUI/PluginsDialog.cpp +++ b/src/slic3r/GUI/PluginsDialog.cpp @@ -528,68 +528,37 @@ bool install_local_plugin_package(const boost::filesystem::path& package_file, w { struct Result { - std::mutex mutex; - bool ok = false; + std::mutex mutex; + bool ok = false; std::string error; }; auto state = std::make_shared<Result>(); - wxProgressDialog* progress = new wxProgressDialog(_L("Installing plugin"), _L("Installing plugin") + ": " + package_name, - 100, parent, wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_ELAPSED_TIME); - wxTimer* timer = new wxTimer(); - timer->Bind(wxEVT_TIMER, [progress](wxTimerEvent&) { - if (progress) - progress->Pulse(); - }); - timer->Start(100); - - // finished/loop live on the heap: the worker's completion callback is posted to the UI loop - // and can still fire after this stack frame is gone, so it must not reference locals. - struct WaitState - { - bool finished = false; - wxEventLoop loop; - }; - auto wait = std::make_shared<WaitState>(); - - std::thread([state, package_file, wait]() mutable { - std::string error; - bool ok = false; - try { - ok = PluginManager::instance().install_plugin(package_file, error); - } catch (const std::exception& ex) { - error = ex.what(); - } catch (...) { - error = "Unknown error"; - } - if (ok) { - // Reflect the new package in discovery/cloud metadata without blocking the caller. - try { refresh_plugin_metadata_blocking(kUseCurrentCloudMeta); } catch (...) {} - } - { + detail::run_wait_with_progress( + [state, package_file]() { + std::string error; + bool ok = false; + try { + ok = PluginManager::instance().install_plugin(package_file, error); + } catch (const std::exception& ex) { + error = ex.what(); + } catch (...) { + error = "Unknown error"; + } + if (ok) { + // Reflect the new package in discovery/cloud metadata without blocking the caller. + try { refresh_plugin_metadata_blocking(kUseCurrentCloudMeta); } catch (...) {} + } std::lock_guard<std::mutex> lock(state->mutex); state->ok = ok; state->error = std::move(error); - } - if (!wxTheApp) - return; - wxTheApp->CallAfter([wait]() { - wait->finished = true; - if (wait->loop.IsRunning()) - wait->loop.Exit(); - }); - }).detach(); - - if (!wait->finished) - wait->loop.Run(); - - timer->Stop(); - delete timer; - progress->Destroy(); + }, + parent, _L("Installing plugin"), _L("Installing plugin") + ": " + package_name, 100, + wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_ELAPSED_TIME, /*alive=*/nullptr, /*restore=*/{}); std::lock_guard<std::mutex> lock(state->mutex); - installed = state->ok; - error = std::move(state->error); + installed = state->ok; + error = std::move(state->error); } if (!installed) { @@ -980,6 +949,9 @@ bool PluginsDialog::install_plugin_package(const std::string& package_path) const boost::filesystem::path package_file(package_path); wxString message; const bool installed = install_local_plugin_package(package_file, this, message); + // The helper's overwrite prompt and progress dialog can push this webview behind; re-raise it + // once, after both have closed (the speed-dial path parents to the mainframe instead). + restore_z_order(); // The shared helper reports a user-cancelled overwrite with an empty message: stay silent. if (message.IsEmpty()) { diff --git a/src/slic3r/GUI/PluginsDialog.hpp b/src/slic3r/GUI/PluginsDialog.hpp index 2c4a5925d9..0aee7b2734 100644 --- a/src/slic3r/GUI/PluginsDialog.hpp +++ b/src/slic3r/GUI/PluginsDialog.hpp @@ -52,6 +52,168 @@ void open_plugin_hub(); // confirmation; on a user-cancelled overwrite it is empty; on failure it carries the reason. bool install_local_plugin_package(const boost::filesystem::path& package_file, wxWindow* parent, wxString& message); +namespace detail { + +// Shared worker + modal-progress machinery: pulse a progress dialog while `run` executes on a +// detached worker, then run `on_finish` back on the UI thread. `alive`, when non-null, gates both +// the pulse and `on_finish` so a worker outliving its dialog can't touch freed windows; pass null +// for a dialog-independent caller. `restore` runs after the progress dialog is destroyed and before +// `on_finish`, so a webview host can re-raise itself. `finish_after_dialog_destroyed` still calls +// `on_finish` (without touching the dialog) when the host died, so a waiting loop can exit. +template<typename Run, typename OnFinish> +void run_off_thread_with_progress(Run&& run, + OnFinish&& on_finish, + wxWindow* parent, + const wxString& title, + const wxString& message, + int maximum, + int style, + std::shared_ptr<std::atomic<bool>> alive, + bool finish_after_dialog_destroyed, + std::function<void()> restore) +{ + wxProgressDialog* progress = new wxProgressDialog(title, message, maximum, parent, style); + wxTimer* timer = new wxTimer(); + + timer->Bind(wxEVT_TIMER, [alive, progress, message](wxTimerEvent&) { + if ((!alive || alive->load(std::memory_order_acquire)) && progress) + progress->Pulse(message); + }); + + timer->Start(100); + + std::thread([alive, + progress, + timer, + run = std::forward<Run>(run), + on_finish = std::forward<OnFinish>(on_finish), + finish_after_dialog_destroyed, + restore = std::move(restore)]() mutable { + try { + run(); + } catch (const std::exception& ex) { + BOOST_LOG_TRIVIAL(error) << "Plugin dialog worker failed: " << ex.what(); + } catch (...) { + BOOST_LOG_TRIVIAL(error) << "Plugin dialog worker failed with an unknown exception"; + } + + if (wxTheApp == nullptr) + return; + + wxTheApp->CallAfter([alive, + progress, + timer, + on_finish = std::move(on_finish), + finish_after_dialog_destroyed, + restore = std::move(restore)]() mutable { + timer->Stop(); + delete timer; + + if (!alive || alive->load(std::memory_order_acquire)) { + progress->Destroy(); + if (restore) + restore(); + on_finish(); + } else if (finish_after_dialog_destroyed) { + on_finish(); + } + }); + }).detach(); +} + +// Wait for a worker behind a progress dialog, returning its result (or rethrowing). The waiting +// loop stays responsive because it pumps the event loop the worker posts its completion into. +template<typename Run> +std::invoke_result_t<std::decay_t<Run>&> run_wait_with_progress(Run&& run, + wxWindow* parent, + const wxString& title, + const wxString& message, + int maximum, + int style, + std::shared_ptr<std::atomic<bool>> alive, + std::function<void()> restore) +{ + using Result = std::invoke_result_t<std::decay_t<Run>&>; + + bool finished = false; + wxEventLoop loop; + auto on_finish = [&finished, &loop]() { + finished = true; + if (loop.IsRunning()) + loop.Exit(); + }; + + if constexpr (std::is_void_v<Result>) { + struct WaitState + { + std::mutex mutex; + std::exception_ptr exception; + }; + + auto state = std::make_shared<WaitState>(); + run_off_thread_with_progress( + [run = std::forward<Run>(run), state]() mutable { + try { + run(); + } catch (...) { + std::lock_guard<std::mutex> lock(state->mutex); + state->exception = std::current_exception(); + } + }, + on_finish, parent, title, message, maximum, style, std::move(alive), /*finish_after_dialog_destroyed=*/true, std::move(restore)); + + if (!finished) + loop.Run(); + + std::exception_ptr exception; + { + std::lock_guard<std::mutex> lock(state->mutex); + exception = state->exception; + } + if (exception) + std::rethrow_exception(exception); + } else { + using StoredResult = std::decay_t<Result>; + struct WaitState + { + std::mutex mutex; + std::optional<StoredResult> result; + std::exception_ptr exception; + }; + + auto state = std::make_shared<WaitState>(); + run_off_thread_with_progress( + [run = std::forward<Run>(run), state]() mutable { + try { + StoredResult result = run(); + std::lock_guard<std::mutex> lock(state->mutex); + state->result.emplace(std::move(result)); + } catch (...) { + std::lock_guard<std::mutex> lock(state->mutex); + state->exception = std::current_exception(); + } + }, + on_finish, parent, title, message, maximum, style, std::move(alive), /*finish_after_dialog_destroyed=*/true, std::move(restore)); + + if (!finished) + loop.Run(); + + std::optional<StoredResult> result; + std::exception_ptr exception; + { + std::lock_guard<std::mutex> lock(state->mutex); + if (state->result) + result.emplace(std::move(*state->result)); + exception = state->exception; + } + if (exception) + std::rethrow_exception(exception); + return std::move(*result); + } +} + +} // namespace detail + class PluginsDialog : public Slic3r::GUI::WebViewHostDialog { public: @@ -128,53 +290,8 @@ private: int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE, bool finish_after_dialog_destroyed = false) { - const auto alive = m_alive; - wxProgressDialog* progress = new wxProgressDialog(title, message, maximum, this, style); - wxTimer* timer = new wxTimer(); - - timer->Bind(wxEVT_TIMER, [alive, progress, message](wxTimerEvent&) { - if (alive->load(std::memory_order_acquire) && progress) - progress->Pulse(message); - }); - - timer->Start(100); - - std::thread([this, - alive, - progress, - timer, - run = std::forward<Run>(run), - on_finish = std::forward<OnFinish>(on_finish), - finish_after_dialog_destroyed]() mutable { - try { - run(); - } catch (const std::exception& ex) { - BOOST_LOG_TRIVIAL(error) << "Plugin dialog worker failed: " << ex.what(); - } catch (...) { - BOOST_LOG_TRIVIAL(error) << "Plugin dialog worker failed with an unknown exception"; - } - - if (wxTheApp == nullptr) - return; - - wxTheApp->CallAfter([this, - alive, - progress, - timer, - on_finish = std::move(on_finish), - finish_after_dialog_destroyed]() mutable { - timer->Stop(); - delete timer; - - if (alive->load(std::memory_order_acquire)) { - progress->Destroy(); - restore_z_order(); - on_finish(); - } else if (finish_after_dialog_destroyed) { - on_finish(); - } - }); - }).detach(); + detail::run_off_thread_with_progress(std::forward<Run>(run), std::forward<OnFinish>(on_finish), this, title, message, maximum, style, + m_alive, finish_after_dialog_destroyed, [this] { restore_z_order(); }); } template<typename Run> @@ -184,83 +301,7 @@ private: int maximum = 100, int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE) { - using Result = std::invoke_result_t<std::decay_t<Run>&>; - - bool finished = false; - wxEventLoop loop; - auto on_finish = [&finished, &loop]() { - finished = true; - if (loop.IsRunning()) - loop.Exit(); - }; - - if constexpr (std::is_void_v<Result>) { - struct WaitState - { - std::mutex mutex; - std::exception_ptr exception; - }; - - auto state = std::make_shared<WaitState>(); - run_with_dialog( - [run = std::forward<Run>(run), state]() mutable { - try { - run(); - } catch (...) { - std::lock_guard<std::mutex> lock(state->mutex); - state->exception = std::current_exception(); - } - }, - on_finish, title, message, maximum, style, true); - - if (!finished) - loop.Run(); - - std::exception_ptr exception; - { - std::lock_guard<std::mutex> lock(state->mutex); - exception = state->exception; - } - if (exception) - std::rethrow_exception(exception); - } else { - using StoredResult = std::decay_t<Result>; - struct WaitState - { - std::mutex mutex; - std::optional<StoredResult> result; - std::exception_ptr exception; - }; - - auto state = std::make_shared<WaitState>(); - run_with_dialog( - [run = std::forward<Run>(run), state]() mutable { - try { - StoredResult result = run(); - std::lock_guard<std::mutex> lock(state->mutex); - state->result.emplace(std::move(result)); - } catch (...) { - std::lock_guard<std::mutex> lock(state->mutex); - state->exception = std::current_exception(); - } - }, - on_finish, title, message, maximum, style, true); - - if (!finished) - loop.Run(); - - std::optional<StoredResult> result; - std::exception_ptr exception; - { - std::lock_guard<std::mutex> lock(state->mutex); - if (state->result) - result.emplace(std::move(*state->result)); - exception = state->exception; - } - if (exception) - std::rethrow_exception(exception); - return std::move(*result); - } + return detail::run_wait_with_progress(std::forward<Run>(run), this, title, message, maximum, style, m_alive, [this] { restore_z_order(); }); } std::function<void()> m_open_terminal_dlg_fn; diff --git a/src/slic3r/GUI/Search.cpp b/src/slic3r/GUI/Search.cpp index 21aa8b7350..16ec2051a9 100644 --- a/src/slic3r/GUI/Search.cpp +++ b/src/slic3r/GUI/Search.cpp @@ -143,17 +143,24 @@ void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type ty } } -inline void OptionsSearcher::sort_options() +void OptionsSearcher::sort_options() { - std::sort(options.begin(), options.end(), [](const Option &o1, const Option &o2) { return o1.label < o2.label; }); - Option * last = nullptr; - for (auto& opt : options) { - if (last && last->label == opt.label && last->group == opt.group && last->type == opt.type && last->category != opt.category) { - last->multi_category = true; - opt.multi_category = true; + // Both views are label-sorted and multi_category-marked. They are separate consumers (the sidebar + // search and the Speed Dial); keeping them in sync here prevents the all-modes view from silently + // diverging in order or flags. + auto sort_and_mark = [](std::vector<Option> &v) { + std::sort(v.begin(), v.end(), [](const Option &o1, const Option &o2) { return o1.label < o2.label; }); + Option *last = nullptr; + for (auto &opt : v) { + if (last && last->label == opt.label && last->group == opt.group && last->type == opt.type && last->category != opt.category) { + last->multi_category = true; + opt.multi_category = true; + } + last = &opt; } - last = &opt; - } + }; + sort_and_mark(options); + sort_and_mark(options_all_modes); } // Mark a string using ColorMarkerStart and ColorMarkerEnd symbols diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 59a81d21fa..02e5205fe6 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -118,6 +118,16 @@ TEST_CASE("Two-phase commands declare their input phase", "[ActionSource][SpeedD CHECK(input_of("go_to_tab") == "tab"); } +// The input token vocabulary is a JS<->C++ contract (speeddial.js dispatches "percent"/"tab"). +// A typo here would leave a command that never enters its second phase, so pin the allowed set. +TEST_CASE("Command input tokens stay in the known vocabulary", "[ActionSource][SpeedDial]") +{ + for (const auto& c : Slic3r::GUI::NativeCommands::catalog()) { + INFO(c.key << " input=" << c.input); + CHECK((c.input.empty() || c.input == "percent" || c.input == "tab")); + } +} + // The quick-launch cap must stay 10 to match the numbered Alt/Option+1..9,0 keys. The web palette // mirrors it as K_FAV_LIMIT (asserted in speeddial.test.js); the C++ side pins it here. static_assert(Slic3r::GUI::ActionRegistry::kFavLimit == 10, "kFavLimit must stay 10"); From c57b74731e37550444f0218457396be512150201 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Fri, 11 Sep 2026 16:38:14 +0800 Subject: [PATCH 19/76] Tooltip bottom bar for process/filament/printer settings --- .github/workflows/unit_tests.yml | 6 --- resources/web/data/text.js | 2 + resources/web/dialog/SpeedDial/index.html | 1 + resources/web/dialog/SpeedDial/speeddial.js | 53 ++++++++++++++++++- .../web/dialog/SpeedDial/speeddial.test.js | 16 ++++++ resources/web/dialog/SpeedDial/style.css | 45 ++++++++++++++++ src/slic3r/GUI/ActionRegistry.cpp | 10 +++- src/slic3r/GUI/ActionRegistry.hpp | 4 ++ src/slic3r/GUI/OptionsGroup.cpp | 6 +++ src/slic3r/GUI/OptionsGroup.hpp | 6 ++- src/slic3r/GUI/Search.cpp | 22 ++++++-- src/slic3r/GUI/Search.hpp | 7 +++ src/slic3r/GUI/SpeedDialDialog.cpp | 12 +++++ src/slic3r/GUI/SpeedDialDialog.hpp | 1 + tests/slic3rutils/test_action_source.cpp | 15 ++++++ 15 files changed, 191 insertions(+), 15 deletions(-) diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index e05a927a03..5f54f6581d 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -49,12 +49,6 @@ jobs: cmakeVersion: "~4.3.0" # use most recent 4.3.x version useLocalCache: true useCloudCache: true - - name: Run web dialog JS tests - timeout-minutes: 5 - shell: bash - run: | - node resources/web/js/fuzzy-search.test.js - node resources/web/dialog/SpeedDial/speeddial.test.js - name: Unpackage and Run Unit Tests timeout-minutes: 20 shell: bash diff --git a/resources/web/data/text.js b/resources/web/data/text.js index 2f6682c051..0c803c0ada 100644 --- a/resources/web/data/text.js +++ b/resources/web/data/text.js @@ -150,6 +150,8 @@ var LangText = { sd_mode_advanced: "Advanced", sd_mode_expert: "Expert", sd_mode_develop: "Developer", + sd_wiki: "Wiki", + sd_no_wiki: "No wiki page for this action", }, ca_ES: { t1: "Benvingut a Orca Slicer", diff --git a/resources/web/dialog/SpeedDial/index.html b/resources/web/dialog/SpeedDial/index.html index a6f9e753a6..0137a2fcf2 100644 --- a/resources/web/dialog/SpeedDial/index.html +++ b/resources/web/dialog/SpeedDial/index.html @@ -28,6 +28,7 @@ <div class="dial-count" id="count" hidden></div> </div> <div class="dial-list" id="list"></div> + <div class="dial-detail" id="detail" hidden></div> </div> </body> </html> diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 3dcbbd4fd1..d5615bd3f7 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -8,6 +8,7 @@ // - action.mode token -> ActionRegistry::mode_key / SpeedDialDialog::mode_label // - action.input "percent"/"tab" -> NativeCommands catalog (phases handled in activateEntry) // - action.icon SVG base name -> AppAction::icon / resources/images/<name>.svg +// - action.desc/wiki -> AppAction::tooltip / help_url (footer detail strip) // - action list is frecency-sorted -> ActionRegistry::snapshot() // ---- state (populated by the C++ bridge via window.HandleStudio) ---- @@ -77,7 +78,7 @@ var tabOptions = []; // [{id,title}] - notebook pages, fetched on entering // ../../js/fuzzy-search.js, loaded before this script. Search is always case-insensitive. // element handles, assigned in OnInit (kept null so load-time touches no DOM) -var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, countEl = null; +var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, countEl = null, detailEl = null; // ---- pure helpers (no DOM; unit-tested) ------------------------------------- // Pre-normalized haystacks, cached on the action object. The fold is length-preserving (1:1 per @@ -400,6 +401,11 @@ function selectedActionId(sel, actions, favIds) { return a && a.id; } +function actionHasWiki(a) { return !!(a && a.wiki); } + +// Whether the action has anything for the footer strip to show (a description or a wiki link). +function actionHasDetail(a) { return !!(a && ((a.desc && a.desc.length) || a.wiki)); } + function foldLabel(s) { return String(s || "").toLowerCase().replace(/[^a-z0-9]+/g, ""); } // Title-case a source for display: "GCODE OPTIMIZER"/"iRoNiNg pRo" -> "Gcode Optimizer"/"Ironing Pro". @@ -996,9 +1002,43 @@ function renderList() { renderCommandsList(); } +// The action the footer describes: the current selection resolved through the active list/fav bar. +function currentDetailAction() { + if (phase !== "commands") return null; + var id = selectedActionId(sel, currentList(), currentVisibleFavs()); + return id ? byId(id) : null; +} + +// Footer detail strip: the selected action's description plus, when it has a wiki page, a link that +// opens it (same path as F1). Shown only when the highlighted action has something to say, so +// selecting a command with no description hides the strip. +function renderDetail() { + if (!detailEl) return; + var a = currentDetailAction(); + var show = phase === "commands" && actionHasDetail(a); + detailEl.hidden = !show; + detailEl.innerHTML = ""; + if (!show) return; + if (a && a.desc) { + var desc = document.createElement("div"); + desc.className = "detail-desc"; + desc.textContent = a.desc; + detailEl.appendChild(desc); + } + if (a && a.wiki) { + var link = document.createElement("button"); + link.type = "button"; + link.className = "detail-wiki"; + link.textContent = T("sd_wiki", "Wiki") + " (F1)"; + link.onclick = function (ev) { ev.stopPropagation(); SendMessage({ command: "open_wiki", id: a.id }); }; + detailEl.appendChild(link); + } +} + function render(opts) { renderFav(); renderList(); + renderDetail(); // Pin toggles don't move the selection, so they pass keepScroll to avoid snapping the list // back to a row that is currently off-screen. if (!(opts && opts.keepScroll)) @@ -1148,7 +1188,7 @@ function focusInput() { setTimeout(function () { if (qEl) qEl.focus(); }, 0); } // ---- init -------------------------------------------------------------------- function OnInit() { - qEl = $("q"); listEl = $("list"); favEl = $("favBar"); clearEl = $("clear"); eyeEl = $("favEyebrow"); countEl = $("count"); + qEl = $("q"); listEl = $("list"); favEl = $("favBar"); clearEl = $("clear"); eyeEl = $("favEyebrow"); countEl = $("count"); detailEl = $("detail"); // text.js's TranslatePage() targets jQuery `.trans` nodes; this page has none and defines its own // `$`, so don't call it. Runtime strings go through T() instead. qEl.placeholder = T("sd_search", "Search actions"); @@ -1187,6 +1227,15 @@ function OnInit() { document.addEventListener("keydown", function (e) { if (favMenuEl && !favMenuEl.hidden && e.key === "Escape") { e.preventDefault(); hideFavMenu(); return; } + // F1 opens the selected setting's wiki page. Settings without one flash a hint instead. + if (e.key === "F1") { + e.preventDefault(); + if (phase !== "commands") return; + var help = currentDetailAction(); + if (actionHasWiki(help)) SendMessage({ command: "open_wiki", id: help.id }); + else flashHint(T("sd_no_wiki", "No wiki page for this action")); + return; + } // Pin/unpin the highlighted action: Ctrl/Cmd+B. Commands phase only (tabs/percent aren't pinnable). if (phase === "commands" && (e.ctrlKey || e.metaKey) && !e.altKey && !e.shiftKey && e.key.toLowerCase() === "b") { diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 85a0bcd064..38f7c343ae 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -334,4 +334,20 @@ assert.equal(ctx.searchActions(modePool, "retraction")[0].id, "a3", assert.equal(ctx.searchActions([{ id: "both", title: "Advanced", source: "Quality", group: "", mode: "advanced" }], "advanced").length, 1, "a setting that both matches text and requires the mode appears exactly once"); +// actionHasWiki: the footer's wiki link/F1 path is offered only when the action carries a wiki flag. +assert.equal(ctx.actionHasWiki({ id: "x", wiki: true }), true, "a wiki-flagged setting offers the wiki action"); +assert.equal(ctx.actionHasWiki({ id: "x", wiki: false }), false, "a setting without a wiki path offers nothing"); +assert.equal(ctx.actionHasWiki({ id: "x" }), false, "a missing wiki field offers nothing"); +assert.equal(ctx.actionHasWiki(null), false, "no action selected offers nothing"); + +// actionHasDetail: the footer strip appears only when the highlighted action has a description or +// wiki link; selecting a plain command hides it. +assert.equal(ctx.actionHasDetail({ id: "a", desc: "Layer height" }), true, "a description shows the footer"); +assert.equal(ctx.actionHasDetail({ id: "a", wiki: true }), true, "a wiki link shows the footer"); +assert.equal(ctx.actionHasDetail({ id: "a", desc: "Layer height", wiki: true }), true, "both show the footer"); +assert.equal(ctx.actionHasDetail({ id: "a", desc: "" }), false, "an empty description hides the footer"); +assert.equal(ctx.actionHasDetail({ id: "a", desc: "", wiki: false }), false, "empty description and false wiki hide the footer"); +assert.equal(ctx.actionHasDetail({ id: "a" }), false, "an action with neither hides the footer"); +assert.equal(ctx.actionHasDetail(null), false, "no selected action hides the footer"); + console.log("ok"); diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index c9532d8dab..8afc33d98c 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -436,3 +436,48 @@ body { color: var(--muted, var(--orca-muted, #6b7280)); text-align: center; } + +/* Footer detail strip: the selected action's description plus its wiki link. Auto-sizes to the + content; the description is clamped below. */ +.dial-detail { + flex: 0 0 auto; + display: flex; + align-items: center; + gap: 10px; + padding: 8px 12px; + border-top: 1px solid var(--border, var(--orca-border, #ddd)); + overflow: hidden; +} + +.dial-detail[hidden] { + display: none; +} + +.detail-desc { + flex: 1 1 auto; + min-width: 0; + font-size: 11px; + line-height: 1.4; + color: var(--muted, var(--orca-muted, #6b7280)); + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; + overflow: hidden; + overflow-wrap: anywhere; +} + +.detail-wiki { + flex: 0 0 auto; + border: 0; + padding: 0; + background: transparent; + font: inherit; + font-size: 11px; + color: var(--main-color, var(--orca-accent, #009688)); + cursor: pointer; + white-space: nowrap; +} + +.detail-wiki:hover { + text-decoration: underline; +} diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index fb98b96a17..3770d6fb68 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -6,6 +6,7 @@ #include "MainFrame.hpp" #include "NativeCommands.hpp" #include "Notebook.hpp" +#include "OptionsGroup.hpp" #include "Plater.hpp" #include "Search.hpp" #include "Tab.hpp" @@ -571,6 +572,11 @@ void ActionRegistry::materialize_setting_actions() } } + // Footer description + wiki affordance; only settings whose row declared a wiki path have one. + action->tooltip = opt.tooltip; + if (!opt.wiki_path.empty()) + action->help_url = into_u8(OptionsGroup::get_url(opt.wiki_path)); + seed_from(stats, favs, id, *action); auto const action_id = action->id(); auto const app_action = std::shared_ptr<AppAction>(std::move(action)); @@ -723,7 +729,9 @@ nlohmann::json ActionRegistry::snapshot() {"kind", a->kind == AppActionKind::Plugin ? "plugin" : "command"}, {"input", a->input}, {"icon", a->icon}, - {"mode", mode_key(a->required_mode)}}); + {"mode", mode_key(a->required_mode)}, + {"desc", a->tooltip}, + {"wiki", !a->help_url.empty()}}); }; nlohmann::json actions = nlohmann::json::array(); diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index 3c71317eed..026e1bcee5 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -83,6 +83,10 @@ struct AppAction // Settings mode required to edit this action (SettingActions only). The palette prompts before // running an action whose mode is above the user's current mode. comSimple for everything else. ConfigOptionMode required_mode = comSimple; + // Description shown in the Speed Dial's footer strip (SettingActions: the localized tooltip). + std::string tooltip; + // Full wiki URL, when the action has one (SettingActions whose row declared a label_path). + std::string help_url; virtual ~AppAction() = default; // Re-resolves + runs (UI thread). `param` carries an optional per-run argument for diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index 9930e6d872..2fc41ba90b 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -244,6 +244,12 @@ void OptionsGroup::append_line(const Line& line) { m_lines.emplace_back(line); + // Record each option's wiki path (Line::label_path) so the Speed Dial can offer an "open wiki" + // affordance for it. Settings tabs only; the searcher already exists by the time tabs are built. + if (m_use_custom_ctrl && !line.label_path.empty()) + for (const auto& opt : line.get_options()) + wxGetApp().sidebar().get_searcher().set_path(opt.opt_id, static_cast<Preset::Type>(config_type()), line.label_path); + if (line.full_width && (line.widget != nullptr || !line.get_extra_widgets().empty())) return; diff --git a/src/slic3r/GUI/OptionsGroup.hpp b/src/slic3r/GUI/OptionsGroup.hpp index b20d16aca9..921ac62f15 100644 --- a/src/slic3r/GUI/OptionsGroup.hpp +++ b/src/slic3r/GUI/OptionsGroup.hpp @@ -250,6 +250,10 @@ protected: virtual void back_to_initial_value(const std::string& opt_key) {} virtual void back_to_sys_value(const std::string& opt_key) {} + // Preset::Type of a settings group; -1 for groups not tied to a preset. Used by append_line to + // register each option's wiki path with the searcher. Overridden by ConfigOptionsGroup. + virtual int config_type() const { return -1; } + public: static wxString get_url(const std::string& path_end); static bool launch_browser(const std::string& path_end); @@ -273,7 +277,7 @@ public: OptionsGroup(parent, wxEmptyString, wxEmptyString, true, nullptr) {} const wxString& config_category() const throw() { return m_config_category; } - int config_type() const throw() { return m_config_type; } + int config_type() const throw() override { return m_config_type; } const t_opt_map& opt_map() const throw() { return m_opt_map; } void set_config_category_and_type(const wxString &category, int type) { m_config_category = category; m_config_type = type; } diff --git a/src/slic3r/GUI/Search.cpp b/src/slic3r/GUI/Search.cpp index 16ec2051a9..916d93a40c 100644 --- a/src/slic3r/GUI/Search.cpp +++ b/src/slic3r/GUI/Search.cpp @@ -85,7 +85,7 @@ static std::string get_key(const std::string &opt_key, Preset::Type type) { retu void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode) { - auto emplace = [this, type](std::vector<Option> &dst, const std::string &key, const wxString &label, ConfigOptionMode opt_mode) { + auto emplace = [this, type](std::vector<Option> &dst, const std::string &key, const wxString &label, ConfigOptionMode opt_mode, std::string tooltip) { const GroupAndCategory &gc = groups_and_categories[key]; if (gc.group.IsEmpty() || gc.category.IsEmpty()) return; @@ -101,7 +101,7 @@ void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type ty if (!label.IsEmpty()) dst.emplace_back(Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(), gc.group.ToStdWstring(), _(gc.group).ToStdWstring(), into_u8(gc.icon), gc.category.ToStdWstring(), GUI::Tab::translate_category(gc.category, type).ToStdWstring(), - false, opt_mode}); + false, opt_mode, std::move(tooltip), gc.path}); }; for (std::string opt_key : config->keys()) { @@ -131,8 +131,8 @@ void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type ty std::string key = get_key(opt_key, type); auto add = [&](const std::string &k) { if (in_filtered) - emplace(options, k, label, opt.mode); - emplace(options_all_modes, k, label, opt.mode); + emplace(options, k, label, opt.mode, into_u8(_(opt.tooltip))); + emplace(options_all_modes, k, label, opt.mode, into_u8(_(opt.tooltip))); }; if (cnt == 0) add(key); @@ -459,7 +459,19 @@ void OptionsSearcher::dlg_msw_rescale() void OptionsSearcher::add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, const wxString &icon) { - groups_and_categories[get_key(opt_key, type)] = GroupAndCategory{group, category, icon}; + // Update fields in place so a page rebuild (get_option after set_path) doesn't drop the + // previously recorded wiki path. + GroupAndCategory &gc = groups_and_categories[get_key(opt_key, type)]; + gc.group = group; + gc.category = category; + gc.icon = icon; +} + +void OptionsSearcher::set_path(const std::string &opt_key, Preset::Type type, const std::string &path) +{ + if (path.empty()) + return; + groups_and_categories[get_key(opt_key, type)].path = path; } //------------------------------------------ // SearchItem diff --git a/src/slic3r/GUI/Search.hpp b/src/slic3r/GUI/Search.hpp index bf2441e15c..3cec0ba8c2 100644 --- a/src/slic3r/GUI/Search.hpp +++ b/src/slic3r/GUI/Search.hpp @@ -46,6 +46,7 @@ struct GroupAndCategory wxString group; wxString category; wxString icon; // icon of the group's own header, or empty + std::string path; // wiki path (Line::label_path) of the option's line, or empty }; struct Option @@ -66,6 +67,8 @@ struct Option std::wstring category_local; bool multi_category { false }; ConfigOptionMode mode{comSimple}; // option's visibility threshold; drives the Speed Dial's mode prompt + std::string tooltip; // localized ConfigOptionDef::tooltip, or empty + std::string wiki_path; // Line::label_path for the option's row, or empty std::string opt_key() const; }; @@ -133,6 +136,10 @@ public: void add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, const wxString &icon = wxEmptyString); + // Records the wiki path of an option's row (Line::label_path) so the Speed Dial can offer a + // "open wiki" affordance. Empty paths are ignored. + void set_path(const std::string &opt_key, Preset::Type type, const std::string &path); + size_t size() const { return found_size(); } const FoundOption &operator[](const size_t pos) const noexcept { return found[pos]; } diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index af079d48e4..e8dc321555 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -14,6 +14,7 @@ #include <wx/display.h> #include <wx/sizer.h> #include <wx/stattext.h> +#include <wx/utils.h> #ifdef __linux__ #include <gtk/gtk.h> @@ -152,6 +153,8 @@ void SpeedDialWebDialog::handle_web_command(const nlohmann::json& payload) wxGetApp().action_registry().reorder_favourites(ids); } else if (command == "run_action") run_action(payload.value("id", ""), payload.value("title", ""), payload.value("param", "")); + else if (command == "open_wiki") + open_wiki(payload.value("id", "")); else if (command == "search_tabs") search_tabs(); else if (command == "resize") @@ -253,6 +256,15 @@ void SpeedDialWebDialog::run_action(const std::string& id, const std::string& ti }); } +void SpeedDialWebDialog::open_wiki(const std::string& id) +{ + const AppAction* a = wxGetApp().action_registry().by_id(id); + if (!a || a->help_url.empty()) + return; + Hide(); + wxLaunchDefaultBrowser(from_u8(a->help_url)); +} + void SpeedDialWebDialog::send_actions() { nlohmann::json snap = wxGetApp().action_registry().snapshot(); diff --git a/src/slic3r/GUI/SpeedDialDialog.hpp b/src/slic3r/GUI/SpeedDialDialog.hpp index 26734dd841..98a32674a5 100644 --- a/src/slic3r/GUI/SpeedDialDialog.hpp +++ b/src/slic3r/GUI/SpeedDialDialog.hpp @@ -21,6 +21,7 @@ private: void handle_web_command(const nlohmann::json& payload); void resize_to_content(int height); void run_action(const std::string& id, const std::string& title, const std::string& param = ""); + void open_wiki(const std::string& id); void send_actions(); void search_tabs(); diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 02e5205fe6..1743f09ab3 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -105,6 +105,21 @@ TEST_CASE("Command action construction keys by catalog key", "[ActionSource][Spe CHECK(action->icon == c.icon); } +// The footer description/wiki link is settings-only: built-in commands leave both fields empty, so +// the palette's detail strip depends on list-level visibility for them. +TEST_CASE("Actions default to no description or wiki link", "[ActionSource][SpeedDial]") +{ + const TestAppAction action; + CHECK(action.tooltip.empty()); + CHECK(action.help_url.empty()); + + REQUIRE_FALSE(Slic3r::GUI::NativeCommands::catalog().empty()); + std::unique_ptr<AppAction> command = Slic3r::GUI::NativeCommands::make_action(Slic3r::GUI::NativeCommands::catalog().front()); + REQUIRE(command != nullptr); + CHECK(command->tooltip.empty()); + CHECK(command->help_url.empty()); +} + // Two-phase commands declare the input the palette must collect before they can run. TEST_CASE("Two-phase commands declare their input phase", "[ActionSource][SpeedDial]") { From 966e029b958deb61d07c16f3ff81f3156781248c Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Fri, 11 Sep 2026 17:15:57 +0800 Subject: [PATCH 20/76] Code refactoring for better maintainability --- localization/i18n/OrcaSlicer.pot | 24 +- localization/i18n/ca/OrcaSlicer_ca.po | 33 ++- localization/i18n/cs/OrcaSlicer_cs.po | 33 ++- localization/i18n/de/OrcaSlicer_de.po | 33 ++- localization/i18n/en/OrcaSlicer_en.po | 24 +- localization/i18n/es/OrcaSlicer_es.po | 29 ++- localization/i18n/eu/OrcaSlicer_eu.po | 29 ++- localization/i18n/fr/OrcaSlicer_fr.po | 33 ++- localization/i18n/hu/OrcaSlicer_hu.po | 33 ++- localization/i18n/it/OrcaSlicer_it.po | 33 ++- localization/i18n/ja/OrcaSlicer_ja.po | 33 ++- localization/i18n/ko/OrcaSlicer_ko.po | 33 ++- localization/i18n/list.txt | 1 + localization/i18n/lt/OrcaSlicer_lt.po | 33 ++- localization/i18n/nl/OrcaSlicer_nl.po | 33 ++- localization/i18n/pl/OrcaSlicer_pl.po | 33 ++- localization/i18n/pt_BR/OrcaSlicer_pt_BR.po | 29 ++- localization/i18n/ru/OrcaSlicer_ru.po | 29 ++- localization/i18n/sv/OrcaSlicer_sv.po | 33 ++- localization/i18n/th/OrcaSlicer_th.po | 33 ++- localization/i18n/tr/OrcaSlicer_tr.po | 33 ++- localization/i18n/uk/OrcaSlicer_uk.po | 33 ++- localization/i18n/vi/OrcaSlicer_vi.po | 33 ++- localization/i18n/zh_CN/OrcaSlicer_zh_CN.po | 33 ++- localization/i18n/zh_TW/OrcaSlicer_zh_TW.po | 33 ++- src/slic3r/CMakeLists.txt | 2 + src/slic3r/GUI/ActionRegistry.cpp | 8 +- src/slic3r/GUI/OptionsGroup.cpp | 4 +- src/slic3r/GUI/Plater.cpp | 5 + src/slic3r/GUI/Plater.hpp | 1 + src/slic3r/GUI/Search.cpp | 219 +------------------ src/slic3r/GUI/Search.hpp | 82 +------ src/slic3r/GUI/SettingsIndex.cpp | 229 ++++++++++++++++++++ src/slic3r/GUI/SettingsIndex.hpp | 98 +++++++++ src/slic3r/GUI/Tab.cpp | 16 +- src/slic3r/GUI/UnsavedChangesDialog.cpp | 32 +-- 36 files changed, 938 insertions(+), 517 deletions(-) create mode 100644 src/slic3r/GUI/SettingsIndex.cpp create mode 100644 src/slic3r/GUI/SettingsIndex.hpp diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index 15768b24ea..0f51cef7e9 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\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" @@ -5035,16 +5035,13 @@ msgstr "" msgid "System agents" msgstr "" -msgid "No plugin selected" -msgstr "" - msgid "Add plugin" msgstr "" -msgid "Select plugin" +msgid "Remove plugin" msgstr "" -msgid "Remove plugin" +msgid "No plugin selected" msgstr "" msgid "Configure" @@ -7197,6 +7194,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + msgid "Plugin Selection" msgstr "" @@ -8591,6 +8594,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "" diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index d121446844..9c0d0da8a9 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2025-03-15 10:55+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -5473,22 +5473,18 @@ msgstr "Format no vàlid. Format vectorial esperat: \"%1%\"" msgid "System agents" msgstr "Agents del sistema" -# AI Translated -msgid "No plugin selected" -msgstr "Cap connector seleccionat" - # AI Translated msgid "Add plugin" msgstr "Afegir connector" -# AI Translated -msgid "Select plugin" -msgstr "Seleccionar connector" - # AI Translated msgid "Remove plugin" msgstr "Eliminar connector" +# AI Translated +msgid "No plugin selected" +msgstr "Cap connector seleccionat" + # AI Translated msgid "Configure" msgstr "Configurar" @@ -7723,6 +7719,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Inferior" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Selecció de connectors" @@ -9259,6 +9261,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Finestra emergent per seleccionar el mode d'agrupació de filaments" @@ -22233,6 +22244,10 @@ msgstr "" "Evitar la deformació( warping )\n" "Sabíeu que quan imprimiu materials propensos a deformar-se, com ara l'ABS, augmentar adequadament la temperatura del llit pot reduir la probabilitat de deformació?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Seleccionar connector" + #~ msgid "Select the language" #~ msgstr "Seleccioneu l'idioma" diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index 0fee4eedd1..63b362970a 100644 --- a/localization/i18n/cs/OrcaSlicer_cs.po +++ b/localization/i18n/cs/OrcaSlicer_cs.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: Jakub Hencl\n" "Language-Team: \n" @@ -5430,22 +5430,18 @@ msgstr "Neplatný formát. Očekávaný vektorový formát: \"%1%\"" msgid "System agents" msgstr "Systémoví agenti" -# AI Translated -msgid "No plugin selected" -msgstr "Není vybrán žádný plugin" - # AI Translated msgid "Add plugin" msgstr "Přidat plugin" -# AI Translated -msgid "Select plugin" -msgstr "Vybrat plugin" - # AI Translated msgid "Remove plugin" msgstr "Odebrat plugin" +# AI Translated +msgid "No plugin selected" +msgstr "Není vybrán žádný plugin" + # AI Translated msgid "Configure" msgstr "Konfigurovat" @@ -7690,6 +7686,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Spodní" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Výběr pluginů" @@ -9213,6 +9215,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Zobrazit dialog pro výběr režimu seskupení filamentů" @@ -22214,6 +22225,10 @@ msgstr "" "Zamezte kroucení\n" "Víte, že při tisku materiálů náchylných ke kroucení, jako je ABS, může vhodné zvýšení teploty vyhřívané desky snížit pravděpodobnost kroucení?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Vybrat plugin" + #~ msgid "Select the language" #~ msgstr "Zvolte jazyk" diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index 8b61d9e08d..8d7798eb80 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: Heiko Liebscher <hliebschergmail.com>\n" "Language-Team: \n" @@ -5335,22 +5335,18 @@ msgstr "Ungültiges Format. Erwartetes Vektorformat: \"%1%\"" msgid "System agents" msgstr "Systemagenten" -# AI Translated -msgid "No plugin selected" -msgstr "Kein Plugin ausgewählt" - # AI Translated msgid "Add plugin" msgstr "Plugin hinzufügen" -# AI Translated -msgid "Select plugin" -msgstr "Plugin auswählen" - # AI Translated msgid "Remove plugin" msgstr "Plugin entfernen" +# AI Translated +msgid "No plugin selected" +msgstr "Kein Plugin ausgewählt" + # AI Translated msgid "Configure" msgstr "Konfigurieren" @@ -7560,6 +7556,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Untere" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Plugin-Auswahl" @@ -9084,6 +9086,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Popup zum Auswählen des Filament-Gruppierungsmodus" @@ -21634,6 +21645,10 @@ msgstr "" "Verwerfungen vermeiden\n" "Wussten Sie, dass beim Drucken von Materialien, die zu Verwerfungen neigen, wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die Wahrscheinlichkeit von Verwerfungen verringert werden kann?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Plugin auswählen" + #~ msgid "Select the language" #~ msgstr "Sprache wählen" diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index 0cdadcb5d3..cc044e6286 100644 --- a/localization/i18n/en/OrcaSlicer_en.po +++ b/localization/i18n/en/OrcaSlicer_en.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2026-06-17 15:44-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: \n" @@ -5031,16 +5031,13 @@ msgstr "" msgid "System agents" msgstr "" -msgid "No plugin selected" -msgstr "" - msgid "Add plugin" msgstr "" -msgid "Select plugin" +msgid "Remove plugin" msgstr "" -msgid "Remove plugin" +msgid "No plugin selected" msgstr "" msgid "Configure" @@ -7193,6 +7190,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + msgid "Plugin Selection" msgstr "" @@ -8587,6 +8590,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "" diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index 9ea245a1bd..ee2214ed85 100644 --- a/localization/i18n/es/OrcaSlicer_es.po +++ b/localization/i18n/es/OrcaSlicer_es.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: Ian A. Bassi <>\n" "Language-Team: \n" @@ -5198,18 +5198,15 @@ msgstr "Formato inválido. Formato de vector esperado: \"%1%\"" msgid "System agents" msgstr "Agentes del sistema" -msgid "No plugin selected" -msgstr "Ningún plugin seleccionado" - msgid "Add plugin" msgstr "Añadir plugin" -msgid "Select plugin" -msgstr "Seleccionar plugin" - msgid "Remove plugin" msgstr "Eliminar plugin" +msgid "No plugin selected" +msgstr "Ningún plugin seleccionado" + msgid "Configure" msgstr "Configurar" @@ -7405,6 +7402,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Inferior" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + msgid "Plugin Selection" msgstr "Selección de plugins" @@ -8851,6 +8854,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Ventana emergente para seleccionar el modo de agrupación de filamentos" @@ -21180,6 +21192,9 @@ 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 "Select plugin" +#~ msgstr "Seleccionar plugin" + #~ msgid "Select the language" #~ msgstr "Seleccionar el idioma" diff --git a/localization/i18n/eu/OrcaSlicer_eu.po b/localization/i18n/eu/OrcaSlicer_eu.po index 558c1a80dc..4488f05951 100644 --- a/localization/i18n/eu/OrcaSlicer_eu.po +++ b/localization/i18n/eu/OrcaSlicer_eu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2026-07-20 13:33+0200\n" "Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n" "Language-Team: \n" @@ -5247,18 +5247,15 @@ msgstr "Formatuak ez du balio. Espero den formatu bektoriala: \"%1%\"" msgid "System agents" msgstr "Sistema-agenteak" -msgid "No plugin selected" -msgstr "Ez da pluginik hautatu" - msgid "Add plugin" msgstr "Gehitu plugina" -msgid "Select plugin" -msgstr "Hautatu plugina" - msgid "Remove plugin" msgstr "Kendu plugina" +msgid "No plugin selected" +msgstr "Ez da pluginik hautatu" + msgid "Configure" msgstr "Konfiguratu" @@ -7452,6 +7449,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Behea" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + msgid "Plugin Selection" msgstr "Plugin-hautaketa" @@ -8932,6 +8935,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Erakutsi filamentuak taldekatzeko modua hautatzeko leihoa" @@ -21367,6 +21379,9 @@ msgstr "" "Saihestu okertzea\n" "Ba al zenekien ABS bezalako okertzeko joera duten materialak inprimatzean ohe beroaren tenperatura egoki igotzeak okertzeko probabilitatea murriztu dezakeela?" +#~ msgid "Select plugin" +#~ msgstr "Hautatu plugina" + #~ msgid "Select the language" #~ msgstr "Hautatu hizkuntza" diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index aaac6d576a..156e639fde 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Guislain Cyril, Thomas Lété\n" @@ -5285,22 +5285,18 @@ msgstr "Format invalide. Format vectoriel attendu : \"%1%\"" msgid "System agents" msgstr "Agents système" -# AI Translated -msgid "No plugin selected" -msgstr "Aucun plugin sélectionné" - # AI Translated msgid "Add plugin" msgstr "Ajouter un plugin" -# AI Translated -msgid "Select plugin" -msgstr "Sélectionner un plugin" - # AI Translated msgid "Remove plugin" msgstr "Supprimer le plugin" +# AI Translated +msgid "No plugin selected" +msgstr "Aucun plugin sélectionné" + # AI Translated msgid "Configure" msgstr "Configurer" @@ -7503,6 +7499,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Inférieur" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Sélection des plugins" @@ -9000,6 +9002,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Fenêtre contextuelle pour sélectionner le mode de regroupement des filaments" @@ -21524,6 +21535,10 @@ msgstr "" "Éviter la déformation\n" "Saviez-vous que lors de l’impression de matériaux susceptibles de se déformer, tels que l’ABS, une augmentation appropriée de la température du plateau chauffant peut réduire la probabilité de déformation?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Sélectionner un plugin" + #~ msgid "Select the language" #~ msgstr "Sélectionner la langue" diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index f92b87a246..2514284794 100644 --- a/localization/i18n/hu/OrcaSlicer_hu.po +++ b/localization/i18n/hu/OrcaSlicer_hu.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5382,22 +5382,18 @@ msgstr "Érvénytelen formátum. Elvárt vektor formátum: \"%1%\"" msgid "System agents" msgstr "Rendszerügynökök" -# AI Translated -msgid "No plugin selected" -msgstr "Nincs kiválasztott bővítmény" - # AI Translated msgid "Add plugin" msgstr "Bővítmény hozzáadása" -# AI Translated -msgid "Select plugin" -msgstr "Bővítmény kiválasztása" - # AI Translated msgid "Remove plugin" msgstr "Bővítmény eltávolítása" +# AI Translated +msgid "No plugin selected" +msgstr "Nincs kiválasztott bővítmény" + # AI Translated msgid "Configure" msgstr "Konfigurálás" @@ -7617,6 +7613,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Alsó" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Bővítmény kiválasztása" @@ -9136,6 +9138,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Felugró ablak a filamentcsoportosítási mód kiválasztásához" @@ -21955,6 +21966,10 @@ msgstr "" "Kunkorodás elkerülése\n" "Tudtad, hogy a kunkorodásra hajlamos anyagok (például ABS) nyomtatásakor az asztal hőmérsékletének növelése csökkentheti a kunkorodás valószínűségét?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Bővítmény kiválasztása" + #~ msgid "Select the language" #~ msgstr "Válaszd ki a nyelvet" diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index 814c2b627d..d4db3efbfd 100644 --- a/localization/i18n/it/OrcaSlicer_it.po +++ b/localization/i18n/it/OrcaSlicer_it.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -5383,22 +5383,18 @@ msgstr "Formato non valido. Formato vettoriale previsto: \"%1%\"" msgid "System agents" msgstr "Agenti di sistema" -# AI Translated -msgid "No plugin selected" -msgstr "Nessun plugin selezionato" - # AI Translated msgid "Add plugin" msgstr "Aggiungi plugin" -# AI Translated -msgid "Select plugin" -msgstr "Seleziona plugin" - # AI Translated msgid "Remove plugin" msgstr "Rimuovi plugin" +# AI Translated +msgid "No plugin selected" +msgstr "Nessun plugin selezionato" + # AI Translated msgid "Configure" msgstr "Configura" @@ -7621,6 +7617,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Inferiore" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Selezione plugin" @@ -9138,6 +9140,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Popup per selezionare la modalità di raggruppamento filamenti" @@ -21979,6 +21990,10 @@ msgstr "" "Evita le deformazioni\n" "Sapevi che quando si stampano materiali soggetti a deformazioni come l'ABS, aumentare in modo appropriato la temperatura del piano riscaldato può ridurre la probabilità di deformazione?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Seleziona plugin" + #~ msgid "Select the language" #~ msgstr "Seleziona la lingua" diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index c170f2f6c1..d9cd604979 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -5396,22 +5396,18 @@ msgstr "無効なフォーマット、%1%であるはずです。" msgid "System agents" msgstr "システムエージェント" -# AI Translated -msgid "No plugin selected" -msgstr "プラグインが選択されていません" - # AI Translated msgid "Add plugin" msgstr "プラグインを追加" -# AI Translated -msgid "Select plugin" -msgstr "プラグインを選択" - # AI Translated msgid "Remove plugin" msgstr "プラグインを削除" +# AI Translated +msgid "No plugin selected" +msgstr "プラグインが選択されていません" + # AI Translated msgid "Configure" msgstr "設定" @@ -7627,6 +7623,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "底面" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "プラグインの選択" @@ -9158,6 +9160,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "フィラメントグルーピングモード選択のポップアップ" @@ -22534,6 +22545,10 @@ msgstr "" "反りを避ける\n" "ABSのような反りやすい素材を印刷する場合、ヒートベッドの温度を適切に上げることで、反りが発生する確率を下げることができることをご存知ですか?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "プラグインを選択" + #~ msgid "Select the language" #~ msgstr "言語を選択" diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index 2e883a3f99..3ada1afc50 100644 --- a/localization/i18n/ko/OrcaSlicer_ko.po +++ b/localization/i18n/ko/OrcaSlicer_ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2025-06-02 17:12+0900\n" "Last-Translator: crwusiz <crwusiz@gmail.com>\n" "Language-Team: \n" @@ -5408,22 +5408,18 @@ msgstr "잘못된 형식입니다. 필요한 벡터 형식: \"%1%\"" msgid "System agents" msgstr "시스템 에이전트" -# AI Translated -msgid "No plugin selected" -msgstr "선택된 플러그인 없음" - # AI Translated msgid "Add plugin" msgstr "플러그인 추가" -# AI Translated -msgid "Select plugin" -msgstr "플러그인 선택" - # AI Translated msgid "Remove plugin" msgstr "플러그인 제거" +# AI Translated +msgid "No plugin selected" +msgstr "선택된 플러그인 없음" + # AI Translated msgid "Configure" msgstr "구성" @@ -7640,6 +7636,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "하부" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "플러그인 선택" @@ -9220,6 +9222,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "필라멘트 그룹화 모드를 선택하기 위한 팝업" @@ -22401,6 +22412,10 @@ msgstr "" "뒤틀림 방지\n" "ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "플러그인 선택" + #~ msgid "Select the language" #~ msgstr "언어 선택" diff --git a/localization/i18n/list.txt b/localization/i18n/list.txt index a36ecd5cab..13be57a17e 100644 --- a/localization/i18n/list.txt +++ b/localization/i18n/list.txt @@ -179,6 +179,7 @@ src/slic3r/GUI/PublishDialog.cpp src/slic3r/GUI/PublishSettingsDialog.cpp src/slic3r/GUI/SavePresetDialog.cpp src/slic3r/GUI/Search.cpp +src/slic3r/GUI/SettingsIndex.cpp src/slic3r/GUI/Selection.cpp src/slic3r/GUI/SelectMachine.cpp src/slic3r/GUI/PrePrintChecker.cpp diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po index 6a642229f8..4ccc073ffc 100644 --- a/localization/i18n/lt/OrcaSlicer_lt.po +++ b/localization/i18n/lt/OrcaSlicer_lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2026-07-02 14:13+0300\n" "Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n" "Language-Team: \n" @@ -5369,22 +5369,18 @@ msgstr "Netinkamas formatas. Tinkamas vektorinis formatas: \"%1%\"" msgid "System agents" msgstr "Sisteminiai agentai" -# AI Translated -msgid "No plugin selected" -msgstr "Nepasirinktas joks papildinys" - # AI Translated msgid "Add plugin" msgstr "Pridėti papildinį" -# AI Translated -msgid "Select plugin" -msgstr "Pasirinkti papildinį" - # AI Translated msgid "Remove plugin" msgstr "Pašalinti papildinį" +# AI Translated +msgid "No plugin selected" +msgstr "Nepasirinktas joks papildinys" + # AI Translated msgid "Configure" msgstr "Konfigūruoti" @@ -7604,6 +7600,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Apatinis" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Papildinio pasirinkimas" @@ -9119,6 +9121,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Iššokantis langas gijų grupavimo režimui pasirinkti" @@ -21681,6 +21692,10 @@ msgstr "" "Venkite deformacijų (warping)\n" "Ar žinojote, kad spausdinant medžiagas, kurios yra linkusios trauktis ir riestis (pvz., ABS), tinkamas kaitinamojo pagrindo temperatūros padidinimas gali sumažinti deformacijų (warping) tikimybę?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Pasirinkti papildinį" + #~ msgid "Select the language" #~ msgstr "Pasirinkite kalbą" diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index bcf29ef0ea..f056bb73e2 100644 --- a/localization/i18n/nl/OrcaSlicer_nl.po +++ b/localization/i18n/nl/OrcaSlicer_nl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -5878,22 +5878,18 @@ msgstr "Onjuist formaat. Het Vector formaat wordt verwacht: \"%1%\"" msgid "System agents" msgstr "Systeemagenten" -# AI Translated -msgid "No plugin selected" -msgstr "Geen plug-in geselecteerd" - # AI Translated msgid "Add plugin" msgstr "Plug-in toevoegen" -# AI Translated -msgid "Select plugin" -msgstr "Plug-in selecteren" - # AI Translated msgid "Remove plugin" msgstr "Plug-in verwijderen" +# AI Translated +msgid "No plugin selected" +msgstr "Geen plug-in geselecteerd" + # AI Translated msgid "Configure" msgstr "Configureren" @@ -8292,6 +8288,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Onderste" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Plug-inselectie" @@ -9969,6 +9971,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + # AI Translated msgid "Pop up to select filament grouping mode" msgstr "Pop-up om de filamentgroeperingsmodus te kiezen" @@ -24121,6 +24132,10 @@ msgstr "" "Kromtrekken voorkomen\n" "Wist je dat bij het printen van materialen die gevoelig zijn voor kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het warmtebed de kans op kromtrekken kan verkleinen?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Plug-in selecteren" + #~ msgid "Select the language" #~ msgstr "Kies de taal" diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index 880d786d5e..c3a0c934ee 100644 --- a/localization/i18n/pl/OrcaSlicer_pl.po +++ b/localization/i18n/pl/OrcaSlicer_pl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer 2.3.0-rc\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: \n" "Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\n" "Language-Team: \n" @@ -5498,22 +5498,18 @@ msgstr "Nieprawidłowy format. Oczekiwano formatu wektorowego: „%1%”" msgid "System agents" msgstr "Agenci systemowi" -# AI Translated -msgid "No plugin selected" -msgstr "Nie wybrano wtyczki" - # AI Translated msgid "Add plugin" msgstr "Dodaj wtyczkę" -# AI Translated -msgid "Select plugin" -msgstr "Wybierz wtyczkę" - # AI Translated msgid "Remove plugin" msgstr "Usuń wtyczkę" +# AI Translated +msgid "No plugin selected" +msgstr "Nie wybrano wtyczki" + # AI Translated msgid "Configure" msgstr "Konfiguruj" @@ -7798,6 +7794,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Dół" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Wybór wtyczek" @@ -9375,6 +9377,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Okno dialogowe do wyboru trybu grupowania filamentów" @@ -22578,6 +22589,10 @@ msgstr "" "Unikaj odkształceń\n" "Czy wiesz, że podczas drukowania filamentami podatnymi na odkształcenia, takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może zmniejszyć prawdopodobieństwo odkształceń?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Wybierz wtyczkę" + #~ msgid "Select the language" #~ msgstr "Wybierz język" diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index 183c8f7088..86c240703b 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2026-07-26 11:14-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: Portuguese, Brazilian\n" @@ -5212,18 +5212,15 @@ msgstr "Formato inválido. Formato de vetor esperado: \"%1%\"" msgid "System agents" msgstr "Agentes do sistema" -msgid "No plugin selected" -msgstr "Nenhum plugin selecionado" - msgid "Add plugin" msgstr "Adicionar plugin" -msgid "Select plugin" -msgstr "Selecionar plugin" - msgid "Remove plugin" msgstr "Remover plugin" +msgid "No plugin selected" +msgstr "Nenhum plugin selecionado" + msgid "Configure" msgstr "Configurar" @@ -7423,6 +7420,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Inferior" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + msgid "Plugin Selection" msgstr "Seleção de plugins" @@ -8902,6 +8905,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Abrir seleção do modo de agrupamento de filamento" @@ -21292,6 +21304,9 @@ msgstr "" "Evitar empenamento\n" "Você sabia que ao imprimir materiais propensos ao empenamento como ABS, aumentar adequadamente a temperatura da mesa aquecida pode reduzir a probabilidade de empenamento?" +#~ msgid "Select plugin" +#~ msgstr "Selecionar plugin" + #~ msgid "Select the language" #~ msgstr "Selecione o idioma" diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index 8d1bf38c13..898a19609d 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer V2.5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2026-02-25 13:38+0300\n" "Last-Translator: Felix14_v2\n" "Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg <andylg@yandex.ru>\n" @@ -5378,18 +5378,15 @@ msgstr "Недопустимый формат. Ожидаемый векторн msgid "System agents" msgstr "Системные агенты" -msgid "No plugin selected" -msgstr "Плагины не выбраны" - msgid "Add plugin" msgstr "Добавить плагин" -msgid "Select plugin" -msgstr "Выбрать плагин" - msgid "Remove plugin" msgstr "Удалить плагин" +msgid "No plugin selected" +msgstr "Плагины не выбраны" + msgid "Configure" msgstr "Настроить" @@ -7681,6 +7678,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Снизу" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + msgid "Plugin Selection" msgstr "Выбор плагинов" @@ -9182,6 +9185,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + # Запрашивать выбор режима группировки? msgid "Pop up to select filament grouping mode" msgstr "Всплывающее окно для выбора режима группировки материалов" @@ -22331,6 +22343,9 @@ msgstr "" "Предотвращение коробления материала\n" "Знаете ли вы, что при печати материалами, склонными к короблению, таких как ABS, повышение температуры подогреваемого стола может снизить эту вероятность?" +#~ msgid "Select plugin" +#~ msgstr "Выбрать плагин" + #~ msgid "Select the language" #~ msgstr "Выбор языка" diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index e71aaaa56a..0477d1e69e 100644 --- a/localization/i18n/sv/OrcaSlicer_sv.po +++ b/localization/i18n/sv/OrcaSlicer_sv.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5954,22 +5954,18 @@ msgstr "Ogiltligt format. Förväntat vector format: \"%1%\"" msgid "System agents" msgstr "Systemagenter" -# AI Translated -msgid "No plugin selected" -msgstr "Ingen insticksmodul vald" - # AI Translated msgid "Add plugin" msgstr "Lägg till insticksmodul" -# AI Translated -msgid "Select plugin" -msgstr "Välj insticksmodul" - # AI Translated msgid "Remove plugin" msgstr "Ta bort insticksmodul" +# AI Translated +msgid "No plugin selected" +msgstr "Ingen insticksmodul vald" + # AI Translated msgid "Configure" msgstr "Konfigurera" @@ -8379,6 +8375,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Bottenlager" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Val av insticksmodul" @@ -10075,6 +10077,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + # AI Translated msgid "Pop up to select filament grouping mode" msgstr "Visa dialogruta för val av filamentgrupperingsläge" @@ -24409,6 +24420,10 @@ msgstr "" "Undvik vridning\n" "Visste du att när du skriver ut material som är benägna att vrida, såsom ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten för vridning?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Välj insticksmodul" + #~ msgid "Select the language" #~ msgstr "Välj språk" diff --git a/localization/i18n/th/OrcaSlicer_th.po b/localization/i18n/th/OrcaSlicer_th.po index 9c0bab2947..50f3e6b9f7 100644 --- a/localization/i18n/th/OrcaSlicer_th.po +++ b/localization/i18n/th/OrcaSlicer_th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2026-06-19 13:40+0700\n" "Last-Translator: Icezaza\n" "Language-Team: Thai\n" @@ -5363,22 +5363,18 @@ msgstr "รูปแบบไม่ถูกต้อง รูปแบบเ msgid "System agents" msgstr "เอเจนต์ระบบ" -# AI Translated -msgid "No plugin selected" -msgstr "ไม่ได้เลือกปลั๊กอิน" - # AI Translated msgid "Add plugin" msgstr "เพิ่มปลั๊กอิน" -# AI Translated -msgid "Select plugin" -msgstr "เลือกปลั๊กอิน" - # AI Translated msgid "Remove plugin" msgstr "ลบปลั๊กอิน" +# AI Translated +msgid "No plugin selected" +msgstr "ไม่ได้เลือกปลั๊กอิน" + # AI Translated msgid "Configure" msgstr "กำหนดค่า" @@ -7577,6 +7573,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "ล่าง" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "การเลือกปลั๊กอิน" @@ -9088,6 +9090,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "ปรากฏขึ้นเพื่อเลือกโหมดการจัดกลุ่มเส้นพลาสติก" @@ -21709,6 +21720,10 @@ msgstr "" "หลีกเลี่ยงการบิดเบี้ยว\n" "คุณรู้หรือไม่ว่าเมื่อพิมพ์วัสดุที่มีแนวโน้มที่จะเกิดการบิดเบี้ยว เช่น ABS การเพิ่มอุณหภูมิฐานพิมพ์อย่างเหมาะสมสามารถลดความน่าจะเป็นของการบิดเบี้ยวได้" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "เลือกปลั๊กอิน" + #~ msgid "Select the language" #~ msgstr "เลือกภาษา" diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index 864bd15610..56302c41ad 100644 --- a/localization/i18n/tr/OrcaSlicer_tr.po +++ b/localization/i18n/tr/OrcaSlicer_tr.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2026-08-21 23:18+0300\n" "Last-Translator: GlauTech\n" "Language-Team: \n" @@ -5426,22 +5426,18 @@ msgstr "Geçersiz format. Beklenen vektör formatı: \"%1%\"" msgid "System agents" msgstr "Sistem aracıları" -# AI Translated -msgid "No plugin selected" -msgstr "Eklenti seçilmedi" - # AI Translated msgid "Add plugin" msgstr "Eklenti ekle" -# AI Translated -msgid "Select plugin" -msgstr "Eklenti seç" - # AI Translated msgid "Remove plugin" msgstr "Eklentiyi kaldır" +# AI Translated +msgid "No plugin selected" +msgstr "Eklenti seçilmedi" + # AI Translated msgid "Configure" msgstr "Yapılandır" @@ -7666,6 +7662,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Alt" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Eklenti Seçimi" @@ -9193,6 +9195,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "Filament gruplama modunu seçmek için açılır pencere" @@ -22164,6 +22175,10 @@ msgstr "" "Eğilmeyi önleyin\n" "ABS gibi bükülmeye yatkın malzemelere baskı yaparken, ısıtma yatağı sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını azaltabileceğini biliyor muydunuz?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Eklenti seç" + #~ msgid "Select the language" #~ msgstr "Dili seçin" diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index 5c352f52dd..fd6c32585a 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: orcaslicerua\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2026-07-17 16:25+0300\n" "Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n" "Language-Team: Ukrainian\n" @@ -5375,22 +5375,18 @@ msgstr "Невірний формат. Очікуваний векторний msgid "System agents" msgstr "Системні агенти" -# AI Translated -msgid "No plugin selected" -msgstr "Плагін не вибрано" - # AI Translated msgid "Add plugin" msgstr "Додати плагін" -# AI Translated -msgid "Select plugin" -msgstr "Вибрати плагін" - # AI Translated msgid "Remove plugin" msgstr "Вилучити плагін" +# AI Translated +msgid "No plugin selected" +msgstr "Плагін не вибрано" + # AI Translated msgid "Configure" msgstr "Налаштувати" @@ -7650,6 +7646,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Низ" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Вибір плагіна" @@ -9211,6 +9213,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + # AI Translated msgid "Pop up to select filament grouping mode" msgstr "Показувати вікно вибору режиму групування філаментів" @@ -22325,6 +22336,10 @@ msgstr "" "Уникнення деформації\n" "Чи знаєте ви, що при друку матеріалами, схильними до деформації, такими як ABS, відповідне підвищення температури столу може зменшити ймовірність деформації?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Вибрати плагін" + #~ msgid "Select the language" #~ msgstr "Вибрати мову" diff --git a/localization/i18n/vi/OrcaSlicer_vi.po b/localization/i18n/vi/OrcaSlicer_vi.po index dedb1d33cb..7db1c04e0c 100644 --- a/localization/i18n/vi/OrcaSlicer_vi.po +++ b/localization/i18n/vi/OrcaSlicer_vi.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2025-10-02 17:43+0700\n" "Last-Translator: \n" "Language-Team: hainguyen.ts13@gmail.com\n" @@ -5679,22 +5679,18 @@ msgstr "Định dạng không hợp lệ. Mong đợi định dạng vector: \"% msgid "System agents" msgstr "Tác nhân hệ thống" -# AI Translated -msgid "No plugin selected" -msgstr "Chưa chọn plugin" - # AI Translated msgid "Add plugin" msgstr "Thêm plugin" -# AI Translated -msgid "Select plugin" -msgstr "Chọn plugin" - # AI Translated msgid "Remove plugin" msgstr "Xóa plugin" +# AI Translated +msgid "No plugin selected" +msgstr "Chưa chọn plugin" + # AI Translated msgid "Configure" msgstr "Cấu hình" @@ -8035,6 +8031,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "Dưới" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "Chọn plugin" @@ -9674,6 +9676,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + # AI Translated msgid "Pop up to select filament grouping mode" msgstr "Hiện cửa sổ để chọn chế độ nhóm filament" @@ -23048,6 +23059,10 @@ msgstr "" "Tránh cong vênh\n" "Bạn có biết rằng khi in vật liệu dễ cong vênh như ABS, tăng nhiệt độ bàn nóng một cách thích hợp có thể giảm xác suất cong vênh không?" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "Chọn plugin" + #~ msgid "Select the language" #~ msgstr "Chọn ngôn ngữ" diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index cfacff0458..4338213c14 100644 --- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po +++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2026-06-11 12:37-0300\n" "Last-Translator: Handle <mail@bysb.net>\n" "Language-Team: \n" @@ -5219,22 +5219,18 @@ msgstr "无效格式,应该是\"%1%\"这种数组格式" msgid "System agents" msgstr "系统代理" -# AI Translated -msgid "No plugin selected" -msgstr "未选择插件" - # AI Translated msgid "Add plugin" msgstr "添加插件" -# AI Translated -msgid "Select plugin" -msgstr "选择插件" - # AI Translated msgid "Remove plugin" msgstr "移除插件" +# AI Translated +msgid "No plugin selected" +msgstr "未选择插件" + # AI Translated msgid "Configure" msgstr "配置" @@ -7430,6 +7426,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "底部" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + msgid "Plugin Selection" msgstr "插件选择" @@ -8910,6 +8912,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "弹出选择耗材丝分组模式" @@ -21457,6 +21468,10 @@ msgstr "" "避免翘曲\n" "您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "选择插件" + #~ msgid "Select the language" #~ msgstr "选择语言" diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index fc24dcfaa2..2f55ba6d8f 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 12:33+0800\n" +"POT-Creation-Date: 2026-09-11 17:15+0800\n" "PO-Revision-Date: 2025-11-28 13:48-0600\n" "Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n" "Language-Team: \n" @@ -5348,22 +5348,18 @@ msgstr "無效格式,應該是「%1%」這種格式" msgid "System agents" msgstr "系統代理程式" -# AI Translated -msgid "No plugin selected" -msgstr "未選擇外掛" - # AI Translated msgid "Add plugin" msgstr "新增外掛" -# AI Translated -msgid "Select plugin" -msgstr "選擇外掛" - # AI Translated msgid "Remove plugin" msgstr "移除外掛" +# AI Translated +msgid "No plugin selected" +msgstr "未選擇外掛" + # AI Translated msgid "Configure" msgstr "設定" @@ -7569,6 +7565,12 @@ msgctxt "Layers" msgid "Bottom" msgstr "底部" +msgid "This setting does not specify a plugin capability type." +msgstr "" + +msgid "This setting specifies an unrecognized plugin capability type: " +msgstr "" + # AI Translated msgid "Plugin Selection" msgstr "外掛選擇" @@ -9083,6 +9085,15 @@ msgstr "" msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." msgstr "" +msgid "Recent actions" +msgstr "" + +msgid "actions" +msgstr "" + +msgid "How many recently launched actions to show at the top of the Speed Dial. Set to 0 to hide recent actions." +msgstr "" + msgid "Pop up to select filament grouping mode" msgstr "彈出視窗選擇線材分組模式" @@ -21671,6 +21682,10 @@ msgstr "" "避免翹曲\n" "您知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率。" +# AI Translated +#~ msgid "Select plugin" +#~ msgstr "選擇外掛" + #~ msgid "Select the language" #~ msgstr "選擇語言" diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 1647a26844..2b28622db4 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -478,6 +478,8 @@ set(SLIC3R_GUI_SOURCES GUI/SkipPartCanvas.hpp GUI/Search.cpp GUI/Search.hpp + GUI/SettingsIndex.cpp + GUI/SettingsIndex.hpp GUI/Selection.cpp GUI/Selection.hpp GUI/SelectMachine.cpp diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index 3770d6fb68..3f751e6913 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -8,7 +8,7 @@ #include "Notebook.hpp" #include "OptionsGroup.hpp" #include "Plater.hpp" -#include "Search.hpp" +#include "SettingsIndex.hpp" #include "Tab.hpp" #include "slic3r/plugin/PluginManager.hpp" @@ -526,11 +526,11 @@ void ActionRegistry::materialize_setting_actions() { assert(wxThread::IsMain()); - // Reuse the Sidebar's live searcher: it's the only OptionsSearcher whose groups_and_categories - // map is populated (Tab::add_key feeds it at build time), and it already mirrors the current + // Reuse the Sidebar's live settings index: it's the only catalog whose group/category map is + // populated (Tab::add_key feeds it at build time), and it already mirrors the current // configs/printer-technology. Use the all-modes view so the Speed Dial lists every setting, // including those above the user's current mode, and can prompt to switch before jumping. - const std::vector<Search::Option>& options = wxGetApp().sidebar().get_searcher().all_modes_options(); + const std::vector<Search::Option>& options = wxGetApp().sidebar().settings_index().all_options(); // Load the persisted per-action state ONCE (not per-option) so a re-materialised setting keeps // its recency/favourite; mirroring seed_state but amortised over the whole option set. diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index 2fc41ba90b..6c950ca501 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -248,7 +248,7 @@ void OptionsGroup::append_line(const Line& line) // affordance for it. Settings tabs only; the searcher already exists by the time tabs are built. if (m_use_custom_ctrl && !line.label_path.empty()) for (const auto& opt : line.get_options()) - wxGetApp().sidebar().get_searcher().set_path(opt.opt_id, static_cast<Preset::Type>(config_type()), line.label_path); + wxGetApp().sidebar().settings_index().set_path(opt.opt_id, static_cast<Preset::Type>(config_type()), line.label_path); if (line.full_width && (line.widget != nullptr || !line.get_extra_widgets().empty())) return; @@ -656,7 +656,7 @@ Option ConfigOptionsGroup::get_option(const std::string& opt_key, int opt_index m_opt_map.emplace(opt_id, pair); if (m_use_custom_ctrl) // fill group and category values just for options from Settings Tab - wxGetApp().sidebar().get_searcher().add_key(opt_id, static_cast<Preset::Type>(this->config_type()), title, this->config_category(), this->icon); + wxGetApp().sidebar().settings_index().add_key(opt_id, static_cast<Preset::Type>(this->config_type()), title, this->config_category(), this->icon); return Option(*m_config->def()->get(opt_key), opt_id); } diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 555cd7a9ad..a28ebb545b 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -6419,6 +6419,11 @@ Search::OptionsSearcher& Sidebar::get_searcher() return p->searcher; } +Search::SettingsIndex& Sidebar::settings_index() +{ + return p->searcher.index(); +} + std::string& Sidebar::get_search_line() { return p->searcher.search_string(); diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 5536efb05b..3342eb3311 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -282,6 +282,7 @@ public: std::vector<std::string>& types, std::vector<size_t>* config_indices = nullptr); Search::OptionsSearcher& get_searcher(); + Search::SettingsIndex& settings_index(); std::string& get_search_line(); void update_printer_thumbnail(); diff --git a/src/slic3r/GUI/Search.cpp b/src/slic3r/GUI/Search.cpp index 916d93a40c..427271ad2f 100644 --- a/src/slic3r/GUI/Search.cpp +++ b/src/slic3r/GUI/Search.cpp @@ -62,107 +62,12 @@ static char marker_by_type(Preset::Type type, PrinterTechnology pt) } } -std::string Option::opt_key() const { return into_u8(key).substr(2); } - void FoundOption::get_marked_label_and_tooltip(const char **label_, const char **tooltip_) const { *label_ = marked_label.c_str(); *tooltip_ = tooltip.c_str(); } -template<class T> -// void change_opt_key(std::string& opt_key, DynamicPrintConfig* config) -void change_opt_key(std::string &opt_key, DynamicPrintConfig *config, int &cnt) -{ - T *opt_cur = static_cast<T *>(config->option(opt_key)); - cnt = opt_cur->values.size(); - return; - - if (opt_cur->values.size() > 0) opt_key += "#" + std::to_string(0); -} - -static std::string get_key(const std::string &opt_key, Preset::Type type) { return std::to_string(int(type)) + ";" + opt_key; } - -void OptionsSearcher::append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode) -{ - auto emplace = [this, type](std::vector<Option> &dst, const std::string &key, const wxString &label, ConfigOptionMode opt_mode, std::string tooltip) { - const GroupAndCategory &gc = groups_and_categories[key]; - if (gc.group.IsEmpty() || gc.category.IsEmpty()) return; - - wxString suffix; - wxString suffix_local; - if (gc.category == "Machine limits") { - //suffix = key.back() == '1' ? L("Stealth") : L("Normal"); - suffix = key.back() == '1' ? wxEmptyString : wxEmptyString; - suffix_local = " " + _(suffix); - suffix = " " + suffix; - } - - if (!label.IsEmpty()) - dst.emplace_back(Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(), gc.group.ToStdWstring(), - _(gc.group).ToStdWstring(), into_u8(gc.icon), gc.category.ToStdWstring(), GUI::Tab::translate_category(gc.category, type).ToStdWstring(), - false, opt_mode, std::move(tooltip), gc.path}); - }; - - for (std::string opt_key : config->keys()) { - const ConfigOptionDef &opt = config->def()->options.at(opt_key); - const bool in_filtered = opt.mode <= mode; - - int cnt = 0; - - if ((type == Preset::TYPE_SLA_MATERIAL || type == Preset::TYPE_PRINTER || type == Preset::TYPE_PRINT) && opt_key != "printable_area") - switch (config->option(opt_key)->type()) { - case coInts: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break; - case coBools: change_opt_key<ConfigOptionBools>(opt_key, config, cnt); break; - case coFloats: change_opt_key<ConfigOptionFloats>(opt_key, config, cnt); break; - case coStrings: change_opt_key<ConfigOptionStrings>(opt_key, config, cnt); break; - case coPercents: change_opt_key<ConfigOptionPercents>(opt_key, config, cnt); break; - case coPoints: change_opt_key<ConfigOptionPoints>(opt_key, config, cnt); break; - // BBS - case coEnums: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break; - default: break; - } - - if (type == Preset::TYPE_FILAMENT && filament_options_with_variant.find(opt_key) != filament_options_with_variant.end()) - opt_key += "#0"; - - wxString label = opt.full_label.empty() ? opt.label : opt.full_label; - - std::string key = get_key(opt_key, type); - auto add = [&](const std::string &k) { - if (in_filtered) - emplace(options, k, label, opt.mode, into_u8(_(opt.tooltip))); - emplace(options_all_modes, k, label, opt.mode, into_u8(_(opt.tooltip))); - }; - if (cnt == 0) - add(key); - else - for (int i = 0; i < cnt; ++i) - // ! It's very important to use "#". opt_key#n is a real option key used in GroupAndCategory - add(key + "#" + std::to_string(i)); - } -} - -void OptionsSearcher::sort_options() -{ - // Both views are label-sorted and multi_category-marked. They are separate consumers (the sidebar - // search and the Speed Dial); keeping them in sync here prevents the all-modes view from silently - // diverging in order or flags. - auto sort_and_mark = [](std::vector<Option> &v) { - std::sort(v.begin(), v.end(), [](const Option &o1, const Option &o2) { return o1.label < o2.label; }); - Option *last = nullptr; - for (auto &opt : v) { - if (last && last->label == opt.label && last->group == opt.group && last->type == opt.type && last->category != opt.category) { - last->multi_category = true; - opt.multi_category = true; - } - last = &opt; - } - }; - sort_and_mark(options); - sort_and_mark(options_all_modes); -} - // Mark a string using ColorMarkerStart and ColorMarkerEnd symbols static std::wstring mark_string(const std::wstring &str, const std::vector<uint16_t> &matches, Preset::Type type, PrinterTechnology pt) { @@ -247,7 +152,8 @@ bool OptionsSearcher::search(const std::string &search, bool force /* = false*/, return wxString(marker_by_type(opt.type, printer_technology)) + opt.category_local + sep + opt.group_local + sep + opt.label_local; }; - std::vector<uint16_t> matches, matches2; + std::vector<uint16_t> matches, matches2; + const std::vector<Option> &options = m_index.options(); for (size_t i = 0; i < options.size(); i++) { const Option &opt = options[i]; if (full_list) { @@ -319,117 +225,21 @@ OptionsSearcher::~OptionsSearcher() {} void OptionsSearcher::init(std::vector<InputInfo> input_values) { - options.clear(); - options_all_modes.clear(); - for (auto i : input_values) append_options(i.config, i.type, i.mode); - sort_options(); + m_index.init(std::move(input_values)); search(search_line, true, search_type); } void OptionsSearcher::apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode) { - // options_all_modes is a separate consumer (the Speed Dial), so "nothing initialised yet" means - // both views are empty - the mode-filtered options can be empty while the all-modes view is not. - if (options.empty() && options_all_modes.empty()) return; - - options.erase(std::remove_if(options.begin(), options.end(), [type](Option opt) { return opt.type == type; }), options.end()); - options_all_modes.erase(std::remove_if(options_all_modes.begin(), options_all_modes.end(), [type](Option opt) { return opt.type == type; }), - options_all_modes.end()); - - append_options(config, type, mode); - - sort_options(); - - search(search_line, true, search_type); + if (m_index.apply(config, type, mode)) + search(search_line, true, search_type); } const Option &OptionsSearcher::get_option(size_t pos_in_filter) const { assert(pos_in_filter != size_t(-1) && found[pos_in_filter].option_idx != size_t(-1)); - return options[found[pos_in_filter].option_idx]; -} - -const Option &OptionsSearcher::get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const -{ - std::string opt_key2 = opt_key; - if (auto n = opt_key.find('#'); n != std::string::npos) { - variant_index = std::atoi(opt_key.c_str() + n + 1); - opt_key2 = opt_key.substr(0, n); - } - auto it = std::lower_bound(options.begin(), options.end(), Option({boost::nowide::widen(get_key(opt_key2, type))})); - // BBS: return the 0th option when not found in searcher caused by mode difference - // assert(it != options.end()); - if (it == options.end()) { variant_index = -2 ; return options[0]; } - if (it->opt_key() == opt_key2) { - variant_index = -1; - } else { - const std::string opt_key3 = opt_key2 + "#"; - it = std::lower_bound(it, options.end(), Option({boost::nowide::widen(get_key(opt_key3, type))})); - if (it == options.end() || it->opt_key().compare(0, opt_key3.length(), opt_key3) != 0) { - variant_index = -2; // Not found - return options[0]; - } - auto it2 = it; - ++it2; - if (it2 != options.end() && it2->opt_key().compare(0, opt_key3.length(), opt_key3) == 0 - && printer_options_with_variant_1.find(opt_key2) == printer_options_with_variant_1.end()) - variant_index = -2; - } - - return options[it - options.begin()]; -} - -static Option create_option(const std::string &opt_key, const wxString &label, Preset::Type type, const GroupAndCategory &gc) -{ - wxString suffix; - wxString suffix_local; - if (gc.category == "Machine limits") { - //suffix = opt_key.back() == '1' ? L("Stealth") : L("Normal"); - suffix = opt_key.back() == '1' ? wxEmptyString : wxEmptyString; - suffix_local = " " + _(suffix); - suffix = " " + suffix; - } - - wxString category = gc.category; - if (type == Preset::TYPE_PRINTER && category.Contains("Extruder ")) { - std::string opt_idx = opt_key.substr(opt_key.find("#") + 1); - category = wxString::Format("%s %d", "Extruder", atoi(opt_idx.c_str()) + 1); - } - - return Option{boost::nowide::widen(get_key(opt_key, type)), - type, - (label + suffix).ToStdWstring(), - (_(label) + suffix_local).ToStdWstring(), - gc.group.ToStdWstring(), - _(gc.group).ToStdWstring(), - into_u8(gc.icon), - gc.category.ToStdWstring(), - GUI::Tab::translate_category(category, type).ToStdWstring()}; -} - -Option OptionsSearcher::get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const -{ - std::string key = get_key(opt_key, type); - auto it = std::lower_bound(options.begin(), options.end(), Option({boost::nowide::widen(key)})); - // BBS: return the 0th option when not found in searcher caused by mode difference - if (it == options.end()) return options[0]; - if (it->key == boost::nowide::widen(key)) return options[it - options.begin()]; - if (groups_and_categories.find(key) == groups_and_categories.end()) { - size_t pos = key.find('#'); - if (pos == std::string::npos) return options[it - options.begin()]; - - std::string zero_opt_key = key.substr(0, pos + 1) + "0"; - - if (groups_and_categories.find(zero_opt_key) == groups_and_categories.end()) return options[it - options.begin()]; - - return create_option(opt_key, label, type, groups_and_categories.at(zero_opt_key)); - } - - const GroupAndCategory &gc = groups_and_categories.at(key); - if (gc.group.IsEmpty() || gc.category.IsEmpty()) return options[it - options.begin()]; - - return create_option(opt_key, label, type, gc); + return m_index.option_at(found[pos_in_filter].option_idx); } void OptionsSearcher::show_dialog(Preset::Type type, wxWindow *parent, TextInput *input, wxWindow* ssearch_btn) @@ -456,23 +266,6 @@ void OptionsSearcher::dlg_msw_rescale() { if (search_dialog) search_dialog->msw_rescale(); } - -void OptionsSearcher::add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, const wxString &icon) -{ - // Update fields in place so a page rebuild (get_option after set_path) doesn't drop the - // previously recorded wiki path. - GroupAndCategory &gc = groups_and_categories[get_key(opt_key, type)]; - gc.group = group; - gc.category = category; - gc.icon = icon; -} - -void OptionsSearcher::set_path(const std::string &opt_key, Preset::Type type, const std::string &path) -{ - if (path.empty()) - return; - groups_and_categories[get_key(opt_key, type)].path = path; -} //------------------------------------------ // SearchItem //------------------------------------------ diff --git a/src/slic3r/GUI/Search.hpp b/src/slic3r/GUI/Search.hpp index 3cec0ba8c2..92ccd4d28c 100644 --- a/src/slic3r/GUI/Search.hpp +++ b/src/slic3r/GUI/Search.hpp @@ -19,6 +19,7 @@ #include "wxExtensions.hpp" #include "GUI_Utils.hpp" #include "libslic3r/Preset.hpp" +#include "SettingsIndex.hpp" #include "Widgets/ScrolledWindow.hpp" #include "Widgets/TextInput.hpp" #include "Widgets/PopupWindow.hpp" @@ -34,45 +35,6 @@ namespace Search { class SearchDialog; -struct InputInfo -{ - DynamicPrintConfig *config{nullptr}; - Preset::Type type{Preset::TYPE_INVALID}; - ConfigOptionMode mode{comSimple}; -}; - -struct GroupAndCategory -{ - wxString group; - wxString category; - wxString icon; // icon of the group's own header, or empty - std::string path; // wiki path (Line::label_path) of the option's line, or empty -}; - -struct Option -{ - // bool operator<(const Option& other) const { return other.label > this->label; } - bool operator<(const Option &other) const { return other.key > this->key; } - - // Fuzzy matching works at a character level. Thus matching with wide characters is a safer bet than with short characters, - // though for some languages (Chinese?) it may not work correctly. - std::wstring key; - Preset::Type type{Preset::TYPE_INVALID}; - std::wstring label; - std::wstring label_local; - std::wstring group; - std::wstring group_local; - std::string group_icon; // SVG base name of the group's own header icon, or empty - std::wstring category; - std::wstring category_local; - bool multi_category { false }; - ConfigOptionMode mode{comSimple}; // option's visibility threshold; drives the Speed Dial's mode prompt - std::string tooltip; // localized ConfigOptionDef::tooltip, or empty - std::string wiki_path; // Line::label_path for the option's row, or empty - - std::string opt_key() const; -}; - struct FoundOption { // UTF8 encoding, to be consumed by ImGUI by reference. @@ -96,28 +58,19 @@ struct OptionViewParameters class OptionsSearcher { - std::string search_line; - Preset::Type search_type = Preset::TYPE_INVALID; + SettingsIndex m_index; - std::map<std::string, GroupAndCategory> groups_and_categories; - PrinterTechnology printer_technology; - - std::vector<Option> options{}; - // Every option regardless of the current UI mode (Simple/Advanced/Expert/Developer), for the - // Speed Dial. The sidebar search keeps using the mode-filtered `options`. - std::vector<Option> options_all_modes{}; + std::string search_line; + Preset::Type search_type = Preset::TYPE_INVALID; + PrinterTechnology printer_technology; std::vector<FoundOption> found{}; - void append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode); - - void sort_options(); void sort_found() { std::sort(found.begin(), found.end(), [](const FoundOption &f1, const FoundOption &f2) { return f1.outScore > f2.outScore || (f1.outScore == f2.outScore && f1.label < f2.label); }); }; - size_t options_size() const { return options.size(); } size_t found_size() const { return found.size(); } public: @@ -128,44 +81,29 @@ public: OptionsSearcher(); ~OptionsSearcher(); + SettingsIndex & index() { return m_index; } + const SettingsIndex &index() const { return m_index; } + + // Rebuild the catalog and re-run the current query so the cached results track it. void init(std::vector<InputInfo> input_values); void apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode); + bool search(); bool search(const std::string &search, bool force = false, Preset::Type type = Preset::TYPE_INVALID); - void add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, - const wxString &icon = wxEmptyString); - - // Records the wiki path of an option's row (Line::label_path) so the Speed Dial can offer a - // "open wiki" affordance. Empty paths are ignored. - void set_path(const std::string &opt_key, Preset::Type type, const std::string &path); - size_t size() const { return found_size(); } const FoundOption &operator[](const size_t pos) const noexcept { return found[pos]; } const Option & get_option(size_t pos_in_filter) const; - const Option & get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const; - Option get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const; const std::vector<FoundOption> &found_options() { return found; } - const GroupAndCategory & get_group_and_category(const std::string &opt_key) { return groups_and_categories[opt_key]; } std::string & search_string() { return search_line; } void set_printer_technology(PrinterTechnology pt) { printer_technology = pt; } - void sort_options_by_key() - { - std::sort(options.begin(), options.end(), [](const Option &o1, const Option &o2) { return o1.key < o2.key; }); - } - void sort_options_by_label() { sort_options(); } - void show_dialog(Preset::Type type, wxWindow *parent, TextInput *input, wxWindow *ssearch_btn); void dlg_sys_color_changed(); void dlg_msw_rescale(); - - // Every option across all UI modes (Developer included), regardless of the current mode. - // Used by the Speed Dial so it can list settings the user would have to switch mode to edit. - const std::vector<Option>& all_modes_options() const { return options_all_modes; } }; //------------------------------------------ diff --git a/src/slic3r/GUI/SettingsIndex.cpp b/src/slic3r/GUI/SettingsIndex.cpp new file mode 100644 index 0000000000..6b0a01893d --- /dev/null +++ b/src/slic3r/GUI/SettingsIndex.cpp @@ -0,0 +1,229 @@ +#include "SettingsIndex.hpp" + +#include <algorithm> +#include <cstddef> +#include <cstdlib> +#include <string> +#include <vector> + +#include <boost/nowide/convert.hpp> + +#include "GUI.hpp" +#include "I18N.hpp" +#include "Tab.hpp" + +#include "libslic3r/PrintConfig.hpp" + +namespace Slic3r { + +using GUI::into_u8; + +namespace Search { + +static std::string get_key(const std::string &opt_key, Preset::Type type) { return std::to_string(int(type)) + ";" + opt_key; } + +std::string Option::opt_key() const { return into_u8(key).substr(2); } + +template<class T> +// void change_opt_key(std::string& opt_key, DynamicPrintConfig* config) +void change_opt_key(std::string &opt_key, DynamicPrintConfig *config, int &cnt) +{ + T *opt_cur = static_cast<T *>(config->option(opt_key)); + cnt = opt_cur->values.size(); + return; + + if (opt_cur->values.size() > 0) opt_key += "#" + std::to_string(0); +} + +// Single assembler for an indexed Option, shared by append_options() and create_option(), so a new +// Option field is only wired up in one place. +static Option make_option(const std::string &key, Preset::Type type, const wxString &label, const GroupAndCategory &gc, + ConfigOptionMode mode, const std::string &tooltip, bool rewrite_extruder_category) +{ + wxString suffix; + wxString suffix_local; + if (gc.category == "Machine limits") { + //suffix = key.back() == '1' ? L("Stealth") : L("Normal"); + suffix = key.back() == '1' ? wxEmptyString : wxEmptyString; + suffix_local = " " + _(suffix); + suffix = " " + suffix; + } + + wxString category = gc.category; + if (rewrite_extruder_category && type == Preset::TYPE_PRINTER && category.Contains("Extruder ")) { + std::string opt_idx = key.substr(key.find("#") + 1); + category = wxString::Format("%s %d", "Extruder", atoi(opt_idx.c_str()) + 1); + } + + return Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(), + gc.group.ToStdWstring(), _(gc.group).ToStdWstring(), into_u8(gc.icon), gc.category.ToStdWstring(), + GUI::Tab::translate_category(category, type).ToStdWstring(), false, mode, tooltip, gc.path}; +} + +void SettingsIndex::append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode) +{ + for (std::string opt_key : config->keys()) { + const ConfigOptionDef &opt = config->def()->options.at(opt_key); + const bool in_filtered = opt.mode <= mode; + + int cnt = 0; + + if ((type == Preset::TYPE_SLA_MATERIAL || type == Preset::TYPE_PRINTER || type == Preset::TYPE_PRINT) && opt_key != "printable_area") + switch (config->option(opt_key)->type()) { + case coInts: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break; + case coBools: change_opt_key<ConfigOptionBools>(opt_key, config, cnt); break; + case coFloats: change_opt_key<ConfigOptionFloats>(opt_key, config, cnt); break; + case coStrings: change_opt_key<ConfigOptionStrings>(opt_key, config, cnt); break; + case coPercents: change_opt_key<ConfigOptionPercents>(opt_key, config, cnt); break; + case coPoints: change_opt_key<ConfigOptionPoints>(opt_key, config, cnt); break; + // BBS + case coEnums: change_opt_key<ConfigOptionInts>(opt_key, config, cnt); break; + default: break; + } + + if (type == Preset::TYPE_FILAMENT && filament_options_with_variant.find(opt_key) != filament_options_with_variant.end()) + opt_key += "#0"; + + wxString label = opt.full_label.empty() ? opt.label : opt.full_label; + + std::string key = get_key(opt_key, type); + auto add = [&](const std::string &k) { + const GroupAndCategory &gc = m_groups_and_categories[k]; + if (gc.group.IsEmpty() || gc.category.IsEmpty() || label.IsEmpty()) return; + + const std::string tooltip = into_u8(_(opt.tooltip)); + if (in_filtered) + m_options.emplace_back(make_option(k, type, label, gc, opt.mode, tooltip, false)); + m_all_modes.emplace_back(make_option(k, type, label, gc, opt.mode, tooltip, false)); + }; + if (cnt == 0) + add(key); + else + for (int i = 0; i < cnt; ++i) + // ! It's very important to use "#". opt_key#n is a real option key used in GroupAndCategory + add(key + "#" + std::to_string(i)); + } +} + +void SettingsIndex::sort_options() +{ + // Both views are label-sorted and multi_category-marked. They are separate consumers (the sidebar + // search and the Speed Dial); keeping them in sync here prevents the all-modes view from silently + // diverging in order or flags. + auto sort_and_mark = [](std::vector<Option> &v) { + std::sort(v.begin(), v.end(), [](const Option &o1, const Option &o2) { return o1.label < o2.label; }); + Option *last = nullptr; + for (auto &opt : v) { + if (last && last->label == opt.label && last->group == opt.group && last->type == opt.type && last->category != opt.category) { + last->multi_category = true; + opt.multi_category = true; + } + last = &opt; + } + }; + sort_and_mark(m_options); + sort_and_mark(m_all_modes); +} + +void SettingsIndex::init(std::vector<InputInfo> input_values) +{ + m_options.clear(); + m_all_modes.clear(); + for (auto i : input_values) append_options(i.config, i.type, i.mode); + sort_options(); +} + +bool SettingsIndex::apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode) +{ + // m_all_modes is a separate consumer (the Speed Dial), so "nothing initialised yet" means both + // views are empty - the mode-filtered m_options can be empty while m_all_modes is not. + if (m_options.empty() && m_all_modes.empty()) return false; + + m_options.erase(std::remove_if(m_options.begin(), m_options.end(), [type](Option opt) { return opt.type == type; }), m_options.end()); + m_all_modes.erase(std::remove_if(m_all_modes.begin(), m_all_modes.end(), [type](Option opt) { return opt.type == type; }), m_all_modes.end()); + + append_options(config, type, mode); + + sort_options(); + + return true; +} + +const Option &SettingsIndex::get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const +{ + std::string opt_key2 = opt_key; + if (auto n = opt_key.find('#'); n != std::string::npos) { + variant_index = std::atoi(opt_key.c_str() + n + 1); + opt_key2 = opt_key.substr(0, n); + } + auto it = std::lower_bound(m_options.begin(), m_options.end(), Option({boost::nowide::widen(get_key(opt_key2, type))})); + // BBS: return the 0th option when not found in searcher caused by mode difference + // assert(it != options.end()); + if (it == m_options.end()) { variant_index = -2 ; return m_options[0]; } + if (it->opt_key() == opt_key2) { + variant_index = -1; + } else { + const std::string opt_key3 = opt_key2 + "#"; + it = std::lower_bound(it, m_options.end(), Option({boost::nowide::widen(get_key(opt_key3, type))})); + if (it == m_options.end() || it->opt_key().compare(0, opt_key3.length(), opt_key3) != 0) { + variant_index = -2; // Not found + return m_options[0]; + } + auto it2 = it; + ++it2; + if (it2 != m_options.end() && it2->opt_key().compare(0, opt_key3.length(), opt_key3) == 0 + && printer_options_with_variant_1.find(opt_key2) == printer_options_with_variant_1.end()) + variant_index = -2; + } + + return m_options[it - m_options.begin()]; +} + +static Option create_option(const std::string &opt_key, const wxString &label, Preset::Type type, const GroupAndCategory &gc) +{ + return make_option(get_key(opt_key, type), type, label, gc, comSimple, std::string(), true); +} + +Option SettingsIndex::get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const +{ + std::string key = get_key(opt_key, type); + auto it = std::lower_bound(m_options.begin(), m_options.end(), Option({boost::nowide::widen(key)})); + // BBS: return the 0th option when not found in searcher caused by mode difference + if (it == m_options.end()) return m_options[0]; + if (it->key == boost::nowide::widen(key)) return m_options[it - m_options.begin()]; + if (m_groups_and_categories.find(key) == m_groups_and_categories.end()) { + size_t pos = key.find('#'); + if (pos == std::string::npos) return m_options[it - m_options.begin()]; + + std::string zero_opt_key = key.substr(0, pos + 1) + "0"; + + if (m_groups_and_categories.find(zero_opt_key) == m_groups_and_categories.end()) return m_options[it - m_options.begin()]; + + return create_option(opt_key, label, type, m_groups_and_categories.at(zero_opt_key)); + } + + const GroupAndCategory &gc = m_groups_and_categories.at(key); + if (gc.group.IsEmpty() || gc.category.IsEmpty()) return m_options[it - m_options.begin()]; + + return create_option(opt_key, label, type, gc); +} + +void SettingsIndex::add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, const wxString &icon) +{ + // Update fields in place so a page rebuild (get_option after set_path) doesn't drop the + // previously recorded wiki path. + GroupAndCategory &gc = m_groups_and_categories[get_key(opt_key, type)]; + gc.group = group; + gc.category = category; + gc.icon = icon; +} + +void SettingsIndex::set_path(const std::string &opt_key, Preset::Type type, const std::string &path) +{ + if (path.empty()) + return; + m_groups_and_categories[get_key(opt_key, type)].path = path; +} + +} // namespace Search +} // namespace Slic3r diff --git a/src/slic3r/GUI/SettingsIndex.hpp b/src/slic3r/GUI/SettingsIndex.hpp new file mode 100644 index 0000000000..5a2f91fa51 --- /dev/null +++ b/src/slic3r/GUI/SettingsIndex.hpp @@ -0,0 +1,98 @@ +#ifndef slic3r_SettingsIndex_hpp_ +#define slic3r_SettingsIndex_hpp_ + +#include <algorithm> +#include <cstddef> +#include <map> +#include <string> +#include <vector> + +#include <wx/string.h> + +#include <libslic3r/Config.hpp> +#include <libslic3r/Preset.hpp> + +namespace Slic3r { +namespace Search { + +struct InputInfo +{ + DynamicPrintConfig *config{nullptr}; + Preset::Type type{Preset::TYPE_INVALID}; + ConfigOptionMode mode{comSimple}; +}; + +struct GroupAndCategory +{ + wxString group; + wxString category; + wxString icon; // icon of the group's own header, or empty + std::string path; // wiki path (Line::label_path) of the option's line, or empty +}; + +struct Option +{ + // bool operator<(const Option& other) const { return other.label > this->label; } + bool operator<(const Option &other) const { return other.key > this->key; } + + // Fuzzy matching works at a character level. Thus matching with wide characters is a safer bet than with short characters, + // though for some languages (Chinese?) it may not work correctly. + std::wstring key; + Preset::Type type{Preset::TYPE_INVALID}; + std::wstring label; + std::wstring label_local; + std::wstring group; + std::wstring group_local; + std::string group_icon; // SVG base name of the group's own header icon, or empty + std::wstring category; + std::wstring category_local; + bool multi_category { false }; + ConfigOptionMode mode{comSimple}; // option's visibility threshold; drives the Speed Dial's mode prompt + std::string tooltip; // localized ConfigOptionDef::tooltip, or empty + std::string wiki_path; // Line::label_path for the option's row, or empty + + std::string opt_key() const; +}; + +// Catalog of settings and their metadata. Owns the group/category registry populated by the +// settings pages, plus two views of the options: the mode-filtered view the sidebar search +// queries, and every option regardless of mode for the Speed Dial. +class SettingsIndex +{ + std::map<std::string, GroupAndCategory> m_groups_and_categories; + + std::vector<Option> m_options; // mode-filtered view used by the sidebar search + std::vector<Option> m_all_modes; // every option regardless of mode, for the Speed Dial + + void append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode); + void sort_options(); + +public: + void init(std::vector<InputInfo> input_values); + // Rebuild the given type's options; returns false when the index was never initialised. + bool apply(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode); + + void add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, + const wxString &icon = wxEmptyString); + void set_path(const std::string &opt_key, Preset::Type type, const std::string &path); + + const std::vector<Option> &options() const { return m_options; } + const std::vector<Option> &all_options() const { return m_all_modes; } + const Option & option_at(size_t pos) const { return m_options[pos]; } + + const Option &get_option(const std::string &opt_key, Preset::Type type, int &variant_index) const; + Option get_option(const std::string &opt_key, const wxString &label, Preset::Type type) const; + + const GroupAndCategory &get_group_and_category(const std::string &opt_key) { return m_groups_and_categories[opt_key]; } + + void sort_options_by_key() + { + std::sort(m_options.begin(), m_options.end(), [](const Option &o1, const Option &o2) { return o1.key < o2.key; }); + } + void sort_options_by_label() { sort_options(); } +}; + +} // namespace Search +} // namespace Slic3r + +#endif // slic3r_SettingsIndex_hpp_ diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index d404283c70..c51ef26a0e 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -5049,8 +5049,8 @@ void TabPrinter::build_fff() } // Register by hand so the UnsavedChanges dialog can render a row for it. - wxGetApp().sidebar().get_searcher().add_key("printer_agent", m_type, optgroup->title, - optgroup->config_category(), optgroup->icon); + wxGetApp().sidebar().settings_index().add_key("printer_agent", m_type, optgroup->title, + optgroup->config_category(), optgroup->icon); } } @@ -5761,11 +5761,11 @@ if (is_marlin_flavor) } else if (m_extruders_count_old == 1) { first_extruder_title = wxString::Format("Extruder %d", 1); } - auto & searcher = wxGetApp().sidebar().get_searcher(); + auto & index = wxGetApp().sidebar().settings_index(); for (auto &group : m_pages[n_before_extruders]->m_optgroups) { group->set_config_category_and_type(first_extruder_title, m_type); for (auto &opt : group->opt_map()) - searcher.add_key(opt.first + "#0", m_type, group->title, first_extruder_title, group->icon); + index.add_key(opt.first + "#0", m_type, group->title, first_extruder_title, group->icon); } Thaw(); @@ -7867,10 +7867,10 @@ wxSizer* TabPrinter::create_bed_shape_widget(wxWindow* parent) })); { - Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher(); - const Search::GroupAndCategory& gc = searcher.get_group_and_category("printable_area"); - searcher.add_key("bed_custom_texture", m_type, gc.group, gc.category, gc.icon); - searcher.add_key("bed_custom_model", m_type, gc.group, gc.category, gc.icon); + Search::SettingsIndex& index = wxGetApp().sidebar().settings_index(); + const Search::GroupAndCategory& gc = index.get_group_and_category("printable_area"); + index.add_key("bed_custom_texture", m_type, gc.group, gc.category, gc.icon); + index.add_key("bed_custom_model", m_type, gc.group, gc.category, gc.icon); } return sizer; diff --git a/src/slic3r/GUI/UnsavedChangesDialog.cpp b/src/slic3r/GUI/UnsavedChangesDialog.cpp index 65b678953d..5a182cd959 100644 --- a/src/slic3r/GUI/UnsavedChangesDialog.cpp +++ b/src/slic3r/GUI/UnsavedChangesDialog.cpp @@ -1485,12 +1485,12 @@ std::string UnsavedChangesDialog::subreplace(std::string resource_str, std::stri void UnsavedChangesDialog::update_tree(Preset::Type type, DynamicConfig * config, int from, int to) { - Search::OptionsSearcher &searcher = wxGetApp().sidebar().get_searcher(); - searcher.sort_options_by_key(); + Search::SettingsIndex &index = wxGetApp().sidebar().settings_index(); + index.sort_options_by_key(); for (const std::string &opt_key : config->keys()) { int variant_index = -2; - const Search::Option &option = searcher.get_option(opt_key, type, variant_index); + const Search::Option &option = index.get_option(opt_key, type, variant_index); auto category = option.category_local; auto opt = dynamic_cast<ConfigOptionVectorBase*>(config->option(opt_key)); std::string value_from = opt->vserialize()[from]; @@ -1502,8 +1502,8 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, DynamicConfig * config void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* presets_) { - Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher(); - searcher.sort_options_by_key(); + Search::SettingsIndex& index = wxGetApp().sidebar().settings_index(); + index.sort_options_by_key(); // list of the presets with unsaved changes std::vector<PresetCollection*> presets_list; @@ -1558,11 +1558,11 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* pres for (const std::string& opt_key : dirty_options) { int variant_index = -2; - const Search::Option &option = searcher.get_option(opt_key, type, variant_index); + const Search::Option &option = index.get_option(opt_key, type, variant_index); if (option.opt_key() != opt_key && variant_index < -1) { // When founded option isn't the correct one. // It can be for dirty_options: "default_print_profile", "printer_model", "printer_settings_id", - // because of they don't exist in searcher + // because of they don't exist in the index continue; } auto category = option.category_local; @@ -1590,8 +1590,8 @@ void UnsavedChangesDialog::update_tree(Preset::Type type, PresetCollection* pres } } - // Revert sort of searcher back - searcher.sort_options_by_label(); + // Revert sort of index back + index.sort_options_by_label(); } void UnsavedChangesDialog::on_dpi_changed(const wxRect& suggested_rect) @@ -2043,8 +2043,8 @@ void DiffPresetDialog::update_bottom_info(wxString bottom_info) void DiffPresetDialog::update_tree() { - Search::OptionsSearcher& searcher = wxGetApp().sidebar().get_searcher(); - searcher.sort_options_by_key(); + Search::SettingsIndex& index = wxGetApp().sidebar().settings_index(); + index.sort_options_by_key(); m_tree->Clear(); wxString bottom_info = ""; @@ -2124,14 +2124,14 @@ void DiffPresetDialog::update_tree() wxString right_val = get_string_value(opt_key, right_congig); const std::string lookup_key = get_pure_opt_key(opt_key); - Search::Option option = searcher.get_option(lookup_key, get_full_label(lookup_key, left_config), type); + Search::Option option = index.get_option(lookup_key, get_full_label(lookup_key, left_config), type); if (get_pure_opt_key(option.opt_key()) != lookup_key) - option = searcher.get_option(opt_key, get_full_label(opt_key, left_config), type); + option = index.get_option(opt_key, get_full_label(opt_key, left_config), type); if (get_pure_opt_key(option.opt_key()) != lookup_key) { // When the found option is not the requested one. // This can happen for dirty_options such as: // "default_print_profile", "printer_model", "printer_settings_id", - // because they do not exist in the searcher. + // because they do not exist in the index. continue; } m_tree->Append(opt_key, type, option.category_local, option.group_local, option.label_local, @@ -2155,8 +2155,8 @@ void DiffPresetDialog::update_tree() Refresh(); } - // Revert sort of searcher back - searcher.sort_options_by_label(); + // Revert sort of index back + index.sort_options_by_label(); } void DiffPresetDialog::on_dpi_changed(const wxRect&) From 87e278c4b3bbb8cf54f36709d4dfdb39cb92ec0b Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Mon, 14 Sep 2026 12:02:06 +0800 Subject: [PATCH 21/76] Remove unused capture --- src/slic3r/GUI/MainFrame.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 828c698ce1..ee37f3602e 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -739,7 +739,7 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ } // Defer out of the native key-event stack: open_speed_dial() may create a WebView and // run script, the same window work the codebase avoids doing on native callbacks. - this->CallAfter([this] { wxGetApp().open_speed_dial(); }); + this->CallAfter([] { wxGetApp().open_speed_dial(); }); return; } if (evt.CmdDown() && evt.GetKeyCode() == 'R') { if (m_slice_enable) { wxGetApp().plater()->update(true, true); wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_SLICE_PLATE)); this->m_tabpanel->SelectPageByName(TAB_ID_PREVIEW); } return; } From 0131533ae055de1d8d65c28320e220c565fe0588 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Mon, 14 Sep 2026 14:59:06 +0800 Subject: [PATCH 22/76] Get speed dial to work with translations --- localization/i18n/OrcaSlicer.pot | 401 +++++++++++++++++-- localization/i18n/ca/OrcaSlicer_ca.po | 410 +++++++++++++++++-- localization/i18n/cs/OrcaSlicer_cs.po | 410 +++++++++++++++++-- localization/i18n/de/OrcaSlicer_de.po | 408 +++++++++++++++++-- localization/i18n/en/OrcaSlicer_en.po | 401 +++++++++++++++++-- localization/i18n/es/OrcaSlicer_es.po | 407 +++++++++++++++++-- localization/i18n/eu/OrcaSlicer_eu.po | 404 +++++++++++++++++-- localization/i18n/fr/OrcaSlicer_fr.po | 404 +++++++++++++++++-- localization/i18n/hu/OrcaSlicer_hu.po | 408 +++++++++++++++++-- localization/i18n/it/OrcaSlicer_it.po | 408 +++++++++++++++++-- localization/i18n/ja/OrcaSlicer_ja.po | 412 +++++++++++++++++-- localization/i18n/ko/OrcaSlicer_ko.po | 412 +++++++++++++++++-- localization/i18n/list.txt | 3 + localization/i18n/lt/OrcaSlicer_lt.po | 408 +++++++++++++++++-- localization/i18n/nl/OrcaSlicer_nl.po | 414 ++++++++++++++++++-- localization/i18n/pl/OrcaSlicer_pl.po | 412 +++++++++++++++++-- localization/i18n/pt_BR/OrcaSlicer_pt_BR.po | 408 +++++++++++++++++-- localization/i18n/ru/OrcaSlicer_ru.po | 404 +++++++++++++++++-- localization/i18n/sv/OrcaSlicer_sv.po | 412 +++++++++++++++++-- localization/i18n/th/OrcaSlicer_th.po | 408 +++++++++++++++++-- localization/i18n/tr/OrcaSlicer_tr.po | 410 +++++++++++++++++-- localization/i18n/uk/OrcaSlicer_uk.po | 406 +++++++++++++++++-- localization/i18n/vi/OrcaSlicer_vi.po | 412 +++++++++++++++++-- localization/i18n/zh_CN/OrcaSlicer_zh_CN.po | 404 +++++++++++++++++-- localization/i18n/zh_TW/OrcaSlicer_zh_TW.po | 408 +++++++++++++++++-- resources/web/data/text.js | 34 -- resources/web/dialog/SpeedDial/index.html | 1 - resources/web/dialog/SpeedDial/speeddial.js | 42 +- src/slic3r/GUI/ActionRegistry.cpp | 21 + src/slic3r/GUI/ActionRegistry.hpp | 6 + src/slic3r/GUI/GUI_App.cpp | 9 + src/slic3r/GUI/NativeCommands.cpp | 33 +- src/slic3r/GUI/NativeCommands.hpp | 6 +- src/slic3r/GUI/SpeedDialDialog.cpp | 59 +++ src/slic3r/GUI/SpeedDialDialog.hpp | 1 + 35 files changed, 9054 insertions(+), 952 deletions(-) diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index 3702bbfcca..7564105304 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\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" @@ -3915,6 +3915,21 @@ msgstr "" msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "" +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "" @@ -5006,8 +5021,10 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "" #, possible-c-format, possible-boost-format -msgid "" -"Is it %s%% or %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "" + +msgid "%" msgstr "" #, possible-boost-format @@ -5362,9 +5379,6 @@ msgctxt "Noun" msgid "Print" msgstr "" -msgid "Printer" -msgstr "" - msgid "Time Estimation" msgstr "" @@ -7037,6 +7051,231 @@ msgstr "" msgid "Please refer to Wiki before use->" msgstr "" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "" + +msgid "Export 3MF" +msgstr "" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +msgid "Delete All Objects" +msgstr "" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +msgid "Split to Objects" +msgstr "" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "" @@ -7826,18 +8065,12 @@ msgstr "" msgid "Delete Object" msgstr "" -msgid "Delete All Objects" -msgstr "" - msgid "Reset Project" msgstr "" msgid "The selected object couldn't be split." msgstr "" -msgid "Split to Objects" -msgstr "" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "" @@ -8808,9 +9041,6 @@ 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." @@ -9324,6 +9554,126 @@ msgstr "" msgid "Simply switch to \"%1%\"" msgstr "" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "%s actions" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "%s tabs" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "%s matches" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "" @@ -10268,9 +10618,6 @@ 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 "" @@ -11951,6 +12298,9 @@ 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 "" @@ -15597,9 +15947,6 @@ msgstr "" msgid "Slicing Mode" msgstr "" -msgid "Other" -msgstr "" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "" @@ -16430,9 +16777,6 @@ msgstr "" msgid " not in range " msgstr "" -msgid "Export 3MF" -msgstr "" - msgid "This exports the project as a 3MF file." msgstr "" @@ -16448,9 +16792,6 @@ msgstr "" msgid "Load cached slicing data from directory." msgstr "" -msgid "Export STL" -msgstr "" - msgid "Export the objects as single STL." msgstr "" @@ -17100,9 +17441,6 @@ msgstr "" msgid "This OBJ file couldn't be read because it's empty." msgstr "" -msgid "Max Volumetric Speed Calibration" -msgstr "" - msgid "Manage Result" msgstr "" @@ -17849,9 +18187,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "" -msgid "Flow Ratio Calibration" -msgstr "" - msgid "Calibration Test Type" msgstr "" diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index bb1b5380b8..f91b6ad66e 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2025-03-15 10:55+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -4253,6 +4253,21 @@ msgstr "OrcaSlicer va néixer amb aquest mateix esperit, inspirant-se en PrusaSl msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Avui, OrcaSlicer és el laminador de codi obert més utilitzat i amb un desenvolupament més actiu de la comunitat d'impressió 3D. Moltes de les seves innovacions han estat adoptades per altres laminadors, cosa que el converteix en una força motriu per a tot el sector." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Impressora" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "Configuració de materials AMS" @@ -5440,10 +5455,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "El valor %s està fora de rang. El rang vàlid és de %d a %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"És %s%% or %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "És %s%% or %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5808,9 +5824,6 @@ msgctxt "Noun" msgid "Print" msgstr "Imprimir" -msgid "Printer" -msgstr "Impressora" - msgid "Time Estimation" msgstr "Estimació temporal" @@ -7551,6 +7564,234 @@ msgstr "No tornis a mostrar aquest diàleg" msgid "Please refer to Wiki before use->" msgstr "Consulteu la Wiki abans d'usar ->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Exportar STL" + +msgid "Export 3MF" +msgstr "Exportar 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Calibratge de Velocitat Volumètrica Màxima" + +msgid "Pressure Advance Calibration" +msgstr "" + +# AI Translated +msgid "Flow Ratio Calibration" +msgstr "Calibratge de la relació de flux" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Suprimir tots els objectes" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Separar en objectes" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "S'ha desconnectat el ratolí 3D." @@ -8418,10 +8659,6 @@ msgstr "" msgid "Delete Object" msgstr "Suprimir l'objecte" -# AI Translated -msgid "Delete All Objects" -msgstr "Suprimir tots els objectes" - # AI Translated msgid "Reset Project" msgstr "Restablir el projecte" @@ -8429,10 +8666,6 @@ msgstr "Restablir el projecte" msgid "The selected object couldn't be split." msgstr "L'objecte seleccionat no s'ha pogut partir." -# AI Translated -msgid "Split to Objects" -msgstr "Separar en objectes" - # AI Translated msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Voleu desactivar la caiguda automàtica per conservar el posicionament en Z?\n" @@ -9523,9 +9756,6 @@ msgstr "En desplaçar el control lliscant de capes a la previsualització lamina msgid "Dimmed layer brightness" msgstr "Brillantor de les capes enfosquides" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -10081,6 +10311,126 @@ msgstr "Per a \"%1%\", afegir \"%2%\" com a perfil nou" msgid "Simply switch to \"%1%\"" msgstr "Simplement canviar a \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Altre" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Tasca cancel·lada" @@ -11109,9 +11459,6 @@ msgstr "Perfils de processos compatibles" msgid "Printable space" msgstr "Espai imprimible" -msgid "Printer Agent" -msgstr "Agent de la impressora" - msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Seleccioneu la implementació de l'agent de xarxa per a la comunicació amb la impressora. Els agents disponibles es registren a l'inici." @@ -12956,6 +13303,9 @@ msgstr "Utilitzar 3MF en lloc 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 "Activeu-ho si la impressora accepta un fitxer 3MF com a treball d'impressió. Quan està activat, Orca Slicer envia el fitxer laminat com a .gcode.3mf, en lloc d'un fitxer .gcode simple." +msgid "Printer Agent" +msgstr "Agent de la impressora" + msgid "Select the network agent implementation for printer communication." msgstr "Seleccioneu la implementació de l'agent de xarxa per a la comunicació amb la impressora." @@ -17209,9 +17559,6 @@ msgstr "Les esquerdes de menys de dues vegades el radi de tancament de buits s'o msgid "Slicing Mode" msgstr "Mode de laminat" -msgid "Other" -msgstr "Altre" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Utilitzeu \"Parell-imparell\" per als models d'avió 3DLabPrint. Utilitzeu \"Tancar forats\" per tancar tots els forats del model." @@ -18157,9 +18504,6 @@ msgstr "amplada de línia massa gran " msgid " not in range " msgstr " fora de rang " -msgid "Export 3MF" -msgstr "Exportar 3MF" - msgid "This exports the project as a 3MF file." msgstr "Exportar projecte a 3MF." @@ -18175,9 +18519,6 @@ msgstr "Carregar dades de laminació" msgid "Load cached slicing data from directory." msgstr "Carregar les dades de laminació a la memòria cau des del directori" -msgid "Export STL" -msgstr "Exportar STL" - msgid "Export the objects as single STL." msgstr "Exportar tots els objectes com a un STL." @@ -18836,9 +19177,6 @@ msgstr "El fitxer conté índex de vèrtex no vàlid." msgid "This OBJ file couldn't be read because it's empty." msgstr "Aquest fitxer OBJ no s'ha pogut llegir perquè està buit." -msgid "Max Volumetric Speed Calibration" -msgstr "Calibratge de Velocitat Volumètrica Màxima" - msgid "Manage Result" msgstr "Gestionar els resultats" @@ -19687,10 +20025,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "NOTA: valors alts poden causar desplaçament de capes (>%s)" -# AI Translated -msgid "Flow Ratio Calibration" -msgstr "Calibratge de la relació de flux" - # AI Translated msgid "Calibration Test Type" msgstr "Tipus de prova de calibratge" diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index b0f514d13f..fb82edd388 100644 --- a/localization/i18n/cs/OrcaSlicer_cs.po +++ b/localization/i18n/cs/OrcaSlicer_cs.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: Jakub Hencl\n" "Language-Team: \n" @@ -4208,6 +4208,21 @@ msgstr "OrcaSlicer vznikl ve stejném duchu a vycházel z projektů PrusaSlicer, msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Dnes je OrcaSlicer nejpoužívanějším a nejaktivněji vyvíjeným open-source slicerem v komunitě 3D tisku. Mnoho jeho inovací převzaly i další slicery, díky čemuž se stal hnací silou celého odvětví." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Tiskárna" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "Nastavení materiálů AMS" @@ -5397,10 +5412,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Hodnota %s je mimo rozsah. Platný rozsah je od %d do %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"Je to %s%% nebo %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "Je to %s%% nebo %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5765,9 +5781,6 @@ msgctxt "Noun" msgid "Print" msgstr "Tisk" -msgid "Printer" -msgstr "Tiskárna" - msgid "Time Estimation" msgstr "Odhad času" @@ -7518,6 +7531,233 @@ msgstr "Tento dialog již nezobrazovat" msgid "Please refer to Wiki before use->" msgstr "Před použitím si přečtěte Wiki ->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Exportovat STL" + +msgid "Export 3MF" +msgstr "Exportovat 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Kalibrace maximální objemové rychlosti" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "Kalibrace průtokového poměru" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Odstranit všechny objekty" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Rozdělit na objekty" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D myš odpojena." @@ -8379,10 +8619,6 @@ msgstr "" msgid "Delete Object" msgstr "Odstranit objekt" -# AI Translated -msgid "Delete All Objects" -msgstr "Odstranit všechny objekty" - # AI Translated msgid "Reset Project" msgstr "Resetovat projekt" @@ -8390,10 +8626,6 @@ msgstr "Resetovat projekt" msgid "The selected object couldn't be split." msgstr "Zvolený objekt nelze rozdělit." -# AI Translated -msgid "Split to Objects" -msgstr "Rozdělit na objekty" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Zakázat automatické položení pro zachování pozice v ose Z?\n" @@ -9478,9 +9710,6 @@ msgstr "Při posouvání posuvníku vrstev v náhledu po slicování vykresluje msgid "Dimmed layer brightness" msgstr "Jas ztmavených vrstev" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -10030,6 +10259,126 @@ msgstr "Pro \"%1%\" přidat \"%2%\" jako novou předvolbu" msgid "Simply switch to \"%1%\"" msgstr "Jednoduše přepněte na \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Ostatní" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Úloha zrušena" @@ -11058,10 +11407,6 @@ msgstr "Kompatibilní procesní profily" msgid "Printable space" msgstr "Tisknutelný prostor" -# AI Translated -msgid "Printer Agent" -msgstr "Agent tiskárny" - msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Vyberte implementaci síťového agenta pro komunikaci s tiskárnou. Dostupní agenti jsou registrováni při spuštění." @@ -12934,6 +13279,10 @@ msgstr "Použít 3MF místo 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 "Zapněte, pokud tiskárna přijímá jako tiskovou úlohu soubor 3MF. Je-li zapnuto, odešle Orca Slicer slicovaný soubor jako .gcode.3mf místo prostého souboru .gcode." +# AI Translated +msgid "Printer Agent" +msgstr "Agent tiskárny" + # AI Translated msgid "Select the network agent implementation for printer communication." msgstr "Vyberte implementaci síťového agenta pro komunikaci s tiskárnou." @@ -17149,9 +17498,6 @@ msgstr "Trhliny menší než 2x poloměr uzavření mezery jsou při řezání t msgid "Slicing Mode" msgstr "Režim slicingu" -msgid "Other" -msgstr "Ostatní" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Použijte \"Sudý-lichý\" pro modely letadel 3DLabPrint. Použijte \"Zavřít díry\" pro uzavření všech otvorů v modelu." @@ -18077,9 +18423,6 @@ msgstr "příliš velká šířka čáry " msgid " not in range " msgstr " není v rozsahu " -msgid "Export 3MF" -msgstr "Exportovat 3MF" - msgid "This exports the project as a 3MF file." msgstr "Exportovat projekt jako 3MF." @@ -18095,9 +18438,6 @@ msgstr "Načíst data řezu" msgid "Load cached slicing data from directory." msgstr "Načíst uložená data řezu z adresáře." -msgid "Export STL" -msgstr "Exportovat STL" - msgid "Export the objects as single STL." msgstr "Exportovat objekty jako jeden STL." @@ -18758,9 +19098,6 @@ msgstr "Soubor obsahuje neplatný index vrcholu." msgid "This OBJ file couldn't be read because it's empty." msgstr "Tento soubor OBJ nelze načíst, protože je prázdný." -msgid "Max Volumetric Speed Calibration" -msgstr "Kalibrace maximální objemové rychlosti" - msgid "Manage Result" msgstr "Správa výsledku" @@ -19607,9 +19944,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "POZNÁMKA: Vysoké hodnoty mohou způsobit posun vrstev (>%s)" -msgid "Flow Ratio Calibration" -msgstr "Kalibrace průtokového poměru" - msgid "Calibration Test Type" msgstr "Typ kalibračního testu" diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index 93d122d413..ce1a7e37d4 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: Heiko Liebscher <hliebschergmail.com>\n" "Language-Team: \n" @@ -4121,6 +4121,21 @@ msgstr "OrcaSlicer begann in diesem gleichen Geist, indem es von PrusaSlicer, Ba msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Heute ist OrcaSlicer der am weitesten verbreitete und aktiv entwickelte Open-Source-Slicer in der 3D-Druck-Community. Viele seiner Innovationen wurden von anderen Slicern übernommen und treiben die gesamte Industrie voran." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Drucker" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS Material Einstellung" @@ -5302,10 +5317,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Wert %s ist außerhalb des Bereichs. Der gültige Bereich liegt zwischen %d und %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"Heißt es %s%% oder %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "Heißt es %s%% oder %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5665,9 +5681,6 @@ msgctxt "Noun" msgid "Print" msgstr "aktuelle Platte drucken" -msgid "Printer" -msgstr "Drucker" - msgid "Time Estimation" msgstr "Geschätzte Zeit" @@ -7395,6 +7408,233 @@ msgstr "Diesen Dialog nicht erneut anzeigen" msgid "Please refer to Wiki before use->" msgstr "Bitte lesen Sie vor der Verwendung das Wiki->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Exportiere STL" + +msgid "Export 3MF" +msgstr "3mf exportieren" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Maximale volumetrische Geschwindigkeitskalibrierung" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "Flussratenkalibrierung" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Alle Objekte löschen" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "In Objekte aufteilen" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D-Maus nicht angeschlossen." @@ -8249,10 +8489,6 @@ msgstr "" msgid "Delete Object" msgstr "Objekt löschen" -# AI Translated -msgid "Delete All Objects" -msgstr "Alle Objekte löschen" - # AI Translated msgid "Reset Project" msgstr "Projekt zurücksetzen" @@ -8260,10 +8496,6 @@ msgstr "Projekt zurücksetzen" msgid "The selected object couldn't be split." msgstr "Das ausgewählte Objekt konnte nicht geteilt werden." -# AI Translated -msgid "Split to Objects" -msgstr "In Objekte aufteilen" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Auto-Drop deaktivieren, um die Z-Positionierung beizubehalten?\n" @@ -9325,9 +9557,6 @@ msgstr "Beim Bewegen des Schichtreglers in der geslicten Vorschau werden die Sch msgid "Dimmed layer brightness" msgstr "Helligkeit abgedunkelter Schichten" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9863,6 +10092,126 @@ msgstr "Für \"%1%\", fügen Sie \"%2%\" als neues Profil hinzu" msgid "Simply switch to \"%1%\"" msgstr "Wechseln Sie einfach zu \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Sonstiges" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Auftrag abgebrochen" @@ -10876,9 +11225,6 @@ msgstr "Kompatible Prozessprofile" msgid "Printable space" msgstr "Druckbarer Raum" -msgid "Printer Agent" -msgstr "Drucker-Agent" - msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Wählen Sie die Implementierung des Netzwerkagenten für die Druckerkommunikation. Verfügbare Agenten werden beim Start registriert." @@ -12662,6 +13008,9 @@ msgstr "Benutze 3MF statt 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 "Aktivieren Sie diese Option, wenn der Drucker eine 3MF-Datei als Druckauftrag akzeptiert. Wenn aktiviert, sendet Orca Slicer die geslicete Datei als .gcode.3mf, anstatt als einfache .gcode-Datei." +msgid "Printer Agent" +msgstr "Drucker-Agent" + msgid "Select the network agent implementation for printer communication." msgstr "Wählen Sie die Netzwerk-Agent-Implementierung für die Druckerkommunikation aus." @@ -16807,9 +17156,6 @@ msgstr "Risse, die kleiner als das 2-fache des Lückenschlussradius sind, werden msgid "Slicing Mode" msgstr "Slicing-Modus" -msgid "Other" -msgstr "Sonstiges" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Verwenden Sie \"Gerade-ungerade\" für 3DLabPrint-Flugzeugmodelle. Verwenden Sie \"Löcher schließen\", um alle Löcher im Modell zu schließen." @@ -17728,9 +18074,6 @@ msgstr "Zu große Linienbreite" msgid " not in range " msgstr "nicht im Bereich" -msgid "Export 3MF" -msgstr "3mf exportieren" - msgid "This exports the project as a 3MF file." msgstr "Projekt als 3MF exportieren." @@ -17746,9 +18089,6 @@ msgstr "Slicing-Daten laden" msgid "Load cached slicing data from directory." msgstr "Zwischengespeicherte Slicing-Daten aus dem Verzeichnis laden" -msgid "Export STL" -msgstr "Exportiere STL" - msgid "Export the objects as single STL." msgstr "Exportieren Sie die Objekte als einzelne STL." @@ -18405,9 +18745,6 @@ msgstr "Die Datei enthält einen ungültigen Scheitelpunktindex." msgid "This OBJ file couldn't be read because it's empty." msgstr "Diese OBJ-Datei konnte nicht gelesen werden, da sie leer ist." -msgid "Max Volumetric Speed Calibration" -msgstr "Maximale volumetrische Geschwindigkeitskalibrierung" - msgid "Manage Result" msgstr "Ergebnis verwalten" @@ -19249,9 +19586,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "Hinweis: Hohe Werte können zu Schichverschiebungen führen (>%s)" -msgid "Flow Ratio Calibration" -msgstr "Flussratenkalibrierung" - msgid "Calibration Test Type" msgstr "Kalibrierungstesttyp" diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index 9537fbafe9..932fbbe8a1 100644 --- a/localization/i18n/en/OrcaSlicer_en.po +++ b/localization/i18n/en/OrcaSlicer_en.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2026-06-17 15:44-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: \n" @@ -3911,6 +3911,21 @@ msgstr "" msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "" +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "" @@ -5002,8 +5017,10 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "" #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "" + +msgid "%" msgstr "" #, boost-format @@ -5358,9 +5375,6 @@ msgctxt "Noun" msgid "Print" msgstr "" -msgid "Printer" -msgstr "" - msgid "Time Estimation" msgstr "" @@ -7033,6 +7047,231 @@ msgstr "" msgid "Please refer to Wiki before use->" msgstr "" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "" + +msgid "Export 3MF" +msgstr "" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +msgid "Delete All Objects" +msgstr "" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +msgid "Split to Objects" +msgstr "" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "" @@ -7822,18 +8061,12 @@ msgstr "" msgid "Delete Object" msgstr "" -msgid "Delete All Objects" -msgstr "" - msgid "Reset Project" msgstr "" msgid "The selected object couldn't be split." msgstr "" -msgid "Split to Objects" -msgstr "" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "" @@ -8804,9 +9037,6 @@ 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." @@ -9320,6 +9550,126 @@ msgstr "" msgid "Simply switch to \"%1%\"" msgstr "" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "" @@ -10264,9 +10614,6 @@ 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 "" @@ -11947,6 +12294,9 @@ 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 "" @@ -15593,9 +15943,6 @@ msgstr "" msgid "Slicing Mode" msgstr "" -msgid "Other" -msgstr "" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "" @@ -16426,9 +16773,6 @@ msgstr "" msgid " not in range " msgstr "" -msgid "Export 3MF" -msgstr "" - msgid "This exports the project as a 3MF file." msgstr "" @@ -16444,9 +16788,6 @@ msgstr "" msgid "Load cached slicing data from directory." msgstr "" -msgid "Export STL" -msgstr "" - msgid "Export the objects as single STL." msgstr "" @@ -17096,9 +17437,6 @@ msgstr "" msgid "This OBJ file couldn't be read because it's empty." msgstr "" -msgid "Max Volumetric Speed Calibration" -msgstr "" - msgid "Manage Result" msgstr "" @@ -17845,9 +18183,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "" -msgid "Flow Ratio Calibration" -msgstr "" - msgid "Calibration Test Type" msgstr "" diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index 83784427a3..888e3065a3 100644 --- a/localization/i18n/es/OrcaSlicer_es.po +++ b/localization/i18n/es/OrcaSlicer_es.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: Ian A. Bassi <>\n" "Language-Team: \n" @@ -4000,6 +4000,21 @@ msgstr "OrcaSlicer nació con ese mismo espíritu, inspirándose en PrusaSlicer, msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Hoy en día, OrcaSlicer es el programa de corte de código abierto más utilizado y con mayor desarrollo activo en la comunidad de la impresión 3D. Muchas de sus innovaciones han sido adoptadas por otros programas de corte, lo que lo convierte en un motor impulsor de todo el sector." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Impresora" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "Ajustes de materiales AMS" @@ -5166,10 +5181,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "El valor %s está fuera de rango. El rango válido es de %d a %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"¿Es %s%% o %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "¿Es %s%% o %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5523,9 +5539,6 @@ msgctxt "Noun" msgid "Print" msgstr "Impresión" -msgid "Printer" -msgstr "Impresora" - msgid "Time Estimation" msgstr "Tiempo Estimado" @@ -7241,6 +7254,231 @@ msgstr "No mostrar este mensaje de nuevo" msgid "Please refer to Wiki before use->" msgstr "Consulte la Wiki antes de usar->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Exportar STL" + +msgid "Export 3MF" +msgstr "Exportar 3MF" + +msgid "Export Sliced File" +msgstr "Exportar Archivo laminado" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Calibración de Velocidad Volumétrica Máxima" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "Calibración de factor de flujo" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +msgid "Delete All Objects" +msgstr "Borrar todos los objetos" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +msgid "Split to Objects" +msgstr "Separar en objetos" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "Ratón 3D desconectado." @@ -8048,18 +8286,12 @@ msgstr "" msgid "Delete Object" msgstr "Borrar objeto" -msgid "Delete All Objects" -msgstr "Borrar todos los objetos" - msgid "Reset Project" msgstr "Reiniciar proyecto" msgid "The selected object couldn't be split." msgstr "El objeto seleccionado no ha podido ser dividido." -msgid "Split to Objects" -msgstr "Separar en objetos" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "¿Desactivar la caída automática para mantener la posición en el eje Z?\n" @@ -9088,9 +9320,6 @@ msgstr "Al desplazar el control deslizante de capas en la vista previa laminada, 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" @@ -9621,6 +9850,126 @@ msgstr "Para \"%1%\", añada \"%2%\" como un nuevo perfil" msgid "Simply switch to \"%1%\"" msgstr "Simplemente cambia a \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Otro" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Tarea cancelada" @@ -10589,9 +10938,6 @@ 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." @@ -12342,6 +12688,9 @@ 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." @@ -16426,9 +16775,6 @@ msgstr "Las grietas más pequeñas que 2x el radio de cierre se rellenan durante msgid "Slicing Mode" msgstr "Modo de laminado" -msgid "Other" -msgstr "Otro" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Utilice \"Par-impar\" para los modelos de avión de 3DLabPrint. Utilice \"Cerrar orificios\" para cerrar todos los orificios del modelo." @@ -17330,9 +17676,6 @@ msgstr "ancho de línea excesivo " msgid " not in range " msgstr " fuera de rango " -msgid "Export 3MF" -msgstr "Exportar 3MF" - msgid "This exports the project as a 3MF file." msgstr "Exportar el proyecto como 3MF." @@ -17348,9 +17691,6 @@ msgstr "Cargar datos de laminado" msgid "Load cached slicing data from directory." msgstr "Cargar datos de laminado en caché desde el directorio." -msgid "Export STL" -msgstr "Exportar STL" - msgid "Export the objects as single STL." msgstr "Exportar los objetos como un único STL." @@ -18007,9 +18347,6 @@ msgstr "El archivo contiene un índice de vértices no válido." msgid "This OBJ file couldn't be read because it's empty." msgstr "Este archivo OBJ no se ha podido leer porque está vacío." -msgid "Max Volumetric Speed Calibration" -msgstr "Calibración de Velocidad Volumétrica Máxima" - msgid "Manage Result" msgstr "Administrar Resultados" @@ -18855,9 +19192,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "NOTA: Valores altos pueden causar desplazamiento de capa (>%s)" -msgid "Flow Ratio Calibration" -msgstr "Calibración de factor de flujo" - msgid "Calibration Test Type" msgstr "Tipo de calibración" @@ -24246,9 +24580,6 @@ msgstr "" #~ msgid "Error at line %1%:\n" #~ msgstr "Error en la línea %1%:\n" -#~ msgid "Export Sliced File" -#~ msgstr "Exportar Archivo laminado" - #~ msgid "Export current Sliced file" #~ msgstr "Exportar el archivo laminado actual" diff --git a/localization/i18n/eu/OrcaSlicer_eu.po b/localization/i18n/eu/OrcaSlicer_eu.po index 122a7a90a5..e9aeb9ad71 100644 --- a/localization/i18n/eu/OrcaSlicer_eu.po +++ b/localization/i18n/eu/OrcaSlicer_eu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2026-07-20 13:33+0200\n" "Last-Translator: Manu Goiogana <mgoiogana@gmail.com>\n" "Language-Team: \n" @@ -4039,6 +4039,21 @@ msgstr "OrcaSlicer espiritu berean sortu zen, PrusaSlicer, BambuStudio, SuperSli msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Gaur egun, OrcaSlicer 3D inprimaketaren komunitatean gehien erabiltzen eta aktiboen garatzen den kode irekiko xerratzailea da. Haren berrikuntza asko beste xerratzaile batzuek bereganatu dituzte, eta industria osoaren eragile nagusietako bat bihurtu da." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Inprimagailua" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS Materialen Ezarpena" @@ -5214,10 +5229,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "%s balioa tartetik kanpo dago. Baliozko tartea %d eta %d artekoa da." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"%s%% edo %s %s da?" +msgid "Is it %s%% or %s %s?" +msgstr "%s%% edo %s %s da?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5572,9 +5588,6 @@ msgctxt "Noun" msgid "Print" msgstr "Inprimaketa" -msgid "Printer" -msgstr "Inprimagailua" - msgid "Time Estimation" msgstr "Denbora zenbatespena" @@ -7288,6 +7301,231 @@ msgstr "Ez erakutsi elkarrizketa-koadro hau berriro" msgid "Please refer to Wiki before use->" msgstr "Kontsultatu Wikia erabili aurretik ->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Esportatu STL" + +msgid "Export 3MF" +msgstr "Esportatu 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Gehieneko abiadura bolumetrikoaren kalibrazioa" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "Fluxu-erlazioaren kalibrazioa" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +msgid "Delete All Objects" +msgstr "Ezabatu objektu guztiak" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +msgid "Split to Objects" +msgstr "Banatu objektutan" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D Sagua deskonektatuta." @@ -8127,18 +8365,12 @@ msgstr "" msgid "Delete Object" msgstr "Ezabatu objektua" -msgid "Delete All Objects" -msgstr "Ezabatu objektu guztiak" - msgid "Reset Project" msgstr "Berrezarri proiektua" msgid "The selected object couldn't be split." msgstr "Hautatutako objektua ezin izan da zatitu." -msgid "Split to Objects" -msgstr "Banatu objektutan" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Auto-Drop desgaitu Z posizioa mantentzeko?\n" @@ -9172,9 +9404,6 @@ msgstr "Xerratutako aurrebistan geruza-graduatzailea mugitzean, unekoaren azpiko msgid "Dimmed layer brightness" msgstr "Ilundutako geruzen distira" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9707,6 +9936,126 @@ msgstr "\"%1%\"(e)n, gehitu \"%2%\" aurrezarpen berri gisa" msgid "Simply switch to \"%1%\"" msgstr "Aldatu \"%1%\"(e)ra soilik" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Bestelakoak" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Zeregina bertan behera utzi da" @@ -10701,9 +11050,6 @@ msgstr "Prozesu-profil bateragarriak" msgid "Printable space" msgstr "Inprimatzeko espazioa" -msgid "Printer Agent" -msgstr "Inprimagailu-agentea" - msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Hautatu sare-agentearen inplementazioa inprimagailuarekin komunikatzeko. Erabilgarri dauden agenteak abioan erregistratzen dira." @@ -12473,6 +12819,9 @@ msgstr "Erabili 3MF G-codearen ordez" 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 "Gaitu aukera hau inprimagailuak 3MF fitxategi bat inprimatze-lan gisa onartzen badu. Gaituta dagoenean, OrcaSlicerrek xerratutako fitxategia .gcode.3mf gisa bidaltzen du, .gcode fitxategi arrunt baten ordez." +msgid "Printer Agent" +msgstr "Inprimagailu-agentea" + msgid "Select the network agent implementation for printer communication." msgstr "Hautatu inprimagailuarekin komunikatzeko sare-agentearen inplementazioa." @@ -16596,9 +16945,6 @@ msgstr "Tartea ixteko erradioaren bikoitza baino txikiagoak diren pitzadurak bet msgid "Slicing Mode" msgstr "Xerratze-modua" -msgid "Other" -msgstr "Bestelakoak" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Erabili \"Bikoiti-bakoiti\" 3DLabPrint hegazkin-modeloetarako. Erabili \"Itxi zuloak\" modeloko zulo guztiak ixteko." @@ -17509,9 +17855,6 @@ msgstr "lerro-zabalera handiegia " msgid " not in range " msgstr " ez dago tartean " -msgid "Export 3MF" -msgstr "Esportatu 3MF" - msgid "This exports the project as a 3MF file." msgstr "Honek proiektua 3MF gisa esportatzen du." @@ -17527,9 +17870,6 @@ msgstr "Kargatu xerratze-datuak" msgid "Load cached slicing data from directory." msgstr "Kargatu cachean gordetako xerratze-datuak direktoriotik." -msgid "Export STL" -msgstr "Esportatu STL" - msgid "Export the objects as single STL." msgstr "Esportatu objektuak STL bakar gisa." @@ -18186,9 +18526,6 @@ msgstr "Fitxategiak erpin-indize baliogabea du." msgid "This OBJ file couldn't be read because it's empty." msgstr "OBJ fitxategi hau ezin izan da irakurri, hutsik dagoelako." -msgid "Max Volumetric Speed Calibration" -msgstr "Gehieneko abiadura bolumetrikoaren kalibrazioa" - msgid "Manage Result" msgstr "Kudeatu emaitza" @@ -19035,9 +19372,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "OHARRA: balio handiek geruza-desplazamendua eragin dezakete (>%s)" -msgid "Flow Ratio Calibration" -msgstr "Fluxu-erlazioaren kalibrazioa" - msgid "Calibration Test Type" msgstr "Kalibrazio-probaren mota" diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index 26b3d76150..0982d62593 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Guislain Cyril, Thomas Lété\n" @@ -4076,6 +4076,21 @@ msgstr "OrcaSlicer est né dans ce même esprit, en s’inspirant de PrusaSlicer msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Aujourd’hui, OrcaSlicer est le slicer open-source le plus utilisé et le plus activement développé de la communauté de l’impression 3D. Beaucoup de ses innovations ont été adoptées par d’autres slicers, ce qui en fait une force motrice pour toute l’industrie." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Imprimante" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "Réglage des matériaux AMS" @@ -5252,10 +5267,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "La valeur %s est hors plage. La plage valide est comprise entre %d et %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"Est-ce %s%% ou %s %s ?" +msgid "Is it %s%% or %s %s?" +msgstr "Est-ce %s%% ou %s %s ?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5615,9 +5631,6 @@ msgctxt "Noun" msgid "Print" msgstr "Imprimer" -msgid "Printer" -msgstr "Imprimante" - msgid "Time Estimation" msgstr "Estimation de temps" @@ -7338,6 +7351,231 @@ msgstr "Ne plus afficher cette boîte de dialogue" msgid "Please refer to Wiki before use->" msgstr "Veuillez consulter le Wiki avant utilisation ->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Exporter STL" + +msgid "Export 3MF" +msgstr "Exporter 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Calibration de la vitesse volumétrique maximale" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "Calibration du rapport de débit" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +msgid "Delete All Objects" +msgstr "Supprimer tous les objets" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +msgid "Split to Objects" +msgstr "Scinder en objets" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "Souris 3D déconnectée." @@ -8183,18 +8421,12 @@ msgstr "" msgid "Delete Object" msgstr "Supprimer l’objet" -msgid "Delete All Objects" -msgstr "Supprimer tous les objets" - msgid "Reset Project" msgstr "Réinitialiser le projet" msgid "The selected object couldn't be split." msgstr "L'objet sélectionné n'a pas pu être divisé." -msgid "Split to Objects" -msgstr "Scinder en objets" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Désactiver le dépôt automatique pour préserver le positionnement en Z ?\n" @@ -9241,9 +9473,6 @@ msgstr "Lors du défilement du curseur de couche dans l'aperçu découpé, affic msgid "Dimmed layer brightness" msgstr "Luminosité des couches assombries" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9777,6 +10006,126 @@ msgstr "Pour \"%1%\", ajoutez \"%2%\" comme nouveau préréglage" msgid "Simply switch to \"%1%\"" msgstr "Passez simplement à \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Autre" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Tâche annulée" @@ -10790,9 +11139,6 @@ msgstr "Profils de traitement compatibles" msgid "Printable space" msgstr "Espace imprimable" -msgid "Printer Agent" -msgstr "Agent d'imprimante" - msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Sélectionner l'implémentation de l'agent réseau pour la communication avec l'imprimante. Les agents disponibles sont enregistrés au démarrage." @@ -12567,6 +12913,9 @@ msgstr "Utiliser le 3MF au lieu du 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 "Activez ceci si l’imprimante accepte un fichier 3MF comme tâche d’impression. Lorsque cette option est activée, Orca Slicer envoie le fichier découpé au format .gcode.3mf au lieu d’un simple fichier .gcode." +msgid "Printer Agent" +msgstr "Agent d'imprimante" + msgid "Select the network agent implementation for printer communication." msgstr "Sélectionner l'implémentation de l'agent réseau pour la communication avec l'imprimante." @@ -16702,9 +17051,6 @@ msgstr "Les fissures plus petites que 2x le rayon de fermeture de l’espace son msgid "Slicing Mode" msgstr "Mode de découpe" -msgid "Other" -msgstr "Autre" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Utilisez « Pair-impair » pour les modèles d'avion 3DLabPrint. Utilisez « Fermer les trous » pour fermer tous les trous du modèle." @@ -17619,9 +17965,6 @@ msgstr "largeur de ligne trop grande " msgid " not in range " msgstr " hors plage " -msgid "Export 3MF" -msgstr "Exporter 3MF" - msgid "This exports the project as a 3MF file." msgstr "Exporter le projet au format 3MF." @@ -17637,9 +17980,6 @@ msgstr "Charger les données de tranchage" msgid "Load cached slicing data from directory." msgstr "Charger les données de tranchage mises en cache à partir du répertoire" -msgid "Export STL" -msgstr "Exporter STL" - msgid "Export the objects as single STL." msgstr "Exporter les objets en tant que STL unique." @@ -18296,9 +18636,6 @@ msgstr "Le fichier contient un index de sommets non valide." msgid "This OBJ file couldn't be read because it's empty." msgstr "Ce fichier OBJ n'a pas pu être lu car il est vide." -msgid "Max Volumetric Speed Calibration" -msgstr "Calibration de la vitesse volumétrique maximale" - msgid "Manage Result" msgstr "Gérer le résultat" @@ -19143,9 +19480,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "NOTE : Des valeurs élevées peuvent causer un décalage de couche (>%s)" -msgid "Flow Ratio Calibration" -msgstr "Calibration du rapport de débit" - msgid "Calibration Test Type" msgstr "Type de test de calibration" diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index 49e639927e..dda48aee71 100644 --- a/localization/i18n/hu/OrcaSlicer_hu.po +++ b/localization/i18n/hu/OrcaSlicer_hu.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4165,6 +4165,21 @@ msgstr "Az OrcaSlicer ugyanebben a szellemben indult, a PrusaSlicer, a BambuStud msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Ma az OrcaSlicer a legszélesebb körben használt és legaktívabban fejlesztett nyílt forráskódú szeletelő a 3D nyomtatási közösségben. Sok újítását más szeletelők is átvették, így az egész iparág hajtóereje." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Nyomtató" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS anyagok beállítása" @@ -5349,10 +5364,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "%s érték tartományon kívül van. Az érvényes tartomány: %d - %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"%s%% vagy %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "%s%% vagy %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5712,9 +5728,6 @@ msgctxt "Noun" msgid "Print" msgstr "Nyomtatás" -msgid "Printer" -msgstr "Nyomtató" - msgid "Time Estimation" msgstr "Időbecslés" @@ -7449,6 +7462,233 @@ msgstr "Ne jelenjen meg többé ez a párbeszédablak" msgid "Please refer to Wiki before use->" msgstr "Használat előtt nézd meg a Wikit ->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "STL exportálása" + +msgid "Export 3MF" +msgstr "3MF exportálása" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Max. volumetrikus sebesség kalibrálása" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "Anyagáramlás kalibrálás" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Összes objektum törlése" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Felosztás objektumokra" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D Mouse csatlakoztatva." @@ -8303,10 +8543,6 @@ msgstr "" msgid "Delete Object" msgstr "Objektum törlése" -# AI Translated -msgid "Delete All Objects" -msgstr "Összes objektum törlése" - # AI Translated msgid "Reset Project" msgstr "Projekt visszaállítása" @@ -8314,10 +8550,6 @@ msgstr "Projekt visszaállítása" msgid "The selected object couldn't be split." msgstr "A kijelölt objektumot nem lehet feldarabolni." -# AI Translated -msgid "Split to Objects" -msgstr "Felosztás objektumokra" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Letiltja az Auto-Drop funkciót a Z pozicionálás megőrzéséhez?\n" @@ -9383,9 +9615,6 @@ msgstr "A rétegcsúszka mozgatásakor a szeletelt előnézetben az aktuális r msgid "Dimmed layer brightness" msgstr "Elhalványított rétegek fényereje" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9937,6 +10166,126 @@ msgstr "Ehhez: \"%1%\", add hozzá \"%2%\"-t új beállításként" msgid "Simply switch to \"%1%\"" msgstr "Csak válts a(z) \"%1%\"-ra" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Egyéb" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Feladat megszakítva" @@ -10962,9 +11311,6 @@ msgstr "Kompatibilis folyamatprofilok" msgid "Printable space" msgstr "Nyomtatási terület" -msgid "Printer Agent" -msgstr "Nyomtatóügynök" - msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Válaszd ki a nyomtatóval való kommunikációhoz használt hálózati ügynököt. Az elérhető ügynököket indításkor regisztrálja a rendszer." @@ -12774,6 +13120,9 @@ msgstr "3MF használata G-kód helyett" 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 "Kapcsold be, ha a nyomtató 3MF fájlt fogad el nyomtatási feladatként. Bekapcsolva az Orca Slicer a szeletelt fájlt .gcode.3mf formátumban küldi el egyszerű .gcode fájl helyett." +msgid "Printer Agent" +msgstr "Nyomtatóügynök" + msgid "Select the network agent implementation for printer communication." msgstr "Válaszd ki a nyomtató kommunikációjához használt hálózati ügynök implementációját." @@ -16964,9 +17313,6 @@ msgstr "A háromszögháló szeletelésekor kitölti a hézagzárási sugár ké msgid "Slicing Mode" msgstr "Szeletelési mód" -msgid "Other" -msgstr "Egyéb" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Használd a \"Páros-páratlan\" opciót a 3DLabPrint repülőgépmodellekhez. Használd a \"Hézagok lezárása\" lehetőséget a modell összes házagának lezárásához." @@ -17892,9 +18238,6 @@ msgstr "túl nagy vonalszélesség " msgid " not in range " msgstr " nincs a tartományban " -msgid "Export 3MF" -msgstr "3MF exportálása" - msgid "This exports the project as a 3MF file." msgstr "Projekt exportálása 3MF formátumban." @@ -17910,9 +18253,6 @@ msgstr "Szeletelési adatok betöltése" msgid "Load cached slicing data from directory." msgstr "Gyorsítótárazott szeletelési adatok betöltése mappából" -msgid "Export STL" -msgstr "STL exportálása" - msgid "Export the objects as single STL." msgstr "Az objektumok exportálása egyetlen STL fájlként." @@ -18571,9 +18911,6 @@ msgstr "A fájl érvénytelen csúcsindexet tartalmaz." msgid "This OBJ file couldn't be read because it's empty." msgstr "Ez az OBJ fájl nem olvasható be, mert üres." -msgid "Max Volumetric Speed Calibration" -msgstr "Max. volumetrikus sebesség kalibrálása" - msgid "Manage Result" msgstr "Eredmények kezelése" @@ -19419,9 +19756,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "MEGJEGYZÉS: A magas értékek rétegeltolódást okozhatnak (>%s)" -msgid "Flow Ratio Calibration" -msgstr "Anyagáramlás kalibrálás" - msgid "Calibration Test Type" msgstr "Kalibrációs teszt típusa" diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index cd3d58fe61..d00e28edc9 100644 --- a/localization/i18n/it/OrcaSlicer_it.po +++ b/localization/i18n/it/OrcaSlicer_it.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4168,6 +4168,21 @@ msgstr "OrcaSlicer è nato con lo stesso spirito, traendo ispirazione da PrusaSl msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Oggi, OrcaSlicer è il programma di sezionamento a sorgente aperta più utilizzato e attivamente sviluppato nella comunità della stampa 3D. Molte delle sue innovazioni sono state adottate da altri programmi di stampa, rendendolo un punto di riferimento per l'intero settore." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Stampante" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "Impostazione materiali AMS" @@ -5350,10 +5365,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Il valore %s è fuori intervallo. L'intervallo valido è da %d a %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"È %s%% o %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "È %s%% o %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5713,9 +5729,6 @@ msgctxt "Noun" msgid "Print" msgstr "Stampa" -msgid "Printer" -msgstr "Stampante" - msgid "Time Estimation" msgstr "Tempo stimato" @@ -7452,6 +7465,233 @@ msgstr "Non mostrare più questa finestra di dialogo" msgid "Please refer to Wiki before use->" msgstr "Fare riferimento alla Wiki prima dell'uso ->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Esporta STL" + +msgid "Export 3MF" +msgstr "Esporta 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Calibrazione della velocità volumetrica massima" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "Calibrazione flusso di stampa" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Elimina tutti gli oggetti" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Dividi in oggetti" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "Mouse 3D disconnesso." @@ -8303,10 +8543,6 @@ msgstr "" msgid "Delete Object" msgstr "Elimina oggetto" -# AI Translated -msgid "Delete All Objects" -msgstr "Elimina tutti gli oggetti" - # AI Translated msgid "Reset Project" msgstr "Reimposta progetto" @@ -8314,10 +8550,6 @@ msgstr "Reimposta progetto" msgid "The selected object couldn't be split." msgstr "L'oggetto selezionato non può essere diviso." -# AI Translated -msgid "Split to Objects" -msgstr "Dividi in oggetti" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Disabilitare la funzione di Rilascio automatico per preservare il posizionamento sull'asse Z?\n" @@ -9402,9 +9634,6 @@ msgstr "Quando si scorre il cursore degli strati nell'anteprima elaborata, gli s msgid "Dimmed layer brightness" msgstr "Luminosità degli strati attenuati" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9955,6 +10184,126 @@ msgstr "Per \"%1%\", aggiungere \"%2%\" come nuovo profilo" msgid "Simply switch to \"%1%\"" msgstr "Passa semplicemente a \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Altro" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Attività annullata" @@ -10976,9 +11325,6 @@ msgstr "Profili di processo compatibili" msgid "Printable space" msgstr "Spazio di stampa" -msgid "Printer Agent" -msgstr "Agente stampante" - msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Selezionare l'implementazione dell'agente di rete per la comunicazione con la stampante. Gli agenti disponibili vengono registrati all'avvio." @@ -12794,6 +13140,9 @@ msgstr "Usa 3MF invece di 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 "Abilita questa opzione se la stampante accetta un file 3MF come processo di stampa. Quando è abilitata, Orca Slicer invia il file elaborato come .gcode.3mf, invece di un semplice file .gcode." +msgid "Printer Agent" +msgstr "Agente stampante" + msgid "Select the network agent implementation for printer communication." msgstr "Selezionare l'implementazione dell'agente di rete per la comunicazione con la stampante." @@ -16988,9 +17337,6 @@ msgstr "Le fessure più piccole di 2 volte il raggio di chiusura degli spazi vuo msgid "Slicing Mode" msgstr "Modalità elaborazione" -msgid "Other" -msgstr "Altro" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Usa \"Pari-dispari\" per modelli di aeroplano 3DLabPrint. Utilizza \"Chiudi fori\" per chiudere tutti i fori del modello." @@ -17915,9 +18261,6 @@ msgstr "larghezza della linea troppo grande " msgid " not in range " msgstr " fuori portata " -msgid "Export 3MF" -msgstr "Esporta 3MF" - msgid "This exports the project as a 3MF file." msgstr "Esporta il progetto come file 3MF." @@ -17933,9 +18276,6 @@ msgstr "Carica dati elaborati" msgid "Load cached slicing data from directory." msgstr "Carica i dati di elaborazione memorizzati nella cache dalla directory." -msgid "Export STL" -msgstr "Esporta STL" - msgid "Export the objects as single STL." msgstr "Esporta gli oggetti in un singolo STL." @@ -18594,9 +18934,6 @@ msgstr "Il file contiene un indice dei vertici non valido." msgid "This OBJ file couldn't be read because it's empty." msgstr "Impossibile leggere il file OBJ perché è vuoto." -msgid "Max Volumetric Speed Calibration" -msgstr "Calibrazione della velocità volumetrica massima" - msgid "Manage Result" msgstr "Gestisci risultato" @@ -19441,9 +19778,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "NOTA: valori elevati possono causare spostamento degli strati (>%s)" -msgid "Flow Ratio Calibration" -msgstr "Calibrazione flusso di stampa" - msgid "Calibration Test Type" msgstr "Tipo test calibrazione" diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index 11c12281a0..e0a168ddd4 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4178,6 +4178,21 @@ msgstr "OrcaSlicerも同じ精神のもと、PrusaSlicer、BambuStudio、SuperSl msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "現在、OrcaSlicerは3Dプリントコミュニティで最も広く使われ、最も活発に開発されているオープンソースのスライサーです。その革新の多くは他のスライサーにも採用され、業界全体を牽引する存在となっています。" +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "プリンター" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS素材設定" @@ -5364,10 +5379,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "値%sは範囲外です。有効な範囲は%dから%dです。" #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"%s%% か、それとも %s %sですか?" +msgid "Is it %s%% or %s %s?" +msgstr "%s%% か、それとも %s %sですか?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5729,9 +5745,6 @@ msgctxt "Noun" msgid "Print" msgstr "造形する" -msgid "Printer" -msgstr "プリンター" - msgid "Time Estimation" msgstr "予測時間" @@ -7461,6 +7474,235 @@ msgstr "このダイアログを再度表示しない" msgid "Please refer to Wiki before use->" msgstr "使用前にWikiを参照してください->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +# AI Translated +msgid "Export STL" +msgstr "STLをエクスポート" + +msgid "Export 3MF" +msgstr "3mf をエクスポート" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "最大体積速度キャリブレーション" + +msgid "Pressure Advance Calibration" +msgstr "" + +# AI Translated +msgid "Flow Ratio Calibration" +msgstr "流量比キャリブレーション" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "すべてのオブジェクトを削除" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "オブジェクトに分割" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D Mouseが切断されました。" @@ -8320,10 +8562,6 @@ msgstr "" msgid "Delete Object" msgstr "オブジェクトを削除" -# AI Translated -msgid "Delete All Objects" -msgstr "すべてのオブジェクトを削除" - # AI Translated msgid "Reset Project" msgstr "プロジェクトをリセット" @@ -8331,10 +8569,6 @@ msgstr "プロジェクトをリセット" msgid "The selected object couldn't be split." msgstr "選択したオブジェクトを分割できませんでした。" -# AI Translated -msgid "Split to Objects" -msgstr "オブジェクトに分割" - # AI Translated msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Z位置を維持するために自動ドロップを無効にしますか?\n" @@ -9423,9 +9657,6 @@ msgstr "スライスプレビューで積層スライダーを操作する際、 msgid "Dimmed layer brightness" msgstr "暗くした積層の明るさ" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9978,6 +10209,126 @@ msgstr "\"%1%\"に対して、\"%2%\"を新しいプリセットとして追加 msgid "Simply switch to \"%1%\"" msgstr "\"%1%\"に切り替え" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "その他" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "タスクを取消しました" @@ -10994,9 +11345,6 @@ 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 "プリンター通信用のネットワークエージェント実装を選択します。使用可能なエージェントは起動時に登録されます。" @@ -12838,6 +13186,9 @@ msgstr "G-codeの代わりに3MFを使用" 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 "プリンターが印刷ジョブとして3MFファイルを受け付ける場合に有効にします。有効にすると、Orca Slicerはスライス済みファイルを通常の.gcodeファイルではなく.gcode.3mfとして送信します。" +msgid "Printer Agent" +msgstr "プリンターエージェント" + msgid "Select the network agent implementation for printer communication." msgstr "プリンター通信用のネットワークエージェント実装を選択します。" @@ -17334,9 +17685,6 @@ msgstr "三角メッシュのスライス時に、隙間閉じ半径の2倍よ msgid "Slicing Mode" msgstr "スライシングモード" -msgid "Other" -msgstr "その他" - # AI Translated msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "3DLabPrintの飛行機モデルには「偶奇」を使用してください。モデル内のすべての穴を閉じるには「穴を閉じる」を使用してください。" @@ -18314,9 +18662,6 @@ msgstr "線幅が大きすぎます" msgid " not in range " msgstr "範囲外 " -msgid "Export 3MF" -msgstr "3mf をエクスポート" - msgid "This exports the project as a 3MF file." msgstr "プロジェクトを3MF式で出力" @@ -18332,10 +18677,6 @@ msgstr "スライスデータを読込み" msgid "Load cached slicing data from directory." msgstr "スライスデータを読込み" -# AI Translated -msgid "Export STL" -msgstr "STLをエクスポート" - # AI Translated msgid "Export the objects as single STL." msgstr "オブジェクトを単一のSTLとしてエクスポートします。" @@ -19062,9 +19403,6 @@ msgstr "ファイルに無効な頂点インデックスが含まれています msgid "This OBJ file couldn't be read because it's empty." msgstr "このOBJファイルは空なので読み込めませんでした。" -msgid "Max Volumetric Speed Calibration" -msgstr "最大体積速度キャリブレーション" - msgid "Manage Result" msgstr "結果を管理" @@ -19945,10 +20283,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "注意: 値が大きいとレイヤーずれが発生する場合があります (>%s)" -# AI Translated -msgid "Flow Ratio Calibration" -msgstr "流量比キャリブレーション" - # AI Translated msgid "Calibration Test Type" msgstr "キャリブレーションテストのタイプ" diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index 8864285965..c29a0723f7 100644 --- a/localization/i18n/ko/OrcaSlicer_ko.po +++ b/localization/i18n/ko/OrcaSlicer_ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2025-06-02 17:12+0900\n" "Last-Translator: crwusiz <crwusiz@gmail.com>\n" "Language-Team: \n" @@ -4185,6 +4185,21 @@ msgstr "OrcaSlicer도 같은 정신으로 시작하여 PrusaSlicer, BambuStudio, msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "오늘날 OrcaSlicer는 3D 프린팅 커뮤니티에서 가장 널리 사용되고 가장 활발하게 개발되는 오픈 소스 슬라이서입니다. 그 혁신 가운데 다수가 다른 슬라이서에도 채택되어 업계 전체를 이끄는 원동력이 되고 있습니다." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "프린터" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS 재료 설정" @@ -5375,10 +5390,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "값 %s이 범위를 벗어났습니다. 유효한 범위는 %d에서 %d까지입니다." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"%s%% 또는 %s %s입니까?" +msgid "Is it %s%% or %s %s?" +msgstr "%s%% 또는 %s %s입니까?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5741,9 +5757,6 @@ msgctxt "Noun" msgid "Print" msgstr "출력" -msgid "Printer" -msgstr "프린터" - msgid "Time Estimation" msgstr "추정 시간" @@ -7473,6 +7486,234 @@ msgstr "이 대화 상자를 다시 표시하지 마세요." msgid "Please refer to Wiki before use->" msgstr "사용하기 전에 Wiki를 참조하십시오->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "STL 내보내기" + +msgid "Export 3MF" +msgstr "3MF 내보내기" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "최대 압출 속도 교정" + +msgid "Pressure Advance Calibration" +msgstr "" + +# AI Translated +msgid "Flow Ratio Calibration" +msgstr "압출량 비율 교정" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "모든 객체 삭제" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "객체로 분할" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D 마우스가 분리됨." @@ -8341,10 +8582,6 @@ msgstr "" msgid "Delete Object" msgstr "객체 삭제" -# AI Translated -msgid "Delete All Objects" -msgstr "모든 객체 삭제" - # AI Translated msgid "Reset Project" msgstr "프로젝트 초기화" @@ -8352,10 +8589,6 @@ msgstr "프로젝트 초기화" msgid "The selected object couldn't be split." msgstr "선택한 객체를 분할할 수 없습니다." -# AI Translated -msgid "Split to Objects" -msgstr "객체로 분할" - # AI Translated msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Z 위치를 유지하기 위해 자동 내려놓기를 비활성화하시겠습니까?\n" @@ -9497,9 +9730,6 @@ msgstr "슬라이스된 미리보기에서 레이어 슬라이더를 움직일 msgid "Dimmed layer brightness" msgstr "어둡게 표시된 레이어의 밝기" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -10068,6 +10298,126 @@ msgstr "%1%에 대해, %2%를 새 사전 설정으로 추가합니다" msgid "Simply switch to \"%1%\"" msgstr "\"%1%\"로 단순 전환" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "기타" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "작업이 취소됨" @@ -11103,10 +11453,6 @@ msgstr "호환 프로세스 사전설정" msgid "Printable space" msgstr "출력 가능 공간" -# AI Translated -msgid "Printer Agent" -msgstr "프린터 에이전트" - # AI Translated msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "프린터 통신에 사용할 네트워크 에이전트 구현을 선택합니다. 사용 가능한 에이전트는 시작 시 등록됩니다." @@ -12975,6 +13321,10 @@ msgstr "G-code 대신 3MF 사용" 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 "프린터가 출력 작업으로 3MF 파일을 허용하는 경우 이 옵션을 활성화하십시오. 활성화하면 Orca Slicer가 슬라이스된 파일을 일반 .gcode 파일 대신 .gcode.3mf로 전송합니다." +# AI Translated +msgid "Printer Agent" +msgstr "프린터 에이전트" + # AI Translated msgid "Select the network agent implementation for printer communication." msgstr "프린터 통신에 사용할 네트워크 에이전트 구현을 선택합니다." @@ -17295,9 +17645,6 @@ msgstr "간격 폐쇄 반경의 2배보다 작은 균열은 삼각형 메시 슬 msgid "Slicing Mode" msgstr "슬라이싱 모드" -msgid "Other" -msgstr "기타" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "3DLabPrint 비행기 모델에는 \"짝수-홀수\"를 사용하세요. \"구멍 닫기\"를 사용하여 모델의 모든 구멍을 닫습니다." @@ -18247,9 +18594,6 @@ msgstr "너무 넓은 선 너비 " msgid " not in range " msgstr " 범위를 벗어남 " -msgid "Export 3MF" -msgstr "3MF 내보내기" - msgid "This exports the project as a 3MF file." msgstr "프로젝트를 3MF로 내보내기." @@ -18265,9 +18609,6 @@ msgstr "슬라이싱 데이터 로드" msgid "Load cached slicing data from directory." msgstr "디렉토리에 캐시된 슬라이싱 데이터 로드" -msgid "Export STL" -msgstr "STL 내보내기" - msgid "Export the objects as single STL." msgstr "객체를 단일 STL로 내보냅니다." @@ -18943,9 +19284,6 @@ msgstr "파일에 잘못된 꼭지점 인덱스가 포함되어 있습니다." msgid "This OBJ file couldn't be read because it's empty." msgstr "이 OBJ 파일은 비어 있어서 읽을 수 없습니다." -msgid "Max Volumetric Speed Calibration" -msgstr "최대 압출 속도 교정" - msgid "Manage Result" msgstr "결과 관리" @@ -19828,10 +20166,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "참고: 값이 크면 레이어 밀림이 발생할 수 있습니다 (>%s)" -# AI Translated -msgid "Flow Ratio Calibration" -msgstr "압출량 비율 교정" - # AI Translated msgid "Calibration Test Type" msgstr "교정 테스트 유형" diff --git a/localization/i18n/list.txt b/localization/i18n/list.txt index 13be57a17e..c91efdbe58 100644 --- a/localization/i18n/list.txt +++ b/localization/i18n/list.txt @@ -125,6 +125,7 @@ src/slic3r/GUI/ThermalPreconditioningDialog.hpp src/slic3r/GUI/Jobs/SLAImportJob.cpp src/slic3r/GUI/Jobs/UpgradeNetworkJob.cpp src/slic3r/GUI/AboutDialog.cpp +src/slic3r/GUI/ActionRegistry.cpp src/slic3r/GUI/AMSMaterialsSetting.cpp src/slic3r/GUI/ExtrusionCalibration.cpp src/slic3r/GUI/AmsMappingPopup.cpp @@ -159,6 +160,7 @@ src/slic3r/GUI/SelectMachinePop.cpp src/slic3r/GUI/StatusPanel.cpp src/slic3r/GUI/Monitor.cpp src/slic3r/GUI/MsgDialog.cpp +src/slic3r/GUI/NativeCommands.cpp src/slic3r/GUI/NotificationManager.hpp src/slic3r/GUI/NotificationManager.cpp src/slic3r/GUI/ObjectDataViewModel.cpp @@ -180,6 +182,7 @@ src/slic3r/GUI/PublishSettingsDialog.cpp src/slic3r/GUI/SavePresetDialog.cpp src/slic3r/GUI/Search.cpp src/slic3r/GUI/SettingsIndex.cpp +src/slic3r/GUI/SpeedDialDialog.cpp src/slic3r/GUI/Selection.cpp src/slic3r/GUI/SelectMachine.cpp src/slic3r/GUI/PrePrintChecker.cpp diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po index d052b87a93..0384fde3aa 100644 --- a/localization/i18n/lt/OrcaSlicer_lt.po +++ b/localization/i18n/lt/OrcaSlicer_lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2026-07-02 14:13+0300\n" "Last-Translator: Gintaras Kučinskas <sharanchius@gmail.com>\n" "Language-Team: \n" @@ -4155,6 +4155,21 @@ msgstr "„OrcaSlicer“ buvo sukurtas vadovaujantis ta pačia dvasia, remiantis msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Šiandien „OrcaSlicer“ yra plačiausiai naudojama ir aktyviausiai tobulinama atvirojo kodo paruošimo spausdinimui (slicer) programa 3D spausdinimo bendruomenėje.. Daugelis jos naujovių buvo perimtos kitų pjaustymo programų, todėl ji tapo visos pramonės varomąja jėga." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Spausdintuvas" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS medžiagų nuostatos" @@ -5336,10 +5351,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Reikšmė %s yra už ribų. Galimas diapazonas yra nuo %d iki %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"Ar tai %s%% ar %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "Ar tai %s%% ar %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5699,9 +5715,6 @@ msgctxt "Noun" msgid "Print" msgstr "Spausdinti" -msgid "Printer" -msgstr "Spausdintuvas" - msgid "Time Estimation" msgstr "Laiko įvertis (skaičiavimas)" @@ -7433,6 +7446,233 @@ msgstr "Daugiau nerodyti šio dialogo lango" msgid "Please refer to Wiki before use->" msgstr "Prieš naudodami peržiūrėkite „Wiki“ ->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Eksportuoti STL" + +msgid "Export 3MF" +msgstr "Eksportuoti 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Didžiausio tūrinio greičio kalibravimas" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "Srauto santykio kalibravimas" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Ištrinti visus objektus" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Skaidyti į objektus" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D pelė atjungta." @@ -8295,10 +8535,6 @@ msgstr "" msgid "Delete Object" msgstr "Ištrinti objektą" -# AI Translated -msgid "Delete All Objects" -msgstr "Ištrinti visus objektus" - # AI Translated msgid "Reset Project" msgstr "Atkurti projektą" @@ -8306,10 +8542,6 @@ msgstr "Atkurti projektą" msgid "The selected object couldn't be split." msgstr "Pasirinkto objekto negalima suskaidyti." -# AI Translated -msgid "Split to Objects" -msgstr "Skaidyti į objektus" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Išjungti automatinį nuleidimą, kad būtų išsaugota Z pozicija?\n" @@ -9358,9 +9590,6 @@ msgstr "Slenkant sluoksnių slankiklį pjaustytoje peržiūroje, atvaizduoti že msgid "Dimmed layer brightness" msgstr "Pritemdytų sluoksnių ryškumas" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9894,6 +10123,126 @@ msgstr "Profilio „%1%“ atveju, pridėti „%2%“ kaip naują profilį" msgid "Simply switch to \"%1%\"" msgstr "Paprasčiausiai persijunkite į \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Kita" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Užduotis atšaukta" @@ -10912,9 +11261,6 @@ msgstr "Suderinami apdorojimo profiliai" msgid "Printable space" msgstr "Erdvė spausdinimui" -msgid "Printer Agent" -msgstr "Spausdintuvo agentas" - msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Pasirinkite tinklo agento modulį ryšiui su spausdintuvu palaikyti. Prieinami agentai užregistruojami paleidimo metu." @@ -12700,6 +13046,9 @@ msgstr "Vietoj G-kodo naudoti 3MF" 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 "Įjunkite, jei spausdintuvas spausdinimo užduotims priima 3MF failus. Kai įjungta, „Orca Slicer“ sugeneruotą failą siunčia kaip „.gcode.3mf“, o ne kaip paprastą „.gcode“ failą." +msgid "Printer Agent" +msgstr "Spausdintuvo agentas" + msgid "Select the network agent implementation for printer communication." msgstr "Pasirinkite tinklo agento modulį ryšiui su spausdintuvu palaikyti." @@ -16834,9 +17183,6 @@ msgstr "Plyšiai, mažesni nei 2x tarpo uždarymo spindulys, užpildomi trikampi msgid "Slicing Mode" msgstr "Sluoksniavimo režimas" -msgid "Other" -msgstr "Kita" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "„3DLabPrint“ lėktuvų modeliams naudokite „Lyginis-nelyginis“. Naudokite „Uždaryti kiaurymes“, kad uždarytumėte visas modelio kiaurymes." @@ -17767,9 +18113,6 @@ msgstr "per didelis linijos plotis " msgid " not in range " msgstr " nepatenka į intervalą " -msgid "Export 3MF" -msgstr "Eksportuoti 3MF" - msgid "This exports the project as a 3MF file." msgstr "Tai eksportuoja projektą kaip 3MF failą." @@ -17785,9 +18128,6 @@ msgstr "Įkelti sluoksniavimo duomenis" msgid "Load cached slicing data from directory." msgstr "Įkelti į talpyklą įrašytus sluoksniavimo duomenis iš katalogo." -msgid "Export STL" -msgstr "Eksportuoti STL" - msgid "Export the objects as single STL." msgstr "Eksportuoti visus objektus kaip vieną STL." @@ -18446,9 +18786,6 @@ msgstr "Faile yra neteisingas viršūnių indeksas." msgid "This OBJ file couldn't be read because it's empty." msgstr "Šio OBJ failo nepavyko perskaityti, nes jis tuščias." -msgid "Max Volumetric Speed Calibration" -msgstr "Didžiausio tūrinio greičio kalibravimas" - msgid "Manage Result" msgstr "Tvarkyti rezultatus" @@ -19296,9 +19633,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "PASTABA: didelės reikšmės gali lemti sluoksnių poslinkį (Layer shift) (>%s)" -msgid "Flow Ratio Calibration" -msgstr "Srauto santykio kalibravimas" - msgid "Calibration Test Type" msgstr "Kalibravimo testo tipas" diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index e6f6388186..d283a3c231 100644 --- a/localization/i18n/nl/OrcaSlicer_nl.po +++ b/localization/i18n/nl/OrcaSlicer_nl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4536,6 +4536,22 @@ msgstr "OrcaSlicer begon in diezelfde geest en putte uit PrusaSlicer, BambuStudi msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Vandaag de dag is OrcaSlicer de meest gebruikte en actiefst ontwikkelde open-source slicer in de 3D-printgemeenschap. Veel van zijn innovaties zijn overgenomen door andere slicers, waardoor het een drijvende kracht is voor de hele branche." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +# AI Translated +msgid "Printer" +msgstr "Printer" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS Materiaal instellingen" @@ -5842,10 +5858,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Waarde %s valt buiten het bereik. Het geldige bereik loopt van %d tot %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"Is het %s%% or %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "Is het %s%% or %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -6232,10 +6249,6 @@ msgctxt "Noun" msgid "Print" msgstr "Print" -# AI Translated -msgid "Printer" -msgstr "Printer" - msgid "Time Estimation" msgstr "Geschatte duur" @@ -8120,6 +8133,234 @@ msgstr "Dit dialoogvenster niet meer tonen" msgid "Please refer to Wiki before use->" msgstr "Raadpleeg de wiki vóór gebruik->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "STL exporteren" + +msgid "Export 3MF" +msgstr "Exporteer 3mf" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Kalibratie van maximale volumetrische snelheid" + +msgid "Pressure Advance Calibration" +msgstr "" + +# AI Translated +msgid "Flow Ratio Calibration" +msgstr "Kalibratie van de flow verhouding" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Alle objecten verwijderen" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Splitsen naar objecten" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D-muis losgekoppeld." @@ -9052,10 +9293,6 @@ msgstr "" msgid "Delete Object" msgstr "Object verwijderen" -# AI Translated -msgid "Delete All Objects" -msgstr "Alle objecten verwijderen" - # AI Translated msgid "Reset Project" msgstr "Project terugzetten" @@ -9063,10 +9300,6 @@ msgstr "Project terugzetten" msgid "The selected object couldn't be split." msgstr "Het geselecteerde object kan niet opgesplitst worden." -# AI Translated -msgid "Split to Objects" -msgstr "Splitsen naar objecten" - # AI Translated msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Automatisch laten vallen uitschakelen om de Z-positie te behouden?\n" @@ -10249,9 +10482,6 @@ msgstr "Bij het verschuiven van de laagschuifregelaar in de slicevoorvertoning w msgid "Dimmed layer brightness" msgstr "Helderheid van gedimde lagen" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -10829,6 +11059,126 @@ msgstr "Voor \"%1%\", dient \"%2%\" toegevoegd te worden als nieuwe voorinstelli msgid "Simply switch to \"%1%\"" msgstr "Schakel eenvoudig over naar \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Anders" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Taak geannuleerd" @@ -11931,10 +12281,6 @@ msgstr "Geschikte proces profielen" msgid "Printable space" msgstr "Ruimte waarbinnen geprint kan worden" -# AI Translated -msgid "Printer Agent" -msgstr "Printeragent" - # AI Translated msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Selecteer de implementatie van de netwerkagent voor de communicatie met de printer. Beschikbare agenten worden bij het opstarten geregistreerd." @@ -13926,6 +14272,10 @@ msgstr "3MF gebruiken in plaats van 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 "Schakel dit in als de printer een 3MF-bestand als printopdracht accepteert. Indien ingeschakeld verzendt Orca Slicer het geslicede bestand als een .gcode.3mf in plaats van als een gewoon .gcode-bestand." +# AI Translated +msgid "Printer Agent" +msgstr "Printeragent" + # AI Translated msgid "Select the network agent implementation for printer communication." msgstr "Selecteer de implementatie van de netwerkagent voor de communicatie met de printer." @@ -18625,9 +18975,6 @@ msgstr "Scheuren kleiner dan 2x de sluitradius van de spleet worden opgevuld tij msgid "Slicing Mode" msgstr "Slicing-modus" -msgid "Other" -msgstr "Anders" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Gebruik „Even-Oneven” voor 3DLabPrint-vliegtuigmodellen. Gebruik „Gaten sluiten” om alle gaten in het model te sluiten." @@ -19643,9 +19990,6 @@ msgstr "te grote lijnbreedte " msgid " not in range " msgstr " niet in bereik " -msgid "Export 3MF" -msgstr "Exporteer 3mf" - msgid "This exports the project as a 3MF file." msgstr "Dit exporteert het project als 3MF." @@ -19661,9 +20005,6 @@ msgstr "Laad slicinggegevens" msgid "Load cached slicing data from directory." msgstr "Laad slicinggegevens in de cache uit de directory" -msgid "Export STL" -msgstr "STL exporteren" - # AI Translated msgid "Export the objects as single STL." msgstr "Exporteer de objecten als één STL." @@ -20478,9 +20819,6 @@ msgstr "Het bestand bevat een ongeldige hoekpuntindex." msgid "This OBJ file couldn't be read because it's empty." msgstr "Dit OBJ-bestand kon niet worden gelezen omdat het leeg is." -msgid "Max Volumetric Speed Calibration" -msgstr "Kalibratie van maximale volumetrische snelheid" - msgid "Manage Result" msgstr "Resultaat beheren" @@ -21389,10 +21727,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "LET OP: hoge waarden kunnen laagverschuiving veroorzaken (>%s)" -# AI Translated -msgid "Flow Ratio Calibration" -msgstr "Kalibratie van de flow verhouding" - # AI Translated msgid "Calibration Test Type" msgstr "Type kalibratietest" diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index 3d7e64384f..d6728e9c40 100644 --- a/localization/i18n/pl/OrcaSlicer_pl.po +++ b/localization/i18n/pl/OrcaSlicer_pl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer 2.3.0-rc\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: Krzysztof Morga <<tlumaczeniebs@gmail.com>>\n" "Language-Team: \n" @@ -4260,6 +4260,21 @@ msgstr "OrcaSlicer powstał w tym samym duchu, czerpiąc z PrusaSlicer, BambuStu msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Dziś OrcaSlicer jest najczęściej używanym i najaktywniej rozwijanym otwartoźródłowym slicerem w społeczności druku 3D. Wiele jego innowacji zostało przejętych przez inne slicery, co czyni go siłą napędową całej branży." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Drukarka" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "Ustawienia filamentów AMS" @@ -5463,10 +5478,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Wartość %s jest spoza zakresu. Poprawny zakres wynosi od %d do %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"Czy to %s%% czy %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "Czy to %s%% czy %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5838,9 +5854,6 @@ msgctxt "Noun" msgid "Print" msgstr "Drukuj" -msgid "Printer" -msgstr "Drukarka" - msgid "Time Estimation" msgstr "Szacowany czas" @@ -7621,6 +7634,234 @@ msgstr "Nie pokazuj tego okna dialogowego ponownie" msgid "Please refer to Wiki before use->" msgstr "Przed użyciem zapoznaj się z Wiki->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Eksportuj STL" + +msgid "Export 3MF" +msgstr "Eksportuj 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Kalibracja Maks. Prędkości Przepływu" + +msgid "Pressure Advance Calibration" +msgstr "" + +# AI Translated +msgid "Flow Ratio Calibration" +msgstr "Kalibracja współczynnika przepływu" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Usuń wszystkie obiekty" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Podziel na obiekty" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "Mysz 3D niepodłączona." @@ -8497,10 +8738,6 @@ msgstr "" msgid "Delete Object" msgstr "Usuń obiekt" -# AI Translated -msgid "Delete All Objects" -msgstr "Usuń wszystkie obiekty" - # AI Translated msgid "Reset Project" msgstr "Zresetuj projekt" @@ -8508,10 +8745,6 @@ msgstr "Zresetuj projekt" msgid "The selected object couldn't be split." msgstr "Nie można podzielić wybranego obiektu." -# AI Translated -msgid "Split to Objects" -msgstr "Podziel na obiekty" - # AI Translated msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Wyłączyć automatyczne opuszczanie, aby zachować pozycję Z?\n" @@ -9652,9 +9885,6 @@ msgstr "Podczas przewijania suwaka warstw w podglądzie po cięciu renderuj wars msgid "Dimmed layer brightness" msgstr "Jasność przyciemnionych warstw" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -10224,6 +10454,126 @@ msgstr "Dla „%1%” dodaj „%2%” jako nowy szablon" msgid "Simply switch to \"%1%\"" msgstr "Po prostu przełącz na „%1%”" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Inne" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Zadanie anulowane" @@ -11275,10 +11625,6 @@ msgstr "Kompatybilne profile procesów" msgid "Printable space" msgstr "Przestrzeń do druku" -# AI Translated -msgid "Printer Agent" -msgstr "Agent drukarki" - # AI Translated msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Wybierz implementację agenta sieciowego do komunikacji z drukarką. Dostępni agenci są rejestrowani przy uruchamianiu." @@ -13144,6 +13490,10 @@ msgstr "Użyj 3MF zamiast 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 "Włącz tę opcję, jeśli drukarka przyjmuje plik 3MF jako zadanie druku. Po włączeniu Orca Slicer wysyła plik po cięciu jako .gcode.3mf zamiast zwykłego pliku .gcode." +# AI Translated +msgid "Printer Agent" +msgstr "Agent drukarki" + # AI Translated msgid "Select the network agent implementation for printer communication." msgstr "Wybierz implementację agenta sieciowego do komunikacji z drukarką." @@ -17472,9 +17822,6 @@ msgstr "Szpary mniejsze niż dwukrotność wartości parametru „promień zamyk msgid "Slicing Mode" msgstr "Tryb cięcia" -msgid "Other" -msgstr "Inne" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Użyj „Parzysto-nieparzysty” dla modeli samolotów 3DLabPrint. Użyj „Zamknij otwory” do zamknięcia wszystkich otworów w modelu." @@ -18426,9 +18773,6 @@ msgstr "zbyt duża szerokość linii " msgid " not in range " msgstr " nie w zakresie " -msgid "Export 3MF" -msgstr "Eksportuj 3MF" - msgid "This exports the project as a 3MF file." msgstr "Eksportuj projekt jako 3MF." @@ -18444,9 +18788,6 @@ msgstr "Wczytaj dane cięcia" msgid "Load cached slicing data from directory." msgstr "Załaduj buforowane dane slicowania z katalogu" -msgid "Export STL" -msgstr "Eksportuj STL" - msgid "Export the objects as single STL." msgstr "Eksportuj obiekty jako jeden plik STL." @@ -19119,9 +19460,6 @@ msgstr "Plik zawiera nieprawidłowy indeks wierzchołka." msgid "This OBJ file couldn't be read because it's empty." msgstr "Ten plik OBJ nie mógł zostać odczytany, ponieważ jest pusty." -msgid "Max Volumetric Speed Calibration" -msgstr "Kalibracja Maks. Prędkości Przepływu" - msgid "Manage Result" msgstr "Zarządzanie Wynikiem" @@ -20006,10 +20344,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "UWAGA: wysokie wartości mogą powodować przesunięcie warstw (>%s)" -# AI Translated -msgid "Flow Ratio Calibration" -msgstr "Kalibracja współczynnika przepływu" - # AI Translated msgid "Calibration Test Type" msgstr "Typ testu kalibracyjnego" diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index ac4425c723..5285bf2d6e 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2026-07-26 11:14-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: Portuguese, Brazilian\n" @@ -4011,6 +4011,21 @@ msgstr "O OrcaSlicer começou com esse mesmo espírito, inspirando-se no PrusaSl msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Atualmente, o OrcaSlicer é o fatiador de código aberto mais utilizado e ativamente desenvolvido na comunidade de impressão 3D. Muitas de suas inovações foram adotadas por outros fatiadores, tornando-o uma força motriz para toda a indústria." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Impressora" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "Configuração de Materiais AMS" @@ -5180,10 +5195,12 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Valor %s está fora do intervalo. O intervalo válido é de %d para %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"É %s%% ou %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "É %s%% ou %s %s?" + +# AI Translated +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5538,9 +5555,6 @@ msgctxt "Noun" msgid "Print" msgstr "Impressão" -msgid "Printer" -msgstr "Impressora" - msgid "Time Estimation" msgstr "Estimativa de Tempo" @@ -7259,6 +7273,232 @@ msgstr "Não mostrar esse diálogo novamente" msgid "Please refer to Wiki before use->" msgstr "Consulte o Wiki antes de usar->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Exportar STL" + +msgid "Export 3MF" +msgstr "Exportar 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Calibração de Velocidade Volumétrica Máxima" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "Calibração de Taxa de Fluxo" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +msgid "Delete All Objects" +msgstr "Excluir Todos os Objetos" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Dividir em objetos" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "Mouse 3D desconectado." @@ -8082,19 +8322,12 @@ msgstr "" msgid "Delete Object" msgstr "Excluir Objeto" -msgid "Delete All Objects" -msgstr "Excluir Todos os Objetos" - msgid "Reset Project" msgstr "Redefinir Projeto" msgid "The selected object couldn't be split." msgstr "O objeto selecionado não pôde ser dividido." -# AI Translated -msgid "Split to Objects" -msgstr "Dividir em objetos" - # AI Translated msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Desativar a Queda automática para preservar o posicionamento Z?\n" @@ -9143,10 +9376,6 @@ msgstr "Ao mover o controle deslizante de camadas na pré-visualização fatiada msgid "Dimmed layer brightness" msgstr "Brilho das camadas escurecidas" -# AI Translated -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9680,6 +9909,126 @@ msgstr "Para \"%1%\", adicione \"%2%\" como uma nova predefinição" msgid "Simply switch to \"%1%\"" msgstr "Simplesmente mude para \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Outro" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Tarefa cancelada" @@ -10656,9 +11005,6 @@ msgstr "Perfis de processo compatíveis" msgid "Printable space" msgstr "Espaço de impressão" -msgid "Printer Agent" -msgstr "Agente de Impressora" - msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Selecione a implementação do agente de rede para comunicação com a impressora. Os agentes disponíveis são registrados na inicialização." @@ -12418,6 +12764,9 @@ msgstr "Usar 3MF em vez 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 "Ative esta opção se a impressora aceitar um arquivo 3MF como trabalho de impressão. Quando ativada, o OrcaSlicer envia o arquivo fatiado como .gcode.3mf, em vez de um arquivo .gcode comum." +msgid "Printer Agent" +msgstr "Agente de Impressora" + msgid "Select the network agent implementation for printer communication." msgstr "Selecione a implementação do agente de rede para comunicação com a impressora." @@ -16495,9 +16844,6 @@ msgstr "Frestas menores que 2x o vão de fatiamento serão preenchidas durante o msgid "Slicing Mode" msgstr "Modo de Fatiamento" -msgid "Other" -msgstr "Outro" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Usar \"Par-impar\" para modelos de avião 3DLabPrint. Use \"Fechar buracos\" para fechar todos os buracos no modelo." @@ -17393,9 +17739,6 @@ msgstr "largura de linha muito grande " msgid " not in range " msgstr " fora do intervalo " -msgid "Export 3MF" -msgstr "Exportar 3MF" - msgid "This exports the project as a 3MF file." msgstr "Isso exporta o projeto como um arquivo 3MF." @@ -17411,9 +17754,6 @@ msgstr "Carregar dados de fatiamento" msgid "Load cached slicing data from directory." msgstr "Carregar dados de fatiamento em cache do diretório." -msgid "Export STL" -msgstr "Exportar STL" - msgid "Export the objects as single STL." msgstr "Exporte os objetos como STL único." @@ -18069,9 +18409,6 @@ msgstr "O arquivo contém um índice de vértice inválido." msgid "This OBJ file couldn't be read because it's empty." msgstr "Este arquivo OBJ não pôde ser lido porque está vazio." -msgid "Max Volumetric Speed Calibration" -msgstr "Calibração de Velocidade Volumétrica Máxima" - msgid "Manage Result" msgstr "Gerenciar Resultado" @@ -18906,9 +19243,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "NOTA: Valores altos podem causar deslocamento de camada (>%s)" -msgid "Flow Ratio Calibration" -msgstr "Calibração de Taxa de Fluxo" - msgid "Calibration Test Type" msgstr "Tipo de Teste de Calibração" diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index 2ac4e13e95..e3274d939c 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer V2.5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2026-02-25 13:38+0300\n" "Last-Translator: Felix14_v2\n" "Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg <andylg@yandex.ru>\n" @@ -4140,6 +4140,21 @@ msgstr "OrcaSlicer начинал свой путь с тем же замысл msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "В наши дни OrcaSlicer – самый прогрессивный и распространённый в сообществе слайсер с открытым исходным кодом. Благодаря множеству инноваций он становится основой других слайсеров и движущей силой всей индустрии 3D-печати." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Принтер" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "Настройка материалов AMS" @@ -5346,10 +5361,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Значение %s выходит за пределы допустимого диапазона. Допустимый диапазон - от %d до %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"Имелось ввиду %s%% или %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "Имелось ввиду %s%% или %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5732,9 +5748,6 @@ msgctxt "Noun" msgid "Print" msgstr "Печать" -msgid "Printer" -msgstr "Принтер" - msgid "Time Estimation" msgstr "Оценка времени" @@ -7512,6 +7525,231 @@ msgstr "Не показывать снова" msgid "Please refer to Wiki before use->" msgstr "Перед использованием обратитесь к руководству →" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Экспорт в STL" + +msgid "Export 3MF" +msgstr "Экспорт в 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Калибровка макс. объёмного расхода" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "Калибровка коэффициента потока" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +msgid "Delete All Objects" +msgstr "Удалить все модели" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +msgid "Split to Objects" +msgstr "Разделить на модели" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D-мышь отключена." @@ -8361,18 +8599,12 @@ msgstr "" msgid "Delete Object" msgstr "Удалить модель" -msgid "Delete All Objects" -msgstr "Удалить все модели" - msgid "Reset Project" msgstr "Сбросить проект" msgid "The selected object couldn't be split." msgstr "Невозможно разделить выбранную модель." -msgid "Split to Objects" -msgstr "Разделить на модели" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Отключить притягивание компонентов к столу для сохранения высоты?\n" @@ -9427,9 +9659,6 @@ 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." @@ -9976,6 +10205,126 @@ msgstr "Для «%1%» добавить «%2%» как новый профиль msgid "Simply switch to \"%1%\"" msgstr "Просто переключиться на «%1%»" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Прочее" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Задание отменено" @@ -10996,9 +11345,6 @@ 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 "Реализация сетевого агента для обмена информацией с принтером. Доступные реализации определяются при запуске." @@ -12787,6 +13133,9 @@ msgstr "Сжатие G-кода перед отправкой" 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 "Рекомендуется для принтеров, поддерживающих печать из архивов 3MF. Файлы печати будут отправляться с расширением \".gcode.3mf\"." +msgid "Printer Agent" +msgstr "Сетевой агент" + msgid "Select the network agent implementation for printer communication." msgstr "Реализация сетевого агента для обмена информацией с принтером." @@ -17334,9 +17683,6 @@ msgstr "Часто в импортируемых в программу моде msgid "Slicing Mode" msgstr "Режим нарезки" -msgid "Other" -msgstr "Прочее" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "" "Режим нарезки «Чётный-нечётный» применяется для моделей с намеренно нарушенной целостностью. Например, для моделей самолётов с ресурса 3DLabPrint.\n" @@ -18363,9 +18709,6 @@ msgstr "слишком большая ширина линии " msgid " not in range " msgstr " вне диапазона " -msgid "Export 3MF" -msgstr "Экспорт в 3MF" - msgid "This exports the project as a 3MF file." msgstr "Экспорт проекта в 3MF." @@ -18382,9 +18725,6 @@ msgstr "Загрузка данных о нарезке" msgid "Load cached slicing data from directory." msgstr "Загрузка кэша данных нарезки из папки." -msgid "Export STL" -msgstr "Экспорт в STL" - msgid "Export the objects as single STL." msgstr "Экспорт моделей в единый STL-файл." @@ -19087,9 +19427,6 @@ msgstr "Файл содержит неверное количество верш msgid "This OBJ file couldn't be read because it's empty." msgstr "Этот OBJ файл не может быть прочитан, так как он пуст." -msgid "Max Volumetric Speed Calibration" -msgstr "Калибровка макс. объёмного расхода" - msgid "Manage Result" msgstr "Управление результатами" @@ -19944,9 +20281,6 @@ msgstr "Скорость должна быть в диапазоне от 0 до msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "Примечание: высокие значения могут привести к смещению слоёв (>%s)" -msgid "Flow Ratio Calibration" -msgstr "Калибровка коэффициента потока" - msgid "Calibration Test Type" msgstr "Вариант калибровки" diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index 53abe120c3..4fee82d858 100644 --- a/localization/i18n/sv/OrcaSlicer_sv.po +++ b/localization/i18n/sv/OrcaSlicer_sv.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4595,6 +4595,21 @@ msgstr "OrcaSlicer började i samma anda och hämtade från PrusaSlicer, BambuSt msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "I dag är OrcaSlicer det mest använda och mest aktivt utvecklade beredningsprogrammet med öppen källkod i 3D-utskriftscommunityn. Många av dess nyheter har tagits upp av andra program, vilket gör det till en drivkraft för hela branschen." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Skrivare" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS Material Inställning" @@ -5916,10 +5931,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Värdet %s ligger utanför intervallet. Giltigt intervall är från %d till %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"Det är %s%% eller %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "Det är %s%% eller %s %s?" + +msgid "%" +msgstr "%" # AI Translated #, boost-format @@ -6312,9 +6328,6 @@ msgctxt "Noun" msgid "Print" msgstr "Skriv ut" -msgid "Printer" -msgstr "Skrivare" - msgid "Time Estimation" msgstr "Beräknad tid" @@ -8209,6 +8222,234 @@ msgstr "Visa inte den här dialogrutan igen" msgid "Please refer to Wiki before use->" msgstr "Läs wikin före användning->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Exportera STL" + +msgid "Export 3MF" +msgstr "Exportera 3mf" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Max volymetrisk hastighets kalibrering" + +msgid "Pressure Advance Calibration" +msgstr "" + +# AI Translated +msgid "Flow Ratio Calibration" +msgstr "Kalibrering av flödesförhållande" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Radera alla objekt" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Dela upp i objekt" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D mus bortkopplad." @@ -9141,10 +9382,6 @@ msgstr "" msgid "Delete Object" msgstr "Radera objekt" -# AI Translated -msgid "Delete All Objects" -msgstr "Radera alla objekt" - # AI Translated msgid "Reset Project" msgstr "Återställ projekt" @@ -9152,10 +9389,6 @@ msgstr "Återställ projekt" msgid "The selected object couldn't be split." msgstr "Det valda objektet kan inte delas." -# AI Translated -msgid "Split to Objects" -msgstr "Dela upp i objekt" - # AI Translated msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Vill du avaktivera automatiskt nedsläpp för att behålla Z-positionen?\n" @@ -10360,9 +10593,6 @@ msgstr "När du drar i lagerreglaget i den beredda förhandsgranskningen rendera msgid "Dimmed layer brightness" msgstr "Ljusstyrka för dämpade lager" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -10943,6 +11173,126 @@ msgstr "För \"%1%\", lägg till \"%2%\" som ny förinställning" msgid "Simply switch to \"%1%\"" msgstr "Byta till \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Andra" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Uppgift avbruten" @@ -12089,10 +12439,6 @@ msgstr "Kompatibla process profiler" msgid "Printable space" msgstr "Utskriftsbar yta" -# AI Translated -msgid "Printer Agent" -msgstr "Skrivaragent" - # AI Translated msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Välj vilken nätverksagentimplementation som ska användas för kommunikation med skrivaren. Tillgängliga agenter registreras vid start." @@ -14095,6 +14441,10 @@ msgstr "Använd 3MF i stället för 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 "Aktivera detta om skrivaren tar emot en 3MF-fil som utskriftsjobb. När det är aktiverat skickar Orca Slicer den beredda filen som en .gcode.3mf i stället för en vanlig .gcode-fil." +# AI Translated +msgid "Printer Agent" +msgstr "Skrivaragent" + # AI Translated msgid "Select the network agent implementation for printer communication." msgstr "Välj vilken nätverksagentimplementation som ska användas för kommunikation med skrivaren." @@ -18849,9 +19199,6 @@ msgstr "Sprickor mindre än 2 x gap stängningsradie fylls under triangeln mesh msgid "Slicing Mode" msgstr "Berednings läge" -msgid "Other" -msgstr "Andra" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Använd ”Jämn-Udda” för 3DLabPrint flygplans modeller. Använd ”Stäng hål” för att stänga alla hål i modellen." @@ -19874,9 +20221,6 @@ msgstr "för stor linjebredd " msgid " not in range " msgstr " inte inom intervallet " -msgid "Export 3MF" -msgstr "Exportera 3mf" - msgid "This exports the project as a 3MF file." msgstr "Exportera projekt som 3MF." @@ -19892,9 +20236,6 @@ msgstr "Ladda berednings data" msgid "Load cached slicing data from directory." msgstr "Ladda cachad berednings data från katalogen" -msgid "Export STL" -msgstr "Exportera STL" - # AI Translated msgid "Export the objects as single STL." msgstr "Exportera objekten som en enda STL." @@ -20699,9 +21040,6 @@ msgstr "Filen innehåller ett ogiltigt vertex index." msgid "This OBJ file couldn't be read because it's empty." msgstr "Denna OBJ fil kunde inte läsas eftersom den är tom." -msgid "Max Volumetric Speed Calibration" -msgstr "Max volymetrisk hastighets kalibrering" - msgid "Manage Result" msgstr "Hantera resultat" @@ -21621,10 +21959,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "OBS! Höga värden kan orsaka lagerförskjutning (>%s)" -# AI Translated -msgid "Flow Ratio Calibration" -msgstr "Kalibrering av flödesförhållande" - # AI Translated msgid "Calibration Test Type" msgstr "Typ av kalibreringstest" diff --git a/localization/i18n/th/OrcaSlicer_th.po b/localization/i18n/th/OrcaSlicer_th.po index 888b22781a..3657d1ab80 100644 --- a/localization/i18n/th/OrcaSlicer_th.po +++ b/localization/i18n/th/OrcaSlicer_th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2026-06-19 13:40+0700\n" "Last-Translator: Icezaza\n" "Language-Team: Thai\n" @@ -4150,6 +4150,21 @@ msgstr "OrcaSlicer เริ่มต้นด้วยจิตวิญญา msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "ปัจจุบัน OrcaSlicer เป็นตัวแบ่งส่วนข้อมูลแบบโอเพ่นซอร์สที่ใช้กันอย่างแพร่หลายและได้รับการพัฒนาอย่างแข็งขันที่สุดในชุมชนการพิมพ์ 3 มิติ นวัตกรรมหลายอย่างของบริษัทได้ถูกนำไปใช้โดยตัวแบ่งส่วนข้อมูลอื่นๆ ทำให้สิ่งนี้เป็นแรงผลักดันสำหรับอุตสาหกรรมทั้งหมด" +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "เครื่องพิมพ์" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "การตั้งค่าวัสดุ AMS" @@ -5330,10 +5345,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "ค่า %s อยู่นอกช่วง ช่วงที่ถูกต้องคือตั้งแต่ %d ถึง %d" #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"มันคือ %s%% หรือ %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "มันคือ %s%% หรือ %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5693,9 +5709,6 @@ msgctxt "Noun" msgid "Print" msgstr "พิมพ์" -msgid "Printer" -msgstr "เครื่องพิมพ์" - msgid "Time Estimation" msgstr "การประมาณเวลา" @@ -7416,6 +7429,233 @@ msgstr "อย่าแสดงกล่องโต้ตอบนี้อี msgid "Please refer to Wiki before use->" msgstr "โปรดดู Wiki ก่อนใช้งาน ->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "ส่งออก STL" + +msgid "Export 3MF" +msgstr "ส่งออก 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "ปรับเทียบความเร็วปริมาตรสูงสุด" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "การปรับเทียบอัตราส่วนการไหล" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "ลบวัตถุทั้งหมด" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "แยกเป็นวัตถุ" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "เมาส์ 3D ถูกตัดการเชื่อมต่อ" @@ -8258,10 +8498,6 @@ msgstr "" msgid "Delete Object" msgstr "ลบวัตถุ" -# AI Translated -msgid "Delete All Objects" -msgstr "ลบวัตถุทั้งหมด" - # AI Translated msgid "Reset Project" msgstr "รีเซ็ตโปรเจกต์" @@ -8269,10 +8505,6 @@ msgstr "รีเซ็ตโปรเจกต์" msgid "The selected object couldn't be split." msgstr "ไม่สามารถแยกวัตถุที่เลือกได้" -# AI Translated -msgid "Split to Objects" -msgstr "แยกเป็นวัตถุ" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "ปิดการใช้งานการวางอัตโนมัติเพื่อรักษาตำแหน่ง z หรือไม่\n" @@ -9329,9 +9561,6 @@ msgstr "เมื่อเลื่อนแถบเลเยอร์ในต msgid "Dimmed layer brightness" msgstr "ความสว่างของเลเยอร์ที่หรี่" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9868,6 +10097,126 @@ msgstr "สำหรับ \"%1%\" ให้เพิ่ม \"%2%\" เป็น msgid "Simply switch to \"%1%\"" msgstr "เพียงเปลี่ยนเป็น \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "อื่นๆ" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "ยกเลิกงานแล้ว" @@ -10884,9 +11233,6 @@ 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 "เลือกการใช้งานตัวแทนเครือข่ายสำหรับการสื่อสารของเครื่องพิมพ์ ตัวแทนที่มีอยู่จะได้รับการลงทะเบียนเมื่อเริ่มต้น" @@ -12670,6 +13016,9 @@ msgstr "ใช้ 3MF แทน 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 "เปิดใช้งานหากเครื่องพิมพ์รับไฟล์ 3MF เป็นงานพิมพ์ เมื่อเปิดใช้งาน OrcaSlicer จะส่งไฟล์ที่สไลซ์แล้วเป็น .gcode.3mf แทนไฟล์ .gcode ธรรมดา" +msgid "Printer Agent" +msgstr "ตัวแทนเครื่องพิมพ์" + msgid "Select the network agent implementation for printer communication." msgstr "เลือกการใช้งานตัวแทนเครือข่ายสำหรับการสื่อสารของเครื่องพิมพ์" @@ -16827,9 +17176,6 @@ msgstr "รอยแตกร้าวที่มีขนาดเล็กก msgid "Slicing Mode" msgstr "โหมดการแบ่งส่วน" -msgid "Other" -msgstr "อื่นๆ" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "ใช้ \"เลขคู่\" สำหรับโมเดลเครื่องบิน 3DLabPrint ใช้ \"ปิดรู\" เพื่อปิดรูทั้งหมดในโมเดล" @@ -17759,9 +18105,6 @@ msgstr "ความกว้างของเส้นใหญ่เกิน msgid " not in range " msgstr "ไม่อยู่ในช่วง" -msgid "Export 3MF" -msgstr "ส่งออก 3MF" - msgid "This exports the project as a 3MF file." msgstr "ส่งออกโครงการเป็น 3MF" @@ -17777,9 +18120,6 @@ msgstr "โหลดข้อมูลการแบ่งส่วน" msgid "Load cached slicing data from directory." msgstr "โหลดข้อมูลการแบ่งส่วนแคชจากไดเรกทอรี" -msgid "Export STL" -msgstr "ส่งออก STL" - msgid "Export the objects as single STL." msgstr "ส่งออกวัตถุเป็น STL เดี่ยว" @@ -18436,9 +18776,6 @@ msgstr "ไฟล์นี้มีดัชนีจุดยอดที่ไ msgid "This OBJ file couldn't be read because it's empty." msgstr "ไฟล์ OBJ นี้ไม่สามารถอ่านได้เนื่องจากไฟล์ว่างเปล่า" -msgid "Max Volumetric Speed Calibration" -msgstr "ปรับเทียบความเร็วปริมาตรสูงสุด" - msgid "Manage Result" msgstr "จัดการผลลัพธ์" @@ -19286,9 +19623,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "หมายเหตุ: ค่าที่สูงอาจทำให้เกิดการเลื่อนเลเยอร์ (>%s)" -msgid "Flow Ratio Calibration" -msgstr "การปรับเทียบอัตราส่วนการไหล" - msgid "Calibration Test Type" msgstr "ประเภทการทดสอบการสอบเทียบ" diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index a2704b0fa4..76290a0261 100644 --- a/localization/i18n/tr/OrcaSlicer_tr.po +++ b/localization/i18n/tr/OrcaSlicer_tr.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2026-08-21 23:18+0300\n" "Last-Translator: GlauTech\n" "Language-Team: \n" @@ -4204,6 +4204,21 @@ msgstr "OrcaSlicer da aynı ruhla, PrusaSlicer, BambuStudio, SuperSlicer ve Cura msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Bugün OrcaSlicer, 3D baskı topluluğunda en yaygın kullanılan ve en etkin geliştirilen açık kaynaklı dilimleyicidir. Yeniliklerinin birçoğu diğer dilimleyiciler tarafından da benimsendi ve bu da onu tüm sektör için itici bir güç haline getirdi." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Yazıcı" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS Malzeme Ayarı" @@ -5393,10 +5408,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Değer %s aralık dışında. Geçerli aralık %d ile %d arasındadır." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"%s%% mi yoksa %s %s mi?" +msgid "Is it %s%% or %s %s?" +msgstr "%s%% mi yoksa %s %s mi?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5759,9 +5775,6 @@ msgctxt "Noun" msgid "Print" msgstr "Yazdır" -msgid "Printer" -msgstr "Yazıcı" - msgid "Time Estimation" msgstr "Zaman Tahmini" @@ -7496,6 +7509,234 @@ msgstr "Bu iletişim kutusunu bir daha gösterme" msgid "Please refer to Wiki before use->" msgstr "Lütfen kullanmadan önce Wiki'ye bakın->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "STL'yi dışa aktar" + +msgid "Export 3MF" +msgstr "3MF'yi dışa aktar" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Maksimum Hacimsel Hız Kalibrasyonu" + +msgid "Pressure Advance Calibration" +msgstr "" + +# AI Translated +msgid "Flow Ratio Calibration" +msgstr "Akış Oranı Kalibrasyonu" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Tüm Nesneleri Sil" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Nesnelere Ayır" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D Fare bağlantısı kesildi." @@ -8356,10 +8597,6 @@ msgstr "" msgid "Delete Object" msgstr "Nesneyi Sil" -# AI Translated -msgid "Delete All Objects" -msgstr "Tüm Nesneleri Sil" - # AI Translated msgid "Reset Project" msgstr "Projeyi Sıfırla" @@ -8367,10 +8604,6 @@ msgstr "Projeyi Sıfırla" msgid "The selected object couldn't be split." msgstr "Seçilen nesne bölünemedi." -# AI Translated -msgid "Split to Objects" -msgstr "Nesnelere Ayır" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Z konumunu korumak için Otomatik düşürme devre dışı bırakılsın mı?\n" @@ -9457,9 +9690,6 @@ msgstr "Dilimlenmiş önizlemede katman kaydırıcısı gezdirilirken, geçerli msgid "Dimmed layer brightness" msgstr "Karartılmış katman parlaklığı" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -10012,6 +10242,126 @@ msgstr "\"%1%\" için \"%2%\"yi yeni ön ayar olarak ekleyin" msgid "Simply switch to \"%1%\"" msgstr "Kolayca \"%1%\"e geçin" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Diğer" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Görev iptal edildi" @@ -11048,9 +11398,6 @@ msgstr "Uyumlu süreç profilleri" msgid "Printable space" msgstr "Plaka Ayarı" -msgid "Printer Agent" -msgstr "Yazıcı Aracısı" - msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Yazıcı iletişimi için ağ aracısı uygulamasını seçin. Kullanılabilir aracılar başlangıçta kaydedilir." @@ -12893,6 +13240,9 @@ msgstr "G-code yerine 3MF kullan" 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 "Yazıcı, baskı işi olarak 3MF dosyası kabul ediyorsa bunu etkinleştirin. Etkinleştirildiğinde Orca Slicer, dilimlenmiş dosyayı düz bir .gcode dosyası yerine .gcode.3mf olarak gönderir." +msgid "Printer Agent" +msgstr "Yazıcı Aracısı" + msgid "Select the network agent implementation for printer communication." msgstr "Yazıcı iletişimi için ağ aracısı uygulamasını seçin." @@ -17143,9 +17493,6 @@ msgstr "Üçgen mesh dilimleme sırasında 2x boşluk kapatma yarıçapından k msgid "Slicing Mode" msgstr "Dilimleme modu" -msgid "Other" -msgstr "Diğer" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "3DLabPrint uçak modelleri için \"Çift-tek\" seçeneğini kullanın. Modeldeki tüm delikleri kapatmak için \"Delikleri kapat\"ı kullanın." @@ -18089,9 +18436,6 @@ msgstr "çok büyük çizgi genişliği " msgid " not in range " msgstr " aralıkta değil " -msgid "Export 3MF" -msgstr "3MF'yi dışa aktar" - msgid "This exports the project as a 3MF file." msgstr "Projeyi 3MF olarak dışa aktarın." @@ -18107,9 +18451,6 @@ msgstr "Dilimleme verilerini yükle" msgid "Load cached slicing data from directory." msgstr "Önbelleğe alınmış dilimleme verilerini dizinden yükle." -msgid "Export STL" -msgstr "STL'yi dışa aktar" - msgid "Export the objects as single STL." msgstr "Nesneleri tek STL olarak dışa aktarın." @@ -18768,9 +19109,6 @@ msgstr "Dosya geçersiz köşe dizini içeriyor." msgid "This OBJ file couldn't be read because it's empty." msgstr "Bu OBJ dosyası boş olduğundan okunamadı." -msgid "Max Volumetric Speed Calibration" -msgstr "Maksimum Hacimsel Hız Kalibrasyonu" - msgid "Manage Result" msgstr "Sonucu Yönet" @@ -19624,10 +19962,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "NOT: Yüksek değerler Katman kaymasına neden olabilir (>%s)" -# AI Translated -msgid "Flow Ratio Calibration" -msgstr "Akış Oranı Kalibrasyonu" - # AI Translated msgid "Calibration Test Type" msgstr "Kalibrasyon Testi Tipi" diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index 584eebdb53..d603945e0d 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: orcaslicerua\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2026-07-17 16:25+0300\n" "Last-Translator: Andrij Mizyk <andm1zyk@proton.me>\n" "Language-Team: Ukrainian\n" @@ -4121,6 +4121,21 @@ msgstr "OrcaSlicer народився в тому ж дусі, спираючи msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Сьогодні OrcaSlicer — це найпоширеніший і найактивніше розвинений слайсер з відкритим кодом у спільноті 3D-друку. Багато його нововведень перейняли інші слайсери, що робить його рушійною силою для всієї галузі." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Принтер" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "Налаштування матеріалів AMS" @@ -5341,10 +5356,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Значення %s знаходиться за межами діапазону. Дійсний діапазон від %d до %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"Це %s%% або %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "Це %s%% або %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5715,9 +5731,6 @@ msgctxt "Noun" msgid "Print" msgstr "Друк" -msgid "Printer" -msgstr "Принтер" - msgid "Time Estimation" msgstr "Оцінка часу" @@ -7470,6 +7483,232 @@ msgstr "Більше не показувати це діалогове вікн msgid "Please refer to Wiki before use->" msgstr "Зверніться до Вікі перед використанням->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Експортувати STL" + +msgid "Export 3MF" +msgstr "Експортувати 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Максимальна калібрування об’ємної швидкості" + +msgid "Pressure Advance Calibration" +msgstr "" + +# AI Translated +msgid "Flow Ratio Calibration" +msgstr "Калібрування коефіцієнта потоку" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +msgid "Delete All Objects" +msgstr "Видалити всі обʼєкти" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +msgid "Split to Objects" +msgstr "Розділити по обʼєктах" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D-миша відʼєднана." @@ -8369,18 +8608,12 @@ msgstr "" msgid "Delete Object" msgstr "Видалити обʼєкт" -msgid "Delete All Objects" -msgstr "Видалити всі обʼєкти" - msgid "Reset Project" msgstr "Скинути проєкт" msgid "The selected object couldn't be split." msgstr "Вибраний обʼєкт не може бути поділений." -msgid "Split to Objects" -msgstr "Розділити по обʼєктах" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Вимкнути авто-кидання, щоб зберегти розташування по осі Z?\n" @@ -9470,9 +9703,6 @@ msgstr "Під час прокручування повзунка шарів у msgid "Dimmed layer brightness" msgstr "Яскравість затемнених шарів" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -10016,6 +10246,126 @@ msgstr "Для \"%1%\" додайте \"%2%\" як новий пресет" msgid "Simply switch to \"%1%\"" msgstr "Просто перейдіть на \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Інший" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Завдання скасовано" @@ -11090,9 +11440,6 @@ msgstr "Сумісні профілі процесів" msgid "Printable space" msgstr "Місце для друку" -msgid "Printer Agent" -msgstr "Агент принтера" - # AI Translated msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Виберіть реалізацію мережевого агента для звʼязку з принтером. Доступні агенти реєструються під час запуску." @@ -12964,6 +13311,9 @@ msgstr "Використовувати 3MF замість G-коду" 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 "Увімкніть, якщо принтер приймає файл 3MF як завдання друку. Якщо увімкнено, Orca Slicer надсилає нарізаний файл як .gcode.3mf замість звичайного файлу .gcode." +msgid "Printer Agent" +msgstr "Агент принтера" + # AI Translated msgid "Select the network agent implementation for printer communication." msgstr "Виберіть реалізацію мережевого агента для звʼязку з принтером." @@ -17333,9 +17683,6 @@ msgstr "Під час розрізання тріщини на трикутну msgid "Slicing Mode" msgstr "Режим нарізки" -msgid "Other" -msgstr "Інший" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Використовуйте «парний-непарний» для моделей літаків 3DLabPrint. Використовуйте «Закрити отвори», щоб закрити всі отвори в моделі." @@ -18298,9 +18645,6 @@ msgstr "надто велика ширина лінії " msgid " not in range " msgstr " не в зоні " -msgid "Export 3MF" -msgstr "Експортувати 3MF" - msgid "This exports the project as a 3MF file." msgstr "Експортувати проєкт як 3MF." @@ -18316,9 +18660,6 @@ msgstr "Завантажити дані про нарізку" msgid "Load cached slicing data from directory." msgstr "Завантажити кешовані дані нарізки з каталогу" -msgid "Export STL" -msgstr "Експортувати STL" - msgid "Export the objects as single STL." msgstr "Експортувати обʼєкти як єдиний STL." @@ -18990,9 +19331,6 @@ msgstr "У файлі містяться недійсний індекс вер msgid "This OBJ file couldn't be read because it's empty." msgstr "Цей файл формату OBJ не може бути прочитаний через те, що він порожній." -msgid "Max Volumetric Speed Calibration" -msgstr "Максимальна калібрування об’ємної швидкості" - msgid "Manage Result" msgstr "Керування результатом" @@ -19878,10 +20216,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "ПРИМІТКА: високі значення можуть спричинити зсув шарів (>%s)" -# AI Translated -msgid "Flow Ratio Calibration" -msgstr "Калібрування коефіцієнта потоку" - msgid "Calibration Test Type" msgstr "Тип тесту калібрування" diff --git a/localization/i18n/vi/OrcaSlicer_vi.po b/localization/i18n/vi/OrcaSlicer_vi.po index 5b52863751..8e884a71af 100644 --- a/localization/i18n/vi/OrcaSlicer_vi.po +++ b/localization/i18n/vi/OrcaSlicer_vi.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2025-10-02 17:43+0700\n" "Last-Translator: \n" "Language-Team: hainguyen.ts13@gmail.com\n" @@ -4375,6 +4375,21 @@ msgstr "OrcaSlicer khởi đầu với cùng tinh thần đó, kế thừa từ msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "Ngày nay, OrcaSlicer là phần mềm slice mã nguồn mở được sử dụng rộng rãi nhất và phát triển tích cực nhất trong cộng đồng in 3D. Nhiều đổi mới của nó đã được các phần mềm slice khác áp dụng, khiến nó trở thành động lực thúc đẩy cả ngành." +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "Máy in" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "Cài đặt vật liệu AMS" @@ -5646,10 +5661,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "Giá trị %s nằm ngoài phạm vi. Phạm vi hợp lệ từ %d đến %d." #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"Là %s%% hay %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "Là %s%% hay %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -6037,9 +6053,6 @@ msgctxt "Noun" msgid "Print" msgstr "In" -msgid "Printer" -msgstr "Máy in" - msgid "Time Estimation" msgstr "Ước tính thời gian" @@ -7868,6 +7881,234 @@ msgstr "Không hiển thị hộp thoại này nữa" msgid "Please refer to Wiki before use->" msgstr "Vui lòng tham khảo Wiki trước khi dùng->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "Xuất STL" + +msgid "Export 3MF" +msgstr "Xuất 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "Hiệu chỉnh tốc độ thể tích tối đa" + +msgid "Pressure Advance Calibration" +msgstr "" + +# AI Translated +msgid "Flow Ratio Calibration" +msgstr "Hiệu chỉnh tỷ lệ lưu lượng" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "Xóa tất cả vật thể" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "Tách thành các vật thể" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "Chuột 3D đã ngắt kết nối." @@ -8774,10 +9015,6 @@ msgstr "" msgid "Delete Object" msgstr "Xóa vật thể" -# AI Translated -msgid "Delete All Objects" -msgstr "Xóa tất cả vật thể" - # AI Translated msgid "Reset Project" msgstr "Đặt lại dự án" @@ -8785,10 +9022,6 @@ msgstr "Đặt lại dự án" msgid "The selected object couldn't be split." msgstr "Đối tượng đã chọn không thể được tách." -# AI Translated -msgid "Split to Objects" -msgstr "Tách thành các vật thể" - # AI Translated msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "Tắt Tự động thả để giữ nguyên vị trí Z?\n" @@ -9952,9 +10185,6 @@ msgstr "Khi kéo thanh trượt lớp trong bản xem trước đã slice, kết msgid "Dimmed layer brightness" msgstr "Độ sáng của lớp bị làm mờ" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -10529,6 +10759,126 @@ msgstr "Cho \"%1%\", thêm \"%2%\" như một preset mới" msgid "Simply switch to \"%1%\"" msgstr "Đơn giản chuyển sang \"%1%\"" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "Khác" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "Tác vụ đã hủy" @@ -11608,10 +11958,6 @@ msgstr "Hồ sơ quy trình tương thích" msgid "Printable space" msgstr "Không gian in" -# AI Translated -msgid "Printer Agent" -msgstr "Tác nhân máy in" - # AI Translated msgid "Select the network agent implementation for printer communication. Available agents are registered at startup." msgstr "Chọn cách triển khai tác nhân mạng cho việc giao tiếp với máy in. Các tác nhân khả dụng được đăng ký khi khởi động." @@ -13535,6 +13881,10 @@ msgstr "Dùng 3MF thay cho 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 "Bật tùy chọn này nếu máy in nhận file 3MF làm tác vụ in. Khi bật, Orca Slicer sẽ gửi file đã slice dưới dạng .gcode.3mf thay vì file .gcode thuần." +# AI Translated +msgid "Printer Agent" +msgstr "Tác nhân máy in" + # AI Translated msgid "Select the network agent implementation for printer communication." msgstr "Chọn cách triển khai tác nhân mạng cho việc giao tiếp với máy in." @@ -17864,9 +18214,6 @@ msgstr "Vết nứt nhỏ hơn 2x bán kính đóng khe được lấp trong sli msgid "Slicing Mode" msgstr "Chế độ slice" -msgid "Other" -msgstr "Khác" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "Sử dụng \"Chẵn-lẻ\" cho model máy bay 3DLabPrint. Sử dụng \"Đóng lỗ\" để đóng tất cả các lỗ trong model." @@ -18827,9 +19174,6 @@ msgstr "độ rộng đường quá lớn " msgid " not in range " msgstr " không trong phạm vi " -msgid "Export 3MF" -msgstr "Xuất 3MF" - msgid "This exports the project as a 3MF file." msgstr "Xuất dự án dưới dạng 3MF." @@ -18845,9 +19189,6 @@ msgstr "Nạp dữ liệu slice" msgid "Load cached slicing data from directory." msgstr "Nạp dữ liệu slice đã lưu từ thư mục." -msgid "Export STL" -msgstr "Xuất STL" - msgid "Export the objects as single STL." msgstr "Xuất các đối tượng dưới dạng STL đơn." @@ -19523,9 +19864,6 @@ msgstr "File chứa chỉ số đỉnh không hợp lệ." msgid "This OBJ file couldn't be read because it's empty." msgstr "File OBJ này không thể đọc được vì nó trống." -msgid "Max Volumetric Speed Calibration" -msgstr "Hiệu chỉnh tốc độ thể tích tối đa" - msgid "Manage Result" msgstr "Quản lý kết quả" @@ -20409,10 +20747,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "LƯU Ý: Giá trị cao có thể gây dịch lớp (>%s)" -# AI Translated -msgid "Flow Ratio Calibration" -msgstr "Hiệu chỉnh tỷ lệ lưu lượng" - # AI Translated msgid "Calibration Test Type" msgstr "Loại bài kiểm tra hiệu chỉnh" diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index caceab04a5..a59dda34ba 100644 --- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po +++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2026-06-11 12:37-0300\n" "Last-Translator: Handle <mail@bysb.net>\n" "Language-Team: \n" @@ -4011,6 +4011,21 @@ msgstr "OrcaSlicer 也始于同样的精神,汲取了 PrusaSlicer、BambuStudi msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "如今,OrcaSlicer 是 3D 打印社区中使用最广泛、开发最活跃的开源切片软件。它的许多创新已被其他切片软件采用,成为推动整个行业发展的力量。" +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "打印机" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS 材料设置" @@ -5186,10 +5201,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "值 %s 超出了范围,有效的范围是从 %d 到 %d 。" #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"%s%%还是%s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "%s%%还是%s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5549,9 +5565,6 @@ msgctxt "Noun" msgid "Print" msgstr "打印" -msgid "Printer" -msgstr "打印机" - msgid "Time Estimation" msgstr "时间预估" @@ -7270,6 +7283,231 @@ msgstr "不再显示此对话框?" msgid "Please refer to Wiki before use->" msgstr "使用前请参考 Wiki->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "导出STL文件" + +msgid "Export 3MF" +msgstr "导出 3MF" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "最大体积流量校准" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "流量比校准" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +msgid "Delete All Objects" +msgstr "删除所有对象" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +msgid "Split to Objects" +msgstr "拆分为对象" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D鼠标断连。" @@ -8091,18 +8329,12 @@ msgstr "" msgid "Delete Object" msgstr "删除对象" -msgid "Delete All Objects" -msgstr "删除所有对象" - msgid "Reset Project" msgstr "重置项目" msgid "The selected object couldn't be split." msgstr "选中的模型不可分裂。" -msgid "Split to Objects" -msgstr "拆分为对象" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "禁用自动落板以保留 Z 轴定位?\n" @@ -9151,9 +9383,6 @@ msgstr "在切片预览中拖动图层滑块时,将当前图层下方的图层 msgid "Dimmed layer brightness" msgstr "调暗图层的亮度" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9690,6 +9919,126 @@ msgstr "为“%1%”,添加“%2%”为一个新预设" msgid "Simply switch to \"%1%\"" msgstr "直接切换到“%1%”" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "其他" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "任务已取消" @@ -10673,9 +11022,6 @@ 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 "为打印机通信选择网络代理。可用的代理将在启动时列出。" @@ -12466,6 +12812,9 @@ msgstr "使用 3MF 代替 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 "如果打印机接受 3MF 文件作为打印任务,请启用此选项。启用后,Orca Slicer 将以 .gcode.3mf 格式发送切片文件,而不是普通的 .gcode 文件。" +msgid "Printer Agent" +msgstr "打印机代理" + msgid "Select the network agent implementation for printer communication." msgstr "选择打印机通信的网络代理实施。" @@ -16585,9 +16934,6 @@ msgstr "在三角形网格切片过程中,小于2倍间隙闭合半径的裂 msgid "Slicing Mode" msgstr "切片模式" -msgid "Other" -msgstr "其他" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "对3DLabPrint的飞机模型使用 \"奇偶\"。使用 \"闭孔 \"来关闭模型上的所有孔。" @@ -17509,9 +17855,6 @@ msgstr "线宽过大" msgid " not in range " msgstr " 不在合理范围内" -msgid "Export 3MF" -msgstr "导出 3MF" - msgid "This exports the project as a 3MF file." msgstr "导出项目为 3MF。" @@ -17527,9 +17870,6 @@ msgstr "导入切片数据" msgid "Load cached slicing data from directory." msgstr "从目录导入缓存的切片数据" -msgid "Export STL" -msgstr "导出STL文件" - msgid "Export the objects as single STL." msgstr "将对象导出为单个STL。" @@ -18188,9 +18528,6 @@ msgstr "该文件包含无效的顶点索引。" msgid "This OBJ file couldn't be read because it's empty." msgstr "无法读取该OBJ文件,因为该文件内容为空。" -msgid "Max Volumetric Speed Calibration" -msgstr "最大体积流量校准" - msgid "Manage Result" msgstr "管理结果" @@ -19036,9 +19373,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "注意:较高的值可能会导致层移位 (>%s)" -msgid "Flow Ratio Calibration" -msgstr "流量比校准" - msgid "Calibration Test Type" msgstr "校准测试类型" diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index 3cbf960b59..e891121bc1 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-11 17:15+0800\n" +"POT-Creation-Date: 2026-09-14 12:09+0800\n" "PO-Revision-Date: 2025-11-28 13:48-0600\n" "Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n" "Language-Team: \n" @@ -4113,6 +4113,21 @@ msgstr "OrcaSlicer 也源於同樣的精神,汲取了 PrusaSlicer、BambuStudi msgid "Today, OrcaSlicer is the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry." msgstr "如今,OrcaSlicer 是 3D 列印社群中使用最廣泛、開發最活躍的開源切片軟體。它的許多創新已被其他切片軟體採用,使其成為推動整個產業的動力。" +msgid "Script plugin skipped." +msgstr "" + +msgid "Script plugin finished." +msgstr "" + +msgid "Printer" +msgstr "列印裝置" + +msgid "Recent Projects" +msgstr "" + +msgid "Go to Plate" +msgstr "" + msgid "AMS Materials Setting" msgstr "AMS 線材設定" @@ -5315,10 +5330,11 @@ msgid "Value %s is out of range. The valid range is from %d to %d." msgstr "數值 %s 超出範圍。有效範圍是從 %d 到 %d。" #, c-format, boost-format -msgid "" -"Is it %s%% or %s %s?" -msgstr "" -"是 %s%% 還是 %s %s?" +msgid "Is it %s%% or %s %s?" +msgstr "是 %s%% 還是 %s %s?" + +msgid "%" +msgstr "%" #, boost-format msgid "Invalid input format. Expected vector of dimensions in the following format: \"%1%\"" @@ -5678,9 +5694,6 @@ msgctxt "Noun" msgid "Print" msgstr "列印" -msgid "Printer" -msgstr "列印裝置" - msgid "Time Estimation" msgstr "時間預估" @@ -7407,6 +7420,233 @@ msgstr "不要再顯示此提示" msgid "Please refer to Wiki before use->" msgstr "使用前請參考 Wiki ->" +msgid "Plates are a filament (FFF) feature." +msgstr "" + +msgid "Open the 3D view first." +msgstr "" + +msgid "Select an object first." +msgstr "" + +msgid "Slice and Preview" +msgstr "" + +msgid "Slice & Export" +msgstr "" + +msgid "Go to layer (percent)" +msgstr "" + +msgid "Commands" +msgstr "" + +msgid "Go to tab..." +msgstr "" + +msgid "Load Project" +msgstr "" + +msgid "Save Project As" +msgstr "" + +msgid "Mode: Simple" +msgstr "" + +msgid "Mode: Advanced" +msgstr "" + +msgid "Mode: Expert" +msgstr "" + +msgid "Toggle Developer Mode" +msgstr "" + +msgid "Developer mode enabled." +msgstr "" + +msgid "Developer mode disabled." +msgstr "" + +msgid "Export STL" +msgstr "匯出為 STL 檔案" + +msgid "Export 3MF" +msgstr "匯出為 3MF 檔案" + +msgid "Export Sliced File" +msgstr "" + +msgid "Export All Sliced Files" +msgstr "" + +msgid "Max Volumetric Speed Calibration" +msgstr "最大體積流量校正" + +msgid "Pressure Advance Calibration" +msgstr "" + +msgid "Flow Ratio Calibration" +msgstr "流量比例校正" + +msgid "Retraction Calibration" +msgstr "" + +msgid "Cornering Calibration" +msgstr "" + +msgid "Input Shaping Frequency Calibration" +msgstr "" + +msgid "Input Shaping Damping Calibration" +msgstr "" + +msgid "VFA Calibration" +msgstr "" + +msgid "View: Top" +msgstr "" + +msgid "View: Bottom" +msgstr "" + +msgid "View: Front" +msgstr "" + +msgid "View: Rear" +msgstr "" + +msgid "View: Left" +msgstr "" + +msgid "View: Right" +msgstr "" + +msgid "View: Isometric" +msgstr "" + +msgid "View: Default" +msgstr "" + +msgid "Fit Bed to View" +msgstr "" + +msgid "Toggle Perspective" +msgstr "" + +# AI Translated +msgid "Delete All Objects" +msgstr "刪除所有物件" + +msgid "Mirror X" +msgstr "" + +msgid "Mirror Y" +msgstr "" + +msgid "Mirror Z" +msgstr "" + +# AI Translated +msgid "Split to Objects" +msgstr "分割為物件" + +msgid "Split to Parts" +msgstr "" + +msgid "Center Selected on Plate" +msgstr "" + +msgid "Drop to Bed" +msgstr "" + +msgid "Scale to Fit Print Volume" +msgstr "" + +msgid "Increase Instances" +msgstr "" + +msgid "Decrease Instances" +msgstr "" + +msgid "Auto-Arrange" +msgstr "" + +msgid "Auto-Orient" +msgstr "" + +msgid "Add Plate" +msgstr "" + +msgid "Cannot add another plate (maximum reached)." +msgstr "" + +msgid "Duplicate Plate" +msgstr "" + +msgid "Cannot duplicate a plate (maximum reached)." +msgstr "" + +msgid "Cannot delete the only plate." +msgstr "" + +msgid "Rename Plate" +msgstr "" + +msgid "Toggle Plate Lock" +msgstr "" + +msgid "No plates available." +msgstr "" + +msgid "Synchronize Filament List from AMS" +msgstr "" + +msgid "Connect a printer to synchronize the AMS filament list." +msgstr "" + +msgid "Open Preset Bundle" +msgstr "" + +msgid "Sign in to sync presets." +msgstr "" + +msgid "Export All Objects as STLs" +msgstr "" + +msgid "Export All Objects as DRC (one file)" +msgstr "" + +msgid "Export All Objects as DRCs" +msgstr "" + +msgid "Export Toolpaths as OBJ" +msgstr "" + +msgid "About OrcaSlicer" +msgstr "" + +msgid "Open Wiki" +msgstr "" + +msgid "Open YouTube Channel" +msgstr "" + +msgid "Open Plugins" +msgstr "" + +msgid "Refresh Plugins" +msgstr "" + +msgid "Install Plugin" +msgstr "" + +msgid "Install Local Plugin" +msgstr "" + +msgid "Unknown command." +msgstr "" + msgid "3D Mouse disconnected." msgstr "3D 滑鼠已中斷連線。" @@ -8252,10 +8492,6 @@ msgstr "" msgid "Delete Object" msgstr "刪除物件" -# AI Translated -msgid "Delete All Objects" -msgstr "刪除所有物件" - # AI Translated msgid "Reset Project" msgstr "重設專案" @@ -8263,10 +8499,6 @@ msgstr "重設專案" msgid "The selected object couldn't be split." msgstr "選取的模型不可分割。" -# AI Translated -msgid "Split to Objects" -msgstr "分割為物件" - msgid "Disable Auto-Drop to preserve Z positioning?\n" msgstr "停用自動落板以保留 Z 定位?\n" @@ -9324,9 +9556,6 @@ msgstr "在切片預覽中拖曳層滑桿時,將目前層以下的各層算繪 msgid "Dimmed layer brightness" msgstr "變暗層的亮度" -msgid "%" -msgstr "%" - # AI Translated msgid "" "How brightly the dimmed layers are rendered when \"Dim lower layers\" is enabled.\n" @@ -9863,6 +10092,126 @@ msgstr "為「%1%」,增加「%2%」為一個新預設" msgid "Simply switch to \"%1%\"" msgstr "直接切換到「%1%」" +msgid "Expert" +msgstr "" + +msgid "Simple" +msgstr "" + +msgid "Search actions" +msgstr "" + +#, c-format, boost-format +msgid "Search %s actions" +msgstr "" + +msgid "Recent" +msgstr "" + +msgid "Other" +msgstr "其他" + +#, c-format, boost-format +msgid "No actions match (Total: %s)" +msgstr "" + +msgid "No actions yet" +msgstr "" + +msgid "No tabs match" +msgstr "" + +msgid "No tabs" +msgstr "" + +#, c-format, boost-format +msgid "Showing %s of %s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s actions" +msgstr "" + +#, c-format, boost-format +msgid "%s tabs" +msgstr "" + +#, c-format, boost-format +msgid "%s matches" +msgstr "" + +#, c-format, boost-format +msgid "Favourites are full (%s max)" +msgstr "" + +#, c-format, boost-format +msgid "Go to %s%% of the layer range" +msgstr "" + +msgid "Enter a layer percentage (0-100)" +msgstr "" + +#, c-format, boost-format +msgid "Go to layer %% (0-100)" +msgstr "" + +msgid "Go to tab" +msgstr "" + +#, c-format, boost-format +msgid "Favourite %s (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Pin to favourites (%s)" +msgstr "" + +#, c-format, boost-format +msgid "Unpin from favourites (%s)" +msgstr "" + +msgid "Remove from favourites" +msgstr "" + +msgid "Move left" +msgstr "" + +msgid "Move right" +msgstr "" + +msgid "Unpin" +msgstr "" + +msgid "Wiki (F1)" +msgstr "" + +msgid "No wiki page for this action" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" +msgstr "" + +msgid "Developer setting" +msgstr "" + +#, c-format, boost-format +msgid "\"%s\" is a %s setting. Switch from %s mode to %s mode to edit it?" +msgstr "" + +msgid "Switch settings mode" +msgstr "" + +#, c-format, boost-format +msgid "Run \"%s\"?" +msgstr "" + +msgid "Run plugin" +msgstr "" + +msgid "Don't ask again for this action" +msgstr "" + msgid "Task canceled" msgstr "任務已取消" @@ -10879,9 +11228,6 @@ 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 "選擇列印裝置通訊的網路代理實施。可用代理在啟動時註冊。" @@ -12670,6 +13016,9 @@ msgstr "使用 3MF 取代 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 "若列印裝置接受 3MF 檔案作為列印作業,請啟用此選項。啟用後,Orca Slicer 會將切片後的檔案以 .gcode.3mf 形式傳送,而非單純的 .gcode 檔案。" +msgid "Printer Agent" +msgstr "列印裝置代理" + msgid "Select the network agent implementation for printer communication." msgstr "選擇用於列印裝置通訊的網路代理實作。" @@ -16781,9 +17130,6 @@ msgstr "在三角網格切片過程中,寬度小於 2 倍間隙閉合半徑的 msgid "Slicing Mode" msgstr "切片模式" -msgid "Other" -msgstr "其他" - msgid "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to close all holes in the model." msgstr "針對 3DLabPrint 飛機模型,請選擇『奇偶』模式。若需閉合模型中的所有孔洞,請啟用『閉合孔洞』選項。" @@ -17697,9 +18043,6 @@ msgstr "線寬過大" msgid " not in range " msgstr " 不在合理的區間" -msgid "Export 3MF" -msgstr "匯出為 3MF 檔案" - msgid "This exports the project as a 3MF file." msgstr "將專案匯出為 3MF 檔案。" @@ -17715,9 +18058,6 @@ msgstr "載入切片資料" msgid "Load cached slicing data from directory." msgstr "從資料夾載入快取的切片資料" -msgid "Export STL" -msgstr "匯出為 STL 檔案" - msgid "Export the objects as single STL." msgstr "將所有物件匯出為單一 STL 檔案。" @@ -18375,9 +18715,6 @@ msgstr "檔案包含無效的頂點索引。" msgid "This OBJ file couldn't be read because it's empty." msgstr "無法讀取此 OBJ 檔案,因為它是空的。" -msgid "Max Volumetric Speed Calibration" -msgstr "最大體積流量校正" - msgid "Manage Result" msgstr "管理結果" @@ -19223,9 +19560,6 @@ msgstr "" msgid "NOTE: High values may cause Layer shift (>%s)" msgstr "注意:較高的值可能會導致層移位 (>%s)" -msgid "Flow Ratio Calibration" -msgstr "流量比例校正" - msgid "Calibration Test Type" msgstr "校正測試類型" diff --git a/resources/web/data/text.js b/resources/web/data/text.js index 0c803c0ada..95342acdaf 100644 --- a/resources/web/data/text.js +++ b/resources/web/data/text.js @@ -118,40 +118,6 @@ var LangText = { orca10: "Not connected", orca11: "Connected", orca12: "Note: When Stealth Mode is enabled, your user profiles will not be backed up to Orca Cloud.", - sd_search: "Search actions", - sd_clear: "Clear", - sd_search_n: "Search %s actions", - sd_showing: "Showing", - sd_of: "of", - sd_actions: "actions", - sd_recent: "Recent", - sd_plugins: "Plugins", - sd_other: "Other", - sd_matches: "matches", - sd_tabs: "tabs", - sd_no_match: "No actions match", - sd_total: "Total", - sd_no_actions: "No actions yet", - sd_no_tabs_match: "No tabs match", - sd_no_tabs: "No tabs", - sd_go_to_pct: "Go to %s% of the layer range", - sd_enter_pct: "Enter a layer percentage (0-100)", - sd_go_layer_ph: "Go to layer % (0-100)", - sd_go_tab_ph: "Go to tab", - sd_favs_full: "Favourites are full", - sd_max: "max", - sd_pin_fav: "Pin to favourites (Ctrl+B)", - sd_unpin_fav: "Unpin from favourites (Ctrl+B)", - sd_remove_fav: "Remove from favourites", - sd_favourite: "Favourite", - sd_move_left: "Move left", - sd_move_right: "Move right", - sd_unpin: "Unpin", - sd_mode_advanced: "Advanced", - sd_mode_expert: "Expert", - sd_mode_develop: "Developer", - sd_wiki: "Wiki", - sd_no_wiki: "No wiki page for this action", }, ca_ES: { t1: "Benvingut a Orca Slicer", diff --git a/resources/web/dialog/SpeedDial/index.html b/resources/web/dialog/SpeedDial/index.html index 0137a2fcf2..e258f34f86 100644 --- a/resources/web/dialog/SpeedDial/index.html +++ b/resources/web/dialog/SpeedDial/index.html @@ -7,7 +7,6 @@ <link rel="stylesheet" href="./style.css" /> <link rel="stylesheet" type="text/css" href="../css/theme.css" /> <script type="text/javascript" src="../../include/globalapi.js"></script> - <script type="text/javascript" src="../../data/text.js"></script> <script src="../../js/fuzzy-search.js"></script> <script src="./speeddial.js"></script> </head> diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index d5615bd3f7..64550c9e5c 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -31,20 +31,23 @@ var SCORE_CONTIGUOUS = 100000; var SCORE_TITLE = 2000; var SCORE_GROUP = 1000; -// Localized lookup for strings this page builds at runtime. text.js (loaded before this script) -// defines LangText; a missing entry falls back to the English literal. Extra args replace -// successive %s placeholders. +// Localized lookup for strings this page builds at runtime. The host injects the translated table +// as a document-start user script (SpeedDialWebDialog::add_user_scripts); the English literal is a +// fallback for the node vm test / before the injection runs. Extra args replace successive %s +// placeholders; %% collapses to a literal % (the C++ table escapes percent signs for gettext). +var UI_STRINGS = (typeof ORCA_UI_STRINGS !== "undefined" && ORCA_UI_STRINGS) || {}; + function T(key, fallback) { - var table = (typeof LangText !== "undefined" && LangText) || null; - var lang = "en"; - try { lang = localStorage.getItem(LANG_COOKIE_NAME) || "en"; } catch (e) {} - var s = table && table[lang] && table[lang][key] !== undefined ? table[lang][key] : - table && table.en && table.en[key] !== undefined ? table.en[key] : fallback; + var s = UI_STRINGS[key] !== undefined ? UI_STRINGS[key] : fallback; for (var i = 2; i < arguments.length; i++) s = s.replace("%s", arguments[i]); - return s; + return s.split("%%").join("%"); } +// Platform shortcut prefixes ("Alt+"/"⌥+", "Ctrl+"/"⌘+"), injected alongside the strings. +function shortcutAlt() { return UI_STRINGS.shortcut_alt || "Alt+"; } +function shortcutCtrl() { return UI_STRINGS.shortcut_ctrl || "Ctrl+"; } + // ---- windowed list render ---------------------------------------------------- // The command list is rendered in windows (append-on-scroll) so a huge settings pool doesn't build // the whole DOM per keystroke. Rows are exactly ROW_H tall (matches .row min-height 44px; see --row-h, @@ -255,8 +258,9 @@ function favDigitFromEvent(e) { } function resultCountText(total, shown, query) { - var n = total + " " + T("sd_actions", "actions"); - return (query || "").trim() ? T("sd_showing", "Showing") + " " + shown + " " + T("sd_of", "of") + " " + n : n; + return (query || "").trim() ? + T("sd_result_count", "Showing %s of %s actions", shown, total) : + T("sd_result_count_all", "%s actions", total); } // Display label for a notebook tab. Trim any stray whitespace; pages added with an empty title @@ -575,7 +579,7 @@ window.HandleStudio = function (payload) { var fid = payload.id; if (fid && FAVS.indexOf(fid) !== -1) FAVS.splice(FAVS.indexOf(fid), 1); render({ resize: true, keepScroll: true }); - flashHint(T("sd_favs_full", "Favourites are full") + " (" + (payload.limit || K_FAV_LIMIT) + " " + T("sd_max", "max") + ")"); + flashHint(T("sd_favs_full", "Favourites are full (%s max)", (payload.limit || K_FAV_LIMIT))); } }; @@ -638,7 +642,8 @@ function pinSvg(on) { function setPinState(pin, on) { pin.classList.toggle("on", on); pin.innerHTML = pinSvg(on); - pin.title = on ? T("sd_unpin_fav", "Unpin from favourites (Ctrl+B)") : T("sd_pin_fav", "Pin to favourites (Ctrl+B)"); + pin.title = on ? T("sd_unpin_fav", "Unpin from favourites (%s)", shortcutCtrl() + "B") : + T("sd_pin_fav", "Pin to favourites (%s)", shortcutCtrl() + "B"); } // ---- render ------------------------------------------------------------------ @@ -672,8 +677,9 @@ function renderFav() { var badge = document.createElement("span"); badge.className = "fav-slot"; badge.textContent = slot; - badge.title = slot === "0" ? T("sd_favourite", "Favourite") + " 10 (Alt+0)" : - T("sd_favourite", "Favourite") + " " + slot + " (Alt+" + slot + ")"; + // Slot "0" is the 10th favourite (Alt/Option+0). + var slot_num = slot === "0" ? "10" : slot; + badge.title = T("sd_fav_slot", "Favourite %s (%s)", slot_num, shortcutAlt() + slot); tile.appendChild(badge); } // Direct removal: a hover-revealed ✕ in the tile's corner. click() stops propagation so it @@ -924,7 +930,7 @@ function renderCommandsList() { matchIndex = {}; if (!total) { - renderEmpty(showList ? (T("sd_no_match", "No actions match") + " (" + T("sd_total", "Total") + ": " + ACTIONS.length + ")") + renderEmpty(showList ? T("sd_no_match_total", "No actions match (Total: %s)", ACTIONS.length) : T("sd_no_actions", "No actions yet")); renderEnd = 0; builtKey = buildKey() + "|0"; @@ -983,7 +989,7 @@ function renderTabList() { listEl.className = "dial-list"; if (countEl) { countEl.hidden = false; - countEl.textContent = q ? list.length + " " + T("sd_matches", "matches") : list.length + " " + T("sd_tabs", "tabs"); + countEl.textContent = q ? T("sd_tab_match_count", "%s matches", list.length) : T("sd_tab_count", "%s tabs", list.length); } list.forEach(function (t, i) { listEl.appendChild(renderTabRow(t, i)); }); } @@ -1029,7 +1035,7 @@ function renderDetail() { var link = document.createElement("button"); link.type = "button"; link.className = "detail-wiki"; - link.textContent = T("sd_wiki", "Wiki") + " (F1)"; + link.textContent = T("sd_wiki_f1", "Wiki (F1)"); link.onclick = function (ev) { ev.stopPropagation(); SendMessage({ command: "open_wiki", id: a.id }); }; detailEl.appendChild(link); } diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index 3f751e6913..1687e28258 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -346,6 +346,27 @@ void ActionRegistry::init() upsert(NativeCommands::make_action(c)); } +void ActionRegistry::relocalize_builtins() +{ + assert(wxThread::IsMain()); + if (!m_started) + return; + + // Drop only the built-in commands; plugins and the dynamically materialised families are + // either unlocalized or rebuilt per snapshot. remove() only erases the map entry, and upsert() + // re-seeds favourites/stats from config, so key-based ids keep their pinned state. + std::vector<std::string> stale; + for (const auto& [id, action] : m_actions) + if (action->source_key() == kOrcaSourceKey && action->kind == AppActionKind::Command) + stale.push_back(id); + for (const std::string& id : stale) + remove(id); + + NativeCommands::rebuild_catalog(); + for (const NativeCommand& c : NativeCommands::catalog()) + upsert(NativeCommands::make_action(c)); +} + void ActionRegistry::refresh_source(const std::string& plugin_key, ActionChange change) { assert(wxThread::IsMain()); diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index 026e1bcee5..045de70915 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -159,6 +159,12 @@ public: // updates together. void init(); + // Rebuilds the built-in command actions in the current UI locale. The command catalog copies + // translated titles/groups at construction, so after a live language switch the stored titles + // are stale until this runs. Ids are key-based and upsert re-seeds persisted state, so + // favourites/run history survive. UI thread only. No-op before init(). + void relocalize_builtins(); + // Takes ownership, seeds persisted state, then inserts the action or replaces // the action with the same id. A null action is ignored. void upsert(std::unique_ptr<AppAction> action); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index d67d3db1ba..5d4be5e9f0 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -4607,6 +4607,12 @@ void GUI_App::recreate_GUI(const wxString &msg_name) BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << "recreate_GUI enter"; m_is_recreating_gui = true; + // The palette injects its translated strings once, at creation; drop the cached dialog so the + // next open rebuilds it in the current locale (and can't outlive the old mainframe). + if (m_speed_dial_dialog) { + m_speed_dial_dialog->Destroy(); + m_speed_dial_dialog = nullptr; + } mainframe->shutdown(); ProgressDialog dlg(msg_name, msg_name, 100, nullptr, wxPD_AUTO_HIDE); @@ -8523,6 +8529,9 @@ void GUI_App::open_preferences(size_t open_on_tab, const std::string& highlight_ this->plater_->get_current_canvas3D()->force_set_focus(); return; } + // Built-in Speed Dial command titles are copied from the catalog at init and don't follow a + // live locale switch; rebuild them in the new language before the GUI (and palette) rebuilds. + m_action_registry.relocalize_builtins(); } if (need_recreate_gui) diff --git a/src/slic3r/GUI/NativeCommands.cpp b/src/slic3r/GUI/NativeCommands.cpp index b1f517e12e..ea833acae5 100644 --- a/src/slic3r/GUI/NativeCommands.cpp +++ b/src/slic3r/GUI/NativeCommands.cpp @@ -282,16 +282,17 @@ std::vector<NativeCommand> build_command_catalog() add_with_icon("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::VFA); }); // ---- View ---- + // Titles are built with _u8L here (not via a variable) so xgettext can extract them. for (auto [key, dir, title] : - std::initializer_list<std::tuple<const char*, const char*, const char*>>{{"view_top", "top", "View: Top"}, - {"view_bottom", "bottom", "View: Bottom"}, - {"view_front", "front", "View: Front"}, - {"view_rear", "rear", "View: Rear"}, - {"view_left", "left", "View: Left"}, - {"view_right", "right", "View: Right"}, - {"view_iso", "iso", "View: Isometric"}}) { + std::initializer_list<std::tuple<const char*, const char*, std::string>>{{"view_top", "top", _u8L("View: Top")}, + {"view_bottom", "bottom", _u8L("View: Bottom")}, + {"view_front", "front", _u8L("View: Front")}, + {"view_rear", "rear", _u8L("View: Rear")}, + {"view_left", "left", _u8L("View: Left")}, + {"view_right", "right", _u8L("View: Right")}, + {"view_iso", "iso", _u8L("View: Isometric")}}) { std::string k = key, d = dir; - add(k, Slic3r::GUI::I18N::translate_utf8(title), _u8L("View"), + add(k, title, _u8L("View"), [d](const std::string&) { return view_command(wxGetApp().plater(), d); }); } add("view_default", _u8L("View: Default"), _u8L("View"), [](const std::string&) { @@ -626,12 +627,24 @@ std::vector<NativeCommand> build_command_catalog() return out; } +std::vector<NativeCommand>& catalog_storage() +{ + static std::vector<NativeCommand> commands = build_command_catalog(); + return commands; +} + } // namespace const std::vector<NativeCommand>& NativeCommands::catalog() { - static const std::vector<NativeCommand> commands = build_command_catalog(); - return commands; + return catalog_storage(); +} + +void NativeCommands::rebuild_catalog() +{ + // build_command_catalog() re-runs _u8L under the current locale, so replacing the storage + // refreshes every translated title/group after a language switch. + catalog_storage() = build_command_catalog(); } std::unique_ptr<AppAction> NativeCommands::make_action(const NativeCommand& command) diff --git a/src/slic3r/GUI/NativeCommands.hpp b/src/slic3r/GUI/NativeCommands.hpp index 32ae6ea898..993b37f564 100644 --- a/src/slic3r/GUI/NativeCommands.hpp +++ b/src/slic3r/GUI/NativeCommands.hpp @@ -24,9 +24,13 @@ struct NativeCommand }; namespace NativeCommands { -// The full built-in command catalog, built once on first use. UI thread only. +// The full built-in command catalog. Built on first use and reused; call rebuild_catalog() after a +// live UI language switch so the translated titles/groups match the new locale. UI thread only. const std::vector<NativeCommand>& catalog(); +// Rebuilds the catalog in the current locale. UI thread only. +void rebuild_catalog(); + // Dispatches `key` to its runner (unknown keys return a quiet Info). UI thread only. AppActionRunResult run(const std::string& key, const std::string& param = {}); diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index e8dc321555..5fafac4a1a 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -67,6 +67,53 @@ void focus_webview(wxWebView* browser, bool page_ready) browser->RunScript("focusInput();"); } +// Localized strings for the Speed Dial page, injected as a document-start user script. The page's +// T() reads window.ORCA_UI_STRINGS, so these flow through the same .po pipeline as the rest of the +// UI (the JS literals are only a fallback before the script runs / in the node vm test). +// %% is a literal '%': T() collapses it after substituting %s. Keep the shortcut tokens out of the +// translated text so the platform prefix (Alt+/⌥+, Ctrl+/⌘+) stays correct. +nlohmann::json speed_dial_ui_strings() +{ + const std::string alt = GUI::shortkey_alt_prefix(); + const std::string ctrl = GUI::shortkey_ctrl_prefix(); + return { + {"shortcut_alt", alt}, + {"shortcut_ctrl", ctrl}, + + {"sd_search", _u8L("Search actions")}, + {"sd_clear", _u8L("Clear")}, + {"sd_search_n", _u8L("Search %s actions")}, + {"sd_recent", _u8L("Recent")}, + {"sd_plugins", _u8L("Plugins")}, + {"sd_other", _u8L("Other")}, + {"sd_no_match_total", _u8L("No actions match (Total: %s)")}, + {"sd_no_actions", _u8L("No actions yet")}, + {"sd_no_tabs_match", _u8L("No tabs match")}, + {"sd_no_tabs", _u8L("No tabs")}, + {"sd_result_count", _u8L("Showing %s of %s actions")}, + {"sd_result_count_all", _u8L("%s actions")}, + {"sd_tab_count", _u8L("%s tabs")}, + {"sd_tab_match_count", _u8L("%s matches")}, + {"sd_favs_full", _u8L("Favourites are full (%s max)")}, + {"sd_go_to_pct", _u8L("Go to %s%% of the layer range")}, + {"sd_enter_pct", _u8L("Enter a layer percentage (0-100)")}, + {"sd_go_layer_ph", _u8L("Go to layer %% (0-100)")}, + {"sd_go_tab_ph", _u8L("Go to tab")}, + {"sd_fav_slot", _u8L("Favourite %s (%s)")}, + {"sd_pin_fav", _u8L("Pin to favourites (%s)")}, + {"sd_unpin_fav", _u8L("Unpin from favourites (%s)")}, + {"sd_remove_fav", _u8L("Remove from favourites")}, + {"sd_move_left", _u8L("Move left")}, + {"sd_move_right", _u8L("Move right")}, + {"sd_unpin", _u8L("Unpin")}, + {"sd_mode_advanced", _u8L("Advanced")}, + {"sd_mode_expert", _u8L("Expert")}, + {"sd_mode_develop", _u8L("Developer")}, + {"sd_wiki_f1", _u8L("Wiki (F1)")}, + {"sd_no_wiki", _u8L("No wiki page for this action")}, + }; +} + } // namespace SpeedDialWebDialog::SpeedDialWebDialog(wxWindow* parent) @@ -99,6 +146,18 @@ SpeedDialWebDialog::SpeedDialWebDialog(wxWindow* parent) SpeedDialWebDialog::~SpeedDialWebDialog() { m_alive->store(false, std::memory_order_release); } +// Document-start hook: hand the page its translated strings before speeddial.js runs, so the first +// paint is already localized. The table is built when the dialog is created; a live language switch +// rebuilds the GUI (and with it this dialog), so the next open re-injects the new locale. +void SpeedDialWebDialog::add_user_scripts() +{ + if (wxWebView* wv = browser()) { + const std::string js = "window.ORCA_UI_STRINGS = " + + speed_dial_ui_strings().dump(-1, ' ', false, nlohmann::json::error_handler_t::ignore) + ";"; + wv->AddUserScript(wxString::FromUTF8(js)); + } +} + void SpeedDialWebDialog::request_show() { if (IsShown()) { diff --git a/src/slic3r/GUI/SpeedDialDialog.hpp b/src/slic3r/GUI/SpeedDialDialog.hpp index 98a32674a5..f044652089 100644 --- a/src/slic3r/GUI/SpeedDialDialog.hpp +++ b/src/slic3r/GUI/SpeedDialDialog.hpp @@ -17,6 +17,7 @@ public: void request_show(); private: + void add_user_scripts() override; void on_script_message(const nlohmann::json& payload) override; void handle_web_command(const nlohmann::json& payload); void resize_to_content(int height); From 9ed853734350da80453846488834a7b4a3071717 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Mon, 14 Sep 2026 15:32:51 +0800 Subject: [PATCH 23/76] Rounded corner for the dialog --- resources/web/dialog/SpeedDial/style.css | 1 + src/slic3r/GUI/SpeedDialDialog.cpp | 37 ++++++++++++++++++++++++ src/slic3r/GUI/SpeedDialDialog.hpp | 7 +++++ 3 files changed, 45 insertions(+) diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index 8afc33d98c..5c29e68cdb 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -21,6 +21,7 @@ body { flex-direction: column; background: var(--panel, var(--orca-bg, #fff)); border: 1px solid var(--border, var(--orca-border, #ddd)); + border-radius: 7px; overflow: hidden; /* why: no height cap here - the launcher reports its true natural height to C++, which sizes the popup to match (HTML is source of truth). The list's own max-height is what diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index 5fafac4a1a..aa857d0963 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -11,7 +11,9 @@ #include <algorithm> +#include <wx/dcmemory.h> #include <wx/display.h> +#include <wx/region.h> #include <wx/sizer.h> #include <wx/stattext.h> #include <wx/utils.h> @@ -142,6 +144,7 @@ SpeedDialWebDialog::SpeedDialWebDialog(wxWindow* parent) SetSizer(sizer); SetClientSize(FromDIP(wxSize(kPopupWidth, kPopupMinHeight))); } + apply_rounded_shape(); } SpeedDialWebDialog::~SpeedDialWebDialog() { m_alive->store(false, std::memory_order_release); } @@ -168,6 +171,7 @@ void SpeedDialWebDialog::request_show() Show(); Raise(); + apply_rounded_shape(); if (m_page_ready) send_actions(); // Grab focus now and again on wxEVT_ACTIVATE; grabbing directly on the WebKit widget is @@ -245,6 +249,39 @@ void SpeedDialWebDialog::resize_to_content(int height) const int height_dip = std::max(kPopupMinHeight, std::min(height, max_dip)); SetClientSize(FromDIP(wxSize(kPopupWidth, height_dip))); Layout(); + apply_rounded_shape(); +} + +// Rounded corners: the webview paints an opaque rectangle, so round the whole top-level window +// with a shape region (same mask trick as FilamentPickerDialog). Binary edges, no anti-aliasing. +void SpeedDialWebDialog::apply_rounded_shape() +{ + const wxSize size = GetSize(); + if (size.GetWidth() <= 0 || size.GetHeight() <= 0) + return; + + m_shape_bmp.Create(size.GetWidth(), size.GetHeight(), 32); + if (!m_shape_bmp.IsOk()) + return; + + wxMemoryDC dc; + dc.SelectObject(m_shape_bmp); + dc.SetBackground(wxBrush(wxColour(0, 0, 0))); + dc.Clear(); + dc.SetBrush(wxBrush(wxColour(255, 255, 255, 255))); + dc.SetPen(*wxTRANSPARENT_PEN); + dc.DrawRoundedRectangle(0, 0, size.GetWidth(), size.GetHeight(), FromDIP(m_corner_radius)); + dc.SelectObject(wxNullBitmap); + + wxRegion region(m_shape_bmp, wxColour(0, 0, 0)); + if (region.IsOk()) + SetShape(region); +} + +void SpeedDialWebDialog::on_dpi_changed(const wxRect&) +{ + apply_rounded_shape(); + Refresh(); } void SpeedDialWebDialog::run_action(const std::string& id, const std::string& title, const std::string& param) diff --git a/src/slic3r/GUI/SpeedDialDialog.hpp b/src/slic3r/GUI/SpeedDialDialog.hpp index f044652089..e7a4060e16 100644 --- a/src/slic3r/GUI/SpeedDialDialog.hpp +++ b/src/slic3r/GUI/SpeedDialDialog.hpp @@ -7,6 +7,8 @@ #include <memory> #include <string> +#include <wx/bitmap.h> + namespace Slic3r { namespace GUI { class SpeedDialWebDialog : public WebViewHostDialog @@ -25,8 +27,13 @@ private: void open_wiki(const std::string& id); void send_actions(); void search_tabs(); + void apply_rounded_shape(); + void on_dpi_changed(const wxRect& suggested_rect) override; bool m_page_ready{false}; + // Rounded corners via a window shape region, since the webview itself is opaque. + int m_corner_radius{7}; + wxBitmap m_shape_bmp; // Guards the CallAfter in on_script_message across dialog destruction, same as // PluginsDialog::m_alive (PluginsDialog.hpp:249). std::shared_ptr<std::atomic<bool>> m_alive = std::make_shared<std::atomic<bool>>(true); From e1d3c900300076e0bef70e452baa234ae353a18c Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Mon, 14 Sep 2026 18:08:34 +0800 Subject: [PATCH 24/76] Fixes for window rounding --- src/slic3r/GUI/SpeedDialDialog.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index aa857d0963..08f2c45b86 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -124,7 +124,7 @@ SpeedDialWebDialog::SpeedDialWebDialog(wxWindow* parent) wxEmptyString, wxDefaultPosition, wxDefaultSize, - wxBORDER_NONE | wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT) + wxBORDER_NONE | wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT | wxFRAME_SHAPED) { SetBackgroundColour(bg_color()); Bind(wxEVT_ACTIVATE, [this](wxActivateEvent& event) { @@ -144,6 +144,12 @@ SpeedDialWebDialog::SpeedDialWebDialog(wxWindow* parent) SetSizer(sizer); SetClientSize(FromDIP(wxSize(kPopupWidth, kPopupMinHeight))); } + // Re-cut the shape region whenever layout changes the client size; SetShape itself + // does not generate size events, so this cannot recurse. + Bind(wxEVT_SIZE, [this](wxSizeEvent& event) { + event.Skip(); + apply_rounded_shape(); + }); apply_rounded_shape(); } @@ -256,7 +262,8 @@ void SpeedDialWebDialog::resize_to_content(int height) // with a shape region (same mask trick as FilamentPickerDialog). Binary edges, no anti-aliasing. void SpeedDialWebDialog::apply_rounded_shape() { - const wxSize size = GetSize(); + // BORDER_NONE means the window is all client area, so the client size is the shape size. + const wxSize size = GetClientSize(); if (size.GetWidth() <= 0 || size.GetHeight() <= 0) return; From f76e4b1e02885e987f9600190b904d0b36d46f99 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Wed, 16 Sep 2026 12:15:27 +0800 Subject: [PATCH 25/76] Fixed centering of icons. Disabled zooming in/out on Windows. Added default icons --- resources/images/action_default.svg | 2 + resources/web/dialog/SpeedDial/speeddial.js | 18 ++++-- .../web/dialog/SpeedDial/speeddial.test.js | 11 ++++ resources/web/dialog/SpeedDial/style.css | 5 +- src/slic3r/GUI/NativeCommands.cpp | 56 ++++++++++--------- src/slic3r/GUI/SpeedDialDialog.cpp | 4 ++ tests/slic3rutils/test_action_source.cpp | 17 ++++-- 7 files changed, 76 insertions(+), 37 deletions(-) create mode 100644 resources/images/action_default.svg diff --git a/resources/images/action_default.svg b/resources/images/action_default.svg new file mode 100644 index 0000000000..118f4792a6 --- /dev/null +++ b/resources/images/action_default.svg @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M14.5,1.5v12a1,1,0,0,1-1,1H1.5a1,1,0,0,1-1-1V1.5a1,1,0,0,1,1-1h12a1,1,0,0,1,1,1Z" style="fill:none;stroke:#949494;stroke-linecap:round;stroke-linejoin:round"/><polyline points="4,5 6.5,7.5 4,10" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/><line x1="8" y1="10" x2="11" y2="10" style="fill:none;stroke:#009688;stroke-linecap:round;stroke-linejoin:round"/></svg> diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 64550c9e5c..96725c8a8c 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -294,13 +294,21 @@ function actionIcon(a) { return (a && a.icon) ? a.icon : ""; } -// Put a pictogram into a tile (search row, favourites tile, or tab row). No icon leaves the tile -// blank. `mono` marks the white tab-strip glyphs, which the CSS recolors to the shared gray. +// Pictogram shown when an action carries none (plugins, icon-less commands/settings). A dedicated +// theme-neutral glyph (resources/images/action_default.svg: frame + ">_" prompt), so no tile is +// blank and no existing action's icon is borrowed. +var DEFAULT_ICON = "action_default"; + +// SVG base name a tile actually renders: the action's own icon, else the placeholder. Pure. +function tileIcon(a) { + return actionIcon(a) || DEFAULT_ICON; +} + +// Put a pictogram into a tile (search row, favourites tile, or tab row). `mono` marks the white +// tab-strip glyphs, which the CSS recolors to the shared gray. function fillTile(tile, a, mono) { tile.textContent = ""; - var icon = actionIcon(a); - if (!icon) - return; + var icon = tileIcon(a); var img = document.createElement("img"); img.className = mono ? "tile-icon tab-mono" : "tile-icon"; img.src = ICON_BASE + icon + ".svg"; diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 38f7c343ae..4c2f606843 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -281,6 +281,17 @@ assert.equal(ctx.actionIcon({ id: "x", title: "Plugin action" }), "", assert.equal(ctx.actionIcon(null), "", "a null action (tab row) renders a blank tile"); +// tileIcon: the base name a tile renders - the action's own icon when present, else the placeholder. +assert.equal(ctx.tileIcon({ id: "x", title: "Slice", icon: "media_play" }), "media_play", + "an action with an icon keeps it"); +assert.equal(ctx.tileIcon({ id: "x", title: "Go to tab...", icon: "" }), "action_default", + "an empty icon falls back to the placeholder"); +assert.equal(ctx.tileIcon({ id: "x", title: "Plugin action" }), "action_default", + "a missing icon falls back to the placeholder"); +assert.equal(ctx.DEFAULT_ICON, "action_default", "the placeholder is the dedicated default glyph"); +assert.ok(fs.existsSync(__dirname + "/../../../images/action_default.svg"), + "the placeholder SVG ships alongside the page's other icons"); + // needsModeSwitch: a setting is gated only when its required mode outranks the user's current mode. assert.equal(ctx.needsModeSwitch({ mode: "advanced" }, "simple"), true, "Advanced is gated in Simple mode"); assert.equal(ctx.needsModeSwitch({ mode: "expert" }, "simple"), true, "Expert is gated in Simple mode"); diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index 5c29e68cdb..4373ff7067 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -331,12 +331,15 @@ body { border: 1px solid var(--speed-tile-border, #d8d8d8); } -/* Native SVG pictogram in a tile; blank tiles (no icon) have no child. */ +/* Native SVG pictogram in a tile. The Orca icon grid draws 1px strokes from 0.5..14.5 of the 16 + viewBox, so the visible glyph is 0..15 and, centered as-is, leaves one extra pixel on the right/ + bottom (the "Save Project leans left" look). Shift by half a pixel to center the visible artwork. */ .tile-icon { width: 16px; height: 16px; display: block; pointer-events: none; + transform: translate(.5px, .5px); } /* Tab-strip glyphs are drawn white for the dark tab bar; recolor to the shared #949494 gray so diff --git a/src/slic3r/GUI/NativeCommands.cpp b/src/slic3r/GUI/NativeCommands.cpp index ea833acae5..2e24f14326 100644 --- a/src/slic3r/GUI/NativeCommands.cpp +++ b/src/slic3r/GUI/NativeCommands.cpp @@ -236,12 +236,12 @@ std::vector<NativeCommand> build_command_catalog() }); // ---- Export pipeline ---- - add_with_icon("export_gcode", _u8L("Export G-code"), _u8L("Slice & Export"), "menu_export_gcode", [](const std::string&) { + add_with_icon("export_gcode", _u8L("Export G-code"), _u8L("Slice & Export"), "custom-gcode_gcode", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_gcode(false); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("export_stl", _u8L("Export STL"), _u8L("Slice & Export"), "menu_export_stl", [](const std::string&) { + add_with_icon("export_stl", _u8L("Export STL"), _u8L("Slice & Export"), "save", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_stl(); return AppActionRunResult{AppActionRunResult::Level::Success}; @@ -251,35 +251,37 @@ std::vector<NativeCommand> build_command_catalog() plater->export_core_3mf(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("export_sliced_file", _u8L("Export Sliced File"), _u8L("Slice & Export"), "menu_export_sliced_file", [](const std::string&) { + add_with_icon("export_sliced_file", _u8L("Export Sliced File"), _u8L("Slice & Export"), "save", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_gcode_3mf(false); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"), "menu_export_sliced_file", [](const std::string&) { + add_with_icon("export_all_sliced_file", _u8L("Export All Sliced Files"), _u8L("Slice & Export"), "save", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_gcode_3mf(true); return AppActionRunResult{AppActionRunResult::Level::Success}; }); // ---- Calibration ---- - add_with_icon("calib_temperature", _u8L("Temperature Calibration"), _u8L("Calibration"), "calib_sf", + // The tab-strip calib_sf glyph is drawn white for the dark tab bar and vanishes on the palette's + // light tile, so each wizard borrows the matching settings-group icon instead (gray + accent green). + add_with_icon("calib_temperature", _u8L("Temperature Calibration"), _u8L("Calibration"), "param_temperature", [](const std::string&) { return calib_command(CalibKind::Temperature); }); - add_with_icon("calib_max_volumetric", _u8L("Max Volumetric Speed Calibration"), _u8L("Calibration"), "calib_sf", + add_with_icon("calib_max_volumetric", _u8L("Max Volumetric Speed Calibration"), _u8L("Calibration"), "param_volumetric_speed", [](const std::string&) { return calib_command(CalibKind::MaxVolumetric); }); - add_with_icon("calib_pressure_advance", _u8L("Pressure Advance Calibration"), _u8L("Calibration"), "calib_sf", + add_with_icon("calib_pressure_advance", _u8L("Pressure Advance Calibration"), _u8L("Calibration"), "param_flow_ratio_and_pressure_advance", [](const std::string&) { return calib_command(CalibKind::PressureAdvance); }); - add_with_icon("calib_flow_ratio", _u8L("Flow Ratio Calibration"), _u8L("Calibration"), "calib_sf", + add_with_icon("calib_flow_ratio", _u8L("Flow Ratio Calibration"), _u8L("Calibration"), "param_flow_ratio_and_pressure_advance", [](const std::string&) { return calib_command(CalibKind::FlowRatio); }); - add_with_icon("calib_retraction", _u8L("Retraction Calibration"), _u8L("Calibration"), "calib_sf", + add_with_icon("calib_retraction", _u8L("Retraction Calibration"), _u8L("Calibration"), "param_retraction", [](const std::string&) { return calib_command(CalibKind::Retraction); }); - add_with_icon("calib_cornering", _u8L("Cornering Calibration"), _u8L("Calibration"), "calib_sf", + add_with_icon("calib_cornering", _u8L("Cornering Calibration"), _u8L("Calibration"), "param_precision", [](const std::string&) { return calib_command(CalibKind::Cornering); }); - add_with_icon("calib_input_shaping_freq", _u8L("Input Shaping Frequency Calibration"), _u8L("Calibration"), "calib_sf", + add_with_icon("calib_input_shaping_freq", _u8L("Input Shaping Frequency Calibration"), _u8L("Calibration"), "param_resonance_avoidance", [](const std::string&) { return calib_command(CalibKind::InputShapingFreq); }); - add_with_icon("calib_input_shaping_damp", _u8L("Input Shaping Damping Calibration"), _u8L("Calibration"), "calib_sf", + add_with_icon("calib_input_shaping_damp", _u8L("Input Shaping Damping Calibration"), _u8L("Calibration"), "param_resonance_avoidance", [](const std::string&) { return calib_command(CalibKind::InputShapingDamp); }); - add_with_icon("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"), "calib_sf", [](const std::string&) { return calib_command(CalibKind::VFA); }); + add_with_icon("calib_vfa", _u8L("VFA Calibration"), _u8L("Calibration"), "param_speed", [](const std::string&) { return calib_command(CalibKind::VFA); }); // ---- View ---- // Titles are built with _u8L here (not via a variable) so xgettext can extract them. @@ -322,10 +324,10 @@ std::vector<NativeCommand> build_command_catalog() }); // ---- Object ---- - add_with_icon("obj_delete", _u8L("Delete Selected"), _u8L("Object"), "menu_delete", [](const std::string&) { + add_with_icon("obj_delete", _u8L("Delete Selected"), _u8L("Object"), "delete", [](const std::string&) { return object_op(wxGetApp().plater(), [](Plater* p) { return !p->is_selection_empty(); }, [](Plater* p) { p->remove_selected(); }); }); - add_with_icon("obj_delete_all", _u8L("Delete All Objects"), _u8L("Object"), "menu_remove", [](const std::string&) { + add_with_icon("obj_delete_all", _u8L("Delete All Objects"), _u8L("Object"), "delete", [](const std::string&) { return object_op( wxGetApp().plater(), [](Plater* p) { return p->can_delete_all(); }, [](Plater* p) { p->delete_all_objects_from_model(); }); }); @@ -440,7 +442,7 @@ std::vector<NativeCommand> build_command_catalog() plater->duplicate_plate(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("plate_delete", _u8L("Delete Plate"), _u8L("Plate"), "menu_delete", [](const std::string&) { + add_with_icon("plate_delete", _u8L("Delete Plate"), _u8L("Plate"), "delete", [](const std::string&) { Plater* plater = wxGetApp().plater(); if (!is_fff_plater(plater)) return plate_unavailable(); @@ -511,7 +513,7 @@ std::vector<NativeCommand> build_command_catalog() }); // ---- Import ---- - add_with_icon("import_file", _u8L("Import 3MF/STL/STEP/SVG/OBJ/AMF"), _u8L("Import"), "menu_import", [](const std::string&) { + add_with_icon("import_file", _u8L("Import 3MF/STL/STEP/SVG/OBJ/AMF"), _u8L("Import"), "menu_open", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) { #ifdef __APPLE__ plater->add_model(); @@ -521,39 +523,39 @@ std::vector<NativeCommand> build_command_catalog() } return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("import_zip_archive", _u8L("Import ZIP Archive"), _u8L("Import"), "menu_import", [](const std::string&) { + add_with_icon("import_zip_archive", _u8L("Import ZIP Archive"), _u8L("Import"), "menu_open", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->import_zip_archive(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("import_configs", _u8L("Import Configs"), _u8L("Import"), "menu_import", [](const std::string&) { + add_with_icon("import_configs", _u8L("Import Configs"), _u8L("Import"), "menu_open", [](const std::string&) { if (MainFrame* mf = wxGetApp().mainframe) mf->load_config_file(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); // ---- Export extras ---- - add_with_icon("export_stl_multi", _u8L("Export All Objects as STLs"), _u8L("Export"), "menu_export_stl", [](const std::string&) { + add_with_icon("export_stl_multi", _u8L("Export All Objects as STLs"), _u8L("Export"), "save", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_stl(false, false, true); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("export_drc_single", _u8L("Export All Objects as DRC (one file)"), _u8L("Export"), "menu_export_stl", [](const std::string&) { + add_with_icon("export_drc_single", _u8L("Export All Objects as DRC (one file)"), _u8L("Export"), "save", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_stl(false, false, false, FT_DRC); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("export_drc_multi", _u8L("Export All Objects as DRCs"), _u8L("Export"), "menu_export_stl", [](const std::string&) { + add_with_icon("export_drc_multi", _u8L("Export All Objects as DRCs"), _u8L("Export"), "save", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_stl(false, false, true, FT_DRC); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("export_toolpaths_obj", _u8L("Export Toolpaths as OBJ"), _u8L("Export"), "menu_export_toolpaths", [](const std::string&) { + add_with_icon("export_toolpaths_obj", _u8L("Export Toolpaths as OBJ"), _u8L("Export"), "custom-gcode_gcode", [](const std::string&) { if (Plater* plater = wxGetApp().plater()) plater->export_toolpaths_to_obj(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("export_config", _u8L("Export Preset Bundle"), _u8L("Export"), "menu_export_config", [](const std::string&) { + add_with_icon("export_config", _u8L("Export Preset Bundle"), _u8L("Export"), "save", [](const std::string&) { if (MainFrame* mf = wxGetApp().mainframe) mf->export_config(); return AppActionRunResult{AppActionRunResult::Level::Success}; @@ -568,7 +570,7 @@ std::vector<NativeCommand> build_command_catalog() wxGetApp().ShowUserGuide(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("help_open_config_folder", _u8L("Show Configuration Folder"), _u8L("Help"), "folder-closed", [](const std::string&) { + add_with_icon("help_open_config_folder", _u8L("Show Configuration Folder"), _u8L("Help"), "open_project", [](const std::string&) { Slic3r::GUI::desktop_open_datadir_folder(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); @@ -589,11 +591,11 @@ std::vector<NativeCommand> build_command_catalog() } return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("help_check_updates", _u8L("Check for Updates"), _u8L("Help"), "ams_refresh_normal", [](const std::string&) { + add_with_icon("help_check_updates", _u8L("Check for Updates"), _u8L("Help"), "refresh", [](const std::string&) { wxGetApp().check_new_version_sf(true, 1); return AppActionRunResult{AppActionRunResult::Level::Success}; }); - add_with_icon("help_about", _u8L("About OrcaSlicer"), _u8L("Help"), "OrcaSlicer_about", [](const std::string&) { + add_with_icon("help_about", _u8L("About OrcaSlicer"), _u8L("Help"), "OrcaSlicer_gradient_circle", [](const std::string&) { Slic3r::GUI::about(); return AppActionRunResult{AppActionRunResult::Level::Success}; }); diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index 08f2c45b86..3de0c137bb 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -144,6 +144,10 @@ SpeedDialWebDialog::SpeedDialWebDialog(wxWindow* parent) SetSizer(sizer); SetClientSize(FromDIP(wxSize(kPopupWidth, kPopupMinHeight))); } + // WebView2's browser accelerator keys include Ctrl +/-/0 and Ctrl+wheel zoom, which would resize + // the page inside the fixed-size popup. No-op on the other backends (wxWidgets 3.3 base virtual). + if (wxWebView* wv = browser()) + wv->EnableBrowserAcceleratorKeys(false); // Re-cut the shape region whenever layout changes the client size; SetShape itself // does not generate size events, so this cannot recurse. Bind(wxEVT_SIZE, [this](wxSizeEvent& event) { diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 1743f09ab3..0eb5edde41 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -171,9 +171,10 @@ TEST_CASE("Native command catalog has unique keys and present titles", "[ActionS } } -// Every command's tile pictogram is the SVG the matching GUI control already uses; an absent icon -// means a blank tile (like the tab picker). Guard representative names and that every non-empty -// value resolves to a shipped file, so a rename/typo cannot leave broken images in the palette. +// Every command's tile pictogram is a theme-neutral SVG (the matching GUI control's icon, or the +// equivalent settings-group icon); an absent icon gets the page's generic placeholder. Guard +// representative names and that every non-empty value resolves to a shipped file, so a rename/typo +// cannot leave broken images in the palette. TEST_CASE("Native command icons resolve to shipped SVGs", "[ActionSource][SpeedDial]") { const std::vector<Slic3r::GUI::NativeCommand>& commands = Slic3r::GUI::NativeCommands::catalog(); @@ -193,9 +194,17 @@ TEST_CASE("Native command icons resolve to shipped SVGs", "[ActionSource][SpeedD Expected{"save_project", "menu_save"}, Expected{"sync_ams", "ams_fila_sync"}, Expected{"mode_simple", "advanced"}, - Expected{"calib_temperature", "calib_sf"}, + Expected{"calib_temperature", "param_temperature"}, + Expected{"calib_cornering", "param_precision"}, Expected{"plate_add", "toolbar_add_plate"}, Expected{"add_primitive_cube", "menu_obj_cube"}, + // These previously pointed at blank placeholder SVGs or theme-broken ones. + Expected{"obj_delete", "delete"}, + Expected{"export_gcode", "custom-gcode_gcode"}, + Expected{"import_file", "menu_open"}, + Expected{"help_open_config_folder", "open_project"}, + Expected{"help_check_updates", "refresh"}, + Expected{"help_about", "OrcaSlicer_gradient_circle"}, Expected{"go_to_tab", ""}}) { const std::string* icon = icon_of(e.key); INFO(e.key); From b01d18bba3d1b50b79230ba1dc11c6c082bdfaa6 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Wed, 16 Sep 2026 13:06:16 +0800 Subject: [PATCH 26/76] Tab autocomplete. Better search integration of categories and action names --- resources/web/dialog/SpeedDial/index.html | 5 +- resources/web/dialog/SpeedDial/speeddial.js | 199 ++++++++++++++++-- .../web/dialog/SpeedDial/speeddial.test.js | 49 +++++ resources/web/dialog/SpeedDial/style.css | 35 +++ 4 files changed, 266 insertions(+), 22 deletions(-) diff --git a/resources/web/dialog/SpeedDial/index.html b/resources/web/dialog/SpeedDial/index.html index e258f34f86..a9070b972e 100644 --- a/resources/web/dialog/SpeedDial/index.html +++ b/resources/web/dialog/SpeedDial/index.html @@ -19,7 +19,10 @@ <span class="plugin-search-icon" aria-hidden="true"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><line x1="21" y1="21" x2="16.5" y2="16.5"/></svg> </span> - <input class="plugin-search-input" id="q" type="text" placeholder="Search actions" spellcheck="false" autocomplete="off" aria-label="Search actions" /> + <span class="plugin-search-field"> + <span class="search-ghost" id="ghost" hidden aria-hidden="true"><span class="search-ghost-typed" id="ghostTyped"></span><span class="search-ghost-suffix" id="ghostSuffix"></span></span> + <input class="plugin-search-input" id="q" type="text" placeholder="Search actions" spellcheck="false" autocomplete="off" aria-label="Search actions" /> + </span> <button class="plugin-search-clear" id="clear" type="button" title="Clear" aria-label="Clear search" hidden> <svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" aria-hidden="true"><line x1="5" y1="5" x2="11" y2="11"/><line x1="11" y1="5" x2="5" y2="11"/></svg> </button> diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 96725c8a8c..41e180a3cd 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -30,6 +30,9 @@ var MODE_RANK = { simple: 0, advanced: 1, expert: 2, develop: 3 }; var SCORE_CONTIGUOUS = 100000; var SCORE_TITLE = 2000; var SCORE_GROUP = 1000; +// A whole-query match in a single field must outrank any multi-token match distributed across fields. +// Larger than the largest plausible sum of per-token scores (SCORE_CONTIGUOUS * token count). +var SCORE_PHRASE = 10000000; // Localized lookup for strings this page builds at runtime. The host injects the translated table // as a document-start user script (SpeedDialWebDialog::add_user_scripts); the English literal is a @@ -68,8 +71,11 @@ var sectionStarts = null; var sectionTotal = 0; var sectionRendered = 0; -// search-cache: the normalized (folded+lowercased) needle for the current query pass. +// search-cache: the normalized (folded+lowercased) needle for the current query pass, plus the +// whitespace-separated tokens and their compiled whole-word regexes for the multi-token path. var searchNeedle = ""; +var searchTokens = []; +var searchTokenRes = []; // Palette phase: 'commands' (one unified search over actions/commands/settings, recents on empty // query), 'percent' ("Go to layer" second phase: enter a 0-100 percentage), 'tab' ("Go to tab..." @@ -82,6 +88,9 @@ var tabOptions = []; // [{id,title}] - notebook pages, fetched on entering // element handles, assigned in OnInit (kept null so load-time touches no DOM) var qEl = null, listEl = null, favEl = null, clearEl = null, eyeEl = null, countEl = null, detailEl = null; +var ghostEl = null, ghostTypedEl = null, ghostSuffixEl = null; +// The completion currently offered as ghost text ({suffix, word, id}), or null. Tab accepts it. +var activeCompletion = null; // ---- pure helpers (no DOM; unit-tested) ------------------------------------- // Pre-normalized haystacks, cached on the action object. The fold is length-preserving (1:1 per @@ -106,20 +115,20 @@ function sourceNorm(a) { return a._sn; } -// Match one pre-normalized field vs the current needle. Returns {score, ranges, contiguous} when the -// needle is present, else null. wwRe is a compiled whole-word (\b-bounded) regex for the current needle. -// A whole-word hit is preferred - it highlights the full word (e.g. "orient" in "Auto-Orient", not the -// stray "o" of "Auto") and marks a perfect match. Otherwise FuzzyRangesNorm (which now prefers the +// Match one pre-normalized field vs one pre-normalized needle. Returns {score, ranges, contiguous} +// when the needle is present, else null. wwRe is a compiled whole-word (\b-bounded) regex for the +// needle. A whole-word hit is preferred - it highlights the full word (e.g. "orient" in "Auto-Orient", +// not the stray "o" of "Auto") and marks a perfect match. Otherwise FuzzyRangesNorm (which prefers the // most-contiguous run) is used. score is higher for an earlier start and fewer gaps; contiguous marks // a perfect match - the whole needle landed as one unbroken run. -function fieldMatchScore(norm, wwRe) { - if (!searchNeedle) return null; +function fieldMatchScore(norm, needle, wwRe) { + if (!needle) return null; if (wwRe) { var m = wwRe.exec(norm || ""); if (m) return { score: 1000 - m.index * 10, ranges: [[m.index, m.index + m[0].length]], contiguous: true }; } - var r = FuzzyRangesNorm(norm || "", searchNeedle); + var r = FuzzyRangesNorm(norm || "", needle); if (!r) return null; var gaps = 0, len = 0; for (var i = 0; i < r.length; i++) { @@ -127,7 +136,57 @@ function fieldMatchScore(norm, wwRe) { gaps += r[i][0] - r[i - 1][1]; len += r[i][1] - r[i][0]; } - return { score: 1000 - r[0][0] * 10 - gaps * 10, ranges: r, contiguous: r.length === 1 && len === searchNeedle.length }; + return { score: 1000 - r[0][0] * 10 - gaps * 10, ranges: r, contiguous: r.length === 1 && len === needle.length }; +} + +// Split a query into normalized (folded+lowercased) whitespace-separated tokens. Empty for a blank +// query. These drive the multi-token path: every token must match some field, but different tokens +// may match different fields (the title, the group, or the source breadcrumb). +function queryTokens(query) { + var norm = NormText(String(query || "").trim(), false); + return norm ? norm.split(/\s+/).filter(Boolean) : []; +} + +// Whole-word regex for one normalized token, same shape fieldMatchScore expects. +function tokenWordRe(token) { + return new RegExp("\\b" + EscapeRegExp(token) + "\\b"); +} + +// One token's best match across an action's three fields, keeping the per-field ranges so the caller +// can highlight each matched word. Returns {score, title, group, source} (ranges or null per field), or +// null when no field contains the token. Score mirrors scoreFields' tiers: contiguous > fuzzy, then +// title > group > source. +function tokenMatch(a, token, wwRe) { + var t = fieldMatchScore(titleNorm(a), token, wwRe); + var g = fieldMatchScore(groupNorm(a), token, wwRe); + var s = fieldMatchScore(sourceNorm(a), token, wwRe); + if (!t && !g && !s) return null; + var score = Math.max( + t ? (t.contiguous ? SCORE_CONTIGUOUS : 0) + SCORE_TITLE + t.score : -Infinity, + g ? (g.contiguous ? SCORE_CONTIGUOUS : 0) + SCORE_GROUP + g.score : -Infinity, + s ? (s.contiguous ? SCORE_CONTIGUOUS : 0) + s.score : -Infinity + ); + return { score: score, title: t ? t.ranges : null, group: g ? g.ranges : null, source: s ? s.ranges : null }; +} + +// Merge per-field token ranges into sorted, coalesced ranges for highlighting. Overlapping or adjacent +// runs (the same word matched by two tokens) collapse to one span. Null when nothing matched. +function mergeRanges(ranges) { + var flat = []; + (ranges || []).forEach(function (rs) { + if (rs) rs.forEach(function (r) { flat.push([r[0], r[1]]); }); + }); + if (!flat.length) return null; + flat.sort(function (a, b) { return a[0] - b[0] || a[1] - b[1]; }); + var out = [flat[0].slice()]; + for (var i = 1; i < flat.length; i++) { + var last = out[out.length - 1]; + if (flat[i][0] <= last[1]) + last[1] = Math.max(last[1], flat[i][1]); + else + out.push(flat[i].slice()); + } + return out; } // Combine the per-field match scores into one comparable value, or null when no field matched. @@ -151,12 +210,21 @@ function scoreFields(t, g, s) { // by relevance (not by action type). Sets matchIndex so rows highlight their match ranges. The query // is normalized ONCE per pass - FuzzyRangesNorm then runs against each action's pre-normalized // haystack, so per-keystroke cost is a cheap scan (no per-char normalize/regex). +// +// Two match modes, phrase preferred: +// - phrase: the whole trimmed query as one ordered subsequence in a SINGLE field (as before). +// - tokens: every whitespace-separated word must match SOME field, but different words may match +// different fields. This is what lets "speed acceleration inner" find "Inner wall" whose path is +// "Process : Speed : Acceleration" (title + source breadcrumb together). +// A phrase match always outranks a distributed token match. function searchActions(actions, query) { var q = (query || "").trim(); var list = actions || []; matchIndex = {}; - if (!q) { searchNeedle = ""; return list.slice(0); } + if (!q) { searchNeedle = ""; searchTokens = []; searchTokenRes = []; return list.slice(0); } searchNeedle = NormText(q, false); + searchTokens = queryTokens(q); + searchTokenRes = searchTokens.map(tokenWordRe); // Mode keywords ("advanced"/"expert"/"developer") are a union, not a filter: the normal text // search still runs on the full query, and every setting requiring a named mode is appended. var modes = modeFilterFromQuery(q); @@ -168,17 +236,36 @@ function searchActions(actions, query) { var seen = {}; for (var i = 0; i < list.length; i++) { var a = list[i]; - var t = fieldMatchScore(titleNorm(a), wwRe); - var g = fieldMatchScore(groupNorm(a), wwRe); - var s = fieldMatchScore(sourceNorm(a), wwRe); - var score = scoreFields(t, g, s); - if (score === null) continue; + var t = fieldMatchScore(titleNorm(a), searchNeedle, wwRe); + var g = fieldMatchScore(groupNorm(a), searchNeedle, wwRe); + var s = fieldMatchScore(sourceNorm(a), searchNeedle, wwRe); + var phrase = scoreFields(t, g, s); + var score, ranges; + if (phrase !== null) { + score = phrase + SCORE_PHRASE; + ranges = { title: t ? t.ranges : null, group: g ? g.ranges : null, source: s ? s.ranges : null }; + } else { + // Require every token; a token that matches nothing drops the action immediately. Ranges + // from all matching tokens are merged per field so each matched word highlights. + var sum = 0, titleR = null, groupR = null, sourceR = null, all = true; + for (var k = 0; k < searchTokens.length; k++) { + var m = tokenMatch(a, searchTokens[k], searchTokenRes[k]); + if (!m) { all = false; break; } + sum += m.score; + if (m.title) (titleR || (titleR = [])).push(m.title); + if (m.group) (groupR || (groupR = [])).push(m.group); + if (m.source) (sourceR || (sourceR = [])).push(m.source); + } + if (!all) continue; + score = sum; + ranges = { title: mergeRanges(titleR), group: mergeRanges(groupR), source: mergeRanges(sourceR) }; + } // Ranges are per-field against the ACTUAL text drawn: title for the row-name, and group (or // source when group is empty) for the eyebrow - so highlight offsets stay aligned to the label. matchIndex[a.id] = { - title: t ? t.ranges : null, - group: g ? g.ranges : null, - source: s ? s.ranges : null, + title: ranges.title, + group: ranges.group, + source: ranges.source, useEyebrowGroup: !!(a.group) }; scored.push({ a: a, s: score }); @@ -206,6 +293,38 @@ function searchActions(actions, query) { return result; } +// Candidate words for inline completion, in reading order. Whitespace and the breadcrumb separator +// split them, so "Process : Speed : Acceleration" yields Process/Speed/Acceleration. Pure. +function completionWords(text) { + return String(text || "").split(/[\s:]+/).filter(Boolean); +} + +// The inline completion for the query's LAST token: scan the top-ranked results' name first, then +// their path breadcrumb, and return the first word that extends the typed token as a prefix. Headlines +// the most likely word without committing to a result. Returns {suffix, word, id} or null. Pure so the +// node-vm test can exercise it; the caller appends `suffix` to the input. +function completionFor(query, list) { + var raw = String(query || ""); + var parts = raw.match(/(\S+)\s*$/); + if (!parts) return null; + var prefix = NormText(parts[1], false); + if (!prefix) return null; + var top = (list || []).slice(0, 10); + for (var i = 0; i < top.length; i++) { + var a = top[i]; + var fields = [a.title, a.group, a.source]; + for (var f = 0; f < fields.length; f++) { + var words = completionWords(fields[f]); + for (var w = 0; w < words.length; w++) { + var norm = NormText(words[w], false); + if (norm.length > prefix.length && norm.indexOf(prefix) === 0) + return { suffix: words[w].slice(prefix.length), word: words[w], id: a.id }; + } + } + } + return null; +} + // Pure: how many rows must be materialized to cover the given starting index plus `size` more. // Clamped to the total; used to decide "render the next window" on scroll / arrow-nav. function revealTarget(total, fromIndex, size) { @@ -361,12 +480,15 @@ function commandList(actions, recents, query) { var all = actions || []; if (shouldRenderActionList(query)) { if (searchCache && searchCache.actions === all && searchCache.query === query) { - matchIndex = searchCache.matchIndex; - searchNeedle = searchCache.needle; + matchIndex = searchCache.matchIndex; + searchNeedle = searchCache.needle; + searchTokens = searchCache.tokens; + searchTokenRes = searchCache.tokenRes; return searchCache.list; } var found = searchActions(all, query); - searchCache = { actions: all, query: query, list: found, matchIndex: matchIndex, needle: searchNeedle }; + searchCache = { actions: all, query: query, list: found, matchIndex: matchIndex, needle: searchNeedle, + tokens: searchTokens, tokenRes: searchTokenRes }; return found; } var rec = recents || []; @@ -1049,10 +1171,28 @@ function renderDetail() { } } +// Refresh the muted inline completion shown at the end of the search field. Only offered in the +// commands phase, with the caret at the end of a non-empty, non-trailing-space input that isn't +// scrolled (so the overlay lines up with the real caret). The ghost is the typed text (hidden, to +// reserve its width) followed by the suggested suffix, so it sits exactly after the caret. +function updateGhost() { + activeCompletion = null; + if (!ghostEl || !qEl) return; + var eligible = phase === "commands" && qEl.value && qEl.selectionStart === qEl.value.length && + !/\s$/.test(qEl.value) && qEl.scrollWidth <= qEl.clientWidth; + var comp = eligible ? completionFor(query, currentList()) : null; + if (!comp) { ghostEl.hidden = true; return; } + ghostTypedEl.textContent = qEl.value; + ghostSuffixEl.textContent = comp.suffix; + ghostEl.hidden = false; + activeCompletion = comp; +} + function render(opts) { renderFav(); renderList(); renderDetail(); + updateGhost(); // Pin toggles don't move the selection, so they pass keepScroll to avoid snapping the list // back to a row that is currently off-screen. if (!(opts && opts.keepScroll)) @@ -1203,6 +1343,7 @@ function focusInput() { setTimeout(function () { if (qEl) qEl.focus(); }, 0); } // ---- init -------------------------------------------------------------------- function OnInit() { qEl = $("q"); listEl = $("list"); favEl = $("favBar"); clearEl = $("clear"); eyeEl = $("favEyebrow"); countEl = $("count"); detailEl = $("detail"); + ghostEl = $("ghost"); ghostTypedEl = $("ghostTyped"); ghostSuffixEl = $("ghostSuffix"); // text.js's TranslatePage() targets jQuery `.trans` nodes; this page has none and defines its own // `$`, so don't call it. Runtime strings go through T() instead. qEl.placeholder = T("sd_search", "Search actions"); @@ -1222,6 +1363,9 @@ function OnInit() { query = qEl.value; sel = { zone: "list", i: 0 }; syncClearButton(); render({ resize: true, resetScroll: true }); }); + // Caret moves without a value change (click / arrow keys) can enable or invalidate the ghost. + qEl.addEventListener("keyup", updateGhost); + qEl.addEventListener("click", updateGhost); // Windowed reveal: as the list scrolls, materialize the next window (append-only, no rebuild) so the // DOM stays bounded to what's near the viewport. Guarded to the commands phase (tabs/percent are tiny). listEl.addEventListener("scroll", function () { @@ -1250,6 +1394,19 @@ function OnInit() { else flashHint(T("sd_no_wiki", "No wiki page for this action")); return; } + // Accept the inline completion: append the suggested word's suffix. Text only - the list + // selection is left where it is; Enter still runs the highlighted result. Shift+Tab is left + // alone so keyboard focus traversal still works. + if (e.key === "Tab" && phase === "commands" && activeCompletion && + !e.altKey && !e.ctrlKey && !e.metaKey && !e.shiftKey) { + e.preventDefault(); + qEl.value += activeCompletion.suffix; + query = qEl.value; + syncClearButton(); + render({ resize: true, resetScroll: true }); + qEl.focus(); + return; + } // Pin/unpin the highlighted action: Ctrl/Cmd+B. Commands phase only (tabs/percent aren't pinnable). if (phase === "commands" && (e.ctrlKey || e.metaKey) && !e.altKey && !e.shiftKey && e.key.toLowerCase() === "b") { diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 4c2f606843..ea9517cfa6 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -117,6 +117,55 @@ const negativePool = [ assert.equal(ctx.searchActions(negativePool, "ornt").length, 1, "a low-score fuzzy match is not mistaken for no match"); +// Multi-token cross-field search: each whitespace-separated word must match SOME searchable field, +// but different words may match different fields. "inner" is the title while "speed" and +// "acceleration" live in the source breadcrumb, so the query as a whole is never contiguous in one +// field - the old single-needle match found nothing for this. +const crossPool = [ + { id: "acc", title: "Inner wall", source: "Process : Speed : Acceleration", group: "", input: "" }, + { id: "spd", title: "Inner wall", source: "Process : Speed : Other layers speed", group: "", input: "" }, + { id: "other", title: "Outer wall", source: "Process : Quality : Walls", group: "", input: "" } +]; +assert.deepEqual( + ctx.searchActions(crossPool, "speed acceleration inner").map(function (a) { return a.id; }), + ["acc"], + "words may match different fields and every word is required" +); +assert.deepEqual( + ctx.searchActions(crossPool, "speed inner").map(function (a) { return a.id; }).sort(), + ["acc", "spd"], + "a two-word title+source query matches every setting under Speed" +); +assert.deepEqual( + ctx.searchActions(crossPool, "quality inner").map(function (a) { return a.id; }), + [], + "an action is dropped when any one word matches no field" +); +// Highlighting merges the per-field ranges the tokens produced. +ctx.searchActions(crossPool, "speed acceleration inner"); +assert.deepEqual(ctx.matchIndex.acc.title, [[0, 5]], "the title token highlights in the title"); +assert.deepEqual(ctx.matchIndex.acc.source, [[10, 15], [18, 30]], "each path token highlights in the breadcrumb"); + +assert.deepEqual(ctx.queryTokens(" Speed Acceleration "), ["speed", "acceleration"], + "a query splits into normalized whitespace-separated tokens"); +assert.deepEqual(ctx.queryTokens(""), [], "an empty query has no tokens"); + +// Inline completion: the LAST token is completed to a word in the top-ranked result, name first then +// breadcrumb. Pure - the caller appends `suffix`. +const compPool = [ + { id: "acc", title: "Inner wall", source: "Process : Speed : Acceleration", group: "", input: "" }, + { id: "smooth", title: "Smooth", source: "Process : Speed : Other layers speed", group: "", input: "" } +]; +assert.equal(ctx.completionFor("speed acc", ctx.searchActions(compPool, "speed acc")).suffix, "eleration", + "the last token completes to the next word in the breadcrumb"); +assert.equal(ctx.completionFor("inner w", ctx.searchActions(compPool, "inner w")).suffix, "all", + "the title is preferred over the breadcrumb for completion"); +assert.equal(ctx.completionFor("inner wall", ctx.searchActions(compPool, "inner wall")), null, + "an already-complete word has nothing to add"); +assert.equal(ctx.completionFor("", compPool), null, "an empty query has no completion"); +assert.equal(ctx.completionFor("zzz", ctx.searchActions(compPool, "zzz")), null, + "a query with no match has no completion"); + // actionCategory: a command/dynamic action's group is its category; a setting uses the top-level // source segment; every plugin shares one header; a category-less action falls back to "Other". assert.equal(ctx.actionCategory({ id: "c", group: "Help", source: "OrcaSlicer", kind: "command" }), "Help", diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index 4373ff7067..0beae39931 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -225,6 +225,7 @@ body { .plugin-search-input { flex: 1; min-width: 0; + padding: 0; background: transparent; border: 0; outline: 0; @@ -232,6 +233,40 @@ body { font: inherit; } +/* Wraps the input so the ghost completion can sit exactly at the caret. The ghost mirrors the typed + text in an invisible run (reserving its width) followed by the muted suggested suffix. */ +.plugin-search-field { + position: relative; + flex: 1; + min-width: 0; + display: flex; + align-items: center; +} + +.search-ghost { + position: absolute; + inset: 0; + display: flex; + align-items: center; + overflow: hidden; + white-space: pre; + font: inherit; + pointer-events: none; +} + +.search-ghost[hidden] { + display: none; +} + +.search-ghost-typed { + visibility: hidden; +} + +.search-ghost-suffix { + color: var(--muted, var(--orca-muted, #6b7280)); + opacity: .7; +} + .plugin-search-clear { display: inline-flex; align-items: center; From 075a84093f99c7d17d6fa830b26b186e98f73db2 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Wed, 16 Sep 2026 16:02:39 +0800 Subject: [PATCH 27/76] Fixes issue with showing hidden settings in speed dial. --- resources/web/dialog/SpeedDial/speeddial.js | 34 +++++++++------ .../web/dialog/SpeedDial/speeddial.test.js | 12 ++++++ src/slic3r/GUI/ActionRegistry.cpp | 39 +++++++++++------ src/slic3r/GUI/ActionRegistry.hpp | 3 ++ src/slic3r/GUI/OptionsGroup.cpp | 24 ++++++++--- src/slic3r/GUI/SettingsIndex.cpp | 15 ++++++- src/slic3r/GUI/SettingsIndex.hpp | 29 ++++++++++++- src/slic3r/GUI/Tab.cpp | 42 ++++++++++++++++--- src/slic3r/GUI/Tab.hpp | 10 +++++ tests/slic3rutils/test_action_source.cpp | 30 +++++++++++++ 10 files changed, 198 insertions(+), 40 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index 41e180a3cd..f63e831a9e 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -114,6 +114,13 @@ function sourceNorm(a) { a._sn = NormText(a.source || "", false); return a._sn; } +// Search-only alias for the descriptive name when the title differs (e.g. "Reverse on even" vs +// "Overhang reversal"). Never rendered, so no highlight ranges. +function fullNorm(a) { + if (a._fn === undefined) + a._fn = NormText(a.full_label || "", false); + return a._fn; +} // Match one pre-normalized field vs one pre-normalized needle. Returns {score, ranges, contiguous} // when the needle is present, else null. wwRe is a compiled whole-word (\b-bounded) regex for the @@ -152,19 +159,19 @@ function tokenWordRe(token) { return new RegExp("\\b" + EscapeRegExp(token) + "\\b"); } -// One token's best match across an action's three fields, keeping the per-field ranges so the caller -// can highlight each matched word. Returns {score, title, group, source} (ranges or null per field), or -// null when no field contains the token. Score mirrors scoreFields' tiers: contiguous > fuzzy, then -// title > group > source. +// One token's best match across an action's searchable fields, keeping per-field ranges for +// highlighting. Returns {score, title, group, source}, or null if no field matches. function tokenMatch(a, token, wwRe) { var t = fieldMatchScore(titleNorm(a), token, wwRe); var g = fieldMatchScore(groupNorm(a), token, wwRe); var s = fieldMatchScore(sourceNorm(a), token, wwRe); - if (!t && !g && !s) return null; + var f = fieldMatchScore(fullNorm(a), token, wwRe); + if (!t && !g && !s && !f) return null; var score = Math.max( t ? (t.contiguous ? SCORE_CONTIGUOUS : 0) + SCORE_TITLE + t.score : -Infinity, g ? (g.contiguous ? SCORE_CONTIGUOUS : 0) + SCORE_GROUP + g.score : -Infinity, - s ? (s.contiguous ? SCORE_CONTIGUOUS : 0) + s.score : -Infinity + s ? (s.contiguous ? SCORE_CONTIGUOUS : 0) + s.score : -Infinity, + f ? (f.contiguous ? SCORE_CONTIGUOUS : 0) + f.score : -Infinity ); return { score: score, title: t ? t.ranges : null, group: g ? g.ranges : null, source: s ? s.ranges : null }; } @@ -189,11 +196,9 @@ function mergeRanges(ranges) { return out; } -// Combine the per-field match scores into one comparable value, or null when no field matched. -// Ranking tiers, strongest first: -// tier (contiguous/perfect vs fuzzy) > field (title > group > source) > start/gaps. -// The additive weights keep every contiguous match above every fuzzy one regardless of field. -function scoreFields(t, g, s) { +// Combine per-field scores into one value, or null when nothing matched. +// Ranking: contiguous > fuzzy, then title > group > source/full alias, then start/gaps. +function scoreFields(t, g, s, f) { var best = null; function consider(m, weight) { if (!m) return; @@ -203,6 +208,7 @@ function scoreFields(t, g, s) { consider(t, SCORE_TITLE); consider(g, SCORE_GROUP); consider(s, 0); + consider(f, 0); return best; } @@ -216,6 +222,7 @@ function scoreFields(t, g, s) { // - tokens: every whitespace-separated word must match SOME field, but different words may match // different fields. This is what lets "speed acceleration inner" find "Inner wall" whose path is // "Process : Speed : Acceleration" (title + source breadcrumb together). +// full_label is searchable too but never highlighted, since it is not rendered. // A phrase match always outranks a distributed token match. function searchActions(actions, query) { var q = (query || "").trim(); @@ -239,7 +246,8 @@ function searchActions(actions, query) { var t = fieldMatchScore(titleNorm(a), searchNeedle, wwRe); var g = fieldMatchScore(groupNorm(a), searchNeedle, wwRe); var s = fieldMatchScore(sourceNorm(a), searchNeedle, wwRe); - var phrase = scoreFields(t, g, s); + var f = fieldMatchScore(fullNorm(a), searchNeedle, wwRe); + var phrase = scoreFields(t, g, s, f); var score, ranges; if (phrase !== null) { score = phrase + SCORE_PHRASE; @@ -312,7 +320,7 @@ function completionFor(query, list) { var top = (list || []).slice(0, 10); for (var i = 0; i < top.length; i++) { var a = top[i]; - var fields = [a.title, a.group, a.source]; + var fields = [a.title, a.group, a.source, a.full_label]; for (var f = 0; f < fields.length; f++) { var words = completionWords(fields[f]); for (var w = 0; w < words.length; w++) { diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index ea9517cfa6..33d7d0e17f 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -117,6 +117,18 @@ const negativePool = [ assert.equal(ctx.searchActions(negativePool, "ornt").length, 1, "a low-score fuzzy match is not mistaken for no match"); +// A setting whose displayed title is the page row label keeps the descriptive ConfigOptionDef name as +// a search-only alias, so the old wording still finds it without being shown. +const aliasPool = [ + { id: "rev", title: "Reverse on even", full_label: "Overhang reversal", source: "Process : Quality : Overhangs", group: "", input: "" } +]; +assert.deepEqual(ctx.searchActions(aliasPool, "overhang reversal").map(function (a) { return a.id; }), ["rev"], + "the descriptive full_label is searchable even though the title shows the row label"); +assert.equal(ctx.matchIndex.rev.title, null, + "an alias-only match does not highlight the displayed title"); +assert.deepEqual(ctx.searchActions(aliasPool, "reversal").map(function (a) { return a.id; }), ["rev"], + "a token that exists only in the full_label still matches"); + // Multi-token cross-field search: each whitespace-separated word must match SOME searchable field, // but different words may match different fields. "inner" is the title while "speed" and // "acceleration" live in the source breadcrumb, so the query as a whole is never contiguous in one diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index 1687e28258..880c8e1fba 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -561,10 +561,24 @@ void ActionRegistry::materialize_setting_actions() std::unordered_set<std::string> seen; for (const Search::Option& opt : options) { + // The row's live state drives both the hidden filter and the title (labels can change at + // runtime, e.g. brim_width -> "Brim ear radius"). Hidden rows are skipped, not marked seen. + Tab* tab = wxGetApp().get_tab(opt.type); + Tab::SettingRowState row; + if (tab) + row = tab->setting_row_state(opt.opt_key()); + if (!row.visible) + continue; + const std::string id = SettingAction::id_for(opt.opt_key(), opt.type); seen.insert(id); - const std::wstring label_w = opt.label_local.empty() ? opt.label : opt.label_local; + // The page draws Line::label; the descriptive ConfigOptionDef name stays a search-only alias + // ("overhang reversal" still finds "Reverse on even"). + const std::string search_label = boost::nowide::narrow(opt.label_local.empty() ? opt.label : opt.label_local); + std::string title = into_u8(Search::resolve_setting_title(from_u8(opt.display_label), row.label, row.multi)); + if (title.empty()) + title = search_label; // Eyebrow/source = the full settings path "Process : Quality : Layers" (localized). The JS // renders group || source and searches source + " " + group, so putting the whole path in @@ -575,22 +589,22 @@ void ActionRegistry::materialize_setting_actions() if (!opt.group_local.empty()) path += L" : " + opt.group_local; - // title = the option leaf name (last label segment); group stays empty so the source path - // (above) is the single display/search breadcrumb rather than being duplicated. - auto action = std::make_unique<SettingAction>(opt.opt_key(), opt.type, boost::nowide::narrow(label_w), std::string(), - opt.category, boost::nowide::narrow(path), opt.mode); + // title = the label the settings row draws; group stays empty so the source path (above) is + // the single display/search breadcrumb rather than being duplicated. + auto action = std::make_unique<SettingAction>(opt.opt_key(), opt.type, title, std::string(), opt.category, + boost::nowide::narrow(path), opt.mode); + if (title != search_label) + action->full_label = search_label; // Tile pictogram = the icon of the setting's own group header (e.g. Advanced -> param_advanced), // the one shown next to it in the page. Fall back to the page/category icon for groups // without one. Keys are the English titles the GUI registers. action->icon = opt.group_icon; - if (action->icon.empty() && !opt.category.empty()) { - if (Tab* tab = wxGetApp().get_tab(opt.type); tab) { - const auto& icons = tab->get_category_icon_map(); - auto it = icons.find(wxString(opt.category)); - if (it != icons.end()) - action->icon = it->second; - } + if (action->icon.empty() && !opt.category.empty() && tab) { + const auto& icons = tab->get_category_icon_map(); + auto it = icons.find(wxString(opt.category)); + if (it != icons.end()) + action->icon = it->second; } // Footer description + wiki affordance; only settings whose row declared a wiki path have one. @@ -745,6 +759,7 @@ nlohmann::json ActionRegistry::snapshot() auto action_to_json = [](const AppAction* a) { return nlohmann::json({{"id", a->id()}, {"title", a->title()}, + {"full_label", a->full_label}, {"source", a->source_name()}, {"group", a->group}, {"kind", a->kind == AppActionKind::Plugin ? "plugin" : "command"}, diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index 045de70915..b192a8ccb2 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -85,6 +85,9 @@ struct AppAction ConfigOptionMode required_mode = comSimple; // Description shown in the Speed Dial's footer strip (SettingActions: the localized tooltip). std::string tooltip; + // Search-only alias when the title differs from the descriptive ConfigOptionDef name (e.g. title + // "Reverse on even", full_label "Overhang reversal"). Empty when the two agree. + std::string full_label; // Full wiki URL, when the action has one (SettingActions whose row declared a label_path). std::string help_url; diff --git a/src/slic3r/GUI/OptionsGroup.cpp b/src/slic3r/GUI/OptionsGroup.cpp index d4f3f1d62f..84e6fc43c3 100644 --- a/src/slic3r/GUI/OptionsGroup.cpp +++ b/src/slic3r/GUI/OptionsGroup.cpp @@ -1,6 +1,7 @@ #include "OptionsGroup.hpp" #include "ConfigExceptions.hpp" #include "Plater.hpp" +#include "SettingsIndex.hpp" #include "GUI_App.hpp" #include "MainFrame.hpp" #include "OG_CustomCtrl.hpp" @@ -244,11 +245,24 @@ void OptionsGroup::append_line(const Line& line) { m_lines.emplace_back(line); - // Record each option's wiki path (Line::label_path) so the Speed Dial can offer an "open wiki" - // affordance for it. Settings tabs only; the searcher already exists by the time tabs are built. - if (m_use_custom_ctrl && !line.label_path.empty()) - for (const auto& opt : line.get_options()) - wxGetApp().sidebar().settings_index().set_path(opt.opt_id, static_cast<Preset::Type>(config_type()), line.label_path); + // Feed the searcher the row's wiki path (Line::label_path, for the Speed Dial's "open wiki" + // affordance) and the label the row actually draws, so a setting action is named like the page. + if (m_use_custom_ctrl) { + Search::SettingsIndex& index = wxGetApp().sidebar().settings_index(); + const Preset::Type type = static_cast<Preset::Type>(config_type()); + const bool multi = line.get_options().size() > 1; + for (const auto& opt : line.get_options()) { + if (!line.label_path.empty()) + index.set_path(opt.opt_id, type, line.label_path); + // Mirror the sub-label OG_CustomCtrl draws for a multi-option row, so the palette + // names each field like the page does. + const std::string& leaf_src = opt.opt.label; + const wxString leaf = (leaf_src == L_CONTEXT("Top", "Layers") || leaf_src == L_CONTEXT("Bottom", "Layers")) ? + _L_CONTEXT(leaf_src, "Layers") : + _(leaf_src); + index.set_line_label(opt.opt_id, type, Search::compose_display_label(line.label, leaf, multi)); + } + } if (line.full_width && (line.widget != nullptr || !line.get_extra_widgets().empty())) return; diff --git a/src/slic3r/GUI/SettingsIndex.cpp b/src/slic3r/GUI/SettingsIndex.cpp index 6b0a01893d..994ef496d6 100644 --- a/src/slic3r/GUI/SettingsIndex.cpp +++ b/src/slic3r/GUI/SettingsIndex.cpp @@ -55,9 +55,13 @@ static Option make_option(const std::string &key, Preset::Type type, const wxStr category = wxString::Format("%s %d", "Extruder", atoi(opt_idx.c_str()) + 1); } - return Option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(), + Option option{boost::nowide::widen(key), type, (label + suffix).ToStdWstring(), (_(label) + suffix_local).ToStdWstring(), gc.group.ToStdWstring(), _(gc.group).ToStdWstring(), into_u8(gc.icon), gc.category.ToStdWstring(), - GUI::Tab::translate_category(category, type).ToStdWstring(), false, mode, tooltip, gc.path}; + GUI::Tab::translate_category(category, type).ToStdWstring(), false, mode, tooltip, gc.path, + // The settings page draws Line::label; carrying it lets the Speed Dial name a setting + // the way the page does. `label`/`label_local` stay the search-oriented name. + into_u8(gc.line_label)}; + return option; } void SettingsIndex::append_options(DynamicPrintConfig *config, Preset::Type type, ConfigOptionMode mode) @@ -225,5 +229,12 @@ void SettingsIndex::set_path(const std::string &opt_key, Preset::Type type, cons m_groups_and_categories[get_key(opt_key, type)].path = path; } +void SettingsIndex::set_line_label(const std::string &opt_key, Preset::Type type, const wxString &label) +{ + if (label.IsEmpty()) + return; + m_groups_and_categories[get_key(opt_key, type)].line_label = label; +} + } // namespace Search } // namespace Slic3r diff --git a/src/slic3r/GUI/SettingsIndex.hpp b/src/slic3r/GUI/SettingsIndex.hpp index 5a2f91fa51..a31d2109e0 100644 --- a/src/slic3r/GUI/SettingsIndex.hpp +++ b/src/slic3r/GUI/SettingsIndex.hpp @@ -26,10 +26,31 @@ struct GroupAndCategory { wxString group; wxString category; - wxString icon; // icon of the group's own header, or empty - std::string path; // wiki path (Line::label_path) of the option's line, or empty + wxString icon; // icon of the group's own header, or empty + wxString line_label; // label the settings row actually draws (Line::label), or empty + std::string path; // wiki path (Line::label_path) of the option's line, or empty }; +// Title for a setting: the row label, qualified with the field leaf when the row packs several +// options (e.g. "Cool Plate \u2013 First layer"). Pure; inputs are already localized. +inline wxString compose_display_label(const wxString& line_label, const wxString& leaf_label, bool multi) +{ + if (line_label.empty()) + return leaf_label; + if (!multi || leaf_label.empty() || leaf_label == line_label) + return line_label; + return line_label + L" \u2013 " + leaf_label; // en dash separator +} + +// Title to show. A single-option row uses its live label, which can be renamed at runtime +// (brim_width -> "Brim ear radius"); otherwise fall back to the precomposed label. +inline wxString resolve_setting_title(const wxString& precomposed, const wxString& live_label, bool live_multi) +{ + if (!live_multi && !live_label.empty()) + return live_label; + return precomposed; +} + struct Option { // bool operator<(const Option& other) const { return other.label > this->label; } @@ -50,6 +71,7 @@ struct Option ConfigOptionMode mode{comSimple}; // option's visibility threshold; drives the Speed Dial's mode prompt std::string tooltip; // localized ConfigOptionDef::tooltip, or empty std::string wiki_path; // Line::label_path for the option's row, or empty + std::string display_label; // label the settings row draws (localized); empty falls back to label std::string opt_key() const; }; @@ -75,6 +97,9 @@ public: void add_key(const std::string &opt_key, Preset::Type type, const wxString &group, const wxString &category, const wxString &icon = wxEmptyString); void set_path(const std::string &opt_key, Preset::Type type, const std::string &path); + // Record the label the option's row draws, so the Speed Dial names a setting like the page + // (ConfigOptionDef::label/full_label is a search name, not the row text). + void set_line_label(const std::string &opt_key, Preset::Type type, const wxString &label); const std::vector<Option> &options() const { return m_options; } const std::vector<Option> &all_options() const { return m_all_modes; } diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index a3afa75b50..6f958266cc 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -1736,16 +1736,46 @@ void Tab::toggle_option(const std::string& opt_key, bool toggle, int opt_index/* void Tab::toggle_line(const std::string &opt_key, bool toggle, int opt_index) { - if (!m_active_page) return; - Line *line = m_active_page->get_line(opt_key, opt_index); - if (line) line->toggle_visible = toggle; + // Apply to every page that owns the option, not just m_active_page. ConfigManipulation runs while + // each tab updates at preset load, so the Speed Dial sees the same visibility regardless of page. + for (const PageShp& page : m_pages) { + if (!page) continue; + if (Line *line = page->get_line(opt_key, opt_index)) + line->toggle_visible = toggle; + } }; void Tab::set_option_label(const std::string &opt_key, const wxString &label, int opt_index) { - if (!m_active_page) return; - Line *line = m_active_page->get_line(opt_key, opt_index); - if (line) line->set_label(label); + // Same as toggle_line: a runtime rename (brim_width -> "Brim ear radius") must reach every page + // so the Speed Dial titles the setting before the page has been shown. + for (const PageShp& page : m_pages) { + if (!page) continue; + if (Line *line = page->get_line(opt_key, opt_index)) + line->set_label(label); + } +} + +Tab::SettingRowState Tab::setting_row_state(const std::string &opt_id) const +{ + bool found = false; + for (const PageShp& page : m_pages) { + if (!page) continue; + for (const ConfigOptionsGroupShp& group : page->m_optgroups) { + if (!group) continue; + for (const Line& line : group->get_lines()) { + for (const Option& opt : line.get_options()) { + if (opt.opt_id != opt_id) + continue; + if (line.toggle_visible) // shown on any owning page is enough + return {true, line.label, line.get_options().size() > 1}; + found = true; + } + } + } + } + // Never registered on a page -> visible, but with no row label to contribute. + return {!found, wxString(), false}; } // To be called by custom widgets, load a value into a config, diff --git a/src/slic3r/GUI/Tab.hpp b/src/slic3r/GUI/Tab.hpp index 30a06b4eb5..b2f450f9c3 100644 --- a/src/slic3r/GUI/Tab.hpp +++ b/src/slic3r/GUI/Tab.hpp @@ -401,6 +401,16 @@ public: void toggle_option(const std::string &opt_key, bool toggle, int opt_index = -1); void toggle_line(const std::string &opt_key, bool toggle, int opt_index = -1); // BBS: hide some line void set_option_label(const std::string &opt_key, const wxString &label, int opt_index = -1); + + // Live state of the settings row that owns an option, read from the built pages. + struct SettingRowState + { + bool visible{true}; // false when ConfigManipulation hides the row + wxString label; // Line::label the row draws (may change at runtime) + bool multi{false}; // row packs several options, so label is precomposed + }; + SettingRowState setting_row_state(const std::string &opt_id) const; + wxSizer* description_line_widget(wxWindow* parent, ogStaticText** StaticText, wxString text = wxEmptyString); bool current_preset_is_dirty() const; bool saved_preset_is_dirty() const; diff --git a/tests/slic3rutils/test_action_source.cpp b/tests/slic3rutils/test_action_source.cpp index 0eb5edde41..eec38d7291 100644 --- a/tests/slic3rutils/test_action_source.cpp +++ b/tests/slic3rutils/test_action_source.cpp @@ -2,6 +2,7 @@ #include "slic3r/GUI/ActionRegistry.hpp" #include "slic3r/GUI/NativeCommands.hpp" +#include "slic3r/GUI/SettingsIndex.hpp" #include <boost/filesystem.hpp> @@ -284,6 +285,35 @@ TEST_CASE("Native command catalog covers the Add menus", "[ActionSource][SpeedDi } } +// A setting action is named like its settings row, not the ConfigOptionDef label: the row's +// Line::label, plus the field leaf when the row packs several options. +TEST_CASE("Setting display labels mirror the settings row", "[ActionSource][SpeedDial]") +{ + using Slic3r::Search::compose_display_label; + + // Single-option row: the row label is the whole title. + CHECK(compose_display_label(L"Reverse on even", L"Reverse on even", false) == L"Reverse on even"); + // No recorded row label falls back to the field leaf. + CHECK(compose_display_label(L"", L"Outer wall", false) == L"Outer wall"); + // Multi-option row: qualify with the leaf so the plate-temperature fields are distinct. + CHECK(compose_display_label(L"Cool Plate", L"First layer", true) == wxString(L"Cool Plate \u2013 First layer")); + CHECK(compose_display_label(L"Cool Plate", L"Other layers", true) == wxString(L"Cool Plate \u2013 Other layers")); + // A leaf equal to the row label is not repeated. + CHECK(compose_display_label(L"Skirt loops", L"Skirt loops", true) == L"Skirt loops"); + + using Slic3r::Search::resolve_setting_title; + + // A single-option row's live label wins, so a runtime rename is reflected. + CHECK(resolve_setting_title(L"Brim width", L"Brim ear radius", false) == L"Brim ear radius"); + // Multi-option rows keep their precomposed "row – field" label (the leaf disambiguates them). + CHECK(resolve_setting_title(L"Cool Plate \u2013 First layer", L"Cool Plate", true) == + wxString(L"Cool Plate \u2013 First layer")); + // No live row label (option not on a built page) keeps the precomposed label. + CHECK(resolve_setting_title(L"Reverse on even", L"", false) == L"Reverse on even"); + // Neither present: empty, so the caller falls back to the descriptive label. + CHECK(resolve_setting_title(L"", L"", false).IsEmpty()); +} + // A setting whose mode is above the user's current mode must be prompted before it can be edited. // Developer settings (comDevelop) are above every non-developer mode, so they always prompt then. TEST_CASE("Settings above the current mode require a switch", "[ActionSource][SpeedDial]") From 988108c8ef238fc025b4e29b09a68743105ecfe0 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Wed, 16 Sep 2026 18:31:39 +0800 Subject: [PATCH 28/76] Fix flatpak test --- .github/workflows/build_all.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index f8d6bb8235..481c49d0a7 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -449,10 +449,13 @@ jobs: # the bounds checks are compiled in, so a stripped exe still catches them. find "$d/build_flatpak/tests" -type f -perm -u+x -exec strip --strip-unneeded {} + 2>/dev/null || true # At runtime the tests read tests/ (TEST_DATA_DIR), scripts/, and under - # resources/ the shipped profiles (PROFILES_DIR) and the printers/ maps. + # resources/ the shipped profiles (PROFILES_DIR), the printers/ maps, and + # the icon SVGs (NativeCommands icon names are checked against them). find "$d" -mindepth 1 -maxdepth 1 -type d \ ! -name tests ! -name build_flatpak ! -name scripts ! -name resources -exec rm -rf {} + - find "$d/resources" -mindepth 1 -maxdepth 1 ! -name profiles ! -name printers -exec rm -rf {} + + find "$d/resources" -mindepth 1 -maxdepth 1 ! -name profiles ! -name printers ! -name images -exec rm -rf {} + + # Only the SVGs are read; the png/ico/icns/gif assets are ~35MB of dead weight. + find "$d/resources/images" -mindepth 1 -maxdepth 1 ! -name '*.svg' -exec rm -rf {} + 2>/dev/null || true tar -cf flatpak-test-asset.tar flatpak_app "$d" - name: Upload flatpak test asset uses: actions/upload-artifact@v7 From 2bfab589eea25b6bcc187e95d6416f43c79dbea0 Mon Sep 17 00:00:00 2001 From: peachismomo <iancrb00@gmail.com> Date: Fri, 18 Sep 2026 16:07:25 +0800 Subject: [PATCH 29/76] fix: windows unsubsribe loaded plugin not allowed --- src/slic3r/plugin/PluginManager.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/slic3r/plugin/PluginManager.cpp b/src/slic3r/plugin/PluginManager.cpp index f9a6dc60ac..57bce7d2f2 100644 --- a/src/slic3r/plugin/PluginManager.cpp +++ b/src/slic3r/plugin/PluginManager.cpp @@ -2042,6 +2042,8 @@ bool PluginManager::delete_and_unsubscribe_cloud_plugin(const std::string& plugi return false; } + unload_plugin(plugin_key); + if (!m_cloud_service.request_cloud_unsubscribe(descriptor, error)) { set_plugin_error(plugin_key, error); return false; From 4ea50a33e42811bb704653e3f87fee7e9371b4ad Mon Sep 17 00:00:00 2001 From: Lam Wei Lun <weilun.lam@gmail.com> Date: Fri, 18 Sep 2026 19:07:03 +0800 Subject: [PATCH 30/76] Testing macOS fixes --- resources/web/dialog/SpeedDial/speeddial.js | 69 +++++++++++++++---- .../web/dialog/SpeedDial/speeddial.test.js | 14 ++++ resources/web/dialog/SpeedDial/style.css | 33 ++++++++- src/slic3r/GUI/ActionRegistry.cpp | 16 ++++- src/slic3r/GUI/ActionRegistry.hpp | 5 ++ src/slic3r/GUI/GUI_Utils.hpp | 2 + src/slic3r/GUI/GUI_UtilsMac.mm | 17 +++++ src/slic3r/GUI/SpeedDialDialog.cpp | 67 +++++++++++++----- src/slic3r/GUI/SpeedDialDialog.hpp | 4 +- 9 files changed, 191 insertions(+), 36 deletions(-) diff --git a/resources/web/dialog/SpeedDial/speeddial.js b/resources/web/dialog/SpeedDial/speeddial.js index f63e831a9e..c5caf0d423 100644 --- a/resources/web/dialog/SpeedDial/speeddial.js +++ b/resources/web/dialog/SpeedDial/speeddial.js @@ -9,6 +9,7 @@ // - action.input "percent"/"tab" -> NativeCommands catalog (phases handled in activateEntry) // - action.icon SVG base name -> AppAction::icon / resources/images/<name>.svg // - action.desc/wiki -> AppAction::tooltip / help_url (footer detail strip) +// - payload.tooltip_expanded -> ActionRegistry::tooltip_expanded (persisted footer state) // - action list is frecency-sorted -> ActionRegistry::snapshot() // ---- state (populated by the C++ bridge via window.HandleStudio) ---- @@ -17,9 +18,12 @@ var FAVS = []; // [id...] var RECENTS = []; // [{id,title,source,group,kind,input,icon,mode}] - last-N launched var query = ""; var sel = { zone: "list", i: 0 }; // zone: 'list' | 'fav' -var lastResizeHeight = 0; var matchIndex = {}; +// Global tooltip expansion, seeded from C++ (persisted in the speed_dial config section). Collapsing +// hides the footer description + wiki link for every action; the arrow remains to expand again. +var TOOLTIP_EXPANDED = true; + // The user's current settings mode (from the C++ payload) plus the rank order of the modes. Each // action carries the mode it requires, so "would this need a switch?" is a rank comparison. var USER_MODE = "simple"; @@ -548,6 +552,10 @@ function actionHasWiki(a) { return !!(a && a.wiki); } // Whether the action has anything for the footer strip to show (a description or a wiki link). function actionHasDetail(a) { return !!(a && ((a.desc && a.desc.length) || a.wiki)); } +// The expand/collapse arrow is offered for actions that carry a description. Collapsing is a global +// (persisted) preference, so even a short tooltip gets the control. +function detailToggleVisible(a) { return !!(a && a.desc && a.desc.length); } + function foldLabel(s) { return String(s || "").toLowerCase().replace(/[^a-z0-9]+/g, ""); } // Title-case a source for display: "GCODE OPTIMIZER"/"iRoNiNg pRo" -> "Gcode Optimizer"/"Ironing Pro". @@ -634,7 +642,8 @@ function stateFromPayload(payload) { actions: payload.actions || [], favourites: payload.favourites || [], recent: payload.recent || [], - userMode: payload.user_mode || "simple" + userMode: payload.user_mode || "simple", + tooltipExpanded: payload.tooltip_expanded !== false }; } @@ -690,12 +699,12 @@ window.HandleStudio = function (payload) { FAVS = next.favourites; RECENTS = next.recent; USER_MODE = next.userMode; + TOOLTIP_EXPANDED = next.tooltipExpanded; // A fresh payload re-opens the main phase; C++ never rehydrates the transient phase/query state. phase = "commands"; tabOptions = []; query = ""; sel = { zone: "list", i: 0 }; - lastResizeHeight = 0; // why: builtKey caches phase|query so renderCommandsList can skip a rebuild on arrow-nav. // It survives a re-open (which never goes through exitPhase), so without a reset the cached // empty-query key would skip the rebuild and leave stale list content. @@ -1153,23 +1162,26 @@ function currentDetailAction() { return id ? byId(id) : null; } -// Footer detail strip: the selected action's description plus, when it has a wiki page, a link that -// opens it (same path as F1). Shown only when the highlighted action has something to say, so -// selecting a command with no description hides the strip. +// Footer detail strip: the selected action's description, its wiki link and the expand/collapse +// arrow. Shown whenever the highlighted action has a description or a wiki page; expanding is a +// persisted global preference, so the arrow stays available to collapse/expand every tooltip. function renderDetail() { if (!detailEl) return; var a = currentDetailAction(); + var hasDesc = detailToggleVisible(a); var show = phase === "commands" && actionHasDetail(a); detailEl.hidden = !show; detailEl.innerHTML = ""; if (!show) return; - if (a && a.desc) { + if (hasDesc && TOOLTIP_EXPANDED) { var desc = document.createElement("div"); desc.className = "detail-desc"; desc.textContent = a.desc; detailEl.appendChild(desc); } - if (a && a.wiki) { + // The wiki link is part of the expanded detail, so collapsing hides it too. An action with only a + // wiki (no description) has nothing to collapse, so its link always shows. + if (a.wiki && (!hasDesc || TOOLTIP_EXPANDED)) { var link = document.createElement("button"); link.type = "button"; link.className = "detail-wiki"; @@ -1177,6 +1189,25 @@ function renderDetail() { link.onclick = function (ev) { ev.stopPropagation(); SendMessage({ command: "open_wiki", id: a.id }); }; detailEl.appendChild(link); } + if (hasDesc) { + var toggle = document.createElement("button"); + toggle.type = "button"; + toggle.className = "detail-toggle"; + toggle.setAttribute("aria-expanded", TOOLTIP_EXPANDED ? "true" : "false"); + var label = TOOLTIP_EXPANDED ? T("sd_hide_details", "Hide details") : T("sd_show_details", "Show details"); + toggle.title = label; + toggle.setAttribute("aria-label", label); + toggle.innerHTML = '<svg viewBox="0 0 16 16" width="12" height="12" fill="none" stroke="currentColor" ' + + 'stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">' + + '<polyline points="4,6 8,10 12,6"/></svg>'; + toggle.onclick = function (ev) { + ev.stopPropagation(); + TOOLTIP_EXPANDED = !TOOLTIP_EXPANDED; + SendMessage({ command: "set_tooltip_expanded", expanded: TOOLTIP_EXPANDED }); + render({ resize: true }); + }; + detailEl.appendChild(toggle); + } } // Refresh the muted inline completion shown at the end of the search field. Only offered in the @@ -1230,10 +1261,14 @@ function requestResize() { var launcher = document.querySelector(".launcher"); if (!launcher) return; - var height = Math.ceil(launcher.getBoundingClientRect().height); - if (!height || height === lastResizeHeight) + // Include any overflow (WebKit can report a -webkit-box border box a fraction short of its + // content), so the window never clips the footer's last line. + var height = Math.ceil(Math.max(launcher.getBoundingClientRect().height, launcher.scrollHeight)); + if (!height) return; - lastResizeHeight = height; + // Always (re)send rather than caching: a resize can be measured but dropped (e.g. while the + // window is being shown) and an unchanged-size cache would then suppress every retry. C++ + // SetClientSize is a no-op on an unchanged size, so this is cheap. SendMessage({ command: "resize", height: height }); }, 0); } @@ -1448,7 +1483,7 @@ function OnInit() { e.preventDefault(); sel = nextSel(sel, e.key, list.length, favs.length); // why: entering/leaving the fav zone toggles the eyebrow line, changing launcher height; - // resize so the popup grows/shrinks instead of clipping. requestResize no-ops when unchanged. + // resize so the popup grows/shrinks instead of clipping. render({ resize: true }); } else if (e.key === "Enter") { e.preventDefault(); @@ -1462,5 +1497,15 @@ function OnInit() { } }); + // Keep the dialog sized to the content: any reflow that lands after a render (tooltip + // expand/collapse or clamped-box settling, font metrics, list reveal) re-measures. Without this + // a later reflow left the window a few pixels short and clipped the footer's last line. + if (typeof ResizeObserver !== "undefined") { + new ResizeObserver(function () { requestResize(); }).observe(document.querySelector(".launcher")); + } + // Font metrics can swap after first layout; re-measure once they settle. + if (document.fonts && document.fonts.ready && document.fonts.ready.then) + document.fonts.ready.then(function () { requestResize(); }); + SendMessage({ command: "request_actions" }); } diff --git a/resources/web/dialog/SpeedDial/speeddial.test.js b/resources/web/dialog/SpeedDial/speeddial.test.js index 33d7d0e17f..03099df91b 100644 --- a/resources/web/dialog/SpeedDial/speeddial.test.js +++ b/resources/web/dialog/SpeedDial/speeddial.test.js @@ -422,4 +422,18 @@ assert.equal(ctx.actionHasDetail({ id: "a", desc: "", wiki: false }), false, "em assert.equal(ctx.actionHasDetail({ id: "a" }), false, "an action with neither hides the footer"); assert.equal(ctx.actionHasDetail(null), false, "no selected action hides the footer"); +// detailToggleVisible: the expand/collapse arrow is offered only when there is a description to +// toggle. Collapse is a global preference, so the control stays for short tooltips too. +assert.equal(ctx.detailToggleVisible({ id: "a", desc: "Layer height" }), true, "a description offers the toggle"); +assert.equal(ctx.detailToggleVisible({ id: "a", desc: "" }), false, "an empty description offers no toggle"); +assert.equal(ctx.detailToggleVisible({ id: "a", wiki: true }), false, "a wiki-only action has nothing to collapse"); +assert.equal(ctx.detailToggleVisible({ id: "a" }), false, "an action with no description offers no toggle"); +assert.equal(ctx.detailToggleVisible(null), false, "no selected action offers no toggle"); + +// stateFromPayload: the footer expansion is a persisted global and defaults to expanded when the +// C++ payload omits it (first run / older config). +assert.equal(ctx.stateFromPayload({}).tooltipExpanded, true, "expansion defaults to true when absent"); +assert.equal(ctx.stateFromPayload({ tooltip_expanded: false }).tooltipExpanded, false, "a collapsed payload is honored"); +assert.equal(ctx.stateFromPayload({ tooltip_expanded: true }).tooltipExpanded, true, "an expanded payload is honored"); + console.log("ok"); diff --git a/resources/web/dialog/SpeedDial/style.css b/resources/web/dialog/SpeedDial/style.css index 0beae39931..3aaeddb460 100644 --- a/resources/web/dialog/SpeedDial/style.css +++ b/resources/web/dialog/SpeedDial/style.css @@ -476,8 +476,8 @@ body { text-align: center; } -/* Footer detail strip: the selected action's description plus its wiki link. Auto-sizes to the - content; the description is clamped below. */ +/* Footer detail strip: the selected action's description, its wiki link and the expand/collapse + arrow. Auto-sizes to the content; the description is clamped to 6 lines. */ .dial-detail { flex: 0 0 auto; display: flex; @@ -500,7 +500,7 @@ body { color: var(--muted, var(--orca-muted, #6b7280)); display: -webkit-box; -webkit-box-orient: vertical; - -webkit-line-clamp: 3; + -webkit-line-clamp: 6; overflow: hidden; overflow-wrap: anywhere; } @@ -520,3 +520,30 @@ body { .detail-wiki:hover { text-decoration: underline; } + +/* Expand/collapse arrow for the tooltip. Pinned right so it stays put whether or not the + description/wiki are visible; the chevron points up (collapse) when expanded. */ +.detail-toggle { + flex: 0 0 auto; + margin-left: auto; + display: inline-flex; + align-items: center; + justify-content: center; + border: 0; + padding: 2px; + background: transparent; + color: var(--muted, var(--orca-muted, #6b7280)); + cursor: pointer; +} + +.detail-toggle:hover { + color: var(--text, var(--orca-fg, #1b1c1e)); +} + +.detail-toggle svg { + transition: transform .12s ease; +} + +.detail-toggle[aria-expanded="true"] svg { + transform: rotate(180deg); +} diff --git a/src/slic3r/GUI/ActionRegistry.cpp b/src/slic3r/GUI/ActionRegistry.cpp index 880c8e1fba..6dd9b0b542 100644 --- a/src/slic3r/GUI/ActionRegistry.cpp +++ b/src/slic3r/GUI/ActionRegistry.cpp @@ -726,6 +726,19 @@ void ActionRegistry::suppress_ask(const std::string& id) write_section("ask_suppressed", nlohmann::json(arr)); } +bool ActionRegistry::tooltip_expanded() const +{ + assert(wxThread::IsMain()); + const nlohmann::json j = read_section("tooltip_expanded", nlohmann::json(true)); + return j.is_boolean() ? j.get<bool>() : true; +} + +void ActionRegistry::set_tooltip_expanded(bool expanded) +{ + assert(wxThread::IsMain()); + write_section("tooltip_expanded", nlohmann::json(expanded)); +} + // ---- snapshot --------------------------------------------------------------- nlohmann::json ActionRegistry::snapshot() @@ -810,7 +823,8 @@ nlohmann::json ActionRegistry::snapshot() return {{"actions", std::move(actions)}, {"favourites", std::move(favourites)}, {"recent", std::move(recent_json)}, - {"user_mode", mode_key(wxGetApp().get_mode())}}; + {"user_mode", mode_key(wxGetApp().get_mode())}, + {"tooltip_expanded", tooltip_expanded()}}; } // ---- tab options (enumerate the MainFrame notebook's current pages) ---------- diff --git a/src/slic3r/GUI/ActionRegistry.hpp b/src/slic3r/GUI/ActionRegistry.hpp index b192a8ccb2..61cdbffd25 100644 --- a/src/slic3r/GUI/ActionRegistry.hpp +++ b/src/slic3r/GUI/ActionRegistry.hpp @@ -196,6 +196,11 @@ public: bool should_ask(const std::string& id) const; void suppress_ask(const std::string& id); + // Footer expand/collapse preference. Global (applies to every action) and persisted; absent + // means expanded, so a fresh config picks the richer default with no migration. + bool tooltip_expanded() const; + void set_tooltip_expanded(bool expanded); + // Flat, frecency-sorted snapshot for the webview: // {actions:[...], favourites:[...], recent:[...]} (recent = last-N launched by recency). nlohmann::json snapshot(); diff --git a/src/slic3r/GUI/GUI_Utils.hpp b/src/slic3r/GUI/GUI_Utils.hpp index 85790516ee..dae0305f1d 100644 --- a/src/slic3r/GUI/GUI_Utils.hpp +++ b/src/slic3r/GUI/GUI_Utils.hpp @@ -478,6 +478,8 @@ int get_dpi_for_window(const wxWindow *window); #ifdef __WXOSX__ void dataview_remove_insets(wxDataViewCtrl* dv); void staticbox_remove_margin(wxStaticBox* sb); +// Clip a top-level window (and its webview) to a rounded rect with a native layer. +void set_window_corner_radius(wxWindow* win, int radius); #endif #ifdef __WXGTK__ diff --git a/src/slic3r/GUI/GUI_UtilsMac.mm b/src/slic3r/GUI/GUI_UtilsMac.mm index 01501f6265..453229e429 100644 --- a/src/slic3r/GUI/GUI_UtilsMac.mm +++ b/src/slic3r/GUI/GUI_UtilsMac.mm @@ -1,5 +1,6 @@ #include <unistd.h> #include <sys/sysctl.h> +#import <Cocoa/Cocoa.h> #import <wx/osx/cocoa/dataview.h> #import "GUI_Utils.hpp" @@ -21,6 +22,22 @@ void staticbox_remove_margin(wxStaticBox* sb) { [nativeBox setBorderWidth:0]; } +// wxOSX SetShape only clears the window background; it cannot clip to a region. Clipping the +// window's view layer to a rounded rect is what actually rounds the opaque webview inside. +void set_window_corner_radius(wxWindow* win, int radius) { + if (!win) + return; + NSView* view = (NSView*)win->GetHandle(); + if (!view) + return; + NSWindow* window = [view window]; + [window setOpaque:NO]; + [window setBackgroundColor:[NSColor clearColor]]; + [view setWantsLayer:YES]; + [[view layer] setCornerRadius:radius]; + [[view layer] setMasksToBounds:YES]; +} + bool is_debugger_present() // Returns true if the current process is being debugged (either // running under the debugger or has a debugger attached post facto). diff --git a/src/slic3r/GUI/SpeedDialDialog.cpp b/src/slic3r/GUI/SpeedDialDialog.cpp index 3de0c137bb..7be8bee123 100644 --- a/src/slic3r/GUI/SpeedDialDialog.cpp +++ b/src/slic3r/GUI/SpeedDialDialog.cpp @@ -113,6 +113,8 @@ nlohmann::json speed_dial_ui_strings() {"sd_mode_develop", _u8L("Developer")}, {"sd_wiki_f1", _u8L("Wiki (F1)")}, {"sd_no_wiki", _u8L("No wiki page for this action")}, + {"sd_show_details", _u8L("Show details")}, + {"sd_hide_details", _u8L("Hide details")}, }; } @@ -148,8 +150,8 @@ SpeedDialWebDialog::SpeedDialWebDialog(wxWindow* parent) // the page inside the fixed-size popup. No-op on the other backends (wxWidgets 3.3 base virtual). if (wxWebView* wv = browser()) wv->EnableBrowserAcceleratorKeys(false); - // Re-cut the shape region whenever layout changes the client size; SetShape itself - // does not generate size events, so this cannot recurse. + // Re-cut the shape whenever layout changes the client size. wxOSX SetShape resizes the + // NSWindow, which fires this synchronously; apply_rounded_shape() guards re-entry. Bind(wxEVT_SIZE, [this](wxSizeEvent& event) { event.Skip(); apply_rounded_shape(); @@ -224,7 +226,9 @@ void SpeedDialWebDialog::handle_web_command(const nlohmann::json& payload) if (id.is_string()) ids.push_back(id.get<std::string>()); wxGetApp().action_registry().reorder_favourites(ids); - } else if (command == "run_action") + } else if (command == "set_tooltip_expanded") + wxGetApp().action_registry().set_tooltip_expanded(payload.value("expanded", true)); + else if (command == "run_action") run_action(payload.value("id", ""), payload.value("title", ""), payload.value("param", "")); else if (command == "open_wiki") open_wiki(payload.value("id", "")); @@ -259,34 +263,58 @@ void SpeedDialWebDialog::resize_to_content(int height) const int height_dip = std::max(kPopupMinHeight, std::min(height, max_dip)); SetClientSize(FromDIP(wxSize(kPopupWidth, height_dip))); Layout(); +#ifdef __WXOSX__ + // WKWebView can lag the dialog's new client size; force the viewport to match so the page is + // never painted (and clipped by the rounded layer) below the footer. + if (wxWebView* wv = browser()) { + const wxSize client = GetClientSize(); + if (wv->GetSize() != client) + wv->SetSize(client); + } +#endif apply_rounded_shape(); } -// Rounded corners: the webview paints an opaque rectangle, so round the whole top-level window -// with a shape region (same mask trick as FilamentPickerDialog). Binary edges, no anti-aliasing. +// Rounded corners: the webview paints an opaque rectangle, so round the whole top-level window. +// GTK/MSW use a shape region (same mask trick as FilamentPickerDialog, binary edges, no +// anti-aliasing); macOS clips the native view layer instead, since SetShape cannot shape there. void SpeedDialWebDialog::apply_rounded_shape() { + // wxOSX SetShape resizes the NSWindow (setContentSize 10x10 then back), which synchronously + // fires wxEVT_SIZE -> apply_rounded_shape() -> SetShape() and recurses until the stack + // overflows. GTK/MSW set a region without resizing, so they are unaffected. + if (m_applying_shape) + return; + // BORDER_NONE means the window is all client area, so the client size is the shape size. const wxSize size = GetClientSize(); if (size.GetWidth() <= 0 || size.GetHeight() <= 0) return; + m_applying_shape = true; + +#ifdef __WXOSX__ + // wxOSX ignores the region (it only clears the window background), so round the native view. + set_window_corner_radius(this, FromDIP(m_corner_radius)); +#else m_shape_bmp.Create(size.GetWidth(), size.GetHeight(), 32); - if (!m_shape_bmp.IsOk()) - return; + if (m_shape_bmp.IsOk()) { + wxMemoryDC dc; + dc.SelectObject(m_shape_bmp); + dc.SetBackground(wxBrush(wxColour(0, 0, 0))); + dc.Clear(); + dc.SetBrush(wxBrush(wxColour(255, 255, 255, 255))); + dc.SetPen(*wxTRANSPARENT_PEN); + dc.DrawRoundedRectangle(0, 0, size.GetWidth(), size.GetHeight(), FromDIP(m_corner_radius)); + dc.SelectObject(wxNullBitmap); - wxMemoryDC dc; - dc.SelectObject(m_shape_bmp); - dc.SetBackground(wxBrush(wxColour(0, 0, 0))); - dc.Clear(); - dc.SetBrush(wxBrush(wxColour(255, 255, 255, 255))); - dc.SetPen(*wxTRANSPARENT_PEN); - dc.DrawRoundedRectangle(0, 0, size.GetWidth(), size.GetHeight(), FromDIP(m_corner_radius)); - dc.SelectObject(wxNullBitmap); + wxRegion region(m_shape_bmp, wxColour(0, 0, 0)); + if (region.IsOk()) + SetShape(region); + } +#endif - wxRegion region(m_shape_bmp, wxColour(0, 0, 0)); - if (region.IsOk()) - SetShape(region); + m_applying_shape = false; } void SpeedDialWebDialog::on_dpi_changed(const wxRect&) @@ -379,7 +407,8 @@ void SpeedDialWebDialog::send_actions() {"actions", std::move(snap["actions"])}, {"favourites", std::move(snap["favourites"])}, {"recent", std::move(snap["recent"])}, - {"user_mode", std::move(snap["user_mode"])}}); + {"user_mode", std::move(snap["user_mode"])}, + {"tooltip_expanded", std::move(snap["tooltip_expanded"])}}); } }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/SpeedDialDialog.hpp b/src/slic3r/GUI/SpeedDialDialog.hpp index e7a4060e16..8ae745b446 100644 --- a/src/slic3r/GUI/SpeedDialDialog.hpp +++ b/src/slic3r/GUI/SpeedDialDialog.hpp @@ -31,9 +31,11 @@ private: void on_dpi_changed(const wxRect& suggested_rect) override; bool m_page_ready{false}; - // Rounded corners via a window shape region, since the webview itself is opaque. + // Rounded corners (shape region on GTK/MSW, native layer on macOS), since the webview is opaque. int m_corner_radius{7}; wxBitmap m_shape_bmp; + // wxOSX SetShape resizes the window, which re-enters apply_rounded_shape() through wxEVT_SIZE. + bool m_applying_shape{false}; // Guards the CallAfter in on_script_message across dialog destruction, same as // PluginsDialog::m_alive (PluginsDialog.hpp:249). std::shared_ptr<std::atomic<bool>> m_alive = std::make_shared<std::atomic<bool>>(true); From 83e729d20ebffdd28ec0a24da88e265e7b9aba26 Mon Sep 17 00:00:00 2001 From: Clifford <cliff@cigii.com> Date: Fri, 18 Sep 2026 10:42:31 -0400 Subject: [PATCH 31/76] fix(build): drop two unused lambda captures that break non-Release clang builds (#15749) fix(build): drop two unused lambda captures that break non-Release builds Both handlers capture this and never use it. They sit inside #if !BBL_RELEASE_TO_PUBLIC, which CMakeLists defines as $<CONFIG:Release>, so the code compiles in Debug and RelWithDebInfo but not in Release. Clang warns on an unused capture under -Wall, and since every warning became an error the two captures fail any clang build that is not Release - an Xcode scheme on its default Debug configuration, for instance. The CI matrix builds Release, where the block does not exist, and GCC does not implement the warning at all, so nothing in CI can see it. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> --- src/slic3r/GUI/CameraPopup.cpp | 2 +- src/slic3r/GUI/StatusPanel.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/CameraPopup.cpp b/src/slic3r/GUI/CameraPopup.cpp index cc7e00eec6..c4e3c5486c 100644 --- a/src/slic3r/GUI/CameraPopup.cpp +++ b/src/slic3r/GUI/CameraPopup.cpp @@ -82,7 +82,7 @@ CameraPopup::CameraPopup(wxWindow *parent) top_sizer->Add(m_text_liveview_retry, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_LEFT | wxALL, FromDIP(5)); top_sizer->Add(m_switch_liveview_retry, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, FromDIP(5)); - m_switch_liveview_retry->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent &e) { + m_switch_liveview_retry->Bind(wxEVT_TOGGLEBUTTON, [](wxCommandEvent &e) { wxGetApp().app_config->set("liveview", "auto_retry", e.IsChecked()); e.Skip(); }); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index f7bd41fe84..fb0029edc3 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -1462,7 +1462,7 @@ wxBoxSizer *StatusBasePanel::create_monitoring_page() #if !BBL_RELEASE_TO_PUBLIC m_staticText_timelapse->Show(); m_bmToggleBtn_timelapse->Show(); - m_bmToggleBtn_timelapse->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent &e) { + m_bmToggleBtn_timelapse->Bind(wxEVT_TOGGLEBUTTON, [](wxCommandEvent &e) { if (e.IsChecked()) wxGetApp().getAgent()->start_subscribe("tunnel"); else From 7472b87b674446657c31da4407a7f79b802dadf7 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Fri, 18 Sep 2026 09:56:44 -0500 Subject: [PATCH 32/76] build: fix the macro redefinition that fails clang Debug builds (#15759) libslic3r_version.h defines ORCA_CHECK_GCODE_PLACEHOLDERS from the CMake option, 0 by default, and GCode.hpp then forces it to 1 whenever NDEBUG is undefined. Clang reports the second definition under -Wmacro-redefined, which is on by default, so since -Werror (#15660) every clang Debug build fails at the libslic3r files that include GCode.hpp. Release and RelWithDebInfo define NDEBUG and never compile the override, which is why no CI configuration sees it. The override dates from #3861 and has warned in every Debug build since. Undefine the macro before overriding it. Debug builds get the same value the redefinition already produced, so nothing else changes. Follow-up to #15749, refs #15748. --- src/libslic3r/GCode.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libslic3r/GCode.hpp b/src/libslic3r/GCode.hpp index 8cf4aa03fb..5208c4a5f3 100644 --- a/src/libslic3r/GCode.hpp +++ b/src/libslic3r/GCode.hpp @@ -710,6 +710,7 @@ private: // Always check gcode placeholders when building in debug mode. #if !defined(NDEBUG) +#undef ORCA_CHECK_GCODE_PLACEHOLDERS #define ORCA_CHECK_GCODE_PLACEHOLDERS 1 #endif From 9bd4432f2790ba784b114fa6febc66765ff9be2e Mon Sep 17 00:00:00 2001 From: inslogic3d <marketing@inslogic3d.com> Date: Fri, 18 Sep 2026 23:43:33 +0800 Subject: [PATCH 33/76] Add INSLOGIC filament profiles to OrcaFilamentLibrary (#15398) Merged by /bot merge on behalf of @inslogic3d (id 321604763). Grants: resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC, resources/profiles/OrcaFilamentLibrary.json Head: 22a51b32f080aa90c2827ad8609a785ad2a85376 --- resources/profiles/OrcaFilamentLibrary.json | 66 +++- .../BBL/INSLOGIC PA6-66 @BBL P2S.json | 275 +++++++++++++++ .../INSLOGIC/BBL/INSLOGIC PA6-66 @P1-X1.json | 210 +++++++++++ .../BBL/INSLOGIC PA6-CF @BBL P2S.json | 275 +++++++++++++++ .../INSLOGIC/BBL/INSLOGIC PA6-CF @P1-X1.json | 210 +++++++++++ .../BBL/INSLOGIC PETG Pro @BBL P2S.json | 328 ++++++++++++++++++ .../BBL/INSLOGIC PETG Pro @P1-X1.json | 210 +++++++++++ .../BBL/INSLOGIC PLA Pro @BBL P2S.json | 190 ++++++++++ .../INSLOGIC/BBL/INSLOGIC PLA Pro @P1-X1.json | 210 +++++++++++ .../INSLOGIC/INSLOGIC PA6-66 @base.json | 36 ++ .../INSLOGIC/INSLOGIC PA6-CF @base.json | 39 +++ .../INSLOGIC/INSLOGIC PETG Pro @base.json | 36 ++ .../INSLOGIC/INSLOGIC PLA Pro @base.json | 36 ++ .../INSLOGIC PA6-66 @Prusa CORE One.json | 165 +++++++++ .../INSLOGIC PA6-CF @Prusa CORE One.json | 165 +++++++++ .../INSLOGIC PETG Pro @Prusa CORE One.json | 165 +++++++++ .../INSLOGIC PLA Pro @Prusa CORE One.json | 165 +++++++++ 17 files changed, 2780 insertions(+), 1 deletion(-) create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-66 @BBL P2S.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-66 @P1-X1.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-CF @BBL P2S.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-CF @P1-X1.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PETG Pro @BBL P2S.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PETG Pro @P1-X1.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PLA Pro @BBL P2S.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PLA Pro @P1-X1.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PA6-66 @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PA6-CF @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PETG Pro @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PLA Pro @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PA6-66 @Prusa CORE One.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PA6-CF @Prusa CORE One.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PETG Pro @Prusa CORE One.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PLA Pro @Prusa CORE One.json diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json index 3ce35d2623..68212a1d5e 100644 --- a/resources/profiles/OrcaFilamentLibrary.json +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -1,6 +1,6 @@ { "name": "OrcaFilamentLibrary", - "version": "02.04.00.07", + "version": "02.04.00.08", "force_update": "0", "description": "Orca Filament Library", "filament_list": [ @@ -304,6 +304,14 @@ "name": "Generic PA-CF @System", "sub_path": "filament/Generic PA-CF @System.json" }, + { + "name": "INSLOGIC PA6-66 @base", + "sub_path": "filament/INSLOGIC/INSLOGIC PA6-66 @base.json" + }, + { + "name": "INSLOGIC PA6-CF @base", + "sub_path": "filament/INSLOGIC/INSLOGIC PA6-CF @base.json" + }, { "name": "Bambu PC @base", "sub_path": "filament/Bambu/Bambu PC @base.json" @@ -436,6 +444,10 @@ "name": "GreenGate3D PETG @base", "sub_path": "filament/GreenGate3D/GreenGate3D PETG @base.json" }, + { + "name": "INSLOGIC PETG Pro @base", + "sub_path": "filament/INSLOGIC/INSLOGIC PETG Pro @base.json" + }, { "name": "JAYO PETG @base", "sub_path": "filament/JAYO/JAYO PETG @base.json" @@ -636,6 +648,10 @@ "name": "Generic PLA-CF @System", "sub_path": "filament/Generic PLA-CF @System.json" }, + { + "name": "INSLOGIC PLA Pro @base", + "sub_path": "filament/INSLOGIC/INSLOGIC PLA Pro @base.json" + }, { "name": "JAYO PLA @base", "sub_path": "filament/JAYO/JAYO PLA @base.json" @@ -1116,6 +1132,30 @@ "name": "Fiberon PA612-CF @System", "sub_path": "filament/Polymaker/Fiberon PA612-CF @System.json" }, + { + "name": "INSLOGIC PA6-66 @BBL P2S", + "sub_path": "filament/INSLOGIC/BBL/INSLOGIC PA6-66 @BBL P2S.json" + }, + { + "name": "INSLOGIC PA6-66 @P1-X1", + "sub_path": "filament/INSLOGIC/BBL/INSLOGIC PA6-66 @P1-X1.json" + }, + { + "name": "INSLOGIC PA6-66 @Prusa CORE One", + "sub_path": "filament/INSLOGIC/Prusa/INSLOGIC PA6-66 @Prusa CORE One.json" + }, + { + "name": "INSLOGIC PA6-CF @BBL P2S", + "sub_path": "filament/INSLOGIC/BBL/INSLOGIC PA6-CF @BBL P2S.json" + }, + { + "name": "INSLOGIC PA6-CF @P1-X1", + "sub_path": "filament/INSLOGIC/BBL/INSLOGIC PA6-CF @P1-X1.json" + }, + { + "name": "INSLOGIC PA6-CF @Prusa CORE One", + "sub_path": "filament/INSLOGIC/Prusa/INSLOGIC PA6-CF @Prusa CORE One.json" + }, { "name": "Bambu PC @System", "sub_path": "filament/Bambu/Bambu PC @System.json" @@ -1312,6 +1352,18 @@ "name": "GreenGate3D PETG @System", "sub_path": "filament/GreenGate3D/GreenGate3D PETG @System.json" }, + { + "name": "INSLOGIC PETG Pro @BBL P2S", + "sub_path": "filament/INSLOGIC/BBL/INSLOGIC PETG Pro @BBL P2S.json" + }, + { + "name": "INSLOGIC PETG Pro @P1-X1", + "sub_path": "filament/INSLOGIC/BBL/INSLOGIC PETG Pro @P1-X1.json" + }, + { + "name": "INSLOGIC PETG Pro @Prusa CORE One", + "sub_path": "filament/INSLOGIC/Prusa/INSLOGIC PETG Pro @Prusa CORE One.json" + }, { "name": "JAYO PETG @BBL A1 0.4 nozzle", "sub_path": "filament/JAYO/BBL/JAYO PETG @BBL A1 0.4 nozzle.json" @@ -1700,6 +1752,18 @@ "name": "Generic PLA Matte @System", "sub_path": "filament/Generic PLA Matte @System.json" }, + { + "name": "INSLOGIC PLA Pro @BBL P2S", + "sub_path": "filament/INSLOGIC/BBL/INSLOGIC PLA Pro @BBL P2S.json" + }, + { + "name": "INSLOGIC PLA Pro @P1-X1", + "sub_path": "filament/INSLOGIC/BBL/INSLOGIC PLA Pro @P1-X1.json" + }, + { + "name": "INSLOGIC PLA Pro @Prusa CORE One", + "sub_path": "filament/INSLOGIC/Prusa/INSLOGIC PLA Pro @Prusa CORE One.json" + }, { "name": "JAYO PLA @BBL A1 0.4 nozzle", "sub_path": "filament/JAYO/BBL/JAYO PLA @BBL A1 0.4 nozzle.json" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-66 @BBL P2S.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-66 @BBL P2S.json new file mode 100644 index 0000000000..b183295021 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-66 @BBL P2S.json @@ -0,0 +1,275 @@ +{ + "type": "filament", + "name": "INSLOGIC PA6-66 @BBL P2S", + "inherits": "INSLOGIC PA6-66 @base", + "from": "system", + "setting_id": "UHHdgZgE7e8KR2GV", + "instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "close_additional_fan_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "fan_cooling_layer_time": [ + "20" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "filament_adaptive_volumetric_speed": [ + "0" + ], + "filament_extruder_compatibility": [ + "0" + ], + "filament_cooling_before_tower": [ + "10", + "10" + ], + "filament_preheat_temperature_delta": [ + "0" + ], + "filament_tower_interface_pre_extrusion_dist": [ + "10" + ], + "filament_tower_interface_pre_extrusion_length": [ + "0" + ], + "filament_tower_ironing_area": [ + "4" + ], + "filament_tower_interface_purge_volume": [ + "20" + ], + "filament_tower_interface_print_temp": [ + "-1" + ], + "filament_density": [ + "1.10" + ], + "filament_dev_ams_drying_ams_limitations": [ + "1" + ], + "filament_dev_ams_drying_heat_distortion_temperature": [ + "90" + ], + "filament_dev_ams_drying_temperature": [ + "65", + "80", + "65", + "80" + ], + "filament_dev_ams_drying_time": [ + "12", + "12", + "12", + "12" + ], + "filament_dev_chamber_drying_bed_temperature": [ + "90.0" + ], + "filament_dev_chamber_drying_time": [ + "18" + ], + "filament_dev_drying_cooling_temperature": [ + "65" + ], + "filament_dev_drying_softening_temperature": [ + "85" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ], + "filament_flow_ratio": [ + "0.98", + "0.98" + ], + "filament_flush_temp": [ + "0" + ], + "filament_flush_temp_fast": [ + "0" + ], + "filament_flush_volumetric_speed": [ + "0" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12", + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_pre_cooling_temperature": [ + "0" + ], + "filament_pre_cooling_temperature_nc": [ + "0" + ], + "filament_prime_volume": [ + "45" + ], + "filament_prime_volume_nc": [ + "60" + ], + "filament_printable": [ + "3" + ], + "filament_ramming_travel_time_nc": [ + "0" + ], + "filament_ramming_volumetric_speed": [ + "-1" + ], + "filament_ramming_volumetric_speed_nc": [ + "-1" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_shrink": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "full_fan_speed_layer": [ + "0" + ], + "additional_fan_full_speed_layer": [ + "0" + ], + "filament_scarf_height": [ + "10%" + ], + "filament_scarf_gap": [ + "0%" + ], + "filament_scarf_length": [ + "10" + ], + "filament_ramming_travel_time": [ + "0", + "0" + ], + "filament_retract_length_nc": [ + "14" + ], + "filament_change_length": [ + "10" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "nozzle_temperature": [ + "255", + "255" + ], + "nozzle_temperature_initial_layer": [ + "255", + "255" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "overhang_fan_speed": [ + "95" + ], + "overhang_fan_threshold": [ + "10%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "3" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "6" + ], + "slow_down_min_speed": [ + "10" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "temperature_vitrification": [ + "74.2" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "volumetric_speed_coefficients": [ + "0 0 0 0 0 0" + ], + "filament_start_gcode": [ + "; Filament gcode\nM145 P0 ; set airduct mode to cooling mode for cooling\nM106 P2 S255 ; turn on auxiliary fan for cooling\nM106 P3 S127 ; turn on chamber fan for cooling\nM1002 gcode_claim_action : 29\nM191 S0 ; wait for chamber temp\nM106 P2 S102 ; turn on chamber cooling fan\nM106 P10 S0 ; turn off left aux fan\nM142 P6 R30 S40 U0.3 V0.8 ; set PETG exhaust chamber autocooling\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_adhesiveness_category": [ + "400" + ], + "idle_temperature": [ + "0" + ], + "compatible_printers": [ + "Bambu Lab P2S 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-66 @P1-X1.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-66 @P1-X1.json new file mode 100644 index 0000000000..fa71bcc4b7 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-66 @P1-X1.json @@ -0,0 +1,210 @@ +{ + "type": "filament", + "name": "INSLOGIC PA6-66 @P1-X1", + "inherits": "INSLOGIC PA6-66 @base", + "from": "system", + "setting_id": "X6EcSgHdfuxoY1lL", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "eng_plate_temp": [ + "40" + ], + "hot_plate_temp": [ + "50" + ], + "textured_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "overhang_fan_threshold": [ + "95%" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.98", + "0.98" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_cooling_layer_time": [ + "15" + ], + "filament_density": [ + "1.2" + ], + "filament_deretraction_speed": [ + "nil", + "nil" + ], + "filament_max_volumetric_speed": [ + "12", + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retraction_minimum_travel": [ + "nil", + "nil" + ], + "filament_retract_before_wipe": [ + "nil", + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil", + "nil" + ], + "filament_retraction_length": [ + "1", + "1" + ], + "filament_z_hop": [ + "nil", + "nil" + ], + "filament_z_hop_types": [ + "nil", + "nil" + ], + "filament_retract_restart_extra": [ + "nil", + "nil" + ], + "filament_retraction_speed": [ + "nil", + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_wipe": [ + "nil", + "nil" + ], + "filament_wipe_distance": [ + "nil", + "nil" + ], + "nozzle_temperature_initial_layer": [ + "255", + "255" + ], + "full_fan_speed_layer": [ + "2" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "slow_down_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "2" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "nozzle_temperature": [ + "255", + "255" + ], + "temperature_vitrification": [ + "70.4" + ], + "nozzle_temperature_range_low": [ + "250", + "250" + ], + "nozzle_temperature_range_high": [ + "280", + "280" + ], + "filament_flush_temp": [ + "0", + "0" + ], + "filament_flush_volumetric_speed": [ + "0", + "0" + ], + "filament_long_retractions_when_cut": [ + "0" + ], + "filament_ramming_volumetric_speed": [ + "-1", + "-1" + ], + "filament_retraction_distances_when_cut": [ + "nil", + "nil" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ], + "filament_pre_cooling_temperature": [ + "0", + "0" + ], + "filament_ramming_travel_time": [ + "0", + "0" + ], + "filament_adaptive_volumetric_speed": [ + "0", + "0" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "volumetric_speed_coefficients": [ + "0 0 0 0 0 0", + "0 0 0 0 0 0" + ], + "idle_temperature": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-CF @BBL P2S.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-CF @BBL P2S.json new file mode 100644 index 0000000000..91c7c2bdbd --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-CF @BBL P2S.json @@ -0,0 +1,275 @@ +{ + "type": "filament", + "name": "INSLOGIC PA6-CF @BBL P2S", + "inherits": "INSLOGIC PA6-CF @base", + "from": "system", + "setting_id": "Km9iCy4A8kukE0AA", + "instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "close_additional_fan_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "fan_cooling_layer_time": [ + "20" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "filament_adaptive_volumetric_speed": [ + "0" + ], + "filament_extruder_compatibility": [ + "0" + ], + "filament_cooling_before_tower": [ + "10", + "10" + ], + "filament_preheat_temperature_delta": [ + "0" + ], + "filament_tower_interface_pre_extrusion_dist": [ + "10" + ], + "filament_tower_interface_pre_extrusion_length": [ + "0" + ], + "filament_tower_ironing_area": [ + "4" + ], + "filament_tower_interface_purge_volume": [ + "20" + ], + "filament_tower_interface_print_temp": [ + "-1" + ], + "filament_density": [ + "1.12" + ], + "filament_dev_ams_drying_ams_limitations": [ + "1" + ], + "filament_dev_ams_drying_heat_distortion_temperature": [ + "90" + ], + "filament_dev_ams_drying_temperature": [ + "65", + "80", + "65", + "80" + ], + "filament_dev_ams_drying_time": [ + "12", + "12", + "12", + "12" + ], + "filament_dev_chamber_drying_bed_temperature": [ + "90.0" + ], + "filament_dev_chamber_drying_time": [ + "18" + ], + "filament_dev_drying_cooling_temperature": [ + "65" + ], + "filament_dev_drying_softening_temperature": [ + "85" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ], + "filament_flow_ratio": [ + "0.98", + "0.98" + ], + "filament_flush_temp": [ + "0" + ], + "filament_flush_temp_fast": [ + "0" + ], + "filament_flush_volumetric_speed": [ + "0" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12", + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_pre_cooling_temperature": [ + "0" + ], + "filament_pre_cooling_temperature_nc": [ + "0" + ], + "filament_prime_volume": [ + "45" + ], + "filament_prime_volume_nc": [ + "60" + ], + "filament_printable": [ + "3" + ], + "filament_ramming_travel_time_nc": [ + "0" + ], + "filament_ramming_volumetric_speed": [ + "-1" + ], + "filament_ramming_volumetric_speed_nc": [ + "-1" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_shrink": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "full_fan_speed_layer": [ + "0" + ], + "additional_fan_full_speed_layer": [ + "0" + ], + "filament_scarf_height": [ + "10%" + ], + "filament_scarf_gap": [ + "0%" + ], + "filament_scarf_length": [ + "10" + ], + "filament_ramming_travel_time": [ + "0", + "0" + ], + "filament_retract_length_nc": [ + "14" + ], + "filament_change_length": [ + "10" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "nozzle_temperature": [ + "275", + "275" + ], + "nozzle_temperature_initial_layer": [ + "280", + "280" + ], + "nozzle_temperature_range_high": [ + "290" + ], + "nozzle_temperature_range_low": [ + "270" + ], + "overhang_fan_speed": [ + "95" + ], + "overhang_fan_threshold": [ + "10%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "3" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "6" + ], + "slow_down_min_speed": [ + "10" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "temperature_vitrification": [ + "74.2" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "volumetric_speed_coefficients": [ + "0 0 0 0 0 0" + ], + "filament_start_gcode": [ + "; Filament gcode\nM145 P0 ; set airduct mode to cooling mode for cooling\nM106 P2 S255 ; turn on auxiliary fan for cooling\nM106 P3 S127 ; turn on chamber fan for cooling\nM1002 gcode_claim_action : 29\nM191 S0 ; wait for chamber temp\nM106 P2 S102 ; turn on chamber cooling fan\nM106 P10 S0 ; turn off left aux fan\nM142 P6 R30 S40 U0.3 V0.8 ; set PETG exhaust chamber autocooling\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_adhesiveness_category": [ + "400" + ], + "idle_temperature": [ + "0" + ], + "compatible_printers": [ + "Bambu Lab P2S 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-CF @P1-X1.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-CF @P1-X1.json new file mode 100644 index 0000000000..c95e5d3f97 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PA6-CF @P1-X1.json @@ -0,0 +1,210 @@ +{ + "type": "filament", + "name": "INSLOGIC PA6-CF @P1-X1", + "inherits": "INSLOGIC PA6-CF @base", + "from": "system", + "setting_id": "ky3k6Q9Fyi3QwCHL", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "eng_plate_temp": [ + "40" + ], + "hot_plate_temp": [ + "65" + ], + "textured_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "overhang_fan_threshold": [ + "95%" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.98", + "0.98" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_cooling_layer_time": [ + "15" + ], + "filament_density": [ + "1.2" + ], + "filament_deretraction_speed": [ + "nil", + "nil" + ], + "filament_max_volumetric_speed": [ + "12", + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retraction_minimum_travel": [ + "nil", + "nil" + ], + "filament_retract_before_wipe": [ + "nil", + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil", + "nil" + ], + "filament_retraction_length": [ + "1", + "1" + ], + "filament_z_hop": [ + "nil", + "nil" + ], + "filament_z_hop_types": [ + "nil", + "nil" + ], + "filament_retract_restart_extra": [ + "nil", + "nil" + ], + "filament_retraction_speed": [ + "nil", + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_wipe": [ + "nil", + "nil" + ], + "filament_wipe_distance": [ + "nil", + "nil" + ], + "nozzle_temperature_initial_layer": [ + "280", + "280" + ], + "full_fan_speed_layer": [ + "2" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "slow_down_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "2" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "nozzle_temperature": [ + "275", + "275" + ], + "temperature_vitrification": [ + "70.4" + ], + "nozzle_temperature_range_low": [ + "270", + "270" + ], + "nozzle_temperature_range_high": [ + "290", + "290" + ], + "filament_flush_temp": [ + "0", + "0" + ], + "filament_flush_volumetric_speed": [ + "0", + "0" + ], + "filament_long_retractions_when_cut": [ + "0" + ], + "filament_ramming_volumetric_speed": [ + "-1", + "-1" + ], + "filament_retraction_distances_when_cut": [ + "nil", + "nil" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ], + "filament_pre_cooling_temperature": [ + "0", + "0" + ], + "filament_ramming_travel_time": [ + "0", + "0" + ], + "filament_adaptive_volumetric_speed": [ + "0", + "0" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "volumetric_speed_coefficients": [ + "0 0 0 0 0 0", + "0 0 0 0 0 0" + ], + "idle_temperature": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PETG Pro @BBL P2S.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PETG Pro @BBL P2S.json new file mode 100644 index 0000000000..f654aa67f8 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PETG Pro @BBL P2S.json @@ -0,0 +1,328 @@ +{ + "type": "filament", + "name": "INSLOGIC PETG Pro @BBL P2S", + "inherits": "INSLOGIC PETG Pro @base", + "from": "system", + "setting_id": "6iAMtvQjja2ZKenA", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "25" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "filament_flow_ratio": [ + "0.98", + "0.98" + ], + "filament_max_volumetric_speed": [ + "12", + "12" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20", + "20" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_deretraction_speed": [ + "nil", + "nil" + ], + "filament_flush_temp": [ + "0" + ], + "filament_flush_volumetric_speed": [ + "0" + ], + "filament_long_retractions_when_cut": [ + "0" + ], + "filament_ramming_volumetric_speed": [ + "-1" + ], + "filament_ramming_volumetric_speed_nc": [ + "-1" + ], + "filament_retract_before_wipe": [ + "nil", + "nil" + ], + "filament_retract_restart_extra": [ + "nil", + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil", + "nil" + ], + "filament_retraction_distances_when_cut": [ + "nil", + "nil" + ], + "filament_retraction_length": [ + "nil", + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil", + "nil" + ], + "filament_retraction_speed": [ + "nil", + "nil" + ], + "filament_wipe": [ + "nil", + "nil" + ], + "filament_wipe_distance": [ + "nil", + "nil" + ], + "filament_z_hop": [ + "nil", + "nil" + ], + "filament_z_hop_types": [ + "nil", + "nil" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ], + "first_x_layer_fan_speed": [ + "0" + ], + "filament_pre_cooling_temperature": [ + "0" + ], + "filament_pre_cooling_temperature_nc": [ + "0" + ], + "filament_ramming_travel_time": [ + "0", + "0" + ], + "filament_ramming_travel_time_nc": [ + "0" + ], + "filament_adaptive_volumetric_speed": [ + "0" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "nozzle_temperature": [ + "245", + "245" + ], + "nozzle_temperature_initial_layer": [ + "245", + "245" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "volumetric_speed_coefficients": [ + "0 0 0 0 0 0" + ], + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "close_additional_fan_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "70" + ], + "filament_extruder_compatibility": [ + "0" + ], + "filament_cooling_before_tower": [ + "10", + "10" + ], + "filament_preheat_temperature_delta": [ + "0" + ], + "filament_tower_interface_pre_extrusion_dist": [ + "10" + ], + "filament_tower_interface_pre_extrusion_length": [ + "0" + ], + "filament_tower_ironing_area": [ + "4" + ], + "filament_tower_interface_purge_volume": [ + "20" + ], + "filament_tower_interface_print_temp": [ + "-1" + ], + "filament_density": [ + "1.28" + ], + "filament_dev_ams_drying_ams_limitations": [ + "1", + "0" + ], + "filament_dev_ams_drying_heat_distortion_temperature": [ + "75" + ], + "filament_dev_ams_drying_temperature": [ + "65", + "65", + "55", + "55" + ], + "filament_dev_ams_drying_time": [ + "12", + "12", + "12", + "12" + ], + "filament_dev_chamber_drying_bed_temperature": [ + "80" + ], + "filament_dev_chamber_drying_time": [ + "12.0" + ], + "filament_dev_drying_cooling_temperature": [ + "55" + ], + "filament_dev_drying_softening_temperature": [ + "60" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_prime_volume": [ + "45" + ], + "filament_prime_volume_nc": [ + "60" + ], + "filament_printable": [ + "3" + ], + "filament_scarf_seam_type": [ + "none" + ], + "filament_shrink": [ + "100%" + ], + "filament_soluble": [ + "0" + ], + "full_fan_speed_layer": [ + "0" + ], + "additional_fan_full_speed_layer": [ + "0" + ], + "filament_scarf_height": [ + "10%" + ], + "filament_scarf_gap": [ + "0%" + ], + "filament_scarf_length": [ + "10" + ], + "filament_retract_length_nc": [ + "14" + ], + "filament_change_length": [ + "10" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "3" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "temperature_vitrification": [ + "81" + ], + "filament_start_gcode": [ + "; Filament gcode\nM145 P0 ; set airduct mode to cooling mode for cooling\nM106 P2 S255 ; turn on auxiliary fan for cooling\nM106 P3 S127 ; turn on chamber fan for cooling\nM1002 gcode_claim_action : 29\nM191 S0 ; wait for chamber temp\nM106 P2 S102 ; turn on chamber cooling fan\nM106 P10 S0 ; turn off left aux fan\nM142 P6 R30 S40 U0.3 V0.8 ; set PETG exhaust chamber autocooling\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n\n" + ], + "filament_adhesiveness_category": [ + "300" + ], + "idle_temperature": [ + "0" + ], + "compatible_printers": [ + "Bambu Lab P2S 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PETG Pro @P1-X1.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PETG Pro @P1-X1.json new file mode 100644 index 0000000000..01411d237f --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PETG Pro @P1-X1.json @@ -0,0 +1,210 @@ +{ + "type": "filament", + "name": "INSLOGIC PETG Pro @P1-X1", + "inherits": "INSLOGIC PETG Pro @base", + "from": "system", + "setting_id": "miOBX0bGzziXI6SE", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "eng_plate_temp": [ + "40" + ], + "hot_plate_temp": [ + "70" + ], + "textured_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "overhang_fan_threshold": [ + "95%" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.98", + "0.98" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_cooling_layer_time": [ + "15" + ], + "filament_density": [ + "1.2" + ], + "filament_deretraction_speed": [ + "nil", + "nil" + ], + "filament_max_volumetric_speed": [ + "12", + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retraction_minimum_travel": [ + "nil", + "nil" + ], + "filament_retract_before_wipe": [ + "nil", + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil", + "nil" + ], + "filament_retraction_length": [ + "1", + "1" + ], + "filament_z_hop": [ + "nil", + "nil" + ], + "filament_z_hop_types": [ + "nil", + "nil" + ], + "filament_retract_restart_extra": [ + "nil", + "nil" + ], + "filament_retraction_speed": [ + "nil", + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_wipe": [ + "nil", + "nil" + ], + "filament_wipe_distance": [ + "nil", + "nil" + ], + "nozzle_temperature_initial_layer": [ + "245", + "245" + ], + "full_fan_speed_layer": [ + "2" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "slow_down_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "2" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "nozzle_temperature": [ + "245", + "245" + ], + "temperature_vitrification": [ + "70.4" + ], + "nozzle_temperature_range_low": [ + "240", + "240" + ], + "nozzle_temperature_range_high": [ + "260", + "260" + ], + "filament_flush_temp": [ + "0", + "0" + ], + "filament_flush_volumetric_speed": [ + "0", + "0" + ], + "filament_long_retractions_when_cut": [ + "0" + ], + "filament_ramming_volumetric_speed": [ + "-1", + "-1" + ], + "filament_retraction_distances_when_cut": [ + "nil", + "nil" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ], + "filament_pre_cooling_temperature": [ + "0", + "0" + ], + "filament_ramming_travel_time": [ + "0", + "0" + ], + "filament_adaptive_volumetric_speed": [ + "0", + "0" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "volumetric_speed_coefficients": [ + "0 0 0 0 0 0", + "0 0 0 0 0 0" + ], + "idle_temperature": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PLA Pro @BBL P2S.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PLA Pro @BBL P2S.json new file mode 100644 index 0000000000..88c69393b9 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PLA Pro @BBL P2S.json @@ -0,0 +1,190 @@ +{ + "type": "filament", + "name": "INSLOGIC PLA Pro @BBL P2S", + "inherits": "INSLOGIC PLA Pro @base", + "from": "system", + "setting_id": "UAd1QXW7vm9gwoEc", + "instantiation": "true", + "filament_flow_ratio": [ + "0.98", + "0.98" + ], + "filament_max_volumetric_speed": [ + "12", + "12" + ], + "filament_scarf_seam_type": [ + "all" + ], + "filament_scarf_height": [ + "10%" + ], + "filament_scarf_gap": [ + "0%" + ], + "filament_scarf_length": [ + "10" + ], + "filament_change_length": [ + "5" + ], + "filament_prime_volume": [ + "30" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "eng_plate_temp": [ + "55" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "filament_deretraction_speed": [ + "nil", + "nil" + ], + "filament_flush_temp": [ + "0", + "0" + ], + "filament_flush_volumetric_speed": [ + "0", + "0" + ], + "filament_long_retractions_when_cut": [ + "nil", + "nil" + ], + "filament_ramming_volumetric_speed": [ + "-1", + "-1" + ], + "filament_ramming_volumetric_speed_nc": [ + "-1", + "-1" + ], + "filament_retract_before_wipe": [ + "nil", + "nil" + ], + "filament_retract_restart_extra": [ + "nil", + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil", + "nil" + ], + "filament_retraction_distances_when_cut": [ + "10", + "10" + ], + "filament_retraction_length": [ + "1", + "1" + ], + "filament_retraction_minimum_travel": [ + "nil", + "nil" + ], + "filament_retraction_speed": [ + "nil", + "nil" + ], + "filament_wipe": [ + "nil", + "nil" + ], + "filament_wipe_distance": [ + "nil", + "nil" + ], + "filament_z_hop": [ + "nil", + "nil" + ], + "filament_z_hop_types": [ + "nil", + "nil" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ], + "first_x_layer_fan_speed": [ + "40" + ], + "filament_pre_cooling_temperature": [ + "0", + "0" + ], + "filament_pre_cooling_temperature_nc": [ + "0", + "0" + ], + "filament_ramming_travel_time": [ + "0", + "0" + ], + "filament_ramming_travel_time_nc": [ + "0", + "0" + ], + "filament_adaptive_volumetric_speed": [ + "0", + "0" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "nozzle_temperature": [ + "215", + "215" + ], + "nozzle_temperature_initial_layer": [ + "215", + "215" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "volumetric_speed_coefficients": [ + "0 0 0 0 0 0", + "0 0 0 0 0 0" + ], + "nozzle_temperature_range_low": [ + "205", + "205" + ], + "nozzle_temperature_range_high": [ + "245", + "245" + ], + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ], + "fan_min_speed": [ + "60" + ], + "fan_max_speed": [ + "100" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "compatible_printers": [ + "Bambu Lab P2S 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PLA Pro @P1-X1.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PLA Pro @P1-X1.json new file mode 100644 index 0000000000..db92a68125 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/BBL/INSLOGIC PLA Pro @P1-X1.json @@ -0,0 +1,210 @@ +{ + "type": "filament", + "name": "INSLOGIC PLA Pro @P1-X1", + "inherits": "INSLOGIC PLA Pro @base", + "from": "system", + "setting_id": "InmXr3LoNKKDfnQu", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "eng_plate_temp": [ + "40" + ], + "hot_plate_temp": [ + "55" + ], + "textured_plate_temp": [ + "55" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ], + "overhang_fan_threshold": [ + "95%" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_flow_ratio": [ + "0.98", + "0.98" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_cooling_layer_time": [ + "15" + ], + "filament_density": [ + "1.2" + ], + "filament_deretraction_speed": [ + "nil", + "nil" + ], + "filament_max_volumetric_speed": [ + "12", + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retraction_minimum_travel": [ + "nil", + "nil" + ], + "filament_retract_before_wipe": [ + "nil", + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil", + "nil" + ], + "filament_retraction_length": [ + "1", + "1" + ], + "filament_z_hop": [ + "nil", + "nil" + ], + "filament_z_hop_types": [ + "nil", + "nil" + ], + "filament_retract_restart_extra": [ + "nil", + "nil" + ], + "filament_retraction_speed": [ + "nil", + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_wipe": [ + "nil", + "nil" + ], + "filament_wipe_distance": [ + "nil", + "nil" + ], + "nozzle_temperature_initial_layer": [ + "215", + "215" + ], + "full_fan_speed_layer": [ + "2" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "60" + ], + "slow_down_min_speed": [ + "10" + ], + "slow_down_layer_time": [ + "2" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "nozzle_temperature": [ + "215", + "215" + ], + "temperature_vitrification": [ + "70.4" + ], + "nozzle_temperature_range_low": [ + "205", + "205" + ], + "nozzle_temperature_range_high": [ + "245", + "245" + ], + "filament_flush_temp": [ + "0", + "0" + ], + "filament_flush_volumetric_speed": [ + "0", + "0" + ], + "filament_long_retractions_when_cut": [ + "0" + ], + "filament_ramming_volumetric_speed": [ + "-1", + "-1" + ], + "filament_retraction_distances_when_cut": [ + "nil", + "nil" + ], + "filament_extruder_variant": [ + "Direct Drive Standard", + "Direct Drive High Flow" + ], + "filament_pre_cooling_temperature": [ + "0", + "0" + ], + "filament_ramming_travel_time": [ + "0", + "0" + ], + "filament_adaptive_volumetric_speed": [ + "0", + "0" + ], + "long_retractions_when_ec": [ + "0", + "0" + ], + "retraction_distances_when_ec": [ + "0", + "0" + ], + "volumetric_speed_coefficients": [ + "0 0 0 0 0 0", + "0 0 0 0 0 0" + ], + "idle_temperature": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "compatible_printers": [ + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PA6-66 @base.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PA6-66 @base.json new file mode 100644 index 0000000000..952f927479 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PA6-66 @base.json @@ -0,0 +1,36 @@ +{ + "type": "filament", + "name": "INSLOGIC PA6-66 @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "OF02mnRc", + "instantiation": "false", + "filament_vendor": [ + "INSLOGIC" + ], + "filament_type": [ + "PA" + ], + "filament_density": [ + "1.08" + ], + "filament_diameter": [ + "1.75" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_soluble": [ + "0" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "filament_notes": [ + "Inslogic Nylon PA6/66 TDS (20.01.2025). Nozzle sizes 0.2/0.4/0.6mm. Nozzle 250-280C. Bed 30-50C. Printing speed 50-150mm/s. Cooling fan 100%. Textured PEI Sheet. Drying 80C for 48h or 110C for 3h. TDS linear speed is not converted to filament_max_volumetric_speed." + ], + "compatible_printers": [] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PA6-CF @base.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PA6-CF @base.json new file mode 100644 index 0000000000..cf73d10c59 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PA6-CF @base.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "name": "INSLOGIC PA6-CF @base", + "inherits": "fdm_filament_pa", + "from": "system", + "filament_id": "OFDkHRsW", + "instantiation": "false", + "filament_vendor": [ + "INSLOGIC" + ], + "filament_type": [ + "PA-CF" + ], + "filament_density": [ + "1.20" + ], + "filament_diameter": [ + "1.75" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_soluble": [ + "0" + ], + "nozzle_temperature_range_low": [ + "270" + ], + "nozzle_temperature_range_high": [ + "290" + ], + "filament_notes": [ + "Inslogic PA6-CF TDS (20.01.2025). Nozzle sizes 0.4/0.6mm. Nozzle 270-290C at 50-100mm/s. Bed 50-70C. Cooling fan 30%. Textured PEI Sheet. Drying 90C for 12h or 110C for 4h. Carbon-fiber reinforced; abrasive filament. TDS linear speed is not converted to filament_max_volumetric_speed." + ], + "compatible_printers": [], + "required_nozzle_HRC": [ + "3" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PETG Pro @base.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PETG Pro @base.json new file mode 100644 index 0000000000..ef0e797c2a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PETG Pro @base.json @@ -0,0 +1,36 @@ +{ + "type": "filament", + "name": "INSLOGIC PETG Pro @base", + "inherits": "fdm_filament_pet", + "from": "system", + "filament_id": "OFBdBfg1", + "instantiation": "false", + "filament_vendor": [ + "INSLOGIC" + ], + "filament_type": [ + "PETG" + ], + "filament_density": [ + "1.26" + ], + "filament_diameter": [ + "1.75" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_soluble": [ + "0" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "filament_notes": [ + "Inslogic PETG Pro TDS (12.02.2024). Nozzle sizes 0.2/0.4/0.6mm. 230-240C at 50-100mm/s; 240-255C at 100-300mm/s; 255-270C at 300-600mm/s. Bed 60-70C. Cooling fan 100%. Bed: Smooth PEI Sheet / High Temperature Plate. Drying 50C for 4h. TDS linear speed is not converted to filament_max_volumetric_speed." + ], + "compatible_printers": [] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PLA Pro @base.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PLA Pro @base.json new file mode 100644 index 0000000000..b33a37c62c --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/INSLOGIC PLA Pro @base.json @@ -0,0 +1,36 @@ +{ + "type": "filament", + "name": "INSLOGIC PLA Pro @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "OFvPeNbA", + "instantiation": "false", + "filament_vendor": [ + "INSLOGIC" + ], + "filament_type": [ + "PLA" + ], + "filament_density": [ + "1.20" + ], + "filament_diameter": [ + "1.75" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_soluble": [ + "0" + ], + "nozzle_temperature_range_low": [ + "195" + ], + "nozzle_temperature_range_high": [ + "220" + ], + "filament_notes": [ + "Inslogic PLA Pro TDS (12.02.2024). Nozzle sizes 0.2/0.4/0.6mm. 195-205C at 50-100mm/s; 205-220C at 100-300mm/s. Bed 50-60C. Cooling fan 100%. Bed: Textured PEI Sheet / Cool Plate. Drying 50C for 4h. TDS linear speed is not converted to filament_max_volumetric_speed." + ], + "compatible_printers": [] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PA6-66 @Prusa CORE One.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PA6-66 @Prusa CORE One.json new file mode 100644 index 0000000000..040e1f0ff0 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PA6-66 @Prusa CORE One.json @@ -0,0 +1,165 @@ +{ + "type": "filament", + "name": "INSLOGIC PA6-66 @Prusa CORE One", + "inherits": "INSLOGIC PA6-66 @base", + "from": "system", + "setting_id": "Kuv4zCw8jhxYOzhB", + "instantiation": "true", + "hot_plate_temp": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "40" + ], + "textured_plate_temp": [ + "40" + ], + "textured_plate_temp_initial_layer": [ + "40" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "overhang_fan_speed": [ + "100" + ], + "chamber_minimal_temperature": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "0" + ], + "filament_end_gcode": [ + "; Filament-specific end gcode" + ], + "filament_flow_ratio": [ + "0.99" + ], + "fan_cooling_layer_time": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "10" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_ramming_parameters": [ + "250 100 40.1613 40.3548 40.4516 40.3548 40.2581| 0.05 40.1483 0.45 40.3419 0.95 40.3419 1.45 40.3419 1.95 40.3419 2.45 40.3419 2.95 40.3419 3.45 40.3419 3.95 40.3419 4.45 40.3419 4.95 40.3419" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_restart_extra_toolchange": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unloading_speed": [ + "100" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_wipe": [ + "nil" + ], + "nozzle_temperature_initial_layer": [ + "265" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "170" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "15" + ], + "filament_start_gcode": [ + "" + ], + "nozzle_temperature": [ + "265" + ], + "compatible_printers": [ + "Prusa CORE One 0.4 nozzle", + "Prusa CORE One L 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PA6-CF @Prusa CORE One.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PA6-CF @Prusa CORE One.json new file mode 100644 index 0000000000..790650ee23 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PA6-CF @Prusa CORE One.json @@ -0,0 +1,165 @@ +{ + "type": "filament", + "name": "INSLOGIC PA6-CF @Prusa CORE One", + "inherits": "INSLOGIC PA6-CF @base", + "from": "system", + "setting_id": "ZCYSMR6VCj0IrYAF", + "instantiation": "true", + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "overhang_fan_speed": [ + "30" + ], + "chamber_minimal_temperature": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "0" + ], + "filament_end_gcode": [ + "; Filament-specific end gcode" + ], + "filament_flow_ratio": [ + "0.99" + ], + "fan_cooling_layer_time": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "10" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_ramming_parameters": [ + "250 100 40.1613 40.3548 40.4516 40.3548 40.2581| 0.05 40.1483 0.45 40.3419 0.95 40.3419 1.45 40.3419 1.95 40.3419 2.45 40.3419 2.95 40.3419 3.45 40.3419 3.95 40.3419 4.45 40.3419 4.95 40.3419" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_restart_extra_toolchange": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unloading_speed": [ + "100" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_wipe": [ + "nil" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "170" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "30" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "15" + ], + "filament_start_gcode": [ + "" + ], + "nozzle_temperature": [ + "280" + ], + "compatible_printers": [ + "Prusa CORE One 0.4 nozzle", + "Prusa CORE One L 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PETG Pro @Prusa CORE One.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PETG Pro @Prusa CORE One.json new file mode 100644 index 0000000000..6eb05df53d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PETG Pro @Prusa CORE One.json @@ -0,0 +1,165 @@ +{ + "type": "filament", + "name": "INSLOGIC PETG Pro @Prusa CORE One", + "inherits": "INSLOGIC PETG Pro @base", + "from": "system", + "setting_id": "yHUGQJhN0HUa7A5V", + "instantiation": "true", + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "overhang_fan_speed": [ + "100" + ], + "chamber_minimal_temperature": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "0" + ], + "filament_end_gcode": [ + "; Filament-specific end gcode" + ], + "filament_flow_ratio": [ + "0.99" + ], + "fan_cooling_layer_time": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "10" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_ramming_parameters": [ + "250 100 40.1613 40.3548 40.4516 40.3548 40.2581| 0.05 40.1483 0.45 40.3419 0.95 40.3419 1.45 40.3419 1.95 40.3419 2.45 40.3419 2.95 40.3419 3.45 40.3419 3.95 40.3419 4.45 40.3419 4.95 40.3419" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_restart_extra_toolchange": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unloading_speed": [ + "100" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_wipe": [ + "nil" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "170" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "15" + ], + "filament_start_gcode": [ + "" + ], + "nozzle_temperature": [ + "250" + ], + "compatible_printers": [ + "Prusa CORE One 0.4 nozzle", + "Prusa CORE One L 0.4 nozzle" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PLA Pro @Prusa CORE One.json b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PLA Pro @Prusa CORE One.json new file mode 100644 index 0000000000..f670bd71b0 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/INSLOGIC/Prusa/INSLOGIC PLA Pro @Prusa CORE One.json @@ -0,0 +1,165 @@ +{ + "type": "filament", + "name": "INSLOGIC PLA Pro @Prusa CORE One", + "inherits": "INSLOGIC PLA Pro @base", + "from": "system", + "setting_id": "Qkscha5uuuFXbvbB", + "instantiation": "true", + "hot_plate_temp": [ + "55" + ], + "hot_plate_temp_initial_layer": [ + "55" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "overhang_fan_speed": [ + "100" + ], + "chamber_minimal_temperature": [ + "0" + ], + "chamber_temperature": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "close_fan_the_first_x_layers": [ + "0" + ], + "filament_end_gcode": [ + "; Filament-specific end gcode" + ], + "filament_flow_ratio": [ + "0.99" + ], + "fan_cooling_layer_time": [ + "100" + ], + "filament_cooling_final_speed": [ + "3.5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_moves": [ + "2" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_loading_speed": [ + "10" + ], + "filament_loading_speed_start": [ + "50" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_multitool_ramming": [ + "0" + ], + "filament_multitool_ramming_flow": [ + "10" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_ramming_parameters": [ + "250 100 40.1613 40.3548 40.4516 40.3548 40.2581| 0.05 40.1483 0.45 40.3419 0.95 40.3419 1.45 40.3419 1.95 40.3419 2.45 40.3419 2.95 40.3419 3.45 40.3419 3.95 40.3419 4.45 40.3419 4.95 40.3419" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retract_length_toolchange": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_retract_lift_above": [ + "nil" + ], + "filament_retract_lift_below": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_restart_extra_toolchange": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "filament_toolchange_delay": [ + "0" + ], + "filament_unloading_speed": [ + "100" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_wipe": [ + "nil" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "full_fan_speed_layer": [ + "0" + ], + "idle_temperature": [ + "170" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "15" + ], + "filament_start_gcode": [ + "" + ], + "nozzle_temperature": [ + "210" + ], + "compatible_printers": [ + "Prusa CORE One 0.4 nozzle", + "Prusa CORE One L 0.4 nozzle" + ] +} From c5f92578787a96b7a9c8b89f2d5100f2cc3b860c Mon Sep 17 00:00:00 2001 From: yw4z <ywsyildiz@gmail.com> Date: Fri, 18 Sep 2026 18:43:42 +0300 Subject: [PATCH 34/76] Compact bbl nozzle UI (#15083) * init * drop usage of StaticGroup for ExtruderGroup * completely remove StaticGroup from project * fix alignment of "Not installed" text * fix crash on linux while clicking edit button * Fix background color on macOS --------- Co-authored-by: Noisyfox <timemanager.rick@gmail.com> --- resources/images/edit_12px.svg | 1 + src/slic3r/CMakeLists.txt | 2 - src/slic3r/GUI/Plater.cpp | 195 +++++++++++---------- src/slic3r/GUI/Widgets/MultiNozzleSync.cpp | 46 +++-- src/slic3r/GUI/Widgets/MultiNozzleSync.hpp | 6 +- src/slic3r/GUI/Widgets/StaticBox.cpp | 12 +- src/slic3r/GUI/Widgets/StaticBox.hpp | 3 + src/slic3r/GUI/Widgets/StaticGroup.cpp | 28 --- src/slic3r/GUI/Widgets/StaticGroup.hpp | 19 -- 9 files changed, 157 insertions(+), 155 deletions(-) create mode 100644 resources/images/edit_12px.svg delete mode 100644 src/slic3r/GUI/Widgets/StaticGroup.cpp delete mode 100644 src/slic3r/GUI/Widgets/StaticGroup.hpp diff --git a/resources/images/edit_12px.svg b/resources/images/edit_12px.svg new file mode 100644 index 0000000000..b77ddc2b4e --- /dev/null +++ b/resources/images/edit_12px.svg @@ -0,0 +1 @@ +<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12"><path d="M11.5,5.5v5c0,.55-.45,1-1,1H1.5c-.55,0-1-.45-1-1V1.5C.5.95.95.5,1.5.5h5M3.5,6.5v2h2l5.59-5.59c.55-.55.55-1.45,0-2s-1.45-.55-2,0L3.5,6.5Z" style="fill:none; stroke:#949494; stroke-linecap:square; stroke-linejoin:round;"/></svg> \ No newline at end of file diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 36274669b0..18730b248b 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -14,8 +14,6 @@ set(SLIC3R_GUI_SOURCES GUI/2DBed.hpp GUI/3DBed.cpp GUI/3DBed.hpp - GUI/Widgets/StaticGroup.cpp - GUI/Widgets/StaticGroup.hpp GUI/3DScene.cpp GUI/3DScene.hpp GUI/Widgets/FilamentLoad.cpp diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 1cdf7204df..502265af00 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -148,7 +148,6 @@ #include "Widgets/RadioGroup.hpp" #include "Widgets/CheckBox.hpp" #include "Widgets/Button.hpp" -#include "Widgets/StaticGroup.hpp" #include "GUI_ObjectTable.hpp" #include "libslic3r/Thread.hpp" @@ -475,14 +474,9 @@ enum class ActionButtonType : int { abSendGCode }; -// Background for the extruder-group title chip and its edit buttons, matching the StaticGroup -// interior. macOS keeps a lighter #F7F7F7 tint in light mode; dark mode uses the mapped colour. +// Background for the extruder-group title chip and its edit buttons static wxColour extruder_group_chip_bg() { -#ifdef __WXOSX__ - if (!wxGetApp().dark_mode()) - return wxColour("#F7F7F7"); -#endif return StateColor::darkModeColorFor(*wxWHITE); } @@ -497,38 +491,39 @@ public: SetBackgroundColour(extruder_group_chip_bg()); auto sizer = new wxBoxSizer(wxHORIZONTAL); + auto label_color = StateColor::darkModeColorFor(wxColour("#363636")); + m_label = new wxStaticText(this, wxID_ANY, label, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); - m_label->SetFont(Label::Body_13); - m_label->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#6B6B6B"))); + m_label->SetFont(Label::Body_12); + m_label->SetForegroundColour(label_color); m_brace_left = new wxStaticText(this, wxID_ANY, "(", wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); - m_brace_left->SetFont(Label::Body_13); - m_brace_left->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30"))); + m_brace_left->SetFont(Label::Body_12); + m_brace_left->SetForegroundColour(label_color); m_brace_left->Hide(); m_count = new wxStaticText(this, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); - m_count->SetFont(Label::Body_13.Bold()); - m_count->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30"))); + m_count->SetFont(Label::Body_12.Bold()); + m_count->SetForegroundColour(label_color); m_count->Hide(); m_brace_right = new wxStaticText(this, wxID_ANY, ")", wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); - m_brace_right->SetFont(Label::Body_13); - m_brace_right->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30"))); + m_brace_right->SetFont(Label::Body_12); + m_brace_right->SetForegroundColour(label_color); m_brace_right->Hide(); - m_hover_btn = new ScalableButton(this, wxID_ANY, "dot"); - m_hover_btn->SetMinSize(wxSize(FromDIP(25), -1)); + m_hover_btn = new ScalableButton(this, wxID_ANY, "edit_12px", wxEmptyString, FromDIP(wxSize(12,12)), wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 12); m_hover_btn->SetBackgroundColour(extruder_group_chip_bg()); m_hover_btn->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this](auto &evt) { if (m_enabled && m_hover_on_click) m_hover_on_click(); }); - sizer->Add(m_label, 0, wxALIGN_CENTER_VERTICAL); - sizer->Add(m_brace_left, 0, wxALIGN_CENTER_VERTICAL); - sizer->Add(m_count, 0, wxALIGN_CENTER_VERTICAL); + sizer->Add(m_label , 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, FromDIP(4)); + sizer->Add(m_brace_left , 0, wxALIGN_CENTER_VERTICAL); + sizer->Add(m_count , 0, wxALIGN_CENTER_VERTICAL); sizer->Add(m_brace_right, 0, wxALIGN_CENTER_VERTICAL); - sizer->Add(m_hover_btn, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, FromDIP(5)); + sizer->Add(m_hover_btn , 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, FromDIP(4)); // No SetSizerAndFit: that would record the count-hidden width as an explicit min size, // which outranks best size in sizer allocation, so once the count is shown any ancestor @@ -540,7 +535,7 @@ public: void EnableEdit(bool enable) { m_enabled = enable; - m_hover_btn->SetBitmap_(enable ? "edit" : "dot"); + //m_hover_btn->SetBitmap_(enable ? "edit_12px" : "dot"); // it causes crash if icon sizes not matches } void SetOnHoverClick(std::function<void()> on_click) { m_hover_on_click = std::move(on_click); } @@ -551,11 +546,13 @@ public: m_count->Hide(); m_brace_left->Hide(); m_brace_right->Hide(); + m_hover_btn->Hide(); } else { m_count->SetLabel(wxString::Format("%d", count)); m_count->Show(); m_brace_left->Show(); m_brace_right->Show(); + m_hover_btn->Show(); } UpdateSizing(); } @@ -566,15 +563,19 @@ public: UpdateSizing(); } - void Rescale() { m_hover_btn->msw_rescale(); } + void Rescale() { + m_hover_btn->msw_rescale(); + UpdateSizing(); + } // Re-apply the chip colours on a live light/dark switch (they are set once at construction). void sys_color_changed() { SetBackgroundColour(extruder_group_chip_bg()); - m_label->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#6B6B6B"))); + auto label_color = StateColor::darkModeColorFor(wxColour("#363636")); + m_label->SetForegroundColour(label_color); for (wxStaticText *t : {m_brace_left, m_count, m_brace_right}) - t->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30"))); + t->SetForegroundColour(label_color); m_hover_btn->SetBackgroundColour(extruder_group_chip_bg()); Refresh(); } @@ -601,11 +602,12 @@ private: bool m_enabled{false}; }; -struct ExtruderGroup : StaticGroup +struct ExtruderGroup : StaticBox { ExtruderGroup(wxWindow * parent, int index, wxString const &title); - wxStaticBoxSizer *sizer = nullptr; + wxBoxSizer * sizer = nullptr; HoverLabel * hover_label = nullptr; + wxStaticText* ams_label{nullptr}; ScalableButton * btn_edit = nullptr; ComboBox * combo_diameter = nullptr; ComboBox * combo_flow = nullptr; @@ -645,8 +647,10 @@ struct ExtruderGroup : StaticGroup { if (hover_label) hover_label->Rescale(); - if (btn_edit) + if (btn_edit){ btn_edit->msw_rescale(); + btn_edit->SetMinSize(ams_label->GetSize()); + } btn_up->msw_rescale(); btn_down->msw_rescale(); combo_diameter->Rescale(); @@ -861,9 +865,9 @@ void Sidebar::priv::layout_printer(bool isBBL, bool isDual) // double extruder_dual_sizer = new wxBoxSizer(wxHORIZONTAL); - extruder_dual_sizer->Add(left_extruder->sizer, 1, wxEXPAND, 0); + extruder_dual_sizer->Add(left_extruder, 1, wxEXPAND, 0); extruder_dual_sizer->AddSpacer(FromDIP(4)); - extruder_dual_sizer->Add(right_extruder->sizer, 1, wxEXPAND, 0); + extruder_dual_sizer->Add(right_extruder, 1, wxEXPAND, 0); // Filament Track Switch status icon, floated over the extruder AMS area (positioned in // update_extruder_separator_icon). Created hidden; a click re-shows the ready/not-ready tip. @@ -878,7 +882,9 @@ void Sidebar::priv::layout_printer(bool isBBL, bool isDual) } // single - extruder_single_sizer = single_extruder->sizer; + extruder_single_sizer = new wxBoxSizer(wxHORIZONTAL); + extruder_single_sizer->Add(single_extruder, 1, wxEXPAND, 0); + wxBoxSizer * extruder_sizer = new wxBoxSizer(wxVERTICAL); extruder_sizer->Add(extruder_dual_sizer , 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(SidebarProps::ContentMargin())); extruder_sizer->Add(extruder_single_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(SidebarProps::ContentMargin())); @@ -1256,7 +1262,7 @@ public: Bind(wxEVT_PAINT, [this](wxPaintEvent& evt) { wxPaintDC dc(this); - dc.SetPen(StateColor::darkModeColorFor(wxColour("#DBDBDB"))); // ORCA match popup border color + dc.SetPen(StateColor::darkModeColorFor(wxColour("#009688"))); // ORCA match popup border color dc.SetBrush(*wxTRANSPARENT_BRUSH); dc.DrawRoundedRectangle(0, 0, GetSize().x, GetSize().y, 0); }); @@ -1310,29 +1316,25 @@ public: }; ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title) - : StaticGroup(parent, wxID_ANY, wxString()) + : StaticBox(parent) { SetFont(Label::Body_10); SetForegroundColour(wxColour("#CECECE")); SetBorderColor(wxColour("#EEEEEE")); SetCornerRadius(FromDIP(PRINTER_PANEL_RADIUS)); // ORCA match radius with other boxes ShowBadge(true); + SetTopMargin(FromDIP(7)); // ORCA - // The title lives in an interactive row inside the card (with the nozzle-count badge and its edit - // button) instead of being painted on the border by StaticGroup. + // The title lives in an interactive row inside the card (with the nozzle-count badge and its edit button) hover_label = new HoverLabel(this, title); + hover_label->SetPosition(wxPoint(FromDIP(PRINTER_PANEL_RADIUS), 0)); // position it without putting in a sizer so it will look like title // Nozzle - wxStaticText *label_diameter = new wxStaticText(this, wxID_ANY, _L("Diameter")); - label_diameter->SetFont(Label::Body_14); - label_diameter->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30"))); - if (index >= 0) label_diameter->SetMinSize({FromDIP(80), -1}); auto combo_diameter = new ComboBox(this, wxID_ANY, wxString(""), wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY); this->combo_diameter = combo_diameter; - wxStaticText *label_flow = new wxStaticText(this, wxID_ANY, _L("Flow")); - label_flow->SetFont(Label::Body_14); - label_flow->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30"))); - if (index >= 0) label_flow->SetMinSize({FromDIP(80), -1}); + combo_diameter->SetToolTip(_L("Diameter")); + + // Flow auto combo_flow = new ComboBox(this, wxID_ANY, wxString(""), wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY); combo_flow->GetDropDown().SetUseContentWidth(true); combo_flow->Bind(wxEVT_COMBOBOX, [index, combo_flow](wxCommandEvent &evt) { @@ -1349,51 +1351,75 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title } }); this->combo_flow = combo_flow; + combo_flow->SetToolTip(_L("Flow")); // AMS - wxStaticText *label_ams = new wxStaticText(this, wxID_ANY, _L("AMS")); - label_ams->SetFont(Label::Body_14); - label_ams->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30"))); - //label_ams->SetMinSize({FromDIP(70), -1}); + auto ams_panel = new wxPanel(this, wxID_ANY); + ams_panel->SetBackgroundColour(*wxWHITE); + + ams_label = new wxStaticText(ams_panel, wxID_ANY, _L("AMS")); + ams_label->SetFont(Label::Body_14); + ams_label->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#363636"))); + + // AMS not installed message + ams_not_installed_msg = new wxStaticText(ams_panel, wxID_ANY, _L("Not installed")); + ams_not_installed_msg->SetFont(Label::Body_14); + ams_not_installed_msg->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#6B6B6B"))); + if (index >= 0) { - btn_edit = new ScalableButton(this, wxID_ANY, "dot"); + btn_edit = new ScalableButton(ams_panel, wxID_ANY, "edit"); + btn_edit->SetMinSize(ams_label->GetSize()); btn_edit->SetBackgroundColour(extruder_group_chip_bg()); btn_edit->Hide(); - btn_edit->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this, index](auto &evt) { + btn_edit->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this, index, combo_diameter](auto &evt) { PopupWindow *window = new AMSCountPopupWindow(this, index); - auto size = GetSize(); - auto pos = ClientToScreen({0, size.y + 12}); + auto size = GetSize(); + auto pos = ClientToScreen({0, size.y - FromDIP(8) - combo_diameter->GetSize().y}); size.SetWidth(size.GetWidth() + FromDIP(10)); window->Position(pos, {0, 0}); window->Popup(); }); auto hovered = std::make_shared<wxWindow *>(); - for (wxWindow *w : std::initializer_list<wxWindow *>{this, label_diameter, combo_diameter, label_flow, combo_flow, btn_edit, label_ams}) { - w->Bind(wxEVT_ENTER_WINDOW, [w, hovered, this](wxMouseEvent &evt) { *hovered = w; btn_edit->SetBitmap_("edit"); }); - w->Bind(wxEVT_LEAVE_WINDOW, [w, hovered, this](wxMouseEvent &evt) { if (*hovered == w) { btn_edit->SetBitmap_("dot"); *hovered = nullptr; } }); + for (wxWindow *w : std::initializer_list<wxWindow *>{this, btn_edit, ams_not_installed_msg, ams_label, ams_panel}) { + // ORCA using CallAfter fixes crash on linux while clicking edit button + w->Bind(wxEVT_ENTER_WINDOW, [w, hovered, this](wxMouseEvent &evt) { + *hovered = w; + this->CallAfter([this]() { + btn_edit->Show(); + ams_label->Hide(); + hsizer_ams->Layout(); + }); + }); + w->Bind(wxEVT_LEAVE_WINDOW, [w, hovered, this](wxMouseEvent &evt) { + if (*hovered == w) { + *hovered = nullptr; + this->CallAfter([this]() { + btn_edit->Hide(); + ams_label->Show(); + hsizer_ams->Layout(); + }); + } + }); } } - // AMS not installed message - ams_not_installed_msg = new wxStaticText(this, wxID_ANY, _L("Not installed")); - ams_not_installed_msg->SetFont(Label::Body_14); - ams_not_installed_msg->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30"))); - // AMS group for (size_t i = 0; i < 4; ++i) { - ams[i] = new AMSPreview(this, wxID_ANY, AMSinfo(), AMSModel::GENERIC_AMS); + ams[i] = new AMSPreview(ams_panel, wxID_ANY, AMSinfo(), AMSModel::GENERIC_AMS); ams[i]->Close(); } hsizer_ams = new wxBoxSizer(wxHORIZONTAL); hsizer_ams->SetMinSize(0, ams[0]->GetMinHeight()); - hsizer_ams->Add(label_ams, 0, wxALIGN_CENTER); + hsizer_ams->Add(ams_label, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(5)); if (btn_edit) - hsizer_ams->Add(btn_edit, 0, wxLEFT | wxALIGN_CENTER, FromDIP(2)); - hsizer_ams->Add(ams_not_installed_msg, 0, wxALIGN_CENTER); + hsizer_ams->Add(btn_edit, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(5)); + hsizer_ams->Add(ams_not_installed_msg, 1, wxALIGN_CENTER); - btn_up = new ScalableButton(this, wxID_ANY, "page_up", "", {FromDIP(14), FromDIP(14)}, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 14); + ams_panel->SetSizer(hsizer_ams); + + btn_up = new ScalableButton(ams_panel, wxID_ANY, "page_up", "", {FromDIP(14), FromDIP(14)}, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 14); btn_up->SetBackgroundColour(*wxWHITE); btn_up->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this](auto &evt) { if (page_cur > 0) @@ -1401,7 +1427,7 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title update_ams(); }); btn_up->Hide(); - btn_down = new ScalableButton(this, wxID_ANY, "page_down", "", {FromDIP(14), FromDIP(14)}, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 14); + btn_down = new ScalableButton(ams_panel, wxID_ANY, "page_down", "", {FromDIP(14), FromDIP(14)}, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER, false, 14); btn_down->SetBackgroundColour(*wxWHITE); btn_down->Bind(wxEVT_COMMAND_BUTTON_CLICKED, [this](auto &evt) { if (page_cur + 1 < page_num) @@ -1410,31 +1436,24 @@ ExtruderGroup::ExtruderGroup(wxWindow * parent, int index, wxString const &title }); btn_down->Hide(); - wxBoxSizer *hsizer_diameter = new wxBoxSizer(wxHORIZONTAL); - hsizer_diameter->Add(label_diameter, 0, wxALIGN_CENTER); - hsizer_diameter->Add(combo_diameter, 1, wxEXPAND); - wxBoxSizer * hsizer_nozzle = new wxBoxSizer(wxHORIZONTAL); - hsizer_nozzle->Add(label_flow, 0, wxALIGN_CENTER); - hsizer_nozzle->Add(combo_flow, 1, wxEXPAND); + wxBoxSizer *vsizer = new wxBoxSizer(wxVERTICAL); + wxBoxSizer *hsizer = new wxBoxSizer(wxHORIZONTAL); + + hsizer->Add(combo_diameter, 1, wxRIGHT, FromDIP(5)); + hsizer->Add(combo_flow , 1); + + vsizer->AddSpacer(FromDIP(16)); // spacing for title and control if (index < 0) { - label_ams->Hide(); - ams_not_installed_msg->Hide(); - wxStaticBoxSizer *vsizer = new wxStaticBoxSizer(this, wxVERTICAL); - wxBoxSizer *hsizer = new wxBoxSizer(wxHORIZONTAL); - hsizer->Add(hsizer_diameter, 1, wxEXPAND | wxTOP| wxBOTTOM, FromDIP(8)); - hsizer->Add(hsizer_nozzle, 1, wxEXPAND | wxALL, FromDIP(8)); - hsizer->AddSpacer(FromDIP(2)); // Avoid badge - vsizer->Add(hover_label, 0, wxLEFT | wxALL, FromDIP(2)); - vsizer->Add(hsizer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(2)); - this->sizer = vsizer; + ams_panel->Hide(); } else { - wxStaticBoxSizer *vsizer = new wxStaticBoxSizer(this, wxVERTICAL); - vsizer->Add(hover_label, 0, wxLEFT | wxALL, FromDIP(2)); - vsizer->Add(hsizer_ams, 0, wxEXPAND | wxLEFT | wxTOP | wxRIGHT, FromDIP(2)); - vsizer->Add(hsizer_diameter, 0, wxEXPAND | wxLEFT | wxTOP | wxRIGHT, FromDIP(2)); - vsizer->Add(hsizer_nozzle, 0, wxEXPAND | wxALL, FromDIP(2)); - this->sizer = vsizer; + vsizer->Add(ams_panel, 0, wxEXPAND | wxLEFT | wxRIGHT , FromDIP(5)); + vsizer->AddSpacer(FromDIP(2)); } + vsizer->Add(hsizer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, FromDIP(5)); + + SetSizer(vsizer); + Layout(); + AMSCountPopupWindow::UpdateAMSCount(index < 0 ? 0 : index, this); } @@ -1505,7 +1524,7 @@ void ExtruderGroup::update_ams() } } - sizer->Layout(); + Layout(); } void ExtruderGroup::sync_ams(MachineObject const *obj, std::vector<DevAms *> const &ams4, std::vector<DevAms *> const &ams1) diff --git a/src/slic3r/GUI/Widgets/MultiNozzleSync.cpp b/src/slic3r/GUI/Widgets/MultiNozzleSync.cpp index 9278565c47..316389d65c 100644 --- a/src/slic3r/GUI/Widgets/MultiNozzleSync.cpp +++ b/src/slic3r/GUI/Widgets/MultiNozzleSync.cpp @@ -9,6 +9,7 @@ #include "../wxExtensions.hpp" #include "Button.hpp" #include "Label.hpp" +#include "ComboBox.hpp" #include "StaticBox.hpp" #include "libslic3r/PresetBundle.hpp" #include "libslic3r/Utils.hpp" @@ -77,13 +78,16 @@ ManualNozzleCountDialog::ManualNozzleCountDialog( wxPanel *content = new wxPanel(this); content->SetBackgroundColour(*wxWHITE); - wxBitmap nozzle_bmp = create_scaled_bitmap("hotend_thumbnail", nullptr, FromDIP(60)); + wxBitmap nozzle_bmp = create_scaled_bitmap("hotend_thumbnail", nullptr, 60); auto *nozzle_icon = new wxStaticBitmap(content, wxID_ANY, nozzle_bmp); wxBoxSizer *content_sizer = new wxBoxSizer(wxHORIZONTAL); content->SetSizer(content_sizer); wxBoxSizer *choice_sizer = new wxBoxSizer(wxVERTICAL); - choice_sizer->Add(new wxStaticText(content, wxID_ANY, _L("Please set nozzle count")), 0, wxALL | wxALIGN_LEFT, FromDIP(10)); + auto nozzle_label = new wxStaticText(content, wxID_ANY, _L("Please set nozzle count")); + nozzle_label->SetFont(Label::Body_14); + nozzle_label->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30"))); + choice_sizer->Add(nozzle_label, 0, wxTOP | wxRIGHT, FromDIP(15)); wxArrayString nozzle_choices; for (int i = 0; i <= max_nozzle_count; ++i) @@ -92,16 +96,32 @@ ManualNozzleCountDialog::ManualNozzleCountDialog( // A Hybrid extruder mixes Standard and High Flow nozzles, so it gets both count choices; the concrete // types get exactly one. if (volume_type == nvtStandard || volume_type == nvtHybrid) { - choice_sizer->Add(new wxStaticText(content, wxID_ANY, _L(get_nozzle_volume_type_string(nvtStandard))), 0, wxALL | wxALIGN_LEFT, FromDIP(5)); - m_standard_choice = new wxChoice(content, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(100), -1), nozzle_choices); + wxBoxSizer *standard_sizer = new wxBoxSizer(wxHORIZONTAL); + auto standard_label = new wxStaticText(content, wxID_ANY, _L(get_nozzle_volume_type_string(nvtStandard)), wxDefaultPosition, wxSize(FromDIP(100), -1)); + standard_label->SetFont(Label::Body_14); + standard_label->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#363636"))); + standard_sizer->Add(standard_label, 0, wxALIGN_CENTER_VERTICAL); + m_standard_choice = new ComboBox(content, wxID_ANY, "", wxDefaultPosition, wxSize(FromDIP(80), -1), 0, nullptr, wxCB_READONLY); + std::vector<wxString>::iterator iter; + for (iter = nozzle_choices.begin(); iter != nozzle_choices.end(); iter++) + m_standard_choice->Append(*iter); m_standard_choice->SetSelection(standard_count); - choice_sizer->Add(m_standard_choice, 0, wxLEFT | wxBOTTOM | wxRIGHT, FromDIP(10)); + standard_sizer->Add(m_standard_choice, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(5)); + choice_sizer->Add(standard_sizer, 0, wxTOP | wxRIGHT, FromDIP(15)); } if (volume_type == nvtHighFlow || volume_type == nvtHybrid) { - choice_sizer->Add(new wxStaticText(content, wxID_ANY, _L(get_nozzle_volume_type_string(nvtHighFlow))), 0, wxALL | wxALIGN_LEFT, FromDIP(5)); - m_highflow_choice = new wxChoice(content, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(100), -1), nozzle_choices); + wxBoxSizer *highflow_sizer = new wxBoxSizer(wxHORIZONTAL); + auto highflow_label = new wxStaticText(content, wxID_ANY, _L(get_nozzle_volume_type_string(nvtHighFlow)), wxDefaultPosition, wxSize(FromDIP(100), -1)); + highflow_label->SetFont(Label::Body_14); + highflow_label->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#363636"))); + highflow_sizer->Add(highflow_label, 0, wxALIGN_CENTER_VERTICAL); + m_highflow_choice = new ComboBox(content, wxID_ANY, "", wxDefaultPosition, wxSize(FromDIP(80), -1), 0, nullptr, wxCB_READONLY); + std::vector<wxString>::iterator iter; + for (iter = nozzle_choices.begin(); iter != nozzle_choices.end(); iter++) + m_highflow_choice->Append(*iter); m_highflow_choice->SetSelection(highflow_count); - choice_sizer->Add(m_highflow_choice, 0, wxLEFT | wxBOTTOM | wxRIGHT, FromDIP(10)); + highflow_sizer->Add(m_highflow_choice, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(5)); + choice_sizer->Add(highflow_sizer, 0, wxTOP | wxRIGHT, FromDIP(15)); } m_error_label = new wxStaticText(this, wxID_ANY, ""); @@ -128,12 +148,12 @@ ManualNozzleCountDialog::ManualNozzleCountDialog( }; if (m_standard_choice) - m_standard_choice->Bind(wxEVT_CHOICE, [this, update_nozzle_error](wxCommandEvent &e) { + m_standard_choice->Bind(wxEVT_COMBOBOX, [this, update_nozzle_error](wxCommandEvent &e) { update_nozzle_error(m_standard_choice->GetSelection(), m_highflow_choice ? m_highflow_choice->GetSelection() : 0); e.Skip(); }); if (m_highflow_choice) - m_highflow_choice->Bind(wxEVT_CHOICE, [this, update_nozzle_error](wxCommandEvent &e) { + m_highflow_choice->Bind(wxEVT_COMBOBOX, [this, update_nozzle_error](wxCommandEvent &e) { update_nozzle_error(m_standard_choice ? m_standard_choice->GetSelection() : 0, m_highflow_choice->GetSelection()); e.Skip(); }); @@ -142,13 +162,13 @@ ManualNozzleCountDialog::ManualNozzleCountDialog( content_sizer->Add(choice_sizer, 0, wxALIGN_CENTRE_VERTICAL); m_confirm_btn = new Button(this, _L("Confirm")); - m_confirm_btn->SetStyle(ButtonStyle::Confirm, ButtonType::Window); + m_confirm_btn->SetStyle(ButtonStyle::Confirm, ButtonType::Choice); m_confirm_btn->Bind(wxEVT_BUTTON, [this](wxCommandEvent &) { EndModal(wxID_OK); }); wxBoxSizer *main_sizer = new wxBoxSizer(wxVERTICAL); main_sizer->Add(content, 1, wxEXPAND); - main_sizer->Add(m_error_label, 0, wxALL, FromDIP(5)); - main_sizer->Add(m_confirm_btn, 0, wxALIGN_CENTER_HORIZONTAL | wxBOTTOM, FromDIP(20)); + main_sizer->Add(m_error_label, 0, wxALIGN_RIGHT | wxALL, FromDIP(5)); + main_sizer->Add(m_confirm_btn, 0, wxALIGN_RIGHT | wxALL, FromDIP(15)); SetSizerAndFit(main_sizer); CentreOnParent(); diff --git a/src/slic3r/GUI/Widgets/MultiNozzleSync.hpp b/src/slic3r/GUI/Widgets/MultiNozzleSync.hpp index 3e2e41ccb7..5a3e9374a7 100644 --- a/src/slic3r/GUI/Widgets/MultiNozzleSync.hpp +++ b/src/slic3r/GUI/Widgets/MultiNozzleSync.hpp @@ -31,12 +31,12 @@ #include <unordered_map> #include <vector> -class wxChoice; class wxStaticText; class wxStaticBitmap; class Button; // global widget (src/slic3r/GUI/Widgets/Button.hpp), not in the Slic3r::GUI namespace class Label; // global widget (src/slic3r/GUI/Widgets/Label.hpp) class StaticBox; +class ComboBox; namespace Slic3r { class PresetBundle; @@ -70,8 +70,8 @@ public: int GetNozzleCount(NozzleVolumeType volume_type) const; private: - wxChoice *m_standard_choice{nullptr}; - wxChoice *m_highflow_choice{nullptr}; + ComboBox *m_standard_choice{nullptr}; + ComboBox *m_highflow_choice{nullptr}; Button *m_confirm_btn{nullptr}; wxStaticText *m_error_label{nullptr}; }; diff --git a/src/slic3r/GUI/Widgets/StaticBox.cpp b/src/slic3r/GUI/Widgets/StaticBox.cpp index f6e7ca67f6..75953ceb3f 100644 --- a/src/slic3r/GUI/Widgets/StaticBox.cpp +++ b/src/slic3r/GUI/Widgets/StaticBox.cpp @@ -53,6 +53,13 @@ void StaticBox::SetCornerRadius(double radius) Refresh(); } +// ORCA use when adding widgets to top to show it like LabeledStaticBox +void StaticBox::SetTopMargin(int margin) +{ + this->top_margin = margin; + Refresh(); +} + void StaticBox::SetBorderStyle(wxPenStyle style) { border_style = style; @@ -198,7 +205,8 @@ void StaticBox::doRender(wxDC& dc) int states = state_handler.states(); if (background_color2.count() == 0) { if ((border_width && border_color.count() > 0) || background_color.count() > 0) { - wxRect rc(0, 0, size.x, size.y); + int topM = top_margin > 0 ? top_margin : 0; + wxRect rc(0, topM, size.x, size.y - topM); if (border_width && border_color.count() > 0) { const double scale = dc.GetContentScaleFactor(); @@ -245,6 +253,6 @@ void StaticBox::doRender(wxDC& dc) if (badge.bmp().IsOk()) { auto s = badge.bmp().GetScaledSize(); - dc.DrawBitmap(badge.bmp(), size.x - s.x, 0); + dc.DrawBitmap(badge.bmp(), size.x - s.x, top_margin > 0 ? top_margin : 0); } } diff --git a/src/slic3r/GUI/Widgets/StaticBox.hpp b/src/slic3r/GUI/Widgets/StaticBox.hpp index 363d431c8e..b41c18ccfd 100644 --- a/src/slic3r/GUI/Widgets/StaticBox.hpp +++ b/src/slic3r/GUI/Widgets/StaticBox.hpp @@ -27,6 +27,8 @@ public: void SetBorderWidth(int width); + void SetTopMargin(int margin); // ORCA + void SetBorderColor(StateColor const & color); void SetBorderColorNormal(wxColor const &color); @@ -57,6 +59,7 @@ protected: protected: double radius; int border_width = 1; + int top_margin = 1; wxPenStyle border_style = wxPENSTYLE_SOLID; StateHandler state_handler; StateColor border_color; diff --git a/src/slic3r/GUI/Widgets/StaticGroup.cpp b/src/slic3r/GUI/Widgets/StaticGroup.cpp deleted file mode 100644 index 69f6137939..0000000000 --- a/src/slic3r/GUI/Widgets/StaticGroup.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#include "StaticGroup.hpp" - -StaticGroup::StaticGroup(wxWindow *parent, wxWindowID id, const wxString &label) - : LabeledStaticBox(parent, label) -{ - SetBackgroundColour(*wxWHITE); - SetForegroundColour("#CECECE"); -} - -void StaticGroup::ShowBadge(bool show) -{ - if (show && badge.name() != "badge") { - badge = ScalableBitmap(this, "badge", 18); - Refresh(); - } else if (!show && !badge.name().empty()) { - badge = ScalableBitmap{}; - Refresh(); - } -} - -void StaticGroup::DrawBorderAndLabel(wxDC& dc) -{ - LabeledStaticBox::DrawBorderAndLabel(dc); - if (badge.bmp().IsOk()) { - auto s = badge.bmp().GetScaledSize(); - dc.DrawBitmap(badge.bmp(), GetSize().x - s.x, std::max(0, m_pos.y) + m_label_height / 2); - } -} diff --git a/src/slic3r/GUI/Widgets/StaticGroup.hpp b/src/slic3r/GUI/Widgets/StaticGroup.hpp deleted file mode 100644 index 9c98a733b2..0000000000 --- a/src/slic3r/GUI/Widgets/StaticGroup.hpp +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef slic3r_GUI_StaticGroup_hpp_ -#define slic3r_GUI_StaticGroup_hpp_ - -#include "../wxExtensions.hpp" - -#include "LabeledStaticBox.hpp" - -class StaticGroup : public LabeledStaticBox -{ -public: - StaticGroup(wxWindow *parent, wxWindowID id, const wxString &label); - void ShowBadge(bool show); - -private: - void DrawBorderAndLabel(wxDC& dc) override; - ScalableBitmap badge; -}; - -#endif // !slic3r_GUI_StaticGroup_hpp_ From e573fc468050fcc5ee610184e9034b085636635e Mon Sep 17 00:00:00 2001 From: Kiss Lorand <50251547+kisslorand@users.noreply.github.com> Date: Fri, 18 Sep 2026 19:25:53 +0300 Subject: [PATCH 35/76] Align Publish 3MF dialog styling and fix tab-switch flicker (#15695) * Fix Publish 3MF dialog styling Use Orca's shared checkbox widget in the Publish 3MF dialog. Keep checkbox labels clickable, preserve toggle event propagation and disabled-row state, and use Windows-only double buffering on the tab page hosts to reduce flicker during page switches. Also align the dialog's guide-link color with existing Orca dialogs. * Fix Publish 3MF dialog styling Use Orca's shared checkbox widget in the Publish 3MF dialog. Keep checkbox labels clickable, preserve toggle event propagation and disabled-row state, and use Windows-only double buffering on the tab page hosts to reduce flicker during page switches. Also align the dialog's guide-link color with existing Orca dialogs. * match font size and left margins --------- Co-authored-by: yw4z <ywsyildiz@gmail.com> --- src/slic3r/GUI/PublishSettingsDialog.cpp | 144 ++++++++++++++++------- src/slic3r/GUI/PublishSettingsDialog.hpp | 10 +- 2 files changed, 109 insertions(+), 45 deletions(-) diff --git a/src/slic3r/GUI/PublishSettingsDialog.cpp b/src/slic3r/GUI/PublishSettingsDialog.cpp index 57818dca82..bd5c045053 100644 --- a/src/slic3r/GUI/PublishSettingsDialog.cpp +++ b/src/slic3r/GUI/PublishSettingsDialog.cpp @@ -8,6 +8,8 @@ #include "ConfigValueFormatter.hpp" #include "FilamentBitmapUtils.hpp" #include "Widgets/Label.hpp" +#include "Widgets/CheckBox.hpp" +#include "Widgets/HyperLink.hpp" #include "Widgets/TextInput.hpp" #include "Widgets/DialogButtons.hpp" #include "Widgets/StaticLine.hpp" @@ -39,6 +41,48 @@ namespace Slic3r { namespace GUI { namespace { +// Orca's bitmap checkbox has the established teal checked state on every platform. Keep the +// label separate so it stays clickable like a native wxCheckBox, while the control itself +// remains accessible by keyboard. +wxStaticText* add_checkbox_label(wxWindow* parent, + wxBoxSizer* sizer, + ::CheckBox* check, + const wxString& label, + const wxString& tooltip, + int label_width = 0) +{ + check->SetToolTip(tooltip); + sizer->Add(check, 0, wxALIGN_CENTER_VERTICAL | wxTOP | wxBOTTOM, parent->FromDIP(2)); + + auto* text = new wxStaticText(parent, wxID_ANY, label); + text->SetFont(Label::Body_14); + text->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#363636"))); + if (label_width > 0) { + text->SetMinSize(wxSize(label_width, -1)); + text->SetMaxSize(wxSize(label_width, -1)); + text->Wrap(label_width); + } + text->SetToolTip(tooltip); + text->SetCursor(wxCURSOR_HAND); + const auto toggle = [check]() { + if (!check->IsEnabled()) + return; + check->SetValue(!check->GetValue()); + wxCommandEvent event(wxEVT_TOGGLEBUTTON, check->GetId()); + event.SetEventObject(check); + check->GetEventHandler()->ProcessEvent(event); + }; + text->Bind(wxEVT_LEFT_DOWN, [toggle](wxMouseEvent& event) { + if (!event.LeftDClick()) + toggle(); + }); + text->Bind(wxEVT_LEFT_DCLICK, [toggle](wxMouseEvent&) { + toggle(); + }); + sizer->Add(text, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, parent->FromDIP(5)); + return text; +} + // Menu ids for show_menu(): dedicated range so the popup cannot collide with application-level // bindings (e.g. MainFrame's recent-files wxID_FILE1.. range). enum { @@ -649,6 +693,9 @@ PublishSettingsDialog::PublishSettingsDialog(wxWindow* parent, m_outer_tabs->SetBackgroundColour(GetBackgroundColour()); m_outer_host = new wxPanel(this, wxID_ANY); +#ifdef __WINDOWS__ + m_outer_host->SetDoubleBuffered(true); +#endif m_outer_host->SetBackgroundColour(GetBackgroundColour()); m_outer_host_sizer = new wxBoxSizer(wxVERTICAL); m_outer_host->SetSizer(m_outer_host_sizer); @@ -688,24 +735,22 @@ PublishSettingsDialog::PublishSettingsDialog(wxWindow* parent, dlg_btns->GetCANCEL()->Bind(wxEVT_BUTTON, [this](wxCommandEvent&) { EndModal(wxID_CANCEL); }); // Guide links, bottom-left, sharing the footer row with the OK/Cancel buttons (pushed right). - auto make_link = [this](const wxString& label, const char* url) { - wxStaticText* link = new wxStaticText(this, wxID_ANY, label); - link->SetFont(Label::Body_13); - link->SetForegroundColour(wxColour(0x1F, 0x8E, 0xEA)); - link->SetCursor(wxCURSOR_HAND); - link->Bind(wxEVT_LEFT_DOWN, [url](wxMouseEvent&) { wxLaunchDefaultBrowser(url, wxBROWSER_NEW_WINDOW); }); - return link; - }; wxBoxSizer* links_sizer = new wxBoxSizer(wxVERTICAL); - links_sizer->Add(make_link(_L("Publish 3MF Wiki"), "https://www.orcaslicer.com/wiki/publishing_3mf/publish_3mf.html"), 0, wxALIGN_LEFT); - links_sizer->Add(make_link(_L("Publish 3MF Video Guide"), "https://www.youtube.com/watch?v=-xt1N29UIOg"), 0, - wxTOP | wxALIGN_LEFT, FromDIP(4)); + auto* wiki_link = new HyperLink(this, _L("Wiki Guide"), "https://www.orcaslicer.com/wiki/publishing_3mf/publish_3mf.html"); + auto* video_link = new HyperLink(this, _L("Video Guide"), "https://www.youtube.com/watch?v=-xt1N29UIOg"); + links_sizer->Add(wiki_link , 0, wxALIGN_LEFT); + links_sizer->Add(video_link, 0, wxTOP | wxALIGN_LEFT, FromDIP(4)); wxBoxSizer* footer = new wxBoxSizer(wxHORIZONTAL); footer->Add(links_sizer, 0, wxALIGN_CENTER_VERTICAL); footer->AddStretchSpacer(); footer->Add(dlg_btns, 0, wxALIGN_CENTER_VERTICAL); - w_sizer->Add(footer, 0, wxRIGHT | wxLEFT | wxBOTTOM | wxEXPAND, FromDIP(10)); + auto* footer_line = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1)); + footer_line->SetBackgroundColour(wxColour("#CECECE")); + footer_line->SetMinSize(wxSize(-1, 1)); + footer_line->SetMaxSize(wxSize(-1, 1)); + w_sizer->Add(footer_line, 0, wxRIGHT | wxLEFT | wxTOP | wxEXPAND, FromDIP(10)); + w_sizer->Add(footer, 0, wxRIGHT | wxLEFT | wxTOP | wxBOTTOM | wxEXPAND, FromDIP(10)); SetSizerAndFit(w_sizer); fit_to_content(); // initial size only; the dialog is resizable @@ -718,14 +763,14 @@ PublishSettingsDialog::PublishSettingsDialog(wxWindow* parent, // Size the window to its content: width follows the widest tab strip so no filament tab is // hidden (TabCtrl::relayout hides overflowing buttons), height scales proportionally. Both -// are floored at the 600x500 base and capped at hard DIP limits - deliberately not the whole +// are floored at the 530x530 base and capped at hard DIP limits - deliberately not the whole // display - with one last-resort clamp so the dialog can never open larger than the screen. // Also owns the resize floor: the window cannot be resized below what the tabs need, so // shrinking never re-hides a filament tab. void PublishSettingsDialog::fit_to_content() { - static const wxSize BASE{600, 500}; - static const wxSize CAP{1300, 850}; + static const wxSize BASE{530, 530}; // base size in DIP, the minimum the dialog can shrink to + static const wxSize CAP{1300, 850}; // hard cap in DIP, the maximum the dialog can grow to int strip = m_outer_tabs->GetFullSize(); for (const SectionGroup& section : m_sections) { @@ -793,6 +838,8 @@ void PublishSettingsDialog::build_option_model() return false; value = get_string_value(opt_id, full); unit = _(def->sidetext); + if (unit == "%" && value.EndsWith("%")) + unit.clear(); return true; }; @@ -1005,13 +1052,19 @@ void PublishSettingsDialog::build_option_model() // stays valid even if the vector is reallocated later. for (size_t c = 0; c < m_categories.size(); ++c) if (m_categories[c].enable_check != nullptr) - m_categories[c].enable_check->Bind(wxEVT_CHECKBOX, [this, c](wxCommandEvent&) { on_enable_toggle(c); }); + m_categories[c].enable_check->Bind(wxEVT_TOGGLEBUTTON, [this, c](wxCommandEvent& event) { + on_enable_toggle(c); + event.Skip(); + }); // Wire the "Full Publish" checkboxes (physical slots): toggling one disables/enables the // material's rows. for (size_t c = 0; c < m_categories.size(); ++c) if (m_categories[c].full_check != nullptr) - m_categories[c].full_check->Bind(wxEVT_CHECKBOX, [this, c](wxCommandEvent&) { on_full_toggle(c); }); + m_categories[c].full_check->Bind(wxEVT_TOGGLEBUTTON, [this, c](wxCommandEvent& event) { + on_full_toggle(c); + event.Skip(); + }); // No filter is active at startup: every row matches until the user types. for (Row& row : m_rows) @@ -1074,6 +1127,9 @@ size_t PublishSettingsDialog::section_group_for(Section kind) section.mixed_tabs->Hide(); } section.page_host = new wxPanel(section.page, wxID_ANY); +#ifdef __WINDOWS__ + section.page_host->SetDoubleBuffered(true); +#endif section.page_host->SetBackgroundColour(GetBackgroundColour()); section.page_host_sizer = new wxBoxSizer(wxVERTICAL); section.page_host->SetSizer(section.page_host_sizer); @@ -1136,10 +1192,9 @@ size_t PublishSettingsDialog::category_index_for( if (is_mixed) { // No chip/title: the lone "Enable" checkbox tops the page. auto* enable_sizer = new wxBoxSizer(wxHORIZONTAL); - category.enable_check = new wxCheckBox(category.page, wxID_ANY, _L("Enable")); - category.enable_check->SetFont(Label::Body_13); - category.enable_check->SetToolTip(_L("Publish this mixed filament and enable + Full Publish its component filaments")); - enable_sizer->Add(category.enable_check, 0, wxALIGN_CENTER_VERTICAL); + category.enable_check = new ::CheckBox(category.page, wxID_ANY); + category.enable_label = add_checkbox_label(category.page, enable_sizer, category.enable_check, _L("Enable"), + _L("Publish this mixed filament and enable + Full Publish its component filaments")); page_sizer->Add(enable_sizer, 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, FromDIP(6)); } else { // Line 1: [chip] [title] [Enable]. The Enable checkbox gates the whole slot: while @@ -1152,19 +1207,19 @@ size_t PublishSettingsDialog::category_index_for( category.title_label = new wxStaticText(category.page, wxID_ANY, title); category.title_label->SetFont(Label::Head_14); header_sizer->Add(category.title_label, 0, wxALIGN_CENTER_VERTICAL); - category.enable_check = new wxCheckBox(category.page, wxID_ANY, _L("Enable")); - category.enable_check->SetFont(Label::Body_13); - category.enable_check->SetToolTip(_L("Publish this filament slot in the 3MF file")); - header_sizer->Add(category.enable_check, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(10)); + auto* enable_sizer = new wxBoxSizer(wxHORIZONTAL); + category.enable_check = new ::CheckBox(category.page, wxID_ANY); + category.enable_label = add_checkbox_label(category.page, enable_sizer, category.enable_check, _L("Enable"), + _L("Publish this filament slot in the 3MF file")); + header_sizer->Add(enable_sizer, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(10)); page_sizer->Add(header_sizer, 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, FromDIP(6)); // Line 2: the "Full Publish" toggle, on its own line below the title (hidden until // the slot is enabled), aligned with the colour chip above it. auto* full_sizer = new wxBoxSizer(wxHORIZONTAL); - category.full_check = new wxCheckBox(category.page, wxID_ANY, _L("Full Publish")); - category.full_check->SetFont(Label::Body_13); - category.full_check->SetToolTip(_L("Embed the entire filament of this slot in the 3MF file")); - full_sizer->Add(category.full_check, 0, wxALIGN_CENTER_VERTICAL); + category.full_check = new ::CheckBox(category.page, wxID_ANY); + category.full_label = add_checkbox_label(category.page, full_sizer, category.full_check, _L("Full Publish"), + _L("Embed the entire filament of this slot in the 3MF file")); category.full_line_item = page_sizer->Add(full_sizer, 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, FromDIP(6)); } } @@ -1180,7 +1235,7 @@ size_t PublishSettingsDialog::category_index_for( category.info->SetFont(Label::Body_13); category.list_sizer->Add(category.info, 1, wxALIGN_CENTER_HORIZONTAL | wxALL, FromDIP(10)); category.info->Hide(); - page_sizer->Add(category.scroll, 1, wxEXPAND | wxALL, FromDIP(4)); + page_sizer->Add(category.scroll, 1, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(4)); // A material slot starts disabled: its rows (and its Full Publish line) stay hidden until // "Enable" is checked. if (section == Section::Material) @@ -1241,7 +1296,7 @@ size_t PublishSettingsDialog::subcategory_index_for(size_t category_index, const sub.header->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#363636"))); auto* wrap = new wxBoxSizer(wxVERTICAL); wrap->Add(sub.header, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(6)); - sub.item = category.list_sizer->Add(wrap, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(22)); + sub.item = category.list_sizer->Add(wrap, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(5)); } category.subs.push_back(std::move(sub)); return category.subs.size() - 1; @@ -1271,15 +1326,18 @@ void PublishSettingsDialog::add_row_ui(const std::string& key, const size_t row_index = m_rows.size(); m_rows.push_back(std::move(row)); Row& current = m_rows[row_index]; - current.check = new wxCheckBox(category.scroll, wxID_ANY, label); - current.check->SetFont(Label::Body_13); - current.check->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent&) { refresh_tab_indicators(); }); + current.check = new ::CheckBox(category.scroll, wxID_ANY); + current.check->Bind(wxEVT_TOGGLEBUTTON, [this](wxCommandEvent& event) { + refresh_tab_indicators(); + event.Skip(); + }); auto* row_sizer = new wxBoxSizer(wxHORIZONTAL); - row_sizer->Add(current.check, 0, wxALIGN_CENTER_VERTICAL); + current.check_label = add_checkbox_label(category.scroll, row_sizer, current.check, label + ":", wxEmptyString, + 24 * wxGetApp().em_unit()); // The value is read-only text (incl. the Type row: the published type is the slot's // normalized type, not author-editable). current.value_label = new wxStaticText(category.scroll, wxID_ANY, value, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END); - current.value_label->SetFont(Label::Body_13); + current.value_label->SetFont(Label::Body_14); current.value_label->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#262E30"))); current.value_label->SetToolTip(unit.IsEmpty() ? value : value + " " + unit); if (kind == RowKind::Color && !value.IsEmpty()) { @@ -1290,14 +1348,14 @@ void PublishSettingsDialog::add_row_ui(const std::string& key, row_sizer->Add(current.color_chip, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(8)); } } - row_sizer->Add(current.value_label, 1, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(8)); + row_sizer->Add(current.value_label, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(8)); if (!unit.IsEmpty()) { current.unit_label = new wxStaticText(category.scroll, wxID_ANY, unit); - current.unit_label->SetFont(Label::Body_13); + current.unit_label->SetFont(Label::Body_14); current.unit_label->SetForegroundColour(StateColor::darkModeColorFor(wxColour("#6B6B6B"))); row_sizer->Add(current.unit_label, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, FromDIP(4)); } - current.item = category.list_sizer->Add(row_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(38)); + current.item = category.list_sizer->Add(row_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, FromDIP(5)); category.rows.push_back(row_index); category.subs[subcategory_index].rows.push_back(row_index); } @@ -1306,8 +1364,10 @@ void PublishSettingsDialog::on_full_toggle(size_t category_index) { Category& cat = m_categories[category_index]; const bool full = cat.full_check->GetValue(); - for (size_t r : cat.rows) + for (size_t r : cat.rows) { m_rows[r].check->Enable(!full); + m_rows[r].check_label->Enable(!full); + } refresh_tab_indicators(); } @@ -1501,7 +1561,7 @@ void PublishSettingsDialog::add_mixed_visual(size_t category_index, const MixedV void PublishSettingsDialog::set_row_bold(Row& row, bool bold) { // Rebase on the dialog's body font so clearing bold restores the exact original font. - row.check->SetFont(bold ? Label::Body_13.Bold() : Label::Body_13); + row.check_label->SetFont(bold ? Label::Body_13.Bold() : Label::Body_13); } void PublishSettingsDialog::save_scroll_position(Category& category) @@ -1749,7 +1809,7 @@ void PublishSettingsDialog::select_all(bool value) for (Category& cat : m_categories) if (cat.section == Section::Material && cat.enable_check != nullptr) cat.enable_check->SetValue(value); - // wxCheckBox::SetValue does not emit wxEVT_CHECKBOX, so re-run the enable handlers to + // CheckBox::SetValue does not emit wxEVT_TOGGLEBUTTON, so re-run the enable handlers to // propagate mixed-slot components and refresh visibility as if the user had clicked. for (size_t c = 0; c < m_categories.size(); ++c) if (m_categories[c].section == Section::Material) diff --git a/src/slic3r/GUI/PublishSettingsDialog.hpp b/src/slic3r/GUI/PublishSettingsDialog.hpp index f41b3e73a3..c38d865413 100644 --- a/src/slic3r/GUI/PublishSettingsDialog.hpp +++ b/src/slic3r/GUI/PublishSettingsDialog.hpp @@ -18,6 +18,7 @@ // Widgets/StaticLine.hpp). class TextInput; class StaticLine; +class CheckBox; namespace Slic3r { namespace GUI { @@ -97,7 +98,8 @@ private: size_t inner_index{0}; bool dirty{false}; // matches a dirty base key: pre-checked + bold bool matches_filter{false}; // survives the active filter (computed by apply_filter) - wxCheckBox* check{nullptr}; + ::CheckBox* check{nullptr}; + wxStaticText* check_label{nullptr}; wxStaticText* value_label{nullptr}; wxStaticText* unit_label{nullptr}; wxStaticBitmap* color_chip{nullptr}; // Color rows only; swatch next to the value @@ -131,11 +133,13 @@ private: // header row is hidden. For physical slots the Full Publish toggle sits on a second // line (full_line_item) visible only when enabled; for mixed slots Enable alone implies // publishing the mix definition, so no Full Publish widget exists at all. - wxCheckBox* enable_check{nullptr}; + ::CheckBox* enable_check{nullptr}; + wxStaticText* enable_label{nullptr}; wxSizerItem* full_line_item{nullptr}; // sizer item of the Full Publish line (physical slots only) // "Full Publish": while checked, the whole slot preset is serialized and its rows // (incl. Color/Type) are disabled. - wxCheckBox* full_check{nullptr}; + ::CheckBox* full_check{nullptr}; + wxStaticText* full_label{nullptr}; // True for a mixed-color filament slot: no Material/Retraction rows; Enable publishes // the slot's gradient/ratio definition as a whole. bool is_mixed{false}; From 60ebbf7daa9d2f404c137f23f62e786ba8a99243 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Sat, 19 Sep 2026 00:36:58 +0800 Subject: [PATCH 36/76] Stop estimating a prime tower for a single used filament The no-tower case was gated on there being no purge volume, but the SEMM flush matrix reads every configured slot and is nonzero even when only one filament is used, so the plater preview drew a tower the print would never contain. --- src/libslic3r/GCode/WipeTowerEstimate.cpp | 19 ++++++++++--------- tests/libslic3r/test_wipe_tower_estimate.cpp | 4 ++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/libslic3r/GCode/WipeTowerEstimate.cpp b/src/libslic3r/GCode/WipeTowerEstimate.cpp index d8cfe74527..ac1508d9c0 100644 --- a/src/libslic3r/GCode/WipeTowerEstimate.cpp +++ b/src/libslic3r/GCode/WipeTowerEstimate.cpp @@ -107,6 +107,12 @@ WipeTowerFootprint estimate_wipe_tower_footprint(const ConfigBase &config, WipeT // normalize_fdm_2 clearing enable_prime_tower. Its mixed-filament case is not modelled. const bool need_wipe_tower = smooth_timelapse || wrapping; + // Fewer than two filaments cannot make a tool change, so only wrapping detection or smooth + // timelapse print a tower then. The flush volume is no proof of one: it is read from the + // matrix of every configured slot, nonzero even when a single one of them is used. + if (filaments_cnt < 2 && !need_wipe_tower) + return footprint; + // A tower printed for one of the reasons above has no tool change to purge for; both // planners give it the idle depth below and nothing more. const size_t purge_count = filaments_cnt > 1 ? (dual_nozzle ? filaments_cnt : filaments_cnt - 1) : 0; @@ -151,14 +157,6 @@ WipeTowerFootprint estimate_wipe_tower_footprint(const ConfigBase &config, WipeT purges[longest_ramming].filament_change_length = float(float_at("filament_change_length", filament_ids[longest_ramming], 0.) * double(nozzles.size() - 1)); } - // Both wall types decide this together: over-reserving only wastes bed area, but reporting - // no tower for one that is built collapses the validation hull to a point. - // A tool change is a reason on its own (see the base commit); Type1 already reserves - // per filament, Type2 has only the volume, which can resolve to zero. - const bool has_purge = type1 ? !purges.empty() : volume > EPSILON; - if (!has_purge && filaments_cnt < 2 && !need_wipe_tower) - return footprint; - const double min_depth = WipeTower::get_limit_depth_by_height(float(max_object_height)); const float perimeter_width = float(nozzle_diameter) * 1.25f; // Width_To_Nozzle_Ratio // With nothing to purge, plan_tower_new sizes the tower for wrapping detection or the @@ -171,7 +169,10 @@ WipeTowerFootprint estimate_wipe_tower_footprint(const ConfigBase &config, WipeT if (!purges.empty()) side = WipeTower::estimate_rib_tower_bbox_side(purges, float(width), float(layer_height), float(nozzle_diameter), float(extra_spacing), float(rib_width), float(extra_rib_length), float(max_object_height)); else { - const double square = has_purge ? std::sqrt(volume / layer_height * extra_spacing) : idle_depth; + // Type2 squares the tower from its purge volume; Type1 with no purge list (a lone + // filament kept for timelapse or wrapping) sizes for the idle depth. + const bool has_purge = !type1 && volume > EPSILON; + const double square = has_purge ? std::sqrt(volume / layer_height * extra_spacing) : idle_depth; side = WipeTower::rib_footprint_side(float(square), float(square), float(rib_width), float(extra_rib_length), float(max_object_height)); } footprint.width = footprint.depth = side; diff --git a/tests/libslic3r/test_wipe_tower_estimate.cpp b/tests/libslic3r/test_wipe_tower_estimate.cpp index 20644200f3..22b9b2d6c5 100644 --- a/tests/libslic3r/test_wipe_tower_estimate.cpp +++ b/tests/libslic3r/test_wipe_tower_estimate.cpp @@ -335,6 +335,10 @@ TEST_CASE("The shipped defaults size the tower from the flush matrix", "[WipeTow const double flush_volume = WipeTower2::estimate_semm_flush_volume(config, 2); const double expected = std::max(double(WipeTower::get_limit_depth_by_height(5.f)), flush_volume / (0.2 * 50.)); CHECK_THAT(estimate(config, 2, 0.2, 5.).depth, WithinAbs(expected, 1e-6)); + + // The flush volume is nonzero for one slot, but a lone filament makes no tool change. + REQUIRE(WipeTower2::estimate_semm_flush_volume(config, 1) > 0.); + CHECK_THAT(estimate(config, 1, 0.2, 5.).depth, WithinAbs(0., 1e-9)); } TEST_CASE("A config missing a tower key falls back to that key's default", "[WipeTowerEstimate]") { From 8a17df4a892b6f7f1f080ae54cec878c6b6d1388 Mon Sep 17 00:00:00 2001 From: Ian Bassi <ian.bassi@outlook.com> Date: Fri, 18 Sep 2026 14:23:38 -0300 Subject: [PATCH 37/76] Fix some overhang detection (#15694) --- src/libslic3r/LayerRegion.cpp | 10 +- src/libslic3r/PerimeterGenerator.cpp | 15 +++ src/libslic3r/PerimeterGenerator.hpp | 2 + tests/fff_print/test_perimeters.cpp | 135 +++++++++++++++++++++++++++ 4 files changed, 159 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/LayerRegion.cpp b/src/libslic3r/LayerRegion.cpp index 22e0a26898..6f868ba095 100644 --- a/src/libslic3r/LayerRegion.cpp +++ b/src/libslic3r/LayerRegion.cpp @@ -120,9 +120,6 @@ void LayerRegion::make_perimeters(const SurfaceCollection &slices, const LayerRe fill_no_overlap ); - if (this->layer()->lower_layer != nullptr) - // Cummulative sum of polygons over all the regions. - g.lower_slices = &this->layer()->lower_layer->lslices; if (this->layer()->upper_layer != NULL) g.upper_slices = &this->layer()->upper_layer->lslices; @@ -135,6 +132,13 @@ void LayerRegion::make_perimeters(const SurfaceCollection &slices, const LayerRe g.overhang_flow = this->bridging_flow(frPerimeter, object_config.thick_bridges); g.solid_infill_flow = this->flow(frSolidInfill); + // Cumulative sum of polygons over all the regions, less what the lower layer could not print. + ExPolygons lower_slices; + if (this->layer()->lower_layer != nullptr) { + lower_slices = g.printable_slices(this->layer()->lower_layer->lslices); + g.lower_slices = &lower_slices; + } + if (this->layer()->object()->config().wall_generator.value == PerimeterGeneratorType::Arachne && !spiral_mode) g.process_arachne(); else diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index 9f6ec856ba..0a138834a7 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -2885,6 +2885,21 @@ bool PerimeterGeneratorLoop::is_internal_contour() const return true; } +// ORCA: Arachne drops features below min_feature_size, classic builds nothing thinner than a third of the +// nozzle. Both describe the layer below, a union of regions sharing neither nozzle nor generator, so every +// ambiguity resolves low: it may keep a sliver that was never printed, but it never drops one that was. +ExPolygons PerimeterGenerator::printable_slices(const ExPolygons &slices) const +{ + double min_width = *std::min_element(print_config->nozzle_diameter.values.begin(), + print_config->nozzle_diameter.values.end()) / 3.; + if (object_config->wall_generator.value == PerimeterGeneratorType::Arachne) { + const double min_feature_size = Arachne::make_paths_params(layer_id, *object_config, *print_config).min_feature_size; + // Spiral vase can put a classic layer under an Arachne one, so there both limits apply. + min_width = print_config->spiral_mode ? std::min(min_width, min_feature_size) : min_feature_size; + } + return min_width > EPSILON ? opening_ex(slices, float(scale_(min_width / 2.))) : slices; +} + std::vector<Polygons> PerimeterGenerator::generate_lower_polygons_series(float width) { float nozzle_diameter = print_config->nozzle_diameter.get_at(config->outer_wall_filament_id - 1); diff --git a/src/libslic3r/PerimeterGenerator.hpp b/src/libslic3r/PerimeterGenerator.hpp index e4f918d8bd..4b8f84ca5f 100644 --- a/src/libslic3r/PerimeterGenerator.hpp +++ b/src/libslic3r/PerimeterGenerator.hpp @@ -149,6 +149,8 @@ public: //BBS double smaller_width_ext_mm3_per_mm() const { return m_ext_mm3_per_mm_smaller_width; } Polygons lower_slices_polygons() const { return m_lower_slices_polygons; } + // ORCA: the slices less the slivers the wall generator prints nothing for, so they never count as support. + ExPolygons printable_slices(const ExPolygons &slices) const; private: std::vector<Polygons> generate_lower_polygons_series(float width); diff --git a/tests/fff_print/test_perimeters.cpp b/tests/fff_print/test_perimeters.cpp index 7067c60c61..6d9442e5d7 100644 --- a/tests/fff_print/test_perimeters.cpp +++ b/tests/fff_print/test_perimeters.cpp @@ -495,3 +495,138 @@ TEST_CASE("Loops waiting for the infill are extruded after it", "[Perimeters]") CHECK(ceiling_roles(true) == std::vector<std::string>{ "perimeter", "infill", "perimeter" }); CHECK(ceiling_roles(false) == std::vector<std::string>{ "perimeter", "infill" }); } + +namespace { + +// The rib spans z=[0,5] and the slab z=[5,6], so this is the slab's first layer - the only one whose +// support comes from the rib rather than from the slab below it. +const double slab_first_layer_z = 5.2; + +// Rib widths either side of what the wall generators can print. At a 0.4mm nozzle the classic generator +// builds nothing thinner than nozzle/3 = 0.133mm and Arachne drops anything below min_feature_size, 25% +// of the nozzle = 0.1mm. 0.08mm is under both thresholds, 0.3mm over both. +const double unprintable_rib = 0.08; +const double printable_rib = 0.3; + +// A 4x5mm anchor tower carrying a 20x5mm slab at z=[5,6], with a rib `rib_width` wide running the whole +// length of the slab beneath its y=0 edge; a `rib_width` of 0 leaves the rib out. Nothing else is under +// that edge, so whether the wall along it is an overhang rests entirely on the rib. Overhang detection +// grows the lower slices by half the nozzle diameter before it asks, which carries either rib past the +// 0.21mm from the slab edge to that wall - the unprintable one only fails to reach it once it is filtered +// out for being unprintable. +Print &slab_over_rib(Print &print, Model &model, double rib_width, const DynamicPrintConfig &config) +{ + ModelObject *object = model.add_object(); + object->name = "slab_over_rib.stl"; + object->add_volume(make_cube(4., 5., 6.), ModelVolumeType::MODEL_PART, false); + if (rib_width > 0.) { + TriangleMesh rib = make_cube(20., rib_width, 5.); + rib.translate(4.f, 0.f, 0.f); + object->add_volume(std::move(rib), ModelVolumeType::MODEL_PART, false); + } + TriangleMesh slab = make_cube(20., 5., 1.); + slab.translate(4.f, 0.f, 5.f); + object->add_volume(std::move(slab), ModelVolumeType::MODEL_PART, false); + object->add_instance(); + object->ensure_on_bed(); + + print.auto_assign_extruders(object); + print.apply(model, config); + print.validate(); + print.set_status_silent(); + return print; +} + +// Every setting the assertions below depend on, so none of them rests on a default. The wall line widths +// are pinned because the rib widths above are chosen against the distance from the slab edge to its outer +// wall, and min_feature_size because it is one of the two thresholds under test. +DynamicPrintConfig printable_rib_config(const char *wall_generator, bool detect_thin_wall) +{ + DynamicPrintConfig config = DynamicPrintConfig::full_print_config(); + config.set_deserialize_strict({ + { "wall_generator", wall_generator }, + { "layer_height", 0.2 }, // puts a layer boundary exactly on the top of the rib + { "initial_layer_print_height", 0.2 }, + { "nozzle_diameter", "0.4" }, + { "outer_wall_line_width", 0.42 }, + { "inner_wall_line_width", 0.45 }, + { "wall_loops", 2 }, + { "detect_overhang_wall", true }, + { "detect_thin_wall", detect_thin_wall }, + { "min_feature_size", "25%" }, + { "raft_layers", 0 }, + // Anything that adds, drops or reorders walls would move length between the roles being counted. + { "extra_perimeters_on_overhangs", false }, + { "overhang_reverse", false }, + { "only_one_wall_top", false }, + { "only_one_wall_first_layer", false }, + { "unsupported_wall_last", false }, + { "sparse_infill_density", "15%" }, + }); + return config; +} + +// Length of every overhang perimeter path on the layer at `print_z`, loops and open extrusions alike. +double overhang_length_at(const Print &print, double print_z) +{ + double len = 0.; + const auto add_entity = [&len](const ExtrusionEntity *entity, auto &&self) -> void { + const auto add_paths = [&len](const ExtrusionPaths &paths) { + for (const ExtrusionPath &path : paths) + if (path.role() == erOverhangPerimeter) + len += path.length(); + }; + if (const auto *coll = dynamic_cast<const ExtrusionEntityCollection*>(entity)) { + for (const ExtrusionEntity *child : coll->entities) + self(child, self); + } else if (const auto *loop = dynamic_cast<const ExtrusionLoop*>(entity)) { + add_paths(loop->paths); + } else if (const auto *multi = dynamic_cast<const ExtrusionMultiPath*>(entity)) { + add_paths(multi->paths); + } else if (const auto *path = dynamic_cast<const ExtrusionPath*>(entity)) { + if (path->role() == erOverhangPerimeter) + len += path->length(); + } + }; + + for (const Layer *layer : print.objects().front()->layers()) { + if (std::abs(layer->print_z - print_z) > EPSILON) + continue; + for (const LayerRegion *region : layer->regions()) + add_entity(®ion->perimeters, add_entity); + } + return len; +} + +} // namespace + +// A sliver the wall generator prints nothing for holds nothing up, so it cannot be what decides that the +// wall above it is not an overhang. The rib under the slab is the only thing that edge of the slab could +// rest on: below the threshold of the active generator the slab has to come out exactly as it does with +// no rib at all, and the last check is the control - a rib the generator does print anchors that wall, +// without which the first check would hold for want of any sensitivity to the rib. +TEST_CASE("A lower layer sliver too thin to print does not support the wall above it", "[Perimeters]") +{ + const char *wall_generator = GENERATE("classic", "arachne"); + const bool detect_thin_wall = GENERATE(true, false); + CAPTURE(wall_generator, detect_thin_wall); + + auto overhang_for = [wall_generator, detect_thin_wall](double rib_width) { + Print print; + Model model; + slab_over_rib(print, model, rib_width, printable_rib_config(wall_generator, detect_thin_wall)); + print.process(); + REQUIRE_FALSE(print.objects().empty()); + return overhang_length_at(print, slab_first_layer_z); + }; + + const double no_rib = overhang_for(0.); + const double unprintable = overhang_for(unprintable_rib); + const double printable = overhang_for(printable_rib); + + // Only where the slab meets the tower is it held up from below, so both of its 20mm walls overhang. + REQUIRE(no_rib > scale_(30.)); + CHECK_THAT(unprintable, Catch::Matchers::WithinAbs(no_rib, scale_(1.))); + // A rib that does get printed takes the 20mm outer wall running along it out of the overhangs. + CHECK(printable < no_rib - scale_(15.)); +} From f9e9cff53a8623346cfe0229456899a271ec4fed Mon Sep 17 00:00:00 2001 From: packerlschupfer <83344883+packerlschupfer@users.noreply.github.com> Date: Fri, 18 Sep 2026 19:26:14 +0200 Subject: [PATCH 38/76] calib: defensive guards in find_optimal_PA_speed (fix CLI pa-tower SIGSEGV) (#14414) --- src/libslic3r/Config.cpp | 4 +++- src/libslic3r/calib.cpp | 17 ++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/Config.cpp b/src/libslic3r/Config.cpp index 52a46dcacf..c8d816b3a4 100644 --- a/src/libslic3r/Config.cpp +++ b/src/libslic3r/Config.cpp @@ -776,7 +776,9 @@ double ConfigBase::get_abs_value(const t_config_option_key &opt_key, double rati { // Get stored option value. const ConfigOption *raw_opt = this->option(opt_key); - assert(raw_opt != nullptr); + // Mirror the single-arg overload — assert() is a no-op under NDEBUG. + if (raw_opt == nullptr) + throw ConfigurationError("ConfigBase::get_abs_value(): \"" + opt_key + "\" is not defined"); if (raw_opt->type() != coFloatOrPercent) throw ConfigurationError("ConfigBase::get_abs_value(): opt_key is not of coFloatOrPercent"); // Compute absolute value. diff --git a/src/libslic3r/calib.cpp b/src/libslic3r/calib.cpp index 3c2981d822..99625ca196 100644 --- a/src/libslic3r/calib.cpp +++ b/src/libslic3r/calib.cpp @@ -11,12 +11,23 @@ namespace Slic3r { float CalibPressureAdvance::find_optimal_PA_speed(const DynamicPrintConfig &config, double line_width, double layer_height, int extruder_id, int filament_idx) { const double general_suggested_min_speed = 100.0; - double filament_max_volumetric_speed = config.option<ConfigOptionFloats>("filament_max_volumetric_speed")->get_at(filament_idx); + // Read defensively — CLI callers may hand us a config missing optional keys. + auto vector_at = [&config](const char *key, int idx) -> double { + if (const auto *o = config.option<ConfigOptionFloats>(key)) return o->get_at(idx); + const ConfigOptionDef *d = config.def() ? config.def()->get(key) : nullptr; + return (d && d->default_value) ? d->get_default_value<ConfigOptionFloats>()->get_at(idx) : 0.0; + }; + auto nullable_at = [&config](const char *key, int idx) -> double { + if (const auto *o = config.option<ConfigOptionFloatsNullable>(key)) return o->get_at(idx); + const ConfigOptionDef *d = config.def() ? config.def()->get(key) : nullptr; + return (d && d->default_value) ? d->get_default_value<ConfigOptionFloatsNullable>()->get_at(idx) : 0.0; + }; + double filament_max_volumetric_speed = vector_at("filament_max_volumetric_speed", filament_idx); // todo multi_extruders: - const float nozzle_diameter = config.option<ConfigOptionFloats>("nozzle_diameter")->get_at(extruder_id); + const float nozzle_diameter = vector_at("nozzle_diameter", extruder_id); if (line_width <= 0.) line_width = Flow::auto_extrusion_width(frPerimeter, nozzle_diameter); Flow pattern_line = Flow(line_width, layer_height, nozzle_diameter); - auto pa_speed = std::min(std::max(general_suggested_min_speed, config.option<ConfigOptionFloatsNullable>("outer_wall_speed")->get_at(extruder_id)), + auto pa_speed = std::min(std::max(general_suggested_min_speed, nullable_at("outer_wall_speed", extruder_id)), filament_max_volumetric_speed / pattern_line.mm3_per_mm()); return std::floor(pa_speed); From f956914a113b03422b1d2d70eff587504fea6188 Mon Sep 17 00:00:00 2001 From: Ian Bassi <ian.bassi@outlook.com> Date: Fri, 18 Sep 2026 16:12:11 -0300 Subject: [PATCH 39/76] Update OrcaSlicer_de.po (#15766) --- localization/i18n/de/OrcaSlicer_de.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index f6bd69a1b1..4957eef170 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -16408,7 +16408,7 @@ msgid "Min print speed" msgstr "Minimale Druckgeschwindigkeit" msgid "The minimum print speed to which the printer slows down to maintain the minimum layer time defined above when the slowdown for better layer cooling is enabled." -msgstr "Das minimale Drucktempo, bei dem der Drucker verlangsamt wird, um die oben definierte minimale Schichtzeit einzuhalten, wenn die Verlangsamung für eine bessere Schichtkühlung aktiviert ist." +msgstr "Die minimale Druckgeschwindigkeit, auf die der Drucker verlangsamt wird, um die oben definierte minimale Schichtzeit einzuhalten, wenn die Verlangsamung für eine bessere Schichtkühlung aktiviert ist." msgid "The diameter of nozzle." msgstr "Düsendurchmesser" From 8eac7aafdb276247f994d8495e5fd6b781756e10 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Fri, 18 Sep 2026 15:47:28 -0500 Subject: [PATCH 40/76] ci: fix the flatpak dependency cache broken by #14709 (#15763) --- .github/workflows/build_all.yml | 10 ++++------ scripts/flatpak/com.orcaslicer.OrcaSlicer.yml | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index e0d2e1ea6c..ed106ec65e 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -330,12 +330,13 @@ jobs: # sources are unchanged, so a re-run of the same commit would skip the # OrcaSlicer module and ship no test asset. A per-run value in that module's # env keeps it rebuilding; orca_deps stays cached, and the compiler cache - # still serves the rebuild. - - name: Inject commit hash and flatpak-builder cache buster into Flatpak manifest + # still serves the rebuild. run-tests on the same module builds the test + # binaries. + - name: Inject commit hash, run-tests and cache buster into Flatpak manifest env: flatpak_builder_cache_buster: ${{ github.run_id }}-${{ github.run_attempt }} run: | - sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n flatpak_builder_cache_buster: \"$flatpak_builder_cache_buster\"\n git_commit_hash: \"$git_commit_hash\"|}" \ + sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n run-tests: true\n build-options:\n env:\n flatpak_builder_cache_buster: \"$flatpak_builder_cache_buster\"\n git_commit_hash: \"$git_commit_hash\"|}" \ scripts/flatpak/com.orcaslicer.OrcaSlicer.yml shell: bash # flatpak-builder's --ccache only wraps cc and gcc, and the manifest builds @@ -381,9 +382,6 @@ jobs: save-cache: false arch: ${{ matrix.variant.arch }} upload-artifact: false - # run-tests fires the module's build-only test-commands; keep-build-dirs - # retains the binaries for the packaging step below. - run-tests: true keep-build-dirs: true # The build has just touched everything it can use, so an object untouched # for a week is dead, usually orphaned by a flag change. diff --git a/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml b/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml index fa7c329b4b..404dbf5fe4 100644 --- a/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml +++ b/scripts/flatpak/com.orcaslicer.OrcaSlicer.yml @@ -384,7 +384,7 @@ modules: - cmake --build build_flatpak --target generate_system_cache -j$FLATPAK_BUILDER_N_JOBS - ./scripts/build_preset_cache.sh -n -b build_flatpak /app/share/OrcaSlicer/profiles - # Built (not run) here via the action's run-tests, then shipped to a separate + # Built (not run) here when CI injects run-tests, then shipped to a separate # test job. Only the test sources compile; nothing installs to /app. test-commands: - cmake . -B build_flatpak -DBUILD_TESTS=ON From e0410db22ea0cb5ea918520607fed0d647e88be8 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Fri, 18 Sep 2026 16:38:55 -0500 Subject: [PATCH 41/76] fix: hide the CAD gizmos unless the experimental CAD feature is enabled (#15762) --- src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index be586ec55a..8f4c320a5b 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -234,8 +234,10 @@ bool GLGizmosManager::init() #ifdef SLIC3R_CAD // Registered last: Primitive and Sketch are the final entries before Undefined, so // omitting them leaves every preceding m_gizmos index (indexed by EType) untouched. - m_gizmos.emplace_back(new GLGizmoPrimitive(m_parent, m_is_dark ? "toolbar_modifier_cube_dark.svg" : "toolbar_modifier_cube.svg", static_cast<unsigned int>(Primitive))); - m_gizmos.emplace_back(new GLGizmoSketch(m_parent, m_is_dark ? "toolbar_sketch_dark.svg" : "toolbar_sketch.svg", static_cast<unsigned int>(Sketch))); + if (wxGetApp().is_enable_cad_feature()) { + m_gizmos.emplace_back(new GLGizmoPrimitive(m_parent, m_is_dark ? "toolbar_modifier_cube_dark.svg" : "toolbar_modifier_cube.svg", static_cast<unsigned int>(Primitive))); + m_gizmos.emplace_back(new GLGizmoSketch(m_parent, m_is_dark ? "toolbar_sketch_dark.svg" : "toolbar_sketch.svg", static_cast<unsigned int>(Sketch))); + } #endif //m_gizmos.emplace_back(new GLGizmoSlaSupports(m_parent, "sla_supports.svg", sprite_id++)); //m_gizmos.emplace_back(new GLGizmoFaceDetector(m_parent, "face recognition.svg", sprite_id++)); @@ -1344,7 +1346,8 @@ GLGizmoBase* GLGizmosManager::get_current() const GLGizmoBase* GLGizmosManager::get_gizmo(GLGizmosManager::EType type) const { - return ((type == Undefined) || m_gizmos.empty()) ? nullptr : m_gizmos[type].get(); + // m_gizmos ends before the enum does when the CAD gizmos are not registered. + return type < m_gizmos.size() ? m_gizmos[type].get() : nullptr; } GLGizmosManager::EType GLGizmosManager::get_gizmo_from_name(const std::string& gizmo_name) const From 213c6569abff90c81829bb2b0d602f62768d556e Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Fri, 18 Sep 2026 18:19:37 -0500 Subject: [PATCH 42/76] cut the GPU load of moving the mouse over the 3D viewport (#15674) Co-authored-by: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> --- src/libslic3r/AppConfig.cpp | 6 + src/libslic3r/AppConfig.hpp | 2 + src/slic3r/CMakeLists.txt | 2 + src/slic3r/GUI/GCodeViewer.cpp | 45 +- src/slic3r/GUI/GCodeViewer.hpp | 12 +- src/slic3r/GUI/GLCanvas3D.cpp | 499 +++++++++++++------ src/slic3r/GUI/GLCanvas3D.hpp | 39 +- src/slic3r/GUI/GLTexture.cpp | 23 + src/slic3r/GUI/GLTexture.hpp | 4 + src/slic3r/GUI/GLToolbar.cpp | 62 ++- src/slic3r/GUI/GLToolbar.hpp | 10 +- src/slic3r/GUI/GUI_App.cpp | 22 +- src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp | 1 + src/slic3r/GUI/Gizmos/GLGizmoBase.hpp | 2 + src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp | 2 + src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp | 89 ++-- src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp | 6 + src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp | 25 +- src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp | 3 + src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp | 4 + src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 40 +- src/slic3r/GUI/Gizmos/GLGizmosManager.hpp | 5 +- src/slic3r/GUI/ImGuiWrapper.cpp | 32 +- src/slic3r/GUI/ImGuiWrapper.hpp | 6 +- src/slic3r/GUI/PartPlate.cpp | 50 +- src/slic3r/GUI/PartPlate.hpp | 6 +- src/slic3r/GUI/Preferences.cpp | 29 +- src/slic3r/GUI/Preferences.hpp | 1 + src/slic3r/GUI/SceneCache.cpp | 62 +++ src/slic3r/GUI/SceneCache.hpp | 56 +++ 30 files changed, 876 insertions(+), 269 deletions(-) create mode 100644 src/slic3r/GUI/SceneCache.cpp create mode 100644 src/slic3r/GUI/SceneCache.hpp diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp index 42f3e28bfa..c8a2c4984d 100644 --- a/src/libslic3r/AppConfig.cpp +++ b/src/libslic3r/AppConfig.cpp @@ -283,6 +283,12 @@ void AppConfig::set_defaults() set(SETTING_OPENGL_FPS_CAP, std::to_string(fps_cap)); } + if (get(SETTING_OPENGL_SCENE_CACHE).empty()) + set_bool(SETTING_OPENGL_SCENE_CACHE, true); + + if (get(SETTING_OPENGL_SKIP_IDENTICAL_FRAMES).empty()) + set_bool(SETTING_OPENGL_SKIP_IDENTICAL_FRAMES, true); + // The getter already defaults, parses and clamps; write back what it resolves to. set(SETTING_PLUGIN_PAGES_VISIBLE_COUNT, std::to_string(get_plugin_pages_visible_count())); diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp index 8e3305105a..24a4c2069b 100644 --- a/src/libslic3r/AppConfig.hpp +++ b/src/libslic3r/AppConfig.hpp @@ -33,6 +33,8 @@ using namespace nlohmann; #define SETTING_OPENGL_AA_SAMPLES "opengl_antialiasing_samples" #define SETTING_OPENGL_FXAA_ENABLED "opengl_fxaa_enabled" #define SETTING_OPENGL_FPS_CAP "opengl_fps_cap" +#define SETTING_OPENGL_SCENE_CACHE "opengl_scene_cache" +#define SETTING_OPENGL_SKIP_IDENTICAL_FRAMES "opengl_skip_identical_frames" #define SETTING_OPENGL_SHOW_FPS_OVERLAY "opengl_show_fps_overlay" #define SETTING_OPENGL_REALISTIC_MODE "opengl_realistic_mode" #define SETTING_OPENGL_REALISTIC_PHONG "opengl_realistic_phong" diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 18730b248b..e689548896 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -469,6 +469,8 @@ set(SLIC3R_GUI_SOURCES GUI/SavePresetDialog.hpp GUI/SceneRaycaster.cpp GUI/SceneRaycaster.hpp + GUI/SceneCache.cpp + GUI/SceneCache.hpp GUI/PartSkipCommon.hpp GUI/PartSkipDialog.cpp GUI/PartSkipDialog.hpp diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index c40d6dd222..3b3354d86f 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -997,13 +997,17 @@ void GCodeViewer::SequentialView::GCodeWindow::stop_mapping_file() BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": finished mapping file " << m_filename; } } -void GCodeViewer::SequentialView::render(const bool has_render_path, float legend_height, const libvgcode::Viewer* viewer, uint32_t gcode_id, int canvas_width, int canvas_height, int right_margin, const libvgcode::EViewType& view_type) +void GCodeViewer::SequentialView::render_marker(const bool has_render_path, int canvas_width, int canvas_height, const libvgcode::EViewType& view_type) { - if (has_render_path && m_show_marker) { + if (has_render_path && m_show_marker) // marker.set_world_offset(current_offset); marker.render(canvas_width, canvas_height, view_type); +} + +void GCodeViewer::SequentialView::render_overlay(const bool has_render_path, float legend_height, const libvgcode::Viewer* viewer, uint32_t gcode_id, int canvas_width, int canvas_height, int right_margin, const libvgcode::EViewType& view_type) +{ + if (has_render_path && m_show_marker) marker.render_position_window(viewer, canvas_width, canvas_height, view_type); - } //float bottom = wxGetApp().plater()->get_current_canvas3D()->get_canvas_size().get_height(); // BBS @@ -1618,7 +1622,7 @@ void GCodeViewer::reset() } //BBS: GUI refactor: add canvas width and height -void GCodeViewer::render(int canvas_width, int canvas_height, int right_margin) +void GCodeViewer::render_scene(int canvas_width, int canvas_height) { glsafe(::glEnable(GL_DEPTH_TEST)); render_shells(canvas_width, canvas_height); @@ -1628,6 +1632,20 @@ void GCodeViewer::render(int canvas_width, int canvas_height, int right_margin) render_toolpaths(); + auto current = m_viewer.get_view_visible_range(); + auto endpoints = m_viewer.get_view_full_range(); + m_sequential_view.m_show_marker = m_sequential_view.m_show_marker || (current.back() != endpoints.back() && !m_no_render_path); + const libvgcode::PathVertex& curr_vertex = m_viewer.get_current_vertex(); + m_sequential_view.marker.set_world_position(libvgcode::convert(curr_vertex.position)); + m_sequential_view.marker.set_z_offset(m_z_offset + 0.5f); + m_sequential_view.render_marker(!m_no_render_path, canvas_width, sequential_view_height(canvas_height), m_viewer.get_view_type()); +} + +void GCodeViewer::render_overlay(int canvas_width, int canvas_height, int right_margin) +{ + if (m_viewer.get_extrusion_roles().empty()) + return; + float legend_height = 0.0f; render_legend(legend_height, canvas_width, canvas_height, right_margin); @@ -1636,16 +1654,7 @@ void GCodeViewer::render(int canvas_width, int canvas_height, int right_margin) m_user_mode = wxGetApp().get_mode(); } - //BBS fixed bottom_margin for space to render horiz slider - int bottom_margin = SLIDER_BOTTOM_MARGIN * GCODE_VIEWER_SLIDER_SCALE; - auto current = m_viewer.get_view_visible_range(); - auto endpoints = m_viewer.get_view_full_range(); - m_sequential_view.m_show_marker = m_sequential_view.m_show_marker || (current.back() != endpoints.back() && !m_no_render_path); - const libvgcode::PathVertex& curr_vertex = m_viewer.get_current_vertex(); - m_sequential_view.marker.set_world_position(libvgcode::convert(curr_vertex.position)); - m_sequential_view.marker.set_z_offset(m_z_offset + 0.5f); - // BBS fixed buttom margin. m_moves_slider.pos_y - m_sequential_view.render(!m_no_render_path, legend_height, &m_viewer, m_viewer.get_current_vertex().gcode_id, canvas_width, canvas_height - bottom_margin * m_scale, right_margin * m_scale, m_viewer.get_view_type()); + m_sequential_view.render_overlay(!m_no_render_path, legend_height, &m_viewer, m_viewer.get_current_vertex().gcode_id, canvas_width, sequential_view_height(canvas_height), right_margin * m_scale, m_viewer.get_view_type()); #if VGCODE_ENABLE_COG_AND_TOOL_MARKERS if (is_legend_shown()) { @@ -1686,6 +1695,14 @@ void GCodeViewer::render(int canvas_width, int canvas_height, int right_margin) render_slider(canvas_width, canvas_height); } +int GCodeViewer::sequential_view_height(int canvas_height) const +{ + //BBS fixed bottom_margin for space to render horiz slider + const int bottom_margin = SLIDER_BOTTOM_MARGIN * GCODE_VIEWER_SLIDER_SCALE; + // BBS fixed buttom margin. m_moves_slider.pos_y + return canvas_height - bottom_margin * m_scale; +} + #define ENABLE_CALIBRATION_THUMBNAIL_OUTPUT 0 #if ENABLE_CALIBRATION_THUMBNAIL_OUTPUT static void debug_calibration_output_thumbnail(const ThumbnailData& thumbnail_data) diff --git a/src/slic3r/GUI/GCodeViewer.hpp b/src/slic3r/GUI/GCodeViewer.hpp index 5ba748775c..9b82a81b2f 100644 --- a/src/slic3r/GUI/GCodeViewer.hpp +++ b/src/slic3r/GUI/GCodeViewer.hpp @@ -153,7 +153,10 @@ public: GCodeWindow gcode_window; float m_scale = 1.0; bool m_show_marker = false; - void render(const bool has_render_path, float legend_height, const libvgcode::Viewer* viewer, uint32_t gcode_id, int canvas_width, int canvas_height, int right_margin, const libvgcode::EViewType& view_type); + // The tool marker at the current move, drawn in 3D. + void render_marker(const bool has_render_path, int canvas_width, int canvas_height, const libvgcode::EViewType& view_type); + // The marker's position window and the G-code window, both ImGui. + void render_overlay(const bool has_render_path, float legend_height, const libvgcode::Viewer* viewer, uint32_t gcode_id, int canvas_width, int canvas_height, int right_margin, const libvgcode::EViewType& view_type); }; struct ExtruderFilament { @@ -272,7 +275,10 @@ public: //BBS: add all plates filament statistics void render_all_plates_stats(const std::vector<const GCodeProcessorResult*>& gcode_result_list, bool show = true) const; //BBS: GUI refactor: add canvas width and height - void render(int canvas_width, int canvas_height, int right_margin); + // Shells, toolpaths and the sequential marker, drawn in 3D. + void render_scene(int canvas_width, int canvas_height); + // Legend, sliders, the marker's position window and the G-code window, all ImGui. + void render_overlay(int canvas_width, int canvas_height, int right_margin); //BBS // void _render_calibration_thumbnail_internal(ThumbnailData& thumbnail_data, const ThumbnailsParams& thumbnail_params, PartPlateList& partplate_list, OpenGLManager& opengl_manager); // void _render_calibration_thumbnail_framebuffer(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, PartPlateList& partplate_list, OpenGLManager& opengl_manager); @@ -362,6 +368,8 @@ public: private: //BBS: always load shell at preview //void load_shells(const Print& print); + // Canvas height minus the room the horizontal slider takes. + int sequential_view_height(int canvas_height) const; void render_toolpaths(); void render_shells(int canvas_width, int canvas_height); diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index a5ab7bd5d8..02ef95e2c6 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -69,6 +69,7 @@ #include <tbb/parallel_for.h> #include <tbb/spin_mutex.h> +#include <boost/functional/hash.hpp> #include <boost/log/trivial.hpp> #include <boost/algorithm/string/predicate.hpp> @@ -370,7 +371,6 @@ void GLCanvas3D::LayersEditing::render_variable_layer_height_dialog(GLCanvas3D& void GLCanvas3D::LayersEditing::render_overlay(GLCanvas3D& canvas) { - render_variable_layer_height_dialog(canvas); render_active_object_annotations(canvas); render_profile(canvas); } @@ -1191,6 +1191,7 @@ GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas, Bed3D &bed) #endif // ENABLE_RETINA_GL } m_timer_set_color.Bind(wxEVT_TIMER, &GLCanvas3D::on_set_color_timer, this); + m_fps_overlay_timer.Bind(wxEVT_TIMER, &GLCanvas3D::on_fps_overlay_timer, this); load_arrange_settings(); m_selection.set_volumes(&m_volumes.volumes); @@ -1207,6 +1208,7 @@ GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas, Bed3D &bed) GLCanvas3D::~GLCanvas3D() { if (_set_current()) { + m_scene_cache.reset(); if (m_fxaa_texture_id != 0) { glsafe(::glDeleteTextures(1, &m_fxaa_texture_id)); m_fxaa_texture_id = 0; @@ -1354,6 +1356,7 @@ void GLCanvas3D::on_change_color_mode(bool is_dark, bool reinit) { m_gizmos.set_icon_dirty(); } } + m_dirty = true; } const float GLCanvas3D::get_scale() const @@ -1938,7 +1941,14 @@ bool GLCanvas3D::make_current_for_postinit() { return _set_current(); } +// Redraws the scene and presents it. void GLCanvas3D::render(bool only_init) +{ + m_presented_signature.reset(); + _render_frame(true, only_init); +} + +void GLCanvas3D::_render_frame(bool scene_dirty, bool only_init) { if (m_in_render) { // if called recursively, return @@ -2041,121 +2051,33 @@ void GLCanvas3D::render(bool only_init) } } - // draw scene - glsafe(::glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)); - // Invalidate the shadow map each frame; only the View3D path below rebuilds it. This keeps - // the Preview / Assemble canvases from sampling a stale map with an outdated light matrix. - m_shadow_map_valid = false; - _render_background(); + const bool overlay_tick = m_fps_overlay_tick; + m_fps_overlay_tick = false; - //BBS add partplater rendering logic - bool only_current = false, only_body = false, no_partplate = false; - bool show_grid = true; - GLGizmosManager::EType gizmo_type = m_gizmos.get_current_type(); - if (!m_main_toolbar.is_enabled()) { - //only_body = true; - only_current = true; + // An overlay-only frame reuses the last scene pass. The overlay is rebuilt either way, and drawn + // below once it is known whether the frame differs from the one on screen. + const bool reuse_scene = !scene_dirty && _can_reuse_cached_scene(camera); + if (!reuse_scene) { + _render_scene(camera, cnv_size); + if (!overlay_tick) + m_render_stats.increment_scene_fps_counter(); } - else if ((gizmo_type == GLGizmosManager::FdmSupports) || (gizmo_type == GLGizmosManager::Seam) || (gizmo_type == GLGizmosManager::MmSegmentation) || (gizmo_type == GLGizmosManager::FuzzySkin)) - no_partplate = true; - else if (gizmo_type == GLGizmosManager::BrimEars && !camera.is_looking_downward()) - show_grid = false; - if (m_axes_at_bed_center) - // Design tab: the plate grid is generated from the plate's front-left corner, so it - // floats mid-cell under the modeling-origin triad. Suppress it here; a CAD grid centred - // on the origin is rendered in its place (see _render_cad_grid). - show_grid = false; - /* view3D render*/ - int hover_id = (m_hover_plate_idxs.size() > 0)?m_hover_plate_idxs.front():-1; - if (m_canvas_type == ECanvasType::CanvasView3D) { - // m_show_bed gates the plate list too: hiding the bed but leaving its grid and outline - // floating would read as a rendering fault rather than a deliberate view option. - if (!no_partplate && m_show_bed) - _render_bed(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), m_show_world_axes); - if (!no_partplate && m_show_bed) //BBS: add outline logic - _render_platelist(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), only_current, only_body, hover_id, true, show_grid); - if (m_axes_at_bed_center && m_show_bed && !no_partplate) - // Design tab: replace the plate's corner-origin grid with the origin-centred CAD grid. - _render_cad_grid(camera.get_view_matrix(), camera.get_projection_matrix()); - - //BBS: add outline logic - // Depth pass for object-on-object and self shadows; consumed by the gouraud shader below. - _render_shadows(camera.get_view_matrix(), camera.get_projection_matrix()); - _render_objects(GLVolumeCollection::ERenderType::Opaque, !m_gizmos.is_running()); - _render_sla_slices(); - _render_selection(); - _render_objects(GLVolumeCollection::ERenderType::Transparent, !m_gizmos.is_running()); - _render_wireframe_overlay(); - } - /* preview render */ - else if (m_canvas_type == ECanvasType::CanvasPreview && m_render_preview) { - _render_objects(GLVolumeCollection::ERenderType::Opaque, !m_gizmos.is_running()); - _render_sla_slices(); - _render_selection(); - _render_bed(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), m_show_world_axes); - _render_platelist(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), only_current, true, hover_id); + if (m_canvas_type == ECanvasType::CanvasPreview && m_render_preview) // BBS: GUI refactor: add canvas size as parameters - _render_gcode(cnv_size.get_width(), cnv_size.get_height()); - } - /* assemble render*/ - else if (m_canvas_type == ECanvasType::CanvasAssembleView) { - //BBS: add outline logic - //if (m_show_world_axes) { - // m_axes.render(); - //} - _render_objects(GLVolumeCollection::ERenderType::Opaque, !m_gizmos.is_running()); - _render_selection(); - //_render_bed(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), show_axes); - _render_plane(); - //BBS: add outline logic insteadof selection under assemble view - //_render_selection(); - // BBS: add outline logic - _render_objects(GLVolumeCollection::ERenderType::Transparent, !m_gizmos.is_running()); - _render_wireframe_overlay(); - } - - _render_sequential_clearance(); -#if ENABLE_RENDER_SELECTION_CENTER - _render_selection_center(); -#endif // ENABLE_RENDER_SELECTION_CENTER - - // sidebar hints need to be rendered before the gizmos because the depth buffer - // could be invalidated by the following gizmo render methods - _render_selection_sidebar_hints(); - _render_current_gizmo(); - -#if ENABLE_RAYCAST_PICKING_DEBUG - if (m_picking_enabled && !m_mouse.dragging && !m_gizmos.is_dragging() && !m_rectangle_selection.is_dragging()) - m_scene_raycaster.render_hit(camera); -#endif // ENABLE_RAYCAST_PICKING_DEBUG - -#if ENABLE_SHOW_CAMERA_TARGET - _render_camera_target(); -#endif // ENABLE_SHOW_CAMERA_TARGET - - if (m_picking_enabled && m_rectangle_selection.is_dragging()) - m_rectangle_selection.render(*this); - - if (_is_ssao_enabled()) - _render_ssao_pass(static_cast<unsigned int>(cnv_size.get_width()), static_cast<unsigned int>(cnv_size.get_height())); - - if (_is_fxaa_enabled()) - _render_fxaa_pass(static_cast<unsigned int>(cnv_size.get_width()), static_cast<unsigned int>(cnv_size.get_height())); - - // Design tab: interactive 2D sketch overlay, drawn over the scene but - // beneath the UI overlays (toolbars, labels). -#ifdef SLIC3R_CAD - if (m_design_sketch_tool != nullptr && m_design_sketch_tool->has_display()) - m_design_sketch_tool->render(*this); -#endif + _render_gcode_overlay(cnv_size.get_width(), cnv_size.get_height()); // draw overlays _render_overlays(); const int current_fps = m_render_stats.get_fps_and_reset_if_needed(); - if (_is_fps_overlay_enabled()) + if (_is_fps_overlay_enabled()) { _render_fps_overlay(current_fps); + // The timer requests an overlay-only frame a second from now. A frame it requested + // re-arms it only while a count is above zero. + if (!overlay_tick || current_fps > 0 || m_render_stats.get_scene_fps() > 0) + m_fps_overlay_timer.StartOnce(1000); + } if (wxGetApp().plater()->is_render_statistic_dialog_visible()) { ImGui::ShowMetricsWindow(); @@ -2241,14 +2163,149 @@ void GLCanvas3D::render(bool only_init) wxGetApp().plater()->get_dailytips()->render(); } - wxGetApp().imgui()->render(); + ImDrawData* draw_data = wxGetApp().imgui()->end_frame(); + + std::optional<size_t> signature; + if (_is_frame_skipping_enabled()) + signature = _overlay_signature(draw_data); + + if (reuse_scene) { + // A reused scene under an unchanged overlay is the frame already on screen. + if (signature.has_value() && signature == m_presented_signature) + return; + m_scene_cache.render(m_background); + } + + _render_overlay_toolbars(); + + wxGetApp().imgui()->render(draw_data); // On Wayland, eglSwapBuffers blocks when the canvas is hidden or // occluded. Skip the swap to avoid stalling the render loop. if (m_canvas->IsShownOnScreen()) { m_canvas->SwapBuffers(); - m_render_stats.increment_fps_counter(); + if (!overlay_tick) + m_render_stats.increment_fps_counter(); + m_presented_signature = signature; } + else + m_presented_signature.reset(); +} + +// Everything drawn into the 3D scene, from the clear to the post processing passes, ending in the +// capture an overlay-only frame reuses. +void GLCanvas3D::_render_scene(const Camera& camera, const Size& cnv_size) +{ + // Recorded by PartPlate::render_icons() below, when it runs. + wxGetApp().plater()->get_partplate_list().clear_hover_tooltip(); + glsafe(::glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)); + // Invalidate the shadow map each frame; only the View3D path below rebuilds it. This keeps + // the Preview / Assemble canvases from sampling a stale map with an outdated light matrix. + m_shadow_map_valid = false; + _render_background(); + + //BBS add partplater rendering logic + bool only_current = false, only_body = false, no_partplate = false; + bool show_grid = true; + GLGizmosManager::EType gizmo_type = m_gizmos.get_current_type(); + if (!m_main_toolbar.is_enabled()) { + //only_body = true; + only_current = true; + } + else if ((gizmo_type == GLGizmosManager::FdmSupports) || (gizmo_type == GLGizmosManager::Seam) || (gizmo_type == GLGizmosManager::MmSegmentation) || (gizmo_type == GLGizmosManager::FuzzySkin)) + no_partplate = true; + else if (gizmo_type == GLGizmosManager::BrimEars && !camera.is_looking_downward()) + show_grid = false; + if (m_axes_at_bed_center) + // Design tab: the plate grid is generated from the plate's front-left corner, so it + // floats mid-cell under the modeling-origin triad. Suppress it here; a CAD grid centred + // on the origin is rendered in its place (see _render_cad_grid). + show_grid = false; + + /* view3D render*/ + int hover_id = (m_hover_plate_idxs.size() > 0)?m_hover_plate_idxs.front():-1; + if (m_canvas_type == ECanvasType::CanvasView3D) { + // m_show_bed gates the plate list too: hiding the bed but leaving its grid and outline + // floating would read as a rendering fault rather than a deliberate view option. + if (!no_partplate && m_show_bed) + _render_bed(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), m_show_world_axes); + if (!no_partplate && m_show_bed) //BBS: add outline logic + _render_platelist(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), only_current, only_body, hover_id, true, show_grid); + if (m_axes_at_bed_center && m_show_bed && !no_partplate) + // Design tab: replace the plate's corner-origin grid with the origin-centred CAD grid. + _render_cad_grid(camera.get_view_matrix(), camera.get_projection_matrix()); + + //BBS: add outline logic + // Depth pass for object-on-object and self shadows; consumed by the gouraud shader below. + _render_shadows(camera.get_view_matrix(), camera.get_projection_matrix()); + _render_objects(GLVolumeCollection::ERenderType::Opaque, !m_gizmos.is_running()); + _render_sla_slices(); + _render_selection(); + _render_objects(GLVolumeCollection::ERenderType::Transparent, !m_gizmos.is_running()); + _render_wireframe_overlay(); + } + /* preview render */ + else if (m_canvas_type == ECanvasType::CanvasPreview && m_render_preview) { + _render_objects(GLVolumeCollection::ERenderType::Opaque, !m_gizmos.is_running()); + _render_sla_slices(); + _render_selection(); + _render_bed(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), m_show_world_axes); + _render_platelist(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), only_current, true, hover_id); + // BBS: GUI refactor: add canvas size as parameters + _render_gcode(cnv_size.get_width(), cnv_size.get_height()); + } + /* assemble render*/ + else if (m_canvas_type == ECanvasType::CanvasAssembleView) { + //BBS: add outline logic + //if (m_show_world_axes) { + // m_axes.render(); + //} + _render_objects(GLVolumeCollection::ERenderType::Opaque, !m_gizmos.is_running()); + _render_selection(); + //_render_bed(camera.get_view_matrix(), camera.get_projection_matrix(), !camera.is_looking_downward(), show_axes); + _render_plane(); + //BBS: add outline logic insteadof selection under assemble view + //_render_selection(); + // BBS: add outline logic + _render_objects(GLVolumeCollection::ERenderType::Transparent, !m_gizmos.is_running()); + _render_wireframe_overlay(); + } + + _render_sequential_clearance(); +#if ENABLE_RENDER_SELECTION_CENTER + _render_selection_center(); +#endif // ENABLE_RENDER_SELECTION_CENTER + // sidebar hints need to be rendered before the gizmos because the depth buffer + // could be invalidated by the following gizmo render methods + _render_selection_sidebar_hints(); + _render_current_gizmo(); + +#if ENABLE_RAYCAST_PICKING_DEBUG + if (m_picking_enabled && !m_mouse.dragging && !m_gizmos.is_dragging() && !m_rectangle_selection.is_dragging()) + m_scene_raycaster.render_hit(camera); +#endif // ENABLE_RAYCAST_PICKING_DEBUG + +#if ENABLE_SHOW_CAMERA_TARGET + _render_camera_target(); +#endif // ENABLE_SHOW_CAMERA_TARGET + + if (m_picking_enabled && m_rectangle_selection.is_dragging()) + m_rectangle_selection.render(*this); + + if (_is_ssao_enabled()) + _render_ssao_pass(static_cast<unsigned int>(cnv_size.get_width()), static_cast<unsigned int>(cnv_size.get_height())); + + if (_is_fxaa_enabled()) + _render_fxaa_pass(static_cast<unsigned int>(cnv_size.get_width()), static_cast<unsigned int>(cnv_size.get_height())); + + // Design tab: interactive 2D sketch overlay, drawn over the scene but + // beneath the UI overlays (toolbars, labels). +#ifdef SLIC3R_CAD + if (m_design_sketch_tool != nullptr && m_design_sketch_tool->has_display()) + m_design_sketch_tool->render(*this); +#endif + + _capture_scene_cache(camera); } void GLCanvas3D::render_thumbnail(ThumbnailData & thumbnail_data, @@ -3226,29 +3283,30 @@ void GLCanvas3D::on_idle(wxIdleEvent& evt) if (!m_initialized) return; - m_dirty |= m_main_toolbar.update_items_state(); + // Toolbar states, notifications and ImGui's own layout settling only touch the overlay. + m_overlay_dirty |= m_main_toolbar.update_items_state(); //BBS: GUI refactor: GLToolbar - m_dirty |= m_assemble_view_toolbar.update_items_state(); + m_overlay_dirty |= m_assemble_view_toolbar.update_items_state(); // BBS //m_dirty |= wxGetApp().plater()->get_view_toolbar().update_items_state(); - m_dirty |= wxGetApp().plater()->get_collapse_toolbar().update_items_state(); + m_overlay_dirty |= wxGetApp().plater()->get_collapse_toolbar().update_items_state(); // apply() DRAINS the 3D-mouse queue, so only the canvas actually on screen may call it: a // hidden canvas renders nothing, so the motion it swallowed moves the shared camera without // ever being drawn and the next visible frame jumps several states at once. bool mouse3d_controller_applied = _is_shown_on_screen() && wxGetApp().plater()->get_mouse3d_controller().apply(wxGetApp().plater()->get_camera()); m_dirty |= mouse3d_controller_applied; - m_dirty |= wxGetApp().plater()->get_notification_manager()->update_notifications(*this); + m_overlay_dirty |= wxGetApp().plater()->get_notification_manager()->update_notifications(*this); auto gizmo = wxGetApp().plater()->get_view3D_canvas3D()->get_gizmos_manager().get_current(); if (gizmo != nullptr) m_dirty |= gizmo->update_items_state(); #if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT // ImGuiWrapper::m_requires_extra_frame may have been set by a render made outside of the OnIdle mechanism bool imgui_requires_extra_frame = wxGetApp().imgui()->requires_extra_frame(); - m_dirty |= imgui_requires_extra_frame; + m_overlay_dirty |= imgui_requires_extra_frame; #endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_dirty |= GLTexture::Compressor::has_compressed_texture_to_refresh(); - if (!m_dirty) + if (!m_dirty && !m_overlay_dirty) return; #if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT @@ -3273,19 +3331,24 @@ void GLCanvas3D::on_idle(wxIdleEvent& evt) m_last_frame_start_time = now; } - _refresh_if_shown_on_screen(); + // Read and cleared before the render; a request made during it is left for the next frame. + const bool scene_dirty = m_dirty; + m_dirty = false; + m_overlay_dirty = false; + _refresh_if_shown_on_screen(scene_dirty); -#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT - if (m_extra_frame_requested || mouse3d_controller_applied || imgui_requires_extra_frame || wxGetApp().imgui()->requires_extra_frame()) { -#else if (m_extra_frame_requested || mouse3d_controller_applied) { m_dirty = true; -#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT m_extra_frame_requested = false; evt.RequestMore(); } - else - m_dirty = false; +#if ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT + else if (imgui_requires_extra_frame || wxGetApp().imgui()->requires_extra_frame()) { + // ImGui settling a window or fading a tooltip. + m_overlay_dirty = true; + evt.RequestMore(); + } +#endif // ENABLE_ENHANCED_IMGUI_SLIDER_FLOAT } void GLCanvas3D::on_char(wxKeyEvent& evt) @@ -4124,6 +4187,12 @@ void GLCanvas3D::on_set_color_timer(wxTimerEvent& evt) m_timer_set_color.Stop(); } +void GLCanvas3D::on_fps_overlay_timer(wxTimerEvent& evt) +{ + m_fps_overlay_tick = true; + _set_overlay_as_dirty(); + wxWakeUpIdle(); +} void GLCanvas3D::schedule_extra_frame(int milliseconds) { @@ -4301,11 +4370,18 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) if (evt.LeftUp() || evt.MiddleUp() || evt.RightUp()) mouse_up_cleanup(); - render(); + // Hovering an ImGui window only changes the overlay. + const bool overlay_only = evt.Moving() && !m_mouse.dragging; + // ImGui takes a press or a release only inside a frame. Motion is rendered from on_idle(). + if (evt.ButtonDown() || evt.ButtonUp() || evt.ButtonDClick()) + _render_frame(true); #ifdef SLIC3R_DEBUG_MOUSE_EVENTS printf((format_mouse_event_debug_message(evt) + " - Consumed by ImGUI\n").c_str()); #endif /* SLIC3R_DEBUG_MOUSE_EVENTS */ - m_dirty = true; + if (overlay_only) + _set_overlay_as_dirty(); + else + m_dirty = true; // do not return if dragging or tooltip not empty to allow for tooltip update // also, do not return if the mouse is moving and also is inside MM gizmo to allow update seed fill selection if (!m_mouse.dragging && m_tooltip.is_empty() && (m_gizmos.get_current_type() != GLGizmosManager::MmSegmentation || !evt.Moving())) @@ -4448,6 +4524,9 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) wxGetApp().obj_list()->selection_changed(); } + // A gizmo that acts on a click or a drag may not request a frame itself. + if (!evt.Moving()) + m_dirty = true; return; } @@ -4939,7 +5018,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) if (m_selection.is_empty()) m_gizmos.reset_all_states(); - m_dirty = true; + _set_overlay_as_dirty(); } else evt.Skip(); @@ -4989,6 +5068,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) void GLCanvas3D::on_paint(wxPaintEvent& evt) { + m_presented_signature.reset(); if (m_initialized) { #ifdef __WXMSW__ // Idle events are not dispatched during the Windows resize modal loop, @@ -5542,7 +5622,11 @@ void GLCanvas3D::update_gizmos_on_off_state() void GLCanvas3D::handle_sidebar_focus_event(const std::string& opt_key, bool focus_on) { - m_sidebar_field = focus_on ? opt_key : ""; + const std::string field = focus_on ? opt_key : ""; + // The gizmo panels report this on every build. + if (m_sidebar_field == field) + return; + m_sidebar_field = field; //BBS: this event was sent from gizmo now, no need to clear gizmo //if (!m_sidebar_field.empty()) @@ -6640,6 +6724,9 @@ void GLCanvas3D::render_thumbnail_internal(ThumbnailData& thumbnail_data, const //if (thumbnail_params.transparent_background) // glsafe(::glClearColor(1.0f, 1.0f, 1.0f, 1.0f)); BOOST_LOG_TRIVIAL(info) << boost::format("render_thumbnail: finished"); + + // Puts the canvas viewport back in place of the thumbnail one set above. + wxGetApp().plater()->get_camera().apply_viewport(); } void GLCanvas3D::render_thumbnail_framebuffer(ThumbnailData& thumbnail_data, unsigned int w, unsigned int h, const ThumbnailsParams& thumbnail_params, @@ -6890,9 +6977,6 @@ void GLCanvas3D::render_thumbnail_legacy(ThumbnailData& thumbnail_data, unsigned #if ENABLE_THUMBNAIL_GENERATOR_DEBUG_OUTPUT debug_output_thumbnail(thumbnail_data); #endif // ENABLE_THUMBNAIL_GENERATOR_DEBUG_OUTPUT - - // restore the default framebuffer size to avoid flickering on the 3D scene - //wxGetApp().plater()->get_camera().apply_viewport(); } //BBS: GUI refractor @@ -7441,15 +7525,15 @@ void GLCanvas3D::_update_camera_zoom(double zoom) m_dirty = true; } -void GLCanvas3D::_refresh_if_shown_on_screen() +void GLCanvas3D::_refresh_if_shown_on_screen(bool scene_dirty) { if (_is_shown_on_screen()) { const Size& cnv_size = get_canvas_size(); _resize((unsigned int)cnv_size.get_width(), (unsigned int)cnv_size.get_height()); // Because of performance problems on macOS, where PaintEvents are not delivered - // frequently enough, we call render() here directly when we can. - render(); + // frequently enough, we render here directly when we can. + _render_frame(scene_dirty); } } @@ -7841,6 +7925,36 @@ bool GLCanvas3D::_is_fps_overlay_enabled() const return wxGetApp().app_config != nullptr && wxGetApp().app_config->get_bool(SETTING_OPENGL_SHOW_FPS_OVERLAY); } +bool GLCanvas3D::_is_scene_cache_enabled() const +{ + return wxGetApp().app_config != nullptr && wxGetApp().app_config->get_bool(SETTING_OPENGL_SCENE_CACHE); +} + +bool GLCanvas3D::_is_scene_cacheable() const +{ + if (!_is_scene_cache_enabled()) + return false; + +#ifdef SLIC3R_CAD + // The Design tab draws its sketch overlay, ImGui included, inside the scene. + if (m_design_sketch_tool != nullptr && m_design_sketch_tool->has_display()) + return false; +#endif + + // The scene follows the cursor during a drag, under a gizmo that draws at the cursor, and while + // the cursor is on the layer height bar, where the object shader draws a band at its height. + const GLGizmoBase* gizmo = m_gizmos.get_current(); + const bool cursor_on_layers_bar = is_layers_editing_enabled() && + m_layers_editing.bar_rect_contains(*this, (float)m_mouse.position.x(), (float)m_mouse.position.y()); + return !m_mouse.dragging && !m_gizmos.is_dragging() && !m_rectangle_selection.is_dragging() && + (gizmo == nullptr || !gizmo->render_follows_cursor()) && !cursor_on_layers_bar; +} + +bool GLCanvas3D::_is_frame_skipping_enabled() const +{ + return wxGetApp().app_config != nullptr && wxGetApp().app_config->get_bool(SETTING_OPENGL_SKIP_IDENTICAL_FRAMES); +} + void GLCanvas3D::_render_fps_overlay(int fps) const { if (fps < 0) @@ -7861,6 +7975,8 @@ void GLCanvas3D::_render_fps_overlay(int fps) const ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoInputs); imgui.text(std::string("FPS: ") + std::to_string(fps)); + // The subset of those frames that redrew the scene rather than reusing the cached one. + imgui.text(std::string("3D: ") + std::to_string(m_render_stats.get_scene_fps())); imgui.end(); } @@ -7873,23 +7989,7 @@ void GLCanvas3D::_render_fxaa_pass(unsigned int width, unsigned int height) if (shader == nullptr) return; - if (m_fxaa_texture_id == 0) { - glsafe(::glGenTextures(1, &m_fxaa_texture_id)); - glsafe(::glBindTexture(GL_TEXTURE_2D, m_fxaa_texture_id)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); - glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); - glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); - } - - glsafe(::glBindTexture(GL_TEXTURE_2D, m_fxaa_texture_id)); - if (m_fxaa_texture_size[0] != width || m_fxaa_texture_size[1] != height) { - glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr)); - m_fxaa_texture_size = { width, height }; - } - - glsafe(::glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, width, height)); + GLTexture::copy_from_framebuffer(m_fxaa_texture_id, m_fxaa_texture_size, width, height, GL_LINEAR); glsafe(::glDisable(GL_DEPTH_TEST)); glsafe(::glDisable(GL_BLEND)); @@ -8065,6 +8165,51 @@ void GLCanvas3D::_render_ssao_pass(unsigned int width, unsigned int height) glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); } +SceneCache::Key GLCanvas3D::_scene_cache_key(const Camera& camera) const +{ + SceneCache::Key key; + const std::array<int, 4>& viewport = camera.get_viewport(); + key.size = { { (unsigned int)viewport[2], (unsigned int)viewport[3] } }; + key.view_matrix = camera.get_view_matrix(); + key.projection_matrix = camera.get_projection_matrix(); + // Hover reaches the scene only through the sinking contour a hovered volume draws over + // itself (GLVolumeCollection::render()), the plate icons (PartPlate::render_icons()) and the + // open gizmo's grabbers. + for (size_t i = 0; i < m_volumes.volumes.size(); ++i) { + const GLVolume& volume = *m_volumes.volumes[i]; + if (volume.hover != GLVolume::HS_None && volume.is_sinking() && !volume.is_below_printbed()) + key.sinking_hover_volume_idxs.emplace_back((int)i); + } + for (int id : m_hover_plate_idxs) { + if (id % PartPlate::GRABBER_COUNT != 0) + key.hover_plate_icon_idxs.emplace_back(id); + } + const GLGizmoBase* gizmo = m_gizmos.get_current(); + key.gizmo_hover_id = gizmo != nullptr ? gizmo->get_hover_id() : -1; + key.render_preview = m_render_preview; + return key; +} + +bool GLCanvas3D::_can_reuse_cached_scene(const Camera& camera) const +{ + return _is_scene_cacheable() && m_scene_cache.matches(_scene_cache_key(camera)); +} + +void GLCanvas3D::_capture_scene_cache(const Camera& camera) +{ + if (!_is_scene_cache_enabled()) { + m_scene_cache.reset(); + return; + } + + if (!_is_scene_cacheable()) { + m_scene_cache.invalidate(); + return; + } + + m_scene_cache.capture(_scene_cache_key(camera)); +} + void GLCanvas3D::_render_background() { bool use_error_color = false; @@ -8792,7 +8937,12 @@ void GLCanvas3D::_render_wireframe_overlay() //BBS: GUI refactor: add canvas size as parameters void GLCanvas3D::_render_gcode(int canvas_width, int canvas_height) { - m_gcode_viewer.render(canvas_width, canvas_height, SLIDER_RIGHT_MARGIN * GCODE_VIEWER_SLIDER_SCALE); + m_gcode_viewer.render_scene(canvas_width, canvas_height); +} + +void GLCanvas3D::_render_gcode_overlay(int canvas_width, int canvas_height) +{ + m_gcode_viewer.render_overlay(canvas_width, canvas_height, SLIDER_RIGHT_MARGIN * GCODE_VIEWER_SLIDER_SCALE); IMSlider *layers_slider = m_gcode_viewer.get_layers_slider(); IMSlider *moves_slider = m_gcode_viewer.get_moves_slider(); @@ -8924,20 +9074,14 @@ void GLCanvas3D::_check_and_update_toolbar_icon_scale() wxGetApp().set_auto_toolbar_icon_scale(new_scale); } +// The ImGui half of the overlay, drawn by ImGui at the end of the frame. void GLCanvas3D::_render_overlays() { - glsafe(::glDisable(GL_DEPTH_TEST)); - _check_and_update_toolbar_icon_scale(); _render_assemble_control(); _render_assemble_info(); - _render_separator_toolbar_right(); - _render_separator_toolbar_left(); - _render_main_toolbar(); - _render_collapse_toolbar(); - _render_assemble_view_toolbar(); //BBS: GUI refactor: GLToolbar _render_imgui_select_plate_toolbar(); _render_return_toolbar(); @@ -8945,12 +9089,13 @@ void GLCanvas3D::_render_overlays() //_render_view_toolbar(); _render_paint_toolbar(); - //BBS: GUI refactor: GLToolbar - //move gizmos behind of main - _render_gizmos_overlay(); + // The options window of a pressed toolbar item (arrange). + m_main_toolbar.render_item_windows(*this); + + m_gizmos.render_overlay_input_window(); if (m_layers_editing.last_object_id >= 0 && m_layers_editing.object_max_z() > 0.0f) - m_layers_editing.render_overlay(*this); + m_layers_editing.render_variable_layer_height_dialog(*this); auto curr_plate = wxGetApp().plater()->get_partplate_list().get_curr_plate(); auto curr_print_seq = curr_plate->get_real_print_seq(); @@ -8977,6 +9122,40 @@ void GLCanvas3D::_render_overlays() _render_3d_navigator(); _render_canvas_toolbar(); + + // Recorded by the scene pass, which a reused frame skips. + wxGetApp().plater()->get_partplate_list().render_hover_tooltip(); +} + +// The GL half of the overlay. +void GLCanvas3D::_render_overlay_toolbars() +{ + glsafe(::glDisable(GL_DEPTH_TEST)); + + _render_separator_toolbar_right(); + _render_separator_toolbar_left(); + _render_main_toolbar(); + _render_collapse_toolbar(); + _render_assemble_view_toolbar(); + //BBS: GUI refactor: GLToolbar + //move gizmos behind of main + _render_gizmos_overlay(); + + if (m_layers_editing.last_object_id >= 0 && m_layers_editing.object_max_z() > 0.0f) + m_layers_editing.render_overlay(*this); +} + +size_t GLCanvas3D::_overlay_signature(const ImDrawData* draw_data) const +{ + // The recorded ImGui geometry plus the state of the toolbars and the gizmo bar, which draw + // outside ImGui. + size_t hash = ImGuiWrapper::draw_data_signature(draw_data); + for (size_t state_hash : { m_main_toolbar.get_state_hash(), m_separator_toolbar.get_state_hash(), + m_assemble_view_toolbar.get_state_hash(), + wxGetApp().plater()->get_collapse_toolbar().get_state_hash(), + m_gizmos.get_overlay_state_hash() }) + boost::hash_combine(hash, state_hash); + return hash; } void GLCanvas3D::_render_style_editor() diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index ada132072b..fe6108d39f 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -5,6 +5,7 @@ #include <memory> #include <chrono> #include <cstdint> +#include <optional> #include "GLToolbar.hpp" #include "Event.hpp" @@ -17,6 +18,7 @@ #include "GCodeViewer.hpp" #include "Camera.hpp" #include "SceneRaycaster.hpp" +#include "SceneCache.hpp" #include "IMToolbar.hpp" #include "slic3r/GUI/3DBed.hpp" #include "libslic3r/Slicing.hpp" @@ -33,6 +35,7 @@ class wxTimerEvent; class wxPaintEvent; class wxGLCanvas; class wxGLContext; +struct ImDrawData; // Support for Retina OpenGL on Mac OS. // wxGTK3 seems to simulate OSX behavior in regard to HiDPI scaling support, enable it as well. @@ -402,16 +405,23 @@ class GLCanvas3D std::chrono::time_point<std::chrono::high_resolution_clock> m_measuring_start; int m_fps_out = -1; int m_fps_running = 0; + // Frames that redrew the 3D scene rather than reusing the cached one. + int m_scene_fps_out = 0; + int m_scene_fps_running = 0; public: void increment_fps_counter() { ++m_fps_running; } + void increment_scene_fps_counter() { ++m_scene_fps_running; } int get_fps() { return m_fps_out; } + int get_scene_fps() const { return m_scene_fps_out; } int get_fps_and_reset_if_needed() { auto cur_time = std::chrono::high_resolution_clock::now(); int elapsed_ms = std::chrono::duration_cast<std::chrono::milliseconds>(cur_time-m_measuring_start).count(); if (elapsed_ms > 1000 || m_fps_out == -1) { m_measuring_start = cur_time; m_fps_out = int (1000. * m_fps_running / elapsed_ms); + m_scene_fps_out = int (1000. * m_scene_fps_running / elapsed_ms); m_fps_running = 0; + m_scene_fps_running = 0; } return m_fps_out; } @@ -533,6 +543,10 @@ private: bool m_in_render; wxTimer m_timer; wxTimer m_timer_set_color; + // Armed by each frame that draws the FPS overlay; its tick requests an overlay-only frame. + wxTimer m_fps_overlay_timer; + // True during the frame the timer requested, which is not counted. + bool m_fps_overlay_tick{ false }; LayersEditing m_layers_editing; Mouse m_mouse; GLGizmosManager m_gizmos; @@ -600,6 +614,8 @@ private: // Screen is only refreshed from the OnIdle handler if it is dirty. bool m_dirty; + // A frame is needed, and only for the overlay. + bool m_overlay_dirty{ false }; bool m_initialized; //BBS: add flag to controll rendering bool m_render_preview{ true }; @@ -755,6 +771,11 @@ public: unsigned int m_ssao_color_texture_id{ 0 }; unsigned int m_ssao_depth_texture_id{ 0 }; std::array<unsigned int, 2> m_ssao_texture_size{ { 0, 0 } }; + // The last scene pass, for frames that only rebuild the overlay. + SceneCache m_scene_cache; + // Signature of the overlay on screen; empty after render(), a paint request or a frame drawn but + // not shown, so the next frame is presented regardless. + std::optional<size_t> m_presented_signature; GLModel m_plate_shadow_mask; std::string m_plate_shadow_mask_key; // Depth-based shadow map used to cast object shadows onto other objects and themselves. @@ -1077,6 +1098,7 @@ public: void on_timer(wxTimerEvent& evt); void on_render_timer(wxTimerEvent& evt); void on_set_color_timer(wxTimerEvent& evt); + void on_fps_overlay_timer(wxTimerEvent& evt); void on_mouse(wxMouseEvent& evt); void on_gesture(wxGestureEvent& evt); void on_paint(wxPaintEvent& evt); @@ -1274,7 +1296,7 @@ private: void _zoom_to_box(const BoundingBoxf3& box, double margin_factor = DefaultCameraZoomToBoxMarginFactor); void _update_camera_zoom(double zoom); - void _refresh_if_shown_on_screen(); + void _refresh_if_shown_on_screen(bool scene_dirty = true); void _picking_pass(); void _rectangular_selection_picking_pass(); @@ -1282,9 +1304,21 @@ private: bool _is_ssao_enabled() const; int _get_effective_fps_cap() const; bool _is_fps_overlay_enabled() const; + bool _is_scene_cache_enabled() const; + bool _is_scene_cacheable() const; + bool _is_frame_skipping_enabled() const; void _render_fps_overlay(int fps) const; void _render_fxaa_pass(unsigned int width, unsigned int height); void _render_ssao_pass(unsigned int width, unsigned int height); + // scene_dirty is false only for a frame that its requester knows to be overlay-only. + void _render_frame(bool scene_dirty, bool only_init = false); + void _render_scene(const Camera& camera, const Size& cnv_size); + // Request a frame that only rebuilds the overlay. + void _set_overlay_as_dirty() { m_overlay_dirty = true; } + // These read the hover state _picking_pass() sets. + SceneCache::Key _scene_cache_key(const Camera& camera) const; + bool _can_reuse_cached_scene(const Camera& camera) const; + void _capture_scene_cache(const Camera& camera); void _render_background(); void _render_bed(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool show_axes); // Build the light-space depth shadow map (consumed by gouraud/phong for object & self shadows) @@ -1301,6 +1335,7 @@ private: void _render_wireframe_overlay(); //BBS: GUI refactor: add canvas size as parameters void _render_gcode(int canvas_width, int canvas_height); + void _render_gcode_overlay(int canvas_width, int canvas_height); //BBS: render a plane for assemble void _render_plane() const; void _render_selection(); @@ -1310,6 +1345,8 @@ private: #endif // ENABLE_RENDER_SELECTION_CENTER void _check_and_update_toolbar_icon_scale(); void _render_overlays(); + void _render_overlay_toolbars(); + size_t _overlay_signature(const ImDrawData* draw_data) const; void _render_style_editor(); void _render_volumes_for_picking(const Camera& camera) const; void _render_current_gizmo() const; diff --git a/src/slic3r/GUI/GLTexture.cpp b/src/slic3r/GUI/GLTexture.cpp index fbdb308c56..3df368de3f 100644 --- a/src/slic3r/GUI/GLTexture.cpp +++ b/src/slic3r/GUI/GLTexture.cpp @@ -707,6 +707,29 @@ void GLTexture::render_sub_texture(unsigned int tex_id, float left, float right, glsafe(::glDisable(GL_BLEND)); } +void GLTexture::copy_from_framebuffer(unsigned int& tex_id, std::array<unsigned int, 2>& tex_size, unsigned int width, unsigned int height, int filter) +{ + if (tex_id == 0) { + glsafe(::glGenTextures(1, &tex_id)); + glsafe(::glBindTexture(GL_TEXTURE_2D, tex_id)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE)); + glsafe(::glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE)); + } + else + glsafe(::glBindTexture(GL_TEXTURE_2D, tex_id)); + + if (tex_size[0] != width || tex_size[1] != height) { + glsafe(::glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr)); + tex_size = { width, height }; + } + + // Copying from the default framebuffer resolves its multisampling. + glsafe(::glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, width, height)); + glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); +} + static bool to_squared_power_of_two(const std::string& filename, int max_size_px, int& w, int& h) { auto is_power_of_two = [](int v) { return v != 0 && (v & (v - 1)) == 0; }; diff --git a/src/slic3r/GUI/GLTexture.hpp b/src/slic3r/GUI/GLTexture.hpp index 1bb63651f0..5e3d11984d 100644 --- a/src/slic3r/GUI/GLTexture.hpp +++ b/src/slic3r/GUI/GLTexture.hpp @@ -4,6 +4,7 @@ #include <atomic> #include <string> #include <vector> +#include <array> #include <thread> #include <wx/colour.h> @@ -132,6 +133,9 @@ namespace GUI { static void render_texture(unsigned int tex_id, float left, float right, float bottom, float top); static void render_sub_texture(unsigned int tex_id, float left, float right, float bottom, float top, const Quad_UVs& uvs); + // Copies the bound read framebuffer into an RGBA texture, creating it on first use and + // reallocating it when the size changes. + static void copy_from_framebuffer(unsigned int& tex_id, std::array<unsigned int, 2>& tex_size, unsigned int width, unsigned int height, int filter); private: bool load_from_png(const std::string& filename, bool use_mipmaps, ECompressionType compression_type, bool apply_anisotropy); diff --git a/src/slic3r/GUI/GLToolbar.cpp b/src/slic3r/GUI/GLToolbar.cpp index 234340dc6b..e36385c946 100644 --- a/src/slic3r/GUI/GLToolbar.cpp +++ b/src/slic3r/GUI/GLToolbar.cpp @@ -8,6 +8,8 @@ #include "slic3r/GUI/Camera.hpp" #include "slic3r/GUI/Plater.hpp" +#include <boost/functional/hash.hpp> + #include <wx/event.h> #include <wx/bitmap.h> #include <wx/dcmemory.h> @@ -199,7 +201,10 @@ void GLToolbarItem::render(unsigned int tex_id, float left, float right, float b }; GLTexture::render_sub_texture(tex_id, left, right, bottom, top, uvs(tex_width, tex_height, icon_size)); +} +void GLToolbarItem::render_window(float left, float right, float bottom, float top) const +{ if (is_pressed()) { if ((m_last_action_type == Left) && m_data.left.can_render()) @@ -215,13 +220,6 @@ void GLToolbarItem::render_image(unsigned int tex_id, float left, float right, f //GLTexture::Quad_UVs image_uvs = { { 0.0f, 1.0f }, { 1.0f, 1.0f }, { 1.0f, 0.0f }, { 0.0f, 0.0f } }; GLTexture::render_sub_texture(tex_id, left, right, bottom, top, image_uvs); - - if (is_pressed()) { - if ((m_last_action_type == Left) && m_data.left.can_render()) - m_data.left.render_callback(left, right, bottom, top); - else if ((m_last_action_type == Right) && m_data.right.can_render()) - m_data.right.render_callback(left, right, bottom, top); - } } BackgroundTexture::Metadata::Metadata() @@ -544,11 +542,35 @@ void GLToolbar::render(const GLCanvas3D& parent,GLToolbarItem::EType type) switch (m_layout.type) { default: - case Layout::Horizontal: { render_horizontal(parent,type); break; } - case Layout::Vertical: { render_vertical(parent); break; } + case Layout::Horizontal: { render_horizontal(parent, type, true); break; } + case Layout::Vertical: { render_vertical(parent, true); break; } } } +void GLToolbar::render_item_windows(const GLCanvas3D& parent) +{ + if (!m_enabled || m_items.empty()) + return; + + switch (m_layout.type) + { + default: + case Layout::Horizontal: { render_horizontal(parent, GLToolbarItem::Action, false); break; } + case Layout::Vertical: { render_vertical(parent, false); break; } + } +} + +size_t GLToolbar::get_state_hash() const +{ + size_t hash = 0; + boost::hash_combine(hash, m_enabled); + for (const GLToolbarItem* item : m_items) { + boost::hash_combine(hash, (int)item->get_state()); + boost::hash_combine(hash, item->is_visible()); + } + return hash; +} + bool GLToolbar::on_mouse(wxMouseEvent& evt, GLCanvas3D& parent) { if (!m_enabled) @@ -1354,7 +1376,7 @@ void GLToolbar::render_arrow(const GLCanvas3D& parent, GLToolbarItem* highlighte } } -void GLToolbar::render_horizontal(const GLCanvas3D& parent,GLToolbarItem::EType type) +void GLToolbar::render_horizontal(const GLCanvas3D& parent, GLToolbarItem::EType type, bool draw_icons) { const Size cnv_size = parent.get_canvas_size(); const float cnv_w = (float)cnv_size.get_width(); @@ -1385,7 +1407,8 @@ void GLToolbar::render_horizontal(const GLCanvas3D& parent,GLToolbarItem::EType right = left + width * 0.5; const float bottom = top - height; - render_background(left, top, right, bottom, border_w, border_h); + if (draw_icons) + render_background(left, top, right, bottom, border_w, border_h); left += border_w; top -= border_h; @@ -1400,7 +1423,9 @@ void GLToolbar::render_horizontal(const GLCanvas3D& parent,GLToolbarItem::EType else { //BBS GUI refactor item->render_left_pos = left; - if (!item->is_action_with_text_image()) { + if (!draw_icons) + item->render_window(left, left + icons_size_x, top - icons_size_y, top); + else if (!item->is_action_with_text_image()) { unsigned int tex_id = m_icons_texture.get_id(); int tex_width = m_icons_texture.get_width(); int tex_height = m_icons_texture.get_height(); @@ -1412,7 +1437,8 @@ void GLToolbar::render_horizontal(const GLCanvas3D& parent,GLToolbarItem::EType if (item->is_action_with_text()) { float scaled_text_size = item->get_extra_size_ratio() * icons_size_x; - item->render_text(left + icons_size_x, left + icons_size_x + scaled_text_size, top - icons_size_y, top); + if (draw_icons) + item->render_text(left + icons_size_x, left + icons_size_x + scaled_text_size, top - icons_size_y, top); left += scaled_text_size; } left += icon_stride; @@ -1420,7 +1446,7 @@ void GLToolbar::render_horizontal(const GLCanvas3D& parent,GLToolbarItem::EType } } -void GLToolbar::render_vertical(const GLCanvas3D& parent) +void GLToolbar::render_vertical(const GLCanvas3D& parent, bool draw_icons) { const Size cnv_size = parent.get_canvas_size(); const float cnv_w = (float)cnv_size.get_width(); @@ -1449,7 +1475,8 @@ void GLToolbar::render_vertical(const GLCanvas3D& parent) const float right = left + width; const float bottom = top - height; - render_background(left, top, right, bottom, border_w, border_h); + if (draw_icons) + render_background(left, top, right, bottom, border_w, border_h); left += border_w; top -= border_h; @@ -1462,6 +1489,11 @@ void GLToolbar::render_vertical(const GLCanvas3D& parent) if (item->is_separator()) top -= separator_stride; else { + if (!draw_icons) { + item->render_window(left, left + icons_size_x, top - icons_size_y, top); + top -= icon_stride; + continue; + } unsigned int tex_id; int tex_width, tex_height; if (item->is_action_with_text_image()) { diff --git a/src/slic3r/GUI/GLToolbar.hpp b/src/slic3r/GUI/GLToolbar.hpp index c4bc88045e..638ac937d4 100644 --- a/src/slic3r/GUI/GLToolbar.hpp +++ b/src/slic3r/GUI/GLToolbar.hpp @@ -231,6 +231,8 @@ public: int generate_image_texture(); void render(unsigned int tex_id, float left, float right, float bottom, float top, unsigned int tex_width, unsigned int tex_height, unsigned int icon_size) const; + // The ImGui window a pressed item shows, given the icon's rectangle. + void render_window(float left, float right, float bottom, float top) const; void render_image(unsigned int tex_id, float left, float right, float bottom, float top, unsigned int tex_width, unsigned int tex_height, unsigned int icon_size) const; private: void set_visible(bool visible) { m_data.visible = visible; } @@ -410,6 +412,10 @@ public: bool update_items_state(); void render(const GLCanvas3D& parent,GLToolbarItem::EType type = GLToolbarItem::Action); + // The ImGui windows of pressed items, built with the same layout as render(). + void render_item_windows(const GLCanvas3D& parent); + // Hash of the state render() draws from: enabled, and each item's state and visibility. + size_t get_state_hash() const; void render_arrow(const GLCanvas3D& parent, GLToolbarItem* highlighted_item); bool on_mouse(wxMouseEvent& evt, GLCanvas3D& parent); @@ -438,8 +444,8 @@ private: int contains_mouse_vertical(const Vec2d& mouse_pos, const GLCanvas3D& parent) const; void render_background(float left, float top, float right, float bottom, float border_w, float border_h) const; - void render_horizontal(const GLCanvas3D &parent, GLToolbarItem::EType type); - void render_vertical(const GLCanvas3D& parent); + void render_horizontal(const GLCanvas3D &parent, GLToolbarItem::EType type, bool draw_icons); + void render_vertical(const GLCanvas3D& parent, bool draw_icons); bool generate_icons_texture(); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 5d4be5e9f0..ab53b773a2 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -8467,12 +8467,14 @@ void GUI_App::open_exportpresetbundledialog(size_t open_on_tab, const std::strin void GUI_App::open_preferences(size_t open_on_tab, const std::string& highlight_option) { - static constexpr const char* opengl_fxaa_setting_key = "opengl_fxaa_enabled"; - static constexpr const char* opengl_fps_cap_setting_key = "opengl_fps_cap"; - static constexpr const char* opengl_show_fps_overlay_setting_key = "opengl_show_fps_overlay"; - const std::string previous_opengl_fxaa = app_config->get(opengl_fxaa_setting_key); - const std::string previous_opengl_fps_cap = app_config->get(opengl_fps_cap_setting_key); - const std::string previous_opengl_show_fps_overlay = app_config->get(opengl_show_fps_overlay_setting_key); + // Render settings the canvas reads every frame; a change needs one redraw to show. + static constexpr const char* opengl_render_setting_keys[] = { + SETTING_OPENGL_FXAA_ENABLED, SETTING_OPENGL_FPS_CAP, SETTING_OPENGL_SHOW_FPS_OVERLAY, SETTING_OPENGL_SCENE_CACHE, + SETTING_OPENGL_SKIP_IDENTICAL_FRAMES + }; + std::vector<std::string> previous_opengl_render_settings; + for (const char* key : opengl_render_setting_keys) + previous_opengl_render_settings.emplace_back(app_config->get(key)); bool need_recreate_gui = false; std::string pending_language; @@ -8512,10 +8514,10 @@ void GUI_App::open_preferences(size_t open_on_tab, const std::string& highlight_ } } - const bool opengl_fxaa_changed = app_config->get(opengl_fxaa_setting_key) != previous_opengl_fxaa; - const bool opengl_fps_cap_changed = app_config->get(opengl_fps_cap_setting_key) != previous_opengl_fps_cap; - const bool opengl_show_fps_overlay_changed = app_config->get(opengl_show_fps_overlay_setting_key) != previous_opengl_show_fps_overlay; - if ((opengl_fxaa_changed || opengl_fps_cap_changed || opengl_show_fps_overlay_changed) && !need_recreate_gui && this->plater_ != nullptr) { + bool opengl_render_settings_changed = false; + for (size_t i = 0; i < previous_opengl_render_settings.size(); ++i) + opengl_render_settings_changed |= app_config->get(opengl_render_setting_keys[i]) != previous_opengl_render_settings[i]; + if (opengl_render_settings_changed && !need_recreate_gui && this->plater_ != nullptr) { this->plater_->set_current_canvas_as_dirty(); this->plater_->get_current_canvas3D()->force_set_focus(); } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp b/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp index b1b163ed9d..e686d5bb8f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp @@ -69,6 +69,7 @@ bool GLGizmoAssembly::on_is_activable() const void GLGizmoAssembly::on_render_input_window(float x, float y, float bottom_limit) { + render_dimensioning_if_scene_reused(); static std::optional<Measure::SurfaceFeature> last_feature; static EMode last_mode = EMode::FeatureSelection; static SelectedFeatures last_selected_features; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp index 73e0484977..92491d0d44 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp @@ -179,6 +179,8 @@ public: bool is_selectable() const { return on_is_selectable(); } CommonGizmosDataID get_requirements() const { return on_get_requirements(); } virtual bool wants_enter_leave_snapshots() const { return false; } + // True when what on_render() draws would change if the cursor moved. + virtual bool render_follows_cursor() const { return false; } virtual std::string get_gizmo_entering_text() const { assert(false); return ""; } virtual std::string get_gizmo_leaving_text() const { assert(false); return ""; } virtual std::string get_action_snapshot_name() const; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp index cd3bc53cbd..075fb37b21 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp @@ -167,6 +167,8 @@ protected: std::string on_get_name() const override; bool on_is_activable() const override; + // The preview ear is drawn only while the cursor is on the model. + bool render_follows_cursor() const override { return render_hover_point.has_value(); } //bool on_is_selectable() const override; virtual CommonGizmosDataID on_get_requirements() const override; void on_load(cereal::BinaryInputArchive& ar) override; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp index 6f7d6fed58..ba2f54d5c5 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp @@ -563,8 +563,30 @@ void GLGizmoMeasure::init_plane_glmodel(GripperType gripper_type, const Measure: } } +bool GLGizmoMeasure::render_follows_cursor() const +{ + // The two raycasts on_render() starts with, without their side effects. + if (m_editing_distance) + return false; + + const Vec2d mouse_position = m_parent.get_local_mouse_position(); + const Camera& camera = wxGetApp().plater()->get_camera(); + Vec3f hit = Vec3f::Zero(); + Vec3f normal = Vec3f::Zero(); + for (const auto& item : m_gripper_id_raycast_map) { + if (item.second->get_id() > 0 && item.second->get_raycaster()->closest_hit(mouse_position, item.second->get_transform(), camera, hit, normal)) + return true; + } + for (const auto& item : m_mesh_raycaster_map) { + if (item.second->get_raycaster()->unproject_on_mesh(mouse_position, item.second->get_transform(), camera, hit, normal)) + return true; + } + return false; +} + void GLGizmoMeasure::on_render() { + m_rendered_this_frame = true; #if ENABLE_MEASURE_GIZMO_DEBUG render_debug_dialog(); #endif // ENABLE_MEASURE_GIZMO_DEBUG @@ -701,35 +723,36 @@ void GLGizmoMeasure::on_render() reset_gripper_pick(GripperType::UNDEFINE, true); m_curr_feature = curr_feature; - if (!m_curr_feature.has_value()) - return; - m_curr_feature->volume = m_last_hit_volume; - m_curr_feature->world_tran = m_mesh_raycaster_map[m_last_hit_volume]->get_transform(); + // The selected features are drawn below whether or not one is hovered. + if (m_curr_feature.has_value()) { + m_curr_feature->volume = m_last_hit_volume; + m_curr_feature->world_tran = m_mesh_raycaster_map[m_last_hit_volume]->get_transform(); - switch (m_curr_feature->get_type()) { - default: { assert(false); break; } - case Measure::SurfaceFeatureType::Point: - { - m_gripper_id_raycast_map[GripperType::POINT] = std::make_shared<PickRaycaster>(POINT_ID, *m_sphere.mesh_raycaster); - break; - } - case Measure::SurfaceFeatureType::Edge: - { - m_gripper_id_raycast_map[GripperType::EDGE] = std::make_shared<PickRaycaster>(EDGE_ID, *m_cylinder.mesh_raycaster); - break; - } - case Measure::SurfaceFeatureType::Circle: { - m_curr_circle.last_circle_feature = nullptr; - m_curr_circle.inv_zoom = 0; - init_circle_glmodel(GripperType::CIRCLE, *m_curr_feature, m_curr_circle,inv_zoom); - break; - } - case Measure::SurfaceFeatureType::Plane: { - update_world_plane_features(m_curr_measuring.get(), *m_curr_feature); - m_curr_plane.plane_idx = -1; - init_plane_glmodel(GripperType::PLANE, *m_curr_feature, m_curr_plane); - break; - } + switch (m_curr_feature->get_type()) { + default: { assert(false); break; } + case Measure::SurfaceFeatureType::Point: + { + m_gripper_id_raycast_map[GripperType::POINT] = std::make_shared<PickRaycaster>(POINT_ID, *m_sphere.mesh_raycaster); + break; + } + case Measure::SurfaceFeatureType::Edge: + { + m_gripper_id_raycast_map[GripperType::EDGE] = std::make_shared<PickRaycaster>(EDGE_ID, *m_cylinder.mesh_raycaster); + break; + } + case Measure::SurfaceFeatureType::Circle: { + m_curr_circle.last_circle_feature = nullptr; + m_curr_circle.inv_zoom = 0; + init_circle_glmodel(GripperType::CIRCLE, *m_curr_feature, m_curr_circle,inv_zoom); + break; + } + case Measure::SurfaceFeatureType::Plane: { + update_world_plane_features(m_curr_measuring.get(), *m_curr_feature); + m_curr_plane.plane_idx = -1; + init_plane_glmodel(GripperType::PLANE, *m_curr_feature, m_curr_plane); + break; + } + } } } } @@ -2136,8 +2159,18 @@ void GLGizmoMeasure::init_render_input_window() m_same_model_object = is_two_volume_in_same_model_object(); } +void GLGizmoMeasure::render_dimensioning_if_scene_reused() +{ + // The labels are ImGui and live one frame; the lines drawn with them land under the cached + // scene, which is drawn after the overlay is built. + if (!m_rendered_this_frame) + render_dimensioning(); + m_rendered_this_frame = false; +} + void GLGizmoMeasure::on_render_input_window(float x, float y, float bottom_limit) { + render_dimensioning_if_scene_reused(); static std::optional<Measure::SurfaceFeature> last_feature; static EMode last_mode = EMode::FeatureSelection; static SelectedFeatures last_selected_features; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp index 3965652c05..40cb3bab1f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.hpp @@ -228,6 +228,9 @@ protected: void restore_scene_raycasters_state(); void render_dimensioning(); + // Builds the dimension labels on a frame that reused the cached scene and so skipped on_render(). + void render_dimensioning_if_scene_reused(); + bool m_rendered_this_frame{ false }; #if ENABLE_MEASURE_GIZMO_DEBUG void render_debug_dialog(); @@ -255,6 +258,9 @@ protected: bool on_init() override; std::string on_get_name() const override; bool on_is_activable() const override; + // The hover is resolved inside on_render(), against the mesh and against the grippers of the + // selected features, which sit off the mesh. + bool render_follows_cursor() const override; void on_render() override; void on_set_state() override; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp index 3dcf51cbb5..d90579e589 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.cpp @@ -131,15 +131,12 @@ void GLGizmoPainterBase::render_triangles(const Selection& selection) const } } -void GLGizmoPainterBase::render_cursor() +std::vector<Transform3d> GLGizmoPainterBase::mesh_trafo_matrices() const { - // First check that the mouse pointer is on an object. const ModelObject* mo = m_c->selection_info()->model_object(); const Selection& selection = m_parent.get_selection(); const ModelInstance* mi = mo->instances[selection.get_instance_idx()]; - const Camera& camera = wxGetApp().plater()->get_camera(); - // Precalculate transformations of individual meshes. std::vector<Transform3d> trafo_matrices; for (const ModelVolume* mv : mo->volumes) { if (mv->is_model_part()) @@ -154,6 +151,26 @@ void GLGizmoPainterBase::render_cursor() } } } + return trafo_matrices; +} + +bool GLGizmoPainterBase::render_follows_cursor() const +{ + // The brush is drawn only where the cursor meets the model. update_raycast_cache() keeps the + // answer for render_cursor(). + if (m_c->selection_info() == nullptr || m_c->selection_info()->model_object() == nullptr) + return false; + update_raycast_cache(m_parent.get_local_mouse_position(), wxGetApp().plater()->get_camera(), mesh_trafo_matrices()); + return m_rr.mesh_id != -1; +} + +void GLGizmoPainterBase::render_cursor() +{ + // First check that the mouse pointer is on an object. + const Camera& camera = wxGetApp().plater()->get_camera(); + + // Precalculate transformations of individual meshes. + const std::vector<Transform3d> trafo_matrices = mesh_trafo_matrices(); // Raycast and return if there's no hit. update_raycast_cache(m_parent.get_local_mouse_position(), camera, trafo_matrices); if (m_rr.mesh_id == -1) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp index 8ec1cb1fb0..63e9d3f436 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp @@ -318,6 +318,8 @@ private: std::vector<ProjectedHeightRange> get_projected_height_range(const Vec2d& mouse_position, double resolution, const std::vector<const ModelVolume*>& part_volumes, const std::vector<Transform3d>& trafo_matrices) const; bool is_mesh_point_clipped(const Vec3d& point, const Transform3d& trafo) const; + // World transforms of the model parts, in mo->volumes order. + std::vector<Transform3d> mesh_trafo_matrices() const; void update_raycast_cache(const Vec2d& mouse_position, const Camera& camera, const std::vector<Transform3d>& trafo_matrices) const; @@ -370,6 +372,7 @@ protected: virtual PainterGizmoType get_painter_type() const = 0; bool on_is_activable() const override; + bool render_follows_cursor() const override; bool on_is_selectable() const override; void on_load(cereal::BinaryInputArchive& ar) override; void on_save(cereal::BinaryOutputArchive& ar) const override {} diff --git a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp index 64e566805e..5243c8294f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosCommon.cpp @@ -410,6 +410,10 @@ void ObjectClipper::set_position_by_ratio(double pos, bool keep_normal, bool ver void ObjectClipper::set_range_and_pos(const Vec3d& cpl_normal, double cpl_offset, double pos) { + // Called every frame by GLGizmoCut3D::on_render(), usually with the plane already set. + if (m_clp && *m_clp == ClippingPlane(cpl_normal, cpl_offset) && m_clp_ratio == pos) + return; + m_clp.reset(new ClippingPlane(cpl_normal, cpl_offset)); m_clp_ratio = pos; get_pool()->get_canvas()->set_as_dirty(); diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 8f4c320a5b..17a7b769c3 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -36,6 +36,8 @@ #include "libslic3r/Model.hpp" #include "libslic3r/PresetBundle.hpp" +#include <boost/functional/hash.hpp> + #include <wx/glcanvas.h> namespace Slic3r { @@ -631,6 +633,7 @@ void GLGizmosManager::render_painter_assemble_view() const m_assemble_view_data->model_objects_clipper()->render_cut(); } +// The icon bar, drawn with GL. void GLGizmosManager::render_overlay() { if (!m_enabled) @@ -639,7 +642,27 @@ void GLGizmosManager::render_overlay() if (m_icons_texture_dirty) generate_icons_texture(); - do_render_overlay(); + do_render_overlay(true); +} + +// The open gizmo's settings panel, ImGui. +void GLGizmosManager::render_overlay_input_window() +{ + if (!m_enabled) + return; + + do_render_overlay(false); +} + +size_t GLGizmosManager::get_overlay_state_hash() const +{ + size_t hash = 0; + boost::hash_combine(hash, m_enabled); + boost::hash_combine(hash, (int)m_hover); + boost::hash_combine(hash, (int)m_current); + boost::hash_combine(hash, (int)m_highlight.first); + boost::hash_combine(hash, m_highlight.second); + return hash; } std::string GLGizmosManager::get_tooltip() const @@ -1222,7 +1245,9 @@ void GLGizmosManager::render_arrow(const GLCanvas3D& parent, EType highlighted_t //BBS: GUI refactor: GLToolbar&&Gizmo adjust //when rendering, {0, 0} is at the center, {-0.5, 0.5} at the left-top -void GLGizmosManager::do_render_overlay() const +// draw_icons selects the icon bar (GL) or the open gizmo's input window (ImGui), placed by the same +// layout walk. +void GLGizmosManager::do_render_overlay(bool draw_icons) const { const std::vector<size_t> selectable_idxs = get_selectable_idxs(); if (selectable_idxs.empty()) @@ -1261,7 +1286,8 @@ void GLGizmosManager::do_render_overlay() const } float top_y = 1.0f; - render_background(top_x, top_y, top_x + width, top_y - height, border_w, border_h); + if (draw_icons) + render_background(top_x, top_y, top_x + width, top_y - height, border_w, border_h); top_x += border_w; top_y -= border_h; @@ -1298,7 +1324,8 @@ void GLGizmosManager::do_render_overlay() const const float v_top = v_offset + sprite_id * dv; const float v_bottom = v_top + dv - v_offset; - GLTexture::render_sub_texture(icons_texture_id, top_x, top_x + icons_size_x, top_y - icons_size_y, top_y, { { u_left, v_bottom }, { u_right, v_bottom }, { u_right, v_top }, { u_left, v_top } }); + if (draw_icons) + GLTexture::render_sub_texture(icons_texture_id, top_x, top_x + icons_size_x, top_y - icons_size_y, top_y, { { u_left, v_bottom }, { u_right, v_bottom }, { u_right, v_top }, { u_left, v_top } }); if (idx == m_current // Orca: Show Svg dialog at the same place as emboss gizmo || (m_current == Svg && idx == Emboss)) { @@ -1306,7 +1333,8 @@ void GLGizmosManager::do_render_overlay() const //render_input_window uses a different coordination(imgui) //1. no need to scale by camera zoom, set {0,0} at left-up corner for imgui //gizmo->render_input_window(width, 0.5f * cnv_h - zoomed_top_y * zoom, toolbar_top); - m_gizmos[m_current]->render_input_window(0.5 * cnv_w + 0.5f * top_x * cnv_w, get_scaled_total_height(), cnv_h); + if (!draw_icons) + m_gizmos[m_current]->render_input_window(0.5 * cnv_w + 0.5f * top_x * cnv_w, get_scaled_total_height(), cnv_h); is_render_current = true; } @@ -1314,7 +1342,7 @@ void GLGizmosManager::do_render_overlay() const } // BBS simplify gizmo is not a selected gizmo and need to render input window - if (!is_render_current && m_current != Undefined) { + if (!draw_icons && !is_render_current && m_current != Undefined) { m_gizmos[m_current]->render_input_window(0.5 * cnv_w + 0.5f * top_x * cnv_w, get_scaled_total_height(), cnv_h); } } diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp index d490a6c05f..5f249d2ef7 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp @@ -296,6 +296,9 @@ public: void render_painter_assemble_view() const; void render_overlay(); + void render_overlay_input_window(); + // Hash of the state render_overlay() draws from: enabled, hover, current and highlight. + size_t get_overlay_state_hash() const; void render_arrow(const GLCanvas3D& parent, EType highlighted_type) const; @@ -329,7 +332,7 @@ private: void render_background(float left, float top, float right, float bottom, float border_w, float border_h) const; - void do_render_overlay() const; + void do_render_overlay(bool draw_icons) const; bool generate_icons_texture(); diff --git a/src/slic3r/GUI/ImGuiWrapper.cpp b/src/slic3r/GUI/ImGuiWrapper.cpp index cf107565e3..3ccbc6745a 100644 --- a/src/slic3r/GUI/ImGuiWrapper.cpp +++ b/src/slic3r/GUI/ImGuiWrapper.cpp @@ -590,11 +590,39 @@ void ImGuiWrapper::new_frame() // BBL: end copy & paste } -void ImGuiWrapper::render() +ImDrawData* ImGuiWrapper::end_frame() { ImGui::Render(); - render_draw_data(ImGui::GetDrawData()); m_new_frame_open = false; + return ImGui::GetDrawData(); +} + +void ImGuiWrapper::render(ImDrawData* draw_data) +{ + render_draw_data(draw_data); +} + +ImGuiID ImGuiWrapper::draw_data_signature(const ImDrawData* draw_data) +{ + ImGuiID hash = 0; + if (draw_data == nullptr) + return hash; + + for (int i = 0; i < draw_data->CmdListsCount; ++i) { + const ImDrawList* list = draw_data->CmdLists[i]; + hash = ImHashData(list->VtxBuffer.Data, list->VtxBuffer.Size * sizeof(ImDrawVert), hash); + hash = ImHashData(list->IdxBuffer.Data, list->IdxBuffer.Size * sizeof(ImDrawIdx), hash); + // ImDrawCmd has padding, and a hovered ImageButton3() differs only in TextureId. + for (const ImDrawCmd& cmd : list->CmdBuffer) { + hash = ImHashData(&cmd.ClipRect, sizeof(cmd.ClipRect), hash); + hash = ImHashData(&cmd.TextureId, sizeof(cmd.TextureId), hash); + hash = ImHashData(&cmd.VtxOffset, sizeof(cmd.VtxOffset), hash); + hash = ImHashData(&cmd.IdxOffset, sizeof(cmd.IdxOffset), hash); + hash = ImHashData(&cmd.ElemCount, sizeof(cmd.ElemCount), hash); + hash = ImHashData(&cmd.UserCallback, sizeof(cmd.UserCallback), hash); + } + } + return hash; } ImVec2 ImGuiWrapper::calc_text_size(std::string_view text, diff --git a/src/slic3r/GUI/ImGuiWrapper.hpp b/src/slic3r/GUI/ImGuiWrapper.hpp index db94b3edcb..ad83d50d2d 100644 --- a/src/slic3r/GUI/ImGuiWrapper.hpp +++ b/src/slic3r/GUI/ImGuiWrapper.hpp @@ -98,7 +98,11 @@ public: const ImWchar *get_glyph_ranges() const { return m_glyph_ranges; } // language specific void new_frame(); - void render(); + // Ends the frame and returns its draw data without drawing it. + ImDrawData* end_frame(); + void render(ImDrawData* draw_data); + // Hash of every draw list's vertices, indices and commands. + static ImGuiID draw_data_signature(const ImDrawData* draw_data); float scaled(float x) const { return x * m_font_size; } ImVec2 scaled(float x, float y) const { return ImVec2(x * m_font_size, y * m_font_size); } diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index ba0d9580dc..428f45c845 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -1115,19 +1115,9 @@ void PartPlate::render_plate_name_texture() glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); } -void PartPlate::show_tooltip(const std::string tooltip) +void PartPlate::set_hover_tooltip(const std::string& tooltip) { - const auto scale = m_plater->get_current_canvas3D()->get_scale(); - ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, {6 * scale, 3 * scale}); - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 3 * scale); - ImGui::PushStyleColor(ImGuiCol_PopupBg, ImGuiWrapper::COL_WINDOW_BACKGROUND); - ImGui::PushStyleColor(ImGuiCol_Border, {0, 0, 0, 0}); - ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.00f, 1.00f, 1.00f, 1.00f)); - ImGui::BeginTooltip(); - ImGui::TextUnformatted(tooltip.c_str()); - ImGui::EndTooltip(); - ImGui::PopStyleColor(3); - ImGui::PopStyleVar(2); + m_partplate_list->m_hover_tooltip = tooltip; } void PartPlate::render_icons(bool bottom, bool only_name, int hover_id) @@ -1152,21 +1142,21 @@ void PartPlate::render_icons(bool bottom, bool only_name, int hover_id) if (!only_name) { if (hover_id == 1) { render_icon_texture(m_del_icon.model, m_partplate_list->m_del_hovered_texture); - show_tooltip(_u8L("Remove current plate (if not last one)")); + set_hover_tooltip(_u8L("Remove current plate (if not last one)")); } else render_icon_texture(m_del_icon.model, m_partplate_list->m_del_texture); if (hover_id == 2) { render_icon_texture(m_orient_icon.model, m_partplate_list->m_orient_hovered_texture); - show_tooltip(_u8L("Auto orient objects on current plate")); + set_hover_tooltip(_u8L("Auto orient objects on current plate")); } else render_icon_texture(m_orient_icon.model, m_partplate_list->m_orient_texture); if (hover_id == 3) { render_icon_texture(m_arrange_icon.model, m_partplate_list->m_arrange_hovered_texture); - show_tooltip(_u8L("Arrange objects on current plate")); + set_hover_tooltip(_u8L("Arrange objects on current plate")); } else render_icon_texture(m_arrange_icon.model, m_partplate_list->m_arrange_texture); @@ -1175,12 +1165,12 @@ void PartPlate::render_icons(bool bottom, bool only_name, int hover_id) if (this->is_locked()) { render_icon_texture(m_lock_icon.model, m_partplate_list->m_locked_hovered_texture); - show_tooltip(_u8L("Unlock current plate")); + set_hover_tooltip(_u8L("Unlock current plate")); } else { render_icon_texture(m_lock_icon.model, m_partplate_list->m_lockopen_hovered_texture); - show_tooltip(_u8L("Lock current plate")); + set_hover_tooltip(_u8L("Lock current plate")); } } else { if (this->is_locked()) @@ -1194,21 +1184,21 @@ void PartPlate::render_icons(bool bottom, bool only_name, int hover_id) if (dual_bbl) { if (hover_id == PLATE_FILAMENT_MAP_ID){ render_icon_texture(m_plate_filament_map_icon.model, m_partplate_list->m_plate_set_filament_map_hovered_texture); - show_tooltip(_u8L("Filament grouping")); + set_hover_tooltip(_u8L("Filament grouping")); } else render_icon_texture(m_plate_filament_map_icon.model, m_partplate_list->m_plate_set_filament_map_texture); } if (hover_id == 6) { render_icon_texture(m_plate_name_edit_icon.model, m_partplate_list->m_plate_name_edit_hovered_texture); - show_tooltip(_u8L("Edit current plate name")); + set_hover_tooltip(_u8L("Edit current plate name")); } else render_icon_texture(m_plate_name_edit_icon.model, m_partplate_list->m_plate_name_edit_texture); if (hover_id == 7) { render_icon_texture(m_move_front_icon.model, m_partplate_list->m_move_front_hovered_texture); - show_tooltip(_u8L("Move plate to the front")); + set_hover_tooltip(_u8L("Move plate to the front")); } else render_icon_texture(m_move_front_icon.model, m_partplate_list->m_move_front_texture); @@ -1221,7 +1211,7 @@ void PartPlate::render_icons(bool bottom, bool only_name, int hover_id) else render_icon_texture(m_plate_settings_icon.model, m_partplate_list->m_plate_settings_changed_hovered_texture); - show_tooltip(_u8L("Customize current plate")); + set_hover_tooltip(_u8L("Customize current plate")); } else { if (!has_plate_settings) render_icon_texture(m_plate_settings_icon.model, m_partplate_list->m_plate_settings_texture); @@ -6002,6 +5992,24 @@ void PartPlateList::render(const Transform3d& view_matrix, const Transform3d& pr } } +void PartPlateList::render_hover_tooltip() const +{ + if (m_hover_tooltip.empty()) + return; + + const auto scale = m_plater->get_current_canvas3D()->get_scale(); + ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, {6 * scale, 3 * scale}); + ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 3 * scale); + ImGui::PushStyleColor(ImGuiCol_PopupBg, ImGuiWrapper::COL_WINDOW_BACKGROUND); + ImGui::PushStyleColor(ImGuiCol_Border, {0, 0, 0, 0}); + ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.00f, 1.00f, 1.00f, 1.00f)); + ImGui::BeginTooltip(); + ImGui::TextUnformatted(m_hover_tooltip.c_str()); + ImGui::EndTooltip(); + ImGui::PopStyleColor(3); + ImGui::PopStyleVar(2); +} + /*int PartPlateList::select_plate_by_hover_id(int hover_id) { int index = hover_id / PartPlate::GRABBER_COUNT; diff --git a/src/slic3r/GUI/PartPlate.hpp b/src/slic3r/GUI/PartPlate.hpp index c05775a963..9bee917243 100644 --- a/src/slic3r/GUI/PartPlate.hpp +++ b/src/slic3r/GUI/PartPlate.hpp @@ -197,7 +197,7 @@ private: // void render_left_arrow(const ColorRGBA render_color, bool use_lighting) const; // void render_right_arrow(const ColorRGBA render_color, bool use_lighting) const; void render_icon_texture(GLModel &buffer, GLTexture &texture); - void show_tooltip(const std::string tooltip); + void set_hover_tooltip(const std::string& tooltip); void render_icons(bool bottom, bool only_name = false, int hover_id = -1); void render_only_numbers(bool bottom); void render_plate_name_texture(); @@ -640,6 +640,8 @@ class PartPlateList : public ObjectBase bool render_bedtype_logo = true; bool render_plate_settings = true; bool render_cali_logo = true; + // Tooltip of the plate icon the last scene pass drew hovered; the canvas overlay shows it. + std::string m_hover_tooltip; bool m_is_dark = false; @@ -860,6 +862,8 @@ public: void render(const Transform3d& view_matrix, const Transform3d& projection_matrix, bool bottom, bool only_current = false, bool only_body = false, int hover_id = -1, bool render_cali = false, bool show_grid = true, bool hide_chrome = false); void set_render_option(bool bedtype_texture, bool plate_settings); void set_render_cali(bool value = true) { render_cali_logo = value; } + void render_hover_tooltip() const; + void clear_hover_tooltip() { m_hover_tooltip.clear(); } void register_raycasters_for_picking(GLCanvas3D& canvas) { for (auto plate : m_plate_list) diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index 628c9069ca..adda0edd74 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -1005,6 +1005,7 @@ wxBoxSizer *PreferencesDialog::create_item_checkbox(wxString title, wxString too checkbox->SetToolTip(tip); if (param == "sync_user_preset") { m_sync_user_preset_checkbox = checkbox; } + if (param == SETTING_OPENGL_SKIP_IDENTICAL_FRAMES) { m_skip_identical_frames_checkbox = checkbox; } m_sizer->Add(checkbox, 0, wxALIGN_CENTER); @@ -1031,6 +1032,9 @@ wxBoxSizer *PreferencesDialog::create_item_checkbox(wxString title, wxString too } BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " sync_user_preset: " << (sync ? "true" : "false"); } + else if (param == SETTING_OPENGL_SCENE_CACHE) { + if (m_skip_identical_frames_checkbox) m_skip_identical_frames_checkbox->Enable(checkbox->GetValue()); + } else if (param == "stealth_mode") { bool enabled = app_config->get_stealth_mode(); if (enabled) wxGetApp().on_stealth_mode_enter(); @@ -1959,9 +1963,32 @@ void PreferencesDialog::create_items() ); g_sizer->Add(item_fps_cap); + auto item_scene_cache = create_item_checkbox( + _L("Reuse the 3D scene while idle"), + _L("Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" + "and reuses the previous frame's scene instead. Reduces GPU load.\n" + "Disable it if the viewport shows stale or missing contents.\n\n" + "Takes effect immediately."), + SETTING_OPENGL_SCENE_CACHE + ); + g_sizer->Add(item_scene_cache); + + auto item_skip_identical_frames = create_item_checkbox( + _L("Skip unchanged frames"), + _L("Skips drawing a frame altogether when it would be identical to the one already on screen.\n" + "Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" + "Disable it if a hover highlight, tooltip or animation stops updating.\n\n" + "Takes effect immediately."), + SETTING_OPENGL_SKIP_IDENTICAL_FRAMES + ); + g_sizer->Add(item_skip_identical_frames); + if (m_skip_identical_frames_checkbox) m_skip_identical_frames_checkbox->Enable(app_config->get_bool(SETTING_OPENGL_SCENE_CACHE)); + auto item_fps_overlay = create_item_checkbox( _L("Show FPS overlay"), - _L("Displays current viewport FPS in the top-right corner."), + _L("Displays rendering counts in the top-right corner of the viewport.") + "\n" + + _L("FPS: frames presented to the screen per second.") + "\n" + + _L("3D: frames per second that redrew the 3D scene."), SETTING_OPENGL_SHOW_FPS_OVERLAY ); g_sizer->Add(item_fps_overlay); diff --git a/src/slic3r/GUI/Preferences.hpp b/src/slic3r/GUI/Preferences.hpp index 94340ce619..5ab7fb1919 100644 --- a/src/slic3r/GUI/Preferences.hpp +++ b/src/slic3r/GUI/Preferences.hpp @@ -71,6 +71,7 @@ public: ::CheckBox * m_dark_mode_ckeckbox = {nullptr}; ::CheckBox * m_sync_user_preset_checkbox = {nullptr}; ::CheckBox * m_bambu_cloud_checkbox = {nullptr}; + ::CheckBox * m_skip_identical_frames_checkbox = {nullptr}; ::TextInput *m_backup_interval_textinput = {nullptr}; ::SpinInput *m_dim_previous_layers_brightness_input = {nullptr}; ::ComboBox * m_network_version_combo = {nullptr}; diff --git a/src/slic3r/GUI/SceneCache.cpp b/src/slic3r/GUI/SceneCache.cpp new file mode 100644 index 0000000000..a72e32695f --- /dev/null +++ b/src/slic3r/GUI/SceneCache.cpp @@ -0,0 +1,62 @@ +#include "libslic3r/libslic3r.h" +#include "SceneCache.hpp" + +#include "3DScene.hpp" +#include "GLModel.hpp" +#include "GLShader.hpp" +#include "GLTexture.hpp" +#include "GUI_App.hpp" + +#include <glad/gl.h> + +namespace Slic3r { +namespace GUI { + +void SceneCache::capture(Key key) +{ + m_valid = false; + + if (wxGetApp().get_shader("flat_texture") == nullptr) + return; + + GLTexture::copy_from_framebuffer(m_texture_id, m_texture_size, key.size[0], key.size[1], GL_NEAREST); + + m_key = std::move(key); + m_valid = true; +} + +void SceneCache::render(GLModel& quad) +{ + GLShaderProgram* shader = wxGetApp().get_shader("flat_texture"); + + glsafe(::glDisable(GL_DEPTH_TEST)); + glsafe(::glDisable(GL_BLEND)); + + shader->start_using(); + shader->set_uniform("view_model_matrix", Transform3d::Identity()); + shader->set_uniform("projection_matrix", Transform3d::Identity()); + shader->set_uniform("uniform_texture", 0); + + glsafe(::glActiveTexture(GL_TEXTURE0)); + glsafe(::glBindTexture(GL_TEXTURE_2D, m_texture_id)); + quad.render(); + glsafe(::glBindTexture(GL_TEXTURE_2D, 0)); + shader->stop_using(); + + glsafe(::glEnable(GL_DEPTH_TEST)); + glsafe(::glEnable(GL_BLEND)); + glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); +} + +void SceneCache::reset() +{ + m_valid = false; + if (m_texture_id != 0) { + glsafe(::glDeleteTextures(1, &m_texture_id)); + m_texture_id = 0; + } + m_texture_size = { { 0, 0 } }; +} + +} // namespace GUI +} // namespace Slic3r diff --git a/src/slic3r/GUI/SceneCache.hpp b/src/slic3r/GUI/SceneCache.hpp new file mode 100644 index 0000000000..d645d2d2a6 --- /dev/null +++ b/src/slic3r/GUI/SceneCache.hpp @@ -0,0 +1,56 @@ +#pragma once + +#include "libslic3r/Point.hpp" + +#include <array> +#include <vector> + +namespace Slic3r { +namespace GUI { + +class GLModel; + +// The last 3D scene pass, kept as a texture for frames that only rebuild the overlay. +class SceneCache +{ +public: + // Scene pass inputs that change without any frame request. + struct Key + { + std::array<unsigned int, 2> size{ { 0, 0 } }; + Transform3d view_matrix{ Transform3d::Identity() }; + Transform3d projection_matrix{ Transform3d::Identity() }; + // Hovered volumes that draw their sinking contour, hovered plate icons, hovered gizmo grabber. + std::vector<int> sinking_hover_volume_idxs; + std::vector<int> hover_plate_icon_idxs; + int gizmo_hover_id{ -1 }; + bool render_preview{ true }; + + bool operator == (const Key& other) const { + return size == other.size && render_preview == other.render_preview && + gizmo_hover_id == other.gizmo_hover_id && + sinking_hover_volume_idxs == other.sinking_hover_volume_idxs && + hover_plate_icon_idxs == other.hover_plate_icon_idxs && + view_matrix.isApprox(other.view_matrix) && + projection_matrix.isApprox(other.projection_matrix); + } + }; + + // Copies the bound read framebuffer, sized by key.size, and remembers key. + void capture(Key key); + bool matches(const Key& key) const { return m_valid && m_key == key; } + // Draws the last capture over the whole viewport, on the given full screen quad. + void render(GLModel& quad); + void invalidate() { m_valid = false; } + // Frees the texture. + void reset(); + +private: + unsigned int m_texture_id{ 0 }; + std::array<unsigned int, 2> m_texture_size{ { 0, 0 } }; + Key m_key; + bool m_valid{ false }; +}; + +} // namespace GUI +} // namespace Slic3r From 49c811ceb6f4215ab4b5faad25a4b6931b1afcfc Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Fri, 18 Sep 2026 18:54:43 -0500 Subject: [PATCH 43/76] fix: H2D extruder sync does nothing on the Motion ability page (#14931) --- src/slic3r/GUI/Tab.cpp | 21 ++++++--- .../test_config_variant_expansion.cpp | 44 +++++++++++++++++++ 2 files changed, 58 insertions(+), 7 deletions(-) diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 768d2023cc..a7e2d3ad3e 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -8386,17 +8386,19 @@ void Tab::sync_excluder() Preset & printer_preset = m_preset_bundle->printers.get_edited_preset(); auto nozzle_volumes = m_preset_bundle->project_config.option<ConfigOptionEnumsGeneric>("nozzle_volume_type"); auto extruders = printer_preset.config.option<ConfigOptionEnumsGeneric>("extruder_type"); + // Motion ability options hold a (normal, silent) pair per variant, so switch_excluder indexes that page with stride 2. + const int stride = m_active_page->title().StartsWith("Motion ability") ? 2 : 1; auto get_index_for_extruder = - [this, &extruders, variant_keys = extruder_variant_keys[m_type >= Preset::TYPE_COUNT ? Preset::TYPE_PRINT : m_type]](int extruder_id, NozzleVolumeType nozzle_type) { + [this, &extruders, stride, variant_keys = extruder_variant_keys[m_type >= Preset::TYPE_COUNT ? Preset::TYPE_PRINT : m_type]](int extruder_id, NozzleVolumeType nozzle_type) { return m_config->get_index_for_extruder(extruder_id + 1, variant_keys.first, - ExtruderType(extruders->values[extruder_id]), nozzle_type, variant_keys.second); + ExtruderType(extruders->values[extruder_id]), nozzle_type, variant_keys.second, stride); }; int active_index = get_current_active_extruder(); auto active_nozzle = get_actual_nozzle_volume_type(active_index); int from_index = get_index_for_extruder(active_index, active_nozzle); int dest_index = get_index_for_extruder(1 - active_index, active_nozzle); - auto from_str = std::to_string(from_index); - auto dest_str = std::to_string(dest_index); + if (from_index < 0 || dest_index < 0) // no variant column for this nozzle on one of the extruders + return; auto dirty_options = m_presets->current_dirty_options(true); DynamicConfig config_origin, config_to_apply; for (int i = 0; i < dirty_options.size(); ++i) { @@ -8409,16 +8411,21 @@ void Tab::sync_excluder() if (field == nullptr || line == nullptr) continue; ++n; - bool dirty = opt.substr(n) == from_str; + auto is_from_slot = [&](const std::string &dirty_opt) { + int slot = std::atoi(dirty_opt.c_str() + n); + return slot >= from_index && slot < from_index + stride; + }; + bool dirty = is_from_slot(opt); while (i + 1 < dirty_options.size() && dirty_options[i + 1].compare(0, n, opt, 0, n) == 0) { - dirty |= dirty_options[i + 1].substr(n) == from_str; + dirty |= is_from_slot(dirty_options[i + 1]); ++i; } if (dirty) { auto key = opt.substr(0, n - 1); auto option = dynamic_cast<ConfigOptionVectorBase*>(m_config->option(key)); auto option2 = dynamic_cast<ConfigOptionVectorBase*>(option->clone()); - option2->set_at(option, dest_index, from_index); + for (int s = 0; s < stride; ++s) + option2->set_at(option, dest_index + s, from_index + s); if (*option == *option2) { delete option2; continue; diff --git a/tests/libslic3r/test_config_variant_expansion.cpp b/tests/libslic3r/test_config_variant_expansion.cpp index d8e09539bb..274946cdca 100644 --- a/tests/libslic3r/test_config_variant_expansion.cpp +++ b/tests/libslic3r/test_config_variant_expansion.cpp @@ -594,3 +594,47 @@ TEST_CASE("update_values_from_multi_to_multi_2 sizes the destination row to the CHECK(object_config.update_values_from_multi_to_multi_2(src_variants, {}, dst, keys) == -1); } } + +TEST_CASE("get_index_for_extruder returns -1 when no variant column matches the extruder", "[Config]") +{ + DynamicPrintConfig config; + config.option<ConfigOptionInts>("print_extruder_id", true)->values = {1}; + config.option<ConfigOptionStrings>("print_extruder_variant", true)->values = {"Direct Drive Standard"}; + + SECTION("the extruder that owns the column resolves to its slot") { + REQUIRE(config.get_index_for_extruder(1, "print_extruder_id", etDirectDrive, nvtStandard, "print_extruder_variant") == 0); + } + + SECTION("an extruder with no matching column resolves to -1") { + REQUIRE(config.get_index_for_extruder(2, "print_extruder_id", etDirectDrive, nvtStandard, "print_extruder_variant") == -1); + } +} + +// stride scales the returned slot so callers can address stride-2 options (machine_max_*, a +// Normal/Silent pair per column) by their pair's base slot. The printer Tab's extruder sync +// relies on this to copy the right slots on the Motion ability page. +TEST_CASE("get_index_for_extruder scales the variant column by the requested stride", "[Config]") +{ + DynamicPrintConfig config; + config.option<ConfigOptionInts>("printer_extruder_id", true)->values = {1, 2}; + config.option<ConfigOptionStrings>("printer_extruder_variant", true)->values = {"Direct Drive Standard", + "Direct Drive High Flow"}; + + // extruder 1 resolves to column 0, extruder 2 to column 1 + const int col0_stride1 = config.get_index_for_extruder(1, "printer_extruder_id", etDirectDrive, nvtStandard, + "printer_extruder_variant", 1); + const int col1_stride1 = config.get_index_for_extruder(2, "printer_extruder_id", etDirectDrive, nvtHighFlow, + "printer_extruder_variant", 1); + REQUIRE(col0_stride1 == 0); + REQUIRE(col1_stride1 == 1); + + // stride 2 returns exactly twice the stride-1 index (the pair's base slot) + const int col0_stride2 = config.get_index_for_extruder(1, "printer_extruder_id", etDirectDrive, nvtStandard, + "printer_extruder_variant", 2); + const int col1_stride2 = config.get_index_for_extruder(2, "printer_extruder_id", etDirectDrive, nvtHighFlow, + "printer_extruder_variant", 2); + REQUIRE(col0_stride2 == col0_stride1 * 2); + REQUIRE(col1_stride2 == col1_stride1 * 2); + REQUIRE(col0_stride2 == 0); + REQUIRE(col1_stride2 == 2); +} From 29858ba925f381a9d59fabfca8a9d04a299b68cf Mon Sep 17 00:00:00 2001 From: Ian Bassi <ian.bassi@outlook.com> Date: Sat, 19 Sep 2026 01:16:10 -0300 Subject: [PATCH 44/76] Retry NSIS install and verify makensis on Windows CI (#15768) --- .github/workflows/build_orca.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index 53444ee16d..85458615b4 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -448,9 +448,26 @@ jobs: - name: Install nsis if: runner.os == 'Windows' && !vars.SELF_HOSTED + shell: pwsh + # The Chocolatey community feed intermittently 504s, and `choco install` + # exits 0 when package resolution fails that way. Unchecked, the job then + # builds for ~25 minutes before `cpack -G NSIS` reports a missing makensis. + # Retry the install and verify makensis itself, so a real failure stops here. run: | dir "C:/Program Files (x86)/Windows Kits/10/Include" - choco install nsis + $nsisDir = Join-Path ${env:ProgramFiles(x86)} 'NSIS' + $makensis = Join-Path $nsisDir 'makensis.exe' + for ($attempt = 1; $attempt -le 3 -and -not (Test-Path $makensis); $attempt++) { + if ($attempt -gt 1) { Start-Sleep -Seconds (15 * $attempt) } + Write-Host "::group::choco install nsis (attempt $attempt)" + choco install nsis --yes --no-progress + Write-Host "::endgroup::" + } + if (-not (Test-Path $makensis)) { + throw "NSIS install failed: $makensis not found after 3 attempts." + } + & $makensis /VERSION + $nsisDir | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8 - name: Build slicer Win if: runner.os == 'Windows' From caa15491c3694dc4f003fe79ed0410ed85eef205 Mon Sep 17 00:00:00 2001 From: Kiss Lorand <50251547+kisslorand@users.noreply.github.com> Date: Sat, 19 Sep 2026 19:19:54 +0300 Subject: [PATCH 45/76] Fix duplicate timelapse G-code on i3 printers (#15734) --- src/libslic3r/GCode.cpp | 2 +- tests/fff_print/test_print.cpp | 49 ++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 81fc81b488..d9cc1d4a11 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -5628,7 +5628,7 @@ LayerResult GCode::process_layer( m_layer = &layer; m_object_layer_over_raft = false; - if (!m_config.time_lapse_gcode.value.empty() && !is_BBL_Printer()) { + if (!need_insert_timelapse_gcode_for_traditional && !m_config.time_lapse_gcode.value.empty() && !is_BBL_Printer()) { DynamicConfig config; config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index)); config.set_key_value("layer_z", new ConfigOptionFloat(print_z)); diff --git a/tests/fff_print/test_print.cpp b/tests/fff_print/test_print.cpp index 6bff945fc3..d7cd965343 100644 --- a/tests/fff_print/test_print.cpp +++ b/tests/fff_print/test_print.cpp @@ -22,10 +22,59 @@ #include <algorithm> #include <fstream> #include <iterator> +#include <string_view> using namespace Slic3r; using namespace Slic3r::Test; +TEST_CASE("Timelapse g-code is emitted once per layer for Bambu and non-Bambu printers", "[Print][Regression]") +{ + struct PrinterCase { + std::string name; + std::string structure; + bool is_bbl; + }; + const PrinterCase printer = GENERATE(from_range(std::vector<PrinterCase>{ + { "non-BBL undefined", "undefine", false }, + { "non-BBL CoreXY", "corexy", false }, + { "non-BBL i3", "i3", false }, + { "non-BBL H-Bot", "hbot", false }, + { "non-BBL Delta", "delta", false }, + { "Bambu CoreXY", "corexy", true }, + { "Bambu i3", "i3", true }, + })); + INFO("printer: " << printer.name); + + DynamicPrintConfig config = DynamicPrintConfig::full_print_config(); + config.set_deserialize_strict({ + { "initial_layer_print_height", 0.2 }, + { "layer_change_gcode", ";TEST_LAYER_CHANGE" }, + { "layer_height", 0.2 }, + { "printer_structure", printer.structure }, + { "spiral_mode", false }, + { "time_lapse_gcode", "TIMELAPSE_TAKE_FRAME" }, + }); + Print print; + print.is_BBL_printer() = printer.is_bbl; + Model model; + init_print({ cube(20) }, print, model, config); + const std::string gcode = Slic3r::Test::gcode(print); + + const auto count = [&gcode](std::string_view token) { + size_t occurrences = 0; + size_t pos = 0; + while ((pos = gcode.find(token, pos)) != std::string::npos) { + ++occurrences; + pos += token.size(); + } + return occurrences; + }; + + const size_t layer_changes = count("\n;TEST_LAYER_CHANGE\n"); + REQUIRE(layer_changes > 0); + CHECK(count("\nTIMELAPSE_TAKE_FRAME\n") == layer_changes); +} + SCENARIO("Changing the number of solid shell layers does not make all surfaces internal", "[Print]") { GIVEN("sliced 20mm cube and config with top_shell_layers = 2 and bottom_shell_layers = 1") { Slic3r::DynamicPrintConfig config = Slic3r::DynamicPrintConfig::full_print_config(); From f114ef7cc991a2069b00519ae45524a7ab0fdae2 Mon Sep 17 00:00:00 2001 From: Gabriel Monteiro <bielpaes912@gmail.com> Date: Sat, 19 Sep 2026 14:38:19 -0300 Subject: [PATCH 46/76] fix(gui): restore zero default top margin for static boxes (#15775) --- src/slic3r/GUI/Widgets/StaticBox.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Widgets/StaticBox.hpp b/src/slic3r/GUI/Widgets/StaticBox.hpp index b41c18ccfd..b1aee505ce 100644 --- a/src/slic3r/GUI/Widgets/StaticBox.hpp +++ b/src/slic3r/GUI/Widgets/StaticBox.hpp @@ -59,7 +59,7 @@ protected: protected: double radius; int border_width = 1; - int top_margin = 1; + int top_margin = 0; wxPenStyle border_style = wxPENSTYLE_SOLID; StateHandler state_handler; StateColor border_color; From d650c395ff3acf7ced78a823861915697c73e3b2 Mon Sep 17 00:00:00 2001 From: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> Date: Sun, 20 Sep 2026 09:25:36 -0300 Subject: [PATCH 47/76] Preserve MMU paint in outline render (#15776) --- src/slic3r/GUI/3DScene.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index 6dbea1272a..fd23337b44 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -507,10 +507,10 @@ void GLVolume::render_with_outline(const GUI::Size& cnv_size) glsafe(::glClearStencil(0)); glsafe(::glClear(GL_STENCIL_BUFFER_BIT)); glsafe(::glStencilFunc(GL_ALWAYS, 0xFF, 0xFF)); - if (tverts_range == std::make_pair<size_t, size_t>(0, -1)) - model.render(shader); - else - model.render(this->tverts_range, shader); + // This pass paints the visible surface, so it must go through simple_render() to keep + // per-triangle MMU paint colors; the later is_outline passes only draw the flat silhouette + // highlight and are fine using the single-color model. + simple_render(shader, model_objects, colors); glsafe(::glStencilFunc(GL_NOTEQUAL, 0xFF, 0xFF)); glsafe(::glStencilMask(0x00)); shader->set_uniform("is_outline", true); @@ -670,6 +670,8 @@ void GLVolume::simple_render(GLShaderProgram* shader, ModelObjectPtrs& model_obj } while (0); if (color_volume && !picking) { + const bool brighten_selected = selected && !disabled && !force_native_color && !force_neutral_color; + // when force_transparent, we need to keep the alpha if (force_native_color && render_color.is_transparent()) { for (auto &extruder_color : extruder_colors) @@ -691,6 +693,8 @@ void GLVolume::simple_render(GLShaderProgram* shader, ModelObjectPtrs& model_obj int color_idx = std::clamp(extruder_id - 1, 0, int(extruder_colors.size()) - 1); //to make black not too hard too see ColorRGBA new_color = adjust_color_for_rendering(extruder_colors[color_idx]); + if (brighten_selected) + new_color = brighten_color(new_color, 1.25f); if (ban_light) { new_color[3] = (255 - color_idx)/255.0f; } @@ -702,6 +706,8 @@ void GLVolume::simple_render(GLShaderProgram* shader, ModelObjectPtrs& model_obj if (idx <= extruder_colors.size()) { //to make black not too hard too see ColorRGBA new_color = adjust_color_for_rendering(extruder_colors[idx - 1]); + if (brighten_selected) + new_color = brighten_color(new_color, 1.25f); if (ban_light) { new_color[3] = (255 - (idx - 1))/255.0f; } @@ -711,6 +717,8 @@ void GLVolume::simple_render(GLShaderProgram* shader, ModelObjectPtrs& model_obj else { //to make black not too hard too see ColorRGBA new_color = adjust_color_for_rendering(extruder_colors[0]); + if (brighten_selected) + new_color = brighten_color(new_color, 1.25f); if (ban_light) { new_color[3] = (255 - 0) / 255.0f; } From 2cd52edb33ae4f56e0596ed1a6f6e89d9b7fb264 Mon Sep 17 00:00:00 2001 From: hamham999 <jo.lackner@icloud.com> Date: Sun, 20 Sep 2026 15:23:00 +0200 Subject: [PATCH 48/76] Added and updated legacy and ender printer variants (#13948) --- resources/profiles/Creality.json | 1234 ++++++++++++++++- .../Creality CR-10 Smart Pro_cover.png | Bin 0 -> 269344 bytes .../Creality/Creality CR-10 Smart_cover.png | Bin 0 -> 44605 bytes .../Creality/Creality CR-10S Pro V2_cover.png | Bin 0 -> 248158 bytes .../Creality/Creality CR-10_cover.png | Bin 0 -> 199893 bytes .../Creality/Creality CR-20 Pro_cover.png | Bin 0 -> 247256 bytes .../Creality/Creality CR-M4 SE_cover.png | Bin 0 -> 133556 bytes .../Creality/Creality Ender-2 Pro_cover.png | Bin 0 -> 178826 bytes .../Creality Ender-3 Max Neo_cover.png | Bin 0 -> 238946 bytes .../Creality/Creality Ender-3 Max_cover.png | Bin 0 -> 83871 bytes .../Creality/Creality Ender-3 Neo_cover.png | Bin 0 -> 145615 bytes .../Creality Ender-3 S1 Sonic_cover.png | Bin 0 -> 177884 bytes .../Creality Ender-5 S1 Sonic_cover.png | Bin 0 -> 132637 bytes .../Creality Sermoon D3 Pro_cover.png | Bin 0 -> 308640 bytes .../Creality/Creality Sermoon D3_cover.png | Bin 0 -> 170093 bytes .../Creality/Creality Sermoon M300_cover.png | Bin 0 -> 126058 bytes .../Creality Sermoon V1 Pro_cover.png | Bin 0 -> 240411 bytes .../filament/CR-ABS @Ender-2 Pro-all.json | 155 +++ .../filament/CR-ABS @Ender-3 S1 Plus-all.json | 126 ++ .../filament/CR-ABS @Ender-3 S1 Pro-all.json | 126 ++ .../CR-ABS @Ender-3 S1 Sonic-all.json | 126 ++ .../filament/CR-ABS @Ender-3 S1-all.json | 126 ++ .../filament/CR-ABS @Ender-3 V3 KE-all.json | 151 ++ .../filament/CR-ABS @Ender-3 V3 Plus-all.json | 146 ++ .../filament/CR-ABS @Ender-3 V3-all.json | 172 +++ .../filament/CR-ABS @Ender-3-all.json | 138 ++ .../CR-ABS @Ender-5 S1 Sonic-all.json | 135 ++ .../filament/CR-ABS @Ender-5 S1-all.json | 135 ++ .../filament/CR-ABS @Sermoon D3 Pro-all.json | 166 +++ .../filament/CR-ABS @Sermoon M300-all.json | 160 +++ .../CR-Nylon @Ender-3 V3 Plus-all.json | 188 +++ .../filament/CR-PETG @CR-10 SE-all.json | 167 +++ .../CR-PETG @CR-10 Smart Pro-all.json | 133 ++ .../Creality/filament/CR-PETG @CR-10-all.json | 133 ++ .../filament/CR-PETG @CR-M4 SE-all.json | 170 +++ .../filament/CR-PETG @Ender-2 Pro-all.json | 135 ++ .../CR-PETG @Ender-3 S1 Plus-all.json | 144 ++ .../filament/CR-PETG @Ender-3 S1 Pro-all.json | 144 ++ .../CR-PETG @Ender-3 S1 Sonic-all.json | 147 ++ .../filament/CR-PETG @Ender-3 S1-all.json | 144 ++ .../filament/CR-PETG @Ender-3 V2-all.json | 131 ++ .../filament/CR-PETG @Ender-3 V3 KE-all.json | 142 ++ .../CR-PETG @Ender-3 V3 Plus-all.json | 169 +++ .../filament/CR-PETG @Ender-3 V3-all.json | 156 +++ .../filament/CR-PETG @Ender-3-all.json | 138 ++ .../CR-PETG @Ender-5 S1 Sonic-all.json | 165 +++ .../filament/CR-PETG @Ender-5 S1-all.json | 162 +++ .../filament/CR-PETG @Sermoon D3 Pro-all.json | 151 ++ .../filament/CR-PETG @Sermoon D3-all.json | 132 ++ .../filament/CR-PETG @Sermoon M300-all.json | 156 +++ .../filament/CR-PETG @Sermoon V1 Pro-all.json | 129 ++ .../Creality/filament/CR-PLA @CR-10-all.json | 151 ++ .../filament/CR-PLA @CR-M4 SE-all.json | 146 ++ .../filament/CR-PLA @Ender-2 Pro-all.json | 126 ++ .../filament/CR-PLA @Ender-3 S1 Plus-all.json | 123 ++ .../filament/CR-PLA @Ender-3 S1 Pro-all.json | 123 ++ .../CR-PLA @Ender-3 S1 Sonic-all.json | 126 ++ .../filament/CR-PLA @Ender-3 S1-all.json | 123 ++ .../filament/CR-PLA @Ender-3 V2-all.json | 128 ++ .../filament/CR-PLA @Ender-3 V3 KE-all.json | 151 ++ .../filament/CR-PLA @Ender-3 V3 Plus-all.json | 153 ++ .../filament/CR-PLA @Ender-3 V3 SE-all.json | 166 +++ .../filament/CR-PLA @Ender-3 V3-all.json | 163 +++ .../filament/CR-PLA @Ender-3-all.json | 123 ++ .../CR-PLA @Ender-5 S1 Sonic-all.json | 126 ++ .../filament/CR-PLA @Ender-5 S1-all.json | 123 ++ .../filament/CR-PLA @Sermoon D3-all.json | 144 ++ .../filament/CR-PLA @Sermoon M300-all.json | 162 +++ .../filament/CR-PLA @Sermoon V1 Pro-all.json | 144 ++ .../CR-PLA Carbon @Ender-3 V3 Plus-all.json | 162 +++ .../CR-PLA Carbon @Ender-3 V3-all.json | 162 +++ .../CR-PLA Fluo @Ender-3 V3 Plus-all.json | 153 ++ .../filament/CR-PLA Fluo @Ender-3 V3-all.json | 155 +++ .../filament/CR-PLA Matte @CR-10 SE-all.json | 155 +++ .../CR-PLA Matte @Ender-3 V3 Plus-all.json | 156 +++ .../CR-PLA Matte @Ender-3 V3-all.json | 158 +++ .../CR-Silk @Ender-3 V3 Plus-all.json | 156 +++ .../filament/CR-Silk @Ender-3 V3-all.json | 159 +++ .../filament/CR-Silk @Sermoon D3-all.json | 147 ++ .../filament/CR-Silk @Sermoon M300-all.json | 163 +++ .../filament/CR-TPU @CR-10 Smart Pro-all.json | 160 +++ .../Creality/filament/CR-TPU @CR-10-all.json | 160 +++ .../filament/CR-TPU @Ender-3 V2-all.json | 166 +++ .../filament/CR-TPU @Ender-3 V3 Plus-all.json | 156 +++ .../filament/CR-TPU @Ender-3 V3-all.json | 161 +++ .../filament/CR-TPU @Sermoon D3-all.json | 157 +++ .../filament/CR-TPU @Sermoon V1 Pro-all.json | 168 +++ .../CR-Wood @Ender-3 V3 Plus-all.json | 156 +++ .../filament/CR-Wood @Ender-3 V3-all.json | 158 +++ .../EN-PLA+ @Ender-3 V3 Plus-all.json | 153 ++ .../filament/EN-PLA+ @Ender-3 V3-all.json | 155 +++ .../Ender-PLA @CR-10 Smart Pro-all.json | 154 ++ .../Ender-PLA @Ender-3 V3 Plus-all.json | 150 ++ .../filament/Ender-PLA @Ender-3 V3-all.json | 158 +++ .../filament/Ender-PLA @Ender-5 Plus-all.json | 136 ++ .../filament/Generic ABS @CR-10 SE-all.json | 146 ++ .../Generic ABS @CR-10 Smart Pro-all.json | 141 ++ .../Generic ABS @CR-10 Smart-all.json | 155 +++ .../filament/Generic ABS @CR-10-all.json | 147 ++ .../Generic ABS @CR-10S Pro V2-all.json | 155 +++ .../filament/Generic ABS @CR-20 Pro-all.json | 158 +++ .../filament/Generic ABS @CR-6 SE-all.json | 144 ++ .../filament/Generic ABS @CR-M4-all.json | 140 ++ .../Generic ABS @Creality Ender-3V3-all.json | 4 +- .../filament/Generic ABS @Creality.json | 12 +- .../Generic ABS @Ender-3 Max Neo-all.json | 146 ++ .../Generic ABS @Ender-3 Max-all.json | 146 ++ .../Generic ABS @Ender-3 Neo-all.json | 143 ++ .../filament/Generic ABS @Ender-3 V2-all.json | 152 ++ .../Generic ABS @Ender-3 V3 Plus-all.json | 145 ++ .../filament/Generic ABS @Sermoon D3-all.json | 160 +++ .../Generic ABS @Sermoon M300-all.json | 155 +++ .../Generic ABS @Sermoon V1 Pro-all.json | 160 +++ .../Generic ASA @Creality Ender-3V3-all.json | 4 +- .../Generic ASA @Ender-3 V3 Plus-all.json | 139 ++ .../Generic ASA @Sermoon M300-all.json | 170 +++ .../Generic BVOH @Ender-3 V3 Plus-all.json | 159 +++ .../Generic HIPS @Ender-3 V3 Plus-all.json | 170 +++ .../Generic PA @Ender-3 V3 Plus-all.json | 164 +++ ...Generic PA-CF @Creality Ender-3V3-all.json | 4 +- .../Generic PA-CF @Ender-3 V3 Plus-all.json | 151 ++ .../Generic PA6-CF @Ender-3 V3 Plus-all.json | 185 +++ .../Generic PAHT-CF @Ender-3 V3 Plus-all.json | 194 +++ .../Generic PC @Ender-3 V3 Plus-all.json | 140 ++ .../Generic PET @Ender-3 V3 Plus-all.json | 185 +++ .../Generic PET-CF @Ender-3 V3 Plus-all.json | 173 +++ .../Generic PETG @CR-10 Smart-all.json | 132 ++ .../Generic PETG @CR-10S Pro V2-all.json | 132 ++ .../filament/Generic PETG @CR-20 Pro-all.json | 131 ++ .../filament/Generic PETG @CR-6 SE-all.json | 134 ++ .../filament/Generic PETG @CR-M4-all.json | 134 ++ .../Generic PETG @Creality Ender-3V3-all.json | 10 +- .../filament/Generic PETG @Creality.json | 7 +- .../Generic PETG @Ender-3 Max Neo-all.json | 131 ++ .../Generic PETG @Ender-3 Max-all.json | 131 ++ .../Generic PETG @Ender-3 Neo-all.json | 132 ++ .../Generic PETG @Ender-3 V3 Plus-all.json | 166 +++ .../Generic PETG @Ender-3 V3 SE-all.json | 148 ++ .../Generic PETG @Ender-3 V3-all.json | 153 ++ .../Generic PETG @Sermoon M300-all.json | 151 ++ .../Generic PETG-CF @Ender-3 V3 Plus-all.json | 164 +++ .../filament/Generic PLA @CR-10 SE-all.json | 173 +++ .../Generic PLA @CR-10 Smart-all.json | 151 ++ .../Generic PLA @CR-10S Pro V2-all.json | 160 +++ .../filament/Generic PLA @CR-20 Pro-all.json | 128 ++ .../filament/Generic PLA @CR-6 SE-all.json | 131 ++ .../filament/Generic PLA @CR-M4-all.json | 122 ++ .../Generic PLA @Creality Ender-3V3-all.json | 6 +- .../filament/Generic PLA @Creality.json | 11 +- .../Generic PLA @Ender-3 Max Neo-all.json | 128 ++ .../Generic PLA @Ender-3 Max-all.json | 128 ++ .../Generic PLA @Ender-3 Neo-all.json | 151 ++ .../Generic PLA @Ender-3 V3 Plus-all.json | 173 +++ .../filament/Generic PLA @Ender-3 V3-all.json | 168 +++ .../Generic PLA @Sermoon M300-all.json | 157 +++ .../Generic PLA-CF @Ender-3 V3 Plus-all.json | 162 +++ .../Generic PLA-CF @Ender-3 V3-all.json | 163 +++ .../Generic PLA-Silk @CR-10 SE-all.json | 164 +++ ...Generic PLA-Silk @Ender-3 V3 Plus-all.json | 165 +++ .../Generic PLA-Silk @Ender-3 V3-all.json | 157 +++ .../Generic PLA-Silk @Sermoon M300-all.json | 160 +++ .../Generic PP @Ender-3 V3 Plus-all.json | 155 +++ .../Generic PPS @Ender-3 V3 Plus-all.json | 170 +++ .../Generic PPS-CF @Ender-3 V3 Plus-all.json | 170 +++ .../Generic PVA @Ender-3 V3 Plus-all.json | 125 ++ .../filament/Generic TPU @CR-10 SE-all.json | 149 ++ .../Generic TPU @Creality Ender-3V3-all.json | 10 +- .../filament/Generic TPU @Creality.json | 4 - .../Generic TPU @Ender-2 Pro-all.json | 160 +++ .../Generic TPU @Ender-3 V3 Plus-all.json | 149 ++ .../Generic TPU @Ender-3 V3 SE-all.json | 151 ++ .../filament/Generic TPU @Ender-3 V3-all.json | 159 +++ .../HP Ultra PLA @Ender-3 V3 Plus-all.json | 156 +++ .../HP Ultra PLA @Ender-3 V3-all.json | 158 +++ .../filament/HP-ASA @CR-M4 SE-all.json | 178 +++ .../filament/HP-ASA @Ender-3 V3 KE-all.json | 148 ++ .../filament/HP-ASA @Ender-3 V3 Plus-all.json | 167 +++ .../HP-ASA @Ender-5 S1 Sonic-all.json | 135 ++ .../filament/HP-ASA @Ender-5 S1-all.json | 135 ++ .../filament/HP-ASA @Sermoon M300-all.json | 170 +++ .../filament/HP-TPU @CR-M4 SE-all.json | 173 +++ .../filament/HP-TPU @Ender-3 S1 Plus-all.json | 135 ++ .../filament/HP-TPU @Ender-3 S1 Pro-all.json | 135 ++ .../HP-TPU @Ender-3 S1 Sonic-all.json | 138 ++ .../filament/HP-TPU @Ender-3 S1-all.json | 135 ++ .../filament/HP-TPU @Ender-3 V3 KE-all.json | 157 +++ .../filament/HP-TPU @Ender-3 V3 Plus-all.json | 155 +++ .../filament/HP-TPU @Ender-3 V3-all.json | 160 +++ .../HP-TPU @Ender-5 S1 Sonic-all.json | 150 ++ .../filament/HP-TPU @Ender-5 S1-all.json | 147 ++ .../filament/HP-TPU @Sermoon M300-all.json | 172 +++ .../filament/Hyper ABS @CR-M4 SE-all.json | 178 +++ .../Hyper ABS @Ender-3 V3 Plus-all.json | 157 +++ .../filament/Hyper ABS @Sermoon M300-all.json | 164 +++ .../Hyper L-W PLA @Ender-3 V3 KE-all.json | 147 ++ .../Hyper L-W PLA @Ender-3 V3 Plus-all.json | 150 ++ .../Hyper L-W PLA @Ender-3 V3 SE-all.json | 153 ++ .../Hyper L-W PLA @Ender-3 V3-all.json | 151 ++ .../Hyper Luminous @Ender-3 V3 KE-all.json | 157 +++ .../Hyper Luminous @Ender-3 V3 Plus-all.json | 159 +++ .../Hyper Luminous @Ender-3 V3 SE-all.json | 157 +++ .../Hyper Luminous @Ender-3 V3-all.json | 159 +++ .../Hyper Luminous @Sermoon M300-all.json | 162 +++ .../Hyper Marble @Ender-3 V3 KE-all.json | 160 +++ .../Hyper Marble @Ender-3 V3 Plus-all.json | 159 +++ .../Hyper Marble @Ender-3 V3 SE-all.json | 163 +++ .../Hyper Marble @Ender-3 V3-all.json | 160 +++ .../Hyper Marble @Sermoon M300-all.json | 162 +++ .../Hyper PETG @Ender-3 V3 Plus-all.json | 164 +++ .../filament/Hyper PETG @Ender-3 V3-all.json | 154 ++ .../Hyper PETG @Sermoon M300-all.json | 148 ++ .../filament/Hyper PLA @CR-10 SE-all.json | 146 ++ .../filament/Hyper PLA @CR-M4 SE-all.json | 143 ++ .../Hyper PLA @Ender-3 S1 Plus-all.json | 120 ++ .../Hyper PLA @Ender-3 S1 Pro-all.json | 120 ++ .../Hyper PLA @Ender-3 S1 Sonic-all.json | 126 ++ .../filament/Hyper PLA @Ender-3 S1-all.json | 123 ++ .../Hyper PLA @Ender-3 V3 KE-all.json | 151 ++ .../Hyper PLA @Ender-3 V3 Plus-all.json | 155 +++ .../Hyper PLA @Ender-3 V3 SE-all.json | 166 +++ .../filament/Hyper PLA @Ender-3 V3-all.json | 156 +++ .../filament/Hyper PLA @Ender-3-all.json | 123 ++ .../Hyper PLA @Ender-5 S1 Sonic-all.json | 126 ++ .../filament/Hyper PLA @Ender-5 S1-all.json | 123 ++ .../Hyper PLA @Sermoon D3 Pro-all.json | 150 ++ .../filament/Hyper PLA @Sermoon D3-all.json | 151 ++ .../filament/Hyper PLA @Sermoon M300-all.json | 159 +++ .../Hyper PLA @Sermoon V1 Pro-all.json | 151 ++ .../Hyper PLA-CF @Ender-3 V3 Plus-all.json | 153 ++ .../Hyper PLA-CF @Ender-3 V3-all.json | 171 +++ .../Hyper PLA-CF @Sermoon D3 Pro-all.json | 150 ++ .../Hyper PLA-CF @Sermoon M300-all.json | 165 +++ .../Hyper Stardust @Ender-3 V3 KE-all.json | 154 ++ .../Hyper Stardust @Ender-3 V3 Plus-all.json | 156 +++ .../Hyper Stardust @Ender-3 V3 SE-all.json | 157 +++ .../Hyper Stardust @Ender-3 V3-all.json | 157 +++ .../Hyper Stardust @Sermoon M300-all.json | 159 +++ ...Soleyin Basic PETG @Ender-3 V3 KE-all.json | 120 ++ ...leyin Basic PETG @Ender-3 V3 Plus-all.json | 122 ++ ...Soleyin Basic PETG @Ender-3 V3 SE-all.json | 105 ++ .../Soleyin Basic PETG @Ender-3 V3-all.json | 119 ++ .../Soleyin Basic PETG @Sermoon M300-all.json | 124 ++ .../Soleyin Ultra PLA @Ender-3 V3 KE-all.json | 160 +++ ...oleyin Ultra PLA @Ender-3 V3 Plus-all.json | 165 +++ .../Soleyin Ultra PLA @Ender-3 V3 SE-all.json | 163 +++ .../Soleyin Ultra PLA @Ender-3 V3-all.json | 166 +++ .../Soleyin Ultra PLA @Sermoon M300-all.json | 166 +++ .../machine/Creality CR-10 0.4 nozzle.json | 117 ++ .../machine/Creality CR-10 SE 0.2 nozzle.json | 2 +- .../machine/Creality CR-10 SE 0.4 nozzle.json | 2 +- .../machine/Creality CR-10 SE 0.6 nozzle.json | 2 +- .../machine/Creality CR-10 SE 0.8 nozzle.json | 2 +- .../Creality/machine/Creality CR-10 SE.json | 2 +- .../Creality CR-10 Smart 0.4 nozzle.json | 117 ++ .../Creality CR-10 Smart Pro 0.4 nozzle.json | 117 ++ .../machine/Creality CR-10 Smart Pro.json | 13 + .../machine/Creality CR-10 Smart.json | 13 + .../machine/Creality CR-10 V2 0.4 nozzle.json | 2 +- .../machine/Creality CR-10 V3 0.4 nozzle.json | 2 +- .../machine/Creality CR-10 V3 0.6 nozzle.json | 2 +- .../Creality/machine/Creality CR-10.json | 13 + .../Creality CR-10S Pro V2 0.4 nozzle.json | 117 ++ .../machine/Creality CR-10S Pro V2.json | 13 + .../Creality CR-20 Pro 0.4 nozzle.json | 117 ++ .../Creality/machine/Creality CR-20 Pro.json | 13 + .../machine/Creality CR-6 SE 0.2 nozzle.json | 2 +- .../machine/Creality CR-6 SE 0.4 nozzle.json | 2 +- .../machine/Creality CR-6 SE 0.6 nozzle.json | 2 +- .../machine/Creality CR-6 SE 0.8 nozzle.json | 2 +- .../Creality/machine/Creality CR-6 SE.json | 2 +- .../machine/Creality CR-M4 0.4 nozzle.json | 2 +- .../machine/Creality CR-M4 SE 0.4 nozzle.json | 111 ++ .../Creality/machine/Creality CR-M4 SE.json | 13 + .../Creality/machine/Creality CR-M4.json | 2 +- .../Creality Ender-2 Pro 0.4 nozzle.json | 118 ++ .../machine/Creality Ender-2 Pro.json | 13 + .../machine/Creality Ender-3 0.2 nozzle.json | 2 +- .../machine/Creality Ender-3 0.4 nozzle.json | 2 +- .../machine/Creality Ender-3 0.6 nozzle.json | 2 +- .../machine/Creality Ender-3 0.8 nozzle.json | 2 +- .../Creality Ender-3 Max 0.4 nozzle.json | 117 ++ .../Creality Ender-3 Max Neo 0.4 nozzle.json | 117 ++ .../machine/Creality Ender-3 Max Neo.json | 13 + .../machine/Creality Ender-3 Max.json | 13 + .../Creality Ender-3 Neo 0.4 nozzle.json | 117 ++ .../machine/Creality Ender-3 Neo.json | 13 + .../Creality Ender-3 S1 0.4 nozzle.json | 2 +- .../Creality Ender-3 S1 Plus 0.2 nozzle.json | 2 +- .../Creality Ender-3 S1 Plus 0.4 nozzle.json | 2 +- .../Creality Ender-3 S1 Plus 0.6 nozzle.json | 2 +- .../Creality Ender-3 S1 Plus 0.8 nozzle.json | 2 +- .../Creality Ender-3 S1 Pro 0.4 nozzle.json | 2 +- .../Creality Ender-3 S1 Sonic 0.4 nozzle.json | 118 ++ .../machine/Creality Ender-3 S1 Sonic.json | 13 + .../Creality Ender-3 V2 0.4 nozzle.json | 3 +- .../Creality Ender-3 V2 Neo 0.4 nozzle.json | 2 +- .../Creality/machine/Creality Ender-3 V2.json | 2 +- .../Creality Ender-3 V3 0.4 nozzle.json | 2 +- .../Creality Ender-3 V3 0.6 nozzle.json | 2 +- .../Creality Ender-3 V3 0.8 nozzle.json | 107 ++ .../Creality Ender-3 V3 Plus 0.4 nozzle.json | 2 +- .../Creality Ender-3 V3 Plus 0.6 nozzle.json | 2 +- .../Creality Ender-3 V3 Plus 0.8 nozzle.json | 108 ++ .../machine/Creality Ender-3 V3 Plus.json | 4 +- .../machine/Creality Ender-3 V3 SE.json | 2 +- .../Creality/machine/Creality Ender-3 V3.json | 4 +- .../Creality Ender-5 S1 Sonic 0.4 nozzle.json | 117 ++ .../machine/Creality Ender-5 S1 Sonic.json | 13 + .../Creality Sermoon D3 0.4 nozzle.json | 119 ++ .../Creality Sermoon D3 Pro 0.4 nozzle.json | 118 ++ .../machine/Creality Sermoon D3 Pro.json | 13 + .../Creality/machine/Creality Sermoon D3.json | 13 + .../Creality Sermoon M300 0.4 nozzle.json | 113 ++ .../Creality Sermoon M300 0.6 nozzle.json | 119 ++ .../Creality Sermoon M300 0.8 nozzle.json | 119 ++ .../machine/Creality Sermoon M300.json | 13 + .../Creality Sermoon V1 0.4 nozzle.json | 2 +- .../Creality Sermoon V1 Pro 0.4 nozzle.json | 119 ++ .../machine/Creality Sermoon V1 Pro.json | 13 + ...Extra Fine @Creality CR-10 0.4 nozzle.json | 229 +++ ...Fine @Creality CR-10 Smart 0.4 nozzle.json | 229 +++ ... @Creality CR-10 Smart Pro 0.4 nozzle.json | 229 +++ ...ne @Creality CR-10S Pro V2 0.4 nozzle.json | 229 +++ ...a Fine @Creality CR-20 Pro 0.4 nozzle.json | 229 +++ ...Fine @Creality Ender-2 Pro 0.4 nozzle.json | 267 ++++ ...Fine @Creality Ender-3 Max 0.4 nozzle.json | 229 +++ ... @Creality Ender-3 Max Neo 0.4 nozzle.json | 229 +++ ...Fine @Creality Ender-3 Neo 0.4 nozzle.json | 229 +++ ... Fine @Creality Sermoon D3 0.4 nozzle.json | 267 ++++ ...e @Creality Sermoon V1 Pro 0.4 nozzle.json | 267 ++++ ...0.08mm SuperDetail @Creality CR-6 0.2.json | 5 +- ...Detail @Creality Ender5Pro (2019) 0.2.json | 5 +- ...etail @Creality Ender5Pro (2019) 0.25.json | 5 +- ...Detail @Creality Ender5Pro (2019) 0.3.json | 5 +- .../0.10mm HighDetail @Creality CR-6 0.4.json | 5 +- ...Detail @Creality Ender5Pro (2019) 0.2.json | 5 +- ...etail @Creality Ender5Pro (2019) 0.25.json | 5 +- ...Detail @Creality Ender5Pro (2019) 0.3.json | 5 +- .../0.12mm Detail @Creality CR-6 0.2.json | 5 +- .../0.12mm Detail @Creality CR-6 0.4.json | 5 +- ...Detail @Creality Ender5Pro (2019) 0.2.json | 5 +- ...etail @Creality Ender5Pro (2019) 0.25.json | 5 +- ...Detail @Creality Ender5Pro (2019) 0.3.json | 5 +- ...Detail @Creality Ender5Pro (2019) 0.5.json | 5 +- .../0.12mm Fine @Creality CR10Max.json | 4 +- .../0.12mm Fine @Creality Ender3 0.2.json | 4 +- .../0.12mm Fine @Creality Ender3 0.4.json | 4 +- .../0.12mm Fine @Creality Ender3 0.6.json | 4 +- .../0.12mm Fine @Creality Ender3 0.8.json | 4 +- .../0.12mm Fine @Creality Ender3 Pro 0.2.json | 4 +- .../0.12mm Fine @Creality Ender3 Pro 0.4.json | 4 +- .../0.12mm Fine @Creality Ender3 Pro 0.6.json | 4 +- .../0.12mm Fine @Creality Ender3 Pro 0.8.json | 4 +- .../0.12mm Fine @Creality Ender3V2.json | 4 +- ....12mm Fine @Creality Ender5Pro (2019).json | 4 +- ...ard @Creality Sermoon M300 0.4 nozzle.json | 267 ++++ .../0.15mm Optimal @Creality CR10Max.json | 4 +- .../0.15mm Optimal @Creality Ender3V2.json | 4 +- ...mm Optimal @Creality Ender5Pro (2019).json | 4 +- ...mm Optimal @Creality CR-10 0.4 nozzle.json | 229 +++ ...imal @Creality CR-10 Smart 0.4 nozzle.json | 244 ++++ ... @Creality CR-10 Smart Pro 0.4 nozzle.json | 229 +++ ...al @Creality CR-10S Pro V2 0.4 nozzle.json | 229 +++ ...ptimal @Creality CR-20 Pro 0.4 nozzle.json | 244 ++++ .../0.16mm Optimal @Creality CR-6 0.2.json | 5 +- .../0.16mm Optimal @Creality CR-6 0.4.json | 4 +- .../0.16mm Optimal @Creality CR-6 0.6.json | 5 +- .../0.16mm Optimal @Creality CR10V2.json | 4 +- ...imal @Creality Ender-2 Pro 0.4 nozzle.json | 267 ++++ ...imal @Creality Ender-3 Max 0.4 nozzle.json | 244 ++++ ... @Creality Ender-3 Max Neo 0.4 nozzle.json | 244 ++++ ...imal @Creality Ender-3 Neo 0.4 nozzle.json | 244 ++++ .../0.16mm Optimal @Creality Ender3 0.2.json | 4 +- .../0.16mm Optimal @Creality Ender3 0.4.json | 4 +- .../0.16mm Optimal @Creality Ender3 0.6.json | 4 +- .../0.16mm Optimal @Creality Ender3 0.8.json | 4 +- ...16mm Optimal @Creality Ender3 Pro 0.2.json | 4 +- ...16mm Optimal @Creality Ender3 Pro 0.4.json | 4 +- ...16mm Optimal @Creality Ender3 Pro 0.6.json | 4 +- ...16mm Optimal @Creality Ender3 Pro 0.8.json | 4 +- .../0.16mm Optimal @Creality Ender3S1.json | 4 +- ...mm Optimal @Creality Ender3S1Plus 0.2.json | 4 +- ...mm Optimal @Creality Ender3S1Plus 0.4.json | 4 +- ...mm Optimal @Creality Ender3S1Plus 0.6.json | 4 +- ...mm Optimal @Creality Ender3S1Plus 0.8.json | 4 +- .../0.16mm Optimal @Creality Ender3S1Pro.json | 4 +- .../0.16mm Optimal @Creality Ender5.json | 4 +- .../0.16mm Optimal @Creality Ender5Plus.json | 4 +- ...ptimal @Creality Ender5Pro (2019) 0.2.json | 5 +- ...timal @Creality Ender5Pro (2019) 0.25.json | 5 +- ...ptimal @Creality Ender5Pro (2019) 0.3.json | 5 +- ...ptimal @Creality Ender5Pro (2019) 0.5.json | 5 +- ...ptimal @Creality Ender5Pro (2019) 0.6.json | 5 +- .../0.16mm Optimal @Creality Ender5S.json | 4 +- .../0.16mm Optimal @Creality Ender5S1.json | 4 +- .../0.16mm Optimal @Creality Ender6.json | 4 +- ...timal @Creality Sermoon D3 0.4 nozzle.json | 267 ++++ ...l @Creality Sermoon V1 Pro 0.4 nozzle.json | 267 ++++ ...ard @Creality Sermoon M300 0.4 nozzle.json | 267 ++++ ...tandard @Creality CR-M4 SE 0.4 nozzle.json | 266 ++++ ...m Standard @Creality CR-10 0.4 nozzle.json | 244 ++++ ...dard @Creality CR-10 Smart 0.4 nozzle.json | 244 ++++ ... @Creality CR-10 Smart Pro 0.4 nozzle.json | 244 ++++ ...rd @Creality CR-10S Pro V2 0.4 nozzle.json | 244 ++++ ...andard @Creality CR-20 Pro 0.4 nozzle.json | 244 ++++ .../0.20mm Standard @Creality CR-6 0.4.json | 5 +- .../0.20mm Standard @Creality CR-6 0.6.json | 5 +- ...tandard @Creality CR-M4 SE 0.4 nozzle.json | 267 ++++ .../0.20mm Standard @Creality CR10Max.json | 4 +- .../0.20mm Standard @Creality CR10V2.json | 4 +- .../0.20mm Standard @Creality CR10V3 0.4.json | 4 +- .../0.20mm Standard @Creality CR10V3 0.6.json | 4 +- ...dard @Creality Ender-2 Pro 0.4 nozzle.json | 268 ++++ ...dard @Creality Ender-3 Max 0.4 nozzle.json | 244 ++++ ... @Creality Ender-3 Max Neo 0.4 nozzle.json | 244 ++++ ...dard @Creality Ender-3 Neo 0.4 nozzle.json | 244 ++++ ...@Creality Ender-3 S1 Sonic 0.4 nozzle.json | 265 ++++ ...rd @Creality Ender-5 Max 0.4mm nozzle.json | 2 +- ...@Creality Ender-5 S1 Sonic 0.4 nozzle.json | 265 ++++ .../0.20mm Standard @Creality Ender3 0.2.json | 4 +- .../0.20mm Standard @Creality Ender3 0.4.json | 4 +- .../0.20mm Standard @Creality Ender3 0.6.json | 4 +- .../0.20mm Standard @Creality Ender3 0.8.json | 4 +- ...0mm Standard @Creality Ender3 Pro 0.2.json | 4 +- ...0mm Standard @Creality Ender3 Pro 0.4.json | 4 +- ...0mm Standard @Creality Ender3 Pro 0.6.json | 4 +- ...0mm Standard @Creality Ender3 Pro 0.8.json | 4 +- .../0.20mm Standard @Creality Ender3.json | 4 +- .../0.20mm Standard @Creality Ender3S1.json | 4 +- ...m Standard @Creality Ender3S1Plus 0.2.json | 4 +- ...m Standard @Creality Ender3S1Plus 0.4.json | 4 +- ...m Standard @Creality Ender3S1Plus 0.6.json | 4 +- ...m Standard @Creality Ender3S1Plus 0.8.json | 4 +- ...0.20mm Standard @Creality Ender3S1Pro.json | 4 +- .../0.20mm Standard @Creality Ender3V2.json | 4 +- .../0.20mm Standard @Creality Ender5.json | 4 +- .../0.20mm Standard @Creality Ender5Plus.json | 4 +- ...ndard @Creality Ender5Pro (2019) 0.25.json | 5 +- ...andard @Creality Ender5Pro (2019) 0.3.json | 5 +- ...andard @Creality Ender5Pro (2019) 0.5.json | 5 +- ...andard @Creality Ender5Pro (2019) 0.6.json | 5 +- ...andard @Creality Ender5Pro (2019) 0.8.json | 5 +- ...m Standard @Creality Ender5Pro (2019).json | 4 +- .../0.20mm Standard @Creality Ender5S.json | 4 +- .../0.20mm Standard @Creality Ender5S1.json | 4 +- .../0.20mm Standard @Creality Ender6.json | 4 +- ...ndard @Creality Sermoon D3 0.4 nozzle.json | 265 ++++ ...d @Creality Sermoon D3 Pro 0.4 nozzle.json | 234 ++++ ...ard @Creality Sermoon M300 0.4 nozzle.json | 267 ++++ ...d @Creality Sermoon V1 Pro 0.4 nozzle.json | 265 ++++ ...trafast @Creality CR-M4 SE 0.4 nozzle.json | 267 ++++ ...st @Creality Ender-5 Max 0.4mm nozzle.json | 2 +- .../0.24mm Draft @Creality CR-6 0.4.json | 5 +- .../0.24mm Draft @Creality CR-6 0.6.json | 5 +- .../0.24mm Draft @Creality CR10Max.json | 4 +- .../0.24mm Draft @Creality Ender3 0.2.json | 4 +- .../0.24mm Draft @Creality Ender3 0.4.json | 4 +- .../0.24mm Draft @Creality Ender3 0.6.json | 4 +- .../0.24mm Draft @Creality Ender3 0.8.json | 4 +- ...0.24mm Draft @Creality Ender3 Pro 0.2.json | 4 +- ...0.24mm Draft @Creality Ender3 Pro 0.4.json | 4 +- ...0.24mm Draft @Creality Ender3 Pro 0.6.json | 4 +- ...0.24mm Draft @Creality Ender3 Pro 0.8.json | 4 +- ...24mm Draft @Creality Ender3S1Plus 0.2.json | 4 +- ...24mm Draft @Creality Ender3S1Plus 0.4.json | 4 +- ...24mm Draft @Creality Ender3S1Plus 0.6.json | 4 +- ...24mm Draft @Creality Ender3S1Plus 0.8.json | 4 +- .../0.24mm Draft @Creality Ender3V2.json | 4 +- ... Draft @Creality Ender5Pro (2019) 0.3.json | 5 +- ... Draft @Creality Ender5Pro (2019) 0.5.json | 5 +- ... Draft @Creality Ender5Pro (2019) 0.6.json | 5 +- ... Draft @Creality Ender5Pro (2019) 0.8.json | 5 +- ...24mm Draft @Creality Ender5Pro (2019).json | 4 +- .../0.24mm Optimal @Creality CR-6 0.8.json | 5 +- ...ndard @Creality Ender-3 V3 0.8 nozzle.json | 244 ++++ ...ard @Creality Sermoon M300 0.4 nozzle.json | 267 ++++ ...ard @Creality Sermoon M300 0.4 nozzle.json | 267 ++++ .../0.28mm SuperDraft @Creality CR-6 0.4.json | 5 +- .../0.28mm SuperDraft @Creality CR-6 0.6.json | 5 +- ....28mm SuperDraft @Creality Ender3 0.2.json | 4 +- ....28mm SuperDraft @Creality Ender3 0.4.json | 4 +- ....28mm SuperDraft @Creality Ender3 0.6.json | 4 +- ....28mm SuperDraft @Creality Ender3 0.8.json | 4 +- ...m SuperDraft @Creality Ender3 Pro 0.2.json | 4 +- ...m SuperDraft @Creality Ender3 Pro 0.4.json | 4 +- ...m SuperDraft @Creality Ender3 Pro 0.6.json | 4 +- ...m SuperDraft @Creality Ender3 Pro 0.8.json | 4 +- ...rDraft @Creality Ender5Pro (2019) 0.5.json | 5 +- ...rDraft @Creality Ender5Pro (2019) 0.6.json | 5 +- ...rDraft @Creality Ender5Pro (2019) 0.8.json | 5 +- ...rDraft @Creality Ender5Pro (2019) 1.0.json | 5 +- ...ard @Creality Sermoon M300 0.6 nozzle.json | 267 ++++ .../0.32mm Chunky @Creality CR-6 0.6.json | 5 +- .../0.32mm Standard @Creality CR-6 0.8.json | 5 +- ...ndard @Creality Ender-3 V3 0.8 nozzle.json | 244 ++++ ...Chunky @Creality Ender5Pro (2019) 0.5.json | 5 +- ...Chunky @Creality Ender5Pro (2019) 0.6.json | 5 +- ...Chunky @Creality Ender5Pro (2019) 0.8.json | 5 +- ...Chunky @Creality Ender5Pro (2019) 1.0.json | 5 +- ...0.36mm SuperChunky @Creality CR-6 0.6.json | 5 +- .../0.40mm Draft @Creality CR-6 0.8.json | 5 +- ...ndard @Creality Ender-3 V3 0.8 nozzle.json | 244 ++++ ... @Creality Ender-3 V3 Plus 0.8 nozzle.json | 265 ++++ ...ard @Creality Sermoon M300 0.8 nozzle.json | 267 ++++ ...m SuperExtraChunky @Creality CR-6 0.6.json | 5 +- .../0.48mm Chunky @Creality CR-6 0.8.json | 5 +- .../0.48mm Draft @Creality CR-6 0.8.json | 5 +- ...ndard @Creality Ender-3 V3 0.8 nozzle.json | 244 ++++ ...ndard @Creality Ender-3 V3 0.8 nozzle.json | 244 ++++ ...0.56mm SuperChunky @Creality CR-6 0.8.json | 5 +- 510 files changed, 50202 insertions(+), 378 deletions(-) create mode 100644 resources/profiles/Creality/Creality CR-10 Smart Pro_cover.png create mode 100644 resources/profiles/Creality/Creality CR-10 Smart_cover.png create mode 100644 resources/profiles/Creality/Creality CR-10S Pro V2_cover.png create mode 100644 resources/profiles/Creality/Creality CR-10_cover.png create mode 100644 resources/profiles/Creality/Creality CR-20 Pro_cover.png create mode 100644 resources/profiles/Creality/Creality CR-M4 SE_cover.png create mode 100644 resources/profiles/Creality/Creality Ender-2 Pro_cover.png create mode 100644 resources/profiles/Creality/Creality Ender-3 Max Neo_cover.png create mode 100644 resources/profiles/Creality/Creality Ender-3 Max_cover.png create mode 100644 resources/profiles/Creality/Creality Ender-3 Neo_cover.png create mode 100644 resources/profiles/Creality/Creality Ender-3 S1 Sonic_cover.png create mode 100644 resources/profiles/Creality/Creality Ender-5 S1 Sonic_cover.png create mode 100644 resources/profiles/Creality/Creality Sermoon D3 Pro_cover.png create mode 100644 resources/profiles/Creality/Creality Sermoon D3_cover.png create mode 100644 resources/profiles/Creality/Creality Sermoon M300_cover.png create mode 100644 resources/profiles/Creality/Creality Sermoon V1 Pro_cover.png create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-2 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-3 S1-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-3-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-5 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Ender-5 S1-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Sermoon D3 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-ABS @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/CR-Nylon @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @CR-10 SE-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @CR-10 Smart Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @CR-10-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @CR-M4 SE-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-2 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-3 S1-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-3 V2-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-3-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-5 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Ender-5 S1-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Sermoon D3 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Sermoon D3-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/CR-PETG @Sermoon V1 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @CR-10-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @CR-M4 SE-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-2 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-3 S1-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-3 V2-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 SE-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-3-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-5 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Ender-5 S1-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Sermoon D3-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA @Sermoon V1 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA Carbon @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA Carbon @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA Fluo @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA Fluo @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA Matte @CR-10 SE-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/CR-Silk @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-Silk @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/CR-Silk @Sermoon D3-all.json create mode 100644 resources/profiles/Creality/filament/CR-Silk @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/CR-TPU @CR-10 Smart Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-TPU @CR-10-all.json create mode 100644 resources/profiles/Creality/filament/CR-TPU @Ender-3 V2-all.json create mode 100644 resources/profiles/Creality/filament/CR-TPU @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-TPU @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/CR-TPU @Sermoon D3-all.json create mode 100644 resources/profiles/Creality/filament/CR-TPU @Sermoon V1 Pro-all.json create mode 100644 resources/profiles/Creality/filament/CR-Wood @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/CR-Wood @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/EN-PLA+ @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/EN-PLA+ @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Ender-PLA @CR-10 Smart Pro-all.json create mode 100644 resources/profiles/Creality/filament/Ender-PLA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Ender-PLA @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Ender-PLA @Ender-5 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @CR-10 SE-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @CR-10 Smart Pro-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @CR-10 Smart-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @CR-10-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @CR-10S Pro V2-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @CR-20 Pro-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @CR-6 SE-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @CR-M4-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @Ender-3 Max Neo-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @Ender-3 Max-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @Ender-3 Neo-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @Ender-3 V2-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @Sermoon D3-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Generic ABS @Sermoon V1 Pro-all.json create mode 100644 resources/profiles/Creality/filament/Generic ASA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic ASA @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Generic BVOH @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic HIPS @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PA-CF @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PA6-CF @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PAHT-CF @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PC @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PET @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PET-CF @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @CR-10 Smart-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @CR-10S Pro V2-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @CR-20 Pro-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @CR-6 SE-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @CR-M4-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @Ender-3 Max Neo-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @Ender-3 Max-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @Ender-3 Neo-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @Ender-3 V3 SE-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Generic PETG-CF @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @CR-10 SE-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @CR-10 Smart-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @CR-10S Pro V2-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @CR-20 Pro-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @CR-6 SE-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @CR-M4-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @Ender-3 Max Neo-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @Ender-3 Max-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @Ender-3 Neo-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA-Silk @CR-10 SE-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Generic PLA-Silk @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Generic PP @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PPS @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PPS-CF @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic PVA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic TPU @CR-10 SE-all.json create mode 100644 resources/profiles/Creality/filament/Generic TPU @Ender-2 Pro-all.json create mode 100644 resources/profiles/Creality/filament/Generic TPU @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Generic TPU @Ender-3 V3 SE-all.json create mode 100644 resources/profiles/Creality/filament/Generic TPU @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/HP Ultra PLA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/HP Ultra PLA @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/HP-ASA @CR-M4 SE-all.json create mode 100644 resources/profiles/Creality/filament/HP-ASA @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/HP-ASA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/HP-ASA @Ender-5 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/HP-ASA @Ender-5 S1-all.json create mode 100644 resources/profiles/Creality/filament/HP-ASA @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @CR-M4 SE-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Plus-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Pro-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @Ender-3 S1-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @Ender-5 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @Ender-5 S1-all.json create mode 100644 resources/profiles/Creality/filament/HP-TPU @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Hyper ABS @CR-M4 SE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper ABS @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Hyper ABS @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 SE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 SE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Luminous @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 SE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Marble @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PETG @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PETG @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PETG @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @CR-10 SE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @CR-M4 SE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Pro-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 SE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-3-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-5 S1 Sonic-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Ender-5 S1-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Sermoon D3 Pro-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Sermoon D3-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA @Sermoon V1 Pro-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA-CF @Sermoon D3 Pro-all.json create mode 100644 resources/profiles/Creality/filament/Hyper PLA-CF @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 SE-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Hyper Stardust @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 SE-all.json create mode 100644 resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Soleyin Basic PETG @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 KE-all.json create mode 100644 resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 Plus-all.json create mode 100644 resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 SE-all.json create mode 100644 resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3-all.json create mode 100644 resources/profiles/Creality/filament/Soleyin Ultra PLA @Sermoon M300-all.json create mode 100644 resources/profiles/Creality/machine/Creality CR-10 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality CR-10 Smart 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality CR-10 Smart Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality CR-10 Smart Pro.json create mode 100644 resources/profiles/Creality/machine/Creality CR-10 Smart.json create mode 100644 resources/profiles/Creality/machine/Creality CR-10.json create mode 100644 resources/profiles/Creality/machine/Creality CR-10S Pro V2 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality CR-10S Pro V2.json create mode 100644 resources/profiles/Creality/machine/Creality CR-20 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality CR-20 Pro.json create mode 100644 resources/profiles/Creality/machine/Creality CR-M4 SE 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality CR-M4 SE.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-2 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-2 Pro.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-3 Max 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-3 Max Neo 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-3 Max Neo.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-3 Max.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-3 Neo 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-3 Neo.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-3 S1 Sonic 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-3 S1 Sonic.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-3 V3 0.8 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.8 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-5 S1 Sonic 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Ender-5 S1 Sonic.json create mode 100644 resources/profiles/Creality/machine/Creality Sermoon D3 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Sermoon D3 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Sermoon D3 Pro.json create mode 100644 resources/profiles/Creality/machine/Creality Sermoon D3.json create mode 100644 resources/profiles/Creality/machine/Creality Sermoon M300 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Sermoon M300 0.6 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Sermoon M300 0.8 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Sermoon M300.json create mode 100644 resources/profiles/Creality/machine/Creality Sermoon V1 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/machine/Creality Sermoon V1 Pro.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 Smart 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 Smart Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10S Pro V2 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-20 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-2 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Max 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Max Neo 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Neo 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality Sermoon D3 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.08mm Extra Fine @Creality Sermoon V1 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.12mm Standard @Creality Sermoon M300 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 Smart 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 Smart Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10S Pro V2 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality CR-20 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-2 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Max 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Max Neo 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Neo 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon D3 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon V1 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.16mm Standard @Creality Sermoon M300 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.1mm Standard @Creality CR-M4 SE 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 Smart 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 Smart Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality CR-10S Pro V2 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality CR-20 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality CR-M4 SE 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality Ender-2 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Max 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Max Neo 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Neo 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 S1 Sonic 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 S1 Sonic 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon D3 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon D3 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon M300 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon V1 Pro 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.20mm Ultrafast @Creality CR-M4 SE 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.24mm Standard @Creality Ender-3 V3 0.8 nozzle.json create mode 100644 resources/profiles/Creality/process/0.24mm Standard @Creality Sermoon M300 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.28mm Standard @Creality Sermoon M300 0.4 nozzle.json create mode 100644 resources/profiles/Creality/process/0.30mm Standard @Creality Sermoon M300 0.6 nozzle.json create mode 100644 resources/profiles/Creality/process/0.32mm Standard @Creality Ender-3 V3 0.8 nozzle.json create mode 100644 resources/profiles/Creality/process/0.40mm Standard @Creality Ender-3 V3 0.8 nozzle.json create mode 100644 resources/profiles/Creality/process/0.40mm Standard @Creality Ender-3 V3 Plus 0.8 nozzle.json create mode 100644 resources/profiles/Creality/process/0.40mm Standard @Creality Sermoon M300 0.8 nozzle.json create mode 100644 resources/profiles/Creality/process/0.48mm Standard @Creality Ender-3 V3 0.8 nozzle.json create mode 100644 resources/profiles/Creality/process/0.56mm Standard @Creality Ender-3 V3 0.8 nozzle.json diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index a870a8d7d6..a0a51e8267 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,9 +1,13 @@ { "name": "Creality", - "version": "02.03.02.80", + "version": "02.03.02.81", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ + { + "name": "Creality CR-10", + "sub_path": "machine/Creality CR-10.json" + }, { "name": "Creality CR-10 Max", "sub_path": "machine/Creality CR-10 Max.json" @@ -12,6 +16,14 @@ "name": "Creality CR-10 SE", "sub_path": "machine/Creality CR-10 SE.json" }, + { + "name": "Creality CR-10 Smart", + "sub_path": "machine/Creality CR-10 Smart.json" + }, + { + "name": "Creality CR-10 Smart Pro", + "sub_path": "machine/Creality CR-10 Smart Pro.json" + }, { "name": "Creality CR-10 V2", "sub_path": "machine/Creality CR-10 V2.json" @@ -20,6 +32,14 @@ "name": "Creality CR-10 V3", "sub_path": "machine/Creality CR-10 V3.json" }, + { + "name": "Creality CR-10S Pro V2", + "sub_path": "machine/Creality CR-10S Pro V2.json" + }, + { + "name": "Creality CR-20 Pro", + "sub_path": "machine/Creality CR-20 Pro.json" + }, { "name": "Creality CR-6 Max", "sub_path": "machine/Creality CR-6 Max.json" @@ -32,10 +52,30 @@ "name": "Creality CR-M4", "sub_path": "machine/Creality CR-M4.json" }, + { + "name": "Creality CR-M4 SE", + "sub_path": "machine/Creality CR-M4 SE.json" + }, + { + "name": "Creality Ender-2 Pro", + "sub_path": "machine/Creality Ender-2 Pro.json" + }, { "name": "Creality Ender-3", "sub_path": "machine/Creality Ender-3.json" }, + { + "name": "Creality Ender-3 Max", + "sub_path": "machine/Creality Ender-3 Max.json" + }, + { + "name": "Creality Ender-3 Max Neo", + "sub_path": "machine/Creality Ender-3 Max Neo.json" + }, + { + "name": "Creality Ender-3 Neo", + "sub_path": "machine/Creality Ender-3 Neo.json" + }, { "name": "Creality Ender-3 Pro", "sub_path": "machine/Creality Ender-3 Pro.json" @@ -52,6 +92,10 @@ "name": "Creality Ender-3 S1 Pro", "sub_path": "machine/Creality Ender-3 S1 Pro.json" }, + { + "name": "Creality Ender-3 S1 Sonic", + "sub_path": "machine/Creality Ender-3 S1 Sonic.json" + }, { "name": "Creality Ender-3 V2", "sub_path": "machine/Creality Ender-3 V2.json" @@ -100,6 +144,10 @@ "name": "Creality Ender-5 S1", "sub_path": "machine/Creality Ender-5 S1.json" }, + { + "name": "Creality Ender-5 S1 Sonic", + "sub_path": "machine/Creality Ender-5 S1 Sonic.json" + }, { "name": "Creality Ender-5S", "sub_path": "machine/Creality Ender-5S.json" @@ -164,9 +212,25 @@ "name": "Creality SPARKX i7", "sub_path": "machine/Creality SPARKX i7.json" }, + { + "name": "Creality Sermoon D3", + "sub_path": "machine/Creality Sermoon D3.json" + }, + { + "name": "Creality Sermoon D3 Pro", + "sub_path": "machine/Creality Sermoon D3 Pro.json" + }, + { + "name": "Creality Sermoon M300", + "sub_path": "machine/Creality Sermoon M300.json" + }, { "name": "Creality Sermoon V1", "sub_path": "machine/Creality Sermoon V1.json" + }, + { + "name": "Creality Sermoon V1 Pro", + "sub_path": "machine/Creality Sermoon V1 Pro.json" } ], "process_list": [ @@ -182,6 +246,50 @@ "name": "0.06mm SuperDetail @Creality K2 Plus 0.2 nozzle", "sub_path": "process/0.06mm SuperDetail @Creality K2 Plus 0.2 nozzle.json" }, + { + "name": "0.08mm Extra Fine @Creality CR-10 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality CR-10 0.4 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @Creality CR-10 Smart 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality CR-10 Smart 0.4 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @Creality CR-10 Smart Pro 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality CR-10 Smart Pro 0.4 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @Creality CR-10S Pro V2 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality CR-10S Pro V2 0.4 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @Creality CR-20 Pro 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality CR-20 Pro 0.4 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @Creality Ender-2 Pro 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality Ender-2 Pro 0.4 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @Creality Ender-3 Max 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality Ender-3 Max 0.4 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @Creality Ender-3 Max Neo 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality Ender-3 Max Neo 0.4 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @Creality Ender-3 Neo 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality Ender-3 Neo 0.4 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @Creality Sermoon D3 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality Sermoon D3 0.4 nozzle.json" + }, + { + "name": "0.08mm Extra Fine @Creality Sermoon V1 Pro 0.4 nozzle", + "sub_path": "process/0.08mm Extra Fine @Creality Sermoon V1 Pro 0.4 nozzle.json" + }, { "name": "0.08mm HueForge @Creality Hi 0.4 nozzle", "sub_path": "process/0.08mm HueForge @Creality Hi 0.4 nozzle.json" @@ -366,6 +474,10 @@ "name": "0.12mm Fine @Creality SPARKX i7 0.4 nozzle", "sub_path": "process/0.12mm Fine @Creality SPARKX i7 0.4 nozzle.json" }, + { + "name": "0.12mm Standard @Creality Sermoon M300 0.4 nozzle", + "sub_path": "process/0.12mm Standard @Creality Sermoon M300 0.4 nozzle.json" + }, { "name": "0.14mm Optimal @Creality K2 Plus 0.2 nozzle", "sub_path": "process/0.14mm Optimal @Creality K2 Plus 0.2 nozzle.json" @@ -390,6 +502,26 @@ "name": "0.16mm Fine @Creality Ender-3 V4 0.4 nozzle", "sub_path": "process/0.16mm Fine @Creality Ender-3 V4 0.4 nozzle.json" }, + { + "name": "0.16mm Optimal @Creality CR-10 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality CR-10 0.4 nozzle.json" + }, + { + "name": "0.16mm Optimal @Creality CR-10 Smart 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality CR-10 Smart 0.4 nozzle.json" + }, + { + "name": "0.16mm Optimal @Creality CR-10 Smart Pro 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality CR-10 Smart Pro 0.4 nozzle.json" + }, + { + "name": "0.16mm Optimal @Creality CR-10S Pro V2 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality CR-10S Pro V2 0.4 nozzle.json" + }, + { + "name": "0.16mm Optimal @Creality CR-20 Pro 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality CR-20 Pro 0.4 nozzle.json" + }, { "name": "0.16mm Optimal @Creality CR-6 0.2", "sub_path": "process/0.16mm Optimal @Creality CR-6 0.2.json" @@ -406,6 +538,22 @@ "name": "0.16mm Optimal @Creality CR10V2", "sub_path": "process/0.16mm Optimal @Creality CR10V2.json" }, + { + "name": "0.16mm Optimal @Creality Ender-2 Pro 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality Ender-2 Pro 0.4 nozzle.json" + }, + { + "name": "0.16mm Optimal @Creality Ender-3 Max 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality Ender-3 Max 0.4 nozzle.json" + }, + { + "name": "0.16mm Optimal @Creality Ender-3 Max Neo 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality Ender-3 Max Neo 0.4 nozzle.json" + }, + { + "name": "0.16mm Optimal @Creality Ender-3 Neo 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality Ender-3 Neo 0.4 nozzle.json" + }, { "name": "0.16mm Optimal @Creality Ender3 0.2", "sub_path": "process/0.16mm Optimal @Creality Ender3 0.2.json" @@ -554,18 +702,34 @@ "name": "0.16mm Optimal @Creality SPARKX i7 0.4 nozzle", "sub_path": "process/0.16mm Optimal @Creality SPARKX i7 0.4 nozzle.json" }, + { + "name": "0.16mm Optimal @Creality Sermoon D3 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality Sermoon D3 0.4 nozzle.json" + }, { "name": "0.16mm Optimal @Creality Sermoon V1", "sub_path": "process/0.16mm Optimal @Creality Sermoon V1.json" }, + { + "name": "0.16mm Optimal @Creality Sermoon V1 Pro 0.4 nozzle", + "sub_path": "process/0.16mm Optimal @Creality Sermoon V1 Pro 0.4 nozzle.json" + }, { "name": "0.16mm Standard @Creality K2 SE 0.4 nozzle", "sub_path": "process/0.16mm Standard @Creality K2 SE 0.4 nozzle.json" }, + { + "name": "0.16mm Standard @Creality Sermoon M300 0.4 nozzle", + "sub_path": "process/0.16mm Standard @Creality Sermoon M300 0.4 nozzle.json" + }, { "name": "0.18mm Detail @Creality K2 Plus 0.6 nozzle", "sub_path": "process/0.18mm Detail @Creality K2 Plus 0.6 nozzle.json" }, + { + "name": "0.1mm Standard @Creality CR-M4 SE 0.4 nozzle", + "sub_path": "process/0.1mm Standard @Creality CR-M4 SE 0.4 nozzle.json" + }, { "name": "0.1mm Standard @Creality Hi 0.2 nozzle", "sub_path": "process/0.1mm Standard @Creality Hi 0.2 nozzle.json" @@ -574,6 +738,26 @@ "name": "0.20mm High Quality @Creality K2 Plus 0.4 nozzle", "sub_path": "process/0.20mm High Quality @Creality K2 Plus 0.4 nozzle.json" }, + { + "name": "0.20mm Standard @Creality CR-10 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality CR-10 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Creality CR-10 Smart 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality CR-10 Smart 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Creality CR-10 Smart Pro 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality CR-10 Smart Pro 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Creality CR-10S Pro V2 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality CR-10S Pro V2 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Creality CR-20 Pro 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality CR-20 Pro 0.4 nozzle.json" + }, { "name": "0.20mm Standard @Creality CR-6 0.4", "sub_path": "process/0.20mm Standard @Creality CR-6 0.4.json" @@ -586,6 +770,10 @@ "name": "0.20mm Standard @Creality CR-M4", "sub_path": "process/0.20mm Standard @Creality CR-M4.json" }, + { + "name": "0.20mm Standard @Creality CR-M4 SE 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality CR-M4 SE 0.4 nozzle.json" + }, { "name": "0.20mm Standard @Creality CR10Max", "sub_path": "process/0.20mm Standard @Creality CR10Max.json" @@ -602,10 +790,34 @@ "name": "0.20mm Standard @Creality CR10V3 0.6", "sub_path": "process/0.20mm Standard @Creality CR10V3 0.6.json" }, + { + "name": "0.20mm Standard @Creality Ender-2 Pro 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality Ender-2 Pro 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Creality Ender-3 Max 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality Ender-3 Max 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Creality Ender-3 Max Neo 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality Ender-3 Max Neo 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Creality Ender-3 Neo 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality Ender-3 Neo 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Creality Ender-3 S1 Sonic 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality Ender-3 S1 Sonic 0.4 nozzle.json" + }, { "name": "0.20mm Standard @Creality Ender-3 V4 0.4 nozzle", "sub_path": "process/0.20mm Standard @Creality Ender-3 V4 0.4 nozzle.json" }, + { + "name": "0.20mm Standard @Creality Ender-5 S1 Sonic 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality Ender-5 S1 Sonic 0.4 nozzle.json" + }, { "name": "0.20mm Standard @Creality Ender3", "sub_path": "process/0.20mm Standard @Creality Ender3.json" @@ -770,14 +982,34 @@ "name": "0.20mm Standard @Creality SPARKX i7 0.4 nozzle", "sub_path": "process/0.20mm Standard @Creality SPARKX i7 0.4 nozzle.json" }, + { + "name": "0.20mm Standard @Creality Sermoon D3 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality Sermoon D3 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Creality Sermoon D3 Pro 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality Sermoon D3 Pro 0.4 nozzle.json" + }, + { + "name": "0.20mm Standard @Creality Sermoon M300 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality Sermoon M300 0.4 nozzle.json" + }, { "name": "0.20mm Standard @Creality Sermoon V1", "sub_path": "process/0.20mm Standard @Creality Sermoon V1.json" }, + { + "name": "0.20mm Standard @Creality Sermoon V1 Pro 0.4 nozzle", + "sub_path": "process/0.20mm Standard @Creality Sermoon V1 Pro 0.4 nozzle.json" + }, { "name": "0.20mm Strength @Creality K2 Plus 0.4 nozzle", "sub_path": "process/0.20mm Strength @Creality K2 Plus 0.4 nozzle.json" }, + { + "name": "0.20mm Ultrafast @Creality CR-M4 SE 0.4 nozzle", + "sub_path": "process/0.20mm Ultrafast @Creality CR-M4 SE 0.4 nozzle.json" + }, { "name": "0.24mm Detail @Creality K2 Plus 0.8 nozzle", "sub_path": "process/0.24mm Detail @Creality K2 Plus 0.8 nozzle.json" @@ -934,10 +1166,18 @@ "name": "0.24mm Optimal @Creality K2 Plus 0.6 nozzle", "sub_path": "process/0.24mm Optimal @Creality K2 Plus 0.6 nozzle.json" }, + { + "name": "0.24mm Standard @Creality Ender-3 V3 0.8 nozzle", + "sub_path": "process/0.24mm Standard @Creality Ender-3 V3 0.8 nozzle.json" + }, { "name": "0.24mm Standard @Creality K2 SE 0.4 nozzle", "sub_path": "process/0.24mm Standard @Creality K2 SE 0.4 nozzle.json" }, + { + "name": "0.24mm Standard @Creality Sermoon M300 0.4 nozzle", + "sub_path": "process/0.24mm Standard @Creality Sermoon M300 0.4 nozzle.json" + }, { "name": "0.28mm Draft @Creality Ender3 0.2", "sub_path": "process/0.28mm SuperDraft @Creality Ender3 0.2.json" @@ -970,6 +1210,10 @@ "name": "0.28mm Draft @Creality Ender3 Pro 0.8", "sub_path": "process/0.28mm SuperDraft @Creality Ender3 Pro 0.8.json" }, + { + "name": "0.28mm Standard @Creality Sermoon M300 0.4 nozzle", + "sub_path": "process/0.28mm Standard @Creality Sermoon M300 0.4 nozzle.json" + }, { "name": "0.28mm Standard @Creality Sermoon V1", "sub_path": "process/0.28mm Standard @Creality Sermoon V1.json" @@ -1054,6 +1298,10 @@ "name": "0.30mm Standard @Creality SPARKX i7 0.6 nozzle", "sub_path": "process/0.30mm Standard @Creality SPARKX i7 0.6 nozzle.json" }, + { + "name": "0.30mm Standard @Creality Sermoon M300 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Creality Sermoon M300 0.6 nozzle.json" + }, { "name": "0.30mm Strength @Creality K2 Plus 0.6 nozzle", "sub_path": "process/0.30mm Strength @Creality K2 Plus 0.6 nozzle.json" @@ -1070,6 +1318,10 @@ "name": "0.32mm Standard @Creality CR-6 0.8", "sub_path": "process/0.32mm Standard @Creality CR-6 0.8.json" }, + { + "name": "0.32mm Standard @Creality Ender-3 V3 0.8 nozzle", + "sub_path": "process/0.32mm Standard @Creality Ender-3 V3 0.8 nozzle.json" + }, { "name": "0.36mm Draft @Creality K2 Plus 0.6 nozzle", "sub_path": "process/0.36mm Draft @Creality K2 Plus 0.6 nozzle.json" @@ -1082,6 +1334,14 @@ "name": "0.40mm Draft @Creality CR-6 0.8", "sub_path": "process/0.40mm Draft @Creality CR-6 0.8.json" }, + { + "name": "0.40mm Standard @Creality Ender-3 V3 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Creality Ender-3 V3 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Creality Ender-3 V3 Plus 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Creality Ender-3 V3 Plus 0.8 nozzle.json" + }, { "name": "0.40mm Standard @Creality Ender-5 Max 0.8 nozzle", "sub_path": "process/0.40mm Standard @Creality Ender-5 Max 0.8 nozzle.json" @@ -1122,6 +1382,10 @@ "name": "0.40mm Standard @Creality SPARKX i7 0.8 nozzle", "sub_path": "process/0.40mm Standard @Creality SPARKX i7 0.8 nozzle.json" }, + { + "name": "0.40mm Standard @Creality Sermoon M300 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Creality Sermoon M300 0.8 nozzle.json" + }, { "name": "0.40mm Strength @Creality K2 Plus 0.8 nozzle", "sub_path": "process/0.40mm Strength @Creality K2 Plus 0.8 nozzle.json" @@ -1146,6 +1410,14 @@ "name": "0.48mm Draft @Creality K2 Plus 0.8 nozzle", "sub_path": "process/0.48mm Draft @Creality K2 Plus 0.8 nozzle.json" }, + { + "name": "0.48mm Standard @Creality Ender-3 V3 0.8 nozzle", + "sub_path": "process/0.48mm Standard @Creality Ender-3 V3 0.8 nozzle.json" + }, + { + "name": "0.56mm Standard @Creality Ender-3 V3 0.8 nozzle", + "sub_path": "process/0.56mm Standard @Creality Ender-3 V3 0.8 nozzle.json" + }, { "name": "0.56mm SuperChunky @Creality CR-6 0.8", "sub_path": "process/0.56mm SuperChunky @Creality CR-6 0.8.json" @@ -1676,6 +1948,10 @@ "name": "Generic ASA-CF @K2 Plus-all", "sub_path": "filament/Generic ASA-CF @K2 Plus-all.json" }, + { + "name": "Generic BVOH @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic BVOH @Ender-3 V3 Plus-all.json" + }, { "name": "Generic BVOH @Hi-all", "sub_path": "filament/Generic BVOH @Hi-all.json" @@ -1744,6 +2020,10 @@ "name": "Generic PP-CF @K2 Plus-all", "sub_path": "filament/Generic PP-CF @K2 Plus-all.json" }, + { + "name": "Generic PVA @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PVA @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PVA @Hi-all", "sub_path": "filament/Generic PVA @Hi-all.json" @@ -1824,6 +2104,10 @@ "name": "fdm_filament_tpu", "sub_path": "filament/fdm_filament_tpu.json" }, + { + "name": "Generic HIPS @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic HIPS @Ender-3 V3 Plus-all.json" + }, { "name": "Generic HIPS @K1 Max_CFS-C-all", "sub_path": "filament/Generic HIPS @K1 Max_CFS-C-all.json" @@ -1844,10 +2128,74 @@ "name": "Generic HIPS @K2 Plus-all", "sub_path": "filament/Generic HIPS @K2 Plus-all.json" }, + { + "name": "CR-PETG @CR-10 SE-all", + "sub_path": "filament/CR-PETG @CR-10 SE-all.json" + }, + { + "name": "CR-PETG @CR-10 Smart Pro-all", + "sub_path": "filament/CR-PETG @CR-10 Smart Pro-all.json" + }, + { + "name": "CR-PETG @CR-10-all", + "sub_path": "filament/CR-PETG @CR-10-all.json" + }, + { + "name": "CR-PETG @CR-M4 SE-all", + "sub_path": "filament/CR-PETG @CR-M4 SE-all.json" + }, + { + "name": "CR-PETG @Ender-2 Pro-all", + "sub_path": "filament/CR-PETG @Ender-2 Pro-all.json" + }, + { + "name": "CR-PETG @Ender-3 S1 Plus-all", + "sub_path": "filament/CR-PETG @Ender-3 S1 Plus-all.json" + }, + { + "name": "CR-PETG @Ender-3 S1 Pro-all", + "sub_path": "filament/CR-PETG @Ender-3 S1 Pro-all.json" + }, + { + "name": "CR-PETG @Ender-3 S1 Sonic-all", + "sub_path": "filament/CR-PETG @Ender-3 S1 Sonic-all.json" + }, + { + "name": "CR-PETG @Ender-3 S1-all", + "sub_path": "filament/CR-PETG @Ender-3 S1-all.json" + }, + { + "name": "CR-PETG @Ender-3 V2-all", + "sub_path": "filament/CR-PETG @Ender-3 V2-all.json" + }, + { + "name": "CR-PETG @Ender-3 V3 KE-all", + "sub_path": "filament/CR-PETG @Ender-3 V3 KE-all.json" + }, + { + "name": "CR-PETG @Ender-3 V3 Plus-all", + "sub_path": "filament/CR-PETG @Ender-3 V3 Plus-all.json" + }, + { + "name": "CR-PETG @Ender-3 V3-all", + "sub_path": "filament/CR-PETG @Ender-3 V3-all.json" + }, { "name": "CR-PETG @Ender-3 V4-all", "sub_path": "filament/CR-PETG @Ender-3 V4-all.json" }, + { + "name": "CR-PETG @Ender-3-all", + "sub_path": "filament/CR-PETG @Ender-3-all.json" + }, + { + "name": "CR-PETG @Ender-5 S1 Sonic-all", + "sub_path": "filament/CR-PETG @Ender-5 S1 Sonic-all.json" + }, + { + "name": "CR-PETG @Ender-5 S1-all", + "sub_path": "filament/CR-PETG @Ender-5 S1-all.json" + }, { "name": "CR-PETG @Hi-all", "sub_path": "filament/CR-PETG @Hi-all.json" @@ -1896,6 +2244,66 @@ "name": "CR-PETG @SPARKX i7-all", "sub_path": "filament/CR-PETG @SPARKX i7-all.json" }, + { + "name": "CR-PETG @Sermoon D3 Pro-all", + "sub_path": "filament/CR-PETG @Sermoon D3 Pro-all.json" + }, + { + "name": "CR-PETG @Sermoon D3-all", + "sub_path": "filament/CR-PETG @Sermoon D3-all.json" + }, + { + "name": "CR-PETG @Sermoon M300-all", + "sub_path": "filament/CR-PETG @Sermoon M300-all.json" + }, + { + "name": "CR-PETG @Sermoon V1 Pro-all", + "sub_path": "filament/CR-PETG @Sermoon V1 Pro-all.json" + }, + { + "name": "Generic PETG @CR-10 Smart-all", + "sub_path": "filament/Generic PETG @CR-10 Smart-all.json" + }, + { + "name": "Generic PETG @CR-10S Pro V2-all", + "sub_path": "filament/Generic PETG @CR-10S Pro V2-all.json" + }, + { + "name": "Generic PETG @CR-20 Pro-all", + "sub_path": "filament/Generic PETG @CR-20 Pro-all.json" + }, + { + "name": "Generic PETG @CR-6 SE-all", + "sub_path": "filament/Generic PETG @CR-6 SE-all.json" + }, + { + "name": "Generic PETG @CR-M4-all", + "sub_path": "filament/Generic PETG @CR-M4-all.json" + }, + { + "name": "Generic PETG @Ender-3 Max Neo-all", + "sub_path": "filament/Generic PETG @Ender-3 Max Neo-all.json" + }, + { + "name": "Generic PETG @Ender-3 Max-all", + "sub_path": "filament/Generic PETG @Ender-3 Max-all.json" + }, + { + "name": "Generic PETG @Ender-3 Neo-all", + "sub_path": "filament/Generic PETG @Ender-3 Neo-all.json" + }, + { + "name": "Generic PETG @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PETG @Ender-3 V3 Plus-all.json" + }, + { + "name": "Generic PETG @Ender-3 V3 SE-all", + "sub_path": "filament/Generic PETG @Ender-3 V3 SE-all.json" + }, + { + "name": "Generic PETG @Ender-3 V3-all", + "sub_path": "filament/Generic PETG @Ender-3 V3-all.json" + }, { "name": "Generic PETG @Ender-3 V4-all", "sub_path": "filament/Generic PETG @Ender-3 V4-all.json" @@ -1948,6 +2356,14 @@ "name": "Generic PETG @SPARKX i7-all", "sub_path": "filament/Generic PETG @SPARKX i7-all.json" }, + { + "name": "Generic PETG @Sermoon M300-all", + "sub_path": "filament/Generic PETG @Sermoon M300-all.json" + }, + { + "name": "Generic PETG-CF @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PETG-CF @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PETG-CF @K1 Max_CFS-C-all", "sub_path": "filament/Generic PETG-CF @K1 Max_CFS-C-all.json" @@ -1980,6 +2396,14 @@ "name": "Generic PETG-CF @SPARKX i7-all", "sub_path": "filament/Generic PETG-CF @SPARKX i7-all.json" }, + { + "name": "Hyper PETG @Ender-3 V3 Plus-all", + "sub_path": "filament/Hyper PETG @Ender-3 V3 Plus-all.json" + }, + { + "name": "Hyper PETG @Ender-3 V3-all", + "sub_path": "filament/Hyper PETG @Ender-3 V3-all.json" + }, { "name": "Hyper PETG @Ender-3 V4-all", "sub_path": "filament/Hyper PETG @Ender-3 V4-all.json" @@ -2032,6 +2456,10 @@ "name": "Hyper PETG @SPARKX i7-all", "sub_path": "filament/Hyper PETG @SPARKX i7-all.json" }, + { + "name": "Hyper PETG @Sermoon M300-all", + "sub_path": "filament/Hyper PETG @Sermoon M300-all.json" + }, { "name": "Hyper PETG-CF @K1 Max_CFS-C-all", "sub_path": "filament/Hyper PETG-CF @K1 Max_CFS-C-all.json" @@ -2064,6 +2492,22 @@ "name": "Hyper PETG-CF @SPARKX i7-all", "sub_path": "filament/Hyper PETG-CF @SPARKX i7-all.json" }, + { + "name": "Soleyin Basic PETG @Ender-3 V3 KE-all", + "sub_path": "filament/Soleyin Basic PETG @Ender-3 V3 KE-all.json" + }, + { + "name": "Soleyin Basic PETG @Ender-3 V3 Plus-all", + "sub_path": "filament/Soleyin Basic PETG @Ender-3 V3 Plus-all.json" + }, + { + "name": "Soleyin Basic PETG @Ender-3 V3 SE-all", + "sub_path": "filament/Soleyin Basic PETG @Ender-3 V3 SE-all.json" + }, + { + "name": "Soleyin Basic PETG @Ender-3 V3-all", + "sub_path": "filament/Soleyin Basic PETG @Ender-3 V3-all.json" + }, { "name": "Soleyin Basic PETG @Hi-all", "sub_path": "filament/Soleyin Basic PETG @Hi-all.json" @@ -2088,6 +2532,10 @@ "name": "Soleyin Basic PETG @SPARKX i7-all", "sub_path": "filament/Soleyin Basic PETG @SPARKX i7-all.json" }, + { + "name": "Soleyin Basic PETG @Sermoon M300-all", + "sub_path": "filament/Soleyin Basic PETG @Sermoon M300-all.json" + }, { "name": "eSUN PETG @K2 Plus-all", "sub_path": "filament/eSUN PETG @K2 Plus-all.json" @@ -2100,6 +2548,10 @@ "name": "eSUN PETG-Basic @K2 Plus-all", "sub_path": "filament/eSUN PETG-Basic @K2 Plus-all.json" }, + { + "name": "Generic PP @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PP @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PP @K1 Max_CFS-C-all", "sub_path": "filament/Generic PP @K1 Max_CFS-C-all.json" @@ -2128,6 +2580,10 @@ "name": "Generic PP @K2-all", "sub_path": "filament/Generic PP @K2-all.json" }, + { + "name": "Generic PPS @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PPS @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PPS @K1 Max_CFS-C-all", "sub_path": "filament/Generic PPS @K1 Max_CFS-C-all.json" @@ -2148,6 +2604,10 @@ "name": "Generic PPS @K2 Plus-all", "sub_path": "filament/Generic PPS @K2 Plus-all.json" }, + { + "name": "Generic PPS-CF @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PPS-CF @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PPS-CF @K1 Max_CFS-C-all", "sub_path": "filament/Generic PPS-CF @K1 Max_CFS-C-all.json" @@ -2168,10 +2628,54 @@ "name": "Generic PPS-CF @K2 Plus-all", "sub_path": "filament/Generic PPS-CF @K2 Plus-all.json" }, + { + "name": "CR-ABS @Ender-2 Pro-all", + "sub_path": "filament/CR-ABS @Ender-2 Pro-all.json" + }, + { + "name": "CR-ABS @Ender-3 S1 Plus-all", + "sub_path": "filament/CR-ABS @Ender-3 S1 Plus-all.json" + }, + { + "name": "CR-ABS @Ender-3 S1 Pro-all", + "sub_path": "filament/CR-ABS @Ender-3 S1 Pro-all.json" + }, + { + "name": "CR-ABS @Ender-3 S1 Sonic-all", + "sub_path": "filament/CR-ABS @Ender-3 S1 Sonic-all.json" + }, + { + "name": "CR-ABS @Ender-3 S1-all", + "sub_path": "filament/CR-ABS @Ender-3 S1-all.json" + }, + { + "name": "CR-ABS @Ender-3 V3 KE-all", + "sub_path": "filament/CR-ABS @Ender-3 V3 KE-all.json" + }, + { + "name": "CR-ABS @Ender-3 V3 Plus-all", + "sub_path": "filament/CR-ABS @Ender-3 V3 Plus-all.json" + }, + { + "name": "CR-ABS @Ender-3 V3-all", + "sub_path": "filament/CR-ABS @Ender-3 V3-all.json" + }, { "name": "CR-ABS @Ender-3 V4-all", "sub_path": "filament/CR-ABS @Ender-3 V4-all.json" }, + { + "name": "CR-ABS @Ender-3-all", + "sub_path": "filament/CR-ABS @Ender-3-all.json" + }, + { + "name": "CR-ABS @Ender-5 S1 Sonic-all", + "sub_path": "filament/CR-ABS @Ender-5 S1 Sonic-all.json" + }, + { + "name": "CR-ABS @Ender-5 S1-all", + "sub_path": "filament/CR-ABS @Ender-5 S1-all.json" + }, { "name": "CR-ABS @Hi-all", "sub_path": "filament/CR-ABS @Hi-all.json" @@ -2216,10 +2720,70 @@ "name": "CR-ABS @K2-all", "sub_path": "filament/CR-ABS @K2-all.json" }, + { + "name": "CR-ABS @Sermoon D3 Pro-all", + "sub_path": "filament/CR-ABS @Sermoon D3 Pro-all.json" + }, + { + "name": "CR-ABS @Sermoon M300-all", + "sub_path": "filament/CR-ABS @Sermoon M300-all.json" + }, + { + "name": "Generic ABS @CR-10 SE-all", + "sub_path": "filament/Generic ABS @CR-10 SE-all.json" + }, + { + "name": "Generic ABS @CR-10 Smart Pro-all", + "sub_path": "filament/Generic ABS @CR-10 Smart Pro-all.json" + }, + { + "name": "Generic ABS @CR-10 Smart-all", + "sub_path": "filament/Generic ABS @CR-10 Smart-all.json" + }, + { + "name": "Generic ABS @CR-10-all", + "sub_path": "filament/Generic ABS @CR-10-all.json" + }, + { + "name": "Generic ABS @CR-10S Pro V2-all", + "sub_path": "filament/Generic ABS @CR-10S Pro V2-all.json" + }, + { + "name": "Generic ABS @CR-20 Pro-all", + "sub_path": "filament/Generic ABS @CR-20 Pro-all.json" + }, + { + "name": "Generic ABS @CR-6 SE-all", + "sub_path": "filament/Generic ABS @CR-6 SE-all.json" + }, + { + "name": "Generic ABS @CR-M4-all", + "sub_path": "filament/Generic ABS @CR-M4-all.json" + }, { "name": "Generic ABS @Creality", "sub_path": "filament/Generic ABS @Creality.json" }, + { + "name": "Generic ABS @Ender-3 Max Neo-all", + "sub_path": "filament/Generic ABS @Ender-3 Max Neo-all.json" + }, + { + "name": "Generic ABS @Ender-3 Max-all", + "sub_path": "filament/Generic ABS @Ender-3 Max-all.json" + }, + { + "name": "Generic ABS @Ender-3 Neo-all", + "sub_path": "filament/Generic ABS @Ender-3 Neo-all.json" + }, + { + "name": "Generic ABS @Ender-3 V2-all", + "sub_path": "filament/Generic ABS @Ender-3 V2-all.json" + }, + { + "name": "Generic ABS @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic ABS @Ender-3 V3 Plus-all.json" + }, { "name": "Generic ABS @Ender-3 V4-all", "sub_path": "filament/Generic ABS @Ender-3 V4-all.json" @@ -2268,6 +2832,26 @@ "name": "Generic ABS @K2-all", "sub_path": "filament/Generic ABS @K2-all.json" }, + { + "name": "Generic ABS @Sermoon D3-all", + "sub_path": "filament/Generic ABS @Sermoon D3-all.json" + }, + { + "name": "Generic ABS @Sermoon M300-all", + "sub_path": "filament/Generic ABS @Sermoon M300-all.json" + }, + { + "name": "Generic ABS @Sermoon V1 Pro-all", + "sub_path": "filament/Generic ABS @Sermoon V1 Pro-all.json" + }, + { + "name": "Hyper ABS @CR-M4 SE-all", + "sub_path": "filament/Hyper ABS @CR-M4 SE-all.json" + }, + { + "name": "Hyper ABS @Ender-3 V3 Plus-all", + "sub_path": "filament/Hyper ABS @Ender-3 V3 Plus-all.json" + }, { "name": "Hyper ABS @Ender-3 V4-all", "sub_path": "filament/Hyper ABS @Ender-3 V4-all.json" @@ -2316,6 +2900,10 @@ "name": "Hyper ABS @K2-all", "sub_path": "filament/Hyper ABS @K2-all.json" }, + { + "name": "Hyper ABS @Sermoon M300-all", + "sub_path": "filament/Hyper ABS @Sermoon M300-all.json" + }, { "name": "eSUN ABS+ @K2 Plus-all", "sub_path": "filament/eSUN ABS+ @K2 Plus-all.json" @@ -2324,6 +2912,10 @@ "name": "Generic ASA @Creality", "sub_path": "filament/Generic ASA @Creality.json" }, + { + "name": "Generic ASA @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic ASA @Ender-3 V3 Plus-all.json" + }, { "name": "Generic ASA @K1 Max_CFS-C-all", "sub_path": "filament/Generic ASA @K1 Max_CFS-C-all.json" @@ -2364,6 +2956,30 @@ "name": "Generic ASA @K2-all", "sub_path": "filament/Generic ASA @K2-all.json" }, + { + "name": "Generic ASA @Sermoon M300-all", + "sub_path": "filament/Generic ASA @Sermoon M300-all.json" + }, + { + "name": "HP-ASA @CR-M4 SE-all", + "sub_path": "filament/HP-ASA @CR-M4 SE-all.json" + }, + { + "name": "HP-ASA @Ender-3 V3 KE-all", + "sub_path": "filament/HP-ASA @Ender-3 V3 KE-all.json" + }, + { + "name": "HP-ASA @Ender-3 V3 Plus-all", + "sub_path": "filament/HP-ASA @Ender-3 V3 Plus-all.json" + }, + { + "name": "HP-ASA @Ender-5 S1 Sonic-all", + "sub_path": "filament/HP-ASA @Ender-5 S1 Sonic-all.json" + }, + { + "name": "HP-ASA @Ender-5 S1-all", + "sub_path": "filament/HP-ASA @Ender-5 S1-all.json" + }, { "name": "HP-ASA @K1 Max_CFS-C-all", "sub_path": "filament/HP-ASA @K1 Max_CFS-C-all.json" @@ -2396,10 +3012,18 @@ "name": "HP-ASA @K2-all", "sub_path": "filament/HP-ASA @K2-all.json" }, + { + "name": "HP-ASA @Sermoon M300-all", + "sub_path": "filament/HP-ASA @Sermoon M300-all.json" + }, { "name": "eSUN ASA+ @K2 Plus-all", "sub_path": "filament/eSUN ASA+ @K2 Plus-all.json" }, + { + "name": "CR-Nylon @Ender-3 V3 Plus-all", + "sub_path": "filament/CR-Nylon @Ender-3 V3 Plus-all.json" + }, { "name": "CR-Nylon @K1 Max_CFS-C-all", "sub_path": "filament/CR-Nylon @K1 Max_CFS-C-all.json" @@ -2420,6 +3044,10 @@ "name": "CR-Nylon @K2 Plus-all", "sub_path": "filament/CR-Nylon @K2 Plus-all.json" }, + { + "name": "Generic PA @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PA @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PA @K1 Max_CFS-C-all", "sub_path": "filament/Generic PA @K1 Max_CFS-C-all.json" @@ -2452,6 +3080,10 @@ "name": "Generic PA-CF @Creality", "sub_path": "filament/Generic PA-CF @Creality.json" }, + { + "name": "Generic PA-CF @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PA-CF @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PA-CF @K1 Max_CFS-C-all", "sub_path": "filament/Generic PA-CF @K1 Max_CFS-C-all.json" @@ -2476,6 +3108,10 @@ "name": "Generic PA12-CF @K2 Plus-all", "sub_path": "filament/Generic PA12-CF @K2 Plus-all.json" }, + { + "name": "Generic PA6-CF @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PA6-CF @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PA6-CF @K1 Max_CFS-C-all", "sub_path": "filament/Generic PA6-CF @K1 Max_CFS-C-all.json" @@ -2508,6 +3144,10 @@ "name": "Generic PA612-CF @K2 Pro-all", "sub_path": "filament/Generic PA612-CF @K2 Pro-all.json" }, + { + "name": "Generic PAHT-CF @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PAHT-CF @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PAHT-CF @K1 Max_CFS-C-all", "sub_path": "filament/Generic PAHT-CF @K1 Max_CFS-C-all.json" @@ -2596,6 +3236,10 @@ "name": "Generic PC @Creality", "sub_path": "filament/Generic PC @Creality.json" }, + { + "name": "Generic PC @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PC @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PC @K1 Max_CFS-C-all", "sub_path": "filament/Generic PC @K1 Max_CFS-C-all.json" @@ -2628,6 +3272,10 @@ "name": "Hyper PC @K2 Pro-all", "sub_path": "filament/Hyper PC @K2 Pro-all.json" }, + { + "name": "Generic PET @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PET @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PET @K1 Max_CFS-C-all", "sub_path": "filament/Generic PET @K1 Max_CFS-C-all.json" @@ -2656,6 +3304,10 @@ "name": "Generic PET @K2-all", "sub_path": "filament/Generic PET @K2-all.json" }, + { + "name": "Generic PET-CF @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PET-CF @Ender-3 V3 Plus-all.json" + }, { "name": "Generic PET-CF @K1 Max_CFS-C-all", "sub_path": "filament/Generic PET-CF @K1 Max_CFS-C-all.json" @@ -2688,10 +3340,70 @@ "name": "eSUN PET-Basic @K2 Plus-all", "sub_path": "filament/eSUN PET-Basic @K2 Plus-all.json" }, + { + "name": "CR-PLA @CR-10-all", + "sub_path": "filament/CR-PLA @CR-10-all.json" + }, + { + "name": "CR-PLA @CR-M4 SE-all", + "sub_path": "filament/CR-PLA @CR-M4 SE-all.json" + }, + { + "name": "CR-PLA @Ender-2 Pro-all", + "sub_path": "filament/CR-PLA @Ender-2 Pro-all.json" + }, + { + "name": "CR-PLA @Ender-3 S1 Plus-all", + "sub_path": "filament/CR-PLA @Ender-3 S1 Plus-all.json" + }, + { + "name": "CR-PLA @Ender-3 S1 Pro-all", + "sub_path": "filament/CR-PLA @Ender-3 S1 Pro-all.json" + }, + { + "name": "CR-PLA @Ender-3 S1 Sonic-all", + "sub_path": "filament/CR-PLA @Ender-3 S1 Sonic-all.json" + }, + { + "name": "CR-PLA @Ender-3 S1-all", + "sub_path": "filament/CR-PLA @Ender-3 S1-all.json" + }, + { + "name": "CR-PLA @Ender-3 V2-all", + "sub_path": "filament/CR-PLA @Ender-3 V2-all.json" + }, + { + "name": "CR-PLA @Ender-3 V3 KE-all", + "sub_path": "filament/CR-PLA @Ender-3 V3 KE-all.json" + }, + { + "name": "CR-PLA @Ender-3 V3 Plus-all", + "sub_path": "filament/CR-PLA @Ender-3 V3 Plus-all.json" + }, + { + "name": "CR-PLA @Ender-3 V3 SE-all", + "sub_path": "filament/CR-PLA @Ender-3 V3 SE-all.json" + }, + { + "name": "CR-PLA @Ender-3 V3-all", + "sub_path": "filament/CR-PLA @Ender-3 V3-all.json" + }, { "name": "CR-PLA @Ender-3 V4-all", "sub_path": "filament/CR-PLA @Ender-3 V4-all.json" }, + { + "name": "CR-PLA @Ender-3-all", + "sub_path": "filament/CR-PLA @Ender-3-all.json" + }, + { + "name": "CR-PLA @Ender-5 S1 Sonic-all", + "sub_path": "filament/CR-PLA @Ender-5 S1 Sonic-all.json" + }, + { + "name": "CR-PLA @Ender-5 S1-all", + "sub_path": "filament/CR-PLA @Ender-5 S1-all.json" + }, { "name": "CR-PLA @Hi-all", "sub_path": "filament/CR-PLA @Hi-all.json" @@ -2740,6 +3452,26 @@ "name": "CR-PLA @SPARKX i7-all", "sub_path": "filament/CR-PLA @SPARKX i7-all.json" }, + { + "name": "CR-PLA @Sermoon D3-all", + "sub_path": "filament/CR-PLA @Sermoon D3-all.json" + }, + { + "name": "CR-PLA @Sermoon M300-all", + "sub_path": "filament/CR-PLA @Sermoon M300-all.json" + }, + { + "name": "CR-PLA @Sermoon V1 Pro-all", + "sub_path": "filament/CR-PLA @Sermoon V1 Pro-all.json" + }, + { + "name": "CR-PLA Carbon @Ender-3 V3 Plus-all", + "sub_path": "filament/CR-PLA Carbon @Ender-3 V3 Plus-all.json" + }, + { + "name": "CR-PLA Carbon @Ender-3 V3-all", + "sub_path": "filament/CR-PLA Carbon @Ender-3 V3-all.json" + }, { "name": "CR-PLA Carbon @K1 Max_CFS-C-all", "sub_path": "filament/CR-PLA Carbon @K1 Max_CFS-C-all.json" @@ -2760,6 +3492,14 @@ "name": "CR-PLA Carbon @K2 Plus-all", "sub_path": "filament/CR-PLA Carbon @K2 Plus-all.json" }, + { + "name": "CR-PLA Fluo @Ender-3 V3 Plus-all", + "sub_path": "filament/CR-PLA Fluo @Ender-3 V3 Plus-all.json" + }, + { + "name": "CR-PLA Fluo @Ender-3 V3-all", + "sub_path": "filament/CR-PLA Fluo @Ender-3 V3-all.json" + }, { "name": "CR-PLA Fluo @K1 Max_CFS-C-all", "sub_path": "filament/CR-PLA Fluo @K1 Max_CFS-C-all.json" @@ -2792,6 +3532,18 @@ "name": "CR-PLA Fluo @SPARKX i7-all", "sub_path": "filament/CR-PLA Fluo @SPARKX i7-all.json" }, + { + "name": "CR-PLA Matte @CR-10 SE-all", + "sub_path": "filament/CR-PLA Matte @CR-10 SE-all.json" + }, + { + "name": "CR-PLA Matte @Ender-3 V3 Plus-all", + "sub_path": "filament/CR-PLA Matte @Ender-3 V3 Plus-all.json" + }, + { + "name": "CR-PLA Matte @Ender-3 V3-all", + "sub_path": "filament/CR-PLA Matte @Ender-3 V3-all.json" + }, { "name": "CR-PLA Matte @Ender-3 V4-all", "sub_path": "filament/CR-PLA Matte @Ender-3 V4-all.json" @@ -2828,6 +3580,14 @@ "name": "CR-PLA Matte @SPARKX i7-all", "sub_path": "filament/CR-PLA Matte @SPARKX i7-all.json" }, + { + "name": "CR-Silk @Ender-3 V3 Plus-all", + "sub_path": "filament/CR-Silk @Ender-3 V3 Plus-all.json" + }, + { + "name": "CR-Silk @Ender-3 V3-all", + "sub_path": "filament/CR-Silk @Ender-3 V3-all.json" + }, { "name": "CR-Silk @Ender-3 V4-all", "sub_path": "filament/CR-Silk @Ender-3 V4-all.json" @@ -2880,6 +3640,22 @@ "name": "CR-Silk @SPARKX i7-all", "sub_path": "filament/CR-Silk @SPARKX i7-all.json" }, + { + "name": "CR-Silk @Sermoon D3-all", + "sub_path": "filament/CR-Silk @Sermoon D3-all.json" + }, + { + "name": "CR-Silk @Sermoon M300-all", + "sub_path": "filament/CR-Silk @Sermoon M300-all.json" + }, + { + "name": "CR-Wood @Ender-3 V3 Plus-all", + "sub_path": "filament/CR-Wood @Ender-3 V3 Plus-all.json" + }, + { + "name": "CR-Wood @Ender-3 V3-all", + "sub_path": "filament/CR-Wood @Ender-3 V3-all.json" + }, { "name": "CR-Wood @K1 Max_CFS-C-all", "sub_path": "filament/CR-Wood @K1 Max_CFS-C-all.json" @@ -2900,6 +3676,14 @@ "name": "CR-Wood @K2 Plus-all", "sub_path": "filament/CR-Wood @K2 Plus-all.json" }, + { + "name": "EN-PLA+ @Ender-3 V3 Plus-all", + "sub_path": "filament/EN-PLA+ @Ender-3 V3 Plus-all.json" + }, + { + "name": "EN-PLA+ @Ender-3 V3-all", + "sub_path": "filament/EN-PLA+ @Ender-3 V3-all.json" + }, { "name": "EN-PLA+ @K1 Max_CFS-C-all", "sub_path": "filament/EN-PLA+ @K1 Max_CFS-C-all.json" @@ -2952,10 +3736,26 @@ "name": "ENDER FAST PLA @SPARKX i7-all", "sub_path": "filament/ENDER FAST PLA @SPARKX i7-all.json" }, + { + "name": "Ender-PLA @CR-10 Smart Pro-all", + "sub_path": "filament/Ender-PLA @CR-10 Smart Pro-all.json" + }, + { + "name": "Ender-PLA @Ender-3 V3 Plus-all", + "sub_path": "filament/Ender-PLA @Ender-3 V3 Plus-all.json" + }, + { + "name": "Ender-PLA @Ender-3 V3-all", + "sub_path": "filament/Ender-PLA @Ender-3 V3-all.json" + }, { "name": "Ender-PLA @Ender-3 V4-all", "sub_path": "filament/Ender-PLA @Ender-3 V4-all.json" }, + { + "name": "Ender-PLA @Ender-5 Plus-all", + "sub_path": "filament/Ender-PLA @Ender-5 Plus-all.json" + }, { "name": "Ender-PLA @Hi-all", "sub_path": "filament/Ender-PLA @Hi-all.json" @@ -2992,10 +3792,54 @@ "name": "Ender-PLA @SPARKX i7-all", "sub_path": "filament/Ender-PLA @SPARKX i7-all.json" }, + { + "name": "Generic PLA @CR-10 SE-all", + "sub_path": "filament/Generic PLA @CR-10 SE-all.json" + }, + { + "name": "Generic PLA @CR-10 Smart-all", + "sub_path": "filament/Generic PLA @CR-10 Smart-all.json" + }, + { + "name": "Generic PLA @CR-10S Pro V2-all", + "sub_path": "filament/Generic PLA @CR-10S Pro V2-all.json" + }, + { + "name": "Generic PLA @CR-20 Pro-all", + "sub_path": "filament/Generic PLA @CR-20 Pro-all.json" + }, + { + "name": "Generic PLA @CR-6 SE-all", + "sub_path": "filament/Generic PLA @CR-6 SE-all.json" + }, + { + "name": "Generic PLA @CR-M4-all", + "sub_path": "filament/Generic PLA @CR-M4-all.json" + }, { "name": "Generic PLA @Creality", "sub_path": "filament/Generic PLA @Creality.json" }, + { + "name": "Generic PLA @Ender-3 Max Neo-all", + "sub_path": "filament/Generic PLA @Ender-3 Max Neo-all.json" + }, + { + "name": "Generic PLA @Ender-3 Max-all", + "sub_path": "filament/Generic PLA @Ender-3 Max-all.json" + }, + { + "name": "Generic PLA @Ender-3 Neo-all", + "sub_path": "filament/Generic PLA @Ender-3 Neo-all.json" + }, + { + "name": "Generic PLA @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PLA @Ender-3 V3 Plus-all.json" + }, + { + "name": "Generic PLA @Ender-3 V3-all", + "sub_path": "filament/Generic PLA @Ender-3 V3-all.json" + }, { "name": "Generic PLA @Ender-3 V4-all", "sub_path": "filament/Generic PLA @Ender-3 V4-all.json" @@ -3048,6 +3892,10 @@ "name": "Generic PLA @SPARKX i7-all", "sub_path": "filament/Generic PLA @SPARKX i7-all.json" }, + { + "name": "Generic PLA @Sermoon M300-all", + "sub_path": "filament/Generic PLA @Sermoon M300-all.json" + }, { "name": "Generic PLA HF @Creality", "sub_path": "filament/Generic PLA HF @Creality.json" @@ -3056,6 +3904,14 @@ "name": "Generic PLA-CF @Creality", "sub_path": "filament/Generic PLA-CF @Creality.json" }, + { + "name": "Generic PLA-CF @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PLA-CF @Ender-3 V3 Plus-all.json" + }, + { + "name": "Generic PLA-CF @Ender-3 V3-all", + "sub_path": "filament/Generic PLA-CF @Ender-3 V3-all.json" + }, { "name": "Generic PLA-CF @Ender-3 V4-all", "sub_path": "filament/Generic PLA-CF @Ender-3 V4-all.json" @@ -3104,6 +3960,18 @@ "name": "Generic PLA-CF @SPARKX i7-all", "sub_path": "filament/Generic PLA-CF @SPARKX i7-all.json" }, + { + "name": "Generic PLA-Silk @CR-10 SE-all", + "sub_path": "filament/Generic PLA-Silk @CR-10 SE-all.json" + }, + { + "name": "Generic PLA-Silk @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic PLA-Silk @Ender-3 V3 Plus-all.json" + }, + { + "name": "Generic PLA-Silk @Ender-3 V3-all", + "sub_path": "filament/Generic PLA-Silk @Ender-3 V3-all.json" + }, { "name": "Generic PLA-Silk @Ender-3 V4-all", "sub_path": "filament/Generic PLA-Silk @Ender-3 V4-all.json" @@ -3156,6 +4024,10 @@ "name": "Generic PLA-Silk @SPARKX i7-all", "sub_path": "filament/Generic PLA-Silk @SPARKX i7-all.json" }, + { + "name": "Generic PLA-Silk @Sermoon M300-all", + "sub_path": "filament/Generic PLA-Silk @Sermoon M300-all.json" + }, { "name": "Generic Speed PLA @Creality HF", "sub_path": "filament/Generic Speed PLA @Creality HF.json" @@ -3164,6 +4036,14 @@ "name": "Generic Support for PLA @K2 Plus-all", "sub_path": "filament/Generic Support for PLA @K2 Plus-all.json" }, + { + "name": "HP Ultra PLA @Ender-3 V3 Plus-all", + "sub_path": "filament/HP Ultra PLA @Ender-3 V3 Plus-all.json" + }, + { + "name": "HP Ultra PLA @Ender-3 V3-all", + "sub_path": "filament/HP Ultra PLA @Ender-3 V3-all.json" + }, { "name": "HP Ultra PLA @K1 Max_CFS-C-all", "sub_path": "filament/HP Ultra PLA @K1 Max_CFS-C-all.json" @@ -3184,6 +4064,22 @@ "name": "HP Ultra PLA @K2 Plus-all", "sub_path": "filament/HP Ultra PLA @K2 Plus-all.json" }, + { + "name": "Hyper L-W PLA @Ender-3 V3 KE-all", + "sub_path": "filament/Hyper L-W PLA @Ender-3 V3 KE-all.json" + }, + { + "name": "Hyper L-W PLA @Ender-3 V3 Plus-all", + "sub_path": "filament/Hyper L-W PLA @Ender-3 V3 Plus-all.json" + }, + { + "name": "Hyper L-W PLA @Ender-3 V3 SE-all", + "sub_path": "filament/Hyper L-W PLA @Ender-3 V3 SE-all.json" + }, + { + "name": "Hyper L-W PLA @Ender-3 V3-all", + "sub_path": "filament/Hyper L-W PLA @Ender-3 V3-all.json" + }, { "name": "Hyper L-W PLA @Hi-all", "sub_path": "filament/Hyper L-W PLA @Hi-all.json" @@ -3224,6 +4120,22 @@ "name": "Hyper L-W PLA @K2-all", "sub_path": "filament/Hyper L-W PLA @K2-all.json" }, + { + "name": "Hyper Luminous @Ender-3 V3 KE-all", + "sub_path": "filament/Hyper Luminous @Ender-3 V3 KE-all.json" + }, + { + "name": "Hyper Luminous @Ender-3 V3 Plus-all", + "sub_path": "filament/Hyper Luminous @Ender-3 V3 Plus-all.json" + }, + { + "name": "Hyper Luminous @Ender-3 V3 SE-all", + "sub_path": "filament/Hyper Luminous @Ender-3 V3 SE-all.json" + }, + { + "name": "Hyper Luminous @Ender-3 V3-all", + "sub_path": "filament/Hyper Luminous @Ender-3 V3-all.json" + }, { "name": "Hyper Luminous @Hi-all", "sub_path": "filament/Hyper Luminous @Hi-all.json" @@ -3248,6 +4160,26 @@ "name": "Hyper Luminous @SPARKX i7-all", "sub_path": "filament/Hyper Luminous @SPARKX i7-all.json" }, + { + "name": "Hyper Luminous @Sermoon M300-all", + "sub_path": "filament/Hyper Luminous @Sermoon M300-all.json" + }, + { + "name": "Hyper Marble @Ender-3 V3 KE-all", + "sub_path": "filament/Hyper Marble @Ender-3 V3 KE-all.json" + }, + { + "name": "Hyper Marble @Ender-3 V3 Plus-all", + "sub_path": "filament/Hyper Marble @Ender-3 V3 Plus-all.json" + }, + { + "name": "Hyper Marble @Ender-3 V3 SE-all", + "sub_path": "filament/Hyper Marble @Ender-3 V3 SE-all.json" + }, + { + "name": "Hyper Marble @Ender-3 V3-all", + "sub_path": "filament/Hyper Marble @Ender-3 V3-all.json" + }, { "name": "Hyper Marble @Hi-all", "sub_path": "filament/Hyper Marble @Hi-all.json" @@ -3288,10 +4220,66 @@ "name": "Hyper Marble @SPARKX i7-all", "sub_path": "filament/Hyper Marble @SPARKX i7-all.json" }, + { + "name": "Hyper Marble @Sermoon M300-all", + "sub_path": "filament/Hyper Marble @Sermoon M300-all.json" + }, + { + "name": "Hyper PLA @CR-10 SE-all", + "sub_path": "filament/Hyper PLA @CR-10 SE-all.json" + }, + { + "name": "Hyper PLA @CR-M4 SE-all", + "sub_path": "filament/Hyper PLA @CR-M4 SE-all.json" + }, + { + "name": "Hyper PLA @Ender-3 S1 Plus-all", + "sub_path": "filament/Hyper PLA @Ender-3 S1 Plus-all.json" + }, + { + "name": "Hyper PLA @Ender-3 S1 Pro-all", + "sub_path": "filament/Hyper PLA @Ender-3 S1 Pro-all.json" + }, + { + "name": "Hyper PLA @Ender-3 S1 Sonic-all", + "sub_path": "filament/Hyper PLA @Ender-3 S1 Sonic-all.json" + }, + { + "name": "Hyper PLA @Ender-3 S1-all", + "sub_path": "filament/Hyper PLA @Ender-3 S1-all.json" + }, + { + "name": "Hyper PLA @Ender-3 V3 KE-all", + "sub_path": "filament/Hyper PLA @Ender-3 V3 KE-all.json" + }, + { + "name": "Hyper PLA @Ender-3 V3 Plus-all", + "sub_path": "filament/Hyper PLA @Ender-3 V3 Plus-all.json" + }, + { + "name": "Hyper PLA @Ender-3 V3 SE-all", + "sub_path": "filament/Hyper PLA @Ender-3 V3 SE-all.json" + }, + { + "name": "Hyper PLA @Ender-3 V3-all", + "sub_path": "filament/Hyper PLA @Ender-3 V3-all.json" + }, { "name": "Hyper PLA @Ender-3 V4-all", "sub_path": "filament/Hyper PLA @Ender-3 V4-all.json" }, + { + "name": "Hyper PLA @Ender-3-all", + "sub_path": "filament/Hyper PLA @Ender-3-all.json" + }, + { + "name": "Hyper PLA @Ender-5 S1 Sonic-all", + "sub_path": "filament/Hyper PLA @Ender-5 S1 Sonic-all.json" + }, + { + "name": "Hyper PLA @Ender-5 S1-all", + "sub_path": "filament/Hyper PLA @Ender-5 S1-all.json" + }, { "name": "Hyper PLA @Hi-all", "sub_path": "filament/Hyper PLA @Hi-all.json" @@ -3340,6 +4328,30 @@ "name": "Hyper PLA @SPARKX i7-all", "sub_path": "filament/Hyper PLA @SPARKX i7-all.json" }, + { + "name": "Hyper PLA @Sermoon D3 Pro-all", + "sub_path": "filament/Hyper PLA @Sermoon D3 Pro-all.json" + }, + { + "name": "Hyper PLA @Sermoon D3-all", + "sub_path": "filament/Hyper PLA @Sermoon D3-all.json" + }, + { + "name": "Hyper PLA @Sermoon M300-all", + "sub_path": "filament/Hyper PLA @Sermoon M300-all.json" + }, + { + "name": "Hyper PLA @Sermoon V1 Pro-all", + "sub_path": "filament/Hyper PLA @Sermoon V1 Pro-all.json" + }, + { + "name": "Hyper PLA-CF @Ender-3 V3 Plus-all", + "sub_path": "filament/Hyper PLA-CF @Ender-3 V3 Plus-all.json" + }, + { + "name": "Hyper PLA-CF @Ender-3 V3-all", + "sub_path": "filament/Hyper PLA-CF @Ender-3 V3-all.json" + }, { "name": "Hyper PLA-CF @Ender-3 V4-all", "sub_path": "filament/Hyper PLA-CF @Ender-3 V4-all.json" @@ -3392,6 +4404,30 @@ "name": "Hyper PLA-CF @SPARKX i7-all", "sub_path": "filament/Hyper PLA-CF @SPARKX i7-all.json" }, + { + "name": "Hyper PLA-CF @Sermoon D3 Pro-all", + "sub_path": "filament/Hyper PLA-CF @Sermoon D3 Pro-all.json" + }, + { + "name": "Hyper PLA-CF @Sermoon M300-all", + "sub_path": "filament/Hyper PLA-CF @Sermoon M300-all.json" + }, + { + "name": "Hyper Stardust @Ender-3 V3 KE-all", + "sub_path": "filament/Hyper Stardust @Ender-3 V3 KE-all.json" + }, + { + "name": "Hyper Stardust @Ender-3 V3 Plus-all", + "sub_path": "filament/Hyper Stardust @Ender-3 V3 Plus-all.json" + }, + { + "name": "Hyper Stardust @Ender-3 V3 SE-all", + "sub_path": "filament/Hyper Stardust @Ender-3 V3 SE-all.json" + }, + { + "name": "Hyper Stardust @Ender-3 V3-all", + "sub_path": "filament/Hyper Stardust @Ender-3 V3-all.json" + }, { "name": "Hyper Stardust @Hi-all", "sub_path": "filament/Hyper Stardust @Hi-all.json" @@ -3432,6 +4468,10 @@ "name": "Hyper Stardust @SPARKX i7-all", "sub_path": "filament/Hyper Stardust @SPARKX i7-all.json" }, + { + "name": "Hyper Stardust @Sermoon M300-all", + "sub_path": "filament/Hyper Stardust @Sermoon M300-all.json" + }, { "name": "Panchroma PLA Matte @K2 Plus-all", "sub_path": "filament/Panchroma PLA Matte @K2 Plus-all.json" @@ -3448,6 +4488,22 @@ "name": "PolySonic PLA Pro @K2 Plus-all", "sub_path": "filament/PolySonic PLA Pro @K2 Plus-all.json" }, + { + "name": "Soleyin Ultra PLA @Ender-3 V3 KE-all", + "sub_path": "filament/Soleyin Ultra PLA @Ender-3 V3 KE-all.json" + }, + { + "name": "Soleyin Ultra PLA @Ender-3 V3 Plus-all", + "sub_path": "filament/Soleyin Ultra PLA @Ender-3 V3 Plus-all.json" + }, + { + "name": "Soleyin Ultra PLA @Ender-3 V3 SE-all", + "sub_path": "filament/Soleyin Ultra PLA @Ender-3 V3 SE-all.json" + }, + { + "name": "Soleyin Ultra PLA @Ender-3 V3-all", + "sub_path": "filament/Soleyin Ultra PLA @Ender-3 V3-all.json" + }, { "name": "Soleyin Ultra PLA @Ender-3 V4-all", "sub_path": "filament/Soleyin Ultra PLA @Ender-3 V4-all.json" @@ -3492,6 +4548,10 @@ "name": "Soleyin Ultra PLA @SPARKX i7-all", "sub_path": "filament/Soleyin Ultra PLA @SPARKX i7-all.json" }, + { + "name": "Soleyin Ultra PLA @Sermoon M300-all", + "sub_path": "filament/Soleyin Ultra PLA @Sermoon M300-all.json" + }, { "name": "eSUN PLA+ @K2 Plus-all", "sub_path": "filament/eSUN PLA+ @K2 Plus-all.json" @@ -3520,6 +4580,26 @@ "name": "eSUN PLA-Silk @K2 Plus-all", "sub_path": "filament/eSUN PLA-Silk @K2 Plus-all.json" }, + { + "name": "CR-TPU @CR-10 Smart Pro-all", + "sub_path": "filament/CR-TPU @CR-10 Smart Pro-all.json" + }, + { + "name": "CR-TPU @CR-10-all", + "sub_path": "filament/CR-TPU @CR-10-all.json" + }, + { + "name": "CR-TPU @Ender-3 V2-all", + "sub_path": "filament/CR-TPU @Ender-3 V2-all.json" + }, + { + "name": "CR-TPU @Ender-3 V3 Plus-all", + "sub_path": "filament/CR-TPU @Ender-3 V3 Plus-all.json" + }, + { + "name": "CR-TPU @Ender-3 V3-all", + "sub_path": "filament/CR-TPU @Ender-3 V3-all.json" + }, { "name": "CR-TPU @K1 Max_CFS-C-all", "sub_path": "filament/CR-TPU @K1 Max_CFS-C-all.json" @@ -3552,6 +4632,14 @@ "name": "CR-TPU @SPARKX i7-all", "sub_path": "filament/CR-TPU @SPARKX i7-all.json" }, + { + "name": "CR-TPU @Sermoon D3-all", + "sub_path": "filament/CR-TPU @Sermoon D3-all.json" + }, + { + "name": "CR-TPU @Sermoon V1 Pro-all", + "sub_path": "filament/CR-TPU @Sermoon V1 Pro-all.json" + }, { "name": "Generic TPU 64D @K2 Plus-all", "sub_path": "filament/Generic TPU 64D @K2 Plus-all.json" @@ -3560,10 +4648,30 @@ "name": "Generic TPU 64D @SPARKX i7-all", "sub_path": "filament/Generic TPU 64D @SPARKX i7-all.json" }, + { + "name": "Generic TPU @CR-10 SE-all", + "sub_path": "filament/Generic TPU @CR-10 SE-all.json" + }, { "name": "Generic TPU @Creality", "sub_path": "filament/Generic TPU @Creality.json" }, + { + "name": "Generic TPU @Ender-2 Pro-all", + "sub_path": "filament/Generic TPU @Ender-2 Pro-all.json" + }, + { + "name": "Generic TPU @Ender-3 V3 Plus-all", + "sub_path": "filament/Generic TPU @Ender-3 V3 Plus-all.json" + }, + { + "name": "Generic TPU @Ender-3 V3 SE-all", + "sub_path": "filament/Generic TPU @Ender-3 V3 SE-all.json" + }, + { + "name": "Generic TPU @Ender-3 V3-all", + "sub_path": "filament/Generic TPU @Ender-3 V3-all.json" + }, { "name": "Generic TPU @Ender-3 V4-all", "sub_path": "filament/Generic TPU @Ender-3 V4-all.json" @@ -3612,10 +4720,50 @@ "name": "Generic TPU @SPARKX i7-all", "sub_path": "filament/Generic TPU @SPARKX i7-all.json" }, + { + "name": "HP-TPU @CR-M4 SE-all", + "sub_path": "filament/HP-TPU @CR-M4 SE-all.json" + }, + { + "name": "HP-TPU @Ender-3 S1 Plus-all", + "sub_path": "filament/HP-TPU @Ender-3 S1 Plus-all.json" + }, + { + "name": "HP-TPU @Ender-3 S1 Pro-all", + "sub_path": "filament/HP-TPU @Ender-3 S1 Pro-all.json" + }, + { + "name": "HP-TPU @Ender-3 S1 Sonic-all", + "sub_path": "filament/HP-TPU @Ender-3 S1 Sonic-all.json" + }, + { + "name": "HP-TPU @Ender-3 S1-all", + "sub_path": "filament/HP-TPU @Ender-3 S1-all.json" + }, + { + "name": "HP-TPU @Ender-3 V3 KE-all", + "sub_path": "filament/HP-TPU @Ender-3 V3 KE-all.json" + }, + { + "name": "HP-TPU @Ender-3 V3 Plus-all", + "sub_path": "filament/HP-TPU @Ender-3 V3 Plus-all.json" + }, + { + "name": "HP-TPU @Ender-3 V3-all", + "sub_path": "filament/HP-TPU @Ender-3 V3-all.json" + }, { "name": "HP-TPU @Ender-3 V4-all", "sub_path": "filament/HP-TPU @Ender-3 V4-all.json" }, + { + "name": "HP-TPU @Ender-5 S1 Sonic-all", + "sub_path": "filament/HP-TPU @Ender-5 S1 Sonic-all.json" + }, + { + "name": "HP-TPU @Ender-5 S1-all", + "sub_path": "filament/HP-TPU @Ender-5 S1-all.json" + }, { "name": "HP-TPU @Hi-all", "sub_path": "filament/HP-TPU @Hi-all.json" @@ -3664,6 +4812,10 @@ "name": "HP-TPU @SPARKX i7-all", "sub_path": "filament/HP-TPU @SPARKX i7-all.json" }, + { + "name": "HP-TPU @Sermoon M300-all", + "sub_path": "filament/HP-TPU @Sermoon M300-all.json" + }, { "name": "Generic ABS @Creality Ender-3V3-all", "sub_path": "filament/Generic ABS @Creality Ender-3V3-all.json" @@ -3846,6 +4998,10 @@ "name": "fdm_creality_common", "sub_path": "machine/fdm_creality_common.json" }, + { + "name": "Creality CR-10 0.4 nozzle", + "sub_path": "machine/Creality CR-10 0.4 nozzle.json" + }, { "name": "Creality CR-10 Max 0.4 nozzle", "sub_path": "machine/Creality CR-10 Max 0.4 nozzle.json" @@ -3866,6 +5022,14 @@ "name": "Creality CR-10 SE 0.8 nozzle", "sub_path": "machine/Creality CR-10 SE 0.8 nozzle.json" }, + { + "name": "Creality CR-10 Smart 0.4 nozzle", + "sub_path": "machine/Creality CR-10 Smart 0.4 nozzle.json" + }, + { + "name": "Creality CR-10 Smart Pro 0.4 nozzle", + "sub_path": "machine/Creality CR-10 Smart Pro 0.4 nozzle.json" + }, { "name": "Creality CR-10 V2 0.4 nozzle", "sub_path": "machine/Creality CR-10 V2 0.4 nozzle.json" @@ -3878,6 +5042,14 @@ "name": "Creality CR-10 V3 0.6 nozzle", "sub_path": "machine/Creality CR-10 V3 0.6 nozzle.json" }, + { + "name": "Creality CR-10S Pro V2 0.4 nozzle", + "sub_path": "machine/Creality CR-10S Pro V2 0.4 nozzle.json" + }, + { + "name": "Creality CR-20 Pro 0.4 nozzle", + "sub_path": "machine/Creality CR-20 Pro 0.4 nozzle.json" + }, { "name": "Creality CR-6 Max 0.2 nozzle", "sub_path": "machine/Creality CR-6 Max 0.2 nozzle.json" @@ -3914,6 +5086,14 @@ "name": "Creality CR-M4 0.4 nozzle", "sub_path": "machine/Creality CR-M4 0.4 nozzle.json" }, + { + "name": "Creality CR-M4 SE 0.4 nozzle", + "sub_path": "machine/Creality CR-M4 SE 0.4 nozzle.json" + }, + { + "name": "Creality Ender-2 Pro 0.4 nozzle", + "sub_path": "machine/Creality Ender-2 Pro 0.4 nozzle.json" + }, { "name": "Creality Ender-3 0.2 nozzle", "sub_path": "machine/Creality Ender-3 0.2 nozzle.json" @@ -3930,6 +5110,18 @@ "name": "Creality Ender-3 0.8 nozzle", "sub_path": "machine/Creality Ender-3 0.8 nozzle.json" }, + { + "name": "Creality Ender-3 Max 0.4 nozzle", + "sub_path": "machine/Creality Ender-3 Max 0.4 nozzle.json" + }, + { + "name": "Creality Ender-3 Max Neo 0.4 nozzle", + "sub_path": "machine/Creality Ender-3 Max Neo 0.4 nozzle.json" + }, + { + "name": "Creality Ender-3 Neo 0.4 nozzle", + "sub_path": "machine/Creality Ender-3 Neo 0.4 nozzle.json" + }, { "name": "Creality Ender-3 Pro 0.2 nozzle", "sub_path": "machine/Creality Ender-3 Pro 0.2 nozzle.json" @@ -3970,6 +5162,10 @@ "name": "Creality Ender-3 S1 Pro 0.4 nozzle", "sub_path": "machine/Creality Ender-3 S1 Pro 0.4 nozzle.json" }, + { + "name": "Creality Ender-3 S1 Sonic 0.4 nozzle", + "sub_path": "machine/Creality Ender-3 S1 Sonic 0.4 nozzle.json" + }, { "name": "Creality Ender-3 V2 0.4 nozzle", "sub_path": "machine/Creality Ender-3 V2 0.4 nozzle.json" @@ -3986,6 +5182,10 @@ "name": "Creality Ender-3 V3 0.6 nozzle", "sub_path": "machine/Creality Ender-3 V3 0.6 nozzle.json" }, + { + "name": "Creality Ender-3 V3 0.8 nozzle", + "sub_path": "machine/Creality Ender-3 V3 0.8 nozzle.json" + }, { "name": "Creality Ender-3 V3 KE 0.2 nozzle", "sub_path": "machine/Creality Ender-3 V3 KE 0.2 nozzle.json" @@ -4010,6 +5210,10 @@ "name": "Creality Ender-3 V3 Plus 0.6 nozzle", "sub_path": "machine/Creality Ender-3 V3 Plus 0.6 nozzle.json" }, + { + "name": "Creality Ender-3 V3 Plus 0.8 nozzle", + "sub_path": "machine/Creality Ender-3 V3 Plus 0.8 nozzle.json" + }, { "name": "Creality Ender-3 V3 SE 0.2 nozzle", "sub_path": "machine/Creality Ender-3 V3 SE 0.2 nozzle.json" @@ -4086,6 +5290,10 @@ "name": "Creality Ender-5 S1 0.4 nozzle", "sub_path": "machine/Creality Ender-5 S1 0.4 nozzle.json" }, + { + "name": "Creality Ender-5 S1 Sonic 0.4 nozzle", + "sub_path": "machine/Creality Ender-5 S1 Sonic 0.4 nozzle.json" + }, { "name": "Creality Ender-5S 0.4 nozzle", "sub_path": "machine/Creality Ender-5S 0.4 nozzle.json" @@ -4242,9 +5450,33 @@ "name": "Creality SPARKX i7 0.8 nozzle", "sub_path": "machine/Creality SPARKX i7 0.8 nozzle.json" }, + { + "name": "Creality Sermoon D3 0.4 nozzle", + "sub_path": "machine/Creality Sermoon D3 0.4 nozzle.json" + }, + { + "name": "Creality Sermoon D3 Pro 0.4 nozzle", + "sub_path": "machine/Creality Sermoon D3 Pro 0.4 nozzle.json" + }, + { + "name": "Creality Sermoon M300 0.4 nozzle", + "sub_path": "machine/Creality Sermoon M300 0.4 nozzle.json" + }, + { + "name": "Creality Sermoon M300 0.6 nozzle", + "sub_path": "machine/Creality Sermoon M300 0.6 nozzle.json" + }, + { + "name": "Creality Sermoon M300 0.8 nozzle", + "sub_path": "machine/Creality Sermoon M300 0.8 nozzle.json" + }, { "name": "Creality Sermoon V1 0.4 nozzle", "sub_path": "machine/Creality Sermoon V1 0.4 nozzle.json" + }, + { + "name": "Creality Sermoon V1 Pro 0.4 nozzle", + "sub_path": "machine/Creality Sermoon V1 Pro 0.4 nozzle.json" } ] } diff --git a/resources/profiles/Creality/Creality CR-10 Smart Pro_cover.png b/resources/profiles/Creality/Creality CR-10 Smart Pro_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..c5e08d43f82859a5241d41fd93cfd8e2c40093af GIT binary patch literal 269344 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%0DDBoFciYOq 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≪<3{ba`l2TZ9F}e)B!?HO?m=bZ~AN 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⁣$QF z``#~HzkdDo`FvjUOTylvZ}-3#wO30Yfd?iE{K*4pAm81Q_vBe}8rSAJwd9&sE;Fef z?i~K&;ZwDc_`a|*2ZIJyhEYJe2n$dh0G<Inpw$kL1P~8kh=51&oWomgoFJmb@Ut-! zM?C-f?lm}fI|nv4;Su&Xq4)#Giw3%Ycn19XTmO3Pb@8eRz}28j^17PA6(NQ7%O#RG zanh!9=g$+UiT#p6H<WD{P_yZW&3sIY=qlSg+X8yg1RVT2I5`d{gCPad;-3fc6&{(= z@k6&EfcN5s3lvmJ&v&s5lgXICI(ga06S^715y0Eu+vw4EHD+KCotzAq8sqw?t~$W` ziP!{yDmq5qZ}s}BmwoQvRq0-8c;zYE)mZYziyBeZnad_HY?oLFY6CG!l^&u1+rKkq z?dQGhp8M|4%iB9u@<|O3e;ox?{!^B0Nhve-+l*~KHc80k=`zxf-PlI^c@@D?YP7$* zcBE%y9twt1Xv1csMXNQfRwHacHAdwaC1$}!d_ORW!TQwGPltPVZ_<7ZiYDZ&<Cy5; z%S9DVn<E1TF2$$J7kHoMZ@lr9>tFeauYS<$^+wHRbJA+HX3a)}k}7TXH;>MrzW_y< z`^{z(fPH~POv+uC)kICQM1vRwWD@0trwveHG>T5`F70bBdncRwWJ}q6qfMgLRiX{< zdufz{q`eNb+w&)I?H5@Udlbq_|C+a(?z1>1&<3GjW=2Hf1d6VDS?Sj&tJ|I7pq_C% z#ikGO`scp+Oy-5BK}G(F`i^pQk~um7;Fdfr8by+e#@h`t%a*qtS27(_3OLDc_fA9p zM8iq&&&um%8?r}`j!Rl*j#JKv-^<$W)Du=6jOVmU$34GrJTX4&)41zZyGxfQ@_{yb z>(6fLoc77DA2DM&Z)pvHzY@IXV7%<NnnaIaBqUWWZt$7z3S&lcd>(`s0k81dW0ZU{ zSr!^2%f>2;0d@<%47KEQkS^QxxTMZ<e0@HjcTP@DuD<u)d;j^5e)P_toK7cjCL1VB zCw}K$G^t+?jQJS#vU{}`P*K>M<&94NPU<+9HorF-bY&vq-ed*CpGC)$H$4NaG~=0+ zBYVLC(CN1>>652@PT&{dk0<~*A6|FxzzNvT8KBsLxn5U00#`H+sZOU%A61<F863;R z-vaNp5f}4fLUi>)%HS>r2L;v=n0Gq!^sMB58FdRFV&DVdy|cSxs~rktSb{WmHEUnW zSgCiT9^q)nBC~6Mb2DC7+7<wNI2eZEXcz{AK^P8^T#7xAQF}jC%7KUU+_`h%{P}a{ zxooyt;pF%@42GO|ia>J%JoYB^uS37zCoVf(cQzwR&j80|)EEMe^!(?cxeP?H0T?jD zN2xKOh=`|H?_BRyfoBptS^}t*B0~MD(TE=Zl8-aq?YA1olrhxNZ&cge_iYcXWk4)m zgAYvJ9eu$(Sof3}Z<x?u1=|^D_ibV2N~Tgf25lfK1~#TRu&*>QHU9lS9*`s(Ea|X| zLqYl@;!RK=^d0m&tY2u|VSw%I?1e^c8Ac;0!ua=%B|=F#YRTte8)8q8j0v$HYOqmG zwYdZ?`?uOXR(-^SA@@;Ch`YNxldpf{n;*RJ!VA|so$i>jpbB7zQq1=DHiA%ZZftBE zXcp9{#m*OCEp{r7k}CxU?PN#9W@Ml$OnB34SM7H3(?~!iV?MA3eR3u)gGbsJYLxN4 zt*`jLMe>opLz|^5{CR64@74F6-p%J)xHkw2eOwKayr=tlD|h%vSv4mssjr6gipWQI z^M-+aImtl2n@f|j^wzyOnc+5X9C`5KZo}CK-ec~(-WgbzeF@-m1{?o(nM{~P8_3#Q ze$+jOssc&oxX<?)Zxs9cT~*%a0r2Y-cp6ov5+J$;PmWP9L?vR^2VAkc1f!n@RM)C+ z*(dk(oaK5YUieebt@7HX=UMKAnl90<Qzz|Exwl*_^0E$B`dweF^mtdMtnF1A0OGE3 zmr4Rug~O+SOSyL*sB<-BtkG@pJ>tTr(^+>o9A5h5laGJuM?d<}&z=kheey<2OSvMm zmWm1!p5mZ`WOVZTzQJt}1DX`r#7OvLXh`1mXb>={NYBgrps6rRT@nQq0Z|61)B`UD z3ASl66!Nlx-%eBDf_Uw!KdoMQx=Yc4_fJtw5P4BKKrR$k1w>LUog3^vBCcoZgqB5j zC^T!>M+mM1C~SpBJ_jYhnm|6O;~+aL17|A6JecIRl+2s#@g<4`F;M&r4e-dT0p@`< zFOjOT#6G{Vu@Sbnx2?TZ4;=s=ApGRyn7#vyqfWcKyW#Ssi=hsx3v8v?G~Bs;n~rI< zJG4@ue0qTE&CN{$?brs|&uBOdM~8=$T{h`a(g$FOF_(Q22Ggnab7ZqsY7iS_5)a_O zWkLVm2W=Kso&-P$U{!Bc3MwK%@W!$)Blm{WcYqEx9%PIoAd;b!+>5S#oW3jQ&Uo$l zr^*8#QCqy{#K@O-gI{4j#%M&2A8(SHQf3@NqIVtb=i>l$yXLuIJ$Z?TnIlLV^d?nb z3Zd2MP#+l$j*_~gRun)T>JV~DT+=XcTdj7OO(Av4N8|oT`ZQ@9_g>3AqOW2cf#>|{ z)yGc0_O-9Q_r#M=-+@vL`0N1gtyXK&+t?WNx3(S%pMBV9GzqXrzB&VOiL(*_4efRV z<Opn_HAFG)8GN&SMV=Bd%IUXIO%z~LM^-wFA-D+Q#fvOPAusf5;A#PXSh`j1$c|#^ zI!y%Xeucx~8h4KQJQU69F*%5I=stSm3sSPNKDp7E^=%7GO+4ssQgh%rp`18yABVx{ z0+DLiyJ#<v8!v2I_TEOcA18R5hn-ar8^SfZYb@WC`icHshh1ogT*5mX&H%d8l>iSA z%Z!lq%GBf61^bnsbyQ^v`?7~p@)9JKtlC$058ff^2YcW7%8DwpW=_4QqIY!t_Dm+X z&*6z*Rd$7ks{ocWuXTQmy*MRcyR<xC4+WUTZOJ6>UoKtNOSUUumwh_#X}xSr(kW0@ zb#Nh-3!oWuI-P6{hr{!?Z{PXaJMX;nvkxCWyu4V<;apAy8(cfas>F<z-s|o?XyT7G zz{mk;@Ulf<VS`T86t?T=<R0g8)eSep#nmtEKi<QiBwBLdRX-#}M**pkYYsrlE1#S} z)x7V^1;JvZSVuz<>y*l5jywT>vB`9OCIT|1J0u<}K?nFteKZTKFnzWxNw#zhHU)Cy z-g!5aW+6J7bZiSieL4xP@iZ(>j>Bj$6wngFX15!*`~A@Bc0;q(4$EdU%xcRpuhjz~ z13&|tHMM8yeR9uWRS{52{Bbf*xc3nY3Gi_CdYj?A+@W&kLAL?uVm>|pK0Y}n;6`55 z`HcAMNR-oVcZmCr<T-eD@ajW46CP5Pb4>cM7;EiXEet1<FhgA&AccpOJi;EVI@*gG zd-;1@d{-iXRjEu3@U%8?zmxYSnLxQAm7`mT8!%%~-U|SErI2Kjp#^$Q$;+Mxrs_(E zmQ&_&jme!dL)~%i&6sdB8v{;`2IM{Ks{TU%9F0b|Ssk?rgoda5c`|0v=bOBJHXVoK zqkRfa)q4O<>SQnq?PiN&JO(F6=3OVVO~yGdrHVc|7>wMri(LZ!csApl2Izm?Zg=*~ zv(G$u^Q&*YfAP{K$T?1l8q;jfkOj5V?GAQ#cke+t1__nK%f5hmjB?Z&B%2DM4@#A8 zsvu6e?39p+mb}EMFmJkgTre9*tfV@)JTKi3DKrrJQ9YaQ4TQSKnySQ@A~CPi2=_$Y zG#2FO8<Wipy&~TmRzajgBKlO%@tI5w8~XQ3IRDYIa+!zozFhS_dq5r;IO#suCVZ^a z*0-q#;Oemy!#*ic_OAk`-WHDUf`1-fYEqheg{Qlg-E%1}^ka!T(XQhvyt3Y<s|fK% zl519!lbo`~v5%}OQ@XFzi&6ZPRj6Q;uDV_ZjLQIg)%L1m3)i3xsZ~}=nTa6Q8((Mh zx);mK+n^e(XZWZ9)Rk7^%Jt8yz)vp&>RK=R8<))TI{SI7)IiXe!EM)}P$_^`Mxji0 zUue!yeA-7xM~{Dc{rZ3W(T5-Y=?4!UUY^hAb#R7>L+mn>dJj`!soeJQW%ON3Jn!B> zu|zr!KscbCwpsMhDaO`uSum(vQ?Hx)VmyFm?{7K~a}Zw)p3^{3(*G7!83op8H~<FL zWfu-Dd~?KC=I5fBH8t>#pAA3r$#fD1gCTj|Ha0p0IJw?>&pJ^tNN2f6H~RTiWCii5 zpoxJC6QI-Y&Oqtb>S4Rl2v_?XbiG~3OV;b*?!iHL@A~!d&L<y-&u;IBhYvg9vGeD{ z&h~a_AW*f{49i9c3xLd4oi&A&&}p1}HMS&stgT*1z3JJ<$+WJ|#0GnA2g=mmXj(ty zcI0yUTU%j7-uZz^P6D)px2&9ZsNw*$12kE0Pzg+Ipx{+jUKxPuB)QxP6bdcItCJ{T z*D}01jP_v<j181Kk9-1l)qqmv=QL<9`=p*i4am*MIu<;P@`>h2cRYQ2Vb#0s!FuNP z4~4NSy~m`i3?%7yy{5^OsNo(hl30J$Y?ti>)`bGYD?Jgsd(fT$cfX3E$(`tY(9N2> zDn<9Xp!f?IXV?ZE_2Fn7o_O-{@H2nz&xOs+t?;YA@=wEP#K2w03IP7t=DZ#6wERk@ zn&}jQ*$6UUhJJr@`tr*!-+KMaZ+x`3ckYlADmAB|#vrNEMsMSIcX#h@zu&)yL`w)j zg{M7gw5w+uzquQ$GgN5x6l^NM+o&=cb|~*BDbZ*QtGWTiX%HnJZIFpBVTZ3}pDy|7 zHjmML_lTPNiKYr4tZs-jiBiM>{3v66;=XtfSVgzqq!vx#4a%^UuGVT7EJB9Uoru<k z*?S@eQZg`SC6s}1b*4F35ET`?CpyDb@to{kG`wJzq>WRiqpbH3qEb(Ci>|);_Hxxc zXM8y)PO^6H4Xf;a>?U<K^!uw+Z@wrXUrCjz=me|4aB^<hM+SVo!CVog%zAY37<$<# zOXPXfE4<!o0qNK~D-YE%)|5k5nP#W7eA21Y6$~BIU9gI)fInZ(Eoi0di=Y6@R&c#a zMA0ZR(Ca5O-JUN|xz!N6M#(dg<72|wcrslf2mkRezs0zR`eZWMIXF0Y;hlHh`T6VD zufH~)Oj?-ekVph6y!ZBY!}iv8*ywFAkg{y1N{L9vYz+%jk2l||dc5^G_1eWI*FjE? zi(Si>bj=&jdggwhW$>QMQ2HmU+nMkozJK-pii!+<7l5Twbechx22<Rx1YD|@Nt3|P zcD<a7PbEo57n}w?@BRHln&jc7J36itUmF~7P*=SX7Xz+1L!>#!lD2chhF`IW0tn{q z_pN%Nvk~6d*$dCkLpZ;&5o&``sP}inY@-wIY;J|C+dJW@OP9j8zV`>=)7!TVG;Q@a znbIEgLCC)}%EES&#~Si_dO%^sko%MXUk)*V!Vb%3n*Uf*!E^s%*~pf8*SCc-#2oYS zXhZ?9$Ygo2zc0!%F~z-mnJEAjz-oro5mDm7{Q(?;|IE)l4WgC&@difn)jRR%CEFD6 zsU)ROPUUAI^(<>Sxg*S0i*!XxxZ>LBd{$64a>d(hv@;zn#K3jn-|o?QxefeknNF_J z1N)^<kmRHqlY5YQP=X-^?b$u*@e!Cy@Tpu6u?n2*O7<H~hJSm*M*tAtBRKAjz_O+W z=phTq607<EQ1)xDy&C??&;ONh`O@X^&b#l1$#kANDi;fi$p9rwZke9#@!*7?oy4%9 zr9jIXk3qW%1lnJH_0^lNz5d2WySux`N{eZ?ThmUbJKEgr9c^##+}qmPLJ;Z<0jL1( z;vJ_hC(jHjGHSLf7Utua?n2v``!4D)ju+2fd3qTot0+H7XB<RWZ73=QyuMHRL}$*& zk^peybVvStWcsO7OhCM{dn{NqWesvVlA@zi-Ns@!Il%Aarkz)u>yfPr6y|M}B~C$O z!6;CJ!9xjiRISD>*839Yj7<5_2o;e_eTWsfq--T?SycxQ9J1rr_>^M56mO-uAiP!N zaaevYuKdJM@!PeSl5LeA#b#A?*0Pi;Q@B8tSN4=joC@f3@43HDp`#U+KFX~b*CEOp z%$HGhFV4zJl5!R9%{;d5{6bdJ($fp~Rk}UCeEg>jtgkAw+=K7v7_OO;Iu|YD!gqIE zsf=ayJ*IWw{qe=9I(IsqZXO&QeCfuGo8SEO(@*~R{{H@z*=$}%>jPB&@P|Jn)s2ro z{y04G#N*+WS6?+%1Yh@P#3y081%Ro*T$Sv!_h~(|XR}uOF*b@rrh#)&KgqjzOhhd} z%B7!I(5{1xf%oXnr_XG`iHOL9D()!-ggnxUnuMcK=uC+H@caV2LBepezeP*%!@-EW zfS`%QVafvqRyENZE%gkk^U5YsKZ6P<6`bB$BRsRW7k+AEC%o3^gvLjohSuz1SR9^& zuze7Q^?K+&aVhjWy)fD6h1Z^bhQQ*jdv}fJ-6QZ+=b&8ybJ1RMlZpICd^+(_*dx<E z!+oO(#7tV7%~0#K%<aeVvoN6Kufz`Enk4N9>>(WsAn)ktINbc~dYC|}(|L@|A%MQP zSOmbX3Ap{7u9qlJM!m=aM*SF|nOAXJBGr+;WB$8)mwoaj50vf6>LgwCn7OAMpDR}& zDi@KLUBEj7cxMDCptbGsc|^c1vZB6TUNOdld`}s2W0g(Du>q3$>l<hQ+kap2&l>{p zz7tPf=rSJMn?$Xw_OO8jg9(An0_=TKoy-mR>@&}VpZckvB0AhZ{pDW_o$h9s&K9BB z>V(Cdm5}fb-@bJ_bh^-O=aUg1a&&YO`w3Qjrjsz9%*dg(ySp=b`IVP%z4X$npX}}J z9W@#aqQ<a3dw00Cwe@g&d;4y$*8`vjJ!T<6sMPHdy`n2rb>_HRmQ;3|(#`lxRzh`= zAxR!_v}c$uBl8ViE90|kSJobrPdfe`CfB$1*AhdPfk0`$_S1np4v}6KKcXlq+WeCC zUU!Y?T~=vG>x0Q$FGh)FXU%S^1oL=qyDKOb=Re6itM|*>y%AA3-p{RSnA;9rR>@3; z;`oqRO#a@B^-tSTEc;~<IG9mWajBAfNk{!6{<JTNA>_P}91L7EQepxu*DmXT_o@T3 zx{<0(eooO`E#JP*bxSRWl8Pkz%U-OK>*UHNHZA*O%FbKkK2{u)cpNowa@D!X?+TzA z5l=kr)TB)npt`UxH7e|d&-eLlh41+ai95${%oSja0^_Z1x2lkw>yE9>=kwmpn>WAy z!yo?eFW$a=`-S;@-g1Kr1p`8hdp4U=upq!uK^r|8+Z+&)chLiIKQQGJzkeyCOF_Gm zg1R)LUAh{fR2#hmy>2uX{D-%@tgTM3JMp+X9c~5S6tro0D9SaKJuK`(+clt+!8a%J zjdNOd2Pb}ecQ@?r?1cS?Giq}Rv{U4yp61-jq4p>mMh5A!Da{5r@wPtM?}xwn*wf+J z4{wCV?N35OB`e|8-#-dFvqspvI|#kqRv2E{4)fi;aB}%F1%lo`I0)VDL1?y`p#@K+ zdR?i`octzEzgcf~k5rpZfm7MXYa-xyPI;fVvLCS-z>O#4FdmJ=2y&3l!m)QzXcPE1 zu^?OlgDR7l^dIZUk@}QOim@O1F(Ds6V*iU2Gpm>5i~BMP2E2K*<Mj#1+KM+P4Wm?< zjFd<T#SA#-`IZa~c3s`h9Qc^%C{Ck}9wu$BbR5^&BIqw!@vU-56u`Lxa^<lTH@)GE zs+8xhz?~^IE-wNSoCRbgX6a6IC<vU;ZRY3*Aw2fjm2mgY?eLr5eut=R&pfjiwzqfa zzQBcFEI2dp2Oqo_dc7?Pe4d4e`v)XNib7aIlvR^jt=8hg#f!(UzxMiP*PeU+#^&bc zpw(*5n#~qK`?%NZoxsDsyR&l-+;({3CFoR?Ul@Rkbpf!he^q#n*Su2iu>x@Go?4c? zQGUR*WZGWI#q--;;vo;Pq<{#H&0`x^b@*xI-X7iS&&ehfQD3%XONLA0>=4!VeIh1X zmJruIm8}##o1kO1CC3@}4WnJtwFBRpXvNEW8@Y=9BnP6hb}WnsC8s$@V3wsd*3sT8 z_o)QYg{DtWNb0|g#*Z6;<+yahISucvgKcAHa24>=m+z47yo7Hpee*Qzc`C4flmtvk zrOt3p<*{XxhfNBr%T+Mx&sn!lrDd)2$qmO-0DECuMLkPE`#N<gwveAZg_~Y@XgLhY zRtw62v~4c~+TM$h-%q|hc3!5Ix%)6(_T_TfJUKbJa{Kn}x88sM{XcW(&YkDy^EpY5 zSbdgD3haCB)mLaa7!qoGdwZPmbFNuYRr=Al8U5G1aGcFB1D4WAnFVd_>pkSr`6If^ zu20AE6fi9c-e?c>)4wsfjv5KxD`DJp_s@fQJ6<P#AAp+;&<ghB{Xtb?NJbGr#_gLo zLbuZi5AWX#y?#HmI~_{D9^Y(V9_~HW1-B#2c+hOJ+NR#XsD*Q#Zusd7m&0@KUk}YY z4@^_udQqbmYRyIHj%MM>JCiUU4#SOp2#;;{!{LRCVgKYfJUBQE{f*7gZ?-}m+=C@A zB`Z)&z<X)WP26?GPbH9-{*}!LZgeAx&1i5E2B0iB?yjzYpn3>8or^>!?%jfeou`<e zv(hPIoI>t_FZGPeU$0D|$9h0p_71Q&*c-QeUv{k0$pnc}04)Vfstl;|h@+d;w~?Ye z`tCjc4y>E(rxL8RgGpbKo@nom^+Tm(nOEOEQg@%pN<)d%qyl#Z@)T!K!Dsh8ca<_# zWg?7Mpslx>t;A?_Ufam)R@xjgAWx^^;P8O{b~iRcv)!Wn2q;fid*ILjjqtPU*J;)4 z{=K{5lj}EZTo_N_@R%bAb^gQ?Pwv0|`s<%O_0-e1+nvq?UUmeW!qeXG_YZe=h#K<% z(vOk}l|Z>Dz(jQyqUfu1qyD1~XaF8vRNi?(%Q>AUzAKK$p14UOUBx<I?2qml791|> z5cCF{leR8SmvI7Fmb?RHo_WK;<Qs}$+5v2uEHW@2SE)>M&0GscLRZ7Y3!J%&%05xk zEDk|Z<(Ns;Va<5Ho9Eq%Mtm>$T#sAnP0c;v=8;d{GLy`U&F_!(MzeoT8ncjnmRT7k zn8<K*;pBAxx}e@0Pj-DLwBVF6`L~Wi_5xQpOPt}gsxIZgy~+c#=1n~^cwh5V27;^V zaE9qt%d+>V@?4#l)+oCau$Qbh7<kRv{#2tN_YV0<*}TH?+rDN7PZ?<U)@*idZ$)bm zYy!^R3PcGMiudJ@bH8iT>2&+vy?d{H`st^C;<L{_dviD(?y7X2-lxA;1OsX&MheiA z#4;&R_JCN1W1)tCz7R<ONguFr!#r)Ktl}jgv(*e~3J*&4ebpCMsXRF-(mv<`6myWB zRG+8JxF9qI>`J3yb~~S{R2hA$G?^%cM5s6<AL;s)>Ph48a4-nBZruu_;UIhofuW); zpHG1CUShi&h%(9oJfZ^ZqYv7UJr23H*$>|s%|r9vLs6B{XX73d+__!QMrPs4{wTcO z?1kIS5PHpK*xlR;clRHL<MAkTdmEv-Xc<Ujr=U*L0_J@$w~&mgY0o|A70wguNtr&J z?lrx7R~#{Yxq+BRFEWhG1D6&PkRCy<D@*z8s!)=7j;-&PIZ3iH*k>9o03i2VBlkNd z5;JeOWFMyZ3Nx6w1P+cSva`~G`M03Jm`z8!e+2IAz2`F2K+u3fz0W2jKUE-H5n&?L z=<6<Rr2o8OqF`P2(Qof*mwyV{tAbHIa0j?1rI*E=RAa~p_8rGrwWfsRb4M>(q7=!x zP$uL-@oz}R;4yjN*_#god=UQr-~W4IZ?_*l{`k{y>-Ie=M#qePe{*u}+H-ebe&v<V zu3Wi#uib7>o6W|o)oM>VozA%5?;q^!?A+bl?C%4}BTFjFIWlP1<~8LP%Z$pp0`hJ< z5TDXu{BO}p_gPLOkk_E-6x>IzO!VXzyzaiQ#|g~%>CSWPIPm2OAMFt&o*o|HO+TG! z_z}D(*Ov>r#S`t4NdhIA5P75L&g<MOUUj+A*qCArNJ|uwHo0R$>8O?gcA1mJPKs(O z2^NrIOER{XH(&{_aYjd+M~WV|<fLV093&3kbZ%W6V6FlB3n0Fv4Y~H2(UXCAJ6`W4 zZ?4Q?Qd<e!^9OU9xpGDTU-dcdTn`v|gPJErLt||aUu>u%C@-PHtOV#4^)1vt-&STY ztuUez@Li~a_sF>;vXcA@Q|fWgJoCwS=N-4dIf!59ub#J9ESe7<Jb3cmci;Qd4<6kA z=HcPtQ}D8vdHb|&V%A5OZ4;BI1lBQji4t_aES|Wc{(0sAQ0K25>;F>QTEJ@><i>S# zy3THi+qNhOvj$GpEwm0%KF@jI)uWnFabnxhFH=w9x+qvDH5dZTEMv#1-VuPf0AD6C zMgZEIjb<25hLi{h%jw%YJLGMLmyY7eoZ?2Avmk;k*T<=PLIHBed7sns&35SAxD&#R z<t%aT&G8`Yc6y<wLBaZfI?b>#nS`tNkHeL7?eKB4Nf}ea;Q<BQO(DTZ-d+XU-eB;Q zH=TMiw5`9BNkn#3fOl0PD%YCgdnI18lV_wSA#F+OKjLL)1yNR$QBS%J{t~yKpxstb z9B9vhx9?}UC)vLnUYoq&vGmVaoT;R6<CJbFELYkc-@V2-fnSjXZPp#dN4faiLu0xx zmtTPnhwQ&kHs$#DRDT8AF0&5|1TG{RiP38+?}!6s-Z0S)k_56Qpq(|^(|<y161t4a zyfUqCN;PY>L}A8ISzJLWbT^TiozHj$29l?2STDoIMmuym$h_O6{06>{z=`pl-}(*( zl_RENIGTk1W-lz3)8)By=Z7!7{L;-AUU=!V-QArd&|*|M27LB@f9oMYd#~3!YBZX& zMuVjq9jGJON0GTTiAS9>MVD5Aqb5g+06s<|@qVF;t1-Z9PdZo%I9K?dCO$II&XZQ$ zR|1~w4KRTTd6&FUNgS_K=_>6D+JOu_a(^jIvyLyW7}~#6LNMZ}4QV5`I8tX@>POJI zS3SKlhen$qCR9>GBEfXZYl_s@0+2`*L9~OW1HJdq8z`*?xwcQ+vVc$g3Pk2~$UjS0 z&$9hFXg`BPI={qO56&TT^1BR&X&)+))Qks}v_lnD#t?i~fmL;18@!+5Ew}Ae$7QmE zh4V_TXWL6aMp;>B1?+|26@WaykFxEh_ZC+M)!5Xs)A!t4)b?f;+o_DOUZ{g~v>b5j z{gnanbem*LWeMLD?DIYGfHN2jwtnY#e&<j9#&7)lztn2AdZ57|FcNAU%nL1o4>{i{ z$iy`5KDf?<6g6l}`2)T?cbs~?ZO9@e2G&W}cEm376dJaRx6Hwb0G#@mqJgawGt+p) z8)>@j+|q1l@OJWSyL+;wL<iRFpG1fGXN`N(oSUE)%z+Ua(4-ed9RZ5agI-J-xcjHs z>9mb!kEBAq-UihR-uW`XmoINdV3-aK9xx{73h;YuG!2cxh$%9-FVdBshT%pl^hUTN zV~vuLQtP(E-e?>yo{Yo1J`L?A%Oj4llCW4(aA(q)U4P-(R)S&`ILXrzl&=pjy${f$ zD9|~6&@NDjL7I4gw(dqZY;SKde_Jr4K10=1S8g<&FNP4Q#SnB6r65Ot(pDo7=e8HL z$6dR+i6NQ%%e?6k*elL;ymtSL;{^n$)0<@Ay(wOD^^CJ#PYg;X!`t1D){WZ61ybuj z1=7YJ_x}vvi$aamiwyvIba>~)2vFWUI)b1++0Mq6fp=1;5=vddRmX1y>&#{M9(TMW z@S=Ml591i|7xNjCXDvwz)C^ib0z|nH`)Gs$>ABD5q1WFEckbQ`4<Fv8^PhhDab&j$ zlj+#K8}iI3Y1usN9~_cKd%f8XJA3CA?N(#|#TQ?`e)aJuAn7<n5NaFLm`;1#+vuHa zZErsSr+s5%<3#xEpvNdU4-TYLk|m+eL|I4YW%mh}<P9XMjDUC9&blo|_m*Dafu&GH zaxgC4MnGh|PCU;Rn<6{Jl|jlkQ71fF_2x+yP~}i<4x;50QE@VJQ>>6&Dl+q2OTT5x zkbk#4EiPA*QG~9#zWUO-x){PY3VXb+Q^=9gEFC(Ox9+z|1%2C__upFunXZ1}BQ@|| z^F&wPeOIG~>k|iN|0!T$KbGa=+UEu6XF0xLq@^bpKzc!jvarsOmRY7Mv#P>tgY&cw zXWwp>T)(wy>uhs<uk!lkU|WaQ>hjC9-&fT|UMALnbhd4Ey-N$E<F&QC^C+>jOAN8x z6J7AknUAnUXFcAp|89R>as$n@S`nza3`a*tyWjiX_ujm9>sAjFUAN1b0{i_fN^K7f zacCH)p6T2Y^;P5BW&q*>JR^RJ_grY)wD|x6m4>6<NPm3~_*GY(@st=<zGiZ~@sUOS zMK90EkOZ`lDhY!(rk7+inS|4>pirN2v@8^u=sz3mDX|nMV4@7Gs&FO^gt~%?6t&42 zoTk7#wnOw3rXW3aObhKmwKCmt3g+gAM@Tnn`{$!kxN`AAn8TAkJPMP=G~AtzLa)6M z_UbLjyiii2oyjcpx>5&9$;$sE1*37Sty9bEtYA%hjWeUNm(cmtRGr9XlVy1Lkdr4d zyQxMx+tb-BoZs6caOb<GK10nGiXxHno?<Q}8Bv}zNtf>d*eyYmcP=PzyUd&A_N#|6 z@4xzwlPmGL7W|pf@^sQ?N(|ozH8=SA<Yjl>cM{>@+I!p3)L{s$Q|PKKc3{<kGxW%F z$bfrO{`v$|5%?-Zg5fGbfX2rVz%E7!UB`Li6<8@XMxReYfgxI6)M-y?G63{^ytX62 zHay|WFsGFVS`oC7TLb~kSQ0O<^eXiVlcX&LBrnMzgg*O5rw6JF0rK0Q-3lkiCz){- zS=$UM7opp3hpm2p_UyCIe)`Na&)#SVmmUA0&)(bIJl@&azPGit?fLBLF<<1sU6U+% z(9RWS(^E}QZ-;r%t~45cJVuf6o?MwIVvuPB;EXpNTf%=L`ir2y%ovF8m(WyPB&P%I zZY02Q@g4HlNds?HI?~n2y!V+)z;yt7KR9Sga=E5XMBQ$EMhcH(zLe)cqfa))L;WgT zCHI)^FM=Xjs^o-NCiCj$sWU9<suvq2olJCeFhs9Ly*{Rb;*A^P3h|QOhAF$<wc(|o zvCiVbkIy_2L&)yAScyEqH|a|(5$yNJ$kz&waVe-g%O?YX`KMM2Z1aQ48?LNw^4{iZ z0WqHCl<PYXUj^C~OqPM|B=DvDhBK@1Or64=FK=h@7{A1xUDJbTt83;pSI{oBJKqit zj+yHtF6A+L&5yNb;f}4JoSf|5xN-Aw=Ila$cu48wA3i(?z55%K7Jg@Ehdh{_PNx7k z@^&kxS@-uHX)e-03D}9{R4Ggde?Id*@?0N1_+`&DueSz;#_MstneL#J9w<-nKLBS9 zL?!hYBn?8wR0O&qF^_m)Z8j86IT998ozN~uoe{7MuiSj*Js^qKj_)|?)B8y*wx_^2 zY6Kl+1(=C9Q_rFm2TGEeQXCl6hj8ooC@dB*7Pvz7>72aLEz0<~2+Qd-wA!uE==VZ6 znHV?+I2zSwVLG1^IHI@+fG66Yn@|zJtLI%7hg@xZd&K^bstEITTzfnm5pX+qZa192 za4CHF;YXAe^<;1YuoO#mc@jtgi2x`AU($)60klijTj^NbCqy<-udH79$p7UeO!_?; zN1RVBGt~3`tp*rlKatXO;5hZ{u_6rlOhwTJV4A2b5|~Q=3JH~*7hmN{E%*}W@jIZj z7hgxch8hNRT`_7<7e<!+E-G+GnY30z{hzBrrjG~wZdHN)DNq;c9Vb@;P<IM4;)O?l z%jq&G3-9Z6I-%M@MwEhT<#|LmWo-Aj3PhcQjgL7W+i5mQiD+<q6#AP_hgV;HCA|Ii zkHWA2>u=G$Lg(Li@q8+v{xzS@E?>TU>xn0yq9D{pqdsr9JL68LJ>J~pAk@vx-afVg zv@6A>R;%HS6%RWXFV91=q&m><15E{xJ03hu4dNqk;5|Bh4P-0Z%;C2L7%Mz=_etfY z09d`=z7M%qDAGN0u&xd1ujv7Av=Ifg+WE=Kxc|$>LF#djWpn=%BVmP$*n+?_w4(El znm7)4ml^U7^(AA1T_d|}p&shKkn82EcPjvK0krz6Y5N%#O|v}tTks#ltOWzZdyV3! z%%CXS=Qmot*T82*<EVC~wpew2D!mY#>MK^^LH^v}{qug-1-5$l3hBmGpDH=V)Dp_* zZ6(0Fkmx9_osrZMAX;`k|9izVvY9tmfk`e|R#$P6x@DULc<a4-@42eP=<S!^WWl>{ zOr7a;+J5lh!PVoF<4wy-DKj`Gy@P`ZJo1!T5($=&XlZwMhXS;~^VDkVU*@hyMTxvU z)k_fv*u;oP>YIP}27%p^Pfp`J{Qi2;xU(V1JabweC#_++3@43Z9{+qEd9%1ImfcMS zCc1FRv!~qs85AZ+wPGH1;KlRI6d7JYARa6w5fXI~2aci#M;~mYImBzHUB`OBve;G% zhzN+tVG;0KA>sGN55v!P&WE<-rEG?JnBILD-fzvrW~hf=y%sK<dpy*@fe*~-MUe5q zY!deCvv52b(=%zoz=O`Y_~=MNJ?RVa-t<<jKbS{3^@)hdUjXl*$6(97d-n)HH5y2Y zv<U51I~*K5aKK#()QL&dNP+|Glm$1Vk&u@?$}kl?<~nKH!0abcMTliN6P)Uh_U~AT z^lk42blwg&82B#(=}48qzZUu|ZCi#WC5%$Y%6wvygw%U5AT9J3@`SsUECHTs+>r-g zJ^Xl&*!RkbraV1P+5%#yoQKOR**F76_E81oz0@|1fu)WzlSw_Aw;kJM<!CY<Tk<yq zp{kLqa59<M#jvFN47IS)>(UtaaQ`rb@ig>$ebQ%#fe0fT!QwCqKK|r78Hk{=b-OL+ zv3Im2F>21AJ2!ge)z?3G{)HEBZf$LyXf{;QXW!r1*}c25v2hgj*^SfgyzAs)r&o@f zt;T5!nEIzGF~)PRB@`I(mYbK|1AbLVv=zF9q9W%dZ=?3@2zGtqfKqhlz0Ub~A5C0+ zpX?1$aBf8>21Epl+|sfN5zmd|je5q!IB{Nk1?`#9rQY@kilsx_gj<-i)DF!*)*R-H zhz*$oj>Moy+S{!fxLF~_4aFNMY8;>Xv8pGNXQK9#s<$kC-OM=4hV2TJEiIXj@P1!e z8?3osH<p8Pw?bM{=Gx%2lq%zZNzyyYOr5YI5s|A*=~K)-lZ6vk7@m2ZPuXtu%gQa( z&Alj9_0F~@S<dXfoTppO((-mJUduYwx**>FwiS(du3->=j^nJ^U-Q1FW#?^HwK`xt z_WXCn>J9B1kH;IIefHV2iv@*{nMcldH1@&|C~Z8_!{5Dohk!f0@Q{J*cDo#W8M9|I z@SOvYT4hquosBQ?5$L_~t>gw(eq8Q#Pn#}PElb-VKBBk+q1TMtv@`$%*eP&+;rGl= zt`it<wpw9MUR!c!8_<|8rlBSQuFTh;OZLwN0sQfB7{($y=mUH`V9}e?r|bNNHh3#& zV9zSRizeO4y{2B3C!Iub{_jlZ;lnTpUv7a@5A~RK=$y>L`OpgU)*>{vwnMGi3N<8S zlJ-AX%))2$aX6ZXFo9Y}yB%8X4y`mWNQ1Ho-b582RF{a;6yiBoQB+LGl#Qyf_ryMc z6@W1U59f38us^teH{7{<H{88_Gn_lO=Z=nj2p(GuzA&uj(<!NdaQ$@LP_1v}#JhC7 z227)gEhA7;-#CqVgTuXih1C_UWh@_?O=8j+G}I?upGZ96(v-|^R}Q=e;o{jVc;|8e z+L;I<be}pa%<$M4hXRye)4%G~mpXGGHYT(hy$Ak1q_IH2xiFcMHWMUCUT*S=6L6RB z;!#h4y9A{&m!0V`YUGT@V^(%q%t@+oW1|};;{gHg%9&8^6;;^U+6-^L`DXZupLi?$ z!+-RT!Y9{13$11&Oczl(>&~5f;nPoVg#AOTPQj4JN*uRDVvxuR(dEmJ9sa~u-+K3n z$Dg>f(d!KX&LR2O>2yY0TTqVKz0>RU4ndu1)a#_rt{F;w&}sCpO9oQ`=Hkq;WAuC6 zme5Xe<ru1}I8)-pY(T!?VP5+EX{3qXwlika2`WF(j62_BqSGQC=lhd->J>rDJK+5E zaXEmw_i`Uhvhmj}0iVY2NDO#=vu)Jz&Le-Xsu7>AqA5U0?#HV!xt?h5pajPxZu>;n zKEaFL0dxvp%szg8Eq=TMVHxq1wR2iZdTQB)vU2=&Rsr=&BVg5jvzXFoM7sgkA5I1E z+75XFru-)48tZ}aGkCLknyf50f|t^IIoPxwxK6jP@PNB|t?YJI4%H`%=*|a-yw)~a z`7tHCT3M$mDKPtO%S(otl1j&5@pOAw|C0lF4{XcsyJTe`IcPi{_dfpkljq9q{Jb#o z&{MWQWK2CcJPfz*+zDI#t#JPQIpV@wigDuJropLc{gZcyE9Ud(3U}9oYd$94hA!#p z_PkHI!MLz0pj|Z9&)0*!?b@z!HZw~w4%X(Y<D+O5VlfZ1Ij8~xu8?pgQlT{HfIPkR z#XOuG9){6$mITJt93_B3N+UER@RNQwAyt^BbXSjO#7!|^HL)DMtY_xMe-M`8?;YL? z&um=^Ta6~yW3v^`)f!>iT!#9*7HazktU81HSuDb5vq^Y+F%1t!voHnLhqt}i;CmLJ zOZP1?3cN;=d5)Y8e`>QvInOd(ZG1%>0H`?#sK&h<9vy}|cka-(=dL|#*MV#w0tJsx z24SPO$z^ysM*(5<9SL%TB1Mv&_^vSq+O{sKn0fHbA(w%4Kx2FMa=w8B=aCohx%N95 z=#my;&@SH<;43iq{{*}%*PS@=sSv2yBcvoF8us`Q&`w`{quWpbtbleZBk6PE`xIbL zAfEarWdveFLG2&eN88DTA2r%T=21_9d!)t?sF%2r(Qrs(Qn$N7DlZt1p!fpdZlF$~ zu1IBiHE+DTUw!k<@L&GIe-+++?|te=c=it;J_zkLKs)!*!Eh7~k2ntiR&zRSNS;Qp zr{h(vUSD3jcJ1!#U;fIwmo8m;*lu?wP>m6d_EB$R<78)>lw%GNpc*~x3fzsqPEV8V zo+#TW;8_8^f*#Xt7gk=fzZA5~a4Pi{k2b$tKCzPT%`y;bS9W%G<X4x?@eb{k&(nUj z%~jG4b#-z4o;Z;^bXJh1bWV@lEA5>$u`1jU9>9wwZ3h<So$Q`;ws&)tGmeTh89$y> z;<*IFN9s?(FbbdV<4{;>R@kK}<)=o_DW6gx@5|&OOUqmf#K+!QxQy)Q$)*fTopv2P zr@02;wQXy(%&9>7G%tHeT?^%ww8&Y&`^w||vQ)-{&&w;Ex56MP)Y^k~w>NojvjPgT zjZ)XxE@=!yTq!TVt_SjA#j{C_6y2X6o4>S)h3sf14(!wTI2;c9*RNlHs-(fvddDG@ z{s)ilcsvf1@q{D`Kl=D11`3TjsnKBKgnVJU)e4<Xm%O5_7J@BX1ndB+@GtiUdsP~} zHy@O0^|z+U+t=0DKskE@bpRF#HQEQ(i%L@x#X`8u+I9*UnBOcQ-B>Kb3l>Qk0{jxp zM)v?<(QJg-jJ34qwYjNw=!^%ibiLgU9q_@0YQrA+IrC<rIW1-CJ;~Czd1)EIFo<b1 zn*{6uLXvF&;R=2fVEVqJfNQx7|2oXV(}#D%|90zq=++s$qs3c*YLL8hUY&=NVff9_ zVfg-X7RF5hR;^YbWqJT&sCgj3x4z&2=LRaTz)2=ksY=~=?f}t+IW4{yHfcs9>hh(F z6rg(Z)=gR+I(P0|c>3w5C_V#c;rZQv@F3j3|3IFv+`9&)iqvIu$vF$KyDMMRuZTXc z5P@PI0P;n3h%;d_=(ku1?XT%<oq7=KIcqhJfyp=^w2uhXxn3FvERWDBz9`3CgH~f= zBm@0Km*M_Iur!M`p?<1C&mu3$*=hMhzs(2{SS!y|Q6u^QF@Q{_RWKug^QaGx_kx0m zH7L~sceetiz@39q`8V2nJRY&C&}0(MojV^Eizy}9s@I^m?&cK*mX7Q|E^WxNwrb(Y zr=AIa@CUyi{>88SayU9X46RlpOef<on?|6D>p}JD&9DAMxN_x6`2P3)Al$!yUsgu= zAY?=R@*7|I_{A4r{&;(5=STqiq|<3n+U?GWWFI#+jyE<oj^TY5(C#QQ$coD5h5%LA zRup*;r5Jr&+Mo`Q6OfJa`Kia<gLaqj$K~82vpS*1)HS>+k$%*AWq95?bGF&@SJnUr zYPh;=uUzlMJMX{i+vUav?VDM-dc4-l;f)GUzpKA<>&IQ(wyIF&S8u%mW2*!%4yNqB z-7Oi~<ONbutIUk~v<Xg!iT=JTkI^xxyl$byxtjbq?W6rEub1_Y81GqCW;M93s81Yy z%+*j#X{&~J#89Qiz*?D8bI^81U|jW)1=I8ac)+wC$UoDk1fWOyj4kJBi>cc`Qh*XV zP>BUtx*V4^eyoBX!z&EF+)`y5-yWH_KWQ)b#`^t90x0i=_T~7OToOwZj`J^`${S|a zavs&f3vT=8^Lg{|@bL2S@iE+wg}NkO*%IcS@;8qT4mqiboWsD712fGVtSQ`0;tl{G z8ps`@+5lid$!2pCUNQ#utPG*@k+JP`&?q-v^t(%};`>6yK+c9il(E#*_5PZ43_y7e zz&eipY8c@`c<&)(=SGtWmkH0{8~|hymbfn}xj~xHovwPN@kan3UzkBVc=rT0>6tNS zUcAF78~l1`y{i(6e|~yzobnyXw3-Cup%V{qPwh;=zCpkm#|#?v@IMTWLhoP^{@T|0 z&?cb7Q~<FWs2#`4dHCJIVfgjQNw^29xEKsT7$lcS6ciXl{Ere#EgE6jWRTANLk&!T zH}O8l(VP1@S<P`UjVlw1;MwbrRUfDzp{;N~q{t)vZ8n{S<Kq(o)n((EPZ*|UYRrdD z@<=(Q{j3SYblDLs!QNOrC$tj|MjiB7PA5|W^#tez;FBRpY9$<Ot#DYupY>nORnXAm z6tFliyaaC=u%=+!$Vb=cRn$f4F8B^pRKY$Ok+RHhZ;qfDT@mm+dg@Q|ou@&mCyZQv z!J{TUQKr~Ph~of*c^M4&e&twAu%sZKGS^llTtX}ZR9=wm==kJ>l(66|z~dZ^N8xxe zV?*8Z?oC6S+hIDJhldA;;qj}Fhu`>j|0Znrn&If-Jp$)2p1IDle6d{8`1Fmhe<ghV zo8KUC|Dzwh9aWIfH=51mSHJq!hcCVS%14|1{t3A3%_e!-rwBalcDo};J@z;IhwV;x z0)9Hidw_O;cb06FhvpI_3BAk#_Eb7oheHPTZcJ2tbq+|4t3ozr^6#kFm5-xou%x|% z{Eis-rwEO7+)WGw1+itG_GFHe$XE-gPG3uP+*p|kA@uq3JEV!m%CBQGk<N(bU{7sk zTa~Qgxx_ni4eiDe>gOrov(<~-iI#Kt^QQGHzZp<3WIokC7Y);DS;GXdD<9vj$~vs1 z&&|)R=5?<noc3stIownV7(M<f#k3VzWsOfMz|W}JekI2C)4ePfwp!um&cu*NnlKAa zb;l(2cgqy{eU*Xt<T<U{9v7Pv@LOdNd|pGL^i#CrN(_aPW2)*}GAX<JwPVbLPnO-Q z%Q&^(nGs?2%C{x=sBA#X(#eCI3qDPa5sM)*ZCHP7B6n-$Wj$K2g}>9uq;=!Qji-#? zp52=|XvFW6EV8S27T!&O_UH_8sx0tjshGK|i8je#z!Nsl(Gi@h$5_4em_YFtAQK>8 z!M<)Mc{m#^r4ABc%D|`$sHsOjN<GHyv8@Owi!31VS(8ku3~B%pi7PFjx(*-=&+Bwb zpjZJLc?Wf35jqhA65$=wRW+k%REV*pPp<K_gQb)nDCIE7S7}RtdX>p!WgIrJe49j1 zX5BpY2s-@lY6szy$vFJw&E4>&&PM1ongsly6mw@f3BPu{AO6wkFnru<gju6W6D{ek zpe;n&up!q~TEo2A4D}fTNSUKd27#>tXitfQD5nJyg&gXGte4LGZymv+@zoLeOl>|2 z02ZYrfUvVUA)=SH?EQ!z>*Un#y2`_2LI|C1GXUbpNslE<72pHd>-!304F6_$j-XuO z`N=b8xysltOxeYjE%X{zdw!oHc;o)5*-kYuTa8z}2l1ps4?Y^Yp28r?PI6uJb^6s{ ziAT+jpejnVqNPTz0w2d=C%IKp_>qKe-n$NCQaJ9B>&}6w)IO6j0d&MRfY&}8K@xOE z$)#Et7jy;B(T|ijgMFwkXiys){cz#Z<*@(oPUzIOXf@@*!-KHV?O0MTTLK0KuGhle z-nme(MY&phI_>uSD_?!<gBM?X>Em8+^8~aQ&V~waduO=0xp}m+vvYf6V`D^tsEzuf zUW2Dy15p!cM|$w$*_H*6x^UO|n8*e3G@0mGH@}x`Gd(v`5K**N1Ad`H6qj?8sfR*F zDE6&sF$T<S6;$OLT{2yNtizT5Z=~bUykVN|8bnI_1;|U*B=K@P9z6}KX2`4#&@6NC z`Da{(Ib=g#9MyBNn$s>0{UTsZw<UG5NwdQHEh9l(O}5C~I8Rt0X?|aVN76|--)<N2 z^W!qMRqo_l@hPc)sS#Il_@nHvtWUCC+R;ThbG^&}j356zH8^!8Aa^&HZugh22I~1f zHIAG!+d6?BTvcY(r|cd|&-D-aw1>S$XGpG5<tg{qE>=9f_li#fy4U<v8ahgbcj&%w zullk?qcL*7vbIaElY8^a+F32p$#mNN^wUqDi>`v=>mZhe)F~ZwK#_s+OtGu6)FO1X z)msi}KFw%I<q61NE&+H`@B=d-j6<ja*mH%`I=K5GFEaGbg^~kM4>}I$I-PDebUSUL z>~uR_qmFpvMen8f=+f=Vqov7%CTi5ZPP}a!*s!Z!r%9iU2KFMhnyoM*WfFLv*>g=E z>G_;Ix6OHzR84Gfc7vG?9xR2&v;f9a%vPqFR7^5aXWn^KOhsqG28ARUQecl`;JwG+ z59agm{}>I!KR&z{uC+ShN~0CJwR(6kpM?*m<M1H>6EaewUB!EkdxfW)vcHOVUxRHm zppa=i{2cI|J)-a`OQ4}iTgK;a-Zz(&$h_j(?G(^c+Rms1kG2M&Lu|&6<CC=i$_c}d zX~Ii~u>o)>ylX8_Gk+q$Tel&=63<LmV$gqxsw3HV5nJH_wt^|(G4{UeOrClM2@I>G zqw3MC!RurwSuvW=Ct8!-?@amg@_q>LildUQ{1`xw(x|*T#Xw%Y^Ypw$tKA2tvge&? zG8lJ|7;H2ehT(9`hElyj<A7e1`-mj#a$sHIkiJ_mju7*(v)vCL-uf_naC{Q>4~Jv~ zQn0y>2-?S_yz8HSnye;n?`)6XeCuoPJoVHwHv!CBt=1fXz13>Yy4{VzR=<A$Awk~0 zu)DW+6a4mOvq{t#P-1*As``<{eiB*?F9(ULj1ChPn96v~19lBeEdY9L8Vd<iKeM!r zBX4W3H6NEDaCtX<_EqcpQJ&GxGsD0+XJeB_IY$HdGJk1h<8f}H5sAyV3g>XTy<?eo zykvzo%9T4Fx0)<AB|4B<Lflu^wawLjT*y}g-1x9EQPK+Rme1$9eq!c<_wbh}c$Af& zg7oyd{)RoySW3ZJoAMf58L-X`ne@CAs;y{`Gl4LF`Lgr#d(#DoD$PmVtRDAM!8;e4 zDWDX+yk!;5_gSNAC(SyfUurRsAM3pq(5?LB7H0`K*IJd`$0J`eGa&8DS$aVQ&@=ju zE;`voRs>8IEUCQn`tK!N_>vdbfPGRq|Gb2HqaP^BeEiYJF)+2HF?3nfE1AFpb#ih- z+|T0Efv0&Eu77qtOs8}5jKeDrz%d$)sIp9BV1Ng(2id+h0CpSRb5J<gi=}$ZWc?a9 zC9NbtKPK@(21NLFlQv*|aa^|rk9~(gzVh!k0P@9~uVBHq0ehp^JIR2TJ@7<hAwo7Q z&&-!IQkj7#m4O+1Aqk|m+hICJhDBEG08nj__p=^m?5mDmbgj2D#4IB%?UT%=@N5g% z@z0z*Q7|xk(jWI1|6{-?0h-ywrvCuuZ!Q+$CX!W6N0bS20u_z<g8phBCtzu-JW;w5 z_ohj-7|gef3WeYF+$G+DL42A>NAF$15z{E5M>`s+40h=`(0>>?;?HC<rT(gX^mRY= z&F%2mU;p2Q=I&mYKHLwJJ9on5?#(cV!TR8Sm_4`~mV=`+l^NgLbd`^`X!>1xuA(Pz z<0OE5Gqf8{f>ocH7>OnaiGl&-VHi^Ez&tdd@HAi0K3V~hJOs>l7qG29ccFyf8CV=1 zsYb<Yx1cp?!YbMhs+1dCDcDuZQZKqZPa1{jec|Vb6&y-%<O8koSNe>uY7v;P@%z45 zOv1_Wz~Txz=tEf1k;G{vyUNXMqazzfYz&<Y2Vt|<4`GSbpL%$3|6X|b;C?t7U_~m3 zQWn2oOy6R!y?&rpgACJ$M@RIoU%7Ji;LW$b{-aBmF5d?w2E27qkC_9s@9ys2-Pzf> z!yb46?aFI6@JQF1OQ?hJ)N_w|%4gT$Qx}9P$HXK=Lc7t{kp0w_dEjaG*Gntv`TWFr zx08Z&TJae#oxM&Pe_e3A$^%k>o7aN}#pImKsTIMWT0PceDea+b{*(la5kz}xN<{9Z z=Q?GZ{N?s_O8{Ed-ub6=dj_TxOj!V)GO#2VK`6<YQ#rqc9J%W9CEIIhAfM7rOK&d2 zJr#xjI6!-T$;vV_-)Xwb?aWnW@)HW%600r;ysLq{mQw}dYZc(UtPTk+!yR`j$j*Um zxfeWj)~s-J=hu`pVyTgnS#?(T<;rqOr8TvjEDN)wkBOPqjQE$A>oT1B@(R_+Urz4_ z@d`0<&`Muo86b+uujJgtV$s@v`0(jlw{KsJ*C|TY$z)=60%$!sITqQ&V%q=|e0u#l zy}$?#B)+Mf%U)hiWCX7+{()w5G8l%3`v>%!1N)e6fC-fW9l&;rJ?jGa0rtsT4T^>= zx!Y)8@!W`pFr1P4#NlCfmy&Qv+lfG?c#$=ODXtG5I1CE{ovpTUim^~inIP5CBf`Lm zc?CcrRFg)n5#}?d5THCP*ITAe=G_@ZLi-1RJ`KW7=NcY=-;a#e<Gf8q(U5u&NK%g! zVX|6iX2HMgbXtT3Xh0S$%idd^Pn&g^9kKrsxN;dU`I$@dqQ!zd-tc@M9;(sf>LBN_ zH(tE=E&OHUPJeUYGvXhL(wPzHYv3XqTnM7pfa9}#HedgVaQSEdLg+s6cyT8fLFmiF zQJ5Ych1vc4VRH9Qm^`=_PQLql;qcf0Sy+lfjrOZY{itD*uB^m*(1&tH#b-zNUXzg2 zT8kkU`W@O0Y<=;-*T_@92zCFDKt8X&0N}&3PhN0&UbrMEBBaS~-As&2`z{=I>0ca( zD&Bg~qa-k!6Ld+Ss!(I#Iag4xh96VjLYRz)WESl2A6d-F=H>>i^gu0WfrhA<LFb^> z$P3zRcEg2>m%@X4w}}qZY}CW8n>Qp=aXg9cK!!~}BIDi1c=es%{Pwcf>)n0hD{sED zySH}$pe~?&h5*!FuXlXz+__uZ+uL_#`<zyml5D69bUDEi4bTR#BRKZbj&Z0HkGvf3 z`R@$O9gt`69~YvOBd?%aJCFeF6nKl_EWcflYMc)}D2;&K16*IOUMJ36R+fKqywa)k z74vY#6(u+Sxk)es8Fa8s$yz7-&2%y2Z%e`%TV@Dlz)0>%07`<0-B@c$k~}W+V|qzX z4X5m&yY$r6?AUVeVg&ITH@6bNud}_Dd+SrMRtoqNFj-s~_@nrgjTS49!(Fb$aj$I1 z)RNSWUj|&NK)An_>vzdZn;h%Bnq}bq)cYt2uqb?zPJKojEBCUd`yxnKb$tfD>(hMl zmrz+SD}cX&B!9kNnO@`C()anhT&eV22|7yj+$WPs=XZbayZ@2rx968uAg>-<c((=$ z+S3E+%J5`;^2sLzmY#g_NdnngDF#*?010jI5PBu|7y&;1;d%h}_y;dOfZyTaF(^J^ zhNW^!mLn2_bp*RICtkrefF6PGCIT?kix1EcpM(DZ)aZwR>SPfnlW{l^$?~|5z0^c4 zkZa?<NV$bTIeP{PNJ8>awbSt%GLB;4fJTDA&+!cD*jb@OXGWt#&_B}t;5s&;e3N-p z)C(_q<Gjy2Eu}^ckN)od)q^WRwmw*s6H2kc1@L1l0n#sYHKb7oubtbRJf#A@G{}&G zA9bZbly?+Ra{w*?{+wb1usSmsu)(19&VeZdd^ND5QKxmlZ%q;gulrd)J7521XzuQc zSDPOTdh|D&Av{|T;U7+$;iTOUot=KDJ$Z%BnI0X7`@>O~{Kl_qi;J7lKT}o@QZUYR zB|pI%_BqqXI{>(Ry{>G9f>ObLaZ-#DG_CI|t&~s@DnDy%M|=W|MNqUFEXhP*pY8)m ztR#R|1ET3p2)IY%ig@ozi_!6kj`0$wk;_h?oAma_)E6-Z;Mu|n0D23>PM|LCeULk| z_Xh2Ogi8I*Eqc$9hXVTSI1lyGu}b?Gj?qlHf)&M><t_j2H~#JNxBtU$&t7@u)$1?5 z^fLJD0|xC40CoyM1!%u;;llM^uSbBs(P%DVq{j!$z}-nOE>f`V6=5Wq5(i2e5nDa& z=vD}FRlSK+LB{#13{z@=NMr^mn5)AWFmSJ4egE4skV+?0(97Lh_a!(&y|XUUY3#45 zhu(i2SSH&^=Oem?<iGHq_P8Qx^D9Acn;=U7s|8(V;N0azPQCk{_JaN|7HI~^ZA$iw zq2+I`v}*)er{j}V?o7RK+4Z~%$C*xKpq|JA)MT+D8e$1XvHK~O7kggGJp6e-RrO!v zoV7qajw?;Tw8G+9RcP*&FC3qP@T{z|ePzccp7#~ymi<n=fX+}Yo|6S*oaIy5@iM@i zoszvUC4Jro?rN{D2jeC6P!G6WFF(((wq+|HiI?4$ohmxLTQNv7*6Oy=Xtepg?|uI# zRt*w9NDy92aMl5=lA(!5I0AJ5?fCKJlTXM*C@tWh@QQbo$3LF1p}0bP)!s%)Ba5K` z@F!pofrkY0;mIf9H>PE5Xm7&+U~aff%1!a!k{1_z>_%t_jRSw93X3Y_NOo4|=|Lb~ zRIcG{srZ*vlX$cY%KS#2ba+msKtM_0gpYb>(@8)lCk8O&;Rircg^uK1A=j#D=*uK- z6OJA0y;d2ZS5G*Mj@o<{TC)X#v?h7ap~Kw>ixz`C<^01->Xkp3@<5O;^pJ6PdyAzQ ziQ2FT%~q5L^Z}R3%lGf9wjrLgf_*&>GzA9v(CT)Y>{13O57(|;3upb*w|2w!tFMJ- zUj&zyA;8@HKXyX+*V7QbwFu!qZ-(&ynnsw7TbSLw8%}=k2fkNZU~OD`ujtSYXsaR( z-@ELgZ7vwOB!5HoYIxPhj}5Ulx<bX<qXEbuUtW3&5M4&YRWgsFM>WxJkkJ<XmE6X{ zZ&zBE#4XTo;jb%YMpsiba2uX&gguWZ7=y-Sn4>=sXcvPJAC<P$KF>54zMm(bdNOSE z`s9^|1#@(C5cYPrsNQ63sIePR?soXbH~(1p)qn9TL|K~8u%GWyjP>PXm#-YW{>E26 zxO(;KUC>_|jpn@F2A{n>MG)%t_V)hy^XES6b~lbuU*WOSn+0z>eiIR07KQmmkoF}s zBmmt&Jj+0;emhI$OU6&RW6}PSWC2M+B?Xa!pX2qEu`k?YOKOyMqC_X&dWx4fRIIE3 zJOkq5d9N>tRww}3Cm=FsfR1S;ZwOZ<0U&1Rn!^DKA*ArazU~YQSurtBQi7^urc`&h zKgPx-RT7H_*tK-ETkQZH=hX14q>}iyIQ^p-qKb|k56a430hCKe5ABnF`;rSwzKgLF z6W#f?D`A4H!Y`lav;1Pt$(t_ulu>2!6Z3slcX}GwKg*|ThN;?D3GS<Yuk4)3@|P*7 zRCVY=`6ZT9Z5?2L>I;*eSiG*p1E~un+gY%rOOhf*Ok6^xDO6A0kHuQr?sO@UNBzZO zQNMrx{!_PZ-#mBPJ&SjqKs$ot%HA{V|Lpo_bd@Kbcp?UfWuRTP%}z6l)&cn_g6R;* zfY~60nezHa;7XK@DH7`d<b$fi-h6<8!|4%yr<C`L=*b6f)^o8z+aWGC0xyNT?NhYd ziWKpB1^5%l*8!|}Uodidi>^rlnwC2ORMiD%@1OF~b)r)sZcDyGl~J`Ea#g8URRavA z+Yql=>ch$zB<L2fCScCHMk~x4Ev5ij8BoWG8bivNx96)03t}r=zI>SinaOJ^s|u2= z-5P`^OW~=@R&Lf9SQsZhK0*y5MKVOOk}7H9BqZVCW;z>PW$TSML+8@P#NCLp?=3?3 z`F04uI}71P=Jh~*z=I#X{ex46(5xf7<6?XOE0r`#kBxsh2LZREU!kED46mk=I4p{Q zWStez3a3YmcX0g>@5tu%c4!_RGTlS~x)}iSTY<ZB;8{h64L)2JV+(-x{^7CEX99W3 zL2uE3adnA1KdAIeHiVQS1OpH6Qf~vme;)4Ly<<5Y6#V139<=|LOIp2wgeca`wzqb| zVg_l~#r&zKzjXJt*WUQx{Dt%TLXDXMutW9{eD<B4oqKzGySF->?x+DBR0X*V*yjs^ z>;{A-DAfda8MH?Vi=g}H<xX_mIS7HIB;(DK;*$IBb=)mEll(Sszk)V-@%g9D!AZvv z559qX2_}smc)2%+_xL|bMNA5diG5PwoAf_%LWrgByt+9sEY7idOoBVD>v%4DD)VeX zw!S`zV~wTD45*hNXonbdWb$DC^MAbZO#Ug`Q9+T3H&wh(Cqz^ze_3Epc)@`3aV1tu zsWm?a@csy&#Gp70{CkhP+;ifI)^bWO@HxSGUcpj;t(`ve{#Jtb{H9BMuDrd-$M<h4 zZxoNAeK(j;Z8)fPXv;WR{p}@QeLvOr=Kw_3Mg?^3>zPECx;Cij;E88G)<y4!8Am#> zq{pO#i~f!CTdlTOESm4X|NbkPJa2*Hj&k5>hjK%K(=G*K|BV|r>6tzG#1rJnPH!?T zztpr<{jrKCkns7c-iquT{cc_r=!OR<yfj0X#QCBpRVpDKTTnHagHJMj0ygmvnKTC{ zEPu(I^tl0aO}~!vLCaB!4so_YkI{fjCxe%GF{K><o*RuCQ8G$Dl7$tMApc=cH0qAP zJkon7XK0gjtwATi$CAY=!1L`Xz&+GZ4sTY8N}FVCvgJU%^!ag@w44ww%c)9u-oAZ@ z>Jq)|#+zgCDScxuTJ9V$DPCD!p^!mdfx6b8R%u+YD!w<H3|f)G9uk;m`qb)S>nmRk z&AoHB2>^Pl7Q#UY;q5s~C4O5LSoH0mot%W>yYGhi{(beYB^@&U%D)u>`RSelF?fJ` zqX1)aocA88p%*>+>cMw_pLaNbUcCNkEA-lzDHyra3G+@T)TdJe>IAlhnnMAkv{K`O zSBV;fNLT3HPiTb(SxR9vgDThG+zf4uG5J`L+5ET{th|AK)2h|O{{DWrcOTm98${KE zu}pL#Hze`mQ8PUE{PX0YSIQn@TXuJMmy_{e^7PYB-+1w*S3d6d`zPS6w*<I%I_>es zM(=occlXZr_Vzslr~<TWLM6EbMX@&;it#wf5+`t_hZPq+^kHP+T~^W}jRqFB^Ki4R zk_Mb+Sx;TSsg5~`8lD*ta)A6Of?8F8p$d60%GtrR%iB5Dqa(G(u9N_EcRl@1Mex1q z@g4;GOi(6&sK-_TW%YWwN|tnJXJPn2S2@<Jlj*hnN|>jPXnU7@*1?M5j3<`)`SMML zQ_I}<rJ%hgeP(&K@u95j&kNft+TfAebDa}$y=KW$P6}|HEg82NkU7(RXV&RT0G$7J z%OxHf@h<tVE+IK9x+;7+xlV~U-6wOi<1>0q(k4lJM<i`8wruuU%)Eu1%$CmBD7l8+ zZo;R}!Lr}4$7JQ@L9<nDkx*tFCtWR&q)h&gMag>OMTwG>c<G~$K6)W}BG$^WzVJ|u z3AAh0ZC|TE`)}U7MU(Vnk6k9vT7fyzPlinrKwolR4l<Ma=H;$9P8uvd*4;0>aNu$S zm`@PUIGu)OoxOXIlqBzZ6G3^ZSizog&6)|oPa539%^wbr&0DT*NXcWo%1SdzC9<jt zdmJ@uWUU13TY?%?zX_1<j3o&|q;i_AaPQuIiUsgJI`8OlV$w1^gVK2}jj!n>4IK?6 z4|&1%-JP9qu)j|Ro*HO=mesWPYG9Ejzv!_8tikBPv7kUHMTP^MB@vY+bhpg#9H1yX zc(enuXrATM*gY3EUwSz-`hDAWu^z%3jS#*)58>%Li<gdkdqT+N;lpt9``<OgB=3N@ zCm3d$P>X3jXPq`Ypw1Qc(obCSmodgCS1NfG^f&q_z$)5!JQ_*gl@%+=1F*7&v>Mh3 z-HmP-PC!jzs)=&hRSq(O`8rFi%1Y3DJ`M930@r6@FdSL%_Rcn_Eue{McTNo>-9i*K ztbR;q;nL-cG+Tc3@h4<FUcP)K%zItaPP0C#sCOB{a5xg$AA9Q;i`k-43q$bPpLzD# zPd7Gt<3^(~ZM9mY9MkD^#+#d)2YY*aclujf`>ke^Ks!l2Hb^*=06UGwy!1mJayZ^4 zNL8jzrmYx&c7dl%lTln1)nin*-Or0j7FEMj32h|qi<6)M`TY524x-}oPbWL~CCeHt zdo@{I%DqUBjYfcZ;1UW-ytDvfe^YLbH=`!?=<||<TNSrA%Egc+5J9gk50DjSh2QNB zo9v!seK593$()~6Vckyx01H!Q#qsMNQ|3lUj$1}8cYorF`}5^Ks-d#(c`1OZGCn>B zx?d}EYJQ<L+23WLJ`X4@J*Eo0y9nxZe|$=10J{M6Lk{kvp1cJruLko;-Skt0YMO1# zFUMuqR}Aj}u{Y;S>&;*~y=K0|l#K}~Z6)p0rT~*&$J#Ns*faimtyqpK^F~j-jrPlB zeKMK!KK}TVYq75BvLmMu9~)@rhnhZ3Om4St-=<0R^5w^v9#i%v<l9_15p=l+R|T?@ zX-KwZ20&?VE2~3E*`UV&DDZuc!Uz(U0PYP0gEGMCAgC7Lr>Ppzl8qEz{7$Fzt>I~x z=`E_A4nV{Kw^O3+Or|gx#*q@^o`*>(LOq9c=$UKFn&+&}!D=h4ovsEOuGQP<gx%ep zu)lvm21)W*{A6np(c*#3y=<h<trQlGuh3%*F2zJZatsU%WWq%{c*<DnCUOJ(kfrRj zWnN_uIi&Vjevtbjo=c<I4)q2uhGb3?N)Uy1V+A7iIKzk{=p&s6o>>llJ=^fS`RW^? z^Vnrxb&yH=$$AJcH$u3x4B;Ei5W2Mx-lc3>a?)ZMrg!dz;X6Mp?Xc)4*RDMm_V)HT zqv!Fl7<!zX3TiuO57s9~Hc$n~wQzjQl9LKi+<HUa-AcQ6zD<wKYsmvuJ)Ap#F}(27 z%T&jAfAn@3BDs-zuxqR%zv@G>tMG~=8WwV>h#?8l;~uFp4GD_XL`{n@18ASmsEuY* zUZFwzY;SdC1!(n*s|KKYPtcbjTZ@>N?d|Qbfp=J>9Z`hm!D~z4eJ4Y4It#sScYf~t z`GafEJ@@Ie*RI_LNN2zf;NG4f2z7IFb041ejg5_?cDp@m2%nui?Zhl&p9_I+2Jx)3 zE|XfMu&^gx0J?#5;b4N9VYC+ElgqK{iDv4Cf2>0FNPxODl+BST?s5hVTQWM+RX+5U z)Q?PUA>&<SFt=EyHiIVAD*)*TVC}mGQ7SOc0l!-zH_)w#iW1MbPk^NFOdcmEz=ai# z7KMaIMh=YuxoJJl9?Q2}u_5Q#`^G#|xn<L>R~%Z3I6>Yn$-Lsu&CAnj$(OUxWy);9 zmB*BV_R|A^t3GsADRB3N`iD~DA=g8y?z*r~sa?L@xU2HKQt+xCH_t<f0XNlvJp;Ts zgmT{#fZ-i={*IKzTlNa%);S#{b<Xca;(U_jqFB%B_Fwx`c<I@7DF~f@l?J3bSw~?m zsxGlBNB(+1uLG1B5u(oZ;K75(@7=q%>sv`Zs+c_4(>`Keu*TF$D`7tZ0TF133Hs8d zi$&1xzN_sMO{nzYBtLBQ)gezcluLSJ6%cpcVZSc|ll1tldV@gaz9^Xt2LqCe#QkHL z9-eT1W=tQEZf{HbNySRuBpvV?DsL&^+KzYMWtKK?ET}oC0{|WZU)ivjgcEq11>oZ! zbkVoBwg{L|;2ymR@N$N*z163(4h{~ZUb`R5r9Ww}(@}?o+9Dl`v4uiMM~l&ptIyZz zlf#hE6^P_fOF5(rGM$9iUw<te9PE>q6CT~o&GX^Hg^L8X9z1wJAf5GGn7h8Q(IbF2 zI60wX=JN<P^hR(7l5gb!!|QxHJG)^H5I&oSIt-$AI~;VH;a{~{;h^0PztwJsPO}jP z^GG3@4~Jp!?mJ=e@Sc0}u|ptucV~AuJoC)6MESrf$occ<seYYyH{7{%n~X2?zrk=A zHhLT3_~<Z<Mw9TZfBze<!<1+tivg+6kw?N9|DaDTg{S(|6qoTf7+YK0+u^CFo(c~i zJ`A6J{81PVj@gKUyyY6wmgwh@?F3*ZjTw^fY*Ak}DO2^b%R7Z2&<VWk6RcE?EaP!^ zqZ7JVsVJF=H4|)X@3dubZ~OZXh!cNqcbDE@RvB8B3x$iu{f8fZNPVl_>CB#Z@~L~T zyz<(|7cX79FCO+8f>7J-&Uj;E<GA1N?}HlC?RE!^Mq|z%bO3kij{xws#bUW=G!Tp$ z<?R)>#9&ee@4`XhK-N@V(I_(<6w1Ds1e8ZwsHe`*-}qYsR9&JY4`5`T@pSbBl${m~ zX{~DGzhT&f`r>IDsX&%jQg%;T46<lP#QBfuLn$>(%4N^Fh_D!_j#}+SC!YCQ()Y|e z{;ck<9lVsVdh31rWgh=C14j>zlI=yOcT&E@PZS@}I@io`Xv7vvUx?ec5<He)W8K=M zr>#@;s$<q@`vhFsb3D!Ce#Qq|2ENPpm2<q!Ik*CF(>6~U&uD43zsggsojPmGxZh(p z-%#pC)&pJLW86y8R+UCWbjCzEOSu=5eQ@o*$|y=ciB~)~xJp!HVom*Eq!x1gVeM&U zNd2Nm-D|e%{Wzc>17^w1vRu?Z_~3(={py7&mcY{v&^iWaFD_^y2<`CbkUXf!M0(-k zMbSMj2klbdVp@&-d)_1lHOj$v<wLO>U18t4zOvWugr8~egnNev;g?5;VF-@$aA@8( z=vN~#(n#*Zuin-Pf2+bq$-NiQRW{O<cLkxs@UYO%0lwaXf^A3D84X9_;NT$a?CzKZ z;t~mV8Z}bi08oSnHOxdp%{OE=MES)ZwU))vmv~s{8no&x@1%U!b2s~&1gv3jB=4tO z6M+19Gzc%g@H{C1edjm7O}mG~L3rimmnpFHgAd-P^HHv5<HfnN#Uk{3y>Ro^tuUK` z&an&^E?l5v4iAr*uMCRC_-r&80PNX!e>d#kx)bV~o1xL)3iYk6aDQVX)bM+IJJkC9 z(CBnSeWM#{2$F0z!}Q=F9RK!rN*+3Y09t?Z+ux>t_?$a`o|1pT0OO$NX6SY|2sFcJ z{KijyGu*D#!tqHV1UBn4ptW>Eqtzt!mhQ#|ar$9=!T_{s*Y$hGhT<`E2BUs%+_(|` z=`a7XBu!&2R5lb(2ko@dQs-dt;qj2lZg)E&w7Ow&d=%Ou2MI+QygTqw&V<j7)h;}1 z3Qk?BKD(|WIm25)q2_;)7zuwL*bc*OJRF2+1Jo<dCy_rFY8Q#Cz}=z$+`o5kx!K<w zKll9ew_kke)lYVIc8*%mU~jdipur&M6x5jA-JScr-sV2!A4#9RUMIB}7j!D%or-1v zu9j8wotd}YS!O~SHy@G#cjLRu>!&o597kDMq9WtauzpP?9qsYSY8irEW8d&#+F-M8 zE6!_?+npW5fvm}qGGb@KB^e((7L=VULt)`~n~6DqfK3)QZY9M=1krX!GW_NEBq6{! zkGyljiT5zUY?g^N$2{I($l9k8Y{r(4@m}#Mq<Bf&x^fky{8JcQs_<v6#EI%wXrdQ! z4cYJ9K>Be5_%iUBjjsMV#RD_>?n)hZ|3Xv&$r58_Z2<3I_Kb^O0K26PkoF2Y#-%nk zP#o{wS)vhq`<EhTiG|#);4Ymva1OZhIv2jLN+flfAy~-;^vhFeTU&``$(=m?C7D;^ zYJ=TRe!etFJU@CDA_9}~9co$cz4zX0R+<z;;16lx$78pI73)D>+rtB*UG)1~2-b4y zF<I;RMlN|v(uWbf>aoE}%E|tgVc)VPk+OwIT<=`F9sa_VC&Pd7uodnfO~TDZJN(*o zpE6G3t|*{Xq~dVz6UzD;m-$KT5|kN!0O{~v5{;c(#dgdpW2USF>OF$LO+0S);v*r< zgNF~p;lW|p+1a7`;{))9``F#tru(1_qB7e>@05Cja!*iZY1s4A#VOv-?H+?5)%)Jt z*a$~QtR@pXHQzX{1C4yFAbk7V-wt1T=2@Z-;n>eU`z-v!fA~Ms>cP>`k*UI9AE}jW zZidZXkAOO89D2-KZ+$gv_BO-6|JHAYZkuT`XI&13JZNJw4)a^rDVfl08OT%q#N&^L z&3-Su`)}W;RR9|4y1h`_+zPdBH_VY->XY}~V@ifWw~gEF;e!X%20jUuS?skCKKSr` zT4{k1qh&<po>&fa{lQ0v!Ey28#qiay{zSNQ=WclW?YDW=OgbO0v@lN{8|kkCUe(u^ zet}hwlj(%K>#Czq0nlrC+Z(d#BNU|?bJpQW2WW?pLz@0VZJI7-VFE*Aj6hVT#^4zP zXj9^)*hB4oiQ{ZkO5%fJJ1WH{--Vx?B~}CCqbibsyXD@wbH^{d_~MP{uDx)*x4Ail zCmoWH>}hY0d%evg;<NYr58;6)K6?c1qRURyGU2mxaH>w{YCGw)#a>`}6b91mmd)#) zYO^QKHeq`(cI0<bX*VfVCgZ=`(pzL$+87|$mc&cZV{F()!KxJFgJ6?sUp@6{8TO#8 zO!3I8MG)ycB_9RfakjO&6|`4NGH1)^#rQb;t>a*{Gg8mJ*2h5}0}c!pc*N5rPVQqf zS<cN*SJn&nX@g~kGgzcwt8^L;DVZcsSur^c_9QD0p$fd4QBeW>HHEHU)d`>LQ-<M^ zooUM7@&j|wo;YJOBS=+c3Kv#zreL82luBhv+q$YF_<hMXZ}C-m%qxC-An6v}6DzRH zGFoN)B<JL1lu$(MIM0)>0_=&Qks1>2cFa><z*pHdBNoe+9Q9IhbdBw+PJZzR*fNyA zugs`0K<<w5fL$$N?RAcJV=D`_`F!5~_>)hbjjh1^L88Zu$B9?fUaMsYhlhvZ;lur~ zwZ))amz?De4Y;j*0W+^T4c6`q58Cy(9N=s1_%MHd7C>c_OA$ErnhgT&fAO)W!p3Kx zhA$n~!~bFHe7LbW3g0IlFFfk4(Cc)<1WBjRHVXvmjfpy=8A91RZj)PlOeJ-x$g34^ zJfrx;c9Q!j$#rI?q0o5t_IAUA2M@{PjPE)+0DJ-5@9l1j*LtL`E_eM%zlzJR?kOmC z7rkpUSln|pAP*gH%4iFnZ&ohh!;KLp?+0su-@1L93<_4>VQp~Shps@Vx`&nns@B~Q z!u8KSvuwNg^!uBf1dH_BI~34()(<EiC`0cCpEurkJ@htuWEebt<!boHzxa#%4i8W0 z9}XOkPQr46wVARH1C~~!6<VDxY4)QZQQ$1;v?KNb0nsB`?Lpai-+T}9WyQYF*>p(~ zwbcr5z4d1JGk^L|hu{DGKL{Uv^bvX8^-LrjdiB*;37}(j2Eo+tz4u;{vjDt$jcGxh zCX-=UOjL$6w*RUR>Vs9d*>p_jDfq_f3X(aY8`q(0zFbfY%~&!hV?~IcTRU`=dgt%k z`e=Ojtxq~su2V(QkEJ1ZclW}Dix<N6Pd}xV8^NkJMx!mxU$}7m#v5Px@X05izTIL^ zIua@&5Ovb+c7{-n0X?SI>m35ji)xGuGL1ZSmq1D982hbLf@-oDP-j4|`l>#8l9lHi z;6B-r9qZ^W3HJ1~o7k?Z_JU;r)>rk8F@u{dH>v(8GvBqOc>TCE>;ZaCkMZ@?^Ldq5 z62Zkbavk4@lUk~6&po&vlw0@7UZf0+#b7b@SQ|Lj5|Wh)qrhmr4S2Y*@)Y{8UAkn| zfR4|N4c+eBHR5F7G^Rk8xU*KtN4l~r_va47rR$7UAh%dX_;G(yBdKD0wjsBEQbV## zRYp2PlG#$TZ{`h=HC)~ylA8IlsyxeC`RO(_<J~q5YtOEi09ap6V%4U4?CTf?wRP&7 zE!XL5W9^k)v!DsD15MtxHf|Mrnw8@}xsjC{7=C5Iw};29aw1Rlwr>fZq`A=LJZoRM zA*+;?zhEk)GlFZ!$Hx~RJb199^}&S6pgn>P<JO4sA3)W^{e24b+S%DA5NNQNjuqaw zdt!+`m%F*tGVxsL^kFB96jZhzqpAO7o7Gi#j&f3A?M9C8HX7m2T)Yzg)60*C4Jfw^ zkwK>x-Z<%mU)Z`B{`>wk9L>RPuM>b6O{Nq~IvFE#BY5yb3Z~=K?80*=8leDOUoWYD z<bS8VJek_^`>|spI8Mrlz0=MCw;0a{9^sS033;FO7<k?hthuwZMYIhlZp5Ym%19H1 zm>K5VH|gwprce!py`^1tqub?7tKgW&vBd5}liqYUdIXk<1HQ9k37kk>MuJZ9T-kfB z!M!Zk>60ztbLY;TaOchgsyhXXolyo7&lCWdlSjo4`}9*!kvh+ZAAS^`c=8Dw^|ZA( zNe`~&+b{M*++Sy-7dqXI(B0S!%~sn0vl`AgAGD6)5Ol3$TH(p(8UL2(^QqS)@s-G6 ze)ic7qPk%9!az`{Q2_a$|CyhmezDQr2p@j*QF#CT_X${^J9jR;{PN4huRl6I4tH+f z33u<_F@w~rBAxb8qiH-mve*uK)*|6KLeTAe5gN^U7=s=|&k@gyK|98l=q$|JGor6_ zHCh<o);^krR_e42p})NyzWI|s8P1(M4=M}=1B<09)UjH){Mcg$ufF#BM^8Wf%uS}o zG^fpG3*Pq0#>U2AYisKPyzCnr8z=C*vvQ2mVdQNV053q6xbEI?b?u~zE^=&o4E>EZ zyaD!v2EotP16RS2sj7@gG3s{7C7QyDBoUhDMJF8T2rm6d?&&)A)DmxTPUDErF6}!! zo+SKtSyXYF?b;8dZ7ElVFVG$9+l-Ej^Q6D|*wbuURWP2wkOKWg?=dw@<ecijQ{fgA zRuv4Wmw4{2-Li6wzi-DlI#RZHp!4EsnOBqRmEq5tuYfaVtUWU<REn`mwrPht&AND$ zPwDDJ$v#`jsal;7s!Yr_#&=ODH{m0fTQd<T`;A2aS$Uq{W{5Ofipl~y{g<+KE*Kqt zn{?cqE0woYg5|PncxV(?C-Q?7fIIM>2d0+14M|<Rg`F)E6)vY^ao#_j1+2$u!`eHL z19|oOO8{09xLTzuBZWrM+~nFJeER99&&{SY;!!AP7@od_zbdZ{HVsaW!-I$W6aWd2 z6_&wW(?v#*O%uLR+<&u1E_N8d2x!d|y(b19rOZWIh%F*Z;nBV{q!>1u&G2U~J{JDc zm8ZjYvlVJsnjav+%Q7@(A^azU&2VqyQuycfL4d#TWbD0$fdUB^V{*+2@Dk;h8rlTg z-3wtxiNBxZc4PgFT$v4QR0bdH=|nck+oTi0Jyt@nD#9M@I)OB8U4VB;Tkh;`hyDFS z0(a5aiR~y^)1`c#JUQc`YfpJtvDd`y_y#o@tl%KY6=ivK7Nmmq894a$W;i%F3i}5K zp$*<RDFrgkL6ci)hC<w{f_D5vaU|VIiL>V6```P1XtX+EtJmd3PiJ)P0AROTon+ES zT~Lp2{^U2pjn8g|-}#;2i_7LXY|fxN0^0~sP*$(MMHxE*+EETDCkV*ZL|IUAA=RK( zEA)4E!$yBAjD{!S_~;;<93B`|rK%&LjxfaV?_1ycR`|gWeh}_IctEQXYFOhKP~d*| z_kK4F2E%ai;spZuxICyq&pr2Cc;%Is=^ej!?_T)UzyDUaefuUEUFcmXyI7C%53jUD zzN<ca7`v0{A{-7*NTwa*2vMUJ3sOk}HHP@??!MycnttbBF{zYvIY~lgiOI5d!nwG| zuYLU+;pUASyvm_Txj^aa_NGrh{q)^y&pvna%GJm3wA-yIJnhY9YX;E1+3Ou|ZEru2 zAXMnLL!X`gi7vWcY*AyzgjB%1oeI1)xsiF)RU|TkZ90mASUJKZ84(SDtM}dkMst2b zeMXlPA}2mkGl(OJdhO+fj>=F8xGs^BH0FyPX8^7MLn3%4x>ZazRp`*FLm!o`(t6}| zN}Q8fnPunX%mpdKWZ1I$W={PG>TO<<Pk|LtuC!wSH*q#b2k9zrb?IPM8Z%f7T&R`N zZdR4+jwyiGn&Y!)?Q0HSzs((#T+eMQT(?|^<nw*1=7W6RjZ<=k{jgkS9CuAsTm<WR z<COvV*dW}o3QBur=U0Q_v}P+T<tor#Rz}_fk_VS}THhH~O~MJ2CQaI4b&1ZzxcuNS zrgm)Ys9IP5_Uiq|l4N8q)~)J!m%r$lwVxcDCvhsQu*Be(WC=h)7mv$kh}7PB=bhK_ zg9Fbv5L44oyPDGV$<zMuA!Q4Nj2$NS*a#k&X5)tYogNqOHV5s+PdrXd@Uj3$Ck9mP z)h_;Pv)K%P_R`hx7q2`Su5>rpD+`IlNdzR@<68KuwXM+Y*26E=j=}+gQ=#ypiE1GE zx11sClyQpzxaz_mHb9%#weph^v5M^!Z_@+z2>88kTs=vF5*`5%otzBF3v17fJfDGr zI&sGS!vj({Nxf6)WfVHZ6$}rf<S=GtnPU!~Ezl*fl4A)<l1FDDY3{yx5+?99=R{ao z4bse()?zZ@0TdJcq}>T!sO2D0PKyJj;qe7$`Ya!cTR@Pf&}2|0#BgkFZ-wuF{|Dji zw|_)P>j&Tef%QqX7TMb#KV&d%_QTfpUg-8VslM>0k46IyeD**Xh98myL8)e=7dAJy z!e)P)0#^Zo4<6pH1kI=`RtfZjpz#L}?#tZmOseHF-1zKzc=+%>dC~DWK(9gFLD9K& z^A??p6*U-Jx9{9xFT1G7n2~YH2L=e9J65JhnUJ0xC-=mCpA3hTKo!!dFxpTrtZKE} zoQ2rl9k)uA8kW+_qyCqy+QorcA4~Mw^Y8QLE)ZSl=8eyo5-20<?(W|3l~-Q>_^GF# zy1mukI%&2DtP^mDSABDH^9WLp2uAI6I>dKZdW?A0`Q_(<mN@PFE;umFK-DEuVmgcg zY6110S`*JVaBRbX;98&6Gy(TE&x%@&yl1{FZKndjb>)=uk>eDjQ)TotdpSj4j#3Wn zUfoojJUGQmMsJBqab-Z+bLKP0S_&Gg0e0Ccd*Z0m?dc*!<$Ueht)w0NmfQfz_MHN# zSM5K|00`@Vl?nhS#`v<b4&F#By_f)keEulAhd-=Oajy1?4CPok$())2vh?241Iv)2 zJD3|Txnfbjz3luPk^8kDUw&4!d#PR2_BtM~RUIr_TJ#sJ0EKohS=4w6>=ekxaGZFa zGcfG0%oD};E?ZT|2e-nqOoiU92j}h>TO}~?R$;tlZDu-Dq$;L~B6##^zWeUGuW)i8 zWB@G(Hxab&lV=Q^c7Q)IYZ3>$-9c#=D)Bm7kCJn0Wv8c6rpb_)&(2y#UKLj^K>JT$ zx*C4&%2VNTr)!Y7KAMIaq7P9PJm||1E{+@FFD?6F(OHDQTN{M|_{Rv$Q{%y9nT)e( zKK~S2H15rB+pQwx=TsXvMWF9PA;Bj`@FqYPs1E>=P047BBvZgs{ml&mSI8&{Dv*v- zOq-D>=j1t&om1~$X-PUL*>Tc8L6f1RRG@3<<8+$LRV`&UsUj8fq>6{$0Xa=brE?`K z3o?DH+it-LzLo-t|3I#=Dc*Lyk1v1u%i-dsi{#zkLNcaWoebHdcMk1wP|&Q&T`oht z(F*;o?Xa_VjtqhEcu1ae1koZGmjgTvQpWCz<=5kO7@i!5-E$Wy;n&XI1zJfs*nf~5 zyA<OHMk8o9s4wI|Q3is6SprjNTPznqpOFThJCEORFbnUz^LFe{LR`k!K(61#dfs+k zoj}s1jW8WU_nifoblid=*=n(8oj`hkQC1IaP-FDKyst>VQU|j35$ktVv#Re<a=<5_ zd>nq|pZ~M)_78u+a+9_C^6J&A`!B!z>L*V=_0;W7yECcP>kEK({Ofc&qkg}C0MOp+ z^$xI&GodyRY>G>1Rx<_d3BO$eRCU<U>iOW%gu>$a@1E-7LAwHQnq)O-)Z6vkV&xz{ zmZgu&Vo0LJZeA<@ShL4mr0d8%*a`lc<_*uK8m&^<BXi@9U-HW^g;9HQ!$RvX$0mcO z*1_7HD{jU|oWIkX_g?J;&}*X>`TNN&Re9daj`crI!F+aokHM0{vbL|PU)7E>BgZ}S zWodn?>n~+g?>ntNYkVHn*s&@ZR@W7Ul*M5$V6G}t3gUTQPSgLcQK1~nYcJFjlJd)z zQI_ih{1jmuPb5=6S+4V3%ee9pe5Zp17qZeo$i4i9Yi6Q{thVSVR+Y;{9zr@Qif_Zb z<9l9uzCX9}ld=>k<&EX);psof2cb=+I1&4gj*c#T^zp}!4F)HbY2X>O4+x;Zdq(Op zl<_gPP;5-~fEhQ^nnk7Bw2{+`_~y&DM=K@U>91jxO%b{l;tuIITH&WJUk!iZ@{{2) z0`2NW386Nag23xmeu()Q_9l(+=a>C(*qMd@sXYxR2s(5Lky;&OQsp2+;=0qjS*ADd zTz`7Y4s@*VnUAM?J2buLXi%Xp@Ki&61&S+>S_Jo<DL?2+bD|Dy^?L-0q45szo+!hp zYs79Pdi2>l9z`OoYe+u;O@`?#Ss%-jA-D<B>-_UQYQgxAW~z1QBhhVE=7DIptHE%F z4-C{+lWAaDmviUO5jPw%n@>LRM7VVM5>ZjK0=PaUmJ%8f`U1GryL*>N)dxE4hx_-# zgc6yFaa1yd>iq!NQv#;hEL^<u1of}&y>nz_!vKiQ#=7uz3B<)}*c)%WLC+d10$zzm z|G?XP>EcDABpnmD=LAmz!R++{h@Q>34h-Bmc=oi9y&KI&m=5O|uz>naBeW%9m}U(o zwV_-qI%yYaF*lHShcD+D)zz-pI{u>``wu_*FnsXg2juy$HyX=p&pmhRr59iR^uonU z4}=;suh$!Mc-gz%?r?j1dw*wV=QffmwOXyY@Yq=)hCS%UYZnv4gJ}83L8m^3&x3cb z#F7E_42&0f>JBU>$Li}L9&TTT8f6A-#Uby96bC4iH`VY%;#ro}1iy0ZL8J%Cat#j# z%<mef#R#0u+;q67IE{#wr`0%9;#1&N;Y1X0;XUil(HHMYXJIpHR9Z3v_g-bk-B;Eh z3(7OGJ@Z3LHfARk0v8<>Cru_*S;UGRC5^Vq8M}1PyzF`9*Zdrw_OpQdQ;+pia=|8X zW0NN|RC?SifNs??L<wD^qQdIVEwh;NH)wU8%C<*T<hFY{$7%Ohat+tf3*gvpsqoSk zKVCt`&|Vr7oRa`5={sC60sj7(B-z~Db!1-x@=MCKo7A$)?jyOO6!>%QY)Q0406v~m z`|!gLU)bN@Z(=FC%u9_;;0wbG3vZ`^c0*had3g@EI&G{l*KUOufln~GJQLN?fl{Rv zRplg}=$Vl@WRLQDX;Zy<;ZpcdpZHR^(&>e|EYGu7rxxlb69TY#Nf27RG;M~zT-y#O zokjScrvUF0rpI(UVWY>{JpuMK$dI+5U9ZUQ*M<g<TJ7c>$kO)mR*wLy#INt?Rkt}B zQyi=cr4^{m9338o?VW9|uRYI2*xlYDaE4<z*wZXQXDdaeoMdv%VhL0&h7t)4hmy54 z6rZm?FURe-cURlao`2S#Ofx<jLJHuBkKU|@>G*6(m&n_Vm<M`?1f(u&;dlPm-w8kb z!P{Xx8B^daC?21D{E78nR6%JnI2VDZ@RkFV9z#0y{@pN{j<PA3zd!f<^Q2Vs{s$}} z38fd}l#}6n7+Ux5hVz%M5GAO;wG$@es1QRdAOzeQ06+ft<HX^{3dgNmx58(i4dZws zfBx7X`^oUwV~^1>-~GMc5AVMBE+@0<ZP2+WXK*qI@4ox4c@Y)3uk&FU$aYxF#2_G# zaO9%%dtz1@E9&U`sNU0(;ll3N4L?ag@rN^{brP4c??4(8pN-ze^re?yxqj{1^Vj$G z_Kq5j=DgKv!plBuG@4Tcp6>4M-eW#{XMo^T(ln=eh~*wR9fo;dDCw(YJV=1K)hLrn zR2-Um>1_^4z_|Cu>-j#^#{ql#O<o%YmHr&*=<K!E$u8-Ysai@h)a0OD!A<H}=K(mI zgZ)ICU(O$!fmzd?H*b3pQ|Q7`421NZB40U3uk4J4lF`>9Iy3NTb9<F1nmarhGp-E` z(0lA~iWfY6Y(>Lk1$s_YeJYPy<Fb{<)GCaMQ}CA^W9?cL75Th%KFhHln-=P4w4ii) zwa+S#JC$=vWo+tR(Fqc@nyPaA(ozPrGjvg?&q`qLtUlkFPrJXeYuop18O*?a7N}AA zJ+F&f`6_GwDnml>Vg%fo%1=@!{hq}u(7h}muI^nO+V(nd6=N21?L`IbD3E4MjNk71 z^zY7{JC70nR6&!?6?!W*TAIfP-dgswyGVQk?Kb?#_8j`kOIfI@?kxft`|Bp=+OlqE z^V)8lt&*lUEbH{h<ys#fABOkG$DzN~3%yz^w3fBd0{?cl2({yhyPyVNa@mdLGCVnM z5$FAOXBhs;XcT7k8UdY+UN3Zr-_DYUi9r*`{!9@~i!SL>dR*+GC6<ZoG#l0dc(;Sw zAXpm!koEh00_Nm--`<YxwU|@#%5!_W^xTh61`)g`CZ~Ik?PT3;2he%#W{b1FI<I#= z@VOT;1{iYE7kh>>yCuu(9*o*}=H_c8{b32nvyAb9Jlh<Uif0)si9k*6zl(71?%kwq z2pl5$6@aRE>_Ke-cts+w{Rel$gybRp-E+M_rFrJrXTz(nz80>&{X}@;i6_E4KYAzp z```Gt#Oudl$4C2N=iCJf*o5+qe-C{_!ZZHqr=Nzy!vi`7D`ok-iL1kqLO?3?=<h!O z*PZKxKxU}Tpycm-=R4s?@BGN<JR||RW>6~Hj#pX+WD7SNV%$j3XtUX{vXr7h&k*mT zGv?AVeU1PXIhQfp8Bgq7RSFw#7*pWul5<T^Ff{n=yF;kPJo(g@Zf|dIodBqFHq^$f z)9H-6T>|a5x3;z(;<u>AAP5!X^IQxz<EuL_x#+YPJn02$j2JQ||CsI9PLct2%9P3` zi2!~9$pxdpd-p3qQ3Bb$N8IBBogf7e>pLo-uvn(q-3h?A`O8K<k1>+EMbCBI9~Jk^ z*oYqG1f+9YL^)kQ!NzgKCy<K=cmvO{MXj0-uehc_Pw`;fC?$^W>b&9QxFX%?rqbej zkvh^`TRs9{F9AL)2hinekiP2Nyzi}by;b|2OYF2y;zcb5+W87adF%mwnpt?JmY-EP zxzxH~K32H6WTNJIwX9^M))ZhxUVg>3D-DDd$CT-omI81E&mO>M9)K*6zO*hGfRA-6 zF);MHg=?;|*c^Az8$@;wvfaO=u}rx~XQ;TIZjvKJgK-j(JVr3s1$d`%2;XP3DQ2;x z5qM%$5WFM+0>FNJ0`&)^E^pJM3y&Hk5~FvcikTf7KZV)&Fer)M)%YI;Xm&n*7jGX~ z2GNt8tVx(RE?qF^b`9Z^<D>A4AF%A*wY|LnvIscf?M^LpHpZcSUMT}E3`&g>@hbNQ zbs!PqZUeZ3@6U=SSo)9kPp|FoKUH-v{cC^Xn`YtB`fA2rk_?`aj^oRU9PoC#6}Gkj z-Vcc;0kEcJA?Xc)_j7xs?Tt*Q3i^#(?(a+L!Pk$spxv|I?-BS!VkJ)c<6&#$rN-HR z3CBMb7QMUinMNbb4Ww=e0r1lg_|ofoi2bM8Y=;J9Ae~VJiNr5|ne&uEXa3`lKjEyc zxSl);7zw!VM!gyOJA0wm+a!bK@bCdCHFdfj>MO&+khYs4yI6!yyAyuvJKqU+@7^V~ zCK$?b7=Qsi3zN|xw6>5;i-S;=OV5fsO_s-;j>Cidcf<X=ckIz?J9A(!+PfaU`+L7f z9R2To?|Y<?Pl3v{I`xTv{J;ETT5&*KI4GEnE-2uf)}A`{Y2u~H5Ls?xQX`VOoO2!l z8`G>0>l>mT_hQl;`!4UKDaypRHTkQj;hH<U=V|OZIXYNgzI^H6mDgVX=<%yh-0gI` zq|eStl{%9Sf>8VYLr0C7sB#R?pZLq>f$6my4JLZeBe%WiLH7V1;Tg`VPdM#<n~UQU z1)8Kx`d%gd=$lddl^?QQqQvw;N(1_G7OE?(SfQl+G7opc4iE~3B@h#bl~ar=rH~+& z!;fmVBH*gc<raaL82<@3Uh86jy$H+;->s}7_|EI4=hjLLl4z`E+w>9@)Z`*Ej*h() zw0Szu89wWv-ooL_qM>~nXg}L!)+=*)20-uUOy5E!bm~(-B3c`hYLr(rc|N7aLVoZ% z$7EXI1#l>LCA7Fo{q<GXK5O0lOP1enxs_T3#&T=PJ?hd_LE^FSJ$u03J6;9e^E#%0 z${7U?jBA}@GkX~19*z7r<Hr}uD6DAcsP8CB^?Ds~dlC5Q1ZuShPq!ZSgdzj!I0U<? z!Uq5cs!?x1Ga9snCQbOz2Pdy(vqfB1$h)b>B$_0V46V!OetglcRp@{+EqTtoE!Dci zSm!<-&x#hcFkddi`-cbNpMCg2_{+`b!(*F$(w3ftdN|r?hwdRUM%ZQKFTSjWhl^SG z#iRZ3D<}J*+365Zm_a*KFrc07W=!?|`k)Cv5jfDTPp{~`Hry8bVFt+643LM<?NIQ3 z>$PL~0Pmp9z^h(|#``8T-uV~+G|ZnDFI)(>Zr>r$P4l`70A;aSZc{aiqSsTdP8!}_ z;<qbM)o!nob&%jvPV@r}X7JY|?I(h_l3~Vmnw*J6vXPBC86s!-P~a|rJFFL}AMWq! z)hppEU->fWet&l3M))WH<d+z@Ydx2cN#x*eD8lUQoTKxhzdkrVq^z!A|HjwD%P+l5 z{A$obz(xP{U;p*+>8GEBfBSF#4dqVw(wDwO0h1qn^dY@ZmTW43YtBKYHsMSAAc(fz z<=|p{50-U}OYnVwGadt^ga3~9JJ@H?uKTBxVff(>j_LkkC?f;xe2RcnQIje8<e)~? zWEOKa)@*%Exzv=gnG-uz8T|2yi@BZzrbc*ffIZ{JQ+8u0_K3m|{^1>Mx0;K~*RI`p z<&{@II(Pp3L8sFND4*e9r_&xopM7_C?{>f6e*o1O000a@^S<_4txlYFxekGLQ;^{| zg81%{#-c+rzmU!ouGQ1y<bf6V>Utg>AHCqQyab$c8CJHNm;5olz5RqLqlQWBianJE zStg)cTA71#OM?^DEADygCY$IVZxpggz-vN>6^ENjOD4yApsd$1&~B4R#Fk}Lh-}5) z?<)=RbT?ZGB6U3WpxICVRxg<sE2IXiwpG<loR0+@aSEPY`B@Kq*U}@af^+lsKjZaI z`xxFzo^eIFWrpDy>XV%8b=>`s%OzwKmjsxu?o6uya{`o8%$OYOdtkDys^eFbf7WBl zq$f*3dv=Z=aJb+!q1DQcl*>QnOKc^_`#}eJmXl?-%);jSx;NSG6W$upJuZ7OJ@{KJ z7EBz?+RAwV^tbA}3)12$HJdFKzn11LHZ3;+yj1YYV(D8wnm*YLKr$trnR7y%@njl~ z2ScJ;z|%$CRRU!ku-5{xCy=i|zr|jBcoNY@#JhGQoX!i34qZo2k`m|kfB{OTF~r9? zT`a>79^4Q8k6Ym{JbNvi>u!X3n1^Yv8=BAz*L!!5=OE0(|95a0ehJ>wb}RI{9a()~ zdW`oDT8-56oId9SnQQY$;H|%-CrY1$JKJ>#0l^B?Q3hEMYO%y?#55bcq5zphJhKDg zv-j1@OTcPQvV@Oaz8G%YxNY8K=kZDmrX(?xOtuJ2#CKMy(Ho9NYot76echR?F4ioa z2owAsbHmd+1`1QB{YcvFFv2M5l7e=522VfzRCxUHt6_I%m$bi6j*pY)h1Cf3eOwzd zj-bdO;Cnn8(0lOAv(L~w^wGy3g+KWx|77@;U-=bMdqKeK#~*)0p6<W;SARbAx3<Fb z&p#i2?bm)iy!QHQlr-ya|Ly;puEFXn(BEHJynyoB@j+QQ_r(`qpkzwF^E<!G#)Y&c z2eC>_gBgL^=A89c8y8?6GMu<4+#3bcI-1O?c11lwA0r+<Vk??;ksjseO`iW;<wv?} zY|%LG8fvGoWEU`va)i+qK|2?OL{3o6!72j2qfW<1hx2D%fBohQFTVKE-tOKZq#hyX zNLf%jo$*GmcXaODIe_;2OqoG|DrvKmw|%)>s0UNPI#o<O?vbgZG;9yDQ)QSUg+|(x zC@>N9$OsbYA<FLX12kP*Tdc%epSH5de@a1q#JBm?84Pxw8f}p;Z$`V(NMx)@`Pw4= z=*#lsb3U|XVAlpp8F$=h@48DSIj9DTm4`a#9`npgpY4-YFU<FaPM_3QCmdI1ws4WQ zwX3_1UF(ADvK%^Ydwy?`@>9G<a{M|-KEG})o8ML_>Lkzn4A(l-C-<T1%T&@<Rc*fV zlk`0qnR1Rhm2W2~AH)R<Ssl`HE6b<=@uk4oBlygttoxIONWJ5!OR)m*mUg~X`*I6% zjg-Af{j$1vL&bRI`AS3naNQswc*{VtomZ>ZZM&8&o)N=ZqN$Eq&A&N$`)ZxEj<jpB zfRl$w1@0JJw4MjvTDu!|qP|mq;f3elx%}8;_wL=hw>z0knw)XY(K?hiBd{2rbM@qT zEG;=S63!{{VdF?no-zXR-~kK3XYF`av;h#|Y?xd=CI|q0c<lj92qd@oFTApt{4JxU z<u6I!sLal>ZUO)?na{&_Zr%+2Ry+Lkm%bGG;J$8d5a{K)M__ZXT!dd7pM+l>55gSu z7&1J#UWs8y=fvfI>G;}FogQ(q#}?L`lT$NJrjC>5byWjF_~0%fNHNGygIl?9$V7tT z1EmyP1K?eURXi`;=jF>6!_8Z_!vcEh>NV3Mq_Qr@i%#gF*Xz+UhN_9fgmQ0nI!D2x zPW*Yms{%QFzUI)RJ}0X<QVor~#`6PBV*!o*Gk%!g4oSsm;o{GCzVqAR_MN+7W1|!H zAMS_YXp}q?Qe^@-B@OltZNvSk#47sn)yE$XckkRKuKdo<E~zyE5N&Mqh??~EZ+s*C zoxk&U!t>9+5Pt6GelGks|IObHf9r4kEm^4mooj=x2bC8EQj{gN(W31zw03uPC?FMq zrC1Rf4bvc2{}9j(e)iA*4AlcGN6<5W_~2o<4vqH*4{7O%SE|@hS7UwEM-5fTJf4g= zTPl+&_!+VmKfL)-);3~Z?WE~DWve>g<1U?p$0A3vSuVq9#0o|L>-Y=hn9EOG9liYW zs~=r^?ztPiUT@fJvT{tj-JU=>rr+-$o;!CA`wp7TCP_W=^9_qe14HNn7bUQ+iZTgk zX0DN{pA^8gf@%YV^*YgPY@gC#979kIgV?k}yV1O}q6e=IqdaKU8ZmLK#e7EMSuX+0 z@ssVhxm=HRjs<&!bYGFnoeXXHim(8h1oV~}94m**;%a$PPjWca>&vwN=CH@^w`^Mi z;ynmX9S*fq!E3(pQRNvkCPJ~;*hf58tinp^6mj~e2!KPppH=5s8@l_@GQM~mUy3)A zhRE9fH0)fqfjUwFxMwXLf#C{Iv1Zt;Xoa#KTL9%NwwFG54~pY4MZhZ!6;t{0j@+BA zU^lm(3b&Pa_%%Fi9<1AM2aIWthy?iPQ4h?0e2q6SY@2e^9nU=3FW(q~@IlH=2mSyT z-Dg2nT%y-j&x-NcU7Hb@&$H{wI;CyL`B$!7{oud-Z~wdh^LRYo8Vm+oCnqQU2M-_Y z+`D)0!tvqJ?)?W3&fUI!>%#uShg-+TC%wUN(4J1G&1AjBanu=mNxD!;1e10)01OAd z)T8Nx%|y8ZURnUh>1;|g3s5=$g220GZzIzxaBUbApeKMgOPu@;e<$9#&~)Ibvspxp zjLBjVe(lpw!fvM%{@CM>hjzCcrT|`$N2DeCTDY^Eh5yg^BzzZI*r3OdM-j9bF&gXv zae%L%s=WG+G`{q8dy=WDit|!Y8@aJe2VZ`cV*4qWQH^XlKFeLM{?!PBYH7RoHjun% zCmbCfvbVI`HO@2W9~+$xW!JoQ3u*7UES?PGpzGg4Jq9!xti-Skqz>3XKD+{gdm)N= z=2f@8Vg1Y*3mTrROeUT0okc^>r%?;@>GBb2GOPiQf7{#J^bdXR?H|5PmjGxd+KS7m z07{9z)&S6QGe%JY9p?On^WoD^J`Hzn-wt1X<ICaKe(l!?G=nm;v%5=yt^dhS|8#io zy?4X4YuCbCZ+$KN=5Kz7it2WIl*x6zn1$isI8J<YJytS8AnLFGtAFKI!i0`e`l*Fy zpM54g_2g6G!o>@uX!G{lZ-;Mw;~U}jo!j9b{Ez<=Wl7eouH<oFWAy^YEQ}P@dN)~5 z^iyP&ozIy@GxK%h;Y$a`M9a&Ti{ueYN0;Ov&S>YpG#HFH5PBKHh4XuhYuBzlc<JR= zKRbW^{9(VpH2_d&FFOKJ+Y<zxBKY*&xpOx=oz5{-WdP{ep90P`d(%BNMxD9J(H8Ki zbDjm7=HQ*fWTZ3m%WQyN+NvDzYf>jICn~t`D3MWWvN<w|+GjgQS~}84y<;wd>Joq+ zDtO|Fk1vk--enY@wtwNBVofC0#B&_3@PmYTik2(DwXe4(ev3~}A6o%vIv^djc5Kqm zaE`8`yOaH$7U0q<Pk&yIRr^jm*GySg|58}G`crn1Qv9`CtzDm-m$M#xIge1E{Idf3 z#{CXRC(ohaq%9^cEvv_}HknLz*Qs3IA?fV2<CaN6mfghq`y?G=X5Fr}<gspjN-Wz| z=a<#rjUdZ)&nx`)z}I~*{Ee92juQt=BJ)_w>SM>)tR>1XvQ3p>e0jt>P>;GlE<2aJ z>DcFtATtQ!cUlft1EIcHEKolEozLg3(P*@Da&mHRJRY|vlL>zJ0POeoAMWh$@An_v zf3S_eCxesrU@+*8hNJdqJZeoR)7E4%ZqDb6Iwo0@8*|Doo{$^?r1=4zwU~<K=!mPc zpn3rT^5OBEPC?Td6Ss9X1;A%+E&wLHe54mG>Eyxj27u_a+C;1P-@pFl@Dq<+3H9&& zFl_7})75S*7vaC39EDGvVPSTcTb(fPx`Ea>GKd-Dx`BewoQLO)fYjUW3)c5dynzC0 z)AuFrD_V?Y9bWtC@$n#>AmI;U8anOd+;+DY?%mrD5BDDm2<L=3YGC*}V?V(2h4bg= zSs-y2+c3^h5kN+D6%cQIM7C3$f~#<KOn+=EoCiY$*Iy@5kpDnQW^4Og=zuRSt@Xl- zFNDAO3x8d-#<BWvDg0mmZ~yo32Y>MUY(NS~K0bUX374AT{KdyeQ3jszhxcw%wo`o= zHgM321587962K6A@uio@Oa6l&d_VmB&;LAK^Y8z?zej!e>QmQ9b`%*`Kl|hZzBkf9 z2eqdiA(Fmg0_G(MkTv@`Nl%*Vf^_y-&J?i>dwaWNNc`UKeK*V|<1iQ;(R+m8S}*5W z_2I0_=R$1>Pxm;~n+;Q+n$H$tG@Xad4N$arH3YSwSeQnG0Jm!37sh`wP@}P_!-#l| zS;F+_gtlQkxOC~_=&NtO`N<0}y!aUaI>0*q!J7^mOuOBhbh{fvBvjhj*|~!ROZ9pk z)ENXwVm(JNF%)DtfiE=MBS2A*ZGgohseRz70B^NRN+~lQtjEQ)RDH&mmz^u$RllGZ zjLOI8Vo2&O_Q(6UD1I+BP{{7f&-to=nSj_5+$!*`Yj&Aj4;I_JiO^nu*F?(Z*& zUCuxGy_JEl;_){7C<@j=F1^2eY%Kw%tGw#&{I!7ZqwYVWSHB3F{Axzr7|M=c^PZ}n z#kzG|>(~l>TGda^Ts}Uk<9^!N6d)=uIB&=Xx)>x=&`U3?K-n?HdA@`<ZWd@+0sa}U zM(u{pGK*Hf^Npl0LfP|3w%K{<fraxDV3>LP-Jokmx5q+`x|4Y1ou}O{;a+G0*`iXA zd(810GbBJY6ABr0<JxuRT9P`9tpw<P1>v&G>ls?JNj*@8-j7mis7>edMPoP|?j0W= z?@p)F)@(LwO{dciz&wCjzrQu?v^%ri-Ms+-y#V{>a<Qn-=JUpEHmhU%a5!v@MnmkU z?>Gjael!|2C(}uDHk~yV%LNPtQQb=A3D|S2&)PjT1H;Uhhq?<%yoGLYT}av+le$uI z;3)+_fERc$JS2b*uJQln)9c~C{@I@mFKuju<^EB)y_|=?b@S73eF3@%d-Cy*yt%~l zv`6OqY2q@f7wR6l*aqNTzetP}o65b9fHP#erB8+qj$&eCfGw8B!Brl3MD($x>8~bA zIygKGdpkR1;Ap@qk_KJ6be;lN4-XC*T#2HJZw76HUT=fGlPZl|%V#^a-;p<)_!^6Y zpf~;;@Hc7D*p7H!X9ex}P;fQ%r3gs&cK1kK<<8xE;hW$1I<5K~9UUaJ5dd^+%jF_W z#!%vcC%hRt-ChW_2W|yLkK+VPad=!%P^umRz^<R&^OwWM#wM*m?eE{GXFygvWhUJu zdQQK;B?-0;!-N!kBnCyi<&=a98B3AmD77ZTWHJo<4|xUYV1GY+{PD*k;mP-f=e&+O zkM=*rP7IC)2-Z>2LRpQ1an$B#lRaPu?utgMfOgyFtT`NuRk@?10maDxYkukJr;fk& zjc>m9#1l{4RlqKubSTGw8Z+s3yQ5yOceu5+b+6rS59t^LqH@g^qQE2EZsvu{HQ95{ zqgBF3S6rj=j<k<G!>(sXeRtjFyu||a<Ms@&CjqW$P-^s`$7{LoF}6epe!8A+%Nz;% z0*EKuHbpEg+;#u_GN4@m=FD&+3Te`59FB4Fj>WR7K%!2AB`kze@VO3XcaJRIN6ERF zb1}b8<!@ik3Sd;ZYgLSA+3G_Dcs=Fv*@5{5tEo+)4768(;x8Js)1}sE-_j;2dzS0e zrD-pcPMMkY=3X3;kX1RgU=zDq!n~4QgJtYAA1W(T$n2T!xBFbnByl$%U+(I2vz5A7 z5Ao_H28Na!jdp7rcOSeZmYCja+NPwX=!0OB%t$`Fp`@+W>m~P!l~u1`rnDsm{5nuN zx(ZWj;sen0@E6%v8VEJSO1yx5Z3E0E4SAx9;TujmlGzg)%@nUqKwW`906crz0pu5r z#bVJMk4HPh;c$CCpW`=xJ3xCI`@|dHn9b)+Spldw8udlH-I|li3||vSeAaHa=l%ZX zcs8AZ2#yJ`hI8lhIW9_?^7HwuJ{%64qtUoI91h#V;h;SkkDJrktT~-d8{D28Y{)p& zNh8wwvGc&mbFztDGd}|8L%OnoqBtGA1%5h36ioR4%SRuD|I^hc=*0i$;4pkR9*5xo zSt^+tL6dl`MzkCl3*ZGKr8}~7!h6q>kPPa{3#en8^0BR!GV^8<rQXV8TqEzcc%#)5 zX`XxWfRX2x)L2r-tBwtVG=u{0%a97XGQqX}?B=a-JRF4W#uh2FXx|@?PQsPPE`{-E zOaXs<h6^Bcl9P}(#6GNmcx96qoahW=KVGmaFAh0wd@ViJ1%0bgM~Wx_#%CDraXx@B zt_5Jp_f#i|M(CNN?Emo}`~#wtj7Fmb$f_)(J|7Co#7ZdSQ#%`^yFMJ8_}V9iTl&<K zN|BfS{Kd<(do&z`ql0}rl4KwyyX#wDdo%nO|Jh%oAlHBLOTQex^PS%!qm;e!d<;H~ z76<E55I7LLN-0WkEmLDaQJY8(2aF%<1^IGZN;G`5U#V&k>aw%76;6)!tzUC+UUJI{ z@XSEfRV`~KL#<r5!-Hco7H0Fs^696aI{y0Czxn=^t5@%8a49mKHX034j_Clj54+v& zU}tCN9==04hCJ;?U5S2>dcDERBIa>6yVy_eHa{u{U9wBr>RJTfdOr~j3#hiYFzU+1 zzG=mHIjuM$I&ws`jr}}{XHJultdiBUMlbV3$N4I*>e~%xfsVPSKW!V2W7L4>YdOY% z7v-P>Y3Q^`K9<dWH?dOq+2jY7c)7Echm!i$N&$H^OcK167%r<m`pk1cn_tI4oq`&q zud{z06M*jS&)3VBRIxIW?=MJOue#S-h0#>D`e5fc|I}GND~u3-OqrZ!Ue6fcXmhgb z181-pnB%UNaY`9U;Ad=j32D*ot}q*6^tkGFki#7iEj;W;Y~}PiYgtzw%$9Wq2YlrO z_Q&Ptth!*@k!bZIW!P2TLJAg~*BcekwATQqz6$yhc!@6s?Uc<!IPU6AM^y*}XKxTi zNSWJ$@oYW!xC?04>#5<O$4Sr?Q*Dq)M9-hk@pXwwY|v~rHvqJOuj_Rr8zJKX6Cq84 zQYH?kKD(GNYDio%pOFlW%n>zNAwYY~>j?P5c6jCSx7lpgTCMhUYij}P64nFFTMY7N zwefh;oJ=P5*=*LFOvVkY2Fz#E#&`lyKgagQY&O^XqE8*`*)$o@pszER<FmLhIH8+r zVC5%AN8ulRc0Dv^<M3g<7Oq^mOpj10Idh@oET&UZS%K$%JRF7rrHr2ofaZSDG>(0p z18hki6G5%4_s*FkeP49+8&W}tAchm*q`g^<4V^C+vQn?~A`K!n2c;#W(U(kq7}Aeg z?UyfJ2)FOt39Uwxs2j#*pU=Z&JP4N%ta{^?1QTmHv28hU7{RR~A!u_^lDviME!yxr z5&P_^>=ssvQsRZx$=~iJ0z4#LS}Zu@=vh86?%JIWQC+lwR6?-Z=~8S3yw=A@hY5)n z^`O91^9aL(Jqm}155xA(9+e6D4ZPscL)U3Ef-J>uX?@W@;7z}D^+~!f7?1bv+_X%t zWM}}8FNKG{wM7B65BK+JMI=pll}U7?FVnTz>yIE}26t1U3*o+-vq?BP#>xVF>DOvQ z0QYu_C^822G+-J1bq1qm6b($d7kz%>trkPV$8_YXLkuQSucPAu(Yh8PES~<-(??(X z+SlH{diC*pjv7Pb6+G>bd+hZ#Pj+^;?{04PAGX`=5stx_=Eh4J)TF<`^KL`D;z;#` zOQJjhnRGKc@z7Ata)=_~<UH)E9%H{{dR8ezA)omSZYCe;yg<=TPeEA0pX~uy0=T26 zD?x*@v}+h62jRXe=@+y`zR!(VHn++mU1>lpPig5r`PIlcRwa%)yJ_YA`@Z6ySJF5+ zB8}Ylcqm^gzm`{*Tnn@pk#>6B!m)*~E6T{@5!M;@PAAA)KZw_H4zk426!ZIpvip!{ znuGUhtD&Sir*2s1Bv+qo1C34|<R{}!@%h$PQDwAq`k>GJ;AAXLc9bvE#8yi!yu!Km zqWJ6N%V_I;D(jdZlhv6!V>QR#d#)3gb+X7+VS^NGl0?ouf^m0Ta*oks%mZ%E-LEUw z%F4-C2@H(q6%kjI)JN$o>;_ye)dR287~7{@cX-7082M|Sb^*uuO)f^cB$O1E-EQ|` ztJOMzmwi5;ci?fK&8D5nWZE5%$KC04(ixA(o!M;Oo=zvt@pyt`;303~?|eRM0!+_m zpu&K9GjCuXoX^?g4qp9Y(W2{Po304p9{~Guu^<4ySTt*$PIpTC7RVsZKvmQotWVD7 z1mNq7`MfcnjO$zv0rk^qV>+7>xL+*h4Jt?1lou2t$rzBz<=?-3d_;d$G*5wOz0RP! z(~aKn*vk@%8uRXnngeh#BUKBeSU(cpJ<%1!L&O1*P0_$-9yNe{Qz$w5&)yN~dK?_f zo=F3}>Y2}bZI)1vzehV&`=S~!xL@dw-@kWH0AxpsgI4*B>ImA*z55S|7wyZ&n}F2_ z91A(Vd>|1S46B>AG7pw&fAOlJzSnAa==+ck9?|oTOEF#I>@twJC#b=gceloX_^GF# z3U9sn)o}g#jqo4-!+#(ekxoYR(twxkXgS!9HafU}m%Ps#y{)jdjj*L<*ne=3Xf@=G zFBuTo>yKngt+2JTM?87_hBD0ETi3&QJdDRuzi3eK@6PUa=x_F^MAYa0g9l0bB*C8U zvy?#EpZ_a=g`U-q-hMkgc=#ZE_St8)il9`Rbv~#+jDYD_vZXei44-6XhVhatph|O> ziMC}P-FV(|5yqnlt@<ElrQL4Nu08kMgEznW)_dp9oja;CU?(|8p~sMF%=Y&7{eFM* zpxy2aR5?cIij)o216J{Xqa!JnPJlFCAg#L0&;q8}B#~j36D2vt7q^0J(^TT=7HW-i z@FZ$68L0P<GJUpALbBvI!x(D*`k7NDAD!bc0f!low0#y+uZC6(y7hYdI#DLS%Wj0m zUa6-yA_^<rajYl<(^XxckCQg{n5gRb60dR@N?CQ?mB*BfS%nQAv#nz=d=a0r`!1}& zgmimuXs=$6__5tXrN6ln=av{rB`XGn;X7BASsSdcIIeJfJ|O1jW)CVF5*5oPhBa4Q zb4A_OzmGV8DA0{KR|mh?NlLS>W)`_U053C{FQ-%je~U@A`*-~}^<pGTVkIwW*50@u z&O5>rhk5edcbZg`7@|CR7rg5KnoOhuczkgFg13VP)09btjRPsO*=%C41V<Fy(4o*> z=y;~rEbI796dDHZEzn~olL>%-V=|q#0Pv?%?3)w7XV6Ym90Kc$`5eD#8}aNHpwm#m ztjb;zV5gZ>e&ZZ~yEZ3t(O_FnVHiQQ1p?!k>2yjUAN85f=J5REUckw3&gSsm&tOc{ zVO*HHq<HJ$T!T}L9BB+RnHNG6mPjE|;vc45u(oy#yp0`@4G^gl1N<34{)~9{kmN&f zod(wGprIQ0l(DwKV4ncL062KK0p_)@`G4dwH>!+gCN$in+N8<b2n}{f7Q%yjv2}r^ zKxHRD-A1>K0KjnP&RqhF-r?5mvX|a8#O2NKnOA92_Ou;c`d09u-Q7t{GKzPKJJDdb zbFjkUf%G~bv<ZNFq?ACJrWt<vr~YjC>YHB)lgTW+`s%A;e}6xG_q)GOF%kOl{C4wk z5P%+s2lsA=3zr(9)7c2yyXUA~jt=*U@<PwojSWmQX_J?|zs2zdIOh21DBQnu!}#WQ zl?7xW;k|B!58it(eE7i!&ajIXnha=>b(9akV)P7#gK*{QmGI%mAJK2UuXVDe>Zc+7 zaZDcibl6m{f8xF8fl%ooR%hRia)?uoSyCc6?E>4|+vAsBe);xSzVZ|AZ*26&O?c2* zn|%u97;xG9{jG<4dwa-&dfaR_CkohA))9UUiNmD7;tV1yUv5HkKt<lUdcaMx(ZF>f zAXNdlbCMX?7hunKZp#gJ-Q;*D2dVq>kAZM4F!74oqlhc<;{CTKcPq*E+n!7cm|f7R z+7@P5=U79Qv~w?RwFjT~ry$T%7+j@NFk9XpMLgr`mY$KxT$MOQPXW%Sfz6fsbAGzN z&gZ=DBY(=AAo)s06@}_^*0apNai&kz$txT?;tY25BaySFo$=lhpdUT%X+d_qvPMxx zL|NywLaO=er9irh$E4RQ+^N=0289gx7Rq0v9{I5aqs7Z5mKYFzV2O<^i-XaD5pThl zVS%QeU>|8Gg?8~)ncq)b!dxXM8W%FQ79-H5KF((vVT#=kdwpo1)1XfRUKPB8wL-vi z8ThXzZ(1zinYX24p~Rq!8MZGL3wWjgx?A`Qp8Ep8eYphi#y<dT3QmO)fNi2uLtb!4 zf5Ggi9QnqaK>l0+^SpsTSb%!kKb_Jspw|Fc^EFU+fbSVy6W;SVJoJ1m_1r7auF3Hh z-;1)qNte1{pQ083N^|PseDLe%vsryMN1*K#_lxh1xp?x$$e@2JijFcU6S$Pmpqmul zU>rrY6nk_G*4p6Sx7kA-74swao8&A&ZGh(!!L^|1K%06#3*(cadGM_hi(DmVb7e{n zC^`VN?4{=nuSku`-gRDE;KWw~{w2F5G|LCWHUV=={$rf{1+5~$a5#VdT)21dKGli9 zc)b={EpW`)`>Su6bW*-Qr-Wtijsi8KMue0$q<1J@dW%sI%tSPqHmj?g)!R-<j9Og> zhiXI-0_|fy=li&G=QahYf)>Lgh|o2NCX)<HW|%_(=I-qqVR!F51(zbb>4l9R2T2p% zYHC5O0P5Vvpr%0b@gy7_JRqQ-J4_e=Ey5BRX(!%r;I`qI5YBZFLc?+%5Z_&%uZ}^p z<s$suzx#Ko(pVwDDiLQ!)@-Tk(`4GMj<iRV3e_6(xM%c>0!a6Nb&Ry_z_-g9^?k@^ zqMb--=gO7iFTe4|_2-{|@lz<p0FXCGH3s_Zozdpz<}sumx3{;!Wj}%U9iDZJZ{lf> z36kp0gI*F88o{>z?ZJE9d)xJIa=d?h5jfk5v4MS0qcNc9yyK46Sw>^=fv#y89(elT z)NIbr14BKK$8&ZL1==Xtj>`=ReU@&{%MU7B`B$@(Pmg1TM*e2!+CCi%GI~(nMuq!y zb8|UJS``iI@Aqum3;WCJYyk2P53pAng=amlwi?8Lk>LG{Y=^|@>xrrr-uF^fnNxvo z$x>GN3F5WQI^a4toYpk&+<qy9F>!QXpHhE&8Bh1l7eKuCYFA|vEAf68R@<B*ko=DK zb9#ifQ<O=*Yq4G##|NhhtTFGd^Q^l=BE`mU)8phkE7SjW378xo-Xc{2+T+sjatXdC zfH5XP{2fcsD}nT-1gO$){A161V@~_94W8<y{3c+H{tN&Q@CsBy9&M4HWTQd=zfff0 z?Iw`Vo_wL*z@rc9%N&#(^6IkzKp>io0dV5$i}|8X*A}%J@tzZihc{iXDZriDhdpcr z{v{x8QA04BT2nYypRoi|$$1L^e5UCv=J4h>pp=8(vho0xojSlg0KU?ixUZ6-;duRI zXvlMPlo!=!rzAV|P@}*<$iJj-f&pDs&?!h{PD~e{JqJri%V@ASU*s|g$WsqtiVjgG z9PH3}m{dz<Q=-M3Kerd|-G4yAjW8H+0InI8ZRB-evy*|PV|V-IZl%#^;IMMKOWwBv zRR%N}Tc$t52ltKOV()M`8JvWF{crvq0mbd@t?;8Cy+goVK|4NZ8|oA3FrrIl)YjwS zNw_x|hu-E^==HaVj-y5uJk*437AR{PrsFYr>W3%C;pBv67^^<~{IJr(c?t|1yNRFs zHj<m^*p{{pg8>Ej^)L}|zYsbL(PY-<w<BBXMwm@UVZK;~7HBfk9;gNk0vJMwd+^k< z;&dl<)4UE??V`Zhc^D2y5*t!mT)Xz{!B@Zf)`wRgfBbHvUSAL;rVTH9Ys%W}+xt5^ zJ9m*#3H){e?IiPP@{Kw#1iX;y(qTZam5T~75tz$(F5Gp~ch`hX^0pYiU2jq+A7=zO z&G&d*$Q5IR`<_TM8a*U62=sVE_Zeu<L4Dyo=jHWtt7S*^o_H<W6Aq+aF;kq|Sn~1n zZWVx!hu}rYyyRl^YXM37lwFJaRt4D5_K9Vs*Ksu6s(V>;d(mJhIc5c(`=UVVnE-Lw zN{j<tOFLmT?dXgAlp9&;j%C$8_nuT=;1r5bPL=Tp(}UnsD_wFAh4WT4sJQ{$^((Js z^~*aS4`}}4R&H+9XAM*7{m;Do35d^^yqwoOx2mlvi!V&IVdpG<TYc2unIV(__6Xz) z`>YK#_S6{|O6T$9qykvi@6x8`k$2w}!25OuAjJ$sGc~RwK}87Q0__FrGT7b#fL|_` zGXa|o2jJ;krQE0ny!%~S%ok0}cksj$9S5Fy2Ib-{C*ZH=(mw!r`psaT_B)`h`{CIp z8VgP60PS)<fq8iDXVVtIJiO#krva!Ik3La!#2YRi^BGZduph^vvDL$`eMr1Z<hG~p zpz1KvS+-iOx&xd5;^e(IMwHN;SSE8?2e3!^_^#9){GCzI?F@zvkS788xvUuAH^&07 z0U}&{d8qM!nl-fv?`;U71Lrd&GBfpa^58o!KEO6fWdi8W=LEPxk5~d=LDgiVD@q~S zsiST?l{cS;Zl@J?cXz`6{sF0b0F)w`QxXu%GrwRIr~YF|NbbmQvvb8*PFAhldqmV0 z_AD#VKO0S^O+l%8&2#6@g$ozX6IlGg58tMh1!R^*fU2(>CtXsoUY*YZ)EWe<9v>f2 z@F!G>0Nz#MgH}?ITx^N}*3$!P(FUz{*NlK<rO#HLBF`UQ^Z48ai2EQ=!bHeqoVMLr zVg)z|yAj4yT}^QcP=-v^sL01(H7Gm)<ocm+f~tg751iBOZcLwl{<-^Kee<pNc6axV z8w~`@Gnc*7X^%EGdV}rl?FRtu@UkN?RkEPcKM$7aMZ-d*&}4Z0OaoBaE1iH_Jx(fY zK*q!e%JkX!deH+<YX}*r&jEX4K%~0PUN$+2(X_v8{3Zb1gZAvZ2er{UNkN-mdG_UL z1!ck#v(+{yfI2DDZ_BA6Y2c};^;iMA_^snxh2yX4dbT}ZC9iVKxq7U7jZ^EBuR7*+ zIzySC>-ZeZo`U(3?QWF*!~RqO^4L%5Kk4&Tr;tC<Q?jzQUkOetIqsHF=d8C>apAlY zZd^@{_mwZ{L<Yj0r#1(|l>j^z8<)seSjygz$nV7i<YasK@?Sb0I6&(Li1dC9Ri|F6 z9Dqk1$=DtR@a}&{z|T%T2iEmV<i4csz@R)rdeJ{mI-JDw6o9_$BN_}TpW!?S%EEu3 zpg?F%K)M6x0p4<<!0=!AfoUHDR6UO9EDE?)qEdjifo}u+C`W*~P;YoeKnw%{_ezba z3n*^5a=a3am1PEmfqm4Qz25T~=sCpGC(pQe%Ub~NpvSNwfc-@E!8HN=n?m2Al>r9N z0iJZ_zpE#mJojotLCz8=0KovY&=px$b`Zst5H?Byq*1<5jA~Qj+t2HfrbGPu2J!#t zIFzkwJRA$Kba4U3@3+K+n%GE|w(GUf2=FvBD9<yv!U&-tUFF29Q%heM0aknuGfH~2 zTx>J{zEKYoQ8h7AngejEGNNw>uBXAMt2`XZlDQjb@xOMv`AFV&0M2%&YZEs9g3k_q z`}OOekskfkt5?JS?_d7Q@U3rsJF2x158Tsa+>2_jdO850Zy><b2bor%U;P2C21%lD zG>nR;pMEMl`^=Zf@cQt>kHSYEePS??sSSz+xzS;WX|f}F&P30_>dZI>r7qXcmZ~cj z0RQ|Py~HSY0y2!OywqvJK3ks!lUKrED2>JwYD5@idwb`GFTM2gt=C?E{o~$7ZwT)? z0#M;m$M?-%?`V5x=RT-0olb|e*)`BoC^D+dLJDA#SV6tr>S-6So`7cs)DfI3m=<q1 zs$2%RBPca>8QIP>n-WTlo$p%FgL$5VvaF%f(-Kf#0<e{Pl2B~4ZzO@ErWPWPOUgw% zCfBe@E!IVrBob;&0?ZxI&fafdww-Gg)%wOW%7DSD4qG^0J@&qSE5PU@ZHsP)>>y{G zoZ_86%b->cxHB>E3QvEf;7r-`c!aurQJ-Q{mI1;vx!9?Nex4PAJUI0a<IYz#eA%6p zf^ferd-`jY;R=ffIV)aM&pN=Lcd;rUFXa}?H_)BR{#YOIyGrU`2FTNL^)`yD1&r)s zRFFU4bKCU*kA1YUllyjU&(WJ{h3ven;+$QCz3%|o>}FjCl86+~u6o=hs8s`9O}z#q zIY2W3b`BKfGDW#Xjsxq10k2cOk<d;lN5DD--AdW=n}DiNOsH%JPH85AmtL>0e0l}; z>e)9#M8GzcE7Tl-UgOLYSSA_}@$>=kN23u1+oI8M9A5|f*mDn{4?2(TlOSHMvjFPp zY*vGE57z_0NYtps9obUV8<D7D8np%>OMtA<!a&7gs*Y;o1LVVdKdXa_PjwI@0LBLa zd|7c2l^-#L%!_aDM^0CXgM93bQM!>my0F@Iw)?~vKRQMROXgaecU;sa{0qsH8`XA> zMnim2Vmf=<=IZ8;Mer;c0B3W!lVL*YERtatGL%P0N8z&@Hz*Mi0&p*0ycq7?y+``( z+D2HZ@HC!+_rt%O>v|m4m<4g|W{cHt&=lwP_QKEog+CvD?q~m8I2jDX|M36*d*S1c zKXprWpq9XM&bSok{n<bBr%CSf```Zo1w-SyjV7p4%`iA&)ts})K;jw*yv3>k3{cj? z*LxJoOCj#ke~Z3o1&CuLNgGQHK%=p|diBcTE3dwK<Jz_7Kik;ojvMvHyxD?cOnZW? zr=l8jZ)<Do0f4-C*_YWrjBo0qQLj0_bR5@H#!HV$ii~C>L8VrGg1YLB_vdqv3zPI$ zc;flH8~;6c_YIbS=2Yn|nS1z)Ujc9$;;v7cA>i#O>RZkr$czU&&aafEc*&+6^4jP# zwQIYz<eX=&_3?-KjHwj>vhdn?;~**D&-IZ*l-0ZRQwFZr0<ub3@`%N+l$?=zbEe~T zOexSooHNuJfH^CI{+tES)^ZQ`=l^6zQ0@py4^#)tI(_7e{CMF0=<xrG`;^^m8Hi2x zC*JfFU{~E!u?#udS;01F=~a>!p$O#j>lI(_i00D+GahI@H`@w;t3xg+nHd1fsvu(L z(a(*>=q_>PBpUWCkEsnLc`f3=7O9Cw>9OTmHi|6Mh-eo}U4ULFzKq=Qbw`;|g&GC) z9=OvsqLJuv_4GKY1IBWIXYZNkZ4LdNpU1p?9s*;~En!DEv$-u4z$@J*D(SFSn!!A$ zLu6k4k`!?gs*eJEQn+C*5m9B}rI&iChfpXw1m0;?U<T>QDZKas+y%rF=Y2M7OlM5Z zVNg$8cv9u@U|M<bdL3PDFtj24K|S^g<h8p}eZ?3M&3y9EQ#=59>!VSD-!b@CjS;B) zz<{#vTt65(0oxTcYe!{88t{-8b8y^Y(=EbQf0Mx)(}&C(PF#Kib9m@vz{L4KzUXX2 zX31X?s*D^DZo61HXC9wH3mOiNh1-wd+(!6cfBQGX55E8Vr1G-0wH<!zw|^^K|KvJl zL{)=iHXRox4ZekRI`NZ?-&W<#C<E`wWTj)3_&QN<BwhObKlncJ@jw0adKOUXabgG; zE?x|O^B4X%VgKMD{Ng|Pr{PzA^<VH&OIC%^_GOyPdR7o#`F68O?ZX-+8jQ-9W}^rm zcZ+Vezqt_ukN;$ff6%<IA--Vp%$J_I|J(~N+`Mw-DzcnTn@#exL*@~xF~jZc?T4Vo zY;0_R&#u%M?>VQAfvSj0B+_LhN1e-XYGB>TFtYrk1JoX1i(b1lmPrE(U}sZYEMuL# zsP}s#L0hftp~bjKH4NgMV-K$)0a8?riMe5XlP3m%^8Vb?mt8Q@)w1qc2<CLZ%VXCn zc;X3wk5)l698Lkw$#pz3(A!Cj2fk3*dsqPbRlNIkx8;D?wSCFqrw(9e8sIWezVh6> zj%xt+vS%CgdSAe�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 E55V(6xc~qF literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality CR-10 Smart_cover.png b/resources/profiles/Creality/Creality CR-10 Smart_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..49f7428c7b1285018c2a675a9b722d25f7f48f1a GIT binary patch literal 44605 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality CR-10S Pro V2_cover.png b/resources/profiles/Creality/Creality CR-10S Pro V2_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..d618492c168fc857f47532e5daf6919bad4ca72c GIT binary patch literal 248158 zcmeFY^-~<*^F54ff)fJlqKgJd@MW>!?gR)yg1fs1_r=}af&>lj7Tn$4-2-_xdA&b> z#8dVCVXLNg=F0T#+xMK)J)w&760b2xFyP?eUQ0=eD#O7coc{fxp}_vR0LJ}-gNK8Y z5*1Q)O+Ri$O{Y<JqV+C4+!<Y&vb&VbOOM8p&JGAb3Ss&{yY$r1s#En^hx9D<hQ%28 z+2FX&g$N0ZMj(ZPB>a^!C*2`gDHXt5H1}TZ*=H{k;&fK7UP%{x%9Axc^?dm0XF|Kj zsY}}yk`Nq%??(z8G$aJy_5C1^eA54}|NeFRit_aTZgwJk!*Th)2fxC93~ByfqmNZ^ z6g}Gi*GK~nXOrb$XRzB$aA<Z!e>?vB=o`3zpP2u<M#6*>UPk_3*M7)w|8JQ8XSDz4 zY5)J*Hx$TlIygx84UfSaV61h=7a+nP+lU3f`McTb5rMNI&ymEPGgWF+l%j(c`JXnv zE6xVGt~vK6ova8g&TaR-?Y=&L?tFr2WD+}s*NFO^;BAoGb%K@6u+)Gqe6E?OLggsE zjXY=+-!_Mt;$>*|_fP#26W<gkzEe!k=q3DEt`lrthcF{8R-RX0gFksdFm2&<?nPcY z!#Hiu$*D`J`%O59(Ac=B6Wz1!*}NPD3%vg1M6b>`J~08mV2NdHQkb**w9Z3zF9g(@ zQ#txRXFfhTi%_QtR4yS<eP?9b?S^xpMOL~~-PG>ifjZ{YS&6!i+O`;U<Q6Sml%rE# zk~ZhG51u~SxIB0@?PW>&aeWK2|E7Nj-lyYJ|0_>jAgLDlDfOxUQIk2(vW>eal6kvb zQ+U57@Vyp!Jxxaul`DgUS5aopp%#*&+6n48AJJq<?IN}oYK3RLDgrh@vXKnTVvV2F zTZv!`Bq}}hRPB^2n7;6J&ls%{Imx^Fgxr5I{gOYK>AtLISg3ZFb2>*EdD6ju!*{L~ zMHaHbPB2D9R^|vPUyQt3cb6$(JE=x2^@45*GiE41<&DB;uGx!ef5{B4#D6yJHG}R6 zmFuXS^lk-P^&gcKl)pZ7(#<d-pWD%EMs$MyZo+QVk`GLnzSYA1wZr3NweHNz%R5sS zJU41-mslTU)yJ+_DdM4?^hj38@H?WP$OS%1p+GsXtxdowGpvA0Roci&VBg#}J9;d5 z54{MfbYz}unai3wYfMO6ThO(|La}_E6CrwJZ>Da0lM@?0U&XO<`ojC%Yhc@6vH!Vj zs*Y^ksc`gt@mBJvVYW`CQ2C}voz5q#O$&uOq@?mso&6R)4xJ9BO-<^hgvptizOuBa zt~?uc{#JcfBZ<2m=vq#efT%)~NwYdYg@?X=*r`a1PYXf$($(~{a*5hkPkTHz9gOOQ z@8(R}%?xkJv(V1UY8O|xw+UqBq1}UYS#TK{D~DQ-8;xC0WOFMsGsum?^2||3Hn%#0 zBp-NrG1ax~kiTozDQk241;R@>bOjCaMecTbq_y{)o$KV8x$>9ofmat;+C*>MbAyd* zS)59~EUCSR(=WJxgVEKmAku8w^vIa5{#??w?xC~N0Nqmb5RSzZS`W%^*udI+4T^b; zt}5e~X?ob4N?pk|ZxSlFyA|hBkpC%*XEsM}iha{LwZ!M11@P-eY0ES=2^Y=(@2q7a z0RL!z=+CWj$HQ~l{?UUKGfI_V=oi%)2gguByy`@_XH-arQhp*Hz`6~`i_nt2TS8z; z+2%X6>DhwvyZjNUl=4SknX~d2#AEETkY-{l`A1&!xQAx+oHdiLMTpc|BREk5bR+tX z6tUt+!=r(Xl&caBsW=Y?1asPVoUX?|`c+jW|Dl6UKcVsMGjP_Y_HNT=AqGP18S)E} zo)(dvV4crB_4uwe1&Zi{tyDXG*OKGHS4$_fzesLy9peSHUcVGjU9{L?bkm)>dcMCy z%WNQCz{;KY#_zE6p{a70GxxaVG#^XidSU)!4K!r^E%Kdr`)yriw;cD%tBefblVjvx z-0{^;WEEWkfa;Eba5eVf+lU3$AREjgDF9qL8cf`+=!lw@$;8+%S}GEKBXBMt%nhz+ zsQ5@xJuw(srpkmXtcQm3@=3vWRtRZT=prq#mBVPFki*F4{burXp<TwU>BmW5E}z`d zz*cmb-8j$#u04w+l5YQ7v-X!qo6e4o4yE!&0vHzRjPZ@WqYm@G)_1;s3?Y;dvY|d6 zX-Vl?;v<YJ%&nuJv}RPu<w_;+LmbWFpw$fEMUCI`TYE^17jM8>G7+0E(ayQ`dcmB= zx#=fqQs{rDX)|B9&^=hiA&tK1q^IHcjG`M3Fe4`+A+Y*~&{Bm5p8Nvwv%ZGt50}Jf z(xl48jho70DItqw<6+w_&4q<^mvN{84QU@<p>~@E#-xfO&qxvF4Yc4b1*6~htS0n% zdFzu6C9k~Sw7%7LeEiNZv=EmTj^orRM0>LKjnt-vIFSXYOuUU}^%v@OdV(p)KwxFG zTRoJ7Hzft{EpfVY+`{}N>`W*7B-k8A7a|(_-;&%(3X=t`^UPPiW&7a~Hdw}xUr2db zQLUU%OG~k7UE7+Xt<Oiy8R~d;@NtC5D5?3Q?L1kN?!zzjjUZBM<rwGs&v^d;>&M(P z;e8@LzXxxNgr-OC&00$-vM-;&a=c{KH~I3soThf$^m(8IX+{H68x7Y=W0&$;P14sQ z@aR*j{gl5qGM0$g-s1q?oI5?;RQe!VH}0qrnyGuw|3jt#q>yxDJ4y<v#`<_A{K$66 zTVT)x^KLkL5sF!qxcR($^$%mEWD)7*bbL*beo<)*nlb74UmybYu=?2Ta556rRB7)v zjlG&JTr_By=rqhy=!q=a=8gF1e|M(s2MYVtz{u>2md`<vIhM3xJ?|=jjFWZ9`D|wD zE!qnmrk53L@^zal@nfO_=V3+oB9vyYDxhDAF3ls!{G1CF#Mz0Gd#Gd)Iw!7io)6V4 z{cXICP(E=gRjB`m(x2d`@F#wA6Xbk3jmyDq9?2Bhh{)^+%#x*ZyOPmK@&D8UWbBAn zL@G%k^J?pY^`rDIs_~%k%h!c!qnJOX|ImFf#<A*d@QgQ7IG#}4*hpcGC#@nDE2Y0W z9tkIZ`e))H`UdAmK&-p-M+M4I>>Cd0c5By0OerEJKS|zS2G**VZv|4s)Wk6@FS z9-}_K8NiM$M7sk?>Ae?i>b{;HKUA7HD=t<s#U!TbR4$;`zcME=+3P)dyEBQ$q;YPF zA9I_Q-QKQCb@F#jz?<VVR{I&C%7R`*y5FruRAQ`|Hrr7_&YUsY`Kbxaj0-`1)&2zf z)Eeg>c38RBJlUDP(8l~X1FvY&*+BH7hixzZ7*>Qadt%1aQZM~@mlhGJ((Nr4^@y(% zjs0J#7@Pb5F&5ieVYJ`5AFI^Y@M)s706dASXpBfkKD6o*C08sOhJ;E=WDe}Fu&~4j zh5qxF6CCpU-pH>n(9boG62IcaiG=Fj6=5J@3QT%W$$_FeWxYdn{`UNpQt0x>8zR2| zhZ4`llWKW$HHX9pdwCiVg9btV^E=%KM$fA>?qX5ZA8UVoyi+((bd`wTk6$*kXir?= z6rs~kL9}%z@r&NUB;`4uLN4Lo;WY@(8jK%Z+{T#Idh$=WR6#l+&0jl*3>2rJ`5E8q zw)JRXoXoHHb<8xACs=MwSBulYhf<li(=V|<+e21YH;b?1pHs>TfjGmlJe-7SHd!>* zFOv(zjUfNr2?~_l_EOTTl+VX;>GY#M(ZVH^;?>!^9RD}R9~kVHEN9)l*fGD*-oQeh ze9Z03OIxvH?LRL<h#3Q5M#Cl~G-zPm_V8wBisipGK_j8Wz3+WZdFqFZZ`Kam+6jE( zWTOAfc}zTV3_`{vqDsI8++e3ydcA&^yNclN@6U+)>A%xtRRqKlj*4eT1lY-cKKfMz z++o$g{gjLHUvpkj;TkZ-hD@i@$&~l=&04_Ai?`U~f0Ppd1|hWDQub)u#)~i3DKzi7 zNi==_*Nlk~%}qBMrzB#%*ds*C1!%r#6O@xf$(c?k;{NXefT!f;VVA$?GO|Pl-|m;S zCiut4$8901zl^t2&mHwD3dW)T-c3;89Wof_7ylnk4kj8|ZNHQkfWWA-ZTx+$kK89w zvAef1|MN9RAwy0HR8dB1Fk{%e71yoE@wGLV{4~&iMA~**nCjGz`gF?sYNVl~+GuFn z<Y4e0mA1VW{=FW>1S8f^)BI;xXjDygZhZLnmKq^v4$m)%>JK@=l14}pOq0;WsDI`Y z|Id6~LCKQ<cS+cEL?wA?a#>Uem1q|KF_6wpxVFQGI%_;Pw;6JPWU-2Eve#mz|54?i z!b>xW$^Tf&*9(!{3)Fw+?~{DuUZ4FkShRA*7h3z@yduQ6h}hFL-tT<91cv^^#2V`L zSaI5)@}_?E`n8lD&3`VX1SlQwsFKj}C3WuTTtK)<QevL{y)Xs2t$GOn@+A|R1;SeT z^X-<Mm)opRT)zF+3JLX<2^rP*!F#?T2?9^=>d~V~Q2PR#2kkDZf6Er+uMI)#nAb<T ze^8d~F$WDm|C{jo*NcetX!|h4(6+HPW1^%L>X?4U%iC(SzthW6c$!;JTl<|D+Yfjo zmHi)FkzmShosZSbc%G+p!2SE!XFHl&&*QT*!AZG)$Ist=2a`L%pv&Ymo3>96wbcKO zhKYTDyi1O+R}o8uB;<ngF>4FV58dK>1-C;zqt?0EqaR*R{t70I0InsUUUM%ObDRjz z!xn9Q9~tkwNjJE|uEWXm94IShUn2y^({E>AqFUPRpz@Ay><c{H5TKvf5l-#;mgT?& zP}FO;jPP-si;qv4{!RE8FZ3x5HV)&Mx9|G6P)PH7w)mn=(}D3@03cpe6=ptgmtu@v zb(;(?bZQ4I?}38^gcFj$LDFv2st2Ysi4Q;Vy`R}@9L0;sL_~T{adgkFETZckbI~Gt ziERIYh5B-S4I^Ca><%WM7+<gvzv<cm_A(8+zJH+rBmA|4WN$)S1;+`%jOd@yQLzsj z7nghW;oySczB0T3kv^<9onFog%LMPaXF#_c5s>(yN6xMlO9x<U4Dywe6RX!kZ+@p) zc^us|)!|lmJJiKwZheH22>V6^q4lk?kBzD?ZnPO~i+1VFSSu4aXi)9HMkKgPw($yI zHVCMK`CjJ>zszenH>?gbWVqjEb^w!ss}>#9uN`)P_!1^cKeAW($|bj>qZM3pPMSbe z&0!PUZ5`hLQuM}0tRm#FZ|Y^7Vn2COp&zND*4#2N8?~^MOH@TSE$Sfm0xuOpB>_Hj zs@wc=gT)8;F0H2~yN5gEJJl(7yikXy7;q*+r+yGDJi?1FP82=AAvEg`uK%Z*nVSFE zMS;tJ8^?un<biwp`mAE^XhjI;x^Swb0E&sY-jR(s8okwlb1(GkM(cdJ*1her$?-TN ztP2OeXz%?<Fx#83%%fk?j}OE4Nve#b%>JTeQf_scYWXc{d8Y1-TFNmuFwz{>OEo+? zD*OYCIW?s+zS4@M_Fbd=xkQ_YF+p?4vi1JtH1qThjP?7sEt!Sy*B>G<|M<4e%Drrh z&-A5UwG|Km+q-_fubS<1kqJES0tIEd$bUD_*{!r`mM<PX36bL6)b2Um!&#AiM1><b z|M9s@&1}W`E7HeWLuB;2g9=|<ySak3!qfDuP6A-R5rbb;){&DS)sBOMXpd5wPDy-@ z7K=!MvadN|(WjZUdv<R1<t+!`(hk_Y`QBetFixr=ekg&waEe$~<9WA}A0MIf2PW)f zc&0k}i~AA^f%r-fJAVT$=9~TRxrS6qKfs`^a_ANTKtf7Q)1pqZnY_as&WHG0&9q&* z5fpJ~Xh+%S*HyLe(XLki;PjD`LISM|fAJ?NWxTJp)S#8?w_?h2O18^dt<Y*h>sR6x z{4<%VVLnCEclRwcjTkY8pqrme_*c>eNDdB0$r%}HJ<S^V^gOW+T3C7KU_lle@%6ZG zOT&iM(egzU8Kd-4vN?+1Jlo(795ub>78XjV&VK5;E`Jaf<mZ3g+A32e*Vw51@aSmK zbPOIX4}Jk*Acd2|M9?SM#rBIxAHOfwjh_Y$diY`CnJK?C;C`4YvSBJ5a-sNs^=$6B zpkPu<qI~zRsUj@-ZawPkX$7tmZ#rXac-Zd<5_26O*(SejSb|YOPQ8B5A8QC27M-_S zYNJ}H#R^NO=5a}nr#eDQC*SKdy&rxh{b`rrqEFJTBw*q)O!I7cIsH*~jgZi8?TcZ} z=YgHeLl=Q8m3H=&^vSxKdf*@rt|Qe+W|DFS*6I4XN&MLHaw9c_rKX0xbj6d!mP60o zcsHoxv?A=N=}-L{of-uWJ#14RJ5Vu-FDj8ypR&T@nytT-L3%bX)ITwpc<qi|vS(s* zJi3ws{Y;^t<>lhy!n#)c8nGP{uBmj!oR<X}b1aRF&K+yUJsCtzStQBL^F7)+onsrE zu_$77&Sy@9>khj5i8UEFm4}zN=|rO<^bE$c1+CD3?p%}X3QgYPD1YB?=HZ}~tYr`Y zkOF&;8naU}^smVdU$8&tD@%_4nELiKa#Dz-x*{Gw5}(_nDnR!0eTpn3qF#kJ`e#FJ zZIE+}YdT-?ta*ucv$K!OLUjT85Wyw)fQJahywBga!~N~oatZ;Ra0~nR{E4xSg&hRP zV}ODTH4yj=ERXt`MA)T3+3e1X`~-W#!4u9e8{02?3ER)R-wCCNj*j(${RGa?kHR(? z#D@DmDV*_F<b*Zt@*;wg#JC$zjsHibecAkXCK7Kz^`g#F)YcZgQX)`6*z2KjdKZO} zGsyj9h>=2xwFWJNzI5($i*?3CQxo^M+d*O-f0HgrAqkY{KGc$PK%}YRzPnU*4G+uC zuS(Y{%#)epH;z-FODIQmjH1;6jd%zL_OA5kf<S`cb^&q8<&rpdPR<?cMb$sE=yZTA zGqb@z4$J13rU+yW{E^FOND>$@fAu&abC{C*9}EdihM~&mKwQ={wa|3v)QO_7N#)j0 z{u%SSIXgJ7epH0Hv$B~(nZp~1_ylHLT%6JcxjX^Q=7?HwJpCB@RSPrisqEL#Y>T8f zT4dC_`7}j)q-K2#O88PdUbL~{O18B7_uR4e@fB6FhBi=mydJFz&IoU69tr)-*F`m+ zfkh@%lh9a_40@R-Xh7;VWLkW(w&pZLl1IjNvp+cZ#9E&&XjUomJH-KbF#|4E_OTTI z+X+|bdwh336W54(>y?*5nD+SFqFjw1BQ6i%WZmCSHw|OyQ1QQu{3-t#2Jk2uEB?Z; z2&6$RuHS<~IJFSCcb!5OA~!Y5H!Vg5jg32P<lFFmT-OYD7InfnNN%)qVW3&B-fmXk zI73E5PRTWDy?jY)!>HnIhGQkDC@W!%%8Q(6LI?|<927#$%ABA`CqQ)27xQfkyFQSH z+G8?$%UKGt$?$+K)*9*>CrVR!y?vinw{`3f1)|(4nq)csmXj*38z@H}WNpxvXg^ZQ zPq(62NC_In<!K+k(0k1vV@rD{+qIyBw*)<*T#$Q%foy5Qbtr55WS5ep>&+83Yf=+P zACoB5L+12?MLRTly4?7V1f6FxdrK?>%Tndbmv`yTiw9Nuy_Z1<sxW>DOV9YVmWG6# zvc`rm;sCyUIK5Ma8{Y+wqeG|Q;cN5A8@IqGu&{S9I1vS)*vCfLcSz4}P%FEGSDlEY zi3l*@s3{!)NqD7L#-&r)JD@knt#0#$-pqX$DhhcYYb$3Nv#s9~KLF+_nl=~x$pFz& z*-pCI28hwEIA58N(&@j!V8$IZRwtBR7R><1e4dO~nNG=P1Pe;ZX?S;KpxgVEbRAnN zorrKcX0xJG$JyN)ON3&75wnM<0Xh|7VO`n)l}xA<25aWA>`N%EJRlkB8K^5U<9MXB zXV=_LjP#2YCq7a>QAgLp{VAUF=<8jw-aoC<mx5*cFc+6FC0;Z18TdVUJRTI4cs2dL z9Lg>$dq-jiBlTP`FX5m$(f#wtz1~M^1Eo3<UPSf_M0Yx4M45MdGaZEu-=XZNiSF}$ z%#iJ*V(S_S$59x^5e}^F-MWelzkR5usvc)5=PgyQFYvzhC1r;(KV>$7FVt|di9Qx8 z*OxCJhL$u$KxmSJ(Oi-&ni0qMaFv<OM5@AIWHSJ<mtM~wV8geiYLv7*uwm5M7LO%_ z^obfbA_@uYJFGv|=mqDJ0I8WJLN)Q4s;dNfV?2-JDN;;wM<;wpe8;I@PeUmdvn;uQ zFNNDGpj85zekHiaVO*~(l2E}tIpWt&RgwbTlcZtOb2Ib^_2_%uR;h!vKfU<gOD-k= z7<PodSO^^V0Nt{`7w6@@UVU1<6P+?e5?OWe%fp9-2{}&~WgxZ2af|p^rTA^<SR178 z*q*CefZSo`1T3Q2DR|VLJHe#bcL5ef<!&CLGUGn69XQHFOV>f5O9(iw0(e9bVeguH zkM{EA3cS^_N(8gxz;(_UlJw?%tmZO9F~|N?y^{KaIRUYN7)$DfnZR%NHWASl`tqrl z{QPmzO!|(1P)6|<o|HJM&E(-wQGgUg>{m+kQIGt|Ud7U2+W}#63WLOytQ<Jbu0EaP z?n@NexT6*}u2F2Et*DOr$6kXXULIG#AaanlfvFGpF={Cv3z^&|5j}=!AmTO+Ib)a) z&VJCYODW*{V_NMMhkGYAEt<53Q-aCU{XN*x<t_loGm4*WbYVk#X6{IVHs0AkF`FWR zHUE;5V)pa!u%ToOPmhQR3Fbo}7)ozV@LU`*_k<mm1C$X#5Ix5h{@;-XkHCs8=N-0` zOt|!%j>^15PqTGYfA4kd#)>bJjq$d`eL*6zApx;?Z{h$PvbjX^=u-KIWC1<Ppr4C0 zftZM93>dgN@~a?^&Rjy)wY0rg0#V?H7%4DsE5(Finh2<#exXBDA<<1yh?=%ow7yO& zFz=?I*#E0}2k!5byv1~a@L;GF`G{M}w=0Mwn{WV0CsGpsq!Sh6DL##h{nAJb##Kth z-YB0nK~AN{ZNhFb8W|!V7hguK^WbUh7))dts?ctp=IJu<-FuBMQ&d=}xATjz%Kavl zzO>EjNo~Gr<C8|st}9`y_>yGUqzY-(6`|NkPQ`7HgLXf5oL&?`dUWl3-8SLp0T1~q zMHqFC{`%lrb7^K0nGfSKwx-Q|uW3->ZGrt}4j&JCJe1x++x;m%p4mk}?_4Y9Qbvq< zwdZ;bN1+{dioC02NE##fgNoT9Az|@(wfQ8)(iv|F>2lRM(ExAOD9Z#KQl<EKVk?Y* zO%yoI@f1R!U_$xj9<%SPMQ64U{24G9UfH7mGo8F>V(xa6Ih{py$}tuCPVxIcwv#ks z7Zab6X*eMdv2{1;KSP^`p!8_c?mL^3*FcFy2I23VcZ)HB;&10`(s|k69_;m~sQejK z^2&(#H5)t4VvR@_S`7*sMU;3L91P6R{khd)Mct*qM$L!H^e$Ie&S89Z7DZco<<M1c zFIbYRKC8ajXy}dW{RV2DLtxwSF@Dt0mJNhO;QIPn*u;dp<$4mrIks3w7c>cg=z?`E zEG*_Xy1bmLN||)7Y`51tw0;yrJD=A62o3DoA41+>N_GnWP3_Y}31vCUiq_pE!89rX zMOz3cAb+Qi>Lc>a7MK|esT@W^nbG_R8A-^H{Dp8{J$P45+kF)ih#Q39Z2Q4g3&9by zJc{7jOkzn?2P>Y*ZpY>I@BS9;`?Mo}!%qaKe-IQkN*08VE=3njuxZ1B5#YV`me^zv z17DZw2UD6Pig-{=@f(coOg~T>)vraD^mH{1|8glFTzmO|=?pZgm0E48&3RUOv7Xen zxlWWsuc|CC(WfpqS>jg`D|Rc#lU<;U+C5_`IwIyxBzbf82GSzCOD1)BBl~jdWk5nv zkE(2y5ta2XHCYewlZb9y$JF3_R?|qSz}(_If{!Jt{-L3E8V#pn$*HLki~dNfPAXOQ zJB$h6q%v3|LXJk^qi8=sd99gWy?WJgeEj_|Vt8bv^vIu?^TLzm^CTiQb+g_|lM`&A zuw;_3N=|+Zo0^+5@{t{C7*{uX{&Fhw*h_PZ_U+FFtE)bF9hMYfnh`O9(d-2K^qTsY z?T479{~_hhmi>?IcHjFB!1C>g@;<+u&d)L_zKv3R)9DYiM)S+0Kx^u_YerlfbFUzh zB8{%1jGj*>+j=D@aKO!Ln@nQ1?NbtO5zSY<+>OTP77_OaLw&>Wjvz6xs+Cf#aF42M zkx3YuEy*Shy@I7cOQ;4UcSGV0uG6WuIke+GM|5nOBrYbqThorszd2S+wlZuWqWzwa zY~nX$O(z;{mr+MT{@yvhgiCZm$*L#Sj<#cZ)l>A>AahWxBEw>omCf{(g$cl`?PuOM zAf<d8XB5Mj|2jzh)`0FvV(su7<uTT4t0-Qw<SH3z3Qi~fs_!UcPp2!*)0c>d{#Axj zSyWe&^L3UexmyG1eaBRJV?0*)OFK<<#d%*(1v7m_O-$%&>+3%%C`3WdTwl&LHV66# z211&Q0dpe;zD$46&JCBhhqZ7~P*FC1W3mKHDG1hVtm30VDZmCkIxtHI>A?i)pBv(z zw4{~|kiu~%!g(%#V+s0g!Gk4rCrjCiwyp!ke49jE2&bd(0zW~T{ox?zsPEiRgvNEs zX6!Gl=n)8J6IrP{3SR}r5q)OtM2ZY$k8=Y)(<t}$K+DvWt7-8an2q#Y5*}LmdGv?W zf*S!eU@9rmEW4@AXhSkBq>$W^dv4~aClOHv7g>77u~WvK>Q&Tg+v!gdQiUShiBx|$ z+_N!Xv4(V5a1%r@9pS<W)VJ7t$L*I#!E-oN92ZbD@xR5q%V5TrlWTuq+P*cvBRX|` zTh1;nU>Yw{(kK!MA(EwX!}68@GRvD6Y>DS#*OKwQnTOvB(3p*Kpizte9!-GOx?+-3 zS&2Q$f2ZZ-HI9bq^vd=D3S|*1{7lj<mMg34adK`T5@oE|JbV;f0i6Af=;-27a)$;j z9_MqcP^9&@A}0n0<`nopS8NqztlQH0P4aW{^B~%|Z=u`596QV-VjV4KfpafeA-+%s z(@s#l6SP&PE9N#V2h%it{%V@Xf=m+l=KzVABbMOW^%bG@241Xd5uEHfuz1&#f5+La ze>PDOvXB?tA?JHEijybruv}ZFsg6%v;yWav8MjM)<je|`e(CZCJsBaibb{40lon|` zp>d%+QlFC3Ra6sxH!)n)5FccB@emtLNf@TpZE_Ju@y1nM`_*oVa(%|@gvFFqri4Nf zDyY>&f~1@3H|jb~#8LE2+11c_b~7WqULY}*m*ese=IvWyD}4{~OAwv?aH?Hmg)LQ4 z{pamXk?$&dP~7I`@gE!#05|gJbgB)mINQ(S-IH&T$P7S7#|fiPMv$p-Nw^Hbh(ziK z+9SzFIUviSV~l9%&CT)dreE+=lyg)gQ*B*C89n5%u8w6Dt0Ve*2*hsLce=NXexQgq zv_4Bfcj}s-C^#1yoN`^-AT~*Tx}Lo4RS!n2nVJ$TQ!AZHVAB*OBm2txBhNoJ<LdoS zIC+5wL%V2PKp@)fp$Fw@e=XlGsVz)1E=EHaro#54#>hi3zUB>UDJ2I)oe96UquLqY z`sN>V4$am%E6-)3fdg&x3&7F3+&;BM;W`kZ<CQ1H;l;EB4)Z0(OHtTM42IT5FeH4< zHHLUa^9fs2rDU@XinEDa5>l-nOUREhUZ?C(MBY(7nNjl$2Q6OQh6Gq3$cIK-I+$AY zGaw8blQAi<4$?Ri%oFz2LZ)MZR4#x58hzOb^QqOSHaY}}09Ym&Xrkg@QH~We|AYON zcp$5E1ux!p>87Ea%G6kB%3_eRt_TPDi`>!-@ZBx_+-$;e*60KBGz--RnkC{x*3`{_ zVS1dCneM@Fha$`?Bv(VEG0sm$J7M4JKJ=CI!dZ5Q^dsO)Hcm2TE_t$WXO0+2OdVXi zvZRp??N)Csyz-WhG-6wb(f={u;4oJ)W@inDYs}x3fA&t`_HCp|tKi64lk8#LR(Q&9 zncHX%{cqHKo?7?bUu|BRbgw9FgAu>2z>UhIehuE^A+1T7Zi+uz&VScTrX@Pq`zWlM zHGyj~Q~JsFf+neh*d&u!`wuK-;MX*A9_3cyLDzv=^q8kdmQG-MEE)2|N@_;u_KFr4 zU5^N$9H6Pq9g!$5xc(D*WDM*dgFxf_Dd@lE($ZS%vu2;W__XTieoo6Ud;J?Oj`vDv zov0KpkOHmxJ8Hd7k0h7D9LGq%VWbf*hz72}jcbKpQV`lh3YWLoqDkesco?0VckMqR zYp<av-0x#h+wwU<5=s@9@1M>qIVyynCb<YsiCa-k{uqmuLOs|7#*!FVIK*92XBySC zN40Vq2#lJZK)-2oWRg3;_Lq3&i1cQz0H5cxbN8YH<GskEWo((EY8HrcI|=GDbuout zP&m32pIz0Lk=r$mbqkrhT6A|X$F2*-Q*ER!%<JTfG-RF^%pYrt#&fO;aosZc?iiL2 z7~^T)E0!nG5sVRuFc&LMpfdp+$7hf7W{n{~c(y4I><u+~=A;i9$)v~{ThJyf#*F4S z@K)3eT`4b}I~1s`ouGREpwXpo%KQQ=@#*cj3$Od|`KKB~H{h31VYrM+$@Sj;GOOF3 zMG}Pf@#j93Iv=D<nYgAVcW=%I-?!hbc&qP|of|I@2;_Flyee|&-IQfaNWDOWozMIU zb-*2Ka>K7_AKc#X^1A*x=L{cZ-AngidG!j5@tI%EnbV3N*{?gm?fp}9%#pccy>aA# z=logUnDBCxlH3!lLIKI&9}z~Y!C!5ActBg9=bXO4;H(R<0oY;V!e5!ES-$NLhvK<* zcI(xSO|gH?%65v{dZXzjg>&y!!_NNsn!!Zb6bn}B!@!nl0oa)ZsWe-QTCs6#6HxA$ zRwWkO8YY)2qr65>hiS6rF|xltca0av(0oQ++|b(wBQi5<C}*OTG05fk35xE6?JKmU z`QA+^EfFbSP=U5;YNp@Nj@5=Q+OzTK#b&5T+UG6FOQmU|<nS_zCi^Ed1up)I1+ZY` z$I&ko#^klsi@dUlyA1~67b54S+z;$UasDYxdp+bPNs_0nrom<aW!fJA@1ZMRGVUOb zH||bgL*v<%B<!JIrLb&JrSxTFFl!rJK0<arRW}|xvZQ7GGG=FA&~h$~9#fd{N**+x zqz)AJW=a@+Wum-lx(?3s)g^a;7jKE@RxU?XDN$woNKVlK`qKWURNE_da$O+!lf(sC z_7y%9gNJ4KO;L_=*>zD@I^yB@elZWeb@|9#%QyTWw+s$8gSD*-C?E@;uW%ZEJsc~$ ztl2}wMSaY@Hkc_vMrrdf2ch1`*cb(anfbiJrJc0F#!317(Xfh7T(Wun+&9Z*BKkcj zXzC#24HoL*L)TuRx2bf`^StBVY<gN=Sh4V8l-;@vxHhaT_`S2rd$K2?Pz?7-><gQ* zD|g17$qvKv#ZP5(iwJ9HqLVt6a}(MH-FHVkT5HqWj-nWGjvK~3bEaC`tfN;G_J?aB z9~FO)ly}p-w~J-66#`Z~O2!h(r}m7!m7<{<RVH+JLZjuI7l67O7)If9Dvf?jwX4R= zr)O_0sd}ANj|$T7eHz2H1WmrB?7yX=?3YKzll(1L#2{b%xir@b-!1+d^&voN7cEb| z0wgSFrFSHm;TZNLIbl~pRoXh~WH>u}j~_aX918v>nt}LRc5mh|fEbI}vT-0V=N>|t z<q~mdpFdZtnQz3Pmz3_vF+od=*EF4MPna<-b4lX`RK9-O5FD5mZJB#_A4}7!IIw5C zr~%1X$QUeiF=9(uS&%jM;7VKh#F*sr<o#h`agi-$$e2zgll!1)H2-X_$lR$t`Ic|K z-huo6Q;mZZweWsp6z(JB4MXXKQ*@WZL8Bt}A=nxU@Ln~kEn7CI5<!oaHxfoDk8^d( zUzR;IN|R;wnQ)HYb=x&^qDvKrSn{Ot_>5GFNPMvvlA`+_L@4vLu^~Ygc+%`FBte=; z4tC53p7mpUp8Jolu2xj|09I7iBzmj1`RTw+A#o1ueq;g2*A%R!@^i%xtq&=*L1#j+ zQ#V=RZ&D8@#<}wcd>90m@+xLuKS3I;I&-fsfAXM3x2!H+rl3u;ZdSW;?y1Ah{qV-U z^6UxNb_Po$E%9=)`il8#daaEi!oA49+k7M583UjWr6|nap$C*0@Uu&xJ2?{O<!goy zZD-`Q62Q|*p-TKrDaLIq*k`vU_i@+&)*~1`NXPb4##xm1r3BX3C(_5t((Fi8=i)<H zbBEg*^hY6PH6d8dZB>RSMsJR@yY>tO*g7XRTrb~wgva#(24m|3K?jIrCXh_gK3l<% zZTm|Gm_}l<Em;S2nh7newT2{36OT{m=s+d-u33#G0Et<Ox$hRR4~xNnijOAm^41o` zf+3_#5}OWkw+Z{De)fcyX?uQ(^A8jKiK~&8awU+@3rvnqPHNQ)zb$j3v*Zd|7A(2A zp&-7bq0>>L8iN!|;~u;87)M6V^xKw+gOp7TuB@y<BX+TVr*J5~D#CT33t+y{qaoIG zomGOW0s`4^f^PGn-AOf`ks_C?9_32cKcVvJf|WmTviAcm_=KGL?f6dTKPY6khkl#l z4;f`oZWpR1It5=j8A{|IkjzQVId5moD$L2Zss(4B%G>N*!Y8M_6VbKd{(asr7?{x< zlvA^{9_zCF=itChY_{^b<7vi5w(HXv-l?Ld+dG8L93+n$T6-JN3EzZJ0R9NEnYDat z7rf=u<7?McoI3-ge<ESx7wb>?D@=V<8tLbJl|&spKd{DQM-3r;5)!-}b|@Jgy2=%* zL7r>m^hu2V`&HE*a}`+3f>pYccJD+)Ikfq;Yrn&LrSM!139Ni?HwLm1rU@zcy(~&T z#sp9g8aEJxapZ9XE_3b&Qy0j-q|nFd)}uTr=WzjyUeVgoxM8?Csu0Rto)n(3E75g* z4+>p3lzSl^bZr$Nl~U07G8#)tTQ925xe&@5kPKzktj?3-=WVP~OJjP?K%C&Xy*&7} z((VL%G)8eYuzv?j6GNmoST?dbGk7$I%<1cpH1ytoLp*PXjY(IJfvi&I=;%PpKol^> z++3EeM(Q;9mS^v*cpjUK$U59Px$`P~4<~QCQOlY(X-K|s>LAopfIDGioA$hh97!cm zc&I{HpaE7Jdg93M@)lt}MZU<zdbP#K7-pSY=SlHBhtKEAswXNLUgTppfawox(2S`n zm4G!$AwgwLvt{QJ<-n8$o}=aQ@&V{a_ol>;DHZ&hczJ_Ovt?=Hvr*d-q8Sp*3S08z ztAg_-C3D3CM6?TSPpJ)^*xr{a^Q{&Q5br0<E8>79GGelz(@bmEv$``CH$)By4c^<% z7{AZW^U#*96N4L?@_oo!(nMJDvcv;qqm{H`$}ZsNd;4|tzcqhd-0cs{8f~7RW#<?* z^1%lB`kT!=_HJ^&WE$VDk&+T`6!~7T&7oTsK2wU&T^t+$C_Wfr$!@yx190bVU7C`y zj>1`g#L+M@=~5i{d0AB(Aj>d>SmMJ=Z2o$*&Fq8Nt85AlhFZ%Ob~y($MM{$Kuvybq z{U|VSMPe!<JgKW-MyXRll>k4?R|O@9Z;z9t;84Pk?$DErwjDs+5=x^s*}?#UQq{+^ z!V@mc7L!(nRL~}`xOfY696GDbwV&Fwj^95?kjl))vfFW?^H^tj^_iHM<ch9H7rYVc z``jj+N4ec3k|8E5S}=jECFoQ-&Pf;Cwk5=sMm)B6Mct_7%#=0)HDXWMP=!RwGv+;b zT08DlY$(my74bqAi|ikMJIV+MW(?-jshHUm>fBiTJQ?}Y@R^#zdR;szh2>VYz~UA4 z-o}sakS2Bo)>3L%4x>cbHzh@%4+5RIb;m(s;NQ%4Ly8)ps8xXFD=UU&=IHS4GS#DE z4-9wv2KdD8M}D>K@A@g{xwM~{-%p&lbo7m+iR@94o6F(VlYUi2D2$p8dROU=nQpro zTB`g`<`<G5H8R=f*%%k(77y9U3gg#%+&X!N+@u0!z`5Qtzw_JNb~EuCA*$1GU|wFH z?bC_ir)`wH0KZ=BemjNq)O0>?V|SFxKm^yf{8-f4vTO&T*>z=r7@EjhXh2$w9t&2_ zqea*^6?^hn9r@$!VpcC&`_*}IsxsM*ACl0$y1+|<*gTxjtsXfjV~urs-A~#a=uzLG zH|`)cu2yMrNoYOPyr224lO7;!-$9v1Mx*wO(>grll?xUauYwoQ#KcciZk!8Jn6#~F z38`JCEt$i0U*?uCtc$ZhL2{t#+Hk@FlJj{>1~rltFLeHh!)m0*@vU1oG?1K4xaV#z zrC{xL7_$ed>;^1>VxtUI#5Q9>#+)5%i7*3&S(8QxTWi%VnQM<Nt*lmJ#*7+@YEm*% z9F08$vQ{n@Ez;^0WEGO!o15P~2)Aj`Z@*i3CEhbgjKWK><Z`Tx9{p4IaG+!>E=U!E zEW}@h_n8Rs!=w(D6t5qqTVTh#l=1{74|$|7cIMo`I7`#y*_hhba`SG)k0VMRKrKfN zF7Zu@8`qSKyn!d)H9O9h%R`GQuP5t)y_#qYiJV<z7D0AI5fOje-Y*rCb6kfvi;FXB zF?`|_V7?D|2Qfh_&|Gfa*@3ID8xO1Ah}MV)p?tP*64!d4%ebYDKq8$0PK#NNx_o>l zvViv!u~Z9(Mo0cfG2~pa9P+ODYv}`$S*&<{H2VwKDbGcr#nkY$DdEoEp*G}H!SSAL zIG^EC#k}u5*nOv_zgUE#(v>atx_>Yaw_5j_h|!gf?%A(7@a$Cc%}<*J;?wq8S`4&J z7m8)pQ%vK%UV09!Jx%?NkGnZ}0kETsvZa-&j|(pGz!nU&>OJ6y3~jp|>hsDT(`>HL zwwOnVq1xv{HyOmGz0o583^vr)<!9lU4^sQMMPyDj7GWikLUyx7X;7b^y?(A7$kMXM zju?xxr3~B3<QN&+o0~Umb--k_eo0E*x9<rs@E<(AIWjK$T2zgPE7j@dTCdsiRm^DI zgi<i@tU0S=bL5R1MH7S`ID<&c9o3Y4=2Q|#-G3lfGJ{U0*n2gKI2U~qkUDz{hed6t zGJ-2afH|{lpr*{9BIbVYex%+JB5+<7;^X!$&D;QA`j`4F(C6&B?E1SGIr}H-+K7te zocfM9!57n0@d<h8%nZC-qwVV<G)aBsB#~!vc+yg{c(nd$`Ky}P64TxBMAsp3Yjeoc z_b;6OY?fP$Jzg;g3Xibl!a7XH=6?HjA3G1vuNP~!q<RP?_5;!&e8|rqH5d}VlqNqW zdLH)z%bBk+Oz7}Hmh>APAo=*BXi?;Htc!+<KB;OfXQYh{S2F7cubu-``~^S}f!Iw- zNX<wN^wt8~?)K4mkGTHZ)Fc^HRV81G?&ya|sC;Tct~jVwj}3~HAk~zZXnNU|?@J?W z9<Il`&yDX~Ze)@sGfbUtkf*KeNT9PsTrIym{njBrGfZUSBD+V+ew305suo1>y2$iF zD;Xqn223AK__A=9cB>v~Jq_Dybv1c;se{I}mkZ0bEJ>t;#x;43md>CAsi<B1#+5)V zYfIyLFoYk*ji#pfQ^tsBYd+gRGNcKw77+NZ_wzomvck`pW2&lb@8^c-tsr7M09BD^ znyT4BgJJ#t1BzG2hZ+5lbIo#9ix0eC!l;(epN+|}D;pzN2nt^!e+H*?3j<Xhnr6S_ zBa~eY&c+(EG8?G<))~C2^#{TiuzD~@Z2(K>5=OSx$L-&BE*;0CA)(^pKFsD-9Xpj) zSU*n2cD;Q+Y)Uxs+*6&rZ)13Dxclb9OXg_Q=cu@4qmIOz?(gd9hPbRaaa%6dqQk0` zC?{?WP(Yy!31L;<&rKoADI|*WfbD?cdah|@7tt8a#DZwd5NP6*iDuB8!BI(_H6U;6 z__k|%k_kR)JoQuDI6m>$A@K;XgKGNVdnbADLF{dc)7<@s`~m)?rnwBPSnIDv!bAd- z-Or+G;Oc=?A1iK2?}KIE4|$#~KnQJ92#%9h@;3)$mBaZe*^qMT5d+D=3PZC&Ho}T7 zVzHitGz_sk2H%=oUTlqPiAclfFHowd3esAFOZ-MpYqqR01rzp#3-@&eg6hVVhr})o z$}G}RV~6eoM`MnJOL5GH<<pdul$a#l6-6s6tMdB#T2<D~&jTi%uc;qWR2iAXIm)Qc zriG-1NN7GgEj@j)rLgU&L{=<Kpgt0xBAZE_nwTMsO!Da-2#}ZE)t5cq8k>CUkg-S; z5<6T+-kvyaR`RMsnco4cij86St?Za=cZrE)fl6miaNII62fnOaO)jWWHd(xI)j>~G z`)DeXc|tnE>W3loMkbd`qL{31$P-l?+@BrY7eZJu>zj;Gm2trCImweMwVhUzW6C8& zoUMP+coynlxa_HyhHE{ApN{c|AWzR+{wrtjoRqzOqCEF=+f4fg$D~1xV=q%v&(UlJ zhoo@HHE*15O<w1OsY>N2lwl)A=?|6J91vN4V1`gs?zx%RX<J{Qh1_m)1PDkhRt!{$ z{T0oU8U7OOL>uWSOT1`jKMph7>p?e$U!>VkY_mQyQGdpg`uaE71>@R-##37*j>b%J zgAqISJhJP6F(M3Vq4lWIkr6p(C+Aah8w=7-`o<*r*9M1}r`z}nf`}UD5?^!<pEpL4 zJhGB_E~9RtX7<|XlV*fMg!bMcz8MnaHz%dD=bpDg^cBj^V5vkXq%mIL2uUqXbe;|H zD8DEC*0;|V1U+*?a;cUhDtultLJix&yS~N#Xriu=n^E?$ims>9AagkG6|qb#Ul2Oy z7!k;H`gQPI+U>)FVgYIw?uL<=J6pr_xxqUlaE7EH@4))48}o)q=+F0Rzpn)UgkSzV z+24<*>@|2L`i&tq;(d!}8!`$?km{gKy=MMHNC+xCRy%%ZVUIEk>zJlRSZzx8(QPy* zu5#SH^0wBHMDi<JQ0fb<8`|MIPm@BAx_Y-^QXDvEoMw5UVnQBFW10bx@AoQJ9e555 ze~ga9I64oF*kWtKpr?zjzQQ0x)?awVQyN_f#ycq~F%xT2st^_gsZh=V_}UEp2duii zcCe)9;m@xcJqwD8nkOeGl}C+h*kK^vLLh4`VaTX{yQUEc)8Hgpb(Y%9h7vD?+l=b# z3KWNTuWDcwrWyl8zZfiS76W5qa5dUr2<f-4J|xLcu@(m+G1<#cq#Co^HC||7K#{1L zm42t4Xs5!pOKo@={lsLI4Ogg$C~aMG`a$ckO^=lt%>2PD+%qyc!+T~{9Ct(qap@b| z`{U`hQ>RLG<WUg(C);dWj*WU<yp6ewgW<Y|E|Dps9SI}Ran1!UUX<MxeB{j;A`~Tw z=Wx95TNEiVbEO(y$r=@Ea;qm=s*#15cDjZg?5$2mYWH_O?d)Oc=uqH35{J7d#b8ee zLlY*eo1u*GWQjSO^&4I)Ah@x#Y8siG#L!IA9%~h)S=ID4mwO~WE;lC0L0HmpHo~k7 zd6AhHFaNQIgay{fl)=Pz3@JlER?+wF9V>Gw9Jj0*Cy@A=oClBn^aPY0z?ttSIF$nm zEVWY(l#hs=T1)<*QKoEy_Kr(`!EF`g)B%>zrAd&ME1F6<u;k*0*?mIYvsCBK1pcdw zhX<*7pG5V-vMEav@t|vo()*oA{p!74<|X4_GZ>Ce&ZSuLWXx3j?<apWWBvLHD0Wby z6NCeumb}WmD;4b~VvPQ}b#vemE!F(Z8sg!%_0zjf^Y)@?+9ipW5Kw2l5Yc8LXF}N; zVU4kJw`)=nTQ*1j!Zq;w1tCjhg}-%tO%QG<v68^Yxl@SlY?O}&Z+8F>_hdj+`!iRG zuzw6zpR<<quODon4-gSfX}F0LiuwHf3Aib)WOd3OFWgO{_Me!UZo9<bjR1U6BG*^K zL^C<139dB;*I}Id-w(JjH_y9!S?v7;<6jLTCCAb8NXwC}Z`XHKzoC8LLa!>I+r6zi z$HRAoraPd1i{oG=f##vT<=g{FGiGixzLUDOGdaMPm#~lO_uV0rzEooAhJD=!t7cRY z8wl_HEatZ`M7p<8T6SE~jqZ6&s!P9}(A^7Dsm7HD3`9LmxYCv~-){%AA6$=Ga@D|e z*;BH#<n+U1(=1aft8TxKaWKbc%W$UCo@3B=dsNq5Li<v08JU}Rp{Fg+wc}i75R!*U z)`S@P+v*2GWq(r?i-MD>nU(sRXb;pGN~~Ik2(xcOK=;@dTVw<05WDYY?rv2~bak@B z5g*JIT<Qo7$=l8zXGqq^+7Q%L(o=k|#(b!+nGOhHw)X7^6`M{wn39vxnu4d5=6db) z;TRmgy)r@K{H2IYyf2|AFo9DXp4R`{5t4?AFg`S_v284sM8&u?5jXNlA0cyVa8T<0 zwxJ!hOuZ8QefD#uDxHSwhd3rBDv?Fo$uACe3AXZ|Zt(KPnShisA`v}#hJn;~9NO*a zr1<mTrjN*=>#OLSBeau`LKDu;;zE~^=<)ZY4WT`6sb|1^qXmbJBgWG}DU_y-uatC- zLwcVv#7S8{#}+UWu+nXol~!!}II$sQBS@%T0;5E@(#oA39f#{{YY9|JrY#`}B=2eo z#4jIye}I%3UM+0ICy^)=sWjU^ET6;RUw`S0yPcH!oMnz;^2l}#VLZcEB+tE5z4<0D z)a`25<B5bIs>cJz{n5BWdH56c@oNcNOSm(^7M*tvG~k2jxS3}*e(ivbm2PRO8g4|o zf#xY<s?*fB^HNg~n*fkfeO|;#Izc)2W1PLxbx0=dQT&*%RmY8oJO+N%)RXvoTmJop zHv1cr{o_MC5#&y9$`Bf_zM=!rq-3Ko*L!0n9OduyL)v(QAB=W?Gcjhzx2(`((-`ja z3AXnSd&sDBK)s06bd`sKP9oWUiZa&BpXZUUpftOjDX;#rjG_bAcf{O&Dx3YtmBw|w zU6`2w(23QVgme`K&yVbpRfLCQQAWen90&1l*zq`$bi%~dj6OGwQen}ImK|K<VBt!C z%hx01vdcZc(j~`PmE{N1wr{&cUKlqsrG;d2#KiiR7Bwe!^5aK#X{#5G4HFF+@ynT+ z<8Iuo*fItqYU}E(#`YYVVP!7XV-7C6_6yo+TvlXD)kbN*a66yrw=tqeOb8j&fqAOZ zRvz`>qV0E*71iEyW_>>%Y3p?j8T)CcO{L0FrfO=WH}g3*(65RIG~eni{j|eRcRn<; zU3J^*dRp~iHk>4OYV|qZYPSYK&h(n&hu>7)`6%0)d(LOPJ317WedPAPBAX}AOyUl0 z=CPqo3%sqzLi_FY^95)x+`ZRpXQ7~aR}Cw==d;C|q#wo{C9|%6QA3)KFAz=VA70q( znKa$j7}DMZrGe{o5?2gi#eNMF6eSyy?#UsC#l?J;N%(qZtx65PdAGvLM3|~E;nK*~ zEf=&qWcJx=T7H3{AL#hSU<Jt>9HXhu&s_zScJ+|ydg%Rl_Sk)_8X-fss3MDMK-L9v zcmP6W-JFicYgkz+o>|XD;L^kdx{dc0VU^{=WYr?=Vb|VQdwW2=l?VcK&;%k~5%wGa z0)z@Spw9KO5k~Yh)YoSlYdOh&(bV)4rW8ya+iNgkOVNfQ|KOxc=iQpdl`VYyrCsTr zlF?CU$*iY$)A%G?!jN%Mi=%lH8B)Ucz0UBXIguY)zQXjO7x8^$Qru5rDyRqz+IH{O zvt{YNFP4%m%wO<K(rMWa_}-!Gbh}o3(fpEHsJ+R_%g<SG8eVbA^7HY;Cb;>uM~j+> zR-8_?sJehTujS;5nORY3_0a)VG=i1&a(&k6wwHn0+S-a+(vNlOvG!zrzvt6P2CKZd zrT0)R?`r$tzD=5^a>!d?L&uWMd1|>QZ7pMLEgMS%igTA9zwN@}j_ecjzNkR_^!*sZ zU!J@7gz%ll_Y(HiHVrISA_t1OFrK*jwx?hV4W-%-dR_X%T4YWC{oME~_Z}581_tA6 zNY~6|z2mzQ1)Nyx#E8<CXjARQa`Cvk<Wqr1OBtKu*RZ9;eOdeS#P~JE!_&-m2GYrj za+sOKz?y)8MoCO}c0S&xFvxX|D#c2VXD!~=_=~X#PY-0PuP<xX_CpdE&%*OZru(5; zST;paaIoH7MTQ!CVIl3tZkkO9)f1oUz$wFbi7{gbMmDI(mc}(*)({NWTctQ?+hB$N zfo&Y@{|^#D?Y`&oxv@enhjxa;=}dYg<#{8SRA#hNE$<#49V>Nqc9t^fbSaZgp+X+g zt_L%-GcY_ds^m8O#6u#El{xYG>7&<pLL^jhYyhu8B;z}F?1182Ns(u~7CSrIps&AQ zy;!ko>*V+tY~8vOPCVsgHL|j8+csFSVmVArPAac_%#}b%8r~n<Mn+)m+7sZCi{AuS zUiB7eZ*PaoFTY$RFkko8>)@rAUxuw)x54SBodWN>_I>c`E3d$V4?F-L`RGUC{0lBn z?J@}~-h-E4b}8KUqn|*vg7@DZU)Mh7kK?t@bq(Ugo0HGAzMZ4!_}e5fHnGu>dXf&1 z>rhmn#){-40WZ$sh}hhoPXxvt{Q$<tN8!8+-vq1I94{lq$1e6s8yF-@2_t((ma@c1 zaa{8rCWXeyd?Yc8j9|zI#&TVXCg{#EcaC{en(J#ld(`$Y(r)>@M+?|4HAY@*AQAUP zh1r>DW#gMga&n{_BRC>Z37>WU!6n^Y|EJR4{-36&ryV2!7&+duWiw1qPlb_jOjw;& za+;MZSB08!N_b=$3(m7+$9DB1Zg1~^RjXDhc?w4t@CA$ZitKSt+t*Qp!NDOI7#M)o z);1L-Z)s^&vKfq;v%Cg77K%Ke+YAKX?(FRNtz5>NdGe`eU~*~(qw0_^<e?>>hb&fP zMZG=h<iqN)D51f1RKp*9xMso*ibz!iCivRK>wo*M?QrU;r^0Xl_HRR_T2a>{UPt3& zV{pgMex~MGyLK&H^Y*vHj-9*Ul1ndDg{6LS`%mC!Kl?dc{H8ZTads9izv2q`<~MIp z)q_9!v5&#~-uFJ$Sw!Hr(1I25-~Y#dhv%Pv9-esON%-hTKcc3cfByOK;g8VYN%os~ z4G#?s!c|vY0ss8Z*Q@()Pk!d)4y{Mlbmdg)KqIIqo2|*UWi*Y+spj{lgpQ+!JQxu8 zK4f!wr=z0_oV}nII6unHkgyLeU8c^15cgv@sy@%WI-?Vs7eF$e`4MU7&xT1l-6m1G zs7@T!gr6hjw0groDI)4LE9HymZ85ti1|NmeSsV}8OEy(Jfg25qg~=wNEGODe^KZIW z196pEEMTI72|+^Ik6nZTu<?8@|2ydb-dd?t)*vB4Pw!V>eMP+#J3G6ex3>>wX3&|1 z6IW??oTG6ZdFK~@S64R-4J}o}{HQZ0(4!0^_W684NndbTjLc)<uaAA~<BI&?wP||8 zqcmq?VhUb<`6U&xWH0rWd}hPoVE@eORjVRL7gMr=dSFkDS32N@e$oO#GvKv5GcyAt zBcssUy98?0Dzvt>LPvW$eCku5f-}!L3%a|z8<soo{PPtl<&LL`-(CB=aM48<su3rY zxpZ}P!P#e@t*+lSYgVgyn#nw{qkup0>vp~*WSsZvtKR~5-+hl70mF{$yigKda&?NY zhpMjHiKW^Zh8`TOXE&quJf9}-PONT%t#S9fl$*^JAYHD^-_~#x3_J9vpY^(Mc_HnK z4f~a2ACg&nc^$b%Xf=$!2owGe!CvXwUB<9uH{(r#Q5id2MrmY1kC><^Qj`Z~tRzZy z4as}B4pX+n)~O_Y2`wPQ#p%niTM>DzV!?5;Vb;<cA?}L+c*383_Bpuk{s&;iid7P6 z6kx=xwNjj$Wmgu8Zlkw%07FB|VCBjcuzmZEXxI+t<HAYg`huTz0xEuo5qTW;XW0we zBw{ojweCpV5lCj%tT|3a&)Ck8ebVvTMB<KZS+Qb;B0q|}yC_%auTRfRz}9VBtxkhL zu&-o2o6Ew;t`RuxjMHHCamT}k4I9*G&)eR5HN535SE*5)B%+Ad{#j?86@BLK`2~&F z<vHiPUj2<Z7f8}iJn=;Jc~81*^ZUJhM&ms;I5-FwU;IY6?Y19>QSSMcbrQFsotZd~ zMeB04lubw8<IWfSo1*L5*@?D8vOEOJ@6wqJw6wKAC9K@sw55)#o*Bm-e|&U&<kfXd zBA!&*kjtI$eUPxM_1W@jjL&3LKc#g=QE_X1+LN6tp`s%%r>au_fTQ51q(v7?QW5s3 z=&D(LRVT{QKpFNJR19AS<kd{rKaM{#gt#woP?fnkxc&CqRn(Kqz6*|RxUP#u6vO*l zyU9?MQ<S(=LIO>8kQ6=B`aMcGgV^vomoYc(<AP8M)2`f%5E$V{3rg~NPbtS0blFhJ zr}a9xF8Zuvlsye^c*7giXuzh8o3Yc7srepk-#JVjjZ8YMz$y?VKl@6U)LcfXOGdrj zrY9%iiYwl%I+$;N+uPxaE3Z_9ecifs(AU=w-Q8Vk*=BZ|dy4qRi9F(PBvSs$uY3T0 z_Om-7l_D8V67ZGJ#nQqlQ9DiTIwz#Yi8?2lYG)~P-T2vdqCs6e*GT121dQs}YgLsW zfC=XePFgpCc>z5=z3TZP)~AaXRvl4_GMhz-jABGuA`+9X7!^mOlqHtEFcD@|3QJC) z(apt9Vhv?3YBAfz#Z?@d+DZgncV<zO&cb)qw2-V*1##XcR~FXI2_xx>=2Jc^@0^)z z8`A%1nvr0uCb9BHi2EYIh7B9x-h1y;kr~Ox7a;Ud9zXA>AQ8fhqU#qg5p^c_@!@=2 zhKntkt`ztfqQXS_QG(I8YPGJeN&FjSGbf#NVo3f~?p(!nQx(^BYo6<tmJJORhlU2% zPmGWLuv#gDgTwhMInRU1=^~WMQfx>-z-tI4BRI-~zq`A-RHaxX?#q`ihmU{!V{rWO z$E(CsGwJ%IlTM2MUTDBJqr=Pxe&t%Y;f9-)Q&ZA&9`DV$;w)6FC94CDFgxH}qk*FD z*kLEDSVp{4!wIaW6Ae2|ap%D72q=<XtEnFqSSrp!U;hBCIUZ$m`uOAWt!-_}%}L%{ zi$<RwpU2dsH&hTcr7P+mgRnQ54`GpBE?yL$Pk(25sPnRH!>A_P%c;P(A+OQ%u_dD} zwqzX+Lzm8E-pC_iuCLo>wx2gnB6*sIJ&1;p12sZ!ZdI_bz+)$90g2IedH4w!=8Keq zXQVOb3W^BQv+62~W-<=Hfc5jxPEa$8yRZ!;KY)~<dMZ_U;f3eEJ25e_t-rT-+;g4r zQ%^l*!t>m5-}lFYpg!(8!3+fM?rPQdGr3HFp6k_;r-(ZumG)q+R8c>IV-rjw$*rUc zBg4aR-udULM9+c#e)z%{{-^2~;`L`HNh4`DN%}%0><pH&o%{N8;D#G+QnJXULqlpL zD>i3TXCTRIoyi7CU0BQRS;?&QUE}uY{#I)Wr}FyZju}LF>S!N}^&jeZUeeGvFbIW0 zqduQ4Uj;`a8hG<Oq}}4@>Tm80ssdu+vI+7PmZ`)yYDU%LR*;SnVK)f6-QkScEApt4 zT3_rMXELwF^#(aNWjT!_SoVHvn@6KOs_icsdP}NxS)CRg$+u1b-B4kr*0A#+#C@UT zp@$xZS6+El=`95U6XuIMu4`rMM|x><RYfkeV(Mi1d4ogn6n*1FH->(x6HtQF+SWSp zE7!j7!?*wJ=fT*>$h_^uEkwzvsB`6K7dqsq0KMQ?0A5=t;Zl(-zosOB_*wl_D=N|X z6QB4vTzKJy@Z^(E!U=2FLeG*V(XtDjpw9=qKhTEqZ@=_KxaXexRI+M&dz*EC;OG`6 zj-zuF5^}S1%}M}@oU=tMkt=;KlUydQGiRcMZNN^s9eJlj_Glf{F>tF`)wo(y=dQD> zTgjA!pdT3GKHqy0{XU4Ge5OXb(0DUU9ZNLPoXOItv+a6pzKBS3gj`#mhb!UfM*fAd zj5SY~EXwOo=ww9e<Yt5&2Blp`0a?`1)e(3Sy>L^*<wC-a&ma{Hi?$!;nlkYYJ1?qx zV6@xZ@95AuVYOp+yAi3(LI*w+AAjOWXl-wYfq{NXJr)R1XP(KxmQCovKB=_ithpnN zyGhVF(TqtwN80TNB5P+&o5d*OK8)BgD7n=QhK2^Z-}BD5kN)(IpFweMt|0;<5Fq%v z*tT^mtWwS_4y02a{QiIbj7t2(YP1-^MPGDGd`4Ul`ko(4*Aw1*t5&U41pcwd9*5c4 z*{J$3BJ5NL>>Oii&($X@8cFx8DSK0t!{^SAO=`?eK7NPW<!6Bv5e@4?w6(V@YJ|B4 zYfm`gFdUs@0||cQM;HxKk%k#ewrun>6X)II=JwEC2@I<lEn6|Gp+?$tOUhy-p_<K3 zi1u3}579_LIN}tICg{yaqXv8!%ub0R$FcXpJS5mD*2%3jO^Evf1)lh=Terf?FTDh7 zR;@gyUSNVfgKQqjDTZMus8O<+T>_meEHV*~A_}1!3{_9niEHFgfm(Ea2<l;Xw_co^ znd|6mg{!Z=0!GJCds_of%_}%o!Pg-A?}J~1(a}-$!tCqqgUjB0IlS#{Z&Q(WjIOgr z-Gq5PAB*l;6!rGts;jPqFMa9DuyQ3m`^^yt)}yokI>DAP==)nE9Eopmm0{m$Gpebj z5HV>nTTKRms-U`LNiTGCbR5q2(_xN8A9ZcD<QGl05uayo)@iOUj4pHJnH*O*h#m>T zH7O1$F9n?Ks5)JD989M4OiEa#khcy?<3E`F6gZ7U-5|$S)zok<M~@beEQhvf5@>E4 zk1X)M^1IHAj3-HS^h`z~D=)%QR7-y!9b6u)qAIOMC&D^bkz_`Q`vL{)kMF$m7m&;5 zR3er@V1n)1_$AK6;s`Dp!45I;s2MMB`aKg7upVAYGmj22q-*z#^{Bu7RNAYcb3|KP z3$%5#LA_o9FV#rK1dAOG)KKo?&~;KNm*7noU!vSc-hAa-pnqTh^7$N`bIv)|Qj1mg za-hTxkIQ-IoeOV!+goAt<}Fdw9V-xzkB>VO6LaBxX{;!UsQVTfH}8Fl>^V^atG%oq zokQ?*g>z;ilBVQzR2f-y$ol)$=X$+<Fi7g&tiz6*9$pH+H-y-xonfwITtd=hxdzdB z!uA>y9}?QfeuQBw;_El0AXaOQcG~i5CaK!lg%UKw{7rT7MYV_`sR(xzL*g5%zv(@r zBGFL;m=XJy`~@tZboC+JxEZ8kX?PR@4@)nZ0~awZyis+P_gib<%}9Mnwxdo=tiup3 z6VmaBz=y{y92vlU)u+bP)!U9bIssRR`vL{}5<mC+3u^dSbijf*e4nesX<IkbB`XL_ zy&_LD$vaDC^mk#wIrUqYJSXW569Tf7Q!jNtl}gq1Llj9HM(o*6Qm`0-Bn|@!IB+vL zF#*MyDQL;1p?B5sP_6~a^#$cGJxh8LJBu=MXd&@n;4xaVWC?ucGry~xb+8)i4L95f z<#GuVcmwW4+xaSXgq`0R_#1h@F?1hx=FR7Z6+w(T=jpUk;Kri)j<S5k#MHCTJy$vY zgxdD~Jh2vEop&9vknjO-Y(FsXvY`n;#KVl|@!o86K0@BGDgC{r<!&JO#{HHMp>NQE zb6#b`>P*eHdJ}{sJX{$vcn*x~bW}s8Vy=$rhd2%5l#u!cNyo;P$Z*g<N#<g<A8&%F z<7Dk-lx7v_&3RcPPb})%=m>nM#0h&V`h2kCB`2VoqXGP0<x^su2g`lNT%8d21&Z5m z|0!L?@}d(YK)XgX7BLDV8b$#XN-{HF^0b`oO=}ihiAU=ALCnc(uImKpbSBK;HzE+| zG~w9MK*7Qu`NLcrEP903(D?WWoOI%e(BIb&>0Ayb=SVWK`t0+dYe^qmc+rK{@(78n z@4sZGv$GQ}zx*<I_0`v4)21y@EY7L~)l3GX=Ip(0TSF3vz%=VDHIBYv0;*0<=W5GH z`f22i$OkSrJv-yJ6j~sg$*KT?D&@NGFbHH*K7AlEkc0?x!{<2D+f!70zU^=nd%krg z$y=Df#Utm<KAUH`StMUuve?^h*f+BP5l7N>=S~H4BK~b}G>Ss2mjf0E4LPm7dL2-< z)*nseMks>Ie&#{w_ii1UFi@py6yR*37kjiE&Vw;0nxrD{(f(@rm{9=LI-d5aqXy7W zK{y(rGg3qMN0+wiVpC|q+CIfRP+(l^(Yf()c)`jG<B<cA$}BkGiG2E*XW->mUV}_7 zE1CL&c}bNWbs&PIA4=L8!qmK)wpgYHo*v>_10QPHqo@S`=4T=LI42Q<x?hESp&k4> zet#Gbir|2N=Xb6+2kBf!B}R6%wL!I3RYi^7`ObI1>}(M(xZr#k8XSZ|O95u)s&MO1 zAA#Yq379UHpsh@mb&<yz?@Pgcf}j0J;IF*$3i$fh|4HQskaWhhZZ$_U=$>Ua8SZei zqm<Uz>hr_;U{w`0Z6>qwGsBb)_>jqDoq?gH{CR&*bZogsPT7P&M=UT#>Vo}@X2;3< zyfB%leGEhKwk?5(?+<^UMB2@LhzMPRg`nB~a5?K3gwhT>+HSO`+5Q^#iz)&W5@&K= z;iONVGuntb;uBTqwbseWm%N+y@QtA`F%B`rl0O@c1D}F~Xm#imLnFrkn6!%TFm-?M z+pfta!TNaXxJFz(KHb%>H~}j2dEaBsH^zC=mxu0HnLh7a^iW)77923C>%j*fQZG)_ zG)lx>kO=aNjfUIkhR09*ux0Od(z0u*i}~WV{cg2;j2W5Np6@gdsNwNSr3!c5{jhqG z$FER~(4Kkb8F0edH83-cWKN_rM;kD*ijE*-W8=!n1wGWaY}o>@d)--zte<eg3Gn1& zkHLH1{cd>c+uoL#NLsEHVQgd<RLWIwGpS?oJRhj^qS^WyBB-lYtyE@n?DRtSH0g&M zWpZW*9*m?`EUuPh39DUYI1!dfqxr1h=Li<V+C$sb=J(?JW|8m2<xMm2d5+(nzK=() zEyA79)@Ji3M)BkFus9*79kJZEY$7{<CnBjWW=A24NXL(}O(0pMZpkUb_A7T5OUA+9 zhwd$`kYO1K)*9vOLq)iwjfA^tZo>$STb$iYcy$`X_HiB*&0utTqGK2C7aErumko~~ z*oRSjr$-$F;{_OvM?^`bv1Oz7FlqOFPKsrHe8c%ve{(@Z`kOY-F*RJT5cdTHJZn34 z?1Tp%cnFp*9g-ntK~vy!!uNfL0$yAVm0z%I0m-_{a2eyFh=g2MN2E12+Q*S?Bx!1+ zto`W4Ua4Y4z402w*&coLae$x>C!Kf_OwVAYN9lkbZs0jY?|dZaErq=Lo2uK^Rk`}* z%a*~=vgL5=t>1<V&N~l2^x+S|MHgMDf(C2WtbrGve;!Ub^;Bz}9Jxh}Gj`CDq*})i z_UodyWGbfIIGIGM&ksKIFr;&N$QKGqF2m$US1M(4Vs_-|UZs1T=CL*LgnGRi5_&h1 z%5Vf<TgPgmf|2=zeTf31I`OaZ@Pv_D-o-efHHzoxWJ6kxy|N>MY_2?h+!8wx3540) z57T1MoQJ>SeTvp;MthT@!Lb9~&^9x8Z??mTen(Pjb~|b8=tN1Dk+PgQaP0gTnsbUO zb5KWRGO$ciEf-x&D1)*_W7XPK1U))D=IB}&nhxX7(I~Bs^z-3TQGDa_=MF+_1lMWS z0pw1Ej>x;=aqtcPt&e>y@itnomfYwzYRL+1$Gn!vs~!KP!-O-a&aR^S{Qe{&uU3iv z>`}*;r8{_E@~SN@QMB(u+!qM=2K&)%w?RioyNZAb1kK>6f(@Y%FVZR6_K)22XDvLx zgt1CvynsuzUL(rJ?<n+%&t}u%9Q?4Sh=CdD(;#C1^wZD7rp?>n)KgA@p`}AmnwvS4 zheQy=wr$&BsDA(k1_ofu=1s6{*>ZJWy1F{m_y6HHegl@TSfOMv%a$#J!NI|3S-e)5 zv@h@gLQ;e`{{5loRW?M;n{1ogHZOX*yP+kYgGr@pConPBtB8m*O^G_%*zq>MOKKXe z!*r0*&lK`^=MKGD!PZ=fAs1=3Z+jELwgv+d&f9zuX>PSeUNz~mw%f2^lkXa~&(Up@ zA)4Fas-FqRf|{X=3pH%dlzy8Dp@v0a^xGh!EM<)4OzL1w<9eevMVM$wLFFjGY>dWQ z&BX9}Sh^@0VK94QYDHwI!V8*qi2SbNa}lMP&J$@5j0W(&>-~!MGbGwbp}FmmEXO=% z)^XDEGTmR|L5gt1nq)V8Z}B(-&xhYfo-=A{=o&*6&6$!L$J3O@sFh*yCA-7oh^x#( z!iz7y2<z9s1i4&RMYIHhX7GLA#iSTrjD;VNjcyZ|P+F~4qGd7iigs?SflZRhXnQys zM#pvN={ho!Eaf8acZ>#Z-@XH;rl#Q1OD~0%d>$strDIP}aR?DV{&=oXZZ}sf!W%ET z2;TR;_rk>&UkqRR(wE@!%P&{w{*+Trf!5a6i1eL%?zxEseSs5pMp9%p@%tEWI4Ijq zitt+J%nDdG$LiIqA(g_MC+;{$k>0TFx@szEdbP*9Ns6@W#ok#W_j*Kyt_^gQ;tqis ztq$fRhs}<+5nGKS*l|J|KYnKMnkW%5A(7J{%U0835%*|)7NIvIo#y%tg5IoiLI=Yj zVF?|Kc{>CN$E{h1r<uIQ3fROn<VN07QuAy%Rcs8x=m^s1knM6r+6++}z9|m<A8Jz? zJ107t9kx7LT@zWbV@JGo2bIqdwN3As?jY#vL3dmtB|10T>{vvBsi=b#e!&Zv0~ujz zX>@DoJXGBfeNGybUeSKpmm3`$A?^zZx83$*m@CdgA(xXXse<`|#N7{&yob6}N<!sG zxk;+23L=%8*H&`08hSDFDk&n*FLl<w@(?La<Kiz)jkeRgiK&zeZEdZ}KJf0le+d_y zcMi0+l4OJ1MML?=wA^B^!MO&-auHIsluA@Amn({>tM5<(Gc^fkoN*>xc)|JbhV#yg zmi_E!KijarMMBKyLnI|2*cWTWtYX)&d953f&3U$wyn#LBCxt!ZglP$XS1RQool2{F zMq9PoZDu_&-cC9~-axFAG{aGQjVPxzUCU)6D_Z`J2~|8Y9d4?D2pjvSXE&qaVbDN} zEh23)Z%;>CL)UB$3mc?W(W;P8MG;N29ntv;_aO?o#)$HK9g)~BMMTUb&++RcnjSkR z3CXO+(1SsO4Kf@_&}mWM)VLedbuAAY@#%JdAR_FBP@E(w0a_(;ZY9T(nZv8u!pTvm zij!Rp?GFp!t)m)-@`I4|^Sek}+eG_kUpHZgDmt&UsLs_0Cq|^5J8|*#;d<Ch-n{o& zUt^APFr}wtSbJUi8KQOT`lv?tm&5KdG|;8@SBU!p0G_O;pMD0Od*MZBYwv*S;(wtE z4it4CpP*61-Fzr>M2;s_D&^4PjpQ*&bpe==8zZVAh$N8p91?x}tftNGT|)ykf>bJ% z;o(OfgO=8o$Sni6S1DJZe{cYLRH^&D2t6L7z;ib?HU=H-?Qr~Y$HPo<2F^O`EEPq+ z<>p&p=gytb-qr^1yY_vm1U**PJx0j+Jc#tZdp&p3<UK8>{-qK6XeE0f?eniI{F_Nt zy<QJ6Ir!p>FMwyBeKN{hA#!d@XGoV$tHIwCK{p9ZqirAYr@B>qM(4}u5xgkLeg4QO z|IPbjlKk*@D7bGDf#f#vK591)J!?eJNF>~hoJMkvcw1s}mPq~*erJ;Qc*NJ*$9W_% z4clxo!eDl8V#m$uJT*C{W;DGKTAHE{Xe5oXBG}YlF=aL6e}Fw-eqrDt(z<f9x5Wdu z)D=yV5E-2`<06c9Dy*VPmgqsW(j*B@v?(LXuJ<L}OJl^Db^2NYWOh8GW<)u+#(^dw zx=vsXM{I0U2ezM#UwaA7)^Ymi7$a%7Mr=sV+T?r+jv`<(*e~z?CDbcbD)}oGkb*q` zEtUh{_b8HN4<T|S0UsRN>zSSlERQi0QB6?bf?wEF8k&eYKm7P58O+$jmd%0lp%X=| zUW2jm@#v)yehZs7ZH9a<4@3R^Q1xp~9@NJ!FyCe8h7IthH@yiiyzm0J^2#f%@BiQr z|Da)+V~DUPNeh}quan46vw0Xvk>vRL<86tz$JvX|(YE454*$lE+lrMd=<bZF9^0b> ztgF?ZBkgl2ox#s;lOcW64wjmtqxRY!wsAKT?FP+t8zj`0aaae=*cT)6Z`csV$si?9 zy7pxAdzQsCG&-T3hGts9S|%0^H_3lP2Q3yMZnz$dB+Pl+W30<OmeDHg{sTM2=z)j$ z`H!|iRX&wM+dkIe*OmgtV6vt|O2~908gDXE${~(Us@ACMZBlY;pw#k!jw<0c{8(p& z5g+~03B2l^WK?-gJTGCSUo9QY6Rj`&N1tO#978T1c0!V#3ud?1ynUm{e>Czy!wQil zJnpsGaZ;lf%2h^pD)5jAaX-p|Cv5xn?eNR{?o|n5INZGtK_bDi3I{yLaXfl3o31i? zm|WYy+0{@v0nLoWFd4vguzUrha6B)%&!|X1%A-e{<CeTspgg<x7OtCybi$4xp<lml z9c0pJ7#Qq_a;Xf9(RvYe#JOCem0qGG1|#fkt!;4fNhiW5f9F$h(M1=j$a}(z%=&x` zz$CtL;>}<hXf9(SisNc7WgojHnqtd3E+PrO6}q(A)I<aAB&>_X-*%}*$MZa=R4N5` z-ucU*y|vw$o}4ta>N<)|KO8mnEjw52z|%d?9dP4dhLSklESiTUGVy1Nr9KK5N+Rw0 zb97kZ5p6!qs!3*IpGn@eTET3ymV{Uu>;^L3oYckVjqigFR3zV1P2@(+I%#~7@wzRI zO*2?>4Leygnr62}M{;fQXdR5GLlhpza9u3t=5|M<J|x~DxeXVM^?vQJv9+&SLKDeE zl<^EL?uUQJmvz*F*735=Q=`ns+AiByhWA+f+9Wa^xx<*UnNUe%3=EJrjP5KMyRIB& zxPudOuZcReYMv<SPhAPKP*l{}Vh?>G?ng2Bru*)9zYCom9Z;`{lZ;^R5CllteI)PU z6OYI?N?Dlr*`$ti@Qk>Yl_P6OiKnD#N1097NuXy>73V(iv7rFcsT9<L8a(&>bKrW8 zs>)ee1mvBM@y3lC;jFXHgmSqCqobp+bYO7aj703bBhf$p_~YT@pZGXjbm4_6nY39X z{TLzZ78(gl(gBV5O~ZG*n4-7#@oRQ4Ev9Mw9jkt5^b{g{L;YPmxiWz`#y@kFMVOqJ z;TL<@nQqo$<85kEZ_i7G+cfyT*T*KVqbG+9Z8Mv6d`xl`iwZ}HfJytw@pN27t0#!( zHjB{Hcf5c4G1t(cnkPEm?0dT-4EqF=;Kk2%WBcb_k9q#B=dszwq)v)%L%f4#<{P+S zCs8k_Kj>h)J`DO|pt%}C^WkLPmeHzc8v9SuCc>*Cu#_r>EGlTcFJqlz^L?htcereH z40z1OYzuB0`?Q?%Z0tWB^XMR}iwiv_<HTQI+~$~&bsYHoh11!!hm2^Va#mE}$~vDC zaX;Ge%rnoztFLZ=Oge*?(vfbCV4)yzRm9zluE*a6@u)h&)~xDh5e3{hipSGQX2a{D z>Aregx{h0?$jQMWjTmjmq}Au1eGc3+Tt(jJN^`JKft{#{iAm+C^T7{(0N(SScf;=8 zBXIZKcfr$-KLLFM{os1q`2&Gu2@`q8M#tdY?|C=8`@QeAzB`7|Y`8l9GPhv9u#-L~ zthd?49FL;&yg`$;nDfM^Mb0E<bj~0g*0yjuYTU6H-`n4QW$@Tz4=F_fMaVfY&suj{ zlpJF0`VD3$-X!D*wyk5~10N%HsWCh9VRW$JMU^1$F{d}ke+*(umEuAI?z$As)DeDL zUc<*H!6MN37?+Yn38M`Waf1}|d9V^!6ZWy$wGnN1zF@jZxJ|iYY<|<*o1^FW8Pkq~ z=If{CTL(fPtA>5nWHTJIP!u#e9Z_;{c;p-I!SKopZ!FTctDq5WRgY$cI&vDF)yc$B z7m$mH5^s0R_Ve+K@1@y6GtO)Hr>RM&+q5ANZsfa0k$2|RvD0sMp!Iz~i<(h(yI7T( zTM!AP%*%x(^mOndyB@V}A?`;rFiG#nKfWEtCnll4zdsyp6$thWCkVVCAc-fr$#5k_ zCgra3Tjpnp`J0Eo&8QrcbS4C}j>sAd>UAu(WF)q^E)6~&L_(R$WT958!ZXi453f7Z zg*L;oaG?O(J3BKAyLat|cfR8qIP<JC;q=o_SKkc{Eme{C=bn8Qe)hAU!S0>AV0d^K zDzz%qYc=TX?0~b+Itwnn>~c8i<dYhrY{wc5^2d$~iIM6UbVx5o>Wy5ua9ts9-~d?k zBG*l5(pfO))1@F|Qk}SRz#wFCVsDaKe$$6RL%r^bvUD{gb0m+69V_GB*40%>GRL(X z8uin3uXCci9)aWgo+?7x$*&2=-ID2OLdwJ`R3sZjId*;&0n@UD(2CJMvJD%L%TF4w z4IUMVHMl_wZJf;Jq`E<x7MEHXzoV8Xjc~^2HydoM--uzWV;PGbhZa0qpC9SIjpR)= zBOi0K4-+2qaC&t1<575ylSd~oijjx*?<}&x`I-8MM@3gujW|3_3~OqIn`yKdZ78)G zlVza{MicLb`dOhwMeSF(E<K`bkHq1^Nw>Bwb7N8;2Ft>BkjqZkgW--)q-!^fBf^y% zzVM;fJ-1W!ZNiR_5ci`LctO1I!i(_alTShKk{$@63YG%FUVt95>Oo48G5tcIh#Sde zxRkl?;|o|PraBH<F`C2Ux>}-+Ch(BFa<&N9PY*!crb@>+$cd!sOa^Mz8a(&nI#{u6 zshSqobsvogBcrf&>rUnRa^Zy+!L{#yfB3EW!gk@b(@%#JPdW)+TE8A{y7^|v=5p%g z_x|@^3v1V|jXEnw`#v8+SZ`5-a5Rg0Cq}`!uWEc3tul-#CJ8ajsb-kYjO1F=6P9b( zhk5qX&~jVzS`p<CzIwMugt4(IvKbjSN7blfPb44nRqT--YPy-QNZX~|qV=$J#w3r% zK}#T^c2w7%FMdocDFacUCWmZZ>5COr*4yLL6m|YAd&v1Vlhjd&eQ)hof<%b^h;;~> zMefaLa&pu^BAfAjkLKswCEiA!RUZ&b_7qZ5jF+=)GO|UC7Bo(kUUj&e(O8Uei>NW# z=q`=Cd_w(77-A<uxpn*;-5a8n>7x<5&-93jVF1Is6m~`|bx*WR*uf9)!RR`T?q_?n z$liJVOhOAzn#M6K9bbs<BOE0QM-PmX9TIwWgTnumIaS~YaX%V?XBsuEciwp?6bd;N z89jzy(t`bfT`@8F#f?NVdQe2)nGpw)YA^}F1U8P^+r(Ty;K^bxfNHfKptR*sT(`K% zO1TOzta}Oaxg4~#v_M-+3mlEW{YQCAsWb-z1O4!U4}1_Vx#UeyD3B&y`!0a>8LQEr zdfI95XMgr*4eLC{Wibfz4Vy%-xw{$8V{vDbD#i&A(?U+R<Jh0NE!4_lS!kxjBY{vg zgm(Fly|5SL{fkB98uh&qDGZcO4fVERzDhhXnd>bOFXQ{z9JQip<UkT%&Mex*5*bcX z*UyTE9%V?$$gw6#u4hND8=pt~SwGA4fgnjk^NvEY)|=<iqc6tSA;~kM$$CV`jG#y7 zBuU;9PUpJy<~~IcaNe#NHBQKhu(rkDGdGOs?c>Rh@zE&$&a%2R+ZLV!)`~<2fEQze zX|zvUrKkg{-yR%I4)q?9#3UR8;u|w!=oDw>znQe#BOB_+;gUsK;S`4Z%?@sKJ<)vn z+K-=4J&h7Q(2Jh;!nnV~OOARW@lh4i``tcYkx8WC45LT%qS2!;$Bc7S=weW*2JsOP zbuNUsAEns5c?&%F;KS-=&(TbQVBf$mSu?VxA6Q!ULUXgj1V!O(ouiJ#M-Ri$U8XU~ zOHbpUg9~m?E}K<Fqh5XWH8}ai6O>PRsd{uIt>P%a)YLRU;KQ<I%i&$`dMBK7&e_n{ z*Oy4x<7g!GaI7LBB0g_~Iw|62MiC7Hqm>Gc<ejYX%sDv{n-ocnwX30hO~{zFjwH*( zCK1Nuh_bS;aDBReJ!>AiSGl+vyUkF|27C;dqd0tjGjKV&r?td|+CbG)xjpoo520Q> z7VwR%2}5_9kjN(KwxbB98U2mviyBCK1JRCs!TV`GoFXzE9~m&ocEYHE6)6wDi?$!X zHX4H`99V6f&y47r9XjK@#5;9-rJC1&^tZ9Ub}!bH92pVp@ER~ly6qbuhPh*6aK&kv zk{cDFA~B6=*d8_ruZHN(G#pr{P+<K0azxv)3OJc<H}*MxAJLMA^e0+jV-?jXA=Q{S zx@3$_y4JDVgKgY#()}wtYR_W;;r6s-Ch9ze3BRmy=RH^J5#oN7fiJ@Ee)oHj&*y}+ z3l0cLdP^qP;Z%c=>z56acT=xQ`d56}+S{;o=B{BcM^U*$iEI{&H<e)h%P+$jr=13w zYzBh*k&Q@ut_#Dvhhb=N0Is;=&G7M$e-zS~T)r2C{a6KGLrq2#EP|CVJ@#2gW|cZs zTiPWNev`oPa$1*aacWHrVzQWMT}HxO{Mt|2zCA;NkTxNj-~1jARB22lgKd<k>5jBc zRHe>(xE-sr&YgJXdwO5^Z#+-hzg_3M_#w4O-bdP&KF55lS>nO{lkmH6|3dl_^QAYA zzjaN_(?M$TFmmQQC-b=B#MWXb*hc5kymsu75_?(W`=pT;vrT4O75hx+;Ki3S+N8N{ zLT5Mpn++j33Dq23;uw0;ktF-|kc+Ax+nLGgGl#@pMV2{m&LVH7=SHi@<i)X#o+4%( z^V7Ggu^NYpueb18RvL6OiPc=5+svIv-Yy@T$YCcuAZFsSbq^SQJwCSKF}1E2KGqRI z=j|Amf?BT-_oEPxJ@y!^U%y^SWVrmhK(H@B0>oNXGwH_j=uxVpJ~}E-Fz45{aQwLD z^|9`ieW96n(M#WL7$!cH$mMb{S1PNd)zi;71zHOQINYF4jt}KZ873x5uwun>_?_ST z-6+CtlOI9+*gg8xi*V*C$3rHQcKoon=<41jPcvWRG3W>w^H5$kMo{8G{3z<FtF7Br zGs6{{5l_=8!jKq5(L88Ubu%6TO>$F-NAnY-`0?m1%|Y3RNS%!PFxn0CemA4)cxYAq z1*4#nvHi$8md_P!*DlniqN8-yEV+U{gywU`l#@_fco)oj#3h+PG|6mp{9Z~NfryO+ z#*S$-Ns1Y<=WD~9$#ngRIvX)!pVYZz@)z1uDrrVEmSZk&Tyqu~)uR(e%4m4K#;z+~ zPmIV$d%*dQ)^%uJ*I`QyR~cG_olQt<t<MP)%SgszbQN_fW*7!{QO||H_+E+fzg3uB z1){?vuMfBi<>Op#(m8J&c_7J)9_irf!0K9!h<|uKLYa&?S`m&A=<7AC6wCL0biZ2H z6n8L<!|#|@seBpgD?0jY-T6+KL=b+~;-K)932{HlfYHOB{`6-sJUjw}gM(153UL?g zJ4|h$sae$yGit6#w`xY?8&w1J;M3%sBKD+rHy_;L1BxDqhb^>>+stM%Fjp$Vv(LT& z=bUxAif|t;qKwC7e0&_*I@(}K&l0%m>Z{<i(@s-5b&0Sy0$<#AbzFc49(x9Ua@T$E zKR)vt0bgg8Y7M=V)isF3lHr@C<9fv1_-wexS<yKa88)MJ@o3|G(<4G|$`ukM2o1Yy zhTF{PNm2WxYqnXGw}HHZg9oN&<fKNc)}+_=S~n#wW>h`C9h83A?a=Nq9C43#4)nV0 zQ9nH;+4J4#keFn*+3_(+t`*uecSMsWW9u<e8;^=NXjozq^@fg<ogf|YF>@LZpqLTW z__2-=(rA0J!dtwLyiBZfYAtKD-w#{fc)9X=baUDDgwF!WV^o@?BC#x=G1kTHwvL;1 zM6eoaxI<CsUd7Q3!8+d*=Ey@N&k3U5MPld8-2aGN^VapM_+E%w8+qo$FWT@K&V^su zrzxg$vPSHpXAMs`M+lm1$Lxq1r!VZ-gwHLWM~M4T1UzA{y|w|Kdg>`yy?WKLtZNk< zAW*7OtyYX-ZHhLK_SM#=Yr-Da!|V5e`S9bY9R21k>d1#$KR^w&i+gf^IA{n0$YnB6 zDi-0zbuX#WD*QRrs8*}6dGltt;KB>w4d<N)mt1nO(Ig@5Nf@7)hG$>i0QpQBils8V z>D<$yzq_;Jmk&MG`^B$(v-R{7R;SbHRPe-e>#O}e9iyw44{g2p{Bz-<$DW4Qop}m& z(gK6LCq&d65RY2VN3@fY9b*I_aovgQjZ4*Zbgdyu+oU;>T4Rs%BdM_+hnVMahaIPp zixkUY5G;$K`Ai+V?zH2wEMv0e9`^I0@tU_s^pwj+M0y*KQ%HoPBtYY9F22bV8qCTQ zs*>skM58bbp5IAi-x_U+5oe2&nwyWUBh)2FQjL&@a<rbWDKlyvbsU<t!<=S~=*-hr z`$DkW8%^gvlHGaJiK@C`YA7{)IdC+(VVx1pj{@$TC%`Aq=(On(4%Ww$P+oU5t^KqR z>*N?C5(eQnIwAz~K8pGW)~VyqMlfA>BvF>%=nBLgV<)*&5FU}J-(iidMZqu5_23aL zZfCrsC&c|I0S~p`cmMscdi5GL{D0U;k6_UOqrG!;C1V(yesg3@4R?kwY<7x4@K7HS z0Q&{4BL`-5o_=_EU6BE@uBs7jKfKp)HkX0PsVQ|Y<?=Z-?O;oG@Yqx<RhXHcf!^L; z_{fJp1m|CH9$Taxwn+a%0-lddCawP7xNRr=)&IL0PFUW5$q(*+@VzIVaQq45Ba>^2 zmEz#f{_nTiW{1ZBQXcdV^gw4JKiuElxv{_NhF5c$%umif>y%sHe&wa*wa2Xv5~A<( zk@qOFXAIo)G7u~2o<xwEp4X(v`8>;5q$2)z0+Ed7Nr>=9%OGlg&9By~bx$ReYW+Fy zo0hq-WPqaPG$KdqG?$}!s2Q4=G~P>0IvR<R-9D3$bH_p_rP@)+<W5T5($L(59i=o+ zLG1g6NW5{~m<wA{n%MHze#Y}3^!M@Vb5Z}2DOt1%WBF)@64psQ03-4rmue)Cbn}=g z1xA>s#08Xi9%B>MVo}m1`=juXm6<22+YnBqGaB1@GHX(M>znr*r)fqbBXphE2Qabl zRS@gDMJFlt(6_H6D}N(Q{<Ixw?B${a>`3DtyEZ}s&)1edW#LFxR5%HDkKVCS4uP7B zwe9?lHElh^XuA=S2S<qeQ3Q;(Kl|JZs?bW4_kcjKcQD4w^)pOIzjOqSzz+=1!|%}- z-5$m@qjEGq>t3nD$w|}(=cpcu>zDSyQ$Lk*1!ktFmFE3m6>7p`uxr;YNToCI>CgNg zoN~&k(AL%#Zd)SkNx<u5u(uo1F0}sJFCISkYq$LPJ<o64an)0=ZCkrz*Qm4ciRS?_ z4md42Skm4BONN#}-SO+SQrX)wHr~7bh4sA<_~)LucFhMLd*+4DZ`!i$>%aD^@4fMi z(@xpsx~>_0Pl}{l3R}%c5~G?;qww=Z*7vrf79-^i+cUKFMmx>J*hnnm`@oz|iw?NH zf*C=lfGNx9;=9ecEll#Llh5SdOg%Ld|HyqN?7$lm3Xa@1k}mE`(Ke%l5XoBjZZbHm zbv$CnCf-3e$(5y`XmSi2J~vq=-eU;QOGK+I=NI0-oi`b2m!p1M()P{v>qxdu7-P8> z=JG~|RBPh(@rYu;#x~4Ky>_1kmnLN-yQm})U41K=H=6!CWb=COS$Pw6oYeX`NTk&< zkwhkToSfL_rpGYW5j0Llq+91>VCdR)F*4mTq1`cxSD85o#{J7qMAQi}I^GR#LHIg0 za&p*f#y+6BXQQ?)#QiA3Z9lmk>UCcwr0(6TKp<!WPVg~?m!s!kESZ!aR5Xd6C*<#} zpNn?l8cSs;p^Xw=b;OS5cdKS3???c*Un!SibZks{y&nj9SBa;kGK?2z;r#Q@gLBS3 z7fw6%H1(Yjb`2&i=&X~=W+0bILnf8#ed@*6e&d-}H(mSqQ!l;_N@ak06<WGdaMjss zpE&)!mp**_nq{x{^>uCT?OrmPNv9?Q$Ej4Swa&4L$-#B6Y&hwu=U%$tp~s%Sdc0U( z^RM5z{V#s_^Sl1&H$VKIKl}Yp{?^~5Q)$x&8-JS@U34R`pEIion(Tt11kjesW+-w` z(w2k>ulZ7sj#Es}94A}xXm1p$k7=zf;^2B-M2q6rJ4e{*UgxMf#GGbWDq|9Q>Iks? zEBPhps4MlGXkC~PuU-GB+4g=W9XGa(q0<sFMcz4ciTOrUj8OsoIo>fd5=*0~ws{WB z(E-y|vdOkhLKb@eo01)aNn1^Etaikr<z|s3^Sk)xBzwtF+QQkVmYq%10n!$ZhP7B& zd`chw7;BH6Fk7dscP>ikjhc$JLydjZl~hCT_xO6F6COsH)Iafi$Jx_+#dscA_pKTE z4(ANd1zjGzSz|=VJd2j4qaI;3^Dv@oAd(nqBL_VV+YkoOq7DYHi|#ce;Wtc*rCts- zScv;k06b|=Kl2Q{_Ufxp$Y<%{ClDL}g1Q5NPgUFKg-XwUjEWhWz3>H&FJyjU+n&x0 z*10kv;Po;QGVT1-I$fw8WQEFpA(ctN%*-@w-L@5uTXUS+|Jq*OU${@$i5?ppgRYJ) zIO}z1!X=kn0w<k(vie>Kd*kscSF4aslO*QV&D%SlShwM~U)nzM8;?Ey+-mS^(6^)j zC!Vn6(O<ph&EI+9r5Epi-DxL3`RkwfL~*|Lz7rEw=jPzq7uKEsqo3dX@gM%=?%#T4 z>-LT>{N308*XGUJPx-<h|NbX?dX~%?k=14-i`lqIrdh`u5i~6&q2-t$8!L+bGzbfm zsfb|5mazzAY(8VVwhwpARU{&8Nzq2n^L*EFRRJb*bd9#7$$`H2b;5brgouQgPBMJo zGx6t+zV7fVKlbR5TfHVLc%aFClwKH<U6_1K)2Wyro}q^~(WFCVMavT;I1RMaoSw98 zgP2ET+154ds5>uea(~k)$2iZ4QX}J<WI2&3m5E(Hkz~W#S@tLouYo9-9m-UU{WkUS zYR~u}L@tcRcC2Asv#$}BK1J^`vVbvq0vvgd_9N`SSeH(ypfdJ5>d^3hIo5H}?J)dT z;^#JYKBEy5Q^(FGmh72hI!zhd)lK6LlP39;L>kJ+!fS@liITmTBVyby3UfF(FT!qk zc)vuQ7yLtr`%!>mu?P=5@G#8I%t1?Ei{+gy5bPJ+D7D3isz(|^`X+h->+hRI6Sa=j zN<4}jYwYKzdgf!<)OiA%hY10wB-M$DaoDtJ6CA(xcu2W>e(a&tX2*^luwvy3IP=Ui z;QjBv7LGgac%xGzq}>EtH{ux|o1Du0{q;Zk)mwi4z+Y?}nH(x_+ze|^81h@4xnI2H zqO<<;Pyfqj?#Z@x)T*@#)T&X!V^S1Nz3uRrXY%>roO53H5dK_!`NiM*yRZD~mw$fm zW9MFf%TIo7Y-D`(Uw+|_u3oWxc^M6%6C$nrO6TbYp^4C}n>k<iQx|Es-DCL6{TXqx z?EhlRn{6=(zCx{53+nZH=*kn!t8wS{nQf(jkxd%;P~!c-iL1PMEu~?yA8x}UgYo^h zlTwoqJ)@$ybt17&K6rcfS)Xs&*frA-5l`3`P0GS2qd};3XH64$D~4;0<Ron)p`#HW zsc{;=H+R84#~Lab$?yp0wnrleQPH9B-*6|*$g~ylw>qZg4sm!pYEkqKF?z<j;}(8{ ze>nIWQ&y0ir)BJ`W1R?I4d3kvqgcjyi9H@D5EX5kyAPJs%aq+f5L!Gk;STRpJ$?{7 zN5=NUqaT_>gzr<MQ_*<h!gX8HCL!)e7<e|eZ{Gp;-S+@2T{;BSnnc?L2M)*g9pw@n zMh^KIZzhuQ!$Jo{jHsDyVHJ78N9*UuYoG{2q;Y3?j00{Rr8M)5Y#%mYQ*+q@jE;_j z<Gu#R9e*6SUUS(D?$7oeJK%~du7J0_{jG4p1s6o$31PRv9htdOIr!n-kHXaS?A2fY z;oYBm<ms2+2$eZ#^UCnCU%B{eZ#Z?$jc<6vId{*_l_A^Op_WOfGLTN;rCR5Tk0v7O zhJ=w{)~IPe{|)Ed|4*l#{HA~S>NmgmfByB>-~I93k6fDhi!c5B3xE9k?^wBV^`sfB zvLk{<ERA27VU&yA2gCcptQSKm-8vd>kp>+FQwe`jHN=ESuE||Y62!6PsB(O>V{OVg zOj!tT$Md`(l}ZIP`fh)R!5|*VWot(w0r=Z*Xkw!WJT1p02AAWgJjy%S8kXkf`VS3U zj<%vnnju->&V{+ZJiXCTCuv%<j?+95`gqhjDY?};=Js-a!~Vo1K}OV+kDC>hvo>tB zcfOIMXkW~zvUyBGNk+^w-abAo=P*fXNY+CW7;|((C-j=fjOn-z=4hFaLDkVsUDqXz z!p9NuCx)(6-g^9k4vyL4xK*VEYZM{|ZnvpxH@~B<K}5WHfPv4Sem^GEc?eT=dFaAU zHHcrQCeaU#b|Ou^?^6P+(cW;Iy8EL?(Ih$bh=Ly|Kf3M5(ACur^?LP4H%YKafVxxm zoYJ)%=$V0<bS;^&wV|wkw_n_*?#?c8PTQ(m@-EsYX2nG>u%iOGTpC7p?^bO(`Q($q zOQj$P>m(>We5C^AQVH7HTH#&qd?$SPBOg)U30b!gg`to{<An8_cff0#x3_)e+du!C zXEyBo&9P0JA=To+6{ijS;xqr@+W-ERx4!lMsi`SwZ*N!2ha@lV#9{XwV~kG|P%1!B zC=|+n^qJrKy*fbge}Chq|MH!m-utH2%a;D#=l|rt{2HFiFk#hL-X_G%<v2{nqut@W z=C;lCG!QBMVrFYO>p0m5t|5XR5nF2??e#Vu|0GF;xk5@HBptgZza)1vqK0Z$u-}D; z)QI?nM2w=4=JBFu0@rS^zoU)|Esy;yyGc4B){v9vf2=}Idm8n#qs~o^gEifpH~yWu z-X>8}BBHTl9(H^hQWWSo&?uxC5HZMYNZ5>nlhCGc8|HQ!tSrO!njOW6SkeTV9^V&D za`idj73ed|=SoXtqF8=(lFSiUL+2gZJ>pWT3l|#FXdw(MzLj+heWL7BeLjqtE!7C; z9YDzanQq%19g|?2$2Qhsj#^^fu6%5CC!g0%$HCUUt2sl`uH~e5$2q+Ejh+j8v+MI1 ze^Hu2HM0{->lWgEgz@5w>tOx*mmr_Z9ZeiZu)q;klXi^(OZ|;{x%$@dx%m=|k)&uj zge|$zWM4mA*%5%U)Q+Z$8k?BOW?*=DH>6V@V4N5I?y>zlckG0fD_6kjr=Jd2UHum5 z>go=c5z-!mI-y9~CufRq*TYZ4gHOMF)m_iL^0&{tviX$q&K+>UX+vAy`NlK;>Nh_A ztN*vBZ$K@Cq}`OmG;*zo%Qy+sj1R=MeZTIwt{425-~Ipo>+r<%&{uEx-p8*0-tC{b z?9vOrdC8kD{zXI(Lry>y86$ofk||@TTTP(#n@NduEn5kpVJpoxal5UKNHm|VHEw=P z_i)Ueq=RBjQ>@xmJB8PEoK$gpnA9iT<E-IjM-6j7FtW}adt=|C=zY?z*yP8Ibef|U zG%2nsh<Dl=4oZ{haU@0O<KNBGQJQxnA?dQ@DUIvb`>6?9)Mrdur_Chy(2kfL<-E<c z+ZSC*Obd<3uI^9R$}*!OaMTfq$R%GqbjyVj_Hb!hIoUu`RzP%b7(F>XY(xKsuNdRF z*iCKNX?<K{BX2>13s9I~O8Xd6Yd$~NRgIFhc|VN~Qgj|^KN{R=xRYcI6X-ufsSGE= zhst-_{czVpxsrJ;=x3)8_alrS|M+$&&6S{~(6ZMLB7tC!z^IopFW}0l=Cx(YWXu<r z8U3;;6x+t>Xq;<B=gr8TTE8C#Q;xDr8rz)9=3&>aVU-4u%NJl89JuBk*TCz~IR}<4 zUmngWe(dvT*@Nx7$KdhjUxDkscjsrH+Bp2zJ2r2HY;_8*z2LZ8e&bi)@t;?&TD5It zd<u}bhlD-O77$4hYJS0*Uh6#6&qP5*zc8wfE-Ih><R^af;b+!g@ZbZFto_=*-1L_x z9JlICgF`DSz7obNIS2J1^<cc&b+D}65~6hBJQkUXbnVd$b`&laQ8i<OX5`%>50-Ct zljyr?ZD}H6RO;*~{ViF(GH?KbBk;Pe1MLzg053t%zNq6qpyVx{v>FcON1Tiq2CYv^ zW~{!IK2XLpMxSP*>T=vM#FU9NMA_rhtb<^z%jhtf$1+ZcBb%Y*$gH^x{fbBV<DD1! z+mt7Ug)PEWnOri~X~1vP&?sIXEDtk~)FEt$@S4|yc@B~gMu=lyn!y;}EZrlze-=tS z*e^ztR6~2?C{YmSTyi5_m4c#P4YY-5bCI0KB-u$`_6p%~i=S^R=pMhe^nJ`4eq6+o ziSalIpG%_?qg!k3r#0fnawk2?XGGKaZ@xCdX{x`?T{_YbQL(Y;nG+p*<GcuQKSID0 z@buHqs)&1s@@<#Mp5S02z^5{W6Jl{e1io~&(~PTL*!Y|<Z6X^U>1wz<T)Xwaqn7~v zCNF0U>K};$OnXGwoK!ju^;!+aC&u8~5Bw&)>s{}nujM|R-({!n!?Q1KfFIuZ@JWxp zy!9XNetE~6=U#gi&Ro^8`H%j?Z~Wo=-}{bRYnb;?_aPM}G+Nqj6Go&j_C*t7mb9L> zwwCe--+lFOZQD8ai=X`R(Ko#N{s-QF?fX~U;5s3Bp#EzRTCZ`GJzA%kSQksOV*=5v zO-ba)8m>>;KO+KXZZqjdF+-gpk)i2Ef?l*OWzyl&2m{`ycG7u7E}~r{!i_&+UWyS- z57(zaMVgqj#<kMK<}CX<LzZVA8)K9%I;1+Ez~XB$!f$opOsm7F4JO$)wi&;$;>+;$ zkmw-9$JmIPN40%yeY{C>?U4hsj}hOmBuS2aoGj96bsp@_h`pO}EqJqzPJE=HalVjU zI`}dP&#dCy;XdmKuyridy%yJ|>GMa#HLAO6k5(A_tAfz+DyXqGI*pxVefyf;==|Fz z&b&?zY?&htdYv(Q&ggcGb|_-qB-MAr0<iI8VvkyzKJU71#xo8jXPm2G?!Kb*LfnrK zW@l&Nm-pTWRTbgDVf&+u;0P8r0&oNM9wzT)JzPtVOZ^fyU#{BXt??mFku`FT&@XIl z2dOu#9?r;;jsjB|8@h@*HXjQqU2x$ALfR9_W{eOzE|e=(7@M9B{^6$E-}un;o4>Pe z>qvhvz7yX1hE+fP!lyp`A6|dqo3`Wp=1YY&>G5?MpOe}Udl^T6o6GRa-SNCs@V<Av z<*t8!;K|#5a>ur7esSLuA9>&VuD#K5Q`#KdChT^2(n#bpMvfwqoY0nL$In=2Q@0I^ zbeijLBxFh4hvtn&5eybg`ZygGHuF?)Zq7r|c`qDe)aBKg-1Eqq2^}Tp2D_?Yn~u2a zXnYKz4j^i~^#zkDcHGlnS=xW|cr>gd*6G?4ta&;5X%hD6Xcz?FB+m(}<XOT$l8CZe zV*`mcJ133D#wM=jdSmvWi4ppFh_1E0W&}Qb8$`Ded$8l>z)76(wuje1^wOaYG;!w8 zScmI}GGA4j!u}%)y^M85&jdaXx+A3!&4bX#iYM#iWENB95fO8p;W>+lJs+OX1;{*n zd=2m$m9`oFW8QBhqoLoiL8WMJdPnkoWp)Bh(jJ*yMr{+~eguFg7hNmvzwbU+x^yY{ z^?K7Mv_P;wa8&FqaLG+VKU}r6B^s(WUfwz)Wa?nm`Vy_=xNr+a?-2CTN1YB086P!T z8NUtzI^(3W>Zw|*Rbgmo5I+2o538?_b<)lf7@QEV7+$N_A?1Pkx$!6W{l?Fq-T3!g zH|@-)XNTc8u6o_y{psgE^_iW!N7bl}v0PFoAc_1Yk@NU6NuQ$^Z$6WD2D{S1o8S2Q zuiy31<JUa=)bp3^+OcC`VCnK5p$1hmTchJ<wuKTZ`I?TTV(O*YL_T4*H_qlPVs83R z8{ai_2;w9^E*nXR(1JNVoyn*uoyjx#JAMZ6Jxo#zmc$T|$9n*E?CEqmy!SO(G@lFe zMrw`XJ!V_u(fS}BCpBx2Hro9)J=UfjXTnAs+8RH0c1KDj)pIbyya~)v0F&q$K@Q#d zGi5V2;ZA<b$Dh0Qapiej-mVdZv1KAj`<O7o(6p0a{2eydx}?K>VA5*&l{dl|YK=Np zVGuywW0aans+sT<g-ND{EW}dsL<cgU=M%GW<G3`mgr}RftuZpKlY8U)5~Yz^*Pi`| z;-XcSOiV}Dqh|`PM@!Z8kuh^XV$L^Vqp4%*V(%xs{_xfn;(nOHH_i9I{{tnFsn^NX zLLfMp2q3_Erk=LC;uofV4l#L8lEXA)&Kn76@n!6Xe)xy$_>s%p5e5?W%Iq|BpY|qb z@9Kp@c?xR24_#edaORn3!7+%)5ylUN&~tNh!E3K=fR2uKShj3gFg`wx$0%qmw7~k! zJ7MFN9q{1uul<jI{LzD-FYej}%i4q4|MbDP{lVoIzWyscef^Lww8wKP%$MkV(Q0#g ze4Z#utya>+4o*qD90%H4S{`WY?3x)VjkNyao?l-0=F6}AZeL%oVKB$U!Cp3b+YQs> zqY}|{o0m5o8EAGKn(n{8Z*@@5SSN2h(nJrB3<nU@!4385@c^uLiZKr>6IF`No6E6m z2FX0jVd7DECYxk2Nz>}Jn#1lYNsKi%lEM2LCwlQ?l6dUq>r^#%kfKPbMdS=ZY8~F> zcCZt>)u}NJ5v>kW_#EX#!$k6qg^I$9Bn-!ziOyl5IzX4CWa1yYPSm7$Raib2@zEao zK3aEppPBCo-k+q0d9#GxhI3+nrJ1v>D6vKj?5KFOMLXIKv2&c*knmav!~6PiLd2Qn zXJ(hdl%kpI*MTZpBEB7ax~+vzmj9XiWj%Ck`5a#!QD;Gj`w_r1&pr#Uy!tAnQt6{l z11wk+@F76IM|{;<(KCv&@r#LHx|BUny?gu)30UJxT1SN_In|WbFmPS!h0pJjBYk<J z?yxiqgJ)j>xwRL9v-3H~<nrL5jwqE@7Lb`t1{N6_9{T)6q+t#Mc=oyHl#32x_wHeM z$2;Bw{e4T|PyWY$gU;@5c>4Jl;nIsPg#MmB_w(0%|ArqtvhIU0H3=to`n&(}zyJ0% zmtT3sqrBdZ_H?tTS5mv;B+MjI@phY^&4{P@l2b3*v5DEy6OKFX(Z?U&b=lo_J@}>z z&cEopMi-Q;rW#Q~GZD_#Vkbm+HB*ZriQpNL(>S4TI423D)7);n4e@<f1*&Fei*Ww~ z4?67~9WXvIVGu_*R`A8tjO*fS_(N5X$>ZIOKH@!19`3k3ZTo7D-0?Ql(?DHg*0UqB z!kdq1o8-laKt|GtSh8aLn1<VF=-owCNA>fHX61HpRMm0RGtjh2Z0JnHSFK5)mfYyb zw&teXN3gZ^bWTvy$hnQWgJB1%Bg&gR(!m{vhI>9F^`Qu(apWQ1nJ`DEV*4JRh|p&x zDGAC(v?{f~G?<|;V4dly4kIQ+CG<=pvK@b{I7V+d{L?z`vC$U0S3_qf^1F#`%Q^>E zO$Xy07>T>oVs^e4eWMpjkic2@7Zr1&=)Cb9GCDK#H{V0}l@RyC42)j<^rv?K`WpB3 z_08K06A1Pj0eF;)M-K^heKV4CLJcgxV2Qk&Q9AS5<m5Cng1}@TzKojYI^d-}%u<3Q z2FHQw^f>gKdI7Aw=o;9uWed3VI`{$ppn7KE6g%7Vd(wg$mQ9G%!dI{R28@r71*e>P zD*XN5eHlLX@sGjz=Uo7|-S%TxyLK&X-?qj3&Ue0-{p6=U+25M=mb|iYTgPqRf9SV< z@W{Grp<IMBhO)2S^f#Zo>h62)d8M_Z16HkC1y4Tp1ibO0ivrI}K@M$gDUzQ=c8yZ- z_Rho-Et9%@4a4T~b-eDB<NOyk?_7WHL+)iSzPjP~EnBz2>eZ`5tGD<dc$k?T4P}R4 z=n^muBq-8**xODbk%lV4;uFU4Af6J7D9#s=kCS(vrV3Q$^Eo*8oYx1>J@dRuB*ga& zS5T$%p`~#;dQO{+OG*@(wCXt6E;LN+qXVWo`g%T0`i{q2<B7BeDGCXbCay8<c64l* zq#5h7Ix-0)%^-Erd5iczJBx6qj=qa3??x9(xNajtZ$)6kh&b_TmXU-~C7o2Gy^QFl zWIE5!)QI471Fa}{)FI*P)Y!i$nrxHPsKdkUaQ4s<42uFq9fbI{bO#4z9PEFn6L_^` zMU!)0SHx18nDU(z1%oVm(CB6iIlpxs0UsxGnwiu|)66Qr*70v9p$cUyk>7gwTyU&& z9S!jW=CLx@u5TN2B&P8mGmn(HKl)PEqb+*6s}xfrl{u`yv+?4KFThhzKMhNIdhm&R zq?;sItOx?njE3tdyZYA{GPfc~ym0uveSP9Ocs-^DTCbOhd)PTZef<&am<F{fxcL@n zU41(EwHgEqh^QYp^!a)8(Z}G7Gfu~m1?TqL?@;fe6{}a{Jj-ss{U<|XV-w4N@r%1o zDb7xxn$Dz;e`(!I$9?WU|9+;mZy>!ny*l;i#z_Zi6&P}gFaWj6FYdnkvU~5lZ{>Ag z|Jv58-g5PZ%PzaL@~PkX9XR*gH^60=UJ3&P14@PzBkv|G!j(WqlOoW(Q%$EW>28Pa z&erWg)rUe?&(e<89PHk`3zjVDH5oKV(;5oe#K})W8<Ggmd`McKwcePPJ7Im+;@0sp z^y&^)Og-U*<FN{@y65OVw7uBrzQp-!p;Js__29<A0Xz9LEN*2HejSCRAIyosZFsI4 z$!a)G1~D>;j@c=S8W4NVm`S<Kt_Aa0F&Pe5Wd~(7S<{nZ(d?va(rBxhxEPn1C|cS~ zug_Orm?mj=G?L|8`jD9GiS17_C~Dk1TF=W`m3w&~&1PtF-7t@i7~59w;XA=tj#H=f z&KbStxP%D1*tm=lj}P|hosty1x6v3ppti(MS16}3M$X9Sl9NoebEp0OBvUuO2kp+T z5xF<4m(6R*d|pLDEOrU?g}5Ik;L$FXN^s|$zkqBum-x^W2o54B<{Cv_^+ScPJsuk8 z7Zyd?^e~?J9MzuCW`quh&}rQ~FPBsIlu$li;N>t!+l!OXy7p`+EL{uLnTbYm{vrjQ z$2;%72cCa^9TcY~;E~53g{$6jC3JUp2fcm0$8FoX^?i5#>}TiIYPItpdFYX$2k(6l zQmGVVvT5+E0lfOsdU*ZCm%xUW6XA)?lK?>p2GS*1R+)h3pML42hwlI7b-n$4Ft~K6 zxMS<iryjZg!AD<t<&`_$_3roF{>^XxD@;yJ!hiVn-w4h=`)qEK3g3l4Nn|#G6eWI+ z!cpo&_@?FSIh#pAE}NMM>JH@dE$(1H682`nY$qYYWs`Cv;%G*C8A+r+3Gt|A6yZ(S zZ*x5jQPlW%+#b*Kf)`$R5jJh!5@a)JXC@*CdY^6i3y}_H0cLbvCucV99_ySrlCPui z^rNEfbzeOLyi{hM;}Au`!}CaT0P^Rzc%B(eZq^Ah33@}LO<5KHt$&;6);|96=z4;d z+UykYo`etDFwCu^uqMohu|?1fT{^cdehqMY`F^sZx$#b~EsKgIL!8B6Bu$&o=%`w! z5lxOnF428rj<Cd~EIeYO{D6&K0se!zDB%gF6~;!atmwH>O*K4Y(LOq{Z6<U`qUoWI zKWd4Qe_?zdKRwa<jNYCZwda8bc3@Cs-LN)A_|dD9FC%l8P1%h(#9=-raVlS*c$>0n zNr?Ml#OBRg;Gu^ef`R@4s2e5X1%iW)&<#UNSsJ4n`~o&Lu1v%!T4&Eo4mBKY3k3(h zeqoygzf!3x`?(_}1;Yrt<K>}a?YU5!nS|6aMB0CO_b=hk{`{|D#flX$H8u=qpL2F< z$Ie|B-gD1=pW3`-%Oz8j6Mb7YZ-87j2kCSMmMt5E*|}L5-Mt&?#W`5Eauw|8J{?}% zQ3jZsh8|}c3cFu|_1iW;x$Z+Y6~Oe^PN<fq3M1RLUU<*lcV1X%Z~49d`;Y(dL|bd? z54(GpT>s@S|Lum)e)hAldGltt_~J`~LZM(@d-IXry(Pr-WdKkrS4eM-9Z|=dbkb=k zm#fakE!$w(iZ$wuhxVk6>uZQ?Cd|{6xFun}5r(ACd$Zs3t&e*h&SQ^15p3DA4cgk; zg0a!jg!|p>m{Wd=ZgMzB=r+UCb!`T%mFJ4fJe}P>BgHRu2%MMJuY(g#JPFXM(=cFY zy1z_@n(U`Z-p$X=j$M2m@#U@GX7X~AZO_*hb07AmO?#Z4aIM8VAc^aVCvqlBNh1IG zsMBKXW=NhRUTt(<t<kAiN5yP=6vQzk+To1s!$@n0Uw}r3%6RcaZatd)I)=lK(MYSo z@%@i?x{}E~-!s+-vZ2h67LO!Iu>qh+9HVz3>TwtyIUVS-+e?R1?;l71@!q9b*_lR& z`(Xgz9N+!!_aT?dLrt7y1cw;>FygAF`k_S8HGWC!`RHMzr8H(DSHs#v`#8Lg<IxuS zsrhKRh{PR^2>eO~I*vOXvfTp^R7wCT`%#B&#>n6zOiYE++#I^ZzzHXu01w~4^F33O zlb?D1`4`@_efxHpo}PjwJxf%0bL*x}kV&QBm6zAU^vo2@&dk7yWh)_j)>ZKIL<(SX z7xXzr$nSayc5iq_T@Tq*8XWATIRKNRGce|ifa~R8W_A*`ZP;*jXM4-ptzAn#x9Yg# zZ~5~-|DV^nu6yrKe)41ZyTAM2%4U$Uzaug6j%T@Cfx91hL9K5|XPeTYdW8aP-?^*u z+kf~M(Am`qcmCj8ioCOrIUx#-8CPhWqa83oPx$`ObRfHWdSI?nfn7UxsLx!#0Slrf zHYD<#rsn{Sl;N{MM<!Vo$A#J$+y}zv1rZ4yp~rQmQXY(rkHYqCTcNY7OXWS-k`5v- zF*J;FL|<6Nj`j-?;XA<f*eli5VD~KpCAN-)zmu-7W}TKu3Y0K!^j+Kv(*E9>W+vQ5 zEIXmO)R-vrOfFTXew#Ba$g?OU)?sJC%v)ur(nx>9dU;cip0NKxVlq4RM~vgZqY~CJ zFh_N0UD~r<9~1s<T7KHmd$SK{ADeh{L%n_&L^DqrOL5R3ilgmRG>+}*`Q6O-oe=lK zh9{nQ0$zLVRmf&DM=S~{ICj910Q2RHV1gdk+cC@sJ1;}Tp4Nj8Ep7X!*TG=f0_ou` zd%(j2Yzr1Ot5vJef5scRifaR~s^|FlBs}!!Q*i#dXGK2NM-a`(AblBG`OUwMpWgAa z;Cuh}Z<s@K{EII<_dg$d?6D7S+qNwtXUmtbfTy2+8j8hPO3n?(<ZFH%`ntNH>w<T} zbEP)$CwD=wGXpE;UV>d?&p~S*&ubbgH6I-ZVXlI1pB~iI3%Uk12UI7hT&n|2jHI7< zX!Ij(U0okpwQALk{rv;~<G}|XeC3QY&VW1r{pax3x4j(-g+dgfnx}GTG(E0$=INPC z8tM)JQu4ra!4Lcn+%L}$HoHL`c5K-O-@5U;@R1L_&(LRUA`)9)ydBM${DEH7d)q@u zASQ_jviSn!TRI?>8sRE8A)SoXR|q@qks84uvy^bo-|Nj$C!Y=v-p+dPf-5lVb5r-R zVr~jj4#3@a{X1N6;TvJq>f^&s{=EAfe^kWDS3Kf7@BNZ+?Bd&RxVGZgp=n&A*P&S* z6TMgt<veXlyn)SRT+ITL7c#@U@#7E=wkHyK{!UjUvP6;L`pg0x4ZCCAD+$kc^Ltf% zDbhY^2bk~^DMTUxS5yRz=1#ijjrWxkOBfF4iR3}1RVXhS+4mSpqZ~C4zoQ$&s8Sp? z)*6Cn=mc_PJc`B}GBRpLWF%_n+l^#Zb=;|q(di8LS?8YcAr#_%7*H;k;m$knf{BR< zmAECuU2r(SFIh8sPA^?k+p6ZYBImmBlKCDX2O5q%@S~3+bz1+*g<YCQ>kln3(w_~g zu>8WeK&q_=YUQGBOcw&%jRgOOTW^EnTnSD)^+f3F=~CYvAp$=yX-9nj$G2l78496u zOZcUFx=-V?rN1x0#P@sdx%cYcB}@MG*{2@wJL$v|)r!Z)#$b4OH@y7vdYGA=#j^>i zFe+QAR-rAMfx%1O4KI8BP~Ei?+MO9#THFGo+g^lxz76uNdB~(%i11_QO<CExP_0&> zRxPX1l~T0~m02HVof2fc6pZa2g|V^m5A7ZuyL$clm;d_oQ&0O_*Mr(4k3I&U{N#TM zIy*W6?F-}feX$E~-eWZ}I|o}wr@*fVP^trrOcj^lzIAo9ZYyLwz`{^>{QMVi=_MDy zvZX`uj%qUr#U9T|(rMa<`5VHV^UT+@Eo{-aVdEy)gdY5zol!K9$%7p=C+k-lY15HJ z^Z7uzE_$TSbdX|aDeC;we4LcZ#}sp0%9RQf%N6MBAB0VtH^bEQ44iSsnbwF$0?BN) zuSv&sZ;ti6$1b5mn3%k}7o98)kR}o5U{9odFFPOecG{Y(YrYO>NJ7JlB6&aeG^#Yu zcA4C&C_Itr<S4mLG(f^m?Aj#bCb^D?vtw)gn{{$x`$LsS<D&_BTiW=B7qi{c%yrvI zzQ%4?IV1^(mfK>kSGA4nt(euF!*{G{;3Jh&4;S!gzxLW|@Zf_F!{A{5kxSMS98)m$ zdi0>MuRA^L#>19oIdjsx>mhNQ%$hHG`Z386z4Y-1iN#^*q=wt5qZDIw1kOEUEiAkI z3V3ki6cljiKhZrSfNUlMt-U$;(seh&RH+P~{<ROl)t6leErq-~9!En5n@Rh3fAnK` z{HbRkm&?MK`9?t^g~WXKusYs5w{QQ0xw*M7;;C$FZ3V~mU~*zixmi`K6_tdVcD=BE z1VvIa;K7QsuY^s7wJ^J57*h2~=$+aKV;i1>O2vnArV4&gf&eg46-$g_CLtytyWnLq z>Tf(|?QSd7z=hfJ9C+X>0_W8MUV3p|_r}*Y{Poz#*jwIy&D%abJUaT^j_upvmYZ&Z zYu@=TIQit0&FgHR4*Eab`g3^T*;k>fwE&%M1?Sc6!zcTm11F!bVqIrT4o*2~wc5uo z{Mlc?uYTZKxb)JC<H>vm^gXj5r+#0T*zb#rqvFHE!!R*93EQ{tfON`(LN23-vn`Y3 zQ8U^kRk!8MH#UKDU6`2LPEnCG#7K74opvVilao_0F)<0(T=NdKF5IRqQ`)CvF&}w6 zm}u5%o0q)W+Gw4$n-DQhx~BH3bFr5l%Dp;<#xpJ0hi&Y|x*Jv#>E!pLqY*S}^Y_>e zFv)mq)F_mqXlYRF9yi*=M4P285wT}WO%lwITwn2iejP@4nK2wq<lFeDZ9gN@Z;*2C zm*6wY?%afgp6@>)?uQU~0`Q^r;~(D+ot^DRx;cVl5IkJYfd!1X=_r{=QYez9{hqZn zgXJ&g%i50M+uNfdLk~RfaFAbmC<d7fq;~Iy^w=mk?uk&ZmC0@u$LyOe83al))6w1r z+egOXcmMm}z-4cIJ^cOW|1<P-bsBbE!4W0x-@EN6@Wj*4!jhiuhK@hBEbV!a8ybWM zAGrUYUs}KJ6WAdc8y|<!u`zh%)z_e0E<!e)Q5_Y}L2rHXv3DR1P%p!p*IfuR$DIe` zJ0}2&!*FVL3Y>|pP;1R?Po>*7*Py<ukj<9!g;uXrDt1-o<_7$lzp7fR7E0ABRDu9z zij&~i9q{rw$QD{4l}<xvR~mwP08=y5P%M?;xffn|^Vr1r18;l#TR+*|-Sy4ZmKM0< zj@x0&=1nj-I0&bldYbBd>`ib3&&`hEamYFjy#Bal&{oL7RI%LgotHPiu|4a-MXx{O z!T#PZD3z<KlTxeIU~*zOPOchOt0S@dt6Dy^z<Uu#IUarN3D~xM2VjNUmX;Q1X>AR= z=6WQJ_LV!WNqH?=7Q;XIzQXC)!PCj9I@-?3=w`>fQmIA0@VI<7lX1>D`yA`Ju{e<Q ztcy!>l-wbj#a!qRT~m82r;0BVC)G*O>%CrYl0M&-ip1tOkBfCI<8f~tz&DaSgJ{`A z&AuMQ)1;cENP2`tH-!WH__u4g8R;N@D5VL>yHyC;h=^NJ{iyS+JG>;-F$Ws7L<jF} zwJz)ZYDWHbz)T|Uha4}x^fEm5*kj7q7$0f^!Qp@z4X2kf+h5_o^pb5H>Na2crbQMH z%hLpYNt;C8jLvDh$-_h3gM1#m;oXpZ`DLhgbwGe^-G|L80-y5WloM9NbL(G)5B%n5 z;q8~d5#If_%VEvRWky2M;RBzq+wZ&!o_%pW3=Iv&TTOPH7(w?uc;K$PzkL6__kN<Y zvs00?En7B0wOWT-tqhq|8d7NciNvZ_g*v_@(gpBKWmvIdDb!ATBW#?(Y|~*lyS;Sx znVsG@-}}k``M~x6bp7zl>(|X@Gr3Z0ORIW@O-*^J8F2EY*<$MlKmKdIyGDmkc<|nP z&j|p|uh#sNcI?_YFjFi6q*Kt|-VSai3+<g<&{D6dqH|lf?r8h&cfNmpK9^r}>d7bl zX?b)Mo_O*}IBs%MMUXGM{LPkCZW4)C(dMx!_}aJcg08j#^bWMCq}l0~%5ftz#eo5* zIx#vrzOh=zs6T0|G2-ibDcG=SGpt^@yxCzt3aNTRhh^t3c;vCip`*PW@`ZwOC@ant zp&n3ln~tBQHn9FS-D0@&ZjyJhh)p^iB(>rBxRb@};pBGg4A0I?htCr`IhLHJ;>B?m z0-9bL^F@RY$Ms|uHQU?m?M=jfUn1RmTDSFO(hSVgEtP+R%TOq)36azx)KPW%s0%11 z?~h>%$$Z&pBE1{!Jb*+Ej3JXTOzf#GoWl^wZS2BdraK$$v*B28^_e)RCK30;fbV_p z`zm@NzU_j;3A^&4DRm)ojvxz1(>+F$Z+cjmL*U^YVbqPH>aJP`TSW4*oEUeg18wSY zn#+T;V+VMzyo|kzkhJgL`x5u1tD_yNl`7o)Z+F1WKez)vbnRQ=Jy%~2E0+z0+dT9H zo?j+^|BwF{9)J2d=<e)*@!?_X-J_zTm<S31%uG*z;Eo^P_UR6sZ+sl4rY2!-t`xl{ z(;g=1V!|%TTzpI?EzQ8P?pA1h{afJqxi*098{wj5smFiq&6m96p$8wB=^I)~(cMZF z9M4q|Yqa>R)oQhRy*^#5R;OD#I(AH#=bowg{&!ki+hJw@z|e}-t3I@I*YJmS?AZCb z$?<U|rAg)TkV$8twY3cjg%(BN|KT70@8_?);_|_3-~Yb<I6FJ5wC<ZXZGwC6`6Ubv z4MDk7g4Jt|Q_<ukj7}9H-`WD1LJlfn72sb!^XjEgEW+xgZBO0*$di-P72IEq9lLhJ zuCXcjZ-4k{Scp(ksGU3D7r*!gbhNcV3awlHnr06^%3ySm)Nt>JB6monDM{5HE#v!^ z-&H30*PSQb5w}T`uF8tUetKpGo_hLOC{?Nv@!$^q>8GE8d!m-YYifaFZzJ1>6AQ6T z5fhKSDvYpo(jxo3Esky*AMNi=(-}SLrW0X}86l>P51Zex`Pj$<Nnv;pD*W6al_4FX z{#I|_UcV6cLj*h%Pd@n+Y}>XKdU|@)15qG2Tp+8wauk8kgp<fz<8T~F2=HZ2(RGeC zn9+Of<4p5&lB@k7q^gYIqbK~K47fYF9MpI32ItwQ0P-!0xE~DUb6LowJg8Oc@V~zD zP5Ay#e*ypaXa5yWKWVKIp*b`J9*-vyn!o<ym*AFfe-{%@Vf&`WZMmKY<+&ovOilIe z-o5J|TUuLGM0|2`0_KWEsMe~A*cH&e5sSYml9W>Cu`L5|%4uuw>pAW69e351zQ4MC z2P`klZ2Zt=7hK_|(lg_e(~3BAfu1G}g=(du+<WjO<GeG|GuzL4{p<dwSbE~CL(7(3 zRjO8g|FK6Ozo0lZ4ba*GrP3Va^La(a@f!K%J@@_ATxrh#=tn;MpU{z}wY3${0cXR8 z4N$99l?QxBM+f-z8e}>LAXR9Gz^|!&m@1axvI|d%s`K`Cw!v5KxbGb>HVjw1>&^FE zcJ8V5(Mc>tq=CmZlgYxaT|1$#um4E92<<a4nvS_ryLRqU=ekm^Sl{EhsG@AeLE_C( zbo!2y)H!~{)^<#|*{aiY-O*AP(#^BG49RWmXg%|obUFp&6BF>vGta^=@3|*x8x!}F zPC8L_06+ZU4?}-{|3W42M;k$2sBH=kU_>DCd$UrvVIdh?*0y8RgB6?uOW!5r0~on6 zR#jZ1daRDt$C6FMNPB2u6BZi_i(qk?3DYviFyV>x^^sMku*pM&VzCJK-FH7=G^wu- zUsMb0B_UYYVEaZbXVC<VB`oHP-E@gz4`@@iXwGX#;I%irIW4IBHDCF-AA<J@t}~Yf zXJizD^)FM6Si>Xy;B15T^Q7Zf!`Q?)eByWi1TH@R_3+UTTmxsHcG4lVk96QW-}^VX z{)U_2gtcoMIz<eW$ly04yLW%S(9+V|+uH{_c5GM9RY=;?t^>JrMvcj$)nhuHSC9Wy zgG(kq@cwH)zvA_8`TH;4v+35Eb(^6Drr~3kp7uL!9qkjPat(%-F5NFeh1U)G$Ir~n zPOn^Z+;>Wq^1rP)Zq0v$!2QB&8#i>h=@gX9C3X6+AQO`KJMX;vx0fy*D*oChKJf<_ zjh`!(RAp&A_R~|-=t={*6u@&&ZGo-Rf%+SP$(Z50PhGQ9GsRP%er3xAsn!%!rpE8w zuxUF?7v~z<w{7coIOVi6puZp8y<our_i@XXt?>K{FRG3Y9;Z0aiV<ZqE{?Eh!#njI zKLgOZQR~}X<9<hXC?f9sqoeCwyov5}CiFTf6{l0w9Xl7fY!;SucR_1Q!Dt<wt6e*G z!qn8X>Y(-Y^)=Yh3IzKLUq6o%BKdYSy@@v8n%P`eY#wvf;deR^W~%f#Db_^HN-`ws zW}6}j4Qt^WUIIeg4*~GRV5a{A4?GCVmMyiU1Oma~K<En_Y1s9%he$ciqldli<b4~g zg=ek2X%oj$c<mD(%5Z$Yjt|m9@ltlPS@1{405)w=g>}G7#q5X=9*~G&@@j3a3cq~t zak%S|$KgG1xeTs+(|K^=xo4_*4i<sOV~a(SZoT<dXlp4zQR#%6X!6r(sFX^-UaM7q zyS<|mW@l#<amOl^7<FpPWK`sJrczPWEeoCtXP<feGZ(%7^pF1TAN|QQU;6R0zxu-Z zP1nNABwV`G{mVC=eadY$jN>>Sw70!UMeX+&cnws_WsLsUjyrD6KMoEpyKAmm{`=9< z(KlBrWvr&DItDl&jz)g(dq4Qk^=j?etKa&Tf5nkWw3eg;g8eZUD%A>HaOR27+C2#M zYS}&(0MOsl0bjo1j!%@f?aG`vP<U$NtLq+q`nl&4J3UjAQ;=`T!lys|8KuEr2vK(= z*LWSiux=d;3=Jt~p``mNo6EuE6k22YDuQnNP~+$ck_)pks{K7j;f<;4Uy{Rd6rN=@ zrU$hdAP7{E!S=2$NXI%(h_?0)=<Tn=1NT1wXP$XxD7TZ`FTp`Yu#eN#cj0JiNVt=p z3-dbM#5)D^jv9nHWs%#B{$3YeQY(!-{yC~oZ(Sko2O0d}`{56N1YKR7`XwX~97ga9 znqRECFp~N<)Vg!hs$GzYmy4~@kjZdofRZ*%A87vF-PMHx*FD+5?dx7aDxZVtEn8sh zxfdYY(Q(k^F?*A|ik63+-R*EA>fe9(Q~3KYd=@S`_e^NX=MR{`vjpc~{`CfxaCphZ z7elQHp+O>7E|oeSxc}ZSuUfrYJ?|fX{Bh;S9t3sBdTA&W+F){O66$^ct%X)N|MjOm z@Ybu}d`)4+S>vC(?zUAwd3ogjz-$rv{n5u(Eb0B@Qnju|E-;r6E3dYt@zro(9U;6H z&;ez3w)p&tWy`Kyv25v|J^A#re~i^zv2YTScf6)jsWjYv$IrgLcJ1ot&wazWkD<k( zDh?H1ONDF-9$UW|cFb&o92ICZ5I}cZOWX6CwtoPe8Vt6$H}~}Ql-rs-cULU$hescM z2&Sf|lnm!+5B4hAS^z3S{o)HRLLr}r*{Us(Vbm%WsAGpnMcmC|Fa%TTVme<$S$T%7 zAx7YJUKZWwoK#AAF4U<-a5SDtKFXfjTH92|F$uVxa-|IGUVITwJ?*rEdb|XJ1H}F& z81MCyB-x7AUXLlUG3+Iy#91NkhX60U@FJ{RhlNY<g?{u$bOehJ?7K|&yN-yP<eFa0 z^eoWPGqV7bIU301pCvf<cJ%tG0MqEma20*S4_3q-wal5;7D$cMVD80r;9wguZ=`;B zHL|#$YgR6W(TOqmgFpWVIDXYi_^l7W3$D8OyaSfcJpAw@ux|ZJN`GCSM_-PFs8+9^ z0}ixf_1BFXUr~PEIQozY06H=mn3$e|THS~4wobU<f^+VA=UXm#&(LWXPPVN&8~)q( zzw~#*6V<NXY_<IE*B$qpy?q@}tCJr*26ntu4pJE`Q-AO}T_YnS!BtmX`MI~g{q5`j z^z&c%*V)+;<ntIgrXlW9v68yy-Uq+l*53XG*L5nnTuw!f5#^KvQzI1^oy|ZtZFJO7 za+A-(tJ{Wu<>9AaTygTUj+qa?_mXebthxe?c-`x&VeIVaX6<<XE0qe||G<N=e*HQX z2$~N_m{l%S%<j=xV@SMpeu~-YM%ei<+!@CX1a;*2KIaa*UWSe(CZ}Sj2y?qI$EL}i zsX|_N+;NAx*1LPUMJ^){%nzljX9>Iz_d@`Twxg>9YBu9O*8;)eLE!SWhc9Y=;Znq$ zhPs)k>qHt;$IhglBXBH}A!4pIuXQEQ(8Jy21-)j?>RLME9h?!T03cJy!`Ah$z|NOn zR-P12YX9A14itDSTXH$bWL(&|bvu0IGk*$iyW|3R`=#f@2i|$*ey{iM{_cOn6OTU$ zy}e7q0!hgT-CkZlGd&AaQ@fO|9g_l4Qqq$xs3l9)3Us#hz=_ANdgiQCR==<0bxhvz z=w|R=9DmPvkbW1;?1nd=*7Fy?_QCf)i4HBLa*19I^#F1$J<!(G27aY<@H$>W0F#rG z@R5&w<oc<}$;wy0^3`va=1Qq_2CXX7P_I_t*=L?TbNklKe|Y(uFa7iGo-QcO5%I%g zk@Fl_-gyetyc{?ovGiQ!g3|ubi<>@Qo0);tD?7h^$;B6KE7wf&nSB1HrY0Z=mcr2t zJkJ|9Y=rN8_j@qV-;Z88dz#;$otX`gWXDOlP9nFX>ulGUbe`?eH(e=JTgvKn^Ey+R zjI#9{8y->il+A$iKlJEhaMCHKz}w#X)`ssFXws@caHyeVGeX=CBJg4K)KgExi!ZK& z_Vx}*NEIA0aM1@I9yb$bC^?mr)J(0bsb#k%<Bo#`mC#B~Yu?S$==|Pisd+sJ>aHIs zsm6iqgCY$W>Bo-2$T-!3J_@W=NulVdqDH42zY6Ys<SBUOg_l%8A()#~TJe2@qlzZ= z4fI8&?3=-LJWTR@9m+|{<vB>DGwL|Cs;FokM&_!}QfP-2%LZ!8hdMsKdt_{UQ!WF$ zM@KV{?0oghwKBk9Yp}h)J^iJP+jfSweH!&3fP5wZFIPCIHnw=YFfsAm*T4Ser_O(} z{g-#&^HtRGqfKNwm4-QV$(c!gA@GAA6mo^<JeOZjG;-9@(+zGqAB_ZbwB+HAN1yxT zlP_&pI?&-kx-{~oFZ|hGDxdoKfYIKSD^|i^fANbd@_aN!d*kQ+_MiV;<ugpr&hB|( zv<R(M1C+{`j#27gV;4!j#!{Mi!54=8%+N%i>O9yTBb_T#Di&2St>w#?hL)tUCgKPR zF56mw73+K8+yC>6PyiPmfBqS0&1a#fcL}`r+7GIc1C&`Up5jdc!9jsYWezr`r>Ehr zyY5z{#qpsi#C`E$p}a_ffFka3Qlb-0Be|RvnIn>KzsR*5re+jdp$>u8yy}QPYL>Tb z*;2(9@BYdWIGx^0rByMX^oC7P+qMf*OP7H^Ie+Bwa09jIL;byK-=BQy8Stk^08-g~ zTuY#I!A!#Eh3i16TsavDSiN3RdT<P;<^Z6I=Odj}R(mI|UH-YOTY1W9>w{B|Uk+2j z)=!OXn_dYMJK?OAnJ-lQ`s{6Y-J7Uo_tF_~`&L8XKLf6_ulq7TrlzN%y`}BCH@xAz z<<C9+^nb%d)@(il^|=~M&&;|{KK}GyUHqm?u2G(%z7H-+MoLB4TB<^|=78sr1!TEg z>3MO(_D?&t60B^m{G$u?=QnQJqzf%J0c!toH1uc!N=&fLuf4Vbwr$_8TzAl+2Tcyz z+S>Li+rV*Mza02JcFf|}5EE_cX!GbA*+!blrTjh3OIyVeG`{B>*UQfW`kc$>lpcTE z)-AEoW^%Nfa{}l{W#GiQD)?J>!tU)m;m<zvhcNW|)8WM9*TAk_JD@yQf)9M?V=BQ` z$h+WJM$qJ4AjJJ(R<zr`9qzsNURbtlnPkc@QlM@V^|wb;l&%?Z*VR$g6g8cbQO!!J zcC}NpbE041)DdOvEbC-VPk24_9{NSssTR_HymZ5;dNxxayE?~#e5D4X2T)w;Py>%a z#sz5UT?RGm_|!|_c>88iiA20o-t%+AaolC~YHewyT7zoM2hVXKi*6pN6toNuL8e%S zmCJe`XwL;-oQ7U-dd`GbHf-&9aNFeX!Q>2FbX><n@4f7#uh02Tq$6+GhU-E;e=6k4 zWAM;jzkrrJb_)*Pv6`JL!rJ4G|C4H|eDPC{KXP#{msUlZDsywNW9N>y-*(#%e${n? zoA7?CmrJnx^fyA#wHnH$DOFI)OL_3n^RNBy7dGwaTb-%wT#~7MZm#M;D!u1+c6M~b zh7B9xw%dLT*Ie_qBYrRAy*E2M2S5GyJK@E3>tXwj9gxjt)pd^vw0lcjUC#@um8y@| zQOZkO8h7p6PWL<|n$tbZBWDO2RntVC+NWzZm`*Zun{u%x?(D0=U=Ak98uomu<1v>` zK}V$qZw_*>db$d?SE`V0ZGj-=D2q!>%Fg97@Y<`dz_)My7F_!)A5yw~6C$Az9OF>8 zpb+<i0FF5J^!38u{O$jeDyfSMcs{YX$?VJweCIpghnHV|8G3trkM_=)%Y<C(QVH}v zj!Hd8zv(4xt|FeK%FA<tyZL>59@j_W5n9sjHBirt$(K$l3yy~cgX$2VMt>pPQz+p` z<ss-<4lw*0OwCS11&==__2Ec_A3&jr)5czJ0xO}W(x;@-=^iAtSmX+7crJVhGI{V) zS?KP}L$+4_@}`$ZAa&APpgKJVJI2P}ziYg{!trO})FoYip30@`{#3CkDGadaQML^_ zhn92g?)_>nR$j#-Qma?4f|;oqxc;B6hg!V`xl9gbW~QNkXz=%zY#VrNV#iLerLzO7 zXd^j34)^`?m!CiGxRtkLa(TZzGXeRT3JeV7!LL;mxtyFXzW=$6J3i#rOR%D?`p3Q# zOf~6)G{E!HuzB-Vc<`Zz;hJmS4o4bz4o1gD;f~vX3VnUOFx0z5B_|_-T6M3-tem<V zU{4H-bMbn$4xQ#<e|COnnXXfM<V?Fp5%kEMwt^)xPi`|>mWM^T`uh8zr@ITv6>`5p zBcR!|2kz)NykY%j$hP}1j>XwxPE_2!j?PYadHsv<Z{PhkTz<us>N$&%_ram1BB2o+ z>kz5T!2mz(aQGJ=euG1UN4r^pV85!6mY|T&!KXg;+whgIT&MCFuzI2Dq#cFl+W}&T zraqOwA$bcYrt&m<$UHtQuAO7J$|{j}PF&OTQZ%ovwM}vD`kn;G7ElvkSFR>=b7iR4 ztAM<8;eblegO>s58G<$AyP+36s5=2<eSqnd3mbwec<Q7aKqs<RJ!N)w#;I0AJ4KA3 z)*bNOl+ucKwiPzcPVD%p)3XxN{U<=RG@aXA%X|*%Gq5H<_r$Z$yms3ok3YUg+j~5x z>3jiNd;6hQnNy=6KAxk%hZ-g+BiX|do3LUbeuo1rKI@&!CGcENNgkB9dj+i_ht)Fa zkbwDh|EaE?zW-GmAOA0YxdN>%?Jzw#3L~SVCw%nRe*Jw{T=kZ37pErR$&KSMg_VGP z4<=`4m)-g7tN%DLJ_ToV%-z<KgMY62sl84s!1iVe1?6U<&e{<y0)(BA_3K}P@BiBm z;Ka4Z?=in&KBUqqzh0}=vFIN{+qSAtiTg=X8U3A-CPi*j1YIT7o{sZU0Vm3RiKf@X z4gp5>QJUmBu*3(rblU{Xm8&r3xzIMxe&Dj5UEQ#0<7@CwU;BS*8rBuS!dV!F$LmQV z?}B3)Lfj7k_^?BwF+Dv4^#FCIE|d}yas&$-Tu^3wd;(UiSOI_ZN1uf+{;$7*mtT2B z5fdyof3)Q@1di|N3Wr*=Zj&|kVz)`U`4SJ;)==79`?+&T2wi0n?}@4D={ml+(Z+Ef zS`A%&1K?t$eYUZ9%R)g=t3W-Sg)@6sz#FPQ6rBLNYXNL(Nx=`Q(~v?r5izEHUUxd1 zfgM}7o{Ua1p+gv+K{YbrWHSIk1@hVKx4gmbnOZ9r7^=YTTKyy2O2Mjhc@i!@vG2dO z=LVp>7ab~PUy#l~Y4r*ie*95@i5Y0~@{mmj(3wktTlb+>tpL_AO(Pk1Tu9+1<NGi< zSA_G=Js&0~r=U_Q!_eSh!$_nWiST_G9O(bE$DQC~&p-9VP~Xxa@aruwJz0eZ9=!ik zyLN8<&iL+aLDvcA!HSbE0vD$8_dfg5zrD6`Ti;-|G&Yc{eX_nE1IIWTgdGPQwLp*l zBNf5L`{rjq`#C)H;6pGlFmON}2<3LvQc%P;{ygG(3R=g`+t(d%J^E%#+;nAR8fD{x zYjz?#&5sdrl=^Jiyh*KSHswNh9pJKQd_Q_Hm)(2$m?@LV=L_({^UuO}ZoLt%{lJIF z_A-Q!c)_s-A?^nlX`h~%p)%78VJKg4K)`d1L}X}a2tN0@KUM`qzVx?$2U8Q1N1clh zDl_aMa+45XJ6RUPNvd&A=eYcZli9fFk{!{r3NQuA_c;hWin{G>gE2afvY4Y)$G+FV z;~3Oou2zSMdY}^WDt-Xj3c%H4MYwyg3*7cL$kyun9C*(c3f{J@TTZN$ON#uvz7ILH z>CB{|yQ>>cIAQhV?D)=a;DAf5|1?O|E3l*N{5n(vSW=&UEL&^+SpaR|?$K{PfJ!C@ zxq1x>Q&W(}k(6p3GU)N{W+2s)g@?cYV+hJ6I3e2#XY?$ECAm&;H;zJgTQ9s^XoZe} z0Z6+UsMM;^-iDos#%&;Z&lmEuYmPhNuXk?T^!Js?2`IF+E9aMW&#k|BVtD)csg(0z z``Qbjy(I@vJiGpHAASC{b8=9E6Iv^ua$Rq8O-Y6J4NH2Kz}<J>2M;~;7+m+2e}KNe zzJpvWY|p@G_2$i+;kDOZgVRqxEwR$;z5wsfYPC`;h80WA<aGRvk`p_Bg{r0U{j6<a z?T$ImOF1sOSeQxlsY8GjUVW7V)ZW$#(-1)WTnXN{eFByiT44g$?b{AUdkcKFc6N5b zb5B35av@&-hVxbOZvVglw6(QI^NEZ`a4bNG`vJ*grj!;@Nc*t^F42uI-IGr~8UFZ> z{|o%pU;Z^rO-+R*)Q=9*={RK29QSi39lK{l%=iV3FLC-D-vv%U)B0FFd>#)Rv&VBb zn+~u@QnTboyRoX?H01K_N`G97m9<|iz!Q>jJQx_ChL`Z!fe&CaRbVfW$z+$$Oi!PT zHZtfYlL>Y2K{^NRogFY&uKZ+j_wYt%@H9xdtxzlbm+q*h-T>8c=!N19&py8k%7MG* zPL!91)|m-t-@X~T26`YU6fiS8lFA_AuFaMqRjWa^tpIt?gM#b9Ot}K5Ea`{Sp#YC; z*#&+k1+EWJDL0RbR%<gbII#5pbo34U$1N|vaPpFlPH1iKg7VZf)M~lUo_yY$-m~h& zv*5|6pZoL=AAI~jx<MIE@2Gq!pN5;T*wX&!j`031l}c)~^hk8LNq$#`+kSK#OioOw zb2*=P|6Ug<%VyNRVQqzYQmN^~PLdeBBK=U#W=d*o;!elMRn9j|^eGTPay#u<L+1jw zU(IHrv+l!Nr)HtE;=^>S1MWV_=91Cf(*rN9dl8<0?irXX&cShO*TP9Bp9(WGGjQ@L zr@_)?%OnCXSo9F$zQ3e>W?K0j3u!-gF;^<Wn$@e}PyXa{@E3paS1>s_p<EyicjT^_ zs|-8Gn0Ae3B;72eVv~4Vx30DCwlj?xan}_UF{%eJIX<N{>U;C5cC%S1Z`}$@mac$~ z)yDxWQsR!sV$K0r8vslM0NaB)R6<G0-g0->_d0_h=%ZpuNY1d>QcY>-hgL3!@m)Lq zd2((RI{Mc_q0k0fCZ<1JEmpmj%EWZesr{swZJl@hH6(qm2TONvfx+Dy!ABi>E}u9G zg3c~j42j5m05z0bxDL#?4)l#r!SdQ1%)a4FXlp_1#d$_j(8@AbsMq|;|G9bdhJUQg z&OpA<1vCC6jE#(4;ndys&D*wL_T7KK_siw!BAnXo{je<){6VGW>~{%4m5}LqkoAs? zOa`~Pd-ra*|NaM6t_<cY94K&~yp&&0rN}8tS5DUQ7ad{8j<}wOfAh0T7iWvs9wxDB zVvo1H=lPbjE|qd%vRv}pDmA#U<U_VxfnwSPtRa4|LK>NDR{db4eR$U{*tB7TDn9nq z<B!4zKk{){wtR(<cfq0s-j_n$_W_Ck1tDoi?_?qEaI9Ys#ko0HzI-|S{_lSp{`@cg z3MQ0nrtOGF-kG>lbj*%Qasd@xC6zgqc8>_xVy@2$4dbP+mp3~Dv`i|K4pP3Wk{0J_ zBzU<T)OHVpzhN^t%T}`4&7uWHRdH0|+FU2xI=&62(k_hoKA`e<uR1x7@0H6csZ-_D z<kMN`=xT*hr3NoQ`NWg;dg(5&wGRqyosdmudPaiuTcM1mkTVas>GDfXlSe*w9%`vH z6si?y8=rtBBio^Z){2;G%T=}Z5^7!P6r?I8sEka(u5uNEnF$C|wzZ#$TrLlOz4C+J zC4GM}F*4eoZ*w4($--Q5D*wW>uY7;&<GaotAD)6WL+wwkY;itP4$#k?aw_(h68hW` zg(Cyhwxa_}YwP@-sl5f>hm}etz(~HCze3;9NEwZqg}ErI;xUb)p=4a&s%-UWyS?x> zbkQa?B`V5<RJrUqP;*`XjkPSar-PO$x0q|K2TmOzhib8E08Yj8wg;|TJWwW&ZDJCy zEH!6l;M+Id0Kf9#kHXN>Wzl>>;suKZe2)ro-={=WlE>)Gdw~GZw;0y0T??Q8{GY&I z{P|xUHL@Agvz>LRoJeZEfSI&ob<{?(&fe_WRx<7ZZ$>P6J`bzpU<Jpf$*B&wxhzzM zN1(L+Wtwu7I`kY0;DZ-CHG}vpsa9bZj%d`dz*RFENyj{!PP^$eN+Ig1qNbB?1t*<@ ze8z{4*3|Vqg>0=pa5iK+2ViV`<g6Vt!BX&xu*5HYJAf>t;xrY{C(58)4_c=uVAc2z z2x@hxrc!`@F$Y3wv3*msWq4ry7Vu}sAy+NZwU)4tDD%j-wQlWPGWdh(-6J2Z&rCrs zpM}y?%G<Dh-Q~mOEaZE8o?qRPyQ-zoI-Rc7!)xULk~xw113*j5!6D8j_T&!p^ixm6 z!w){Jj&P++wuuJ{d@tql`M^WRo=U}%$nkxOau=$}!1q4u+^I9q^RcW3!J~2ftl+;D zVaMm6@57wyz+mSRc%7Gl_iY)za8<T&hm*}L@tmL~l}CY?pAS-gzQuQ(%H-sxa;bbz z*@aumLGaMQ+V?_Bi^`4o-nVat(@sAVW{b11YSn5u_4G5N`Hpf6Ux8p=@S{_R`#vS2 zPOF!#kaj^Fv(r<sYUL{UumAOr;4lC3uT>RYB=1KmVU=I795pi|X7oK?$B^LH%#IT} zT8AWr^sQzYbS}I^(R?#H7cNdnVtyFSYso=n>kgQHaXn<b6gY-U#Ib<TSQD!CI<!ts z!MX3e23DVO2Fx`nZJ+Wym5g`OO*dDI#iAm`-MxJ<J2eec)4QRsw+C8Vvd?!d>4xEK z9!92SV7TtS&97CVuRb@?>(;(qPtcXr!p>K=ItQ&|JC)?cSB0Yvf^<WT5Y!>l)&=#} zZtxrj3Qh^2IEB@MqWM^AF*Y&bP8N$Ry_5s#z=5ugZg_2C61s8@v;{uotK%=0s`=f+ zV<kwTaQ=Wp<pIpj%))>B<4?nv|M%Cz+>iPm0DeG$zsWe~xbWXe^HeGoc;bmCVR(2L z&OiVBPzUZr^W1yy{jhuY2n;C~orBX`4WsG4mbTG8nhB&@ldi2?IbyEmZ(2sD{#8WX zuB;mMy*w96xg4yRDZ}rtI37-JZGluiH&Dr@&>{y*sX~CB?f9P`){3Z9da8kY_FFS8 zzcp7G`}X5G_-!wpE*@y01DD567>+pn@~%5oy@1CbeOPrYmM&ecp2z9XsYa4m|9|%0 z15UEDx)MJxSFX<8)049_%2^1I1V|(UCK!`!1NO3uZT_~`#>QdSc)iYPZLb41PHPiv za*_~9fRKc89*t%+xu<ii>dG(uf9HPhtEwIe5SE0bnYz&Go(ivCy?E}u=bqDx=W?80 zcgrWsX{UP3lQdB2#i<#r7PH#3b?a9A%CEdvIPa{y)2{rPs=S{JuJvPz%i7_vvu&=D zQFUV%Q=hgIBEgB$3-5q|wGxxv18VYb0*FNJ?{QWNMmi0DY8KV|9)yuj!EhX)^`BFl zc&<m3fWHmn<2dKS3sGBMe%#j)s8gT2(QLfQGEJPlXAdmb!(?<E=~Rjmkgb`i#o4)9 z8o7&i!SL(uif_IaK@+*Ca#Pi`%3=5ZFaRG0QgMjUl_|Jpgoep30NrVy%5SI?b`XRJ zy#g%LM-bEznI2M^Y@2T#1I76hhd&<GOXu|U6)TG~v$<S8k8GiUYO{*rLV76({Fl$p zEj~OvQ2Y_gGar5`l439A;JVL$M!?=*{p~*|1DlT@RDfB(e!T$iy?Y-<qfy627hNRJ zb$4O!xZ@7obkogv=%KwB80g1WzWh~C=|zKHhW7jrD%n$nA35M{7|Jr4U6i$*unrxL zn@xA&G`R2fZs_<mJf0#|=e4Auv^)=Imdd!&FtK^_dem(THQqCgSdvX9V2maydwdUP z3S0+f5MXmIlm77tKQTKqv3sFhdgq?>_I<q8Jeg2DdmDZI{j#0}=wJTgb+UhV?LGr% z?l}wTOcq<WZGTp&fc2sm-%s>_`xBwZu+rWG?Y(#c!5hSm9Xs$_zx96n{_p=myYl{n z2JhW!GHYE^RjZr;Mg6E7yuKN)k#+0>``th4^_>d*V~t+Ob5@|h5NN8)uO>{_L2G&j z_4^-`e;ce&K1-B%o~iKiIUKt0K0NT~L9Di@i%!|RwSX>BA-SwlF8wMMW#;DRq*7aN zRAInEqZS-OTsvl_YRH%d0>eCa&NsH11n#KcOg$Js>B0~|`4NzIY>WjBAZ#JDyu=~( z>HD5m?4#t{=pWyMjM>EgyKaN$x!_j~qv(BhP~Nutc~_l(;^5IQ8`D#}gJuJ1FNM|e z3dV=6PxR%7{-)WC{;5%}-JTlGookxbktcoZn1+D3Z+-Jd{M^s}lvHMQb$DT64)6HM zcVl^_ibo!KL>!a1Y}tar!2#TI%dME0n81r(bT!`k*0*4EbQHJUb_Z^}@vC_7!H4CX z9~v5<EUNmB5%*PH46+#Q^9)a2B-U#2T8fMAxOFHm8hk7I+}dGO{hscwvL0IRR;J=> zTPY7)OBK9wW*+(VBUrL*pc%q)O?bA0rTJAHnO}jMwy|ZT5BYo+tvEy!b5;ykwPK8H z8NiRMRxbPFTkgAMYRjfewyYaFR88b8pKK`ZzTMV@KYHX4?z-bP?AW;*@A~QYw7+AI zKGTcmTJ(VX<3zU%me6B*gQ&guK8_tqlWp3x5x?>)znoOwpDEf*hXS(}kSi_rPW9~M z*K3uC&ai3+*mulZI<k=6)q9m3)axzjP-z3Em<l981WX-5c=Qm=bQ+Y4JiQ^i3di%X zJT;ADQ&Tv)vV_>SLEBm5WW^BEG;GJNO;68fR#ukaS+?57-2QoQAFM_RnE@DdQH^m? zBZ`p<>d3{l`@N`z2o|^ts1%w)gyDLCT-w6|On5(l@5#O02yK|TAruDFC?A-FTb+R& z2MFq=bL~uF@{x-7bJNR>?WvZJ908u2qT>Lnm2%#*&HJ~XanY-f9XmQ%UM~N-<2dhn zs@APo7{pg@xIrW$*(qu^Y8V(9N2O&WXtv~>?(ZMKgAYC=Ror5+0MAR|i(k9}kL*8y zY$hYGSy-6Ih7B9rsx4Gm;kn~_j?72dmLuj*Psf3;*f?vQQaeNAiodP_yw+y#c2iZ{ z_fB%Zwqmb<zJ9Ec^032?@X{00$QHAxxgHEZK%BPW7&h)YIElMf%P_{ru(DLb=)^p( z?r&i8SU+0g8fL(VBGlmHq75TBcYe12hOd6(-(LUnYhP?yMuS7MPe<emMI1eL1Yf@4 zdYpakdGK5h{R0Ef_&icCdhz{454d-Qz9=<YEjf{!E!wX4KzlF#Q|b=bx^)YF{ny@y z-~GMc$82c@sZ1s@C`ycpM3Rnn^_qW9iN6ThRI2m3#O3k(t;}__m<hBA?jHLZU2RX^ zk#OGiO<se0y*%Ak?_PGNz22=zA)4=r*0WF{IOs@ahpAZv<yEx|(qn?tlOA(&@K~@s z55xWa7-+VzGSH9Jd=56Xy}P;^j$_}kFh4il@|)XJu7g;ia9ECok<qb-i>U}frVpG8 zE``Qf2qP4tS`foNQiUy*PST>z%%zZS)UeuUpcSWnpsFgS5hL~+2tyBUaR5gD2!^r_ zyoCehJMX&Vhvv%<Udbe)kj<gIw1DBAyD@9KES{VX%kWlxOxdaYCmYq$HbhUIT8NJT z`D`EZSp%&`9V5HW!tQe}!pdqHX~z*)Q{_+Kb`mMe5;L}?r6nvaE{d$9dfj6~&Jm&1 zsq>54=}$Gqn%&`8vTa58=?3L`9lCky>iq09yt-v!dH!qKkakg(P92kSZjVNYm(R~& zDCeP?b_IkRiL>vCnN{2!1=#TFtKnKMrjN~F?>&2A1TDNF=OI-rAPfSS%}^*cj%VR{ z!(+Ja*rU%od}8W<?b^EWeR>As$!go59CZ1$90%XN?G{}B#V_EB=f4m?`lD}YdsOtI z7te+00rxJz-tv8NNQJwnIg35e-i!ZiFzMU6Z7Y8H7ymo<ef*Os%79@LmgmCF=U`e6 zDl28AhWlZ~K+y2v3>5LXd+$NL)q>6A&j6}%j24F&O_C^{cyv1*Y7pLOg?CgX)Z-og z`^l~H&M+Fmd-ou!He=#VPq*Ba7PKCGBlkZDBN!8t$k5G`mggtCHuXY6YM@DyCdpb? zr-LA>(Ww8<#EBEzZOcTp5wZdgQ;?Sh!%m-H7#@PX>0)F(AA1|-nP@eTjcX6MjxpIF za5qfk5n;%6uvAx^=x6TB#)tzB2!@D|es_N38P^u}@5jp2qu988>u)*M$gcAA<Xin# z9bP(zh4Sp~{t;tves*>>2pSi9mhoqf{r#N}-*c6s5Mj{5!1yL?+I6=05ID9i0R3e3 zq|Vof#VM5gi?odHWcTqRnE_3lNE4|-<Ec}(3ZqP%vMgDyQjyUhUQ^=M%EEU3?sVi% zmVQ-(tV{}G)NB)HyJ`H$%p8V`Sya+qa^R{ey446UYZ_R8)y0@OIu9>uV%?Tan4TEI z)ch=_mP*)B$RkLGW2yTeIVOfP88|_NW3zL=v~7I-M-Sb9|9vr@M)fvcZ-W4zfAn85 z)<1+Ruf4YYR8Ky#7eDA&du{pN7lhLuxT^~lDKS-<Lf0}^-%HM`7rl5QQExV|as7Ja z#>bJV*RhHk>|7e@!9mz=3JZ~m!n$!-5zwgAky}54;>09^*o5V}$l1UhGc&lS)xc5| zg2HuA1gvQ3H>KgOTH@+)^?Y|FSLr)z$;ggsQm4|U{!KuxB_{P}sMmE~t97+C0AMA# zF+Br^+S0i^Ei|9{jeH74Xqw2^n@DfmAb_SX+lR>$$5AeoE?zB{eubSJ)3TAz<lw|W zjXdyN9<gQrP_16QAYGcgcO^aOG$MQ4jC>SK|Dl}Is_}YeHdc|Jn}?s<^^AQ#;T>BR zT*pQb_-Ab2wE0hBulPgv9Xp70zEEC2uv#$dm3}{pnuvTET4t4dzUi9_E5ZNGHWscP zEIP*qMh8BqmiOe>iN|!%YRW)ou5TE{kxlUZ=64-beX?O%?4Wqa=W>cd_f#ZNJf|&F zfahbY$2#F&OMhvvPx~BK!@`Q<)2%9Hp~`sx)5g!FQ`naFutK^UWjT2uim`)A9(>zE zc4P?A;aMPV!E`LdEIRNyBYg5m68hLt@Pptzm33i;5vFEmt*K+ve=&c2@};I{H5JwF z=}9oTJ!;h|e*b;%gCF?l8yLVj7hepQa+*EWnO;1L<Fo|stZC_UlE8|Zw?12UCr#q_ zq8CpI=e<@#so9hpYK8jSK_JJR6&t9KF4Al$;NEH?s@IX>P0g@j+73)R!t)ImFC6H{ zN0w)Czu!cWw2ALgiRz}nbl>>2`AT<tygk;|uFiMMMYflioF8Vpt=w@|U0Y=g{7{@A z>4>^={5a+x-iu9JcYaTlB|7dW@oN7wWMIB4U`35|ANdk--ZF8OY2YTqFv`z%Vm+(q ztfqqi*K=9P9h{k&{?PpVywzyb1VruLwheZrjzg0Za9pagm_}*2^y`Ju<{O7MZW=yu zWO~SJuE2}J!_5X@)t8Yft-uOf$u{{uf=O8N!;S!RLE@=IR8Xp?AysM&yts+Ta}9j) z@iwtgDQpX+@@l>n2k+atYuEc$8=-ypzI$M=o_OE-p~4NrecoGVrsm#Pt5)DU4h|jR zJVYMDLn9c-WnSNx&3vfPpMH-8G<8Sm$pnwxR<nj;{|M~jC=AOH>XHJOygfcW2Mf;~ z$F-3!7G-eqsrVQk7v*v(E|r#L`Q1G6&J0S&yP@;b89Yy3om>wzcP>KHvM`p;;wS4q zw)SUHVx^s(HQR(4M2I{aq%Jv`G=ihYap0yqaQ-z{2^gO^Hiw0&N$l|~j14i#Ox&8N zFvCi|=SUZlMql-29dk3YSC(d%{(0N(&2J@*@ad$m6#6}(?fl>O{W?~b7V+}ey&k{( z=YIyrak><CdeMvT9i98($rbeP9RJztmwj3eoeF=wB?=&{vY$*1=tVD{$q?&!La{g! z5J!tan#RAfRK=xR#_^R#15+z2C^}T+h`)=Bsj9M(Ppg#^)Z_fCyY=6xx+}#Q^{5_B zRUIfbZ1>prartcftL5|WAd1k8!T{4#Sbp$+#I^&&^;i{#VcFjiqeQ+>8~T)!O1<4_ zG`F`}jl%|ve{F?f&HFxX-u1}9u6&52W&`DNNG-*!vxfJXT3{W`1>t`&ZR1;pVT8K+ z%b#Zxzg4y}L5&(>Ox3Hke_2?V-_0r@B?x!!*ag$^&}uDXyx50T4id&xjj?{DR;%r- zRhD7+t)X1pU<H4lTdl)gnFrBz<T$WBPk6p2X&{a(%07l|Nwq&lY{XIQ28b-g5sCD+ z*{Y{%hB1O>BV_}FQLB|V46}eB7&OAjvw)#g!|yw{6~57oi_TIt{)dVk|88L5sQyko zhWs#eP22tPsg>%l1*OXNEMlyjIPkS}Q2ouc9p6gonCGM)7#-~YbSCBe#*&+UbyzN= zR&T&G(&#T_A0A)V|KpWfL-^cJ3bXUL4QNtiVSL-!7+$vlbMp%#>FQcfy&==dA={(n z<LHqiqCC@VD#N5F6Fm3&`ttBRN8~3@=C^nAxVt-W-9x9H`(Wpu*f1=lVd7nG7MFPr zO4*bGCw_?7GbNGJa;{C&$9ZD|c=+DE_`;#%FtY_rK6(gSQzo9jYZD3seeem!S%K%k zI<G0N2g_oG+XRdJoQWyTEWX9wF!rHTHhulmHK^JS+eKku5F3X_amV#H;IBLnKlvNK zhJ1fNuSWvxd(n$05<jTh$Y}%IHIQLTjIvz%BGv=!y?C|<?~4s4m(3Q=O{G!D74hL( z4NI*Sa!LdHvA{1mwh7w12hbP_gsYpO=AtuHD_tp1C@uHS8gvh$c4%Y@#QT1$ofxo! z$?jEDsRYK<)E3)u&I#zeS}B{h>!4n5M5bxQhGi`xjvBDcieXwSb|&LjrlwXx!@SzJ z%ny{xWvrCS!N};y?Stvmz2y6oqfJLoF%1&)AW@~s#Zj0xqR7Y?#&F8A=fW8CIR|*b zXdMsleFSsHx(6P$x4d_`68)c%nbH?iL#eH%ZOmj-E}AVLrAk%6`?D$H)m0e%#mtc- zkA7@!Zsv#R2T-lo#TQ`ro-<`zOg0-BwJbzS%d!v3<ti5Mz2}$4jQ;D(sm*46Wd&|H zJCL;+J8Et!Z-h}_9Qe7FnVF1VUL9=Kswux*9&WBIr(xU0bQBF(Fj9yy?1n}<V|fF1 z+AC(3>So$-Y}ZU1UfqCa<dLym*sh7RVIk+Gu+A=^-_F4FT#Uo`FLPn-H49<=osnf; z&jYC0Y`#64E52vd4=$>fONguU^Oj%v?F+Y!{?$WA>LN-g5`%ORjpN(<ht~a!<*r`t z2f;8wddqKNVR^;K=2Hn3<jD~zs29%Tc+>VhDD)2t{m5@Mf1n*#BjLppXa|8WK%T?u zPllr}-GVh94c+EyYZaopA5%cxXrIUY+e)ZHS=YsnS6jF|n?Wg?7Hvs+k7Y|mU9K;@ zc1RK*BG;F}o6p~aJ03ZR<Hru-oScixH;rS%<_&1l<jN0V@cP2@w_PMqiC8w56Qi+u zSVgd0e{XL6`1OJRgBoHtux-zoIB@s9`1K!oGhX?QpTM<mdZQ$^&!)t_7tfCPZpTEo z%G!5XLPAkp`=Tdu4LU7=yS`AZR#%0)#tU}0E^RM*@oW#Ff0!l~d>=#E0^TvQ4*xzs zhl*pvJ^8hA0}aq>1Cf)#xti-(dlO$fpr(GS<#nvkRdr6gE~<8XC=z-Bxvt3tt5&bU zC>g(wdUbsx2*%0{&W|*avK%ZlT1aKnh*m?GF+w!`QfwHDh|vt1tz!!Z9vv%JN~kxR z@cR4x<;4Nx(igl4^V#gx=ERBD4=>EQZmTik#7L#<P18d>;$`yLtmhf4alHPn#rYGy z?|-Nj8h=QFExEdJYjyXdtM##=`aHG{d8usLM9MR8;KVGB%q*f@tsvt){ep;U+MtWP zq^xb#lLX*QwD=GcrP*mLRaehjTq*rfDxF4swgtad!TQm4Secjr`xb-QEXoV>u!9y> zmnv8{HiC1{x%6$@&%5Yaqp%L8#Sz$Z$A4#G??b=SI(W3N-}0<n1RTHbeynCvNawOZ z7{eYNmQ@&ATE&aehk<ksreh*wI<R3O<=Svb+mhkvNY+niGj#lvVOkTRV<50i(43V= z(+00N;;#lD-#<P7yYLDxEf)K)YBWQv&K!qTS^n3e?f<r&at|4fD-N=J7c1bYbPA@G zhMO(Sn6`a%eqnAnwoLR5^uzX2Ma1TqX*x6iSsW#uC4y7K#^}bK$QJt1Y*b;H*=Ov2 zzyv#&&!SOnAPmU=UaJQ4M1u*rE>Lx!x9V@L7NcJKSic6I&z*s2{!hy`{(l3bxICXh z$#q12RIRiE-X_ffcx~W$#?B8+wEPh1zBFF?!VBR<baDvMM2uF8Nkzm1T%=(|VTjie z&w*i^G6>vPETXnpq3ZywTI&q>VSnt0kMBzMGz7N>y#tsmeC}^Qh^t=r!^q@v2&mxH zi_<*fAIzsbfph<q2JZUeL?A(G3?=G%L#MrXE(ee3au{NrVPY(w$D<~YI_X4b)vncO zwy|NyY~`^R1^!dy8<PrrXU?Mo0JPS-c2CtDJ}oQ9Hh;&&L>bNargf23siI!1qY;KM zqLhHmM&M&+nYVGkF-*&YIbfT{fJML&1ZT5iI5Ii_*Biv#@^adSnRUF>&O)j3<?+aL zMyd_usmkM6u;UOJhl(B+ijISaYgODB1iRMl*!kOW6urasQni`M6YgD&(UF<abl-o! zU=)2}fYs{C&m3E-{pP)grw~TIEKjz}(+u1imH{)0&Nkv`wPoN~#cv^wTGzT!lnW}W zQB<pq2F>QM8yS(AN)_wX>WjB+-;PHQ9m3MW9M*9-cxDE*rDfEE7VLZuMOb)Q0HjBU zu<f`07qYuA&-slY7r;QHQbx{S9-KMvV$6R0GuZy%VH_SvVRF}I3=Iy7t7kT!6CHUb zUYxIZc<(X1x@=&e(2qu>h8#(Ss7F3nBxMK3a!f>iC{<I=C5QqJX%CK?QHcCVUcb%B zWiF^UfA=9bz}$)Bh^kBXj(O30TUqPIS~C`DzIGSKHbq)7mCg!(-ZG6~em0mL8W}+= z3d!BZ)-9X!shpc?HvKMTqwg<tC#u*#icGHX1Fy0_{yMQ*9wVDiqqMRLKT!86!r<>m z4w2G|aU3fjE$NJPL>AOn?D&)LIpvaUt~s9xP`N+pqKkAIzp!a1-nnB3Ry~6D<XWH; z0ao@2*yRCUKav?0CP&Qx^$4gjF{NxLyKZL8<Da^f3IrvpGW^YJO}>yvA(O|<gNNZz z(lQEjE#Kb~`oRwjxOc*Ym&xEa-tZQ@<(GaQm%j8G>1sXG$4W1HamoUBeR8p7PZb7A zJj#Ws=X~0WQy_R0R{;!HD>#sH>5};vvmVk5I(p5~Nv(4EYmIBF4lNbQ8>!~4ck^BK z;F|s%E}NBoJ)kN;zR^O{@!=)aeA_UQH7uAk0D^&~Fhq-BAr3&&3n2=tcRuaPO%p%+ zCx4EeXP$}o{nC3;I(+aAhaPw!GqAkm3^)#Qu7|wq!l9kI#cg4t)$)aEQTAKNZ`z9I zUwsvdp0zD1rm%jv50eLNT(o`|=kKiJ=5IWJiRsC=my!Ej$FiHQz1FV&>52fzr)sU= z++n2N>l*1pO(*q+ORM33i&n}%O=7P(yNV0kEDGKbLf68l{W{#SA=K)1Jh<;6yda&! zx>OFwtq6Xt0T&i_cm?ER3wCu8g>zqmsZG~lao$9!RKwP>JjzRT{J&4!j=}9)v2$=Y z7Sjs2JA(sK-ITg&7$K}TMdigD9Khl8O?>6{{dhyrL}aT9D*?L6VQE%WZ8f|pa}OLy z<S-|@ExMD#|5B%%w2yQayTcgS#mU>Nt<`@lWUYTNO*gJL9$UR+Vp;4Tg6+8SnU3S4 z(P%CnKYm1#Kh7iV-@iXMHahaETqgBb4wHu@vHZUFL*Qd*WIeo04uRi-ol4=^5UQia zjz)|i^kF-W_&aEz{DhXlWIH)0xoy@KsXDEDmAiL9yn0-9p$Xap0{1AwyZVOk*7XH6 zGa2Efw{M@kW^jGAFg@3r*AilJ_LNA^lj&tT0Jnt8u9_;808My%HqU&u9C}xTfsf5w zwqT{+#N6ZrM&NRN(s39UwTasgHq?fiI&=`<`t;{<=EWBw+xJYE==I`sj93r3o({lW z0}yf`8_lNhB6~dcUYv?iHw?U>ToX`yv*#e)RY_N~r%4Mt0p^_>bhj(2=CpT!Ye%oT zBO$3>6!j3Bl40*iKC%*}wT}rl_;=H9z=;BB`%7g`7Ri#WvWKzb80UB?oR!OqvQBBW zgpDtK3C3UXD!`#V`BA+1nwKCQUitH%{J;lrX1R*pgCo*jcMJm_lai3t;25@J!7^hp zc6r^K-iYC$ek@E*qOXv}+kf(>F#Gj+*x3xS=@5GlPvDk)GaHLT>%Q%!oTG?PGU9k2 zVjMyo9S*{9zhM})(5IIJb?6B?6q)1u32t3}Prk2dAT=6ApFGF+u65iD_9NK7FRtH` z+qE^@bat>ek7gKQdSM0Uu0)tFcnAt1hEr*L;fvQ{dl=zWBb)JPtB%FSBC<^%7v=^r zXrvI>z(cN!sG7qCGgWNc(2uFWMA|elTd!g9-mhZzVFz=T2{Wv~n{Q&2>y*u+T3Hp2 zb+K5)z`y{qfr~=_07{!jQ9ZbV?7$G3%`l-tuqzQrcY|zXQX?SM+6bmYbEimDMmWqD zrwHav_;G{*+rl~N^e^0E1h-Y1EqDnr=HzW<#6AumdPITO#Gy9|gB9DfQOFliVz;Kz zGL9dg`pYwRZNA4atXsd|)-@B+_H4(q5P)g57oKmfZKA<0NLzyS2}GiX6A2ZR4|LSi z^yNWwY9C9FQ{D=ZX`p3UxNK?x*Y*!0$Y)WFNoymDFkz4$MV>m(30`8v0o7Dhbk5tD z3T-fXV}&73B#1<>U(<EisS(i5q(pJ#9nV23v@vo2gD|2R@<xHh2P<s)Zj{jQo{1RW zv>CU2>I=B`ZEwQ4FSw!y+)s;$@obM%0=ReUNmnQ%7Wx7pG?%>>y*L%4Y5-R|9%elk z_m)c-l%Y-D9K}J=5WxNzX)4XI?pBEDRNdFQEp|&vYMwlwUt6tHst;}Qto-daedXks zROVRURT^-i{2d^|o?HQM+Oiol)Gcq+k>7a+j&9t9#l<C5OC|V0h|TAohmq}jVC>zC zWe)I>D;veg*bdT`lE5SA;E<`6&muq2kKw@)*de*t5$2XxVJsX6T4iAK5LRnVgkHf2 zjr0YB1H}vS`4k*UOkx;e5H*{P`7jJ-gGTF6y<R_DZ8eV9oApC}!#@#3SjYsa<tU14 zs>AS|X?KKLby7?WU?hnD*V(amt!vr1F>m6oEyFM~=_~;+m0fJo2rL7&Mg#w`{|F9F zOdv=PV0v;AZl#LX^=|_Gt(<0nE5ibE83QjL*@{Nm!@o`JMbv8IwfpZvbnmCJ*xH4S zUJkPlF5&p?U&k9SNMmMV9`_$OhKczp*<P)B3(tSS6*%jxvoJk9gT=)~tge=o;atiQ zFy9J&<P!ib5vY9`nt>?NC{QMC6WI=|q*|^ioP7agR2s5k_?C&CEwgXj&Ewlq1=Dea znZSn=MaUQy!q`OG3Xm})EY4M>Vyurg%d%Fg)d~jt`Y^U`9hR1sF*iGFL{WT}X_~iw zKNWWZV9Rol&5<5d6r~W-M4pYIsVk1nE|e+T`3c>|M3SX5HlYX2lPA}>BQtcuE~6IA zsbiq&y4W?nh!>Pfi2AZ<5q~G=v@%ShOsSG?W#TNn97j1m3rj`@T0_94cDwqw91F?% zz_5~ng8p}6IA+<Hy?;OErVgVZL>VTUh7tOKAswA(C^$&lKQfHZ{N>*XaOb(vGiW-s zBYw6FA}iKeM-8#-diR_M?n>3d7mlsZfxLu=*5k7G;#3dbK5CYQv%?4vH=3xro*GnD zZD~`1__fpRnhMjtVJE+}JE!Kb>j74VQeZ+?^}Vw!2G6~ArJl=*IB6P4>7Q?F#UX+) z#%dH}nafJvPhRzMt%-xB6$~2|?)miR@cEm+g+KWFf54Uv8}P1oyc3`KyT8S#;b6fv z@y$jR<!VDJyPI7P|K*Z%V3wPx)LO{obEvPB@%MlHXE-`F2|El?T3*7#4?QRr_Ro9a z^U*x}hcQ&hpm^dK`r`Qd%G^S8Wg4TlZTF>8-dHY|8^~p|qjoks8s>3sfmFL7ae<}8 zWvf-TZS(MIrTVbH8a@)V{K+7Ur!ANhW^7Cw1{O8GA_3#DWnhP4Y=1#${$d&q_Ibcv z+xyTzGz^=|YqsE1s?l|k$z(8)E8?L-29<0I(Mk#X9@&SNXNR!K$zq~j#*ks-lEHBd zXR^qrQpgqZ7`7aQl{(yP1~Y{wE;+Lgd(OH{)?x9L7vVFX`4ax$U;jPwZU*CH>rg1> zrSq|Vd_69?<Wf{BtGMpE>rpPRqEILzVshmBqQ$S=H<f%YYojJ95By7b%1IZ6V9tr8 z!b-ERC<<Vz;wwzsL}Z(={5Uga+IUNL0DHp*4jDeC>UBKSYGEB>Nx)pH)Y#6N<J&aN zYH4{zl8BsF1eJ!?kB@#WlTLq{T>B@gD??>c%3h9)ZBp*P?bP7e8>+x<BAcQTQ}YSZ zg7ke)51@CS_xk+`x$ARZ&kC@M()3(xnP0|>X6BJ9rcvikWOAbhWrW^Bgijer4pQ@J zVc`qKM$vo}ZANw0BolCW0I6=BQjm#Z2IR(D0J}DPz3ad<0yGv^=qIbded6*;gQvJX zKl9844VjMK{}Ar@;+JvhD_;7Hu1hbT$~bx6>)Cxx=uY14=X8ag)i>Xln-6a;>O%DF ztfKUy7f*HYET|a3wpM_bxhY(4gs@nh6QE_7H1Q#Yq1%i_Q(n5wS2P!1-{>`v?<i0x zz^*IoT5e7awG!a5rO#(#Y1Q+*q>(+>FH8VOHS{qbgyR01CbcCtaJ*H=L#t)1_yL+| z;r_r!B_2fDb!9#!Cg7T%L+GZ^a2=GJAxh0UJQ(OR3={_YVEJW)O&_jjBULjobKp_@ z`u})8+%Q7QG_Y=b4CCuZFh4UL%uY|*JGPEvIA>qijN(^KFP2fO`i>vA(*A0te|CAk z@0cGBrX8!#OL^N2+gTr**2Zi$yTLG=oiU7oW?-D}rL*Uc<@?3mR;WT@z=7Q9Mzt~( zw)|<+jE}=G4jFNLaJUxyRL;uSjX1=^{b^*1eXv_h2wEaR**`RhqsNY8d8LGbfniJ@ zI)+>}i$@nuV6+zFykZdxtrqH0jPXn#yj%vYYz7N<j3uWAV>pYjVBy<d8ReNf&_6MR zo2REyTAspi-vavGTkwjP9l+?=W=t%fk8j`CKot78=e~PUtJP5K>%+vv1U7Ems6d}- z3;#W)iUupCMy%xf9O}y`$ScQy99JfyRw#q2wwMShfX^w`Sg040)d@SQ8OPu@*kQQ1 zB%i@_Dvbj{fC<aQjIBB_j}sBQ5{;&hg9i`F^85Sy{vQluL5*L0ci^t%#aqIc&lZNI z`b)JCR^Fcrome@?EK8hY^<emSTW^^s;l4|x9@oBJIVtPsxbOIz`<#yjX%AcGSMZ|a zlgJgaB0npc84&^{A9-D&DkEn`#Wz4vW)KGAc1Ex+ojBpS^FFMGRmHhkOq#leQCW0n z5+EHL{>|ehNhI`M6%#TGb~fem_<JUU+i<m9!dL$Fqqz8`*F2-^(u-a^CxLsLS1UYr z%FqRZEW~NB7ri(g2UQJV%=0i5G*F5HIjIdJ7Iq5d*&Z*t)n*>A(4eaAT0+uNQh>3d z#jKT))Rp-z1sYjE*8nRYw+vB$DH@UR(+vkW5C+&gb(HdJQ~7NA-g95^GVjMPz2e1N zHf=JO%VoUi1<%Kq?z&yMS;9oMRcjBs$}%#pP)(RfgmH*43NT<q7~ZuL3rj1=q@2k@ zE<3+@%a((=Lhe^*W~N88sr1jr#r$tfFRr2)#B^8nBbbyaDccT?r7U0|>mcnps5V<z zD6OEfvf>00GFb=xQHXO*$Jrj(>GNQ@J6gcHIJVX~p1W?oj&-rG`1b@pgH0bBR|0rB zn*GEm83vk-0Ify~TQ;x9$nX$`hlVgcJ&of>jv=2;VRXQS=fp7AXR&+xMOZgb#1hpD z{TRhj7mcEc<;X>*7@{x`V0y_zx$eLYr*LNfjkxV=*W>7fhmnCLyyOMImSNzW*8=5w z0bl=@RZL7QppbJAwS3$%`z<Mo7K(+oETAoegmmsz7WP4tb3z6zBSI9ja;@lC1aczX zEkI0+o79oUE=$tlCEyY(u^=?#q~cp=m&gxf8(nI<xa-7(&@sHn!J|<ma8bY|_i^Ai zQK?j&)z$A^8RPe%9{BL^Ft+YE19J=W&q`kV_X@4L<GSodD4q201m1PUP$lWAv!-9F zlkGKcO(;1H$Hw~QGG27}82Zy5YUvaV-%n&IJC%FxOM}OvW5D2jm(riou@kbp(s$Q| zH5LQ7_n63AjwFC46FT9?M^Z_bqsHu-!b@gJglZ+9$Mv_eRHJ#OV{m*NkKB0=?)~~V zaM3j{?kUXl;u($S6mZuk3N7TD%|@4WT`ziZiiaeo<dZsp=TTU=qWB2BK}J$(-{Pil zZ&Vck6-BYxF<I%DJSZTb21s=kPFL7Fv>JkWO_`B*C69Mg3?6&lDTh@{II%WeQdyBt z-ofF^E$c^+^-^$HX(N3m3Q?^!kRIsUKeTz{t6uw~Z`@iK+pr&TWKK^{A*xmoQvNYx zqZS0H`93_h?xh-Mz!)gNoUe+Wc(WCV7W(GFVdNbL!T3nCoXfq&PPz9C^c9jezHumy z;#<j`|88wjt{wp`!K+2rSHt$L*eIp!xYTO-N4eevg`Qo79Y<EPWo)X1(Z&~@Ik0ZE zVGbUe3||&T@oTa$;rFL8RdmouXE8A9!Yj1k6k`-qOBl^I;233`zq^Pl&Rmal*2g(J zb|K{$7#|F=c^hzSHp0R}3iW1)Gj_6@5nyE*NVyThI7ZeouyxQv&e?{bb|2Oit9aqX zRrC!26ijiQG*<mx_=k_BamU?raBUw^jVdstRG9LMmG=i9d=O(}>#+W;-N<wQ2N8m% zs&rb8qELy0B;UX}R90D`fH^Cp0=8Iz4+5CnX3883NV_mY+dNs(iv@EIoN^wCQi6{+ z{+m#*MH!4gR9Z1jqx`*`GzE+{>d0iXIPb!X1VD;*`*SoDa8~ZcRM+`Vmg<VL&i$%E zdfPFet?4f3XL8?UGS%>06jp1v^1xvXu+mN^UB2IQ5L5CqNz@reG7})z5Xyhb^@p?= zU&%d^`a(%cld3Yw_=9c1OoqsLo=Vcs?w!ov#4s#10N!f&Xhnfcjc}1te2}Cs@}&Fo z42Mwp9S`65=qIuJl8cZl7Ugkv9G~qJi(Z^6(YgOV>w$as1&T&5jTZTSJw5hboCcvJ zCIHt(-109n9Q*CT{SRJl0t1NRvf(&K5QaCzQFLACxl^cBVN~mI2K(VRnjQfTt8R)C z)1k_A^ItVxMjN!O{dg_$*nXrfCn;(oLX}ZfcMbmK+@#bXt7}q#RTX!Ol92fvqI3qd zI^sQ^Y-4E)n8u6Ddh<W7`|RgFzww+4{O#MeIMZ_r7+x;n7q)CgUtb?Sd3+KF>SdwH z5HJXYU?q>kd*oM>t^=UZ*Ds1HrV-b}N_nDT_an6Jgfsi(lKdonQQLrB0E={zFx)(7 z9@#Kp9J%!D0c;#E{Ls>BBO*;VZ8Z>8BJ3*}$n@E`dW(srvX99bAAR{{tRG&$(a8uS z{b_93<bno8)@%&N4be9gp;7_Dnt}do6B|cNxG~LaT#OD96osfa4CKZ`q`d&S>>%Rc zrO5Tqpy3CoHF8)k)66K3>%VT`t2aFg+o&UBrIEH>G*|&mWJ7tJRI61SJ9Z4q%{o?0 z7w4db{zd~n6+l{%s+J-`P;Uw-<36TSC;t(;zG%T4gk83Qu-SxR+Hg~@>?g}I4C?eh z_7<e7>8!k}0m!vs+qS%o`<LAmjx0t|6ns~p#7cX$D#y&lmpu=j=b^Mx!gD<|5O<lB z%1p`Q*$yOtT(!K~)%wQ^k$v<$^sm-&^`plyp39&vuBeo76k&OF;#0hzYBh=EY|LSB zMa7ey$W)REx>{&*PxcAO6V9EOb#c&?vn@&b%*r}JKf3_Dk2^M28$Rk(CDJpt(z1!! z=^>E@&v?YZ;K(5Ex#4R#{Pu^i{k(HTS~OG0_lk$l>WFbF#<Lo@YZ<#B45UR!O=Cun z$KH$6Aq)b}I84Wj3x9@*iT~<FEo$V+AfTu_xZVZvBdf2sz4VH;antX(Ug}Se-E|k- zp#f~)w$)QNZ?&w>Z#@graY;;`Swopoym$S#0_HpiyXQ!B^<KNN5~hoWG<nTk)jk4h zR;hhIMCb<asW;7=c^tuKCASqIWn--B`>EJ8y^-Nz<ob$myfk*@awrt?=yR2`DR2Eu z23UnlO)sLlQbvoCkfifih5$S&mC#2fA4Zu1eH`W%klV8UsWDg*NlXr0)?mZL1zQTp z*%1Z`*tC6%|LJX;OBcdS!LX=9?qgvkK%Z|TpXGohX(GUeF+=DoVQgb~(11fRdD4G8 z16wz<A__F47%Qa^rb|%U#6ro((n^SWt%Z7vocbpD`KZ-HR90K4*Bhv{3{)Fw)M}*T z5R})YF|%A+MYFkzOxi;+l|g8kVqV3riwqu1LZ%X+^2{9WPrJxDG4d-BOq&&08`-oc zKwb7c2UGn}=nSMNIjp3%VmKLBhEc^)Gf@g5=;OZ91IgXN!^`thNX1M?jK_2TE%F%T zuq=-$!!V*&tJU~Ul6;~r)TkquFXHU;FH{OTOd?JZV5QDo11Z}RxnoUL>w3jWehr=T zyL(=R{|ISfR%_uU$ELBvb5PG`CHa-%Q=ZS<XEK1A0C0zNwS*ccj=2e~C2`J;DSISD zbxuM=0266mzeEm}(llyW(*2+>K%x|*#3c;uo1Df<tD1ZQ6`@RoF$cnZ^O=-`Tob;J zzVT7~<FCG7*3)k^@#o+EiX6j?jtN~ao(*B()Qx8)aPP?9L?~BQ<p$FmJnhA46&xBf z&2`b<2R>mPK6Hh})-<b}t|t{NaaBx)0j+AKZ(#p{KPjwR_rkhk|LegA9{5x~oo;&R zbe9df0y|0qPl0p|yt}0!JN$LUlVxa?8SSvDTkaY-X#T8z4f&rfCKu#Ii}Yg*m;COj zX-tu?YuPfBB95Dusd&37$2S5adw*~%{w1Hm-TNNFIV($`4v5igp+tE}CIG^jwb1Cx zVc*;`QsoM=!g=SwoUE<-UR)Q_imElN-u)olW)t?==fk2d`S%-|=D}nps3Q)V@LE-* zQW=;iAf2(cUUOyoo4a>K8*42eQS2dz45Yj)Hm$Q!s&cr`L8VFkN+6RBQ1zQwUTk5t z6rj;+V71yrgKm@6Kmd8U!N+_wYc13&O_XcocQ=I+B--9^U^}+ZM;ynIL05<LBqt>_ zrBu$A?aSfD;@}Vt9eh+e92^QH<){_-X!=27VQ&bxom7`bql(RAJCHeV3#PvLFh<HX zAd><bfXjr1RbPwwV<>}$tk_#-gjTa5z|YR7VWt&eBW*?oAjz_bAHV6F$z(<1bFH3? zlKCu`OZ|KmtLADQ?V4qp^WW))+-fvXC=_u1C6@}AqARMCBz&hzs8f-h3MEU}?TD(9 zFAkz>`bM|RYeJog4YV8=`5?qq2Pd#ImqsI-66F??8t@!J)|5F8o|^0|=}Nk<5?66` zO*GsSiAYY0P)<l@BeZ7(uOY!&b2zD{(|wH~p5qagiKWAHsLjveG9G70VY$|T6^Dph z5yD0bF^5y1H7JaZ#C2tK6^8iG|M*>LPQ3ix@4)(<+n>{vtmj(9Cv}saHHXOQ2He~7 zaw3)1p!}MgAU#@4FHV~fS3#Q~eOK%5yFcm8ojBXf=j0|SU^)R$JTDZ0j}h7ym9%m8 z?CcNkY=%F4Z=-(m-bePCXY4*h%ykrnrQ?FCLQ6bqnoFlb-T?w@O<Fp<S^3vvez&=^ zF$;FAd`HqsXHa)NT&-idUPhYhooKrYMM8DtUud3~xo9<t%#VHYQ^==0_~YXUGC7p$ zO<YvWV2igIInzL2A%lT4w%|+qj$v+c24@utxFq9&KCBVVVz_-IS>b?W2&YiQ;{Ibe zeABlvvgb@#DGx@96+!yXezzN~me>hk)+=b%d?ig61&C=xWZ0+&?!bBHxSt#u4>uk< z5ny%IK)JdqGMD8_Brc{?Gi8*@HB_stk~hS$v(e&keF(o5z^AGX-6N^cBAVCga~<0f zKu%SWOg4j|p(5N=8mV+jz&g3*{I1khH<_SC3P{T+gaC2HAND*4jam)&+<h00&(6T{ zQldUWK%7dYkV<(-r&Gx1`=p|K>7^H=X&Tr&J_)n6jG@4X=|`e0!=!*xk*uD&tq6{3 zp=m_P@e~QjqN8nWvBMG|N?WYd(^=r;Eh~>S>NV7);{Mn$O>=;WN2^*<W_m!&vfZjw zaMvu$5cl5Vz!3JFd!8gSth93*oQlz=&A5(m`MWv)ip#EFBabAHD_&f~1PYdgA2)1V znsrbsX4NsnYlQID6M742VA@SphEjcm$$1;Md>Jz3^+77_Jl2xjmQs<zbC-falDun~ zS!QP}6!2(aXC`ICXTrJ8z$;&SK3w-=xxO`4Rxxp41`i%yf;T)=UB7EH;zm=bUC$=s z1HaSK-iO3<;@j}?#y|aoHdayG_fGMn7f(mTI9=me1Kd?>G!(E-wHO_b$9?QYFHXr| zD?F1S6XAu{-Ut5GnVZ~#R9c1*rQ^f_z-FW>*p7wJHK@d<C<1YeKF7vYeuPh!DleFI z9Skij2sl#}@oqI4HR!7O>U_R4H=?WR8q9az*I7+v?7{|E$1|Y=?mfqq<YKl`6Ih&~ zrg^=FG<o!<1JAbLnzm3)2owoGUCVF{#4eXP<hU5JGU%&YFoyb(i5-mlHeA#Yn*oM1 zdF&n;!`JS71P_-MF%h&dQOwHVYdRUulmD~8oXsLLx=uc4@_`31`{)7mvohv~NR?}7 zIC(I=plo4x2yd4Fq*?)5Ri&`f9tu>7D`DUdPfefr%tt=gyx^ZcT1Bbiqh1fuYz8vm z%7QcZoopX+%H{i-0)DwZw&e=%pZevLU}X2fwoRnGv{a5oDld%Sdah87GN~+5=`<-M zGEgcN*O)T}4w|i|+{RLlD^iW54GFNfEadYA43CVU)~w^4v(Lk}ZChnM2>xByQ%W*0 zkWbcS)27Wha_kuHE?U^T$;0lFkA4miTJ#R^(F{Ta7Lbb#TvoL(P6k)X1sqcuXcFWH z5o`_~x(5743nve!wk^F}R&XD0Fx4>QC|bw$q24`rrsLQZ&o-yl;&xIkS}5c)*tO?u z;eZpwyVl7y{8KX&J)_$YEtwu@ch1!7IKbZGx#&1}U8RYaZXQJ=?TX~87=iJ8rh1S_ zN0H~wdoRI!jIhbBkdN54U}jyRy1>>vc+zV^k#uC2P_8F!$;ZTmi6?{1+C+*jlW^e; zru9YyXEcqplb6rre$I~MFtlSF+h@v{4bxX5m-|RP?Fq<#R`A`sV*OB`TpVkaDjvM) zTS#RyupArP&OJ{$Sb9#VJ9@*cPesHyo#Pn??z)1<n-FO+yy@_U(~Dl5Zee6HXdXZD zCfs|^M~u><Y2<T>UAP4_158IgCdNllH-Y}eRh&@|;AT8kGmc_Z5aXP|L7eMkac{kW za=DED{{A)7=<+!USnmv~p4?XHXVO&w0RR9=L_t*Vs8Dp?qi(zcJQJ;Gr92Z0a8h7F zwd(7&3Woaz&_6JQOpBGW2tK**F^~q643i!7#7)(J9b2eV@0oZY0!lvcz|s<4kQv4~ z=d4G;E#RAzcj61jk76!vqTssNv$TR{+C{O@FOqW=;tj`!!z#N}^&)u1zN$AktfVac z7HrQI05ku<Lo#z$v~8r)Ijp#Ol$|^RCNPOgir;L&2%E^IOc-f`=<X!O;Pq;_S*u<* zJGXdAwMI>L8|hRUmXktXR{hP2sG_pCs(NlaV*9T6!R$6D6B~kSs^ny{Iiyl)aR}YF zZy(B~6<l$}^H3_U;?6toKsJ*V;4(hG9-FpoMn2asok=RLFgdVYoj@r)Zvr_cZpA`g z<^-513=H%mpU;ar3Bf-<i$IrJ{QON%jJxi-Th{&l`|m@pzYj-;1`x)zM4csoo8|X$ z(6E4qQcb*P$-|HzqY^h^TO4*Z;W>^dlEjWrBPPSpCE4Ui)Hj|eY$>|UV>#|)aU5+Y z^5nW^vst)~TZtlnRUfZRV5oGH$rrHwjI)G3;<x<AO$1KmU;@S;iZ^(k7izkUI!-CR z&Y6i2jYbo1Gg5fnU;zy$jYcC7S>+&ViD6nDG3themO(m=g{B#!YPo2p(>T*8V^cmr z)CU3XvCL(VJ`)IsJ@#BR&p^;GlvV}m3EE|Ea6OXbO^yq)#;87JS_lIZ5fzNss<D(a zGLr{yEQ@W1_urN#D@Rvs`wz+)3(o>&$j5}xg|ZoZ?ZY3I<1q|;yyVAz3>RH{?PDtL zJ<$GSqqqH@ao{c&mN1YTLZ!yGH6?+2puHETS?~r{$YSOG{qOYeyYru%@-mRks;N#^ z&Y}qZU;*{Z&O*gDv9eOe;q*Mh!?U=c;lp$txtWqt+*izEo14NN^<^1gBj_P;)HjTd z@sbj1)a_hlu*Awf0l2;_XdQP&fniI&`^KXTMF|Kx9Wn;F#gnBa6r2>sV+$!mWc;MU zPE(|u?Z7oHq0eM3M?iGW@!;9EaN!GH2G>s>!dF(Oaqn$kLnfC+<QT}Eu>m=ggQo!w z)|<$t(iq;dQ8=fo%@zW)Dvz;(90h!-`QFI)|H{mGlfutUt~oY!5|g3XOnnt@vxdA~ z#%!t|4a1_gJEB%azMvz#+qJ<&z^_zZl*y(p8DGCniVk%CbX>|HDhWwaT&TQ~h}yU3 z43toiQpS-4ibhds52Iu2FgH7ouitnh_C53<<`(CXwH;h={<)}DYw%kwG))szlP9om z-(D1oeK`A^b8*(5vyf%N*J=uQmwhA}>#Sr`LeNG!oe|($uUB#R-FJ$541v8i-cs8| zfhyOvF*!MbiHYM<=@v>2jf(<B>0u&}E?BSvfbEe-9RpuWx9}rX0yoYqD2hh2(SpO{ z!%M+P*%XFvZ$FovizvcP1q+SH1y-vFx)LL9r)(y(DGtN+xm;F~3c9*lmO0a?*G2T3 z>*F{!)@|B~zJUP++L@ejuHiHa83v~eq@g-xwOY;Az@6vimMvQ`FffS1zyL;ac{KVn z_@rxNmEfF4XC^D?7DCP|@Z4gjNal|tG&su;8+g7MV073;EZsZNk&)q5mCPq}vPAb) z)MjM=QsX_5tzuVzk6Aqac|G%`BNA3(9GPFnbg2fzWx|`naMs4aP#!_bLeOj?GHOWW z&EL0c*29)<ea?JB4zkZo<cEf2Q_$q=jvKy&L-*gm24=1<EaH+^y%OiW;Ds`9eX0yi z|KQ@;yYEj6;I0qYYP~8|fbQYAUi9L$3onJ{@u{E0Z8!g;8MS~yP60gX7gKei)k6Li zS7Yb%uR!fvH(_J{2);45jKf}xGpivyw!F2*x&;imDa2(`&YE(AV5L_Nc57$UZcTRW zirT&rxB2fH?5k?Jo()&8?Ep}MxoUN_4FXfSJp6hM12FLX{xRfT0(A$DWg_D`=ufAm zW$(#Ar6VnORdu$78ZwZ|;+{$gA74BUXR(4z#X~NeK{k_1D%mc4*Td9u32ECF&`-Fw zQmdoh^2K>ImvT*%O1~O3T0dnD#=mRW_W$EcPTurBT{PnunV^PU<tnB#c`Vivt$BID zV_h4$ErV8bqnq-i(#a}0w}DD<xP7!fK8Hi~a4`EKdLO7EUT!bS77h&!<Bq%T#C2cz zJQf${k#lV97$_p5dQ810+c}-eAeYZ#aCj7}l`<9<7VyREK99NSDO~m9Yvl7;c^B#u zO_Jy~&)ElVSD`Q{T2!r8mDe$u<8dKQ_Cl30RRSWzoa#E9$)sf+`FfRfM8bzxV+m?7 zG2_R$%?Yq41~&RGsKjlNI@9vu@wl_|s5sHA$BqgMGwjgBF}|IOam0?132mw)$#x<w zQpp8UGv2?TTrOc{Wko<JI{>a@?_>TY@}DNKdFLMF3Wav%{n>v1_};}<bsp+L@>rdW zL(Fvy!zdbtkxhPR9BdngF_=oF`P@hthDF=9GhrA$pYP{!$?b93WtYP=*?nQ+<>LUa zCkdy$ZI;wlhf%6E;&93ti^#wWD=WBS$U@*+2&g7RzB+vngyxc{&REHW0*9lmq!Y*E zTdL7EVvAHKUPB@Q^sbvi<wO;C9bdqHFN85vM2g)c!$y9!hCTCDY~4BtGb{3+@Vp3x za{Ujd=NeyggRuH+r;W?`9)_5nU0CyYy;8+}t<PiES?3_t-=};LdhuPN2h_hqv`cG0 zkkA(iR)<&#^b>ixUi9L$4Bjj=8Pp$s<X7X{Z~uLlWh+XHv0^F?l&X3evJE~ki1PFl zcJJPWEj!P`d^NzahaW)@ds4+#gkd$jMSgSSw^TRlB;^>T*RHkQI}WHCoa^U0&Zs)p z%FK0FYSZZe=|C30bOKIQWtrfbfOo)6VKkFNinNVn2sY!8Q_UN^C4BcF(Grh?5FSgh zVJwO#kr|@~pxD=k!3`TRHa3QB+qPqTd>z)W-+-l+Wjye}gYX*-qzE>vWh@^(hDN!B zdb5RU(?vGrBI^gkXf^-b&Sl;L(|8r4XhA4FUGyOt`~|Cy%BJ1n0I-x0A3sE!oEj~$ za+FnEakpzQt)uMGk>pd~pWj{6JUBQ!GBSeCe&)0I;tkiydu?*hIe==ph*Nd~y2xLT zQ7V^({v>8Zwu4+gFLV~tU0(UBS0R(hBqluinyNY}n$OOEw_3ieCqX%1&q}p=Uai;Y z=!k&&)zwvTbmi-TnyfcpqnAS<$n{{-vSM5K7FO|UKZ__dVfwKs{iN+I9&I+}?hWQ| z%TjMY5fq%uq%ddL7>F#{_QgU@wAQ)b^bCOGIj`j3r1NlqmfO^_t$Udek^Zq|>vj~2 zeW=x|&zN`t_pt!&L{xpPZhBjxiD8<i=~$L&8HTZ$IZ+&A6fg#p5s(dW9H*lwSYId< za#0lWvAk=#Rvg7e%QBr-tCb4^GabiqDvtd%#}?OtvYcA#mB+VoIF3acRCjl@kFpk4 z?I^YJ7~x}yOe~9PmW^$*3%IQ4BhI@BL<z=(;iV8c5sXF)1{*1IJeyRMfDxH6?6lCS zjJO5MF%ViYOb$eF_#tLOVWT`*#Z5=25MQ(nKl<`lU|?tiW@lz`%T2dp#-GJ12U-tL zWB0CgXt{>CBj=;a8FtftwY7QV-$@&Mwg)%o$-SSfWnyuD0oQ%>LwNnWe<taW^;Bpc zKh&JkX&A<L$XJqeRmQ_(`v=NnCl|F^X-mrWKzlDv+hEl@mqmQw;IGFI-S@jDMe*EJ zM|DB@$t#!8IL5-Ghw*6EK{1_2m>$B^`~v!`4P*)#;dBcZp6{fx2<Z}C?x3o5u5NbP zkV#(~*3vgL{YC3RcdBuk7NeuHZ1sK(=2bOWJP#4jgMq+CzAW7oW3<8m>DU%9p=j-D zh%ydZ2>c*v`3F*g4NMcGTejiK7rh9VUw#?RK5GvK`};9EHiBcvCQ$4j5IRSb19nD? zmDxE=KfDi16BDS+FG|b0>NrSyE##u$A}5{7#+J1Z8WuuU_)aQ;68=%5nyr1Rv3$on zhqz9n>UfS+x`lot1E?zT(b9Wrh*vq%YAMa+?ZPuBSN)Tp{DgpZf>oPTn>fbM@DR4| z-i-|#HzA$x1JT{k;DB^crY9${fByk2EzQHGF;^I&w6q}mS6A2d{^5R508Z^EQKGRN zY~H*X>(`G9g+e=NG6>f9?Aashwr}6Vn4FwUfWK0xQ9zG>M>u@=uyh9o1_m&`Z3p({ zZH%rgVMCO{P;5(r_Hd?wFV*M&plml+$Xi}^)2J8oLLtf|_hs$wt1J6VNa83Six9qu z+iq!TDN(*j(TwL_D(Yl&BXAw>DYczX<`$$X9XQmu7f^0QQA7vge1gL=hGCF9#VU6` zo6VZ8>x_g^RNyYPENdu^4dP<*^W7kbhD_5e#&MjB<9MX6$d?hc$5s?Yu1@Z#!Ov~l zYAJa{Ce$MNNuZo`!gP|L_ieXivOb^nF~?;v(Q0>n5~`baRn=f$4W%c^hZu3S<a3y+ z#f<=GnGJaTS(Ke3tX;d&SSZ0feh5y%MZ~TiX?5(@(1)xE)CM+U-c2J_%%eCth1`*S zu*QoBIV3IA5EDkz#G_NoFwfh7SN_;LaAK;8n?C({TzKKxc-gC8gMa&nf5eIrW46B! z8>W}xZ5c)w#YhJ&3=a-pUE8wZ->uqOYTk1xM%IsFab*cp$B$vdmaWh9>O2eM^hE35 zZ3C!cj0maz;G9#%emXIWV5MD~xIEk2n!V`7(-#Jel!xZNNB+ou=)PYTda>mxE~w}m z6R<0_2;P*_o`cdi?!>p3XYfd^gn|Ac><9u}9^3HpIW%Z7PFf9%S_$AbIndgr!`^Mc zq<^bZQ1hG>;O>C?PW4cO0a8G^AJ>!_r428yOnxT`hdjwK(TIJ0r7*$QQ00bnoJdvE zWT=hrCSZ1`grWvI>9(3nr_o<1pf8t4iq&2MooY>F1gRU&K`;)UGA$V%AII><^};2c z*!Kvg_w7ToR6?ufqh**&{kg&dvN`zFbeBr|+QNY-<}qoBs2j~~@%Z3f00_|16=<Ob z80t4`nj%9f#z8S`D}d)Paq56Ba?ZDG*@hc#xE^2p;`JCA852;&>*Cc{z7V_4JOhW0 z9>x8SJc{$rJx4&;%{PBbUbk)AHk^CjdAR+~J8|gVyD*kbVbdkgL!sC&?xzH}TIq*f z00L08uec9w;jpvPpUWx7NAjQvR_pb;RJXtJjc>|(`8Pp1zoP<tN}ikGzR{>*c6M4G zo12@H1R}R<H@<34Kf10wy|`;^+%nu?|M6h{Gs`eOna&Pi(ekj|icn;NBBR5d?aFO4 zFgPGIoysZ&3c{B(s`YH8Qjzte)_befn2gfdhqmoF0|NsiICSV>y8!gv971(6ngHJ{ z0dpM3>*6@h#&O)AP*J=nipB>A2c0O62VKX>wOXx=Wtn`yvQ2Y1DOC6QzF!cUejLl7 zuWT0@jwJw_=Li!3eSR<*>6|Nx>u=Hp(Zp~u^rBf+*LkUD5HzJq`z8nlin5#n%;hLv zGryufD{RjskcukO%FVUExzELKLF7n%dA%M|E`<>;$z`zng=eE=uE)Zrb8)N|qkq#* z^o3~*-hB(44Fv=l51{;GqltLy9z0O?u<x_iW7mbdu=)JUu=?!>u|AlCxp6=)3ASlq zWwC~Md;r(J>5cf-Ef3-||L^ayVI+^`;}7Dhm%j?T&N>r!+<G&X`v<TzUBY_b7rEPX zK1JHto`Z)c?eue;W3pN*<ND8h7XS4Zej(|=o!;h6$`dR;m8<3dnONhjrV2pXKA|&( z_Ot{qRJ<Wn>$NsFv{z;C#c3Tp`%)>i_8<Jy=Dqj)B5!8ojS65)94Gm=NT?y{LK_B# zTTQ&W8em(s1+#Pv=Vy!9w0RR6ta#HVR7<Q;m_bf4CGptJnN=UJ2O~T5jkS8u+MKC# zG1cH_?SQMU@ag3yy3L|AlT_eAutfWF&azRh#Skzq^J`ousZx^%Zi977l}D&KMglvk zgGdF?_XR8p_~H#N(SGND2sG-Ax-xT;^^B3p=dts$OEI)%Gv<#T#lpeEsIROH)SInO zW%Je_o50toHhA)`k^G6DE!%*@o+*)Zd#nVVRG(Y6Bp431Zyv+YU>0#)MIqOOX;4wV zg|xefBUAl&a6e}Z8ttm}@bC~09N3SqeC5kH^UOU`wdZrMc;zdF^ZwC~egya5cdvZX znY(wQTy9}v;)GP6sl~oy=MG%*yeqJ6a1in2apX2_#?o>L)zS*`#eyuq1KyQZy8`KT zG@Eto-@hLxPMm0WQ8aKPh*()E$>&nnofIgQJSu)W0Vjbwx#!(6J3Wo{;~P;pd)L1% zpE&#{_q0l8>}G5I8@C~>HxP2L)bU`>&ZsWOcPQErkXEY|Qp8@z?#t}#tgHhQ5XUs{ z-LdN|<nn#FMx*Z8j-9e?d(?;w&os;t%d)Ztj2!viFl5Ggj9@zmqTy7^&2Qec$u&)@ zFOFl!Fwh6YJmN@6X>S|VJyD4S|K{=L@Gwy>u9CQDeAQj)*7w*>0;|6dI~<9gezHGw z)mteub<~^qnM(VcpP?vj{0#0JKBvL9J|76OnH2DEK3A(zU5LQEB|ik^>N$dOwST{p z<81r*PX?<)+r!53LG%su;o*UGxb4A1IDYfZxa5^rBYn{&n7HmM*cR1bow-@$PG!D* zcpZ*>>n5PFilNbA*!?-w21igmcoz!e1++MC5t&#mH!$Z!$PbR;fjd8ezMPG>y!G|S z507JF;uun13bjUn6Vo%;(`>+uLqx6z!|`zJ*uwTZXO0gQVq*r+;UM#1a(NL)-}ftW ze!l1Dehz~}L#HKpKe_AqT#opuv>D)ivAZCV_zUVJ=P3v7-IerOqb@hqo`F&?dZEJf zJOsy%|3iHEz)zX3g~+sFu)5B+cFdbRTjYvst=>TW@EDe7<Lr&=aAr8Bz`0?eVNsqh z0qvB7VD(K@S4d9jaA3P}Qb)U8ndaz0RjuXTZIiC4F&!SfPQKSlBQiSA6Nn2k7pXTj z^kxVLmy3&KXihCBNdp9Qi@6Jd4+jrf{UdlWILPKAo6R9#D2mp3Dx(HL4Z5$o9{C9f z;sAl)L=^Y}B%~l0N5~cm@Xk30V>@?Y^5KW=<M-bG(q_5x(%eAbZKmhGC61$`Y7JCv zo!hx-ki9P73=Xxa4RXv+G7mCL_<<iX8Odbwc+vActRFcF*ImKF`~+ObKwmKp)4Cg} zy_ev@M=t=WQ2fpW(fs|juYDDlUG_YY>m=>unrmKyzP^6^!5{n{=I7^d!37uMyz|Z% zP4~scC0u&xr7~#v$Rm&7+qd0{uU`KJyz<pQjH5w-M<03!{ewfORV!FoEn#SAu+6#W zP$vPTqUxyq$>p&+&(~-g3}2hHWQDH6YOa?5)G8%>Je@W$HFaXm_TY1Kv$Gf-9oiXg z+|s!3o`<k|d>e-M?7_l=4~dG5BcL?q6eEAKJQBnvQ~rh%MNul1N@d5!$2XM9rI%BW zeQ0<%QN<x2KXq|FU%08+Y>eBsJv=fpBD`^8V*S0;@vEGH`F9|^YelCaP*z=!PGYJm z-ksw+3>5`KAIEx`avI8UpR}ntqamN8&Qk%r2`xn{-ViM7?WX1gD4VKWZ#&?d)D%?} zXX3!e_}Sbyy4#=ty8_`{t^)N>>{_D}1@32_Gu(gtt>q*6Lx)*D&*M@IxoGa?WpPQy zLd|dxxGolt9+$3Pp|6O>@-mj@m$BKS0T{QNOnaa;GlSiior~#o2#3Huwy^TZqcGBn zDn@fKChAoEIdE`49=`V;Y}>vCrTHVsjBP{T*j7YN5qEt0Iu!FMY#1CwcJe4<dK?%) z!v{{RRLAFQ(<9X&m}$EiKL>-y*6fJ@_uY9X=4a>7tk>}SfAXj8>ia3JIFk%TpTc2$ z|5f)yBe?T^Rlw`63Mlm^aVL4ofxG77ks8C#q?uB$!rqHsBpEb0$tRBeLwx+uPmv-* zfNJmtuQbGX$yTqCo1CGl@Cmbx;IS@TX;uHFX%Gb#1%&frD6XmrNR~OU&S0XZ6s!d) z9p}`Oi=d*~(e)m_hQOrNN~Gr!FsFfub_vw{?lw3gVO$oj2Re22R!dJ(#x9|#@P7ne z^l@<cN&}%E;_%^vLMgf9j@xm?<(Eqb@7VF<Qu*Z%K?kMlMurEmbJtE$sUgrIc=yAq zV5?L%i;d@>kNfsMj7N_g^v|%itsgXl-C-CVRnDz3Ck(J)xrov^c-BdZJ2F7qrNW`E zu@SlXj_D%p>_sMfBWl%g+;mfn;Q`<UFFb~3vxIUrm3&9F-Pf&Khg)yG75Ch8H#TkB zgrUJ9Tye$o(ceFSzxnIGmhbnbH@^)#wr`V)GtHMqM@NNkPI}1t4IA*bxBVDy`o=eL z?>+b6vdb^Sv7^UuV)6lGIWrMOSU*0Fty{OYdE4A)8pv~ZP#K2ukV<((?O%dAf<jW1 z2$Z|4$9$iz_NpqdqJMP9!onP8XNF!@Z?=95j+0&~ms0y5d?;IAUCkR|;99nmcO6GK z;)Y=sOqisbu;N`{6<jZypPi+NjX1{AAy#<?0LEApMPov_l>3VceJpB#t-+5z*7f(( zNlB+e)alUZbK+zQr+%#%15$1@0pyBiqNyedRBIs4*RdL|0K0mRdX0Wg{ryBj4FW?+ zaHccuA!GiiVPTbEiBEt-8Wfd+)UdSLw^qV;=kT;rnb8y+Ie-(>HGSXa>utw`&pDZx z1JNOhrDZ(-l`qEp^bFFQH)G|-yHQw~hk4#^grv?f*UqM3PaejZLz}SWd6y%oMJRpz zBN!-6Aal{#XcA=mbW#Q~Srg~3-+)%w#0y^X0t^ff;>e+6Op|eRY6ersj|z7_y|{$o zl!K7pF94>hA@<i+U^JR}GjRoet_H7*mT97|SQNuB%D?{QpZu{XD4l=NMR?T@zxI1} zN1ki(T;5;bXQ;dC6U$Bva@TcXT~lF_rSJ((wa3ZzPvn{m;krLXsxlpo;ux#digNTz zhGKfri_<;`psF>L9(njf&8g|PS-gq531x*<G20QK-Yl=eD_4<Adua0JN!12%u#aI7 zfDw4GdnH_I;W-E}HDhwJNkK7{Yb9SV5|8TRy9Y}Z!0tGxb}Nvqk%mhQm-KVpzZES; zD^+NKqpvwiim)x=oPc_94Na<(!X7tF(LLuvNQ<#)z7odbXlkWx=^F40%uY?o4<qyg z96fdn5AA(G{>?R)p<2^G|G)q)S-cFpw(mrLUqJ@@S``JLxV2hQgr;R+vDN(1MjU=U zj>9tBw9PO=&9qRb6eX2Vx^|l?cf?3Bk)U%Z!H3qQPQEsGhhx(`rir76YsjP{)T<S& zF7HR*Fg<R$J(ScU0W*Qqx4->u0dEB297^4`eFr}I@sFXrvWVBd_H`H;9Th4ItMLSS z<alr2zFmMk!TOnJo`Dy=<i+^nb=PBddIm3e;S2EhfA<083k3v0B($1cyLKt6N1LOr zr8`}r<4_HTpiYBT0yqvyW-_6CuI|F{d4fJZ$IoX4`0;`j<KxFqj8?0a_w&0oYBek` zEeW5V?{RDw=}a0eQI4S*6?NCOTdzJ%^gyplIMn(p@XGH&klK;9)Likz$u{XQF_crV z8pu}5W0hNhdoEKYt%}CQB!JskRk!&!tKY4JRzx|~4(&t@tg33cPGp`)=yfK*rkYPG zH6XuTH;r_fRHk$S#+6Bzs*Ed%MXnol_cw0bgrT9K_IKbiwGvSGcTa|D<-6<kRf&f> z7x<W>1F0Dr-DPX5%vdHu$HQDc1p?%>zl5!e4#x9+D1Gr}WWV+`Y(8fU#`g892q+Sf zfR&1nT|9#9k%RCbJ%NGNDzYy>AJIS`;(A@qQ6@c^f`{|-Lny@#j!vAw%<KY&2l_BQ zzl6oPDV%x19;{5vVCV5ikv?x1nzjLB)xfPsXE9M-#()`xzRbv+8j;GTaBSij{^$>X z50eWk_=TT+H(v9)*S8I{PK7v)K>L598n20{>gKBF&h-%<MRDif$z_g@|EGa__d!)B z$Buf#iF0C)8q<r@Av8Ti{Vi?tA<DYNaZD2w4z#%(hBFLfIJIT-YmAil*8GdEhMCF1 zN~d74vdNovJ}Vl?izg=W;ODPH?$~kc;!U&_qRtyBlVVnZ3C@MKK_Hv}a`I*f%o0-@ zf)P>#D40x4-c4m;XrQi#;Pj7rUIQT2`tMwD+w8h7KD^Rv)_`9vuQMn}w!TnelFFvR zDtng#4f*Sm+{<UHN+|iY0jrc8l6xFbl+IF7BqPgXrAmOOL23|zNdwa-rm(!Ygu!AT z)~(+Fn)eU@(H*i@tzo6SisfeOz{+Z+G(Ommg?a-Ob|%s`9McxM%wzU(vYlxT#pGgn zbrnH1SwBgLm^66^RtM2)SQr_Kgp+>g;5aVXG=VV6$@U~L8y+6Ui4&7Jdh~F6`IldD zITq&UaPPNn!me}oAeS#-X>kGT*RRKe4?ZN{k=6LVz9P16-6pi5`|rOWmtA%lcAv2u z2M-^{ORv2a>&C}%<j5hRE>OmiK#dhx%~97Cbb>?<rjo->&`U7P^&@E1)p$x&DsUSK zz@}^@`SnaD*b#WV`!M%;rBW8%d4fSz+3gHeipr486q4VqK&p1_Ra6s#+vJ!@lx(<e zns=_}DKu!7<2(r39B$H3I+bvO>`oP2SI0Fl*DkRd#A|oa?-qI+sY*Ay5*g_ZsA{;9 z*3`5U{!Qu$w<DL$&*0;#BCfWJqSmPMjn6CkjH<}<HPftcr_*RQ7qPlpmg9lR1f6a9 zJvzP%Cl9Bt-8r4PGBup6yDTy{kZ8S&>n@823B|}aOw7i>iE4mh%Kwxm;4D9a^!zfM z7i@>IWmNnRl#&(4%tZzZh8x4^i;=o;11IXm)G2PL?ucAHc)pUBQ){8|@FCp1u!L{k zemAn|G<Kc272EfmiGtza`K?uqZCi)xU_Y|e5Dy%$;Tub{2&z@Yg<Q2MI`lX-g3_6` zi;?jSaMD>EI(iJHQW?c!;nb$goMsVs9j|K(Ui$o1G?*?y32DT$>aO(S5((ynNdJU@ zd-u)%<O7M73Ju!3U)zgboKhhmO>R+F0(cpK^{(Sl)@{HrjiQ&z@B|pLZ9DCG9?vTR zcPnMMu!{u@{^%RNC%3P7=57S%osGYI|8Ju>Gl#Pb8@rkz1_``aC9^^VRA~`cLN&xG z)D!|?@_7XwQPY`ywvJxAmLpWLR=2&o;zlg00G<L{-4*-JAZqvfJHvJAbqXX3@FFPJ zgRElCs#IpUUQ%V(^b<XhD{3rCaf%X$lyW>dSfSMvA1zrKi{L#0imE=cqC0V75)&t; zgp)foJcyyeVF7E&G7Ec8Od~rohEmfPcT%N9-Jugc?(R=y3z=z9Ma8dHLj{QGA7o+w zeg~tYHli@bj%~9zel)_=BR0HL3XaG&T2kqL@WBV$RF8BfgLPx$IC|gx$lC^XoOu@N z%{sPj*@9bcxm7Cd&wJkU<QhwmN~M>L8#fAozU!_#aq-2MU}|a_%gf7R;&k}%AtC_* z&ji?fzwVl7kVY`r-`^)x83sY50&j|cPhd~b!1r@s@bzj)RSiulm6XRvO<HpFWGV`` zy&lrkfLm9qRdqaSKc>}CRK=Jaa4l8Xd0f#}6j<lqVfej)xBjl|9;k|TN&vE=5UEN& zlROQ~`I|tU!-E>|@_7Z|ZAl8beF@x^45#WesUcrWWHsqNyRfh%`-A(C+f-4F6xUr* zZ&XE`9RNiaiY2j9`%;cPy!+ihE$Thf)2j2N23zCyKGl++-CZy})1a5B6lNO9V|pD_ z($cvGsPo&hO$2TlJL7eDOWs4ta}ccShdn+ZGc`(iDTa~Eq3{eQybx6@CV~!Wet^OA zjmy?uksw0I?n^d<kwy*Y&o3Y{VoWT}!8;0U&wAM6H<24iqcJ>yY%Rc%V-5W4)Nwqz zID_%N!gMa1o|3}EDHxpNdHCUd_^<!vo%pN2`G9m-o=pR*Cs)qD6V^K&E9`OnSdpBy zvt^GNUQHAhw05xaThrT=jZp11k}%uV=V<ru@3lhRJLmCs6suY4lX?=Iy*PCvj3aYs zX!zfThlhV88L(TUoBf?=VFDIXYiqe2M&u89%ZrPPa$a3=#T8OT-8C|T7hHP{{>ShC zK8AC7Y|iF!rsZHy1Z?pGjQJ64%Rq~k<y5&yWFr;#T5h398NIVU3TStd?`{{>lc_Qt zRT%{a)ayDOzV7O$Y?lOB>2`gG?hr__;Uxw?sx~hdBvpCmd$evm@vyCK{B%|{TpBbz zc6(~DqrZoMcqS4Ab_oEAVhh|Nt!4xBhZnK$k^KVJp7*>fl!TsX#-yUGwtS?L_4>Y! zgD`+?c`$9ap`1ib%*{pEw>QSQ=R0UtD=6e0G-^H`-IoIf=_srAQMFoIQ*9@|-E%$M ze8+9b3=bibEns+L1QQdJGO);DRPtU4mbncH5?OuSv12<99z2Lrsf2CYw#qSh$t9QI zth4q=C7209E|+UlW%My>+pau5I5>zxp`f}P$xx-{!;{*=iZMYRgTR)+o&V<cW~KTG zbz$o@%+1Xv9CX=x?Z5TlCO@xxR^o|<lC|WJr7e7T0_{#kTbW@g&bN9Ewd)o4TLW|F zB#raV`M}WUgdS!k$n8|dSwRm(eTNB?*2>qK?5vV<`|~sQ?%gX@cYThlp;m2()lvK5 z@<>JM$Xlv&iopNE3onx7<e`TiYVQ+1ug*L5THRGq6?0WJ=lA1w;`i1=s>*mv%{FxA z9@LzS-ZyF;0ampiaXdV*6yVH(2&*Xv5idCWOq(+(JW;ikvZ}lj1jww7oT8DG4Asnw zdX2Q#xV@ql%)EzlF4}@UyG9YL)?}bNn{#1#c{B_ct)&2WO_uSwrA6F5aR?d1!shj( ze>O5$Tx>l~Qh%z%jxFn?D_2=9ONZ{+5|0PQyXQkrw=hoXWS{hKdjS3<$lM0?N|(KT zTkP@!RR1BJy}c~Gz^)H?3~*oTiuk>6Yw~%C4s$PhaViFB5oyo+`9h)iRt`kobI(1Z z{J<MGf9UG@`q#f+Zhjy5zz1;Mb=Tp)|M&kcmC;wc;uQ%+;siEq*dRCfcfRwTQhmGl z;)?|o-EqeqICSWc0C&dOyLKYoXkc<-0SnnI4it;{dVe1_Iw_p*N7(L17+tMl5T>Zj zgapIF^`>^DqSJJn+dLk%uB`ymm2hbN_O*arfo=63O?6TH;*Kd#H^@$^{QNEIH6bjM zl}Zj}X_rY;wb$iu%08-kxA4_%69$3B<6L?)<$)o~VVNRKoFmCS7Ft3R%|;W|nyNZC zsZ$=b@P#jYUZ@7eTz1iQY=nLjG=qd?XN<r}nQ@$kX{MtnN}Dv<F=HC#h*KpHXJW(| z(=<}~bhhAFUL3ZXR|P(+nSl(mZrx&|S)D~DO*zOutlxMH{lx$`KTI_fz;kRYFE5G9 zDZwQ{8+q%il~u%<3<`byvVPf227BjbF)}g?+cvShTt=l*MWK)vP(@0RGEW-7%*?ES zFLKgJrQk6%KR++-s%M;WCR~}LQ2Rsk#d*AGLnB=+=KiDd34t^LJzvAm(!-1V(eAif zkN)IP6>4(f>+)}Y9%&ulEfhsVy-yEZYKK<M_14dm+Cw1DB#d1F4b(N=M=QH<{rGox z^}l0YqyR4eCXZb|t`k)aoKJqOKE~C4Q*#P>-L=_~UVok&ni9i(#C7KNfr*T+daFvi zs<tzUk*;-(6eD#^>zOfLH)dz&@VU=@P84mJe5=GnDeZ7w)U1NqM|ywi>N^uK{wR|t zRqf|`YVLb?(ypuXdV5)vV2wk3wrRpxHL=Tx(ex}e_)ZEQ6X;~tMK42~RC!HFXm^sN zkV3;b9Fwy+2CN`PvsOo3uE9-ZVMZ=|3s|Ygm{@J15j9bXT^xuE+)*vz;E5wJTRzr} zjr>zS<NXP*aoq#Rr&@4d@!Z$59nbLEd{0n*I)Zj|Zm7md1F7AQC9hGxl$ef^VV5@~ z)pt2p<^1Cys(NjQ*WT$`iUo7mhpjmSx`)%AXh`+IcBD1li(Z_H5k^ru<)wd|=f$T# z{b~HsAN>(t`N~(ya|B9X{Nfh{xD&Mh^iTh^{3fO0UGI7q{`sH(8P{KbJwElRPYF=J z@WKmm)>&uaHLrP%R88qpdG*y-<G%auYk!^s#2nTP&|0lvrB*|0Wd+r~A`Y>dYFWrz z5zd-h!L@;fRMwS_m&qG=DubNmAZ*LtY4=XGY^|)(QQ1)7yF-8JfW5UE?TS{Tm(?+c zQI$URx{iCQIHFSCQd;(kcf<NN74;m%a19eF8CMlq9QjQhcrH9k;QlyOHC7L`G-C%) z5x6;Uy|kLuB{*?i45mFqQD0J>RdR>~RQX))-_j{>$#LC2%d%VpNEw#tnKa=cNH<K^ zK<tt3ZQG7qE(HimbrZ;V8F6}L*MlIY(Fid<Uc#1hsyOz5fkOukq})1opA#Ur9tiGJ zlp}64R?e@y@@iah#S7Yik6`O9Z+#2OrBwlOTvuHURe)RB#A~x84q5U$ef!(DVt9BI z3kwUPPD2XLKmOwfF*rCRgN&OtZI)`Z-XGfGRiwlcfJ_jmj{yz%G%sEcK{8oV$4$o! zNR)O?lE~zH)O$Oj<S!M~#&wlK4CyAMsW5TS;9CRo4&PpZL8XYJz-&kAQEf{mOtqTg zx@&-;l{g4Y6=lmx0IH&Dbo0vfV78|8n5NU!Y3g_!=;}4!PcTKWtfexQzd$`vlWDef z(+SYIJ^5O8PSmV`PC^vOR!T6c6Tm7s)rRzI^w6-PG3jGp4d-?`UY*XFHhI#&RYDR- zae>>Auj6`Xu&#X^)cMqrfK|)WML>$-1HNVB2Ba{vP{-M}kD|DyQu3AbFB-pz<`v+_ zh&XT12+{P_Fl<n5pxN-zh$7VE80A)o<!S|+&)9`}XyBgvZ$l*tU=I&sbjL2(*&>#! zHOxd!oS2!!@`))#_1fx{FSzX2m*?mIO4EBzHN}<g=su30>GkMQDB5vy<ttHo={%;p z(uP4X7`aC#pgsAIdcOVo_7JLq`f{Jq_txb8n>?F5*|t_xA8S8ZPP%UY^|<Z5I90=r z<BVlnbe<Op!neKcZKB$7_uY5P-!n5aa?@kwoFJUw{0m?Bg3w_|J@}p9`5gf$U;EnE zq;1Z}4jedupa1!vm*xM-pZtkb#=1jQ;&>xgz(FkQX{KXVP&ExKI}VN%ZKUTLcwRXW z1scwoSRt^L+}k)tBN=w<=Bw*#5O3^MJ7K6QWyfVz{nl;x&cD@#MF9r>ZByqQohq!l zsfO@{kK9CTG~xIG+|WQZ@}=xX2}m?TP;Z5#i!cET5h<`rV-b_Ax)pL#apZUAAga<L zw*-`uia;RR(WlmxS_Om@-<{VcRV9^STdp%H22pf5O`MeSRV*ERW$L6Zi;)=Z5X@+L zf%=ZBsxKp!h%7~$Ab4kCEQ(ff$Jd%TbkM`Pp$I9rg1vV+*jBROq;iNORo&%2CeY@- z=KvZj=a*mpJbe1opOW=C>#Vb-^2+Z*S`D{3EA0e9iYBv)(a|wc8JU}#7p-@8APCS| zW#_+1uhBPttv;dv8uy`+C}ePXS}Ig+D+{d_fqF*~OoR50fsm?XKVFfImw$qCex9z} za@!XQ#Wr=MyE5GkLKSzO$4-6Cv80qW)G@2(2|5yp3fQXm>#l(whSi{3ak-U-x*9}P zfR@Lo27tP{t+!Wlw6~RMIz~&1R;0g!{ycTOk;asgBwSbGb=6%<GwO=HT32<h>BLCQ zZN%-*=$778G#oXA+pSU0V_bc9N6}4p8`OHKWR27*MH^BEVER1Lv@?Cq@_6s21u1$} z3_I|#;y3Yin7D1ZhQfhK44FLcZTMmg6`&b~XmBot+uJbEWRe;Kby9$Mu2C^7j4(An zk5a9QbBFq|TC3n#ZHbahuois`26YtEX~aQLYSwBCjcRo+4uWqurtyzsW21*wSC)G) z@@bA9SpSaEc0uYG6?UFH`QDj?b_tZHWV|bx0h1@&l$tg9fO6k%E4O#vpIoTaz}i!x z<K6@8y*LemS+t-S4)yWo_=kV^hq&|3JLO4MJV{facJ{gFo{RUs_q_tLe(I-w3jgpA z|A4Q5{p-R}{rJZ}F1%OT*7GL6dGlsT062t1C6KNUO8}{bN=3O2ljo`{w^SC%1_4U8 zi9>lC&szyaXNIt{RBvE=I)yX53?3-0$PK^Sd`DN)H5XQcG6lrDm1Gn(g+Ylyh8}Fw zfP)t-U1?;na?0vqCY?cXY&}-;1w7D~M>>^7i_3N>0jX3q$YT#oi-kJ05Wy$#Ape!X zkMeRO=is&O#R9lBa3;TcXh`W)D^NwC)6u2p-vl6<CZQ{|T6?_PsZzj7Qo|4x6rt;= z%4#?7TM83ghc-n>Rqp8?O3<H9$2f90#z3}!V2gp$f`K#7m_aM>F?Hf>_(6f1dF_hy zefQmiZ++`qq7=jJN2gHI7zn7T*UsOhR8cvG$|7T9qXMF6$iwP2&6Tdd{yLm_=9$v% z;r8b7!(@QKd1`73#bTdOOBkB+!fisptA`PlY^SR5aQWguTW_FHSZl_lD%uJhcU(Xp zbCYT-lPIGjb*%BTSoP&TaU5j?q=CCmxYWN1Xw^IjE77{T&f~uWto7`K8mMeG)o`jF zYSmJQoeH~lGgaWWGlZ)WG9K$%+g>MrniJlwmEQfMdEzRm)t}cfXwtHeYj5x>(N&U+ zjds$jfU{cP@6_>D2^2vx9emdU2DQyp7eIF$)aNK5t~vMR@~R{&YUr0LC2ELV{hLF+ zO3g;iFL1lol}|+C+Db~AfP2}PHk>q@Qj|wk^cn%{i8&NW0PMVzS}5+ri7$h}4nzdl zR*d0{hs6U2Pzyq&>rI$J6=Ac5N_aeohx>JJ9zP!!V9!J-6I44b+>hq+8GfluuuD ztB3XCyM+*4P8vk*diwFeu$n+^3%evvCnx!;$TX_FUsKf;%Uw0X6}?6?SWVM>@;dIF z0iPa#@5QMZ-EC>!#MtJ);DQSTOr3xJ`MBw(n*?aFT1sv^X)*WSdoOnH-Yqm5@`k_p z&2I`|BYlQ^cY=3T+WDRvZ@f`}j1EPQP&5Y8BM2yXlPr~1lpeTOg6Z1u2K!;chC^C_ zsJBoD-N%sY;;jQ4@WA9gOw7(<q_5Z>>Qu6LO0$}wE3nG(QGp~rM=(in$x7nz@Q8eV zKA#hysFXaEq#hHQ=Rg1XYbY2BAlZmr8?%;)h;%vvCe`s%V29gOkJ=}i?XsPzfI<`( z#c0$yjHfG~+y|;ksX)4_2-4O`xba3eI8)WmwZ=ROjOt3RY-eiBC!gE$Lm8SQZ(T|F zX_w0gErLTWH%Ph4FhVNrVf(f{NO>MAH48bniS3*FF_W^fvYf}@NEMNpMi3AXDiEb4 zAxDLlapsw42~a1!iMs3``N)UmSlYRBryL7R0O@e5=rgW>b8^`^Kf%iVmMvRk)`Bw> ztiY3YwPVK)0rPyV?%?P|Mbl4I*F+_9ih^UxkSjX?+@Cx?$jMgP@4T)@YpUA%SULG7 z&*O+)f|JDz6c|>O>Tck#T|iYOxud_%;ZF_Hbah|TJD8ZM<>_j(oeX%Y<!iY{okTE^ zQ5AXxxVxz+-996o>N@u^kByG3sRpp!=Sgx^Xdhd8+i2jfjjr?z2_NHn>YKGb4qdl1 zn5$duTJ5R(bxfSKmb}_WI#J=j{dN+-?ZwYjU|c0=1kwDVq^urbZ*fk9bQ#sMNPa7> zt#U(E-;x90;t7#-r7W`rqh1r9y2(U84&kxNAB1p1MS<gE{M!qug&WHNcnStmrh&9! zfk$OAm&QHK2EIIZLO#bM4GE56mn)w)`ick4v@3>9JsA1)M|W4X7mpW@#kE~@H9bk1 zJT5eu&X{S!Vi)+$D=D$KJl#=o(kd}sAu^Ei`eeRav*T4MUKQS-G6SX_aPP&b9QycX z1#$oW{rHKW_zAq~Rj(2de!~qn;3t3bCk3oO{P4p<pW*AMeNBG5)^;W}hM<bo_>X+# zBQj9PzX{&o^rknpKZ^i`z=q4v1~5tsJdmpa`RhTsg)Ju*U>624na&Gv4`~u)nwU2X zY#1HG<z^E{llDF}z_}dC1~SO0C8%LFOW_x-=d8dLfd-XWboH`R8PujNic74928(NW z?ok31L_JY>uuK}dqyoDt{oU6NU18+CM1VhOHRQ#2nFMK`yQ&5g5GxR<G`+i>Tvgk@ z+bUjjkO{(smn=Wc1e7aovb<k@BKV>pLU2#%O2y^Z(wIAU?ZVC-svD4}WZt}qjhhUd zcV!ljd^?9b?i|DVjcK6ehysV63n2KW63o^uTe0`yhmg*suyfaL*+<{}<~Oiy+xA55 z#logd8xtqdtWa#21QMuSb=8$Pdi1DJiOxRv9Q?+w{hDyCc`Q*ihQM1V3R+@J<w~0J zqT~w+%(*X_fRbZQTF$-q-Y46MNr2wI8vN^H;qfl@O0KfHMjeKK*J?E6qc*vw9;x9| z?E<R7H2L6)UP3OsQiD;Ic@EJkwHTeuYU)Y%dCBE=bKSfB6%-vuf!U5KQRf)!$el)y zF*NFM;Z;XK^Uu|B**Si7Rb5xQ)$E0)@TecI7teJj#XRq{q$T$q9}~_zkI$w$=jFI< zYnCUnuRQOVxKamSlz@DplaXOWDj1!1Y3ioWM|P47&VbMzm+KS9NHekE9Dx2IC=WxJ zVF;JXGE6F{Jx@Q=Fh(Xe;6y+==4?ug6cZ&5fp8$!w2(3!r1=?4P+SA9{B6QvcZ%Cg zk{WiLY<NtrEDPtiLS(BI+^~8A4bHqcwq>-!4UMBG4p^Jk0ojzuzxLvp8$3OY!}t#E zhwk~%_TOFVG2Mfy>JL?$N=8kU`lE<Phzlw^x$+lF@?0pZSn{%D_Q;STi+*c6Nq7Qs zkiF<dFFHXw%qKtjNuj+E{83fr{qKLj&|&yEEAM~t7k?rAc7j9#sh|6~pA!(z$~vhG zS6y`#e&k1}DhZMCdu$k})f5mTAR#zryIeTZi*s0=ui%n(+pzo0O{h60zT~B(sx4F# za(iin1_Ptp2Qfg(1A+X84Q;7Mf+DS2pa=O*<~VBEzHR{10W@lO)^%0eU$@}9hx)Xk z4?|VQ6C<WB)TgVOn(Cqfct_8hKub|0)KBL*Z9~rrtpez(?XLj5eq6a-b`Q|Dw=n4& z1e2BpR}T$Jl~!@;`M0Xz5@;k;ie#WushLn=BL@9tc5Jt>ceRW=?uw9l#6@+<K;B!# zmK{DG___<kb=d|4ZR6wP(#iPhSHFbWxmi>e=dfe@cD(V8Z^B1E`eA(f)1SmEU->El zh&*OkS!bt(L(x}Wc@@^J8xvX#sX9OPlkdW(KlvHle*0}mxgM&O3dTl9WQIcDlr{B3 zIdN*0f-bs{VF(>(-@g6wd1sulTar3G)Tn{5GF75F(BlJlMz@j+-&-gsSxSO$mEftF z1U;ClfxA8~G)G;_iz;5Y0{NZeMI{OPxa!EVX_-U?ob@_%Q=W9^?Bryz^ICq68o*Z7 zf30<{l0nUl@8+QM8qhf&3C24{Q2ab5hV&0;wiGCrZIsY|Bq>Oe(M&cY1H4RNBF?MW zDP)+uCa$rnx1<cq!j=y^R{jSF0$Acq6~g2)8zC&xg(zDZLaN~wX;NV<l$8_*Wg|!x zJR_i+L#QUwoKYZeo?Q&#$6IhY*v%hOi>Q{veL+eS6qQc^3!Q@<u9+GDmd;M%Y%80S z2@m&^aG~@C!NdmJ!OssCaqgi({L|3`SYp?~wqhd)ktx@aw;lL)3Wu9zd9RcqRrZt^ zL!6=^f;<LNNym)WoKQ<{Kbggz#HD^}qx*tzN+bjE<Niq(l7zL=v0hY?r`=M@@~Apo zm5Guv;8sgZoRySVOyWGK<!6+1RPwrxqKvBJ>seKCIeqfLU0-N>75848s-cf@-rQMb zf7#1khQIvFzZ9y&kNwz>;qU+c@9`i1@gLZ?Zy&C?<{JF?kN>!6v>!iy9B+8T8wA|H z=RNNcRT;kKgCG2$P$6g`&*#rM=NthRRGLwtZtQH`uV24W6lw+shoxG7|HFGx+Pe>% zTo3i_8&GZ3K$&nQk!(oyOm3RewpQ6a8Sr`tPE$-2*jB16@`-Jw31#Y{s|X#*$4(Wm z!#CvxOUvkC&2K#rsLXN*$Q77T|0Z3hqr}kx=?b`OTY1H&SN8O(lKa@3f~I4rN~m_W zbdb+y+LD5-CM!<0rcWqtv)1#L*O6wER8!UPqk<x=igZ&%v?>olE-Q()#qAa1yo(x` zns8CCr;y+1V`O6kOQk*pfp*EHvuH*3A%{r`+L=1})6+P5>&>|AhhBq9t%}co_A^3T zdGU*1jK02p*&a;bSam1h{noc`lI{QFKk*ZIXx~2k>)(GsKn@K$hKC2Rb=%f<bzeJ` za=R#}R6f>`Jrs#P(?Bj)6zRsLrA3@|)@$VZ@iQ5^YOJ^Gck?XJNth1KV&wCML`z-K za<qQC=B{_lgA};#PVlrUlBT+7u&*oF9lm*of}&|v>V2I`w|Yzs-*y~TJI5d?Y3lKg z`>Nu8YvU(vn55pTtLuDDyTEE?943SWTru59Efd*X7KLH~L$)jDsC<v)bp*t=7^+ah zg`hj8xfi)dh#Nj^KY|n11$;Y9rdV1}D&qv~RuEAR2_)K4Zc)^lxW75?!IrvVA;+!- zdHZ=%VN7uWrc<z57b`jT6M#*nr-VYo;cJ>P(a_CwEcsCffUPQryw*@jNQ9wirY0wh z0vkLYI5#37B^KITNa_{OAKO5{?KPOg5A9rs)NO<K>-+A2*I$fNZWg9xB424DKQxFu z=Sd!V1bKQHtQu%8RUbQGaf(H&TEpM}=5OOCfAyC!wsE5zOHBU0UySw4&|tn(vHH0g zMwdK#w^Z`U92zN@x5XdZ8t#VdgG3uf1NOG5iv9roXM)xf4!nZ=i9b?Okx$BJh@TRU zdygv9i_;}Igh~L#$~q}AH{X1-sKs#5^rDL{!Y4lQ2~nB(-~ao6<B>-m!G}KdA)(fg zM@(>V%PqIaa_ERjPBSSGeC&sR_=nq{p%h;f2&O6rl~kA{5PYs5A4lWC{iwHmn3W2Q zW=kANJ2VFV-2qodGT?V|+kUO|qjs-UfVsO;t*eP0@X}2^QQ$>Y9TlJ<5Yn^+JrqeW zbaGWcDI6pcgjy*?bCKC)$RxCiZmn+x9<|Yq2HoBN)?DU}^q&H!dcd)}MXV`5lvq@i zRpkt-tEq~MpXdXup;Zt7`xqEd1C&9KhLtK}eDe_QyD!H2jU#~FMA#~@ek)vhD=BWU z>P`yM0}tFM;J+`QL-oi}eC>uC@WN|fhJn6*nVGo#_B&9il<}%py&9QJ8b^;Fk%WfI zGcUR38tmKm2tM@pAAlP)rAlh0Qn>iiOEEA=DwNTsLr%%cdNR|XC>)yp!O-rbnvydy zaYBA`8+Lbu)pn;;rJ7}UBEVf8D@uZpZ|T-;S8|D}@~#s@okXf-$$#4bUnPWUHbW0n zcicxiiQmZ}Tpg3@ecfFdl?-;0PA&bYXjsbZN>O?gwTIuG2^ZH{CxGlg*tXToWHL*( zZC4D#Snyo89s|=+)3?1^>%~^JG0cjoONtMN%jLXn!SHJ^TTKDxCZFdqlFX^3NF7m5 z2uN|?k_XOX8#X-BP+X-TMbJ+QN{ZW4`1I<0cGw-_`DLhmr7HHyGlAe+l6NNR{KW*L zi{lOsk?U@Rt&$!BY4A8txVB7Y+2K=}l`?uz+U{Yy)JS?*lq6!TEW}LwMd#gA&Z`E% z36?11;);vU#J+_^e5=0rYle$jXy6X2(~uHabX}3eCA~)GW0IucR1S7N?!M_J-1_A& z<BjkBuXy_}{bD<57RTu%@%?V`%+g>^4e)M!XLG4FvX1Jt$`oAtA9mzq+xOX6d6;Nn zc3y@P7~c)#J0Fn@r;0bRJ|)|XxgN*87rl4_p@Ghqzx-wV@gM(j0&d71-zq?X>M%6a zp<0Ztc2fD{mwxG&gnB?eGWqU|zx%tt!yDiDM*Q|~|F#SlQX=x!TW`gcS6(U46I{@A z=gn_^D_-)Fm*CMy56aD#1BeIqJ&Z&3Wf(yp&Ll6L6|aQ%rib~oiUgz6+E+9JWhJkb zBnZ0wF1m>VIvjxOD0KvFr3w`txjpq;$?~b8KLyD6H^HWo#Z#bM1M0PE9ej-R2~`2t zyl1WM!B96W1wv1*tSVr-c92kmH&v<cHq~JTR%_*+Tx{sR(HLvgN4meSrdjZJt)|SR z)Bxf<;52dKu#IouN;$|p&L|MN5GZyux0S*RE8~NB@r$p)CqD5p99dn(oF8K0=yA-g zl<?A*UMmUV#KZ(noR~l=okA{`m*a)Jc+<A<+0T6rcina?!fKgf^N1W17hirkHgDS6 z2Ik`MnhauUUjW@z(TR*6DCI!wz`&q%1306>D*1&MUXUbTO1(#QoI3l6$4|E+3PV-E zwTz?gG$h7a3B^XM!l-?w0JR3tikhPKYj^V4serR%(@4ysczmklP<sq?y2-lDtaRx$ zr(Rd>wWd9{t8x-0$6g<=_Pk};b<gwWQmIr0QM70|P8o5yWSI7<X&BTcT(%s$Y#8PW z5Le?kT8yK(vbwrD@3}5Yl~vSMt0>NucAew8uP!u#H@8+R7lT8bVnjq0M1pNoxau~O z1a^Rugo-`^l8h(wF65`MDsM;yoYXD)3Ph?pp3u2sR>L_+%q{~}ftd6#A#xJ#Kl4_X z;MtP-4dJ}Fw#c8x98yk9+t|7zu$FzLx$?S_$o<LlNv?%r50lu*B-{XfzHk|d0!J*z z96c#I90K9?N-7Z`s8TJ-!Ie9<<MvyoUb<SYzPK<v^#38}eSq%>_&u3iB&VtBgPq#J zZ<xvDkjZB8$q)V`7H8&=%A{nL;T^y7-nOdNW8H?;;N!EIyZ&6miN@oDcYVW1=26=- zF?x)&i!#$0ytkCuksxyYqK+|BSE%JB0>!4BLdgl!Ch0sS!2Q{Lp!A{_PbF1`m2o;E za?q4O{P%wE_k_<*ip;<N`@aj2C;f%;j(`5=e=dqL1nzwPqaXcfdw7uVA!z^8KmAh~ zOuOQWD<1QimtTH4e)LD*h(G(YKNrBlq+oDh2nS3PlS^|5@45#qww<NotyErGEk%z| z$|$<3s0?AWgXY?5NJn;$&$FVatmIW<qD*I4Wz^<4O0rLx8d;(rPFe-mO{tk=lfg&L zLGBC@cJyvLY8skaqpSEzy@Q}oQ}8-KT}x$kRAjns>va;L{;gi4D#R+G(fd$+u1;*I zxItx^Zh+sdv8&fp(}OgPgWF|%y`!|;t$CnT!igg@c=ZpRg#!ndv0<!&Fk+QZQ4%!$ zNj@_Oaq%UWh^_ezU%CP1N(Jdm76%UOmw{v^e5{&o-Lw_`#UcvDqDVu2=Chy0kt2s; zyACe6=wg&+XE1r-0M5DMGMshMrIPT75{Rw%;`%#ucU(H_pgJhrpG*>Xyl_A7+_?+I zVxe7~R$xClQj+bi97NMHc)B)BIc^3A6$s|C39c&@CFjTY>sbapL!kh=2J))CuMLyb zfGv5|V%;TDqMpk{MgeaD<*p+jm_wQARGO9O(6o%I=XrJ8c505}R9)9CIgY&;MbV03 zm~_sqw3^MiR4Tn1N8zmLxOLOCrfl18*|t@W<A_t>4a2bfsMYcbRQ*;U$4QGxAx)VA zb^NQYfI6kRhf@W(rrZO4BmI9mQjPw`J7e1(x7mENxmtTYe1Dro?zvD;2-KneP6k@r z&MdCFJrjJ#q`vU@7r<=^%}O=S365jwtVv&;-URLAmj+4+*d}sk1ze$Fg%!BmSkdZO zK^FxX9v&hK3*pQQ4OfcYx{IR*>5>yus6ZObvwv@p!q0(pIUl(^R^j!DV<P5fGZ_h( zctnUC8!gAe_*g$i(*^7;ov{1o%71HHgJ;Eq*8g`(^Vz>w7zT>{{rKu9KB+oMwHj6y z7VxH@`DqM|uY=d6RHULeaQbvc8=LEFHmQGW$5f@p)VWVQ_Ptt%rmZ-0vb3%&qYdPR zex|#`S}IbpZF<A0z39ag2%RKTyPZ;w{7wCK4y2MIbN1P13;+G?Z+|;}^EZD}+)-)B zL>Wkeb@JC~*u+6qs?d-!!HY40+Q<my7CSd6QWprK`1~V}?8n^PoD7!|FcZ`*l~*ve zcORDLX0aRx@EeV`sSdT&RRvMmpKDrzZkcl#tcH^sK{|>W988PU<0Y3|EYGv*%JtHE z-nufcc)^PHqV>!lee_Wb4h~}P-iKrzHf~I#UMEoNu8?b;X{GMb{a8n(Lsv>Wu8xMG zk_A1eNT8&7+uE2$(OdMepz0{7WJOVOH2CfYt!?*L8RAvzrDX(l;==DnUby0Bcb?bD z3=NRPtjP3%bOA>n?n5qJL901~{=O9U@At5NcRI1H)-y*c@lYE0CSG{e)iSjB^{;;o z%|;U=!=uV!)%S7hH@=DK`Dy&*JKv67d(Op2KKx-+YpWO<8pVe34G5wbee1@tY5R8U zK4T9YFD2idiY#hdb`qk_5OC-FE6}cv2M(n2c~W<D(xxdXs)F8e8rA!OgVIbC3A!1I zKH|x?r@9Q^tIWStrC#$xm0PRgI<vCOgiq6-xJ)&$Y07}GrmVP*y#&K-*tWG~TXr3Y zmkiUa8!(pB>2%F7jakQam*XIsi{fxOXtm~I!&nGIf6+^&8r&w@*Z}B27r%%hvZ+bO z!EZHTxg5mRa*-O0tJ#T&$D26kCR*~}&qYIIMgug0sBXFT-EQdL?XDmFpDEXQhwB)x ziW<#V#4X=s3Em(LiQN%tZ*YSqdhnzL@jR5|G#0l~0$<WnB380RRy9V<#GJ=k9Kv9? zNv1-{14}@*D9I$|FLqMGqkN=r#i%<+mt$tzNzx?h7b+2;xD&y<R0wUwosS6Mg&CtJ zR0-T!wWn@-mu-yNmT{7_>e+=B!MjE<K)_C1+QmR7i=bq}r<>|R<vl2752Bd<3z5t@ zjbm`#SeveQ`;A}6mp}0-{L?pY#Kvt~+XV;}r}uXH!Sa5TpK0Q)B0BBDe0iKPEcHt` zWpSLS#v}z1BTD!)39wI=EE6R1gmiVaA_V(as$12g%JiZaPbBoIMW9M4M^?yLNheQz zWo1S5x2da5zB>UtFR1_L|NI{@VPZx4-S2+4=$*47&y(+!uY9FQNWSA8@4y2OJRk$C zI<%<}0W@7Fb2(N0o|rg}{=RdtWBWE7+WQd9z=!2p*nY+ykr?DE_Vo=25Lc3ds*0}V z4|(n@?yjPrXpS(cK2#!M#e8{rMZo;ty$`pITy*8WQyoxJgB-SGu=+kZc>)6iL+#;1 z4f0e)TvxIaFw|uR#n4sCZZjQ4hfus_t*74E7mD_vDG=Jhl0UA?ZIy84S!LE>JE2T) z5YJBNI^CRqtu5ZQ$J+^l27H<V)zKFRGU*7*^Jy$hSr{00abhyW__`H5I+=!7tiW*^ z0&;X0LWiQ0n7HPeYek0fo8P=ix)-c=Ggpb?K&TP~(A8Q^fUIvTT9lG+^l;8OXJgam z%~G9LE~!+GQQt$G@i2kY9fod8ZOxfw5ZE$#snwJwy52Y4^d!B{Rr04?Pm9HVtge=1 z|IqY_w5Qe873uI01oJr5?wwp;@~~6sG^_Q2>)L^3S`)78F50$vB8E}14D&=B$ID?D zOjwRXfWAUgP7_htkK$$=MWrzI8-A<ahzxcYe5L!J@<`SfU>b=rl2UFF(<$KtGjULI zjq1y(B<=@Uos5}GGTHQlMx0K4z!(|$K(ti45SH~41g)PB<6ymhotUwR3sNYRc1c`? zKd#2pj6h3SCe#*kQm7Eb{hP>sG8srZ>xfMoM)KVS-1B_naX`RMw81LBHm%}EaQium zkIvLqumwMg%OLJZ2Dha$&*PZ%A8t>f&M=8kodM3@$TA7`Lw+{{vCHqK_LZvEOX~$z z+D69nP)CR=0`vzyyxGz(2cG%Q2&3{3Y)3uIBgN}yI*m{K<zM4HfBbuLebZhP&xLqy ztY+N44kp{Ri@lz-emeuGdKUXTV*G^BuB2i#FlSRrJF2!#niNAuuF=Wao|NhJ^Kv$G z89k~@FM9DkqI>9$YA`gxx$nOF@PQ9}Kq~3~@-P1)9QTiX>|;`Gzwp8farM<#;}?G6 z7ewcs?x}zDM}H(0O>*Q}f!9@FRyV0o!(rF%Am||7hSUfSu#Sw33Z;SC?>o0{$JYVW z{TBL%$MNoW|2IrdPKhfk6<Zb-Ds7H;_n@f$Ol|U_T{8*Nxa=ElSe0r#-{X0tnP?NE zj=>ATpZYtLWP{5kN18!E$0Vksm933*6!7lw(mOianmewwv9+zd;>fFNtfFWrFs>`~ z$~96MEp@AmoUAjhB>Y&}=j(KmplBKzJPSbQcS;fp&B<5mr_Fz?H3}zMU53^56GvCD zS}h@0$Rq8R;MW>RTa$=td1O*A6d^x-LD!Xky&t%~S6uOYjE$|s0}niiYIPNr)vB1} zFjb);RAsdyfHarSNODE3_g%Yo$T86|yt3Ldg#^v265bhDRz^Ll0<UKav|5keeyZZ# z8QN9e0V*L<&#R$TCTd(J6Fd%Vc1tcg4gs^8dC;_~RLYBUnan5Bp7Sp-Fl(FEY+#sd z6V(I1)rv#Ik63AM)0IL|Sy6Q+bqiY~mfYs*EA^A-T<|<#G8jeo7_N7Zk@Ef?QT(!~ zT6>$}#23erKQ2{fEul!zs|SVK#Wz;XIr=OtSimQ6j-@&;`;Oq5GXnDZBw-P9EGyp0 zpf!&{CI(XaOW*^yKOd9oc_Nj;P7RM+d7i2^5MI2Jva;oK6fc+igF~xE0{$(jwlh)S z{uP8mz|Qk7^buPwBFlvt2Qa9^PiJ35s6;LJMjB2l9>+@KVnp$c&-5;PwgeSsmL8qJ z`Ild&&U4C(_VCwJ9{SpRG7|58yfbIokxTB1Hi~Z-%sa&@`9~PXBC^E(R>H)Ts=CnA z+DejZl7u#ku1A&WMK7K}=o9p%FMX-}5Qu;Fv!BI>Km1`)d?DYR;E5G^x~h`LPD7>_ zz34>()Css)JtZh2NG90-*`NJc(RC*<KkvNr+MlJW+Z>+DiEAn8G6YLphX)>f5N~|# z>oAb*!-?vO=yy|g^61gy!j&gLBdAqQtO{JRBCT|nwYImSpy<Ixf;m=usfMFD@Jd}p zJ2$E!!EU!nUO+h9r>eWa6<55VO|8+E@!gJ<TJc2>IO-~QH_wkiQmf5qfZm~b$X@8u z`R*S4Q8XE?ovmp&TC<$rqr-de3`(j*p))+nt0+HT@%NQMk*1e)6m_U)PLRy)(?Y#j zz*!fahl#um)9%N>SWAG*@Va5tg7dKS2tQ-(fU6#;B+Wpp*N}cSzJ3Er%gZ9mXkUH> z8r2H=hK3OMEnIok)#xi0FuHCWxooy;UZA6yuhnpvV0F0vYJZb!u3q1HTsw~P*iaRE zC4I>4%%N3wiZ~=)uh-<*C1r~<8|wA?W~GLcSygW~>zJFHO}0HjyG7pl$HG?qgE`m! zszFE0WTj~qqz4t-w>u5OpNnApKO16?XqR9bA2V#{V{q&ZXg1yun&IoMR_jVrWF12R z%5rlTMHZ6cBSg|BQbW?LkjwE)0H4^s5DdqNlnI(X=6Nm=+;f=*4Ve;EDY~KZ*yQvq z6HC%zSV^Y|5@|cy;=v^)M{I|cnv5)q9RX5`2;h^~vNEq=h|qgXGeS&#da4_>nurQn z0sU5!!jLNQAXlD$SK|OR!-s2GM%p)b$9{0*<Gab9eo-qe;>E9gH7>s9#p>GB1MN>o zw5cgtLY)zd98!B;H5v6-3(D2KN<G%`Em6bas-T_>wI(N2;vcTc@onZxL^_`ywranJ znKIXb&pc`1u5Ua&s!T6V)kuJy9N=1R?xBYsl4?4Qmwxm|e^drjfAJT8QRo5GaR16z zz9M||J$v?u&O3SV1XdheeeZkUi)*jFR%kQSf#-9q(02!`nFLFB-+hm`ZL+dS9`K!a z-HA87_H`IpH--}jSFp6Wh%bHV%L1kdvike`q*_hjr7h8=0#2}`E(mSl-UhRxWYMvu z=lRUxLsjio6<4j5-mMCw2Oc#@?3m!F>p{opM^#bvwp72hMtkR?r>-I48hvi^(8I() ziC`~LS8s#(Zo?hLk0wo*)j`^|D}@d?Nl!D`wptpJj|Ajtb3GH&9sXVwy>GR?YM8QH z)kM*bxUOfPJ%EQEnZw+|7Wlyi1R-^>xoDa*asLscEF+cTXDP6(jEq#3TvzaQ1wNCe z$<{c=){SAu&RuGbkevZPz$KSln$Tf%$3$%-{e6@YkD|=*alL<7MdvZ8c;=y0^p74r z2HT#L<b&^1?!0P-fwLE?OVbiPd44{>GndKZaA2TcUZWE*os==jER|RIT(wv%+~1$i ze+H)cRl_vyWj7=4-uJzG#oExailTQIoro>#FX9+~<y)DnVA*f5>y<YeQ9Nw%eBnT; zP*r#^u^A!tIswlS2eZ|EUn=!#E7QCvq1+@i8vzE1MzoTNq}q%&DkBir%Ou!VbR79C zt=hxIimamnlN24{zKb)HGJa$gm<b1GBY3=Ou+KA&T?8JFhK-o#SlE*HnxWFNS6u|4 z6$J=e0jzv#)EvsG*PiCV^KI$jMO^R`uN94Z&Y1LY*V7dp+<ej?s(P?pW6&N-N_|Tg z)b;Dyq6+QD)Qgp3ds{3<<<*@Ez9F70y4aqG)~Nfdfc&S1<KBy2oa&*^RBCMVOd?I@ zw%cx#YB_;7LH7UrpZ`;aQdya#>I?_(=yFMV3oGiZh~Iwu?NZ%lWuAkr1WcsY{O#ZV zt-P1P3o^kN!92~E=+dexssZNa=kUnheP~phC=LuDo6aiRbH@?z#PD0baEjAunhx0l zUU~0TW<tswMk>l$aYSCDE)?x*cyh7PTzL7N09*#Q0fAn(T1a>GftMwvrm}YXX`tGn z?I^Vp9U6>lU>g}x2OyfR;?pLek;z8)04m?ZAwoal^!o(dTpp{7NtKsZOe)FnDoZ_N zQ3(+VNrG1nx+;?$n$BqHIZ+W|b&@=F`CjDpvx5<$yjsE1a#J4XHq-;Gmc;?oDACvM zID&Sx^VQHMLvhAC9C+atOJzP*`qiG68)GL!xtDf^de#2nYni-hJ#+n8+?I=r3pjf8 zXws2s%HMQjCDn-unjY-sG1N(>)P5l7SCk}6jxRO9Y0I*-(H4_Tu1hYRdf(XK;KyRy zI+o3(;s(u(PV>RS|5POHr^s<`L~PvXdzt?cMbUq;5WLom!z*kKMSHd?ZZkpEhG-l_ zCM`?UT=bBr(r-_ERu!jR23##Qq}pOq#SRU@I{EGDxYv8FEx*Xm;<3n?0iJKJ)2>Ul z{SJig!rs3FE8)>=ij#sPRLMxxj#>eXu%!}=h{DurC^^yNK@cl?m*?1pcrYhsRHu71 zeIH{No`vGrXuAX2i>Ex=8?__5t{(58c6n9<={2E?@cO={JGPxMP~GblN=!^jyY7r@ zdG~fzsY_*2>AA~3SK}p5#W(G7+<S2<2TvM(jGuAF88U?Wna_L%yLa!#|NX!JS3vu( z{_3xayd$fU1mN#_*Sn;$&YKzm5?@0uJHgOf-trb4J9bRC@4xk1za_Gfzx>O;+}3&L zN0nF0$mVj`v13Qu@P<Gy3PKz@atI^q$1s@RD%#HkRHQIy1(-xZN^xGvRh1N88J`Fs z>;l*Fc?7#`rzfUQ>Qa(`Z=sMVeyh@VPI$J-M2;9dnHC%?;lm~cIz54-Io6stt&Ntt zm0VQSo>l!WeRWcJI2cM0opcPuOh*)JLPVslkaJJanSf1gQLleGn(j(jB^mV*Ff7Ro zO>rD&)isTXa)PP8{7O2LEpwQkH_1#Ux0?366^`+()*CPpRnxA!90BF2nYs1NX6wzS zVY>O8niJ@B9!M8bJaS!4=elUuPqk^gX-A!Hq&er>Scr)Pr9hcf@ZSW?+U-*tUh#db ziffgfT1`==6o*|6{4Ojk$#1R$hhh1C&Le1r8%1kk0--trnmWVvB2_AijO05|3e=U^ z4Ap^XN<x%LdtYpL&L1&J3Vk&P(Yr4^xsdZm9k$DnZU1pSlltRSxqMCFq_2h_{D>C@ zyG=1SN&q>5Gb`#$R5={V4iafDl3ztyuTD7Z2D@6M)g+W90R<xKsFZ5tb7lB6;kqY} zX$5y#lw2>OWUw_!*?Emft{1Gft1m)I4=eMD20V{_a{Oh0R?7ZuxmfwP5PX0}=pz#b zv>#SH`qMbLg;!?haOt(z;Nq*UIz_7Ok9U1|BHt-~8rJ1;7p~_*v4%FIq{5Pyc3!TI zUuCEyxLf{_oG~<DQsMv!_Lhkco^nbpDv?~0)Rm22X)eoI#v6AB@F%32Ud6o^z4+e2 zlUD9Rte$g_l+LFF%;c97OcBVCxBk1o`@16dNKj77%)kBHzlobFtMhbHed}A_DiwB0 zMN%<_6?sZM(rHx(Ph)nr`wD6})AQ0Y*ec2}afHJM4&c1=FTj0=ABC6BpjxRY8M}_c zS{r!Nti>c)PACmrHs$>~)h`8*Nk@^dDCE5eCV_NPU8Xg=C~1qgN^(;d9xGKcl#vrH zxrIl~Vm6=R8_B(<!=&Shl8bID5_mTnihiMG9T`#y=jTwmFL7Yi1Fh<Urb;0ETbcWi z=EEXi;u`6=s;<bPN>6=XuDj@aN5MUn($ddm3x(R$%tGw@R7tVwDbHyV->@*8$)@Uk zef>@1m!(n(#X_!G$Yz_Y8dq9PxRftUJD{2!quFep?>P3k?5yZPSG`_J_E3RcEo-Qg z39X*P@55t<)GN|Y6sNo*kMTDFIC<lw?WmapH5^Q^%=f5esA{|J$Y_p!w?dC{J53xj z>B{LU9e&Mm*L-(<BU1Z=6q-QHv9vM`kLN90wuodVgS>W9ag>5fIFU}f*tv5H8m$1e za#^|<<S{?j;l;Be*r8Hgl&>~3*{>S&i+>ho)6X-);OE^&{du-)<}40;67-6sWm2+B zjFl89R|&C}ca;4?9(<ByD^h?u24q-N1}Heu-RY)D$4wIK<T^l=6S8l^PL;o1r6;IQ zR8NG%7AEs7e2Rmsd=HnMa^<3-`g{r($@Pf;3qm`nv;gs^IDLcaJ+@)v)$e?}{QJ2N z+Mm^7bhVD<KgthDslq7ZUk%t54j1W{wrWiKJ#FkSV7_hU)K;o#FIScq8Jt^DuwL0O z>Dz6){{NIwWx5SedeMthF%nvbV8TO(4v8N7m%j8RsaTTsLQ2ce{LIe?C?^mnsHegU zWgZF0Sy86}6RYQ>%#eOSCsp#?U--fo%5q4z(NV8eF_7`_`|tms=pR`J!*;Q6|2{F| z*|L5!W)2<2`o3ZG<uY(=7mX&hs1to`UILQNHEAZKct}Nzz%ugX370%;-hXN2K%O-L z8bJXmF_h2~<%md0*pZ8#`~*^=i{Xa>h;Hd>*rKy#7{jO93}1s7z7dJ>ODNXp7JSg8 z$VS@BASK%Ilx9>wo<9VFbbw@#qGCodhBj_Mv5*(A>7`t_q=>M($n{MeK}p47m7ebv zP4*~8qYZ@X0$y1)%%*d6oIE=D=)<?f2<5`dB!O7f57clZv4t|R^5uEqc_&nwfZYgk zh?6A8FdaB1T_>Y^E7i)m{5*nfRpD1vf6WtbG*}&1)EzFHgPyEZ6R7h&`gMGtrU|in zPN1))FjX~P5)GkWaT)4)KCU_k{LGb=sw6qN+_1Qx@-sTR?d0gQLf?`kkOS4Tvuco( z+nC9KN;cGf;CAJ4st29<+WGle`TR|rHn#__M1qt0?ScOa)ArJiXVueLLy{#dm$158 z?(~m)@sxz{$_*^VmUUgzw60q<owIVy#@j5@dTB0bU6ip+)J-4|>Wi8S(Md09DQe0! zP>FS7+$hk2iF-SLOZWkaE;|9X&|rj*&c|3PROgPM2~Ex6a)>r$sJ6QUr=3`NjY&Q; zDJm+dN>X<Ch*~z6!OoZn+vu^D(>QotyX4wyuyxN_Ydk+r&oF)fRrhXMO!B7&-d)F{ zdPt6VrPSV4H0!9!bolF?<!MOX7Hv(OQgyRBX%EYXcD*Ype)THuz39dF4xTuIXg>e> z&&wd{o8SCq(Qzj@A~3)C=9@(hl7Cajo!oT(5ZJT2PQ7*lA!@r*z2&aE?h-|r#l=Md z`ZwJ0CA|FQFOv`Bz@%duSe&23#KZ}tb9rR5IoPXBq$^F#)=PN!o_lc4RhPm?h@jDc zxv~OVdDDwIixtLjc=MAAcL0lKkbxQ!jYZy34Tm;G+fCg(3G`*Qj6hE~;T#Ml)QtrM z$YUa8peo=>Xx4;7U2p?Pk%p2~#50D4wCf<B%OWfeVaj$f7x{<`rDDVFHqhUX_1s3K z6`VM55MiT%e&0afU>+6Q!g9F`D-NX+=Xfr*Z{Layn>LDy27v?<1=%^G7^uK?I+c;f z8;z<A>sD)ZNo-PPrhjP5PApCwM!i;(@8%}Xl;2M<IXX5qg{9ImtJPos%9p?T_G*<? z@<u{UQ3gvo6m3V-M%49}lATnMAxJNmsfC{m%Nm9x9hFKMhEYUcU%votHTcBkwlFg@ zC67@Gl9h8+Sy%5T@17O<a=C=QK2=@UgHz(FDqR8Kkw+dDZu{uym;iQG)HS7t%OS^~ z0G`X|x)a#X%uLI=FD%SU*NM+*Gb+)`H;hc9=?w)@Ji*u5sXWFv6r~$fT4A@yM@kjv zd+`)SQhwtJx!1OgU&p}UZ{2@*;^VFP<=5=VXOT~*r1M0a+@L$H@ZA*eRsejc43;D$ z+gGB}V)~TGR-3I*Rpm*EOGvi__^bfaL`k`_s`(fhWF_EW!tB~`oiu_PO}aw3o(<cx z5X7YFg@~IiSX?%bQPSl}iOZ*8XZsOU7uDc6J4&VzSmg6Ry+G|*8|;KpRjO28#;bnn z?Xtf~AM7Q<M)LdVIxaeO?(PTmps3#diQ<_qwI{i#qQ<C)l0H@<9@!?Xs|nRL^cVdW z-MHfE*ZF)+VC6uF`Q(9nM_%o8KahHH3WsGFhB(%c5<@;ZPfh}L4xt`Cd|0Z+98@JJ zrzz71KlnlX&ENcuaNr4WjvP56gRQsRa*I^gU;XM=WB>mB_|S(wB#*uS{qOI5nvxR{ zLlQYzYc;T4JaKFaVcbB$aADLcn7R2*Wa)%TKyCn2c^7pX0^oTCVLeUxw}|`%Y*=!_ z^A;?|HOT;t&|_f;==S(`2zZq9Gx={5X~TpE3u)?d#|F~mv=gwKF&xrB2pUaW`1TGf z;HHg~Z6oKVQ1UYPV$i~8_dbAwGsoK+@2tpP@xm+7XtnUrZMR}&ZVn?bFq|Gi;hM{k z*{~k9Y85fTexN8Dq;Rl1A-<2~xhL+Bq{@)%&dMUGF->x@-82S<vgiv#G-}l#3c}k> zCyjx#FF<j49qzjGZbb>99`zFl?(dZ6VSZ^DQ?qk2P#VYKrz@4!KU!T~9nrvBy;gDT zmGO|XMn_*!gM4h?zC(2S3HbFk(I!<4f^PzG*G-|-YIJ5Cl49G+$`S?#mE*1&RAXg4 zmFUx}<?*=d7%#Cpu2g|Y!#Qx^5sZ&-5Sdan2&<?*iYM<Re0XjfrGUdkfuNm<0Xg?P z4|KORd4J7DW4?{dlcH{4K80L*2=!XCo5a<Nrzm(kPcex#OdPS%x_Q&^eYHyJHFvC( zv1M)v+gbt6=r3TTzkr$%p~|kCRLn_XQr88k$nzK>eJ$f6rnICa=o~a9s$g=jBqXJ3 z&IC`$xk~y@l^fZnN;>bRiB#<1p}oiO^}`QgK5SyZOXC&WcVox4P4Kf0(4wjgiwTsg zq^`RK-vqoJTaY<y!e^((h-sWwvT`{@HWS#>FEqXGoxkyG7~i~E&hH-9`oSdxdO($^ zTG3sSXSGaHmm*9@9jc=a(*^L8H<K%`-`fHI-Jh@IW^|IQq#`@3rci#*IkgwP_}*a~ zhLPnT1U}Vj761It|16XlQeQ}cdCz;^BLkuY;{Wj<{~^Gg+;vtbX~^`=Z+=q%90ykU z+Rd9ci*xG0zyMzIl9veJ*FhDNR6^%qWy)*@XoU^A(R!u>4<>TFsjb%FqJ^yKqTo0v zItCU~#7hQphKWAj2$^iy9&)CIlt~ay&}|7o7tk&LHsDb9kyTa>Y|3Ng##2c}U0=k6 zM`$-(L!$enT}ckJa9-7b9Ir55#)BO@I9QMIuhWzG)Uk)LvN+rRe%vN6yy|LXvN_!S zjc=m0u!v2mEG|e5VBMM9kv;!hY}~mMuJH4fQcOf?OG+{lh-#ThQfK@KP0=53N`6wS zw=i*HiV})PF1+M|59D&`da;n(n@Xi_45-Fon%KH+vrt!V{^qxkrt9Vt2v(h$WXvzE zC^<|S<V3l@zwb|iAp9dPuT$MtW=KknM{&tnjaNawxg*L$ivFU(H7nkVHl!#v<hie6 za8SA6Y8`l*AT=6>P+|Bv9Y@<lQZkcE%&V00i&~$K*^_o~Wyga_P$rX-1cA?Kb1FSF ztU2<0j1_t&A{>g-243=Q5-NplS%GbfsnVKY;>Ba9P|PZ&pH>8myy;#%>EO&s!4EL& zI=F4PAYH0~Ov<HE*J`nVLjXQ@)6GcVeH&iAc^fVtUyn_Fc|@KKlBhx+lOi3N7$>n( z9$E^lGoepV39IYm#kafq1QkMUQ##^8<<iW6FcNCpgAX0XSE^Gu@4vngwZOnVx807< zEll7|vnj0KI0o^&6)D<;2V+pNDu8dB*nIvunEci)2sm<6sn`9Zvufz}G>nzGd2BxG z47}!@?`S(&_u>at#_xdWZmLYeHrKCB9#?Pc_KDM~GYTJT@rQ1l92=&v*d;5_pWkN8 zM6}#ay1YstLq0)l&Ym=ISF&V1(B6wvIy}=fGW>%VPF5S~m`b|9C6`<x3Nx&r@7%dl zD(h63p+OTLqq+=-Q4bzGi1G1p{Pa)%v^b5Da>HR&(qu@NAxB<^-)bTYR<>=}hJ!MP z5)D?%P1uzEGa_V62Lq0af@ve~xY&@+V$}7}VucwIimr>{v?~LZw8>6;E<D#&Ra+TM zB{$qwRWl>GdFvatw91v9vZ%%gGE;n3(Q6i0A4{3XkP|Hy?Ga4dM9T3{YnZrkY61Un zXfN(Pen758!=qyu85<La*)3bPV)n!&?)c)D(U_dVb~lI1``2S^^9J0M3YIslR(^4- zfmyOP44_5m5XW(3+m;jor8*qPF}deaNY~Q<4L?Am+K6ua`Ymria`@2Crc+)pJu~q~ z+qQ4T%U^n}a(g9>s4Zjp{mH4>ripTS70acvRNlEfzTa`2zsuz^zfdZL;{@PJL!FX| zRDEd**rl7O0`>{#*EI3aLl2^_Z=hX~Z?&}cy#~o?F}Na?MROsQF_n#6t{|^b&*@OW zo}ilvL9Ip%tyF@vhQ7Y(le11r4&Ps`*5Nn=?uuWpIrV%WE9?6EaGjZ$DuX3;2xy}# zzR$JonN+6#J8wXP37vsjrGi$yE|P&g-puzOqPobr1P(S^2JR~sG3i-oSSB*uzlPBw z2R&!oa-GT*3;62FEWW-nhv!w#z=gRYu5fcWcXSBZzO<a*p>0AYwDW1{WF;MYHC)Qd zItNwdT-U5Fr9>kJPK~-i3Bz{eVVX7htq_OpDxUX_H)3eR4(!}Mj`J_M3?Ke~|Azg| z21b@jFtTYFO&UiTh+P{-;2`Ctuzcb;yvw(vI697Cp@RC-Y8=ikp0>wIy|jo|{mJjk z-#yU&^hDedS<?fk%C5ORczROJTUh4`Ypa3O_MoZ&`lLFqY3^Oz^@PE$J($!;Yx3DN zSLz;G)qkoYRVO=8#j&S=Dx)0`d(n$iHrhuxtCSo}ed8P7D8QWDc2Zra9z!!Gf;Vcs zvx3go@#gs(zwsORo!|K#8Svx4Ds{9;SNPLE{Zj#LOnyb3BZ;ZQ6BspYxSoN2%RnvT zqS**hqjRU<f)^RcL>4lJfj-;Ckn3TH>K_D*k%3%n%8k3|Wsy!hQsK079t_c5PFyo> z@>V&}$w9D0-AeqI6TYfAmnYXS4nHach&ZM6n++;7Cd06V_@s2Wfq}`D0RMLA5I*wg zeJHIgq5xpshRxW#V>^aNhJ{PN|7$m4=Fx-5RI4~YJBZ8IZ$WC~7(Tu<fjbTzs|`<_ z_!lb(@v>K3i`8<u<DROOW!jYt7UB%lTEI}w!v4t_L}7g{4E=Z1YT@?j>6xpirY65p z$mem*OI{+|n3S4AUr{RCqIU5_cD|^?#8{eNgvUyIBC#n79i~}Mr_vv+)@twXxRbIo z<D$`^305H0>$Z7~fNQ6%4if~X46v%9R2h?18o-7jGNK$>WmP?!%OXX-vPfU5in-Fz zH@oOE>NAuNfUdN2jrbWHifsx=XX3<-NZ$I&iYrxo1;kZ#oih>Y{YsrgtK_iTq^kC$ z>~sdLl5H_zTkdz{oNCf$E?<;tZ=L$#J-Nv5E4a0?q?H5_ZXYV*U?GPlWmTgHE{_wn zjhj3cm{`i7bV8frIlR=D#dVD;ZmgAYcC(D<FZJWB{yq%bKwn=LVJ?HZ%v6ZPQ)14P zxV!2pQC+0tu}|K-&}L#8Sf!IIuPe2c2G(D=2cx^s#PuKl6#8HHG86`Pz)2O*3g;1` z1>4LZV)uugytId~Y9NSWR99EwM**_yM$njDp>$;&nTg}>X%@{!9XqbL0vEmEhkEDA z4=&;)Yfb)c8!#n<sB7shYq785wx7JKx-R|gWeG1{QE-yVyuN;SfW4~HOA%g=jJL<M zpEPji&85XblSCDw7ri*uA`HUWd?9}@lgaELt%Z)M<fo5}jL3j02TmDO>Y!Q-tLRkj zAW)%ZJL6NI`qUHptZ&_YKOXqnSJ7uiLdQr`Puq^fgoiNGr@~7!gc(2p`he+SG?hW# z^<b0dEE13g(yj}~wP5onmjcp`RJLM*FQq&MgB)gU45X~wRLeV|QwS*6qw;d4aYWut zI4Ks};*_W{;H6RsN(OG6UB*8i+>2We@8tv)MqwaN^_aOi%+4>NL=_lB$i@zKm@dv4 z+KLV1>u_SMfDi4z5BrZCMqjaD<+ADZ*I$3#WGa)wi(h;-R#ukP=Zo4z;?5WY%as^? zUVt3~F^u{wHebFGXY5#4{@}lT<<G0N>LvMn{>7=3`;BjY^IHOR3;BWoX==6~KRy93 zoo*XFeYYSu=D;XvIzlz+x>|FsJkR;-Y&Q4vVG#D|s=M&~Q<+3jMh}S+RFi`qA`Bu? ziV$7(VjjgpA#ouk9ZBh`yRH+b)1J}aR}2mxIy(KxfrA^_<xw<ZCIbpk>Bl-+?Cb<s z0@C>ytM{|B)0mhzE}zHOPfblGN;fTWQ{`*ax+?&$OrDhTkLswZ<0PF<371~$@@p5^ zX0tJ=^oGAjaNRssdIMCejU++nReqibEhZO6n9QVburG@vt_6qtgXf?o+NyK5rOjM4 z7|<P~%>zTI)f*^PD|o~*(AqMDN3%s_PRwG*^b*d*3dRTWKp`dSP)yc^(=OF^R^8Pw zs^Yk7=}7gt>XeK`Z{0zR_2cVN7#_x(-}W|a+_D8X-?101>LS(~7E*@8HX7iimC8)Y zMynEIVYPxrtBF>v4x7%=CI_zFmL5Vsoq{yQnfb%`rT_5{avxyQ-J1`2TEftOXfVxc zdx!3#2LF=*)AoCk*RG+qXezs=$8@MKx-_Pf0bb%0>WeH?^|&+zr{gCm>!CXUy7Nl4 zcbNl!QbGB<Lq`uO`LAB|;uMT(t-88%`_2zvcIjpB=in)S9xwLn+0*`;-1Wx`Eda&K z0q?n#ROA^;UGsbIyAL1!tG`6;=pne4frwIWtY#4i3J;wUhy>%FEF=hhq)i7Sb_RwF ziZXe&WXLq-5X6~EX3;jKx<%V_{wR8$k~b7(3IS%6UQ?}DRcKe$TBR?m?9}->gR+GL z_(HWY;kh2>XIuElp=0>>qYq(zc1o7P8rlEP-hV(zc3s(l=zcGJMEcCi^4?d$yMiqk zf*=5b1U&$PY%}e|R;$^q?$*p`{*r68q~BUg^Jk=4f4(%5MkBS@O|~To(7~~3Ko1Ze zg#u70@6x+4&-``ndFS2xA~UNptI|Y9+zn)9#*62|+<W&ucb|Rosf_w5A%l)u1|@PJ z$+%dX%i_x3HAwaK;;ZE|`0Dq5fXW!Tt3X)`7E47%mcRU0e@&GWvHz+oFflQy`Yy7f zBzX+!+^_8Su%;tKM?QsD-_2w6?5RJl44u7yO<(pq=f`qC^ZoLRv{FG68Oky6BY6vv zPMU0Vw6&oVZOTfLg+ViedeO155#=i+ww31R={Pvo+1~!g4xE2M+H~c&uRz3EBGdut z(g$z2>4r*MTj$#T)vM6e)u}Y@9c}H344oSq!NB?RDjATRT5@UEX>Ti%zW;wY`QCp! zmriH?6FJQgDJSwQdUclO5K$L9M|P3n2zjV9@AR99J0+Krr6V0H-ta7kA&Ct~YI%i# z3op@cBI{D@Y2CW@D3y41$SgXQDHe`Pt=)@)<UlTc&LxZt4Xe+^&2k|g3k|g-9)>9T zA;wb<-pgn3{q|1O9H2ubn8x{SF&xKHjaYbtuE@)OXESNE=kx0G?#makX4__*Ue$vi z4~^oLvqM-jIEt-jhOxaZht*we$aa@7h8n6gQ7hNrRB8wdIZjTc8zg6@GS!!elIa4T zG`78a7BAPH#YmwIuN*ytk(2M?j-D=TJT(Bnx5$%Q>IbRbLau<xav5(A4l12H(HII) zOt~RFe~#LED}g4;r`|h`10Vbtb{)7uC8S!?zG&8vp}53E(d{UKRP%Z9Z#S;PrtHR_ zG1KPiOR8(sl~AKKNj8HZ?RsnhS?5&48XL}qjS^EupC&Js!~T~|+^@XyO8n$!KgOu4 zfM}!c7R?8WK>qyaKmYfoV(Ibi+js0B`#dQvFNuY!2vKCsC)+4OOICyxRqe8j@?;s+ zav3#piJ6#yH#vdI6#bq;b$A4WN8ZJn6Gu_$>%{m}4PLo|RH)Lpm}slQNUrh{Cl?r> zTtGm?HK!~PxrtNsoN`Br<WqDQ2r20-NO8nm20<ccA~})du-I^x`;}Px7galq;|h^; zM7og2;K@n+=Qj@H-@pDtTH9qyL7HIrK8mR<I=qZp1t3S7j;xCf*$!;qv<|0xi}<Uf zZ{a70UQhJ9DT=aXDEYI1T-L=`zWy}6`P}!FM-ItFs<kOp$`!TB_h0|XhtN?hVRXvx zPy6Tp<j^ZWyqCOYa!x9onkv53(^dGA6mRdXn@FkdnX1~3j)9~!QpL0$M1D`5ISa2^ zLy7zhXMvM;{<v1lJqX}-j({^!A`(obnjUv_v>(6urUQS}+rRn?!xK~Pnl<ZCY->Yh zs*E#dPQynU`C=PFDx{>6K2@QrzZ@Dk|Hq}yj+^%E*<H!!^Eo2>MApT5K&sCwkNp}I zd?GTPQj!_^E|$w~tcNGU_V(L{)o0t=+ZTJp({Iwg=W=Wp$W>Y=qJmCYwdz5WfgL+` zs{Q0$WT~Wswo>7}RCEt>1>JKgpT)WJgP<Z;78;5ZQ}tjsg+mz^ue23#F6AOcZc}6p zIy;Y3o}bkAxtZ!DVv;~fG?2a@N;6&a&=G{lu3e4l`qelwIE=T>52F3-5H`JW1p7*P z?A^2;9UTQs6jP{Brx8^#RdGTu>Niv#g(}mg?!9ev0zJ<k$Bz!Zj$Bt8?%uZ-n<qWE zYu2DfeUBpkl=zTEwwl6EkDb9A<xyl(DdeeNnLL9swScbt(N@!TSII?dLm%$`)lZ|n zr@Kk2q^_tLKxozv*H6cl#k75lJW@8Rru}2w5vstso(O1X8abaUbr0j?RsK*EZ5Pdb zd@>HST<)tS-RS<kSK!;<eh!@-ol^GI!lJ3*dEUvt{r0!-JNn*xzmP8!?(+Qbu38j@ zRD_+1?|4+?#z(bMhDVMbwKCjt1?ln>($y-m)e6#H4Vjt`mwc_g8VX(wDJpv8d)QU; zQ0?l*NUes!Toq?0ConlxLAA!olz!l-NR*05sRBqLGHFLGgVT^n`=}JwR2b!%QZ$_s z$s&1+`iXSUE>~4lT@+b3l50bXBJ)w*L#3I~MOA2^rAWPslabt^n8Vch3ch^o6uv%j zT9I}khEydn?FVQ_8lCA3@~)%gJllGE(Y3B0Z=?eJho5{G!$X79-e<OUBmsShFxvs& zucACP3D?aboy{t#3H^+YP2n$|c@uyC7jHqaP$_m*M|YiAm&Z?D8NvCpQ&&xlc~_MR z?*BpOyAYYIRL0e3xT?2z*1>U31y5+XA`Cy0&1QZhlPUaqrBd50@)aWgM0y7X20Gt; z_w6rUbNzL};LERl;k7s3NGoRz&bU<*EH{*?hL2()_mmTckJWr1Tek1`(a_-FJ0l}w zdx?YzDHr{}`s`Ebc#<GVqZBnKo6-{}j;jj1<RC+?Nc0>%rl5RBN1M|8s{~#uu2o@; zJSEOj66>*J$4Cx@tFF3ACCrMqyLMR!YUxz!=Ugyne!YLOqXX5Nhtp@yBQ-~B&SnQi z*)z&DDZsb8+VE<|L5CkAt85vg_}lDnbD+LUs<0Nj1F7BBcZB6LRBOO>Ik-Sjc@s5{ z?OtgjNgn+>w&HKT`(6CgZ#;=R`ZnMLTejo+HT_uE-3g~i-tb%%I8YT$1B6OK7s4TT zCvvcDFJgOfHU3^YgQ{0UdaMesqYb{2-bDRQE{#Gai_>op;0tfRj+0XZ=xOUjsZhj` za|38=%bzc9?E7J@s_P;&J19spbnYB>-*hwX{K$t@%?C@`7aw8l-zc8zdgv3!7>Um7 z2)bDfHGa-WZq?_F2)mjLa9llf<#Q$X7>>Bd;rIA>of{=`9eRF&>>#OfB%S!#XP;4J z+@-UyuxJ)g4o9(Ae0OwY=%1cFd*+YUtXsFeP{`gM1pfcvIL`ibCexYmGN@&$%Js#q zRgm*tWDp=-^N=l9k)jgt<uU>y{6xGeMD%N@`hlv3IOf-sZ+eeINvSEUD-|)3%VBtO z3PTkSBYq84B6fa=iNHsD7-CzY18#~u)mi(k$}u}3+_VES?og3fRl$^<UlbvabgQZp zq35adP^3vpq>BWCB_3RUiX!$=1y<5FS3|sV<Q%?J8|BoQsFP8V;B*$*N(Jqy6uL4Q ztS^+XW&L_o`a1ARWdwiu!p|{0G&Jo!rqiTTF4~JZl&e0bf;=3zrmDZvy^y?ve^SWj z()hx+Uc=Ac8Nes*+J5APmqy;deQogv8#g%JuN)gYT_|M#I`qR~B@epL=jx_WuGCPj z*3jNjsxP<^y{@?poIwx_WOJE+(caenf3@`&?;e|+_y<+bztVw|q5JRd>dO7#Z=c3h zS6}t#`}gndc<r^<|5zD>g-)?ns}*aG?|WWzA3D*Mx}uC7l`jE&ZaWK%Jz@v-rL zT&q_8QF}+nrd&4HkuQ+@4B0tm)q6s6B658>dFm9-of}ZAJSp`VvZD^kYlxWBV@jT- zpi6IWk0N*@BO{8Wv$IUV$-7~Q{{B_y?d??)vhMC~MgAz_P7_uBj--*#IR9tp`-f?Q zF<;PmiuoK$#k^WYX=Rc^U%f&YqT&EAca-o-HjBxWi#|`px6`FDGav|+>q~S_;|s0p z1W@#yC;Da%gW8`ukRU{RI)k2E4kTdv+WF&nxs<{7sZnfyJ;43z*I{RWFWO3!?~qk> z6DolR*W+Z?fZS<Pu3G(Zdb{9Kz=5Lu^a{vYlJa&s^C(b4{;>&s;f2@mje++NR%=+d zVLi%YQ>YCN;mX@@_)@96Yrr!Knl&@1kC+%6#p=zQ@R{HJd~7{vu_$m1eY&=VVPb70 ziOQ}7(XVSl9%ZY>zBGmjffQmA-8!dfMRn6=a$=0?smXCsv^|#E#QyJe$ps5>+<E7n zsskWrjqYw*mbTwGi{=9n9`aKtm5OiXve`GQ)#`tA5bj82viCcVbI_X{d$4x;WXU^z z0@?9Nv{%c>O_gzCcnEI{4q%X68!8^$vX3lzW`{1^AgXXmvX^WctJ-pCFQkwow;2~$ zRV-jM>tUekV6<Apu;-&2S?p`?!rHcW<#n!dCTW>kNlydzU01qxCgw`|LgZcT7pSB& z<&GkSmuWlYozY_zuIJy%gIq}>qD4EB$Yj%~j8^ftCy(J=2UG$ofjSl<k@>cEI8zho zLK?d}`p~guHBM)MlV^_L2S?w-@uA_wd&>E+<R9-6LG&wrc;d{^2nwBTY(+>qf714+ zGw_2NT+dJCbJ=bumChYLF`4<pfB(JR#at?wm?|6_9;M=|#ednis{8r!<Wx-+X}SR0 zQHu|$3<icrQ7B|lDz$@bCNC94j)EXKo5`g9th2rC&w|jot6Z)AlIuDL+e)3!44pfP z(Xmm=4fs#%R`q<1;;N}s`j>nAR{e|N;o-NAzxVFmq2Wr(bzNWd_@X19nwt7jdwc0i z@4NesJ)R%l=?CEf*Kw|b<6KWGJwN&BPw@KdZ(w|M6dA`uTiQ{%2%{BpBk~j(@9XPT zpA(UI(jwD)Lw2MRou`QrMPP}{lOs}JA8GNsFg(n}p1k3SxR=`6ROGg;l>SND4gXo> zjW%!FK6-t;BEix6RwV9X@z~?}c%ziXw+cm6q6u}LzE85#oFS1so@A@Tql8tl6|E-@ zkyTyvh*tO5y(oGT{cHL$?4<FGKZKWt&tTWY2o7}jVLN~w?Im=VvM6WMDAVjan}%EQ zRT58-b`Vx8s_uj1q!47tMJ9u`LJ?!{jN{LK@B;qp={Mm8RkRh`uw~meoPYftY+ciT ze&3DP{2?{P){x4Ojb=p|9(?@QejS^4?NW*D7E7XYj}RxI#!?xvbrhbiiL|)N@IH~; zCEhQZbcyaX4&X<|l443`&KYEcHJ{ftRSm01`eQ-YChxf8U=(?OR(bwPXKZ27Y={UN zFF^x`LpcAgkj?zNRWBX+Yv<*c9!{0V;E?9KT0`3NP@SB_*~u}yH#~$h15?=Swxg$1 zL_Xyzi$N;tt)%3&6ui*@K`lkKdz5@2mr0?NE?~7=f}aghEd*#!Wzk+JC}QqrQjxWx zwkcEuowidO%w-T}$gPBI9_b0vw{st)NC8FYNux?Kn#g%p5qgr(==yH_xAJ*UVR&*9 zZ<ohVDdtg%a$6!_a}}BO&Ys2Eu1@%y`|<6OGkEX4V>nZt#HmV!b>AeX;UY%LVlI<T zBbUv<^PQfz-Z}BbR3<eUx&uzFGDTFf%}wPxC(ENwK<)}5a+ONCm-uHUlgT)K@MbaB z_M@M@KIjKd`cJxhdS574raIE8@aJ>sedr!4)fz@d#;|VfI(TBCcNtLf1LedLK9|X) zpG&7xYq~ny&bPO1Q>2%@<o#3Gd;xAc^IWAGAe%3KyHIK)pMT=S)A~-M(A^thh&O!C z`~SJ=R3@Fy+?vZ~uIcYzb>PaqTlYPD*VR|=-M0^Ur-DEGi!bBPpMC}TToxUjor-i5 zL6?e*oPf&Lk_1;GN|Tcl%CdA|;Jk{qQ^BX6o^G_Yx2x~h#Q50ZzTTcE+DpZMHZeXn zsEFVtkZvuvX}xhm{Fn=Vfb;1zzSmyFySXe#be5l^Rq3>I#?BaQ)tr1z95OV?5PN9; zZV91J7F49%g^mJGqBA7tN~dtPzYjlNzX9Jnaspe1MzQ6@B(Cge!-lQvKudkDS5^t} z)RLSmCCHP6F9jDVObk@<;~&0`|NiD1cxLi6s(wvXalZD(8&C{0m>e3xZ4ck`%b8N) zR5(>p1>Tw+^nMSWKaFc{|DYx9mjq`X`z9E3TwRGH;)*9nL^<+JmwZuiUgv-~?PGX9 zMkeiQftQb0vT^o#SMecw92HeEh&Tmh%!z?%NMriS$JJZap9?N3y#4k&RL9Se_wHGf zzAP-71(kFLt52WAnj=Snk&&1ETJ_;nCa<I)HQz<0=AbXzh5J_b;r3n+<LjvkD(S{q z+Cm!jD2rS*cKVNU^=L{!L@J$O%RSO-lS2wQl~9D-r)WA=p`>G&=|xFj$_QL(*CG4R zAWre;tdR3)uvTl^k@X|(FZ$CkD#Sv^t93t$$a8sgHwZA|c^G#o=`;gJlGP|7ma4I4 zve<srmB9Lqc=Ek>@$RuB7@rtd#i0mv8H)H8@_9uHNWDY)XzHIPr^*G#nfxTVzD$je zDc^O{d%Ni@Jeo-OHKa&4>(`Xbf|77k>2&wR)YM%a?QP#&)!Y6hzgF!_d9|;RHQrn! zG5K@~6QiRT8XQ7L*98g*T>>IvdRiqe*J?3QrT08rAjcQy9Py>Lwzj8wuee%GXil9u zjcTQWsmV!Y8)*_Lljw$FSPO#S+hO2;yQjMwTh?5;>6YvIf6&uiU3>J{DHIB0xb=!| zq}w;X5@vdTFLYeb^Zk_Pd;Xhm9Qyrp=gvMrt4QR6G&D4fk<oFKid6imjbt`wLxjhH z@GZbQGBz^!b_&6fO<T6See~F|p>zsEtw*;P2K2sldOoHyz==#6-^rx$cFILp5TK~1 z;PVEn*`$J_=_-@pDRJ>Ek;-sQfT&(V^dnJukx!+m9z-;`%lW`6ikk1(jNwcc|M|P$ z$C0PMgIoL8;kLCKv7=N(U#Wz4T74rKS9JnsC#LZB$QXWf{w%&XbP8vJijop$;oyqv zZ^VvG+c5g-p^2?qH+&{nEPhoLgKL2*yR<SobpAYcUvmv^zyCocXR}xeIEHqd9!KGJ zDKo7QN6gtThPSDvqlq?8ej_Q2#M0{x-6KuBx^8U$K((CsynH&XnO8|>67`qKfJ_b+ zHsUV0^Uk|eRE@|xEwfr!G%F}cYs2IOw$`d}Hm*gjzxSDu$+7>JPqt=MY_%K6l6JR3 z(M_O8#dHE6L5-uGs(6Vw;fZ?`L6W>9BCo2G(%d~2!lTC&P0yrN#9e{fG+ls-07a8| zW&Idc)KvQRh$O2W6xk<72r6;T<UCYGQKJBXatNWMSK5b&KOdu{C#te}2!|#WWOZ2c zVvQyd_iQ?a`#$p-Y}mXBSDibnbereToyBXfy^5D!_&JWBIF3qr67Z|Y6^h8^$xmI0 z^btB9vXs!8PQg?9e0m?!d|k4K3;7ykCm3e3Y66hWWYb+;9WQsZwLKjM{ww8j`E8oy z%m?%?Ry~%BET&vTlXf6qYFANAuU5-u^BJ03-BPX9{(RS-eb~HptMXd!>FtA?$>G%L zA71dhG~c4n>cF*IkDec!`sKG?|N4_>2M1l!y|3>tj<4Ok>hX8aWnLPuQ1mp96DLk! zbaeFK=;+u3RC{3K#*H+QI(_=|$yeJ-g+u8~<_Gy~=IKhUcA{Ek|9Vw*wp>Q2@*Jeh zx5cHP6oz=WEsxiWMI0(*kqZK>p(ifWnT_RDG}+~dp-L7vwC)mFH<R6TG@h@`MZFB} z66Ic-N!n_EN}~0A^mdid-rbIKp@+XYa}<Ab{uDNJb{|=j%5TY3RaIS#hXDqH8qWD; zR6<|5$7FmDr9uhUTz4&Y@7jg2*WY=rzrFYmLdX9xO<IdBuo6R`!|?e5tlhW?pZK-U zDVHf5ZNC(RbJ$0lv&>-i7#CZLoLxl8t{O^2sO52@l!sJh67P5Z+i_HqIFG+(0VO%i zp(1;7g6NQlnAaOBXdPSh+`>oP&B#09nP;9+vKi_?n!OQPv>xa?y*~6&=<7$7e9ax_ z+qvQ4znFaM&5yg;ta5h=$R3aeP~T@iWG|&kd{Y4(3awK@7?mC;a;y@_cwvn->d_#n z^yzfL$SN?%XGu`5N|clIg*pipF=NFHC!Z1*PNfm5@I60P4l`=PKtw(Ap`rnth<ub> zCU%d!b{N@4D)$qW(XPh#Na126x9MeevMVHgbUvFwUr!HK_4Z)Lj_tVi`fKrl`|iVA zhu*|XFT8*g$4}z?&@jeEMvx+%v+H8*>Yh{GT^*l0cXk-rjH{e_D8X`Vf3LEir<KOh z@hO}i7z}dx{8)Qid!?hjeYCfy^BvEtO^%M%^yFhcpJP&rvS=VuM9H=pa_*>R;3+S4 ze@eM_`oSnUx;Ryily2O#1#RseXlw7n_rLf2oX$^$T8ix*-zaqL`Nz)S&;QW($FO?C zhTmS*Q+(;nNEsuOt||_8<lT4BUd;bhYW1qC`+B=yuT>_WbDZF<{=Tkv=^H`P9W(l> zK<`hay|$PiXkwi9edIkKWTr`pr{C!6P*qRKlYJr0FtuBSISJLC`%;{V$@z4-lFDm| zoQmT6k0SUY4;1pR_8|fvk$yrp?PB+pd;Z}_rFwMKtNpX1Cr;ioIX0?v{Hf4EDMPs= zB{f;xy?ZxSuUhrf@#81|*Np4^NjjfHd7NuHG&>Y&9~i*;ty}T<Z~cxc2xqMyFBQ%l z_K9UJ`VSplH;J*@Ia&da_3HX_iF?3Us~)++M7ED=9Ov^U{obPjO<ZA>MpaSF@RO0f zjJgeVVYwwa@8W3OXCm*^IXv^s(@Gy%uer0ZXa>|M-BT5^QLQ&9Y}xWlLAe}M&Yk{b zK<*pqtkR7mMdUr8j8w&|RTP|>A#Ed~OlB|S#6S$2B5$g#l1(GkB6JXvjU=f?DMU{N zniQF4A8n;qSA?7O>xyX8WFc~rp~wISLHNG9iXqTot{fdXqVEuSS5bT2`>@n63N@%E z%bE7%6i*R+mGG)6opa)(@_COSZZza*Le)wq#>Z3v5nBEweSE2-9oOG{Gp@M$Dx5!e z4)4Bw81Ei_2S<+`!`ZXvNcu97N~Qj0a%u|sVu6?Noe-UEMdfTm?^~rtR+xdR94Y?! z<X|C$qG1Q=;UQdk&9&II_X<oBIf-2dR2DGpH7Y|0z1!qGR2?{v4I4M$`WtV=fBBF9 z37wtWFLos$@PJhDpO2S2))m`)r?b2JKhyg|Uo%<>CH*?hvGS$j&;20yXqs{i=rbjY zZd!4$^*9!swCAYqLpqK3`nvGu+FlH&QYd<qpdKZkF68whD^MopLdMOgyPCnr`?4&C zqU?MpQgPKJkebBvHnt9xf@WkbnpKJW6fN%T=)#rz_DojG<?kIndh-1b-+S*ZlT+mf zj~+X=&hvt7ds|!3)zvjxDix17Vemt*QvRV6gcVv<Q?52G0Mh#pQ`_FQ4UhijZ(Gv7 z1aRU)NqTq_9gI;hDUOWS`K=rFk29ZNTw~&WbP8&0DXEW@im6dnSuBT<>*^hKVylks zFS>E=!Gi}?r||5vPlKxdSy(hPB0ui&%$l{Ig5&;@H+25r`;+4tCrj=q+#3+_<>XI? z6R#9cVy71+OHsQ~VmDhm25A>=tp>-95=iMe(w3|2wlpi@l&+P^k_QO0MBbuhIy#3s zCH;|N%{mR#6jh@^S9!ok-2-V#)!$LXIugUvVN%*$m3yThHRp(keze-i8h3JkNh6=j zDalKf5>VCkm=IJe<%&}!d439O*Q^aTZQgY5jyn&I4G#?m$BrCLAAal5U(<Wo-rk9~ z-#!8_>gj5<N}!^EOd?j=@J6<ueLbDH>dI@7Qd1zQSgQ(bt8@fE2<WLq@Q7luWRrO9 zb=To*PduSqUFHI+K<TD(znRUE`-{gV>m#Bj9_*yKr}vVAL#;uVmIsBYvXXlJ_=+7k z(^f*RT0=_JTrg@PE+8bbo{X4_o}JpL=-SyiM%&ggu~FX%<z|#TC-2LXbvaIoev!54 znl)=wbzYLkcJ}skP+;Qlu@gZillfjpCi}fov50ETSJ8IbpN_4Rr&KtgVQ1WnCXYFf z)f+e9(a-&svc;qck0tF(28Vx{jxSN{L>EP6w{<R0Y^vLh<GJa`IXN+0xO;SNBjeRj ztI>W@@nF%mi<%}T_px**S^SA*J4;gW;`ZBbR~^A~&yj4V)B3zyG&iWRD(~U&|1NFY z{%ZN$>3>@p95|r#>`D^D12z%2fGQkDQaiR`%&2OF1lF{>Dv6aOF`0A<xk5>4zsY&R z_oygR$kvXk=OB%E)H_6l2^CSNh`8?~q~bgj+2@N>RxBK<e5m$u;8N6@H09~Ein=;f zYMbf`Q8(d5J(RdkD9?AkPm#)S5g_HYe#~+4j~vH8q7rEXCv=^37>51?5KK6ZOI(pM za09Pa9nIvjQ=7JK3Hy6{-O#U&)GAdKkve+x1Ss;p(m`ZtbYuwo_wK>&eOF*`a6rkR z1P(%yI6LWd#t#dTB+394u({%@tFUM9Ui|b&KZ^Cq7Y9osES3l1R2i9a4o9xsiSrxR zVj`PHd$~HjfcgT%lziz3UnFZuBsXiKpdDu7r02R7a=n@*`-tpDeE&N;yA^S#@!j)7 zw~))?>Z`6G>r)JmjwUKg)6Yy^*3Ay;e~GkHr2X-~_q)jEayHVwG;m@&8U1hUzhqi7 zMn3LbQ=AF5knY%JMi#8=CbxzgjgF2-hA@en(N>YMh9;8G=!m_n42Vp}Xq$_tai1yj zPB-$*GtVm7jD<zBgDPP<snm~4o44K*hR(mPjST&!ANX)nX}DAfCz8XcJTJ0Ji}a%s z6_=GXN(s%oX$%fd;%s#S9qBaI^mZbZPoYNFpo>L`>3j}OD2-BWqA5OWQR9HF(!mqy zXBmtdq?Kr$R|C|JN;0ABWFk>J%W~ohZ;^qG(L1U8@ICM3i4({E@3m|DfeB3nbdF0D zRfv9Q$(@{2$bPU~t|;dfj^wZGIIzeF&YV7t-Fx@qz6T#tud_aI;X0{ak{t!LTAHL) zGesZIoIHt7J@N>$nY22Gn<k~SMWaEjWCQ_f<uZzWJvhC43x>9AQpJU+o`bi@{LFD2 zUsYLFt0|^0zO+Lr#Kdi0<y=s3z##h^m5(HNroCyRJ!%a+OKsR~M%@Efa!%1oQK>-A zQS(kYX-ZHqVq}mt?T>u!w=8L2KJp&wO=i?x<S2T(PVeEQ(1@_hzR^>ngHK2`4O_=V zAuTns>S(%lpV0vsR`2NT$>efn-HRmz`@EBE<{5N$cE&Sy3yY=%H8P5Hd)}m*$^PB; zt=qm;IeF?|RVT-HD-s;((Mdxib93dj&VNNx7g|qC;oWnic(GQ-3+GRxIy{CObDg;F zid`slmlSy?M5!#?@aa4>7?XsCJy{~s&TcbwZpw_|GH(1VMeZrnowc!k<SaunoB)BF zR<a(|LCO6oNj()<(H#s)U?}nOo8NpYpUGs)6mc6F8d1LGtp<`1knZ=xAN?q9y7>S) zdwR&pW!gX;hT$;z_m|6Mha@#K4dnE`lb8Da4?KY9zw>Rhb>^4wl~~Lb^!XL@1+3b) z2OVqIV1!nn#wXQt$_#aphdZ)BWeJSv)Z=HO=MxEdiSL?DYBh>4>1TB^s$nN-<Si?k zT7eh%%7e<I3dkw}+g1S`I(H6hH*dycfA_ahD3&Z~UqU$SuWk@@316`;G`Wf??L+I( zC83ljy>XO0_Er~tyE<w7w>G4asCpE7r}L=cIckfMWJVzj!yrC=bUx!>KJ}6kcP*P? zpLZhfRyJeN3J7X7WJ;yK&aK(-ozWA={&S@|^&v_WrDzvTz**+P1(K8nBT;LzW6Y#5 zJ}`mzR&`+4{U5}2#XNrc!Ylap7ylX?j~v5+wp~g(qugcaI2t@dlFo$uw{od*5N22t zudG>AGAV1-Rgnm#r>CSuPH>INGI5e>6g7yK?{p3;oWM^+(!~xkm(AA5%I3)@zouT- zmQ7pKQu@TiSW7LB6N!81qaVhtx8H&D=g;BnnUgctwFnU&3cTuX)M~Y-yeQ#sCJYaq zS5m7Dn>MRNUV6VR8Ve)=p>b{Ph7Bq?8zeVd!i<bC3{-_OakQgc852o6NYS*L`gi_* zik96tbE5u$oJ*uKX602H(*yEtjm}Md5G6nt@;MBTO`z34?<x7Tuiv^2pZ)ybSAh*n z+Lr{5gs>y&iD}6gCz3`{?}((!F|j(uWYn@UC1Th3I>v<9ETE(g)Ao{5kjcERx|W(8 z7&`cvpz907L2gxHb;*f4;o!kL)s2wm-6pJBv;?S8Q)E001~P@>hjZPXe=t5U@W({x zU8*dol0!*z?knv%**H2>e5mRp-QSBV-+vI3Zh)QJwqwoOop|e&!>FA+r|c4`#5i{c z5rL<%H;B%q#$ndL6IiepNnavK4h_;OMOBr9i0(BGKFHr{DiIZI3e`kJ6@4<6*!8M> z;Fa?Efb1Q=`HiR0(b0|v9((}ZT^*R17;l*Yi(Y0=Z;z@zDoLeg!k~aMB7FG&UOlJm zhGu?$=*WDrh(e*D3R79)-gu;)#xpA5H9lrq8ZKR^neshpY$ft6iKql27N%~Uzl)rx zD%<He4yH|a&tUQ(5qZgPp=)u0xVRsnbNjwSfeDh>C|Ql;pu4l3wC~Zj)_}@y85&gb zm`6YNcNJ;3iKt74u<jw*EXI|P#6>0|)3Ntr^xZZj>NA}-A%T%h)ady*GnJo=-D+e_ zoYuO9;3ws0hE(3DoJO)4alTQz#7{0c?zrO)+<o`^Fg!eL%-Ag~nj0!YRr8SV>ipNe zyZ79YYHNGhulg$btp-<0UL_|N87PAQ*|s8b?H$TpWNcy*KGNvz=|*2?I}`ONDODw* zD!nRsmhfYh4j)DZStz>iMjeH!kjnn<(krMAh6Yu-kLWy7j43jcRdWN1<WJEOI2D;P z)q?7ICEu(0VHhZPnPLGWqoeqnzxgr-2ZvNe&Q=0_W&|NN7yH2le$=26Szy}!vavw9 zEA8#==<ew;WVB2F<2Yf>l)MNeGR~w#5?48yToURe>Q3#JDx~siAVXYcw56VdEY%`N z(*%J@zB!Q$g1`-^Xp{O0)cZrfd%N3^&$UiX7j}=?gvb8w=TU5HSCMv$%YrlgZ#CNS z3bEd<BGb`h^#vD5gk8@w&7{;={FO+^Hnu79tUcDXkX;+j=mb@BB}zNGo43Or?Q}bw z5UVS!YGUui+8H_TvP9hLWiwQysk^&-#${v+i>8AziSdzX%YC=FVf{gGZ0tXkPo4f~ zSoIL*a!imtpS{>Anm#y)i6cjm*|H9mOcu}o@Ok7<o<?srgCLjTWo_Cw@K~{@{*EH# zN{gzRJ|~$<qFAJDSF4AC$aD}DVPeM_PGF77ib|m-KR_m%$EneAoU2u^F`dR_NFFyz zDHtWyIv&YkC9vPt-j0ch2|V$&Z{WcP-j7wieHa}ZBhU8b{v<3cE*oUGNfmqx1+qJ= zs>#(d`jvW_bS5E-5ePBohRt5?^$DpmDdfnzZl8P{Yut5GE8B_^R6@MzHWLIc^%d&9 zh#)o``3wao=sc<B_Gv$V4(qpV$ESbmw^em$E00;|#8OBUdydB@-~42rhbn+16WBU^ zxprcVFDp;$%bQ+Nu@j6=a*d<rQU4IxD{~~?%u0>#O&4Q|=M&NJisg~Y)XQer=lxmb z|7u~;Dj>N@=m*1vwQD}+!2MihXyA`(Q<L2;*)gi<D)&>a7a;%Q%ScU*VJMwK`K#Z= z)#pdhxn~C`1q?OzY^Ufu>Ec!LDK&gm*om5ciiIwuWu@yn<UL5$o|Nqs_cD}3OU}}C ztSa}ai!iC;h-!>=k;$eoF;vBmPM^YfDnKz;z}WCe^oqm<he|$a(m?k@zReSplX&uL z-@=C<dH|iB9he-S6nA(FixmkXvgvddxolpMUe#uo_bcr?87FWR(@yGSCFzuTgXTaa zbrFe-nQ&?zEABJ=cl4~0<jN#Ix&bPR76vZS5tWc@LQd{Y@yed8>NOGQeIfUlHJdi$ zk-zhsinLpK%w=PSFG)DdZm}%I+)olsNiIVPp!`f!R4MjHi^ASw7ioTEQT1TMbw(0U z)mRrxZlWVaTpBsiNOfWsq)IHG9b?ERUTafLmd?lO3r2SmEIV<R3abQ)ymxeTsHM7A zSxU2LaYWJ?C++@!+xP5wdg|nf|5!eI?snDaBY8@gc99()MfSy4Q37y(XD6IBt5GF4 z$#R)}*&~v!T1}0k>2#dxRH#3pMA9gURS|d^#L3l$$UE&z(wInUL)UgmU$3I~tdFNI zD4k8Am?_{ZFTIE-j=zJxJ=>7W<qWUzxU9Ob2KTxui0y4{O6&cVC%%pkK5!p;ySp(_ zVaE*%i<Jf<!er@3IR_k~qbkD7eOGFYOpX0ouMQ(BE>T6Xg{0`Zj-bnOe3HPEe!mvU zVK|vy{+44|S1*aJTq0fyIn9g^Wq$&hR2CVM*hGPXrYNp7Fn|qPx8l>k^*gpA>bzlu zu#NZ3NY-?Wof7_uby06);+b@li4swxYt(6693s&Yflsyp*2mM*b@CQP@}iSdWyFj_ z<uOSQ0zO`^RGIh1_Z}HRM3Nr0&CG&TTKDDeW(@Lv_uY3Z%{$H5Ei76IMBd@Lhr0Id zyRWc*-Ty~bQKiIF){Fz0Gy)Yc2obcEP@@J;Q5+Q=uPJGbMAW0WLZnT15zv521Gp;i zWK=tis<^7cOwseSjK>9<NbAB0?_t_Ox{yY1dlz1O`8fW!7k-GrOo*);HX@tN#O+mX zm8!B*VrshXC*?S3FO^WMRPe2DK8?YlA(TqR3k>cS77a|=vl;dMy+~@pQvWC#p{nH? z4lqW<u+9QflWhX&)HT`HtVKvT@5kg{NIa7ct(~XS`@Zk`p06Z<GykyHe7Rc2RJ9D` z(mVm6AO_W@FbhPiD4+I0Rb1)Ozx&&kv@ba7BhOAOSz+4*5rxYr$Op|-5+s=zY7%^& z;OcA1%2Z6k4Gla$DKdAqQRXx7lgUX)ELBtCbtz3QL#@6;?FX-~9r?Mj)MlxD+~?}^ z{>(E^E6uxwMXPzf!}q7srMBN~-?8iY$z$*RZ~o-?8X6GP{9Q%NJ&+cjNV*y`Bi9D? zoLWQ+I0;pao)lFl^3G9v`bm|^^F07^IcC~)I7Q~E@DgcL*_@I)4k{Lv$snCCz@7B* z+_SIXU;X3<IGpux<*waWw{D&CCHKg^Mr#GtU64x+iErwmWiwOw`Zu1!gAd(@-c^0d z^W4H>C4h)$u~b4^dz%)WHV!#c5koa$ubU9lHf;yV{emVX+%`qyK3yNrk#&i#3rS%| znq;Nb$YRo=eKeVw<z^{?JMe%~7EaiOO1Xw=Ap<9uMV30a6=D}n@7LJKFxG6`ghxO3 zTgs>1%3~H3QP?~Yd5@8FhB2e{yorZL?E+I@jZ}NCC$#IvHFPy|P4MGIBGm$1DuQBM zL)$yXmdVjYTsD+sPxvS?m5ZXuy%@!pBH0X|GIF|E-sIHT6IKId71_~Yecmlv3u@4- zR*>uN`(n>E*ZyGa$dUiOeCou*DVHo8sp%3ir@y1<dYb;_!IV6{NzYEb6zNu}dMfoL zMEi-1lO<c2b>d2`RXFh75J4qCpengK@WT)u>Ex+X@;pqHCvf=8JNVwa$M82t-^5gB z5w~A`0PEJSMNdyJCMPG1Qq1hG!OP}ps@yc|>m&yblFfYMYfs~WhdzKctNSrNIJAWC zw1vg|LBuwl$)LTnT}6$}NONN#41+K(6q7J~paMzsn8sJ7fHxEZOvrWm-gMHh&aKQO zgp7zAoLS+Kj}58%u^R;5+*i|Rb&(S73t0qV2}i~!aB^}oqDzepdf8)RW9aVc#^-<M z_mIu!ZKQqC5KkzL7`3YYEy<@m1vUKFbre39(io&&=YvKPl|*r-`uz+!i^1}>rr!8F z62oh27%A2i8^>_Ll(>RwWK9`WHIA<vS5TGcK0RzW;!ZetkRtC;6;`{u$zIFCqJ=;$ z+VhZ2myYIFulq>K$^Gu|@gtwlAlTgDq}6jO;vPn1+{wZVLsWw-Dj_gARmRlhI7nz- ztJYBS15|4PrYaRwd>=J97%!Jmh6^v1Lb+B$6(Oo&fC`-_ox;$>1dg6QiLpu<Q?7$@ zCXMkdaOIXQxc=H}QLWXG&y&8LZdkiXL_Ss_Raw25+ia<=h>3|QeDmwi;GqwF0Hvap z%~&)pMDto|Yg4*xkCHqa&<RcD$8sbuv0X<9nZQSy-B|Ok$%#bDlg@iWCQJ|agq5j5 zZrl`w;wg|YPx4B|ngC4IY8bC$Uk!^8n5fop@W25}+7}1)Vs)q9g+(W%PJ830eGs~s zkx0Av%dZKtXy6mI3=$E2!}KNQ<swB>XW)9P?AoT=Rjhjv;hJ2}oHR%KM#Y)*T^m(i zm)}+9VzL<`?^KCSSxhxS@`{DUTtNgq^s30Ub^fnD+P?7m(PN){uTuVOn8J-yo{x$j zqJjVu)hfm+6^u?yp=)(NdV0EX{P-#O6jjTlapc4a96ItgoOA~5-CfA!au_d9V&A@f z=<n|Z6-vouvMM^CNvD*QW$MTgymsg%CC%yX>&Lcr>oIUXkG`Hhl-k-6jE%;X6b)@3 z%jn52UU@rTeDG>(E2yab*Pi?)4&HXN(hN^f@tT>0i53>i1d)-fUb{xE7E!UKbY#2O zNTB=@a&Hnnx=A3Zk}pNfS>D3dj;6=Ec}#t@-b_Fz9X!7utfQB6#QT#p&sSmpgdOBu z!E!y8?5zaQ{T6e1Jo3p;smGSIUosNJ-1z>Q1A!y9irPU&YcxfA5=FP8Xf{X34G(uC zq8-^K$JUJskwv5AtC~rstT&fpNXG4{M+q6cmb&oGI1b6j)MH-pG9&4V_#2ZEzJ}0! zk^jhRZ&>1P`n)rF@3OKPi<Sft>tfnHJy0qC+h<0G|D)HLzh-1|{I;n|^#c{p+g~ac zI=feO6#B2&fv(PORZVr(x*nw56mr=thJO+uIC2Q-R2qFfUFc|U$MDcFwy#}_jT<(g zTCK%{HT89cLLTGi2a%@1-Eq-NCEVAnQ9X*8j9R}$F2tcy^-%M)uk*#=I%%9cKa3~7 z`E6|I?^4&H#5L;Oh#WXhZgJjN3yV2`NGp9G`}+FT3NSgWH0oF+E-?~GH=Cd)?4qaD z?lC6GH~p=3lwG#-51m7AW8NfHT4`I2CIbG2TxFUA^gTFw>?nToH$R7LF0Z~D7IQ;r z{Hqg7jg1#LER1Dd{3s&6ag<uLC`mG0?>eJ4Mb0ov_7#z2Nw$_Y5$AD871N02CuA&9 z0Vg$)&=XodQj%p=lj4FZT9dDdy?R~KUb_f#jQeP8;x0b#6nQ7jJC&2RuxLflL_OoW z=+2}k%c<1&12^@3C-DDu2`GN_fe-Az`s%B%ciuVrzTp>N+WE%dz@~{^JG)5-pUvcu zi;~82=?qr&^eFNXP=Tj_2{I*yiVrh&4-`#Qp43t2)7I9G_Vx~pjEqKuvy?5DK|R*@ zDVH1H4`chdxq@76CMG6v_-I94gQ9w?H*Ch_)Kr}0W#jJ_OAY#NdqIf4RsCxGAsIv? zuLPMzUy{ywIx22fN|lua@pzX=yeWZ6wsEa(r#8yJS$d<D28sw7PVvnPDlE5U%N88C z<yNFqsVK?bM%?EMmX*i~Px3o!LRaoZT$L!2zDPt|G~)(g=XxdPxs9aM*w951taYNR znW;K`A;7Sb)Gs4p-5ASi<hPL!BT;)pYpT8GRld8treqsz(B#yaaK{~YsCSAY@8t8Y z{bnsJS`RWLM@5b%9oPMF;D<lPkt6?S+sI&{f8U<R-wnh6Kn0#?#Y$XXsNHad#{x2$ zOrk)Nc9-BtIsZ0otYo&Y6LchkXRP>XBP?AOdTt2${s<J!qewedXx*}74^A98tR@qw zY~x82ESeWWQoDP4)VNcrG=8~yYL7H=)&$+OgXF>AZ1>_cBW;yQyq|EFk$pwyuG>6c zN3`w|aaXHl#(&LBHb+KB@ySnpDq6X;+V%?|Ig5<OuPDH*0_OGK6&XIFw=@x<Mns}{ zKMB9bU-<a9I&HK`c9U^T-xjB3DOouun+w&JWK(qxDXXH=%3|q_N{o%%W0+J&bl)*T z|AxOi2iKF%Gl|4jA?oH#L8-^I+NZ&#GWD_<>P$FcwL77|v#@AosA4M!)O3FAs;j23 zdGq1)p+l&~zRR*7N6HBDn+IqeQPcZs35+@8mna)S`#PJ;g+lT#U!zV=H~B&lTej_j zTOFB3L@X>8m9+alx_f)j*4`dTwi^Gt7kfoV1SNUTl9a03GfkGMO%uXUY+c!Tre5a4 zB;70&!$q68Ptg0(dDuR(xg+k?av9sUZO6?wA6PNpkA)`R^VqfiI40K0A1y97ERpWI zLv#>Zo(QE72}`#kk8_?mMqD}CQR~!aUWt<5?AaDY&CSVaMA{|uA`!6{Iga@<)dWCJ ztqLK=^NTPhtwQE?R9#gpth>M1w>@&4iJfU0H#v1C+<E7nO27B)v(KWdt82M$$HHRS zq4aJk7qv<iLmM_=s;3)nx!fL7)T=I<#sjPyFO5@M63=J0iQ^7SqIJ9vcO)W>k>x)j z2OL@FUeX-E7h(`o%l5vHR5k~MdB7`!rYIH`iwPm7on4(M6pPB4X$I+OL&9-fKk}50 zNVR^hK59<9+>jl_?O*x;iJ%iWuZ8x}5&*N(s%aiU{eb6t7pa`O@{vlXap=$?eCIpg z!{d*C8ouB35%(DyfwKVTGK(igPfic|)Ncr9aG6otMYWy`S`nM4FEp<vGf|er)L6f+ zZpLw3ioA;q$Klmyx`ZxDAj2w2!bD52B{mTm*D@TQl{ijduy2XJtF~$sd8#A!^1cXp z=UK^$BJNUQmGI0nESpKE(^fWP(Q=^1OH23JbP9t5L-@(WYs%^|b?!{uDRBvM8lZK7 zB)v>1NjIFVmQK@P&D%xi8m-V7g&|Chp<YI>AFNd7yrGM|JP=u+LM%nN^g4W7sL5jS zAd%=&dz*4!Dp#s2YLUl5P$Le`IV%!<kDiO7j)v`B)JJf8rm>XrNi>P)h`J=B*X!PC zUy`uV50MW#KIwNY(Zl8i<vo1k8{fq3cifK6n>L|Vt2F&<W;k;Qv(GI+?<5Ip{XrrZ zF~jhV{@baSoCuK?vYd#B%l9%V59L$HxuOVnw7*2ewfjs&sH6KZiz}Hc1F9$C77(=; z8W)o?o!I`yc&QxSk8@jNkN3Fvlw$8Ij<^eXrx*M5(_CTI%4RHD3G{uRn4CbVRKoV{ z+pu=sdX&pk=rAf54vvh#Bco{pW;HqOL8~*>&2}Vzn-PHe#}bj#%aXAa$Ct9`3j!kS z)cIxF;5bw8Y9p}**TQ0<Ah{i-QXBHQyjsOtX$TQk9LJ%u4ztML^kkc>H}dKmK@wD% zWa#a@zpSuv8>jXsKP<UPCnR*Gw!BNV;XJic*SzTND&g3%<M`Q6e}whx))^k*Er|t* z)J#wKOzPVmy^3r~XUyZ{fuX)YnjXjM3#TRK3$fNl3NmTJADDz%RQM6`kA>`JLaOX$ z+`m*!6)8-7JkJo~^CdO#k!HVf3oy;c=lz*yn7mt9G(D)p3IYrd4=bma4}avNXlrXz z&IW}NCvL{B5ToM=LyAu8PLL}mO5qjSqL;Y|taat+n?&guy3k6Z(2{Xp<0k1Go+P&} z7)0NmE}*NY7lR|Cs8*{e6-x_v5sQ{ZBn_ig+)}Baq+x1ay5i=BPBjdPxYt|RF-g}G zZ*KGSI*CNkYp2M$th7nQU0}*)OoA?Q14@854KgyWo1#^`=J$dMv1#LaeEo^9;=cRt zSCc+kiLjU#45FP#FilJ}>l|1J5;Bs1IIAOGB2GlcB_Wg#jHNQkXt!Kaq%5Z2yFs#z zsDIqP4ALIUU=qCtkFy+kkB*H*^Rgc&rK(rpsOraxw7ag7*ckh)VB)TQ-UDS7+0oHy zWiuAd35ssh()92M%GD~i?%$4&KJtjFG&(gonHXTx=@cd>r*Q7vIaMHr`VtzDkyx^$ zXtgH!)MRK$TwGnK9f_vZxP@q0-Hg_W540JXQ|a$y48JHtHeIWuvkSX-?Z&%D-nPEU z77GIU9(Q+jqF7|ouCOv!bgGWy_}o4zI<A-Ig%b%85wfoBV6|sE%V_kf8uuCO5zmi# zVnC60J~v;Bj|4(LNQI<(Z|;D5{Ccb9D*nrV{!jSL-}>$4zMTfcoZ8S#`gQ(e2C^O| zwI*hOi0hRm3+@UVS996;tcluWN}duY#p=ne`d-&X)u&z4v`Q87ZaC4X=c4dFD@Zv8 zrrMFxyhj$0Vq>X=@$ss-eorF5_m!2LIui~aq{usz+YIT=?DDxq)4})Q)jXuPZo+-n zUxO<TTn9G<D&;bAxnyx7BHf<nIb4KA>=mU#qWCYn@sBKVvp&_#rq_`U8o<TxS^t(O zT$0?YNrvmx9B1(?TYb+{D-An$?833*$CRVP3Ji@}Gzf^i77IlsJ!6eGRx)bobUKh^ zQC_m=f=m*DPfp?~;?9y6A@90MqYf-`b!3jjn=5QGInam<t3#w{H=WMc+#mx?H=4vW zM_&{+l1q(qk)%}T0>>JWcp=zAqUkV+yqo!2ruLmTNCIl~ycy|_yw|lfCX&g-n)KxU zv5ww&{rtRMDM(Bn;>1)lGQZ-9d%bLi+-A%ScMFS^1{(2FsybQ-pZ>1YaDMMDtiNVI za+NB^hDLb6oZ(nEm7=6o@_dcA>E%YTiPOJD0#jcbp+2EU3a*%ux#;YMZjjvph}*Nv z@glWB2dLC4$mFuvxN##!hKCRYEn&xIvB2;HAGvG}?H%n=(XbUiZcr32lp;yVfThl7 z5z;P`aWe!-<UEy<S`2)o`Mx9z!svV$?n|iE2MEGI<&rnEt4zY#E1kwK{NgX6c_3p( zvij}<!_=wNYuOY1`7AP-P*+G5OUZaVGGr@et&+H4lcC0m{oBpNZ6V81h14LSH;<~M z%1CJzQ<BBzIPuiT4~xmS+*TyNQQCEq#>lNl69kjrN5}E%KvNKREt_GV_s-6)hAl~L zVKEc3UJZr7M;5?vHU~fDqMFL!ja6$9bcdL1Zv%#gL6#90LYky8zOUM~SUhsHOoO$q z)KQ5>RlCH<-y(l8J09s&%+63Rt*b4vobE}Nx0oQyOCnu8J$(rMTB6#kg~eQ~Mrjc5 z?_Y&{KF^Yom2Y(5yRI82*Cpq&y7&@7q;C4LAJ=Knq+Cz>lYNBR8a-z^Ows%2A_)DI zuOjbeu1xcR-meqKkKtE;?eD17Pmv`y55&8CQTx@HEnnn$^RZL+oGF8kCIIp!l`&1b z#%R4dJ?62_(6&d^I=-z)rV=Nmio8Ze?@iyw_{nJh87izAx_PrmltkS5y*9_xx|gmd z6iq|i2?r0}sX7iR(qv)L$RJr=-t&+N1H9MO11DERDwV~d^;<#8ZEDRP5s93G^wd;b zw(UYtQkEddPw&^%6{CTeIvpCIDay`X%jU8;d$;rc)9oRXQ8vD2kVw9vJh-KZeJghh z<u#v%lX4N%*hiTNymgwgxDb>yB%8w8{`JUZ3#e6DZq)?yz7Q!V4s%Pr1<|ydKJGFp zH|sg@${G`JiX!VMJj>%a2p~!7N!eZOMCAvd;;j@HXlhd#2bi3gz{X8maN|uksbFEP z)_gfP(^qbm1{Vp!gnGYNW)g*|6T3vZb2F(_4|b7!Of>}^v<fe(>Pak4N6s^P^1z9( zbW2h&ss44T;$%_%C5h1M6@hxKeOyU3md-R4aVOky#~td05_u<wfO-jlg~f6p?fZ(L zyX5Q=1jtZgSSE{?`c}hDr*X2k4Ha^Dp(rwR)J9tTT;o=h5a#=S&RovcQ8V#%rp`iU z_DssT*b=Q$aVKqRUHRB#B~`O?F`X(@#7;?Dm!{2eckHXRgKRdBbXNvb<7rHdkHVQJ zd9RN$S~Mp_zR|yWEwb4hldb0Y$f+VsRD8)rCPU;~h=wVjK}_bU4@gQ1^n^Vrxzh>o zo>x!UW#33)5ReJ{inQgKJ3?S^U=R;H_z>1_*q~glnpLh>PbM$r6!T>M=Kl4^I>z6j zc8^Io(!|G@p6x>9g;-CIY{wE9qwYykCZ=s6WBt1^X%M?eBl9&rmbXh`rD)YkTx`^3 z49QI-zfq6*VtU29xgzeSY=$B#5_z}LH;d&!-m9TRZVX6cuvkKv$|7h><K<Or;AGPX zQfUmOGsGm2tJP45RN-b1bt&Cs5CnPC<$<i)v~)%y=S*POuUXIRc^f65dQn8qT)InE zRh{mK8%-48gefP5z$o0bBp^TOOa_^*E>-bzzJn;;d!^=Md~BSYaTe`1EtU`Ty-m9* zRr?^9&BF7WinJ@xypvX;GMQ|`S6nBQ^NK?~8KZX3kwCG&(}azVlf*rFp8EpU$&1@e zj1X?rbu=aDotT)M#QJp`@u3fWs72~ZBm*|{M0lC|o8&z-wndL;EYK7ua~kfFlC@z* z&EpSF2>o=Acgzq4Hzx+Nqw;2tTTg8K7!_`kTaQS(RA5!Jfus>z!v50mlIQ1|lDHG@ zyz@@gnLPXKvnpZL!eXHzWySNZgJS5Q>S~WwHw^GjXAh7oz|CZFXv;Qu(JWipq|uIk zfUI9u=b|>bAZkz|)xKY#KP4~BNVrK9Rx+1BNt-F1iFpi1AEsAJ74mKl?kf5&T_Rm3 zSRS8y`kl??<~>qSe@g@K(9j6-r9uk~#H|I%f#_bfTFF4BDpcjN*$}Gle!cIy8A&%u z7uRHv{UjlkTd^dutFy*38U9<Usml3;xW*C6sD^#BLZ#k^0p9oi_o<crW|YWW2(wE{ z76o(BzK8mk_HozS)i=|W)g;t1Jam~p?6J&7V&X<oC2mW}DyV9iiEE`sgg#QqL^-PU zQG4-~=jknz{e&bYN?MIx36uMHg3`3a-K?-m<eeIq^?A2gD9{pgxm?A-xdFTohM@9C z)V8=ocM!C7;6zVeC6hWqfPxpm6%Ctlo(1Q&)B^=UR%9_0ZI6Aa4Vx=%3&~`hqw;#- zO-f{>Y9e=DvOKPdttRypsdgMUiXkjtTe}n+I#r@tO{yGBO;u1VcyQ|@i54pkQp<p% z&>J>vK%r2KEJT|ZlxV99%;<?Vy>51#;TjLREi-{v7LHM&HlE}2u{^Qo+!5MOh&$WJ z>K@Hl)pJR`kW}|J56HxXCP*KA=pnQ!7C=68(es-T?z(F^y6{q*glb4+w2VF4Ux;~3 zm_?Qn#haq@F?Sb5s9t?aM&T0<Y%%*+qog6x5&w9z&PnVv6Ghsio6$kDc)MXuDa!>i z186>t`%G4m^irk5s+G-HTn=Qg8ylOz!1)1`C(AgVN<{>mTAZpt1SgY2E)0-Y38f;3 zTl`VXOcJ9Nryvkl0QIcI6ynz+9TIn7ew?tX$v&Nv&n118=~6S@E>4!#SMDmg3r7+E z;gJz^b#@?QC;Tg%wAU1A-@0`hIy%~w7CD>cO2f?uN4-8G?q**=;5JUAJlPNF2s<UL z2Z^evGB@W+%G`&EOpeIA_`91jis*P(Y3G~J4w6<`j~qRQ-}v0$iM;<?E84yom~C~l zetW_?#^En=omJ#)y7>6Hhya@eI_BE^Jo`Y%dGrnuMNdT9jZ@bP;$tbP+)koMQ}l>m zqHyxM;!%l(ZX;~poErC;iZoFN_S|#ND)Qb6-m(@84~a5QO_nh-dNfMLq^hRo_lee# z={F}#F7-FfT()L8i?)N*$u0V|$T1R4ug|RK?IM-ofn1+k26rP=pfXcK)T-p=9Ikke z?_<YKs@K7hMT?aNB2|>Myko~sMY5_@B3XJ8+H7E_7oAvY5_e8oO-B)T-OhF1iW#Bj zD16fXP7>C2GOG5SHu?oV%4I9T<{N9rM#r#o=T02B>425fEgfb}Zgr;1c4kUujYaN8 zq+ZM#lR2b%pJ+cFDK{i%x;m<g*{kf>nL=}MEZs~ll~YC%9I=^nqDeJ}*~KWH$7G4Z zEAHPiqY)>pdU*c%=T+533yb-H{GBJKrckcb6d7pL4qNOHX{Iku655m9l)-2>8P>j2 z1dRrCy=*R^V@OJ)kJpK;bvi$m=a3y-Gx!-h4u;1k;d?bp+*cszyGlO)d-m=_TU&_= zlNna0%?X`MD*AM8lbnRkt}@ygBTVSowKuzN<2olMNVrr9fj6Iz?jX|JD9K*aMcnE2 zmn#+A_kj;!)8<W0?Ig39xP<p?Cej|xV4ptIzM6&e_g%<zbbNwx&u|@0rVTAUlXjh4 zN{`GW*=URu)0t$lw?W8t*gg4r63#U8g#2o$(P-`3_3(XqlUnL!TPy%*eDXXRysB#8 zYGmmIcLZby$5wA<LMqSbDY}+Sg=JFCMBMCDC4wjZ@8-*v<W{Xi)S7rI|GiX}kc&NG z%VaVrPfbPzd+Z>+5<s6*xm;F}c3Nefm>6%F&yLzVSvH#5T7sTzOa2P?4W@mh*us)D zE-AA~uEuF1ubzz}^ja=MQW<J5&9=H-t<})e(}R8c_a$<HS}DSP*(aX+dp4hYaFY8@ zyN02CH=i^USQEuhVu88ZFm1q3=67k0dUCbeT#1q(*UTmmEYX?a_0}cWGFpnkPEAcI z;;u8|EiC4bM*jMkk#NzU>MVFJvceJeq(h9kTu#r6#+^G9Jt)hhMI<>h4_>U7Zx)|D zC6!5~QElW8-XZ~tu2V(bLa_})Lqo09=lhf#&iZrKvzr853>wU3f3B9w{Q!~nWCh}+ zoKDCI^%M1^B<_ER)RP#;O{pZ#W&$Oo9zSscPdxDicJJPeW`%ZMS$G0ppKyAiUFUOJ zXw0H-Ps-0{I8F$%Je0ypbwr+RllZm7|BChF3>8~hE>ln5Wh^!F&Z4TS;xZ#ab`r{{ zaa#&DwH9%w&W4h9IOE>JqWO^2pNk}hNQ)UQlZuI4a4A`2C7Hc15w)bhttJCnZlei) zG7{Gua8ju{&96mc!a=Q8MX^xAwrxAq<MHv<iMErhKby^X)ml|eHVtdLL|YZ;$hvOV z(k~>PqhRb~_8HulXnnlY!J$g-s(K8X3L&tnw-4X{?)UM)0}o*D-o4E(m$~2vxST7` z;q2GG*iFq6J)dcxI6_}1m8p;J3z_HdzBs`|I`!zWNN3bB+W9f!@7nV{PKY({C6?rf z<#fw{mJbWXJPL*Ua^H%D#iD=`?ft0WlIbAB5KTJwB|2KBlhm~11P|~ckui0EJaF@1 zpG<yJ|HAWqWgpj6Lm9m|s>1BiAZ?wg8rDIkRzs=OuFB9;u-B_pC4H<_Pzl4(Q<jWw zeeDGfUL~XHnuiEcm!*G^)yeb8yq7vlJmpqnR8e&u$4OBsw&rUq*>oO5BO`eB+2^oz z>sBSDYc@&HTyVLh{Zgbx3qMhCl8-KYKeOrI<#){7>&$HwNf&!n9&UBPD8tX)$QX+& zsz&=rE{d)d(=s6c-nDDjsYE3Ui)I8x%ShXM_Uzf1T#Ktr5Xhjc3nz)B#*D_BPBirq zd6C{o=Dp}>H8}{7rd4uU21FBqVkWMOT98(5Gff;}Td|;|@mwyCjhi;dHjsp7$hDXU zs*d9XnH1Yya^8w)+9krCGK#3__MFtPvzwIuo+tBJ<am+aY3U9BEfav|Y$qYsu3dw# zeeG-b@P|L7Y6G+yai0T$o|D980rLc$I<5MA8-3*R5<iIVFV?Xn^1Bk(QNOwJsooU% zv8z*P|8`U1ZYHy8Z+9`1;iK3^#+2sJrj{b^%3*`D>kW@;3yWp~MHd4<P(1*bFV~*z zG-xxK=fT{V+s7TTMBQ|iL>-}%s60a|E6M~QI*0o0)hLO#>8h_N^6oU>>uLg!E<2ac zV^#ku<sQbCsAxHm0aO@f{gg^h6^mDXPAVM>nWz4MkI^!hDEb$>O$lM3_mY~v^c&*q z&JzJM*_EFoNq~9nW&`!9*=!Df`lnyS@BjYaU+&v!L@f0uA719Q=R^99$a*4qR5nFK zTY_4qUY&=?=#urxu!g2So=BV9BB_kiS`l~Zj3^4z>{atDS{X#tYYq*b>=HqJf+U*i z<T4(Jg>W-b*8@2_MyNe05hg7WHNJxA<2i{9i2>h%OUaxb$z__g>N&kei^c)1faG%p ztXkEt9@ogLy%kxzo?Hjw9wXL`0@J=Vs&E?rt$o>b-yopp$=HGS*MR^*z09Ur3A=#a z8Is7n_~MH=bm)-sbtieC#fnEb&wXN{`UTDr&gDE&WZkU#8l79UC&Lw|#e5NImQ0Bx zo>yJ&Td}ZM6i}s9&+{_co=sOeHGP`-u_T)@IhRPAxqQikungjQ30(QLla4*kl8>VC zyvkQ~6E?KX1+v-XinJEX4bS(`UMiuxr&qcE#FB+(XO6Q#$zQ@y5qBojl6b1ET1{!o zOp+E!LO0(+meaA<dpt=ulC{~9CSwE(h=l0G*k%L0szN@GqsNZoD_{94e((2e)V)>V z=(ZCRZ$nBnErLJ&IW2cj=DsRnjcn7)U#;fjE{S<9+NWEz0HQ&)z=WM$B<j3k4Gp`F zu$iUHdC-oR`3$SKWaM3vRFe{T71j57`Mf#Ft>aR08R}7+bY`+bK;K2mTUxbxom$<Y zmDCoCMNJ2dam?JO6@8Ih7DLLLD9U8^6CyP-_3=_|RRRLKE<|)`N2GLOZKt#~XjYKv z<+^q2@!ju!7Y~2rVeHtxz1baREM`D`y@dLwlMgTS-I&htXFFF*^>R!)xT>UuMKgk< z-+nv)ElFnDAx1B0>*erd!KFGPp3uO{z|BdpR87_FThzd=j!)G>w|To3;wq_hh-#H} zzZS~_uUbWScMr1J3~JSCLb}n)2*V(x)iBavo6b@!fs=~LW-_`a@8aPu4lyRl=X2;> z8KVefT)c@F@f@UGCzYkoqsdpM+;j@%Ne54V^PAZ8E5D-p#a2sHwOA0$E1|Y|N7or3 zc38GuSu`_(0Bs}-V?Snsj->H#NmA1~SJT$fEWlLn%`OAFF4QDNm<%H;*9lUp5KD7L zo|Nw2W$B$1qOn*y(D$uctzgyK^~mJ&n4Fw!=t{;*jcg_z7iyXA3MCQ3&=?P?uSmyz zfE00)0!;*2p`(51dr#*OIS#L4OCRGPRL2G>b)6;;l2MLsS7#@le(EVa_`wfi<EBlP zxHl!73-t4*)MZ|%)5_0wxHFC5w-j*~>ngjHWznpNB4=rirt9j6@|;B5%*eXv*Tp)r zo&+%o5PhrY-+AyhuNz-q<=F&Ho17~7{WLGKWAxIaR;!?|e;qb#+6v$E*q*alziab^ zv|O6BYgvmfmZm53vf?(~IZ6{xso|jI07CTXN^~wc*1TS{pKG4CnW3sk2LZnH#V_LT z|NieUq{X4dvcj3`P7C=ZH_m4o-NaBETZ*_-bdaj*k>9U{MKdBw8Vw~e%^Zl$fm)Ww zb)qUq(OuGSt4O&XyiL;15w;mSlqhJRSgr3knjkbQvKj7ET7a803~F8teXG`D?fNb7 zsx`JYRL|HCfuQO$ng(@-PMzAftfa}`l4vdwbRpopvc`Y&d8F^)D7z%T%QZwluPkVJ ze_C{Fk<};%#X<ouzw{Dbd-YZ9+rQs(jMhQ89Or8(;!YhCC6CxfWznplL6yGWL@3i~ z8L(-v76%!<94-Y@bWtVRuKk}0?D?E5xM3!|YAKDnI{&S!!J(N!^P5!KMXee%`%7JR zi2j;vPAM5x6&O-c;FcP~=H3UW<kDo(Bw1xM^IXh!Eq#N?;mBz!DWNkVlYh~|OMenc zWr8rp5}MX%82Nkw$KHDnPe1)McJ1DsNcOd`SZK6Zug9H@)u354D`cQfE>r8M8SleO z-C_r6RzDTz2x%jFpl6b9CbgO8l#=Kym62+d%|CF_<S6iU!77Wz0ZC#4zlMERT!sGr z)lpT{>~h~$LxS2SC8v^ZJ)KS`sz4?QrS2C*_9D+~J4w?PHYqnHQqD!*Om~^cf);RF zqX%G+RA%kQjd<#*r}5zrKa9;=Hd}`oi$z0A5qGhIv=d>A=7mlo)tXaDMl-#e-FUDj zB;939&8tr8PP#E^($5l`#L{_~&d~BZni^`o!sR}tJVg#W77GoYMEWY)zJLFfShsE+ z%H{HM-&Vsz{MyYzN>VY^w277c6`AnY`?{OjcahN0<es(eJ~EkXLOvJy$kS>_3N4VF zYJ%RMTsDI*fBCQR_kR2HYSKjCTMLVYMhiyVb>%k;i{=9pb#s7bEh|UMNw=!@isdaj zil&Kq(#KsASBdD86&w?FuFA;e&1rDbM8OYI%59;^dAovopOq}Z4$zD7-g-3;fmg%+ zE3d$&jhitwHF*K~hJ_%NqRPoy{=(pPE|Y9(t88D$lk#MAU5L8YvCBEc8diwEkkgp( zt3DxcDGE(Lt%O`Qi*G;oZG8CQk6`oW&6c=ZEDBnRxbqSqMQ>WGGqGqjEwETT)(^zm z!jZj~c_6Q^mMVqH<a~O&4Ejc;R8{zfb?{~)TNp`ZS^=qa8bRP$P3vNq33xSJdBqi~ z(9PuJgnf_a2%U6V{|w7u%;-D)P0?W?<+>WODX%lDDT`cgW>+aS5#X78t7NCfaMNi_ zO-(6>ncx3|Kd=rn7K?(GBJLc0^el0=XnNvKaNV>KRhNjkoA_H7ToKDhJ$N%r-K%f- zxQjc5DZ}B&z9J1RHCR#PGOG(yTU-|OYLSO4uGo)t8`di_qzF(eeXTAL<i#pE7gBVM zK<!r&NJZXaCaw~B*E)ADR45a8b3cNa?;^P}^c=0oscov9!*mb%RzPQ07hZVb1-$yo zE7*U<71j*HV!_c;#66Qqqf{!PSS&2}tyowrs;kV%i0RKRfiEd-Zt7cgaV4>c)E1I- zkZ9M<gw)t}GI5OlX|+6(P(|8^_^9`-^|;D{g1%Q2%)R>RtFeB=29&3!;6`5L7IQ*P z2daduOPdrjttBr4mcH?Ey5N#Y+{45%G_mr1lFzaHPTIZ7dkF)#RgECB*({D9JBDYU zeHJ@*?o8woSy(ItT8g++1Iicj$mMg(eJd6givkr<cj1UMhL^QDD$dZwl&C$322+T- zka>>UCnIv&Ifb1grdMPXVlT3s)&ZGdc6E1SisT%AYrXb`gnWng?c0YnYt~_6d}6t8 zX~iK7Lyvx&QFnf<-J>MWOJsCH@+A^4^0)frR5`D>OvyH_g^wl$a9onhwc;$6-k%K{ zH{ppVp2SB!`cZ7yu)#*%Efy3lMck<mYQ=;Zi`D@RvwjpUlOk*~n2L6lU}{%2IhTmM zj;e`0q=0<h&BRud>`U@$D}snmCX<0%Dk)iq#r#3vp=zyywzf8`Tf0^zqFP)E!V3K> zlXEj6T|KK-+}I{k`UVq{l*)2CT}Uk{v!NUWCi_Y99us&c<vQ?Uo5<Dzsr=j8+wi3? zeF?w&yT6-|7g|_cE?SJZ2k>h(1fB{=SXeY4Xi%l~>x4u`M}W0Qds2VO1H9I~ngy1U z-tVZB+vrF=?^o|3-#VcD8HzGyvvx)Al1O`{f^05_{a0QMzfQ(sF&~6gbG1w$L_H~y z6A4Uoq|tWGNw_{2C%03(Cog^4hsiykn<Vh6e+fe;i0qeJ6(pVe;SYa^x8Hsn+qP}9 z#NA@S&|<_r*)dsIG#jGtcg9Q@^L_2lELM+ZRYfUtuK(7u7(PZ4TEzlVYvhy86Y2>1 z&Ah7x5k?wUH3?eon^{39S1QP4v$)~F&1i4$P+sk=nAo@wphabtztj_V7$iM8nP&nn zZJY@^_XWI<>G3Wrb7lo)bJdL>JG7VjuT_!D=5g}GN&MAc{uO@z4}O2SZ^xpE&{D*m z(0Yk;7OjMcOqZfZaa3GLIfG?0G+29{EOYB<dp%*|f-A|QEnIj=BJes9R?&RN@mSy5 znxOZ4vRtvmbB+ju0EI#kJ9h0xTYEdECMU^~#P-vdj8GAGY5(#)6j=*L(oOlBY56LX zead}FZa1ZO(qD*^Oj35E`UO(Uw0s-rU%d)H`q7W^#v5;7&z?QDnySTuprwdAS9Mbv z@5_BF78Z+w$YZ&W22d`nB9SujWlrudg9sN^B4V!25+|2RMBN;mwPv29Z`wXGN?LWD zniJW`wIo8I7WhyCf)>^I&K2|>s+7yvy?ZCRdV1MGrbY8477($u5xYL=Cz7=o_%XY~ zP|+lA$1+J5>sLa(Z@Wa@CGsxGsd2D?GgMn%?Uc>rFgQ4jXP<sn6=b5-I4ha4xLmXp zaVNC;@|{I<g9x+ZI9VdvWPeI9$vc4uS@C1$YN{lskqDZ(%r3s~>@tz`e^#1qzMhWk z@kLs@Tp-zHf^0df%1hry*k*@UtD@B2fkLs}Mk5yvF*6jubpp3*wr~|f&l7Z+<g;(P zwu6On>~t3?2@E7<b1bu?)7pqTzvpY$tj5>B{&hU`@I%<RVWTDP7MG2dBJO6S(88jL zzvH2Hd0`J>8F-TgnsgLh<TRpv*BW;w`Z{4vC$Y-Ft(_#In+V`(>d=~?_rmjh44fap znzd_|`*s=_4%$1qkj`XOa;oi`FCQU8wN*-xOr^{TJQHiqALV|5i!|wR(QM;M8(BR` z*E)Hf3zM*jrRqyGXRwPW2oNHh&*6)I_9gt@@BRJdz8#AuKuZyKn(30Cs`XU0XjU*W z=b|gRu#$F-(3(|q30&{b&($ZKCeN>b^f~Bn9_Q6RL<`W;P&MCOJol|<u>Y$4%Y8Qu z3HqMq@_Dp(_e84`mbEVoB#B(-qnOF#EP>IkGNz7Q+O({$>8h)GVsF|%l0B@R0C19f zd>0ffXz^}9kWFXs(u+UGTW`IE?c2A<^)oCiE(I+`+|3+aV|ZNc7Hyg|Y^*l6(WJ52 z*mh&vm^8L0W@Fo#*ftv5wwm;w@BW`3`*~-d&9&AR;|KcSV6ED?Uvpa%FYW;h@nhXK z7;c2FoRN*go?z%^dEf6~RlPbf3hI_*37(9eW&hi!nOnhrLU*G6>FGGVa~Tpb33Jqs zQyK_mO&a=NroU<A$TIy5kCJD?^~}^VO`FOkKR@6A@5waiKad~mu2Cy83-xcv4`Lw> zki`%ShEQjFeC)dA?J^FB44CE?h5;yhdXnQM8>a9nz7Mw?+GOVZ91_Ruj)xXJIWn1+ z<9lrKijfIg&zm^7qu-P*arduj+pp$ww%bmtHR?X`{``LQnmC0!v#~J2Es?y*2(PMh z$8M=mIL@gK4@vH$+-K$q*Go{@B`25CeG~irZtrGG4h_#5;P+yi8|6FQWrqCzVBZxO zO7w!}cJ{~4nTLVtEAUX<xs%O-#o}`^rVUN(mgjLUA=^;t5Bp(0aU_=qEI-8iHK8*Y z{F#z))b=JZ9!t88k1u+1IX8O8n7g7@Q8)aZ&8M3F{+t*{9z8OE5H0%<0f?`ve0mpc zU7qnKJQ$l}ngs>%St^i7hcg!8C@b&F_U*A6k8`2i>2hNZ#6}^(du)|m*-rXCY4d52 zv&M3+y3BW;stm{#Kz_uOUC#zs*21vzmB#GkS7v*%#QBZoBEu7sd}CuLplrD;`Y~J0 z6CrL(HlZFXQ=_}PhpnNhfAFslm!eE5D)CL~KPt6_OFL933zaEPadL(jXbOfCDgtWV zA#oPT-Qg-&_fTgz1LxfF<wg{lH??Hpm|wG){tSXXL*^X}e)|@WERR-nT0z}CJZu4K zF+F{#zrFyQlbZhZodh7fb_lFk0CIBQ81c0_S^2%><GJdk^U&OZsLkxJ@MxD}>asW^ zEw-stko8W+iOox5iPp+}a{=)<PttIla9zqv5=PmKIn4u*D0Xzg+K~!IICw?u<rPtu zgb7?i$2+nk6mE-Mm?g3BqWr>~S*86v3Egk-mGhK@s{thAb>7j)txJI$V}dFu-@AB? zdw7u|BLO$#b(JLp*CLeROyp$J=}$DMMbI2O9hmLux}4oZhyNWp+#8K-&njf`(g=i6 z4F6u9JVVk8cDl~8|HoL>bsdsSR3R!T#FQf8eo5!in6CGx3o{&)dBQbsb-|`wjZ|;B z4*6=iG(`!X15c{j(9;gVK|M16P__<<Cb1DzMAdeEeU4<_TF@{Ucz=7X9LpML|9=%W z(tXSK85OzIA{O{R{X^zuIq)slElV>~8h0CJEPf{SXs>qGZYWc*-@{}fHeWe5{GDjB z=i_!TbIG$*GvdKV4E{Ko$sI}T^AE1&6y(0Ww(QI(p}o&LH`knQ-1Wd)w-vUb;-<x^ zYy8B*D|`GfGUG8<tv7ZmCeU|?&B?K$QC1r<!6311O38F$%&Ki`Z<wdauyf>nxqV!m zJ$SJWNqKc+P$vO=&cJcNcg_2<gX?ZlhbBpS48)6rgM@;|H3d-U!^5Qt=F<M?8F|6z zk=bI{&f%#gv?&Ipd&+BbP{X5d-KH;K-;4Rd`|q0oKV)M`?~i0|4=b-~l@?#uW}L-& z61W+_h_F4k`DdZQk4rG)eIn(Og)s%b$7#5egXbmgJx^QV25InDSC!zYQHH&3wRW7| z#xG`3|EsMuL0cLA^J%3g<o*=f@z>LKXszd%+37c97G@w_6^GQCZ|YZU)DSJZ$aJ_w z;t2C(3@mlss2%=&zIDjt)2SDacX3Ra-hxj*TsXnd9H9Id!utu+L%VTj-;wIr$1ZEy z>cotZ?da|3<fPZSx;<pcz?-mn%?&98HgsD0_rj!_wHJV&R4P{m@<=+4VOT_*m7CAb zxs<(oqj^Da@kkpkrswx!aZzGw6Tn=)nJKgSTA7I1F>={@!addw1Y{I1)bFhf?+0TB zgPX73U8a>rj0eHV#?|Fs-VP7rmL3$SVPxnyI1>Rbjb#`gEE{6rl={GWzTd-_WVY{v z)ijOr@9UJK)d*<CFvrrhz(=bvSIa_|D)t7<+5awXTXsh2=P63m@-Eo88L(Crtu93> zwaL9&)|%%V0PLT+QxGfZjB|V^x+8TePPN!kxZ;hm04jBEL?uNfMd7Z1-=0f6Aww^T zY;Zwg^El|oG$dha|GIheUB~CCkGMCPQ3vR5Qon1*w5XW;hCuMmC$qzO|C=QXhY9&? z=0PPPa0=69l)dF$tFl$5Cn9}aQgT}<RyTHH!c(6r|M5zZ?_wtYBl4Ie!R2J0w*78L zrsaL`R41V2)}21MDqCOer9-`(&irfSfbf?P_RZ@Z0<5KdM|p{r39DhVSxcM!l0DWt z^t38gzL}-B;5+n81<^rNC*Oso78_#ASAV4YPbw<lr&-*81i!9OeY*<5i;M@M$tG3h z8r6d{`4Z@6HiHoH+g3Li;ZzKa3HfhShPe2gpeV6*idGx1*@8GHqCcjs9r}3rZ@Y}N z5HuRZ=f98HL-(9|vFaZ{%m6Bbr>#xtwhW$78?!FRZf2`{4s4#>STf;A)<(69MTy!c z%XeHv!z(vCAV14cKmn2fIa1b_<lcSv+vQOWUs!Z*A>rZWx!ytgFE;28ywg|oMGdS? zC-n2@j2WJ%vwIw7xleCwn3Y4c*pLY@nxM5_bn>hTKH+9TVp>iQ(^@i=zjWky2-Yv^ zkv--4V|#N`LC3ERivJ8fU7lH-2~nX|*eMo#p}lB7l+P3Zr6UWZquue7rj4I8;-}6l z<r2vp;Nbhqixdvq@odxOQ?DOLXISEobWNP+#U3J#t@!^~vzWDHYN7yt6ok*zM)UJ! zFq5Fm=mQkDujc2bXm*&w|KZ@^ipXHNpESI@zB<0l)2h<3i)#aVi%>DUhrQoqYeV#K ze<qZLe!R9avv=1%F^hGJnYXMg{QRywJ`z=AU2U#@IQ%<W=*^r3N!4{(6;JSWWU9t} zQ-AOFQ;@#%iH;Pnp4F+4PARw(7a;l}&!<RL`yNZSHW-H_Hw|~DUtyvv(2GnC&33K$ zOH;iVLDR-4hcpb1#FG|e^%}rHx!J6TndiJyEmj@(6%%=mOCvKfMI=*P1WiuL-#y%K z_m8MJiuLvy?e~$UMd8^FWJli>WA)E`(sa4Yk^;GyH1O$HMo2)kq6S>je@@i3j7qW@ zw71Sx=~&C-wK)I;uI|-Pl<lir(Uyn7Q>BNZ>8Rh>=~Wj3dx)N@bf(s49c=J_U=s?N zy#}J*_a7=wzoj;1j)Zf|^$&zg-(Bz+{P1peHtaL`*nY|*Pb%?%T4nm%S?HHNT<7y% zisRKJq{iz$olEOauMt%PoAG*+E&hi0<rgK43@oD=EclWj!^|)`Xhw<A@q|4do*#kC z5@V({Df=z~ao!zrV<ul#L|E-4<d2pM8o1F`vgP^ybzB;6s%fy9>VJ?ji5LJB=-l&_ zD>Y|3gQn$~y^iVAGDih<>xD7oTr&>U*gzGTKi~xw{yb~STVRKlaqV0z@(F6({=J#) zyh%bh;h)Opjm>%6lkm984gD`u;1Mv&t(C%$wz*n6K3%Pr)#d7C*J&PqYdn!H(^?vx z`L2hpM!`zJeb}Q-c3sqwug`;P%W$e+=v9`v8r9G3VB2DWB3aD(g-<XH_ty)VUB@|& zYWnypzznxIJyS+-Up%op-U9IC>MRQ^wAn65EQg3CZRZhUqGU(1C;8;$)>3+wN%Y^x zt{K3_$b3DIZ>p6C`&R5z7>|*D0<nMs<<4Br8>RS)>nH0m2?nztGMMgG1Uk)jJ^1zn z%7I1EZ8{Y$Vd{DkliV+pE9#|*sq?K)BTg}SX+gT(GCMZsRBrKRs``2EY+r{>SfO;E z#5Nh3J`YLdva<N+ygv=K0B9b%xNqFt%UEw{AWqh025H+YN7W@GOA><|uUComf(%=Y zyd&0;6e;h@gPz9`c~-E)@9l`vkL$QcFq&G+Dw9%)gX!$A=#e~V+^8ShA6BfN#+m=J z5`oUHgN##-S4<5J^9sXxbMx~7>3N&~s?CUt3#L^`26Z+Hr>e>|F}l9MGHw#Ikzxy) zb9#i8hFGd+sZa#D53*Wt5=SQBQyyWuq#ME^v*O85^M{{NGKW&$?;<^(@`;6WHG_UZ zfvkb+L_bUCr_s6Fnynh6Hr^X0i@!UX>PHqrD>Q%yrd!DBvd3?OvYTsdD`EzhtQXTt zsHsm5f}#jb8$c9<M=f?MY3h~Bz5V@rFc+YIZ!NFc-V3`g9E|Fn$=y1s7M?rue`<|+ zH#`sZu+Q_XLYn+FD^wj2oR|!%WU{H(O=z6VZfL^OEtT!5GHM4hxFjhM$a7?d{iZ1V zzHcxbL^Ubn`##L&7+G0KV~3V|)_ZdouVDdr)S0E#VjElNu4`4PMl0;|bG@Tuox(B| z6&B*iLVvM|;-VncQ@Y}IJZh87$MWi^iv0HWk0}&yB7Z4!lga>U+R2MHiU{ZDxY{HY zbJz~^K<Ge^v+JSjVdL0xTigV28We88K20UE%-VlNuhDv&tH;|t=e$!RGKv;pe}86J zbF6I0So~?842I)UR%cU`F|v=%aS3>Qhtgp#I)JLh?4~@okn)0P#ozP-ps51F6CQ7k zOY;S%0W-%mx@}$)cxTHUa04HgA2>0doG;HV)IgSnvUc1}qI%j#M->%y=q}N)^|sc? z?MJJ-_5H1^>1Vg12?LI-yiz6w1}vaWT5fjuKGmPE{ya6GuNyTCdWr?^Q_0S6!;3Nw zJ}zE%xEh9g2W8l`L77ix{@?&N?nVtnh>yCmaCvM<eoKOv)1CR2JgG>b%3SD-rH`Q= zd}iGNkr!acoX22dZ_sme3*PsHR;M|7qf3%@-uU;o)tM`OYPZe0dcdUB@#dc-eil8} z%*J|P__ZT_ycTR~_zs|k$C_8gNH_qid}Ex7mhSnDp<`y`IDIeULdC~tesj8(09!Mr z`8O%4ryw9&|8ylG5c0VBtINx#%4Yo3hex@t+udsBsHUG^L?CC#ADVN!<1vQJfab_+ z5(kGK{#X`IVuKe4by#~RFOt@>T$1zzBbXC&CIOxI>)Ax16On_9BQ;?y`K8$@SzYRH z0jr-5XvI_613=IJjhiKW&@XU9?X3*W#zJZ}p)ax0LEJbCOlGS=N1oACg`tNV{+Zo4 zyZv;uRBSx0+qs9G^vUZcy9GxtIPr4qL7xrdh(FIK&)*-)=b%1kpqThy)QT^+os6=9 z=uZTn({2p+e8c-n?O@Dec~W><r=Pq8kx8L68`#l>30!o66^qsB0+%MIKV&vBK&T&` z5~l<G+={;uTc2`~-oa?&nM)u-q9Ccir@}L9d>`s_wpUK8gcTGnoi-DkhKF$@0JX^= zVomC_eLrpdNZfV`>8cTKfUocmBbqauAKf)=JY&Y|7+=%OSi765^5^cWA`V-O^^g)Q z<v;aucEI2+KLtTwN4Zy@pH*H?Irgi1^?exb(1k|m9UbdjzB?^1tGz~r{(~zm36^<3 z6SSbz8mgpDCBieuwkB4`B|B7g7WAiX2rgxp9@AQ0-L5okT4DlAOIh{3_u1EOJ0Xpq zrk(uAA{OY>t2cvOn9AROWHKAps%{|;#@JU?Of<x1_n#8iGs@JJwaBF<e5op;<A~#V z6n~_i*~^yn9>a7;Nso$(F$RQLk>pp*17!Pct_rxnsWjV#dlPb0Y=(iUr+zxs;Uz^j z)o5~G@mbBSInN16gE%Sqq<6kZYz^#-g1zL9CWh0s(3LKk#}3Gv4QXS_!zet#eYrX{ zfrCbY0?E3ae&MBvC>{4G>i2HU8AWU5>NAVW;cgL48rC(z&M62Ko(M{YynhNn^wlv^ zkVG<R-?ilBHwg**0S;y2F=D!N1!HoE%C*?$e7D39FYS`!8%}n6e9?d9YPhVuJu1<^ z@g1-ma=d^R{zy^;(*1sN%aT9YISACj<#|Jaw$eOg6ioX0yHH7LD??~xvL4UJYn$Zv z%&>MemrBPZDE&N#5iy$jI2qQu9D+T@WU^jFwNRteWaO6fbo}JZ_DF%Yj(mLiQSnM? z?4LR*HH@4V*MS+t8VYh0aT4Wb7zk7tw2j0b82ZePvjP{h%&8j}%30j-TsKvEr6Qa; zQl@KMw4L`tm*i?c-p9><Aw2%N3M}J!RhH<Hi!@lJ<V0ooo(09*Y(M0E*&eCd6UCve zS@9u=21Yopih6q9QN|HlFSYPO5j#3xv=NygHya-D>$kT}^VwEy27$y(e|1Gx6!}a( z<l@QZUzQi7iov;UUf$aaWgLPQ&r16bljttab(N>&jyq-C%Ll`dCO6p?-ciT3P&7$8 ziNoK<bH^q*!g`WhudO6ya5Gj8x^R7gqEBbc?-&9%wF(Rn7x5Qwl*wrv85=xo=i@F$ z#~i3Vr4G|o_4elj(*0_i{7@YFPx4<9YTdO_|FHhHV&sL09v!7&>E!LZ#&kwDL#X!K zjt~Wtd+9&V49(6~=$kcb^2E6qmg)AXZ2lsQ74#twnGBYpg8O}`WbhBqR6Ifw)3(+J zUex0NF@tKe&56!g^5smE4wFzrV^>(=f^s?QajxeBp?``mSvI^PRFO@^xFxCLCbs~O zJQ0+mxT+^0-dRK1iu!kXRo<(x7vu4(P=U$Y%RQIZ9al<FvuOsSI=l$yxZ*Wt7FSW! zbDnwQ8@@1GoEb(&qHr-($NQILF$)or5ert~IN|orVer7LUs+=3-$4X|R$qMS*23eJ zV{c`eWZ<S$Jx1xEu#oW=>lsfnrnn|6?SWA@O9&tB;RuAH_(nk2gVyq`46NHa75<9r z6foY9j!)5HUM!y_!U66Pd<y-C#KXgzA~`4EE_o4<)@8DKJ{mxIQU4oKj`Rj9zk1-c z&sVjomyyAt|Hy_m_ftj<nN}%L$|KB0dykRt&!WUUf>a8EK+c~oN^+03gtEoyIg+VW z27etQEX1z_g8V_3|MqNsZr)Z?OcwfXt&Yx)#p#li9un1Q7vLTEXv6kAm1U*C&iYEm zvrM*XhdnjcpVjn=HbvH4jp#LGldyT4z=a4Ol@J8<&tv0wpy{fk)IW5%XCLnV?dAr? z!hJ3GfabgD?ho?w`)PS&vivmBVqyR6l1x<-K`(?Q+vv-I!VX+@I%lmv5PQ@OekYg( zE6UPMfTpTgpgbZX?X?w0CUxVk+*f70mOxm0p<1xlN-%V|i0-CQ)Fe!mgczW%OK$(6 z;{3E5sXD9s-kWD;CcE$I=}(?s<XS`<#A|wSu}adrW3y|(iBvV1z(pr39G+rTP_Att zLr=!41r{bJUP>U|P0EOq{NWz_+KswK;xH>bjRzCGfnR6#)=y2`Lmtat)WptXnWF{G z%r0oQ%A5{McQYA>ZeC?;pzg(dFVN>n#H$j#EW<suV|-ydfbod*Tb0get_YdS=gD@@ zsTG(&10$~hN~SzxQ);N0-%dlimu#dm#b#J~{Q21_U4_zQ%ssc<Y%F1UUbzv|uP6a{ z-dUOq?6a0|`Maj=PlMbxXKC4f?Qtah>YbX(`{$r3>!hs{L_bWYf;EQm{C8>DjbNX# z+k{LyJ0+*6mDRA(j8>*uR5brXUsB;amC7wjd2qI|M6A(2Y>f)ZS^003f^v~Refh>% zW@7Oa5>*qLCkI0hF-&uia^1{Gc5qiy{<$5xRu+;xnq3V0{0x5;ud&}00E*vJjvc#N zG7_1+wk>7lre1^suj5SqKaHYM4B;74mQq7s=9E!f16x)uJ{cad>$Byv3tf8G#`VM+ z@JBybdwurq3{L(uzg476)0CuIOS#I=fzrYq39F~Wc4AdJyHRKt7*nER7eSFqmH*&m zm-W3*>ios0D3(`kMlR?+11<B<<t|XGdfd&$0vjk!{FQ%6NOSM*@BM;OWw<IByW=}% zX7WD{onn?rFy{(B-4t$Gzj-@z*Ytx>lpggUZadV1&uMgdKM}&k$pd-tq)QGcZDJB- z@=CNm#Uqtmk&p-0mwDh(tiu)<%&oXL`R%?n;(r3WyMm_F1ZJDE7;ukvtDd{9B?cYW zCqGLEV<9fH)h&-r&F4aeMT{2AeRX-P3b=Gc2^Qb=TVdF5NEM%L*w4omUn!iB39wXV zrTzw1`Rc>^KF%(jHv)z2FpKGnn|s<O3})&p87aRsF4G;X>hN~F1U(w|g&@;2&31m7 zHXhvh^)OkH<d1u(?To+F;NIDpW3t+|c0Kc72PHWXL%0f1g>_O>Qx(<Yad4s|yxhOk z|3YiVRY|F;B-1hz4T{RUTj@L#5&quM&(s92+J%)bIVog57;9+xKx4}gj7E;h-VVYT zMvf-Ua&mOz5~AAl))F`^u%-@h>qF+ut*k^|uv!>}$46OXYV|6sXg@w*QztZbji#pr z`)0*a<WM0X8dH~AxY}wf6>AO((SuZzN)aGXjUwnUT)!>|1YVJV;s$gAwt`TePvrQV z=qeWVoeNceY>CXfrPkaLfUD5&zyn&R!LjQ02&39RQJ{Enu%FA25fn8?Y=e^whi#@R zl}W}(t0tE+OiYa75PYTM!bpXeA4d-ErJEKJ3c7OYRI{zgbK^zhbdU8AKg@f{N&T#y z-~0RBTK({eP|m;kJuDtxNR8bakF31xiqMZhpjn~Qm)aGPg>j7ER%4GJb`bnc3CDAj z%}{0{Eo4SUxx+*Lnoyo}%7L4<k6nxh3k!SoWG;{|32~jV;^%_(H+Yg79q5utZka-F z-ta=YdFF$Kg-h}oWJ1+pBMWPo`)y>k#LZLmmSURmpvQ@+3Lf)6n~-gCAW*_=m8~3< zxu}b6N^ue0dEnUT{QFyh0x^$nnwph`J3RdQ+7p%I?pZ!2)_A=QSrg(5cAAd6Ob|B~ zrusAg<MdWZb8_$v%09!lT~)SFpg=$(VBf{i$2WPy!GPSYW=4-B#Z~2GMeYt8p%)Dr zI`Apj;O}RFYlN7FRgUR4hh$6B9*jrsfaE~?wqrn)_I1kG!a`AegOLFbIahQ*Mf4>N zxK2XNYnwmZrYdMkR*k6v&WdlDu#k!-Dli?<y*oz{{~MTyW!7LpLsMu9zvs-okdrjF z&rQtB!y15my0i<ZgNE5~L`t{XU_Rh~p|B)VmYe0&<4&SpFS3pjn-SNhc8jIRK>C=x z0zdA?T*YSg$t<EqMxZQ0q;D$l?#=?X#_aiQ*_m$ky*3skV%vE0C34@7^5XUbdX|n| z>!;1<3wMWyHP42|q%)h<yxchHLS3>84E|y$O<uw)_ap>ddoZPQcoAko3|3o7!c!NV zupB=%o)_tPeAXvDcZAsl1||eyKOd%8K+MsE85bH9Iyf{`<J;%OcQqXvFJ;cc%{{U= z@c=>&eJLxlSxU_ea~9@sY(*=TRg}1JC5nQTy9#HmxhFP|NYGE~KC!0F?<P2U!hUDZ zeazLS^c?r(d-+ogh&cXdcMxDV45it+@2c(7>ZK1ZwS1<Kx%r_fH6DQQz#<?y<&u|9 z7#c63k?8M77m=7K=x?Pcn=mmS^zyt8H_s|QRyQ=647J)U^d7;v^{=bBo!(ds*^W2V zEm6b)xl;{N*O;C2@ZC-K4HtX|z;_nYJCrydZSRj1PNByO)RL#9#7zZ$j9GdFM^ie5 z-5Qm=Wgs~@Ss{F&@L3ZzDJj>wHc0x`{|u}X?}`PZ6?}G7W{Q&D^BB}w863M{6h#($ zc<qMb$tA81GD20!&=~nw2W@KC;Qc;=#KGYO41p}{7eH)A9zJfMjh_kjE=bQqbLLjh zdk}f>gtWya2~>Y5n5At<;rYhL#(Ekm&ZJ$gUfBzc3X;6{+}#yhVYIaLX|a-uB0si4 zuxzrPsd9$wV{^};W@sF@q$Wtc6n4dVc0B23OpR#-zF+|$)q+5Sk>8KIz@ot8PDyU1 zl5fz+(XdK;;<L;eGdf$``C2O`KR>_6MXNpF)L)iuLiEhfy3J~3;rnVNGuIg!@<uqo z_TdrXLl6en3~kL0u_|&4qpuQywffqz4|$QZdwwzkrT-Z4aDBJ(o2%j2yFzaE{xk?g z5~Tpt?e+Vm@}s}NzV*fDd}w7$5y?_G8qvg3M#HjCS!!8UY)Pt2cJX^zbYvGKZC<{s zQ3G;ENlWgz9@SEwGcT>7s#Nu1IeWu(N$;eV5;zbQy1Z1$=-4F-%r15&c~N&JI5(9| z4z9NQfK5&<bye`dESaolb~Wsmm+i0?tYTm^|I4z*w0H7Ts)b)(OaN8R{fk_9om5bC zC1vA}<mz0$HEctBWu(obkDwwVpS#EE!G2BB>oiQ^jMOhf>>37vdXPs$3x~MI8Qi!9 zO*RyQ-_l+81$xb<bIn;o=lWs%_qat#4AeO%w-J$v!xk-qKX;fA&b)ew74vv1cPsz2 zX79Ff`QCjIczfCfG?AJM*7FR1F7JQ*U0tp4hF0RWk}GOocIG^KL``NweuX0w_D3lM zp6_iKqnRRMG@&Vu{o08Newj1>Zs!O2B<suRxDwZOh<Y+*#8%}QjZV2=KpB=Nb0SZo z2^l|2@J&HA#`VK_7Y4A`p)MK)!!JljWJOnE1;Nu75qmq`%ckfbiaCdmM#_fh8Nu)! zry%esJW&7_lWC<alAKGt6$z0k7b?~+C!U_Tn(Wp?AeWuqgYCpfk^4a9j1&bNjWO;E zapiJ7VaxV9`MU3}OS8uaaNIB?*+u13aj3r%b$fE_<dvoCMt=SQYbFr;z0xC6Y-i8o zed4ePA)q^AO#_E-Q)Ol#dqW^9Hu`s07b@IkJN~|O8hIU^m6hNWHgu@6-WN08#CN|v zruK+Ir!UFl$Dm`D>Wac>Uol+c-9ySt@vsgpVRo`7c*|<+=k;9gqJ`lM6oT%MXnfm- z^}Jl5<{~@Z<g{H0L-pCx_t~dc=)EngwQmX@Fv{E5mSi>vos$O3Y*Q@O+`O|%&iR?% z*wIdk^&9N5?#PnQ_&AnKqqih+YBsZej0JyrU9wU1Jzuc;lysArovT&xh0BlnJdtXn zXi-l?{yu7?1!=RIis7dv854@K*-fj|c<_}>qTUOJ??&k1D@yfNWqYSkCC|sFCu)Jt zwPqtj7Ubj>X0pX<gV<1FUwDJpl_hLT>VLa79OgqJk>Y`IW?zH$o2z`v$gN-OsqU0N zDd|$)J*SS30XeIx@w^U;x$_ERre2f#cQ|hAAmFRL(VT?c-V(8-l?`KKAak5sarmc9 z$#ivPxsm3C5e~;ok~k@!FW723-58J1vMZoXVX8hQ_iL|Wn)W|Z(woBHOuyr4C)Xzk zT@H<a&99fI1ggpkb<(25^MPb1KDg3oeVsPNSH;s{p6!WJ-T8tCD1X_S|E#5n>-nyA zl9_K~bWb(oKGTMYQ0$)q>k%<c$zG+6LLO(LJ_EUN;?Bv}mo}bx`aPA*U@JB24zye~ zR%*<2Nv!f&{E;>hboMK#&cUS9^!6i7)=dh8{)eL@K2b463dH#?wNzBMe7VKpy!V7{ zIa`q?td?pDMwH@fv^~ByHnQBb>j0tI>V9q11jxU@n?jX{ac#f9UaEu}*mpj|uB`GV zzcw+XqbctvvX{xOiTCC)ZY7|6H+mlI*CVs=s=-C#Cc7Ug!9#r_04+^<>$_4$FEAp% zB(|c66QS~73Gc582(b9ScM3#I?94BJ9~LVZ_bsA_zEeV|O_pL8rEuVpQd2*q5Y|gr zY+R?OF8=Ob_~yAUcPSC?iQ1U{?o^W)lXq(u1J=g>7b&`F@AYQ9n_o8ABlukWt3-XA z(X!b>OmnBRKMPvQyz@PpVS{XS*a+d-XL1yg0p~N@uyViTn1KsA&P+a1!&{D)p3)v$ zdiSZ3?2XUQIPY{Uv2@QOXx}dw(3(5Ac8*dr;$=bU%zKWT9gn%q5a25@c2H(I2G`o% z<2_}^f{Ul<p23pz40!lery*>X#cC|sHO_WPakeiEav72dU6Q#J`dP+g3U49vz9cn8 zSucnY^S9Rx#QUQ2Rz|3$W;gNWvXW{D8bJeCa!xdD8>@4XQ*Q@{HO50IGAoRDIKcBm zU;OI^9qB9-X98PO{z#GBpGcfq4Dc3P1;ecjVCzd$6&}&HMOCtoQ!{RJU1@NP5qUBV zYKWDJL2^};=pIQPa<S+yRi|DL<!gU_Pc`tdm%e1ZUU&<kCtrs<7O>LB%wUj~tJSu3 zX>i+Q^11RPi)yk7xR@F<#!BHB%z84DIU6f8gWxJN9fLN`IN=H4(Kg+xj!DYhq|-6c zU%tVAH)JTb)}03BaD(ug*SzTegU|`0cmUW!ItE7rsx^mo*Rp~qV2jEEXa&kJcN9>t zH#vX@_Pbs6LJ3IwFO+onCn=I<ekr);&FD|Pcvhxh_cB2@N!w7me+|mUk5e}rF=zv1 z^a?-;do0{*|NKLz*H@#jXIS>?p8M_Yo)_Ek7OV9F6Ek{`oe%SZ)MPgBzy5ueOj6}H zq^^PaL7nWhYFfzyRy)S*7fH^$J@D*HEvc6sl%N8O@MNha(7V+crpdQ_eEPIbU#aNk z?!McDDqtZ68Hf<-<E$`)RnuIDxL3dMe)b^{_{&k2goua*Y91-aN%^qk7!Db7v(qLb zFVMksy>`W6RS0B6oj2Q8oeK{jI+gO%3Jac6Sb&}L9dvx_W_=8i7qhiK?bf@55O;ve zzwvOm2(#+n@>OW9hx(8PZqF!*?=X7W%S!eh4-ZT7)h<plVMraqsK_%N3JBeuP-LL5 zLmF&tuS+y8x$J)o3qWMA-`hx3(1N~p`BxgMR7C=eT=B(!J^$_mjR3G<a)V9<yyngZ zNy~N!zQY9j($?$dKYy|-J-w_lW2LMrLUP7~u*6fG7JWZ0bTzVb)~}fttySgpCnoHk z3`!hL(cr!B{Ipxj$2)XTf)0fANtR-0mdpyI8Z=wk-o!!*?#xtFgIYIxQ}6zcy|tki zRr0Pe+uP_m;JluA7ysFEll~4`5vEs3oh46(Hv1Cyr1%2&kBy$s8B`yS8}2CEEbzao z(O&C{9*A>&A;wpMs{40M{66)c)ii+BLL_P9jLmCN?AGeLhl0OoW74mjOn$tvS>5&K zv23;3xmT)3vY*wlWivDsyro#inJ$HCiyd+An2lOew8{7D5m3|cFr)J_b~%=OH2)y6 z3}8z!$mF~^GKM;^EH97MFrYY{h}ynjc~*NK0UF#1CGj&eVm*YBg8@Dq39{)Fn{`Hc zt5veS69sC=_%J*@SsDi(3C!54hN?RI9~FeZ6j{_(&x9}}4@H$ztpB=GcxQ3DShM`k zYk*{q3`^%xYrQ0Iv(kW&t)bF+ITVv6RH)q3-Tk2r0;yon7^r|3HObrj!KT-6kx)}a zNb2#^Os<Tnpa9NTN+4f2`|*}+l}kV!Lwnb%;-sI!q0!>=^r3VCu<YNSgb4UuT<EKP zzEGBICVo1)*jwm!hKA-aZ0sSyw3|tn!OG0RTotwJn>RDXsG=u}%#W&QI}XoEqbA4v z5Wip<O83r0Loa=UY1@7IqY)q&Rt8P|dT$1zre=Iie}}LzN4yXU9Lib{G@M_(`P6pf zlK#+kU+BV5+J#dF2HEK^bQjEglGIt06lGLWg?j{09#-t3Bw&%+=y?+Z>N-cP%~JXc zEHwp_5c{q)Wa!xjg|ex~3vVJJ_bEDA*(lPiwuUMLvda#B{u6qKi@!pD*J~}l1ex8f zCH91Cc-I|3Q|FGNp663v_+(1`^@La=jU~uCV-U9rwM8Goe%+bQ6@9AQd|^D>?ApW; zY531(P_UnL{G5UTfMoGJ&{}XzKtfJ3X@c1h`OUam;D;!qEtbKwfG!uwiRWS2y@+5r zVnnwiO-?!E$&0!MWE$#1TDkH!X%0!UlY$fS3oZ|4o;ELF^V38^`<-G)dtnuB$BtS) zD<aZ;xys^M7|M|`c+QE6^o9bxv^q#Ohghz=Bw9rvaC!3nTB;Z?yt`QWjFlYpDU1H( zSLP4xXi|PihV*vq`%#YZ<Hh=a?yU(Vr(TBv>{m57ucK+hg&t*!&W;ZLhxH~4+f-<F zke~;CkrtP<Q*Kq_3EpekKwAIhvTi`io<?|+qnQ4&N!S)<8i29U65fPLSi-*XTys5q zotaq=1nw`&d&GhhnNjcFPEJonTa^b}Zv&+d%rTEsh?&-`lrtu~T<>(+SLMbu(i(0# zs2=B2jwno2jHoev$&QnxldADQeF{Tc;v+5;LFvd6PikMGN&Q0Hm*u`u`p%(&!@!`9 z0R(jamYY%fg{l62iq5-2!J+5dLq)nqt>>uVT)~9}MNgq@{pW;yQ(ehmmueSXj*LiH zuXCY3JolNZ^uU@2fAeCg#THEN2Di8|c({m$;<>MD&P%T|t4p!DGlm6oQaKM}!7USa z_ip8vlUr9|m7+874w(`2jwHhr>n^c|%x=kpSJDV$dSa05#Lkv_X;Tl%*jKpl?y=Fx zd`-c7a%8k+H-f0>n4NCM=6q#Za_|V#BcYb2E~^bQBtVG{`}&V@>=yICn`!{ITrixH zG}*u*dk9BsI~mBvD`0`dwUI;ljR!ABUWQ#9*)cEPLO?@aR@!QwM1Jgq?T9z?325Bn zADq6n>Y{5HfCyJsR@BH&jC_gM(oT;rl*<_oVMB|gSQwIV4AJIk1TzIv3iPvHK3zLJ z8hd7<*|}DnKsQjxQz-iQ)NP{4XdYvF<XEsXf8KibH8U#v*abyFizS%~?1|?po5@qg zR)bU{v4K^x23N_;ws9<f#N!5U8T?<Meem+~V(_$A0@U$o@X>9<>(cC4+s;}w2WLLW z&8RSSlOdFN3F^ryNo<bOMdsNTS`Z>9Je)S){hlhTAUoI6{nZDB6=_S8GB$jG!!fIm z`clD9cA1qmN_X@3oA_hp)T<MzOC}x&#gGQmX5EZ-Q=B@}TH@<EvBSQiEp@5Jf{DSo zkZ6~RV@(+4_xSg$TN`B)ruxkOti=z<?3sL?1n!$4W)8bGlmEhDDCLD*z(fY;_KbvJ z@RGqVXu<bu1vRz}23Ok|yx+podx*NiYOp%tWw##~gVkHuc)<43@?cXtTY75K$${{Y z6o4F2l{!DfDa=Hk+{#RuDM<vLYThn_=A>n1XAy|e)mcr@H5f4q_yAhhJE<4s=L(Zm zmFYGbK`&9qXBT$<5=Y^>SZ!@BA<aRBQFVhwcEi|IW5$+U;JU)3OjmltQ41Rlo)0A1 zU!dvj;sZggBXuxY!GZWY{zD|3KhEUQ{tWlVG(2BvJUZ102J{__oSZ~lwFwCcIlMa; z@~ZZoD3Z1hD)aZhB{yqfkng54l%ATXoR3u?_$`jl)tc=^z?sJ%U$HYJv!XYa=@!{R z&T$%=-G2hdowOt)X4~D}>D6w-!FwEiVByF@s78n^&v{|A5B2vR)rcbWKcQKx0&lA2 z3zF}HP1PT7tto5`stV638-4Zfp=~76%2ch#7ICMof3sZ84E=)QBy9PVrKiWSVmE^Y z1oIIgbg;qS0YKQQyn5$qyBW|GMsRV7JB^}LuKW=0A$701n5|qO%j|u68IU~TK*8uq zglU9LJHtL&JpC#|O3lrY24h{@Qlf5Mw!Z1Hd;cG}@#zWX*W#E1b3#p9kv;ZSD3|8} zn{rx($6p-=4l+*7@9C3OiZgTZ<Kh?!;<uCMSpvKO1~+`k3~sHdaPy~*r2NmM$XWBr z!x``!TJ9<3OL!sldS9suwc}6^<mw%j?{|~dtlbO)V7-*^0Oir)f25iW`_6Eq+L8n( z8;XY3p1~1i-EcUS^Uvhzu9Z3ft*JDIE&)#<$6~3GnU5Jf=0~g{%Pw7f8o-Pb$sC(2 z=?x2fs!0(I3i9%dkG7?kLJQ@FZ*7eZb0{%cd<Yu*N}B7hM&t!vh$JD5wk*e$_D!}c zp{uOab#)*H$iOg64kf!&1)7h5IwDv6dOja6u2KH3=#bjT$ym*n4zQa#J{<yp&8qxO z!1N&va2D`xAh8b`KolE_B_2wvH=kZ#x3wkD_!6^QAP4tFu4wmg_fTwzPFuY$Xg931 zs>*^Xa?HdJlomWLgC$Sh5?qkce7!&k9@72wc26gj#dZ;`I?$kAZZuKm`=syZ-$Ux! zCEaQInk^nEjaUfJ_199{B>>Gnx&Bzp<tr*hiun7%cli{akygvbP%4x0NK3)=hT8}o zv>^H47}~XaGz#ht=l7gH51Di<M)IBkdy%%@QP)D_x6%LJnG5y-2qzIa#!Ak~5B9YV z4g|$CGpq?iM?EQUwh?^cuzJAhPvP{R@0CcbQvTSq){}wtVs$}iFv5~;8Zv9R*s`g! zEf;O4iF{@r9-8rwKLQeL)XFs>X6!(P9_ha6jVjtlK5Sb5uv#1DpvPI@HUhR`CiMo7 zG+F$i)Ka6ms<M_g=89kvxH{mr=#|9uI8l&{5Zy%>vF55}PoEFXEf0Ie=z34gP(I%V z=R5^@*#xTMOu)*l>A(QerY(orkXq9*GoSl%g)$WWlrimdZ*Y%eW`bBBm!mAC@9IP4 z`R2HYTv4&}4HxHi^XCKBX=f+=Eb5>P<#20XiczgW_uS`w7BS!ImK!=O8A@3>#x6cH zj%m)&mvkGdz;)i{-F0#a7B1F2BAw9K0jS1%CoLIKS$CE+zcDKU%BqM?Jq9wVt}60d z9wj{)^M=16>S_&-yzxGroiMH9dCjU0y13K|S%c81zG!dd8mkr%aTQ?4i__O+yLtt5 z9ex0jlD_PljDkXQv?Lok!O+MN%<S>l{7#phcKgWIxQQ-v#%YhX?_9U6k~irUPkN!` z2k}*cA#>(7O3*SRl-Iv<wd6is=k<F!`@)r<H>t})d;DN|<J}k65>KKZBV`F>mra*i z4)9tW)ax(YQu2r4eAWxWx~GUG7->u8)_Jih@1)P1piUowksO4QI98#$49dS@w6tB7 z9fa;1uDFQ70Siq!Y?KU+_QE!sorJ{yo`(J-Cv5>Gx|FK}mSbU|J8xW-P29LHtP1H; zyB_K=Px_BvDh+x%y$G_rlJ#6j8V073oP>>Y&|SMco#n9q3V)qX#L$Va+<NM|uSXB# zB97iP&g`+&3y(D9iAj=OQp@KI4i6tiq`Fjy9ra3iCCHN?M9-Uj%Rl+d2#yyBayE1k zq07<9$q9fiRgEKg#~OHS$8%b4SX~lVlTIo5?%?;|#i}M9`++14eV{-WpZo8{2a4qI z7f`vU{+^i&sw8Ph<x48@LE2kx3=?iGWZLy4<_jcM>e$*!-2r*V_O8FS$^1*ud=gK} zcBA>is}UqPJm`&iWb>RvEnfkR)R0h#8Vu4+$OLfVP}1SE@$PPNJM*`bNUF5i)PkVs zeJ5SLw8z|e^#>5{1jOcWgkR#i5u6C9MeWF9xW=+we09P^%qk?EW@E8oZrt`q_4Sad zGB>Q%1!CYpt?wJpz4ODF*53hxzwE$LK#4BNW)Jj<T#H46Ib#l$ky3^tI;G7uSd2$@ zwHskZLS$~z%WX+BYnvtmZ%fToje74e`FMcy>(N`Wq_==UcO&OoSj;4o8baO1fjy-^ zygD6xtz#b#0k0!settgP^2`G_67+}xx+Ri5d2c24;pa3D>yPsE)oZwMw_h*;g`cIq z#L=1BOc_ki;a9`5gHKhL_)Q#<FzIZW{N6;I>n`6pY*&oBWN_qw%7qaN!1`Vv<>&O~ zydUS3`X`cICOVkBb|t}uM_5<85)x7e^rOo^xGgDh5S>{rh--*ad=pNjbS8yiQ?x=r z&WX&k29!Y(NzC9TgM|t#r_3Dt<T&%^)qCgnDAJ+CHp02=bRn=3fgi~8jmyFkTd=h* zW_@ZtKz;ZiB_^z@%hPi13`r4l{%%!OsY6LuP5q!-BQ^K2Hah9;iBl#UCNHTN!CUt! z{80|hP)N{(v)<zODRL&U;>b$ZySwlA+B|@s5(ThT$bPuH;}U`H(1FNep!PE7?~g9N z#i$M&lqxer@t|UsD)Yxn(U_H4&<1;?4p(KDDP8j;WZ~+j4GkvzL_A0c>6DS_D;8;` z>ge#{ZOh5ZscP@~{Je<@cP$K&#y!OZ<dCrM=nt1uYZNk$E)@awXYuAL%pc%Qd`4%m z8hdHcsBM;BQP7q(@Bw|x$dn+vn_2J#MoMC6Esff7+BO(+ht=~|E$0us@slPMP3w8b zh5%=Z?dE-X$``h}>zxXPkSEBga8}g>pvniH|2ZmgLdx?`f~zSQ%qn2zD?!py_%Z3C z%Acx4uYkIYpH6fP!$EfQ8F7kvzuZn>dR3z`DSpIEwV>nAV#r8%_<?mOip0i9w8eV5 zZ#M!9k94{_FM}SD<SvH#hdr~VKnm`t#SWQYzfD=SyX<hZz`8hYmGOtJlabkbK=}$J zB3c+p#v;X#3xBIbo7GNeU}jVfEFT!5Rz<bP!#cd(%X4sj-&xmG5or?y86M@dbkX)u z?oMQwxq(fU;@G0tY;bD521HV`fjo*Lx6~^#p5h1UqSBo#_RrY`3{XzxX1_YqvCuAT z8Wv;Hs{L3YNz|Tnun*L0bsNq(Vb&L7V$tuS!>`HF_}7!(Ly4+WR2BL>iOQ5>0WH+G z`tW8%NR%ZS+ny+OT0CMhI}{iS)2+-ES;ck%BfK&<9wG{_<=LWzoiKiM#|>B2@sT6Z z(a|&XJ)*>Q2&Fic(16pMeR5qpU8?G#ukOl)Ri16vdDv+AO_!9U?V6sQMB+P+p_Y-Y zTa<6UauWX-51%P%9Mm9llTMKTjwJOS7Z9e)cmVq%*1uc~DTdQ&x)9URfh3F_NvYok z(AmtoTkXCya>byL8yibMn7V$yg>%%d`&-;anO=2&)}CH;e`5A}@R0FYyT1PO<=7iE zucVS-o}Tp)M5dqrLcv3P3L(JH7w0d#^!;KMuY1`h=bDG{Tr)Znl0U$btPkM1eScT` z6N@JJ>lho`bL!BkDbPj{&G3QWAfDtSa)I_v0z-v}<cf&0Q5x1yjLrf<bG+$^Lf6I7 z(?i<XACS3+QY*h{jK@|{ZigqUV3Vm0(4Pj=a=Ho%yvJlAii}*v>&40p$Gs!R&&bFu zp3SMu7TS8)WJHxg*O*GLMKs*Pd*5u{z7X<N+Gc!8Ex4S<PA%Qcy{z)hRHv8lC+3o0 zyo%Bll9iRq%`eCNca-xNbJulQU?`9MC*bhnzzCBV4gjtKD5b$w`>sfl+TR3X40uTT z5oG#UpUI_U>#WMS1h3rm5f!LXOS?`O_B>d-lgG~}$Y0!R<H4t4oeQ_3s$+{oApLEn zDHZgwH;uEQ^u|*~+7z8d?7+7!|8t;^IVb6#9{%R^Rc7N5dS^%e$YbY9#5R?V2(zHF zZZJz@vcc6PA(fiG>|}vE8PEm%Aan9mYq3kagTfl-s_gh&^vN3(gVcqyWla3m;&nDh z(eLCIi31Fc08YHQMCeQI@F>20XYj)V2PA6!=WnR-$By=+=~j}_I}wIDHl|o9IA($I zA{2dC6I*6lFcjHYC%UVOhT>ALbFmbivBWI5pKIHl^ZkMbuuQs7O;5LaruklpMGEeT zIoG*<fLt0nSp2EFn^;m0(VdTelnHCRgKn3rZaa3<y`<S6T%|-L2H&<QNS^GQ-bbq| zT6MO8KY=_KR<N4vRzps!x?(ODe1V$=p8*ktaU>1>TH;RJtt1Tt74`VN4~9c?gCE3a zK~qyKGs!UDedQBIDG;d<tn;)gmmsIcSg2v-4s_QHWeKB!odo4l!gPh??l|><lnAmb zoOWwrBO?f}onOO4*}~VFOzU4ZP>^FwMr(0!;b?(51XK6{1~wqa9$76F4I7|Ex{%r8 ztVBurc6K-V=6|$p`bi%AE4{ru$e7w?B|=L>t{>;DvGog&8xHaF#HJ#q?kSn^Oau_h zjW${i(&=mM*0seqHbIv(D`DN{BfpjtV)kKL8=ig9YBLnYnP_i_1PvaqQ(xSD^<P`Z z-ht<S0QY2;)3dUC6ZCc-SvPVsk}lU+(sf2&tlsns4-en(tPBY(n?2?F(+I*x>2iiS zoJ4JiIrzuA-K~^Po;+$1N>t@L4*DpEH-Y!rEE>-4b*-wAJeo^UJUR9UQB?BE(dqP# zPHCLHMmdtEg{8v>I27GjkoRL#Mdo;KFNS-hjL5HF#CDf$THF(v{O<DTu|6A2=FIf- z9(ZPrw&b{~WHm@ZfZWj7HcW)RRDhOG8%<r6uF*~j0lM4m_eE{Z>ky79YZgM0l}AA5 zKrVyB&?o?rUTc3@_V)-i=%3rgpCX!_?ryZ3=L%3Y6C(9|o3j<9UG1<sEEdvQSF~<g zvbmLsGZ#;_%n2V~e7Nk&Q27cU^H5www~%<qD66X5%GAn)vgU*@ZEO2q_bD9*rN%A- z#6qU8Vh<=Aju}qBo)%T6y2}?-#l{mJ_n|DuR2)5`+tcp5sTLF_;PLGbgH&o`*z)c2 z>{D!&gO%8B_#Emt)R=o#EnWx6&c%KJc1I%PbI`~^KwSr98B&Ii7g=TBGFvA8jBJm? zkA$*FGvGob>gn*t))E%LpQxm&75EmWB4H#jR<+>l<+o_L7ardlUbIMd<ZTPPx`>-M z9jBYV0vu;16#-C&=<mzU|I@@TF6`R>f!qNle-CN3ivkfLx3A8}=r8_GG`arTzAh$N zu9xk4DZ=J&w5S_q{n4@U&K9M>;hwn#tVWej$VXWF&G9wIBtwM6of>`EuMbAMA;_tj z>2<TQ+`UL23kWr|#4+S^1R|T7W&yF4KoNyeQ%VW-2?}Xj9_bNd6)I|HGH1I2db&v6 zAA%gO(Am=xNh;d~H~~g;Z-CzW_LA?e^K}QXS%E9yA3((j8#K}1jTp29-Wdl*mF*z= zaXq-&_g+fvxkmB#@T=3Nnzb;mm;?1sb=mpdOdW|%IS_<ut8U`XFF9QByf~6K4TY^N zPF~Gt51=kOD+!!?yZzT01B0P4kPLmDklIA~cCwCL?{?qiRy5~^kheD^x^vQx1YTse zF2hcF1m+G#E38>6NI&ncE}d#B<0jpt5-wq}AbxEBS$mHQGlX^%RXMT5tMxy*+>MUc z|E^ZQdg?TM+@XQgGWyy8K|8=dndLu;gRSa+FZRGpu0q#b655`3r4Wib+ws|vUy*#V z#hTbXOKdREMS8@lVKvA{pO1^WyqeWN;nX3BsV-qRs3}5KwQ+0qQcTx^(q!r)i>}n$ zs_ZkTTm%*UeJZo0o3QptEa;5<sTcSCvqUVBI8RpXGdrxwLey%*A8soJH_z-y=Hms9 z(lIoc6<cWvPBTL)6};ko)*YjP1fEd!lYnklf`vZajZ>&^tb75F|3=>|>Q~$%7lru9 zt4^2ZjsJUoto3z0kE@>7Yv8uEp@+wpg|d8D?Z|=9(*)miSoT`4xtMP-jDaksE__>~ zADH)Yri#g3slusgqr}$seN?ZN&-dHZ{_N-?-c5S?{uThQ^Sb|BUvVu_FKgo0rJ_rs zD_fwuXuCx*ssH+SBBd(=m_wCx4xMa#t;3_Tod<5NftG?Tkm6GoxISY3^MYs+x)%HT zW#{+LYey4SSg4IWeU^+p)t?NCm~{31`N8|~e5i3r&l>24=#N*;&&SW;jcT_vJG|J5 zywA|vUrwx_7Mrt`)7{w}{`mdL3&7|dr*xRDKBZv$?rHN<tEv?bNceQ=!CGEB;0z(? zakJNjMV|a_iBXXnpvZ0PQ4<n9TdBpiR(}M*gB<XQ1BC&d;3R2r&|}l(pQ4v^z(uXO z+|E+H^vU`w5zjyO(HklM%GJLhi&5G6Y%JgJxhYg>cC;h+;?WxOU~zbUroW#cAL7I_ z44&;E$d%oC9mYm%IRss*Jd*%vh|K}xnDX4dtz!Y~`u%X+=RdE?GyL}s8hzU~XMQJW z)n!VUV0hGHXFlo>aQw>!3p-g(lZxi}k+-MjKo9X7x<^J@qScRMFo$Cu0n@51T$(06 zaR{4^kPNw3PM8UxruMa5qq0}EFu-Nhtr_W@<2xT$5Ktwxyk0=A*EW6OE;~V*{8KS> zm9PAJmj=Hha?>!sGDf2}e|63ykN2D)Ecq382mo)W{*h&X(@|VnB4%o$+Y?6ObkCd$ zlp2%)@Qu6P4L5@}j}hUb4(;TXM-k}LciRltS6NUDi+Td>c*7ePwVXos>6E!$%BCAd zt)}YPS}Sy`4+=0!jrIFh$QEIUbzG~dX;N=lpwfOO=M+^Sz@O$&Mqi{H+MB+ZhR76t zo^N5i&zEPrMBz7e80vqBuk^ksn`biHY5B%eadIl0v<E!~GL}OmOQ)FnLPXTF;(Dq$ zZ2I5au<Y_%^Z#f%=jgh+@9T$+(b%?aw6SfrvCSJb4I0~SY@1CQ+qP{qxXF8--*>$K zXN;V4?m2s}wf3B!8JKczoAfnGNo$EHNNdIm?t+T)QholsM87=)hEg{y`gfv6dgq+$ zdTyx@o~RQGx117Y=v;}?-jY8U_&f;hd-kmyE6B1AZtT_o8LTy1n46VA_c*ApeK+{f z`?TfcjyA~h;lIs!1_;TJ;#SMza~7jcJh%(NKOn$Kg#*q(1lyMrmYc}gtum>nLeen3 zap|Kje>K`hWl2k)hWwf1K5q5u*cufuB^S=*wfmy2{cG0L)x_znn^qq7@!6<qwb!<$ zt60W1a@67{8?sGfU)jSMg{N$FPB<);ws?*bQ?Z~j!VT^Tk>r}BgX#XjboV}N`UshO zcw$Li9s9c1HiXB;>H<7wZ6x<L2t%86BYREKBCMTYZG!G9Ym(7>nA6ZS)FA_O+pk5u zozAW&Jh$b3l*#@xn@@RPQ6#ZhzpF&Gx?h2nHS54-gsQr~d+u=u?gd9f!+>P`+IzIF zehc<Wy=Unmu)(Za)=#6Wn=IFxgfY2JheIV~I3@;_NEl>*Qk#y9t)hF`VZ$=Lt?+2e za9dUGs%5I|PSPrC^k)+N1@9ETA74rUjpl?aO?{pt!G?ApPU!k<Qu@X_Vz(E;%DEH! z>m~cWzvE^jWY@+9fW?=fG3{6`l4uhO(X7z=4ixKr_lJb+-i{EvEoONm4QK7<U1Ebd zXPhI3Fk+o&MNUjD?6jgIqr=@(>%c^;khZg3k0DjI=(FPK5wv@(Kgv`06^om@JGWS) zUomT(?7N$kg9MZ!lof_pQ2#)dri|%E6CHQ!<qa29xmSTVqiQq>>fe4(Vp4+KF$4F5 zSN8FKQ`_x-&;1Bif!wR5EDoJA4ONnbI*HRdj0wJI6I+~JLx+~z<G1Tv-v3}HIp=ux znrKBLm!%EY(-U9>PwH~`+HTa&MtpAdRu7`L%)PUyUJtiCG=RqlMBVRV=KjO;2ONxh zO-shwvG(NAA>uNcDxZss&}YZ9!;A=0?YXRuT$mVTq}CN!pUg`BPB}{$KdM4^?m5v_ zV{;FD{V_qfR8Ug_w;*TV=2+&Asa>Hdxk+Dl15DQQuZrVF4uREPfVy&etMLWBMN#}R ze<UMOCy+C-q{+A=eW>s252~-O7|pf5%nM%&cY;&<*`=hVYW;>h)_upS#uQg6`^pb~ zy7xQqWZxOI7)Pm;4;{j6?{+L<s@cnt?fX8m=-n^Q6<oO(xe^r1yfUf9rL)c5;l?G* zWA5T}?@lsRV1*O%0??$n1mp7@Nemub<`;!0ufPt@$DI`o@Wp)Y5>Q7{2O*QSY`QcM zs0_Oo7j%Key21v8&;e99I{pE1H5C(xW-3|T9AXinoWnVPN<5{_oDhuRXyKd|U*tJ8 z$K!IlS8?F{0AB^=-6ONqW4<SFfA7Xv(WgZYz(d(2iVU<QcbXlx0$a8~NZm(&>_4v{ z%Z>%s(zG!NsV-r9x^hh3^3%?U)*1^=^|-UsGzZM%BxWG1isor^H&zvrekvn_pS?qw zEOjkbYrTRdRXH+(*%i^JFxllP?0kzF_rht39h(7?9?~hA4*8pq!etop50ogEDST|& z3SvOC=KqC?aq3kgJ>1wtu?$l)a^0gj`(DU+ILp2(+<tcL2)?$YnUit@r94dwX@j>o z4IK|n&$h<)ABvBDjz_ILW}dtkf+c*$>sfoI{^P_U0kx~3%>siF=!DwM(_J6o8j8$G zJ>8}#A-df_a<j-)p`^jR`+Ovf;IpSo(f4Z+=l${H`zFrl&Dfptew`)vzgl%dSh*gc z+!n{pu+2*rg`_du@M;|<Y%8dRrKMkN*Ef$le@9u8%YAqPjB+u9zw4OxjV16r%Vpri zS#Su{$gq9Kg%4a>NTobmItK3z-FHf`TUXHBbRVh1C1hMl<RnBd)foQ*06r*@!T&-n z!q*wp9EETf6Tu(~^HEwBmrEoE&Ld3DY|iK9N+U)yH8WLC*s&0%v3|xjC_ymGJ&a=W zs8Hyk%V{|~B*35qt=T;V{Fap$wqD$CzU08A-Y!O(Jy(59&(c5D&KmbSi|v?}*fEj0 z6l^#Ye(sD0o)P8dQ@79jRjRQ+es;E@J7+-TGlhiA0bfI*JZ-KmLs&i~y8wOkC+qM= z`1I6$?gq?7`Ev{DqW9>0Cs5pHZG3gDxpS3%YUDc8GmCq7&))_ttWV6k^MQa!Kw|SR z`c*d=6>3O2VqJN<bNfr(UZjFl7<Vs~D240Xe>jKKkv8<d`*rP8YzQF|0}s#GBc4#A z3b1l;qP!{ruBZF-Z?_-UjNx}im--y0ba#EPLjkk;6j_xyg^EX(obk))?3`^Ktp&r4 zl)EF)!W=~^Gzd{O0@0mQGNG7H^h@l+eA%2C=rp^pgNQY4_RVMgPnHS3ds#0eEDGb? z7Vl}65!V%67Wfs7s(<f~PNy^jV$z!@++t30Rl$X<^cU<;b-=#1G9vgn4><fZl=M9r z8bxM7i3w6bhtZXLFOr&M;iL#Dqo#neNKz=|G|4R~aG0eZ{lTKd&6GS7ZYPj1bmXEh zHP`Jkq;>!BXyWVUW~7P}Swwx6wB71_XF=q1Rhr;iI%3=4Z!k{+{*iy_+;5nFc$m;h zRV^nWg0IVM&RTq#O>83}MhgyvfeL=R%Os53?~UffW%XE#3F>t{a^8#PH949zOiljK zkPcShDe1?n{>veXIhR?3@4Y}^sm@@Q)qJVuZkeII#YXtNBvJFe?h@NDqMQ(LHdI`6 zb$>^bsEt{HbaNKl&B*>ecV|JtRYq1M#~z9^Q$vz1Gs&X($O2?+LAg>);(vHCr>$i{ zapl_aKK`nlOGMS(_uqFWy7}?`1fZI#d)1YNgA!?#R|*&8VUls5ghVAVATuD+ugIl` z-C-1^2OluXCFZ#LHNTXXoc78JXi|J_OuyJyi)SHGL=nB#<o^fmXffS56^T;1mMGKp z-j;*&<C&)c4$SBGJh!}Y1Fy)Em8M8O8Ju|I{ziW?Gv%Vac##$z;=ny+mC;IK8Z^Uj z>vG(8iB}rX)F?x2h{#YgM(@i$(^r^rAI<Ir#{?Z;8nMx)TUTbR`1mDx91fQV<t9}{ zE(*#9vp#>aoFAKdQ?rOMuzkXn<yqwE=9Hy8;Fg#0JbYckgv`OKo$8UDq{JZjNStpQ zb0iK~Vua@GLXFvUz0XeJ+eMQ%X25?yvur<050c{i{D^dbZE#G4`}h3iVP%s0j_UVi z<=~M8<s}Zv&&^FEKw=;CZ#MOv=x7R!?o5WTH;Z-Iabv!4)JLWeaM=}SNzxLeL&uTy zyAA#IzfdDFeB>0QzD!EoyqSPWcEW`z)wEr1^W$86tWmqgdlfdsCwtbh^uz@QJ^90e zbhn$q&v^Itg$9^3iwT7e7%5crWIq)u>}Ass;wXM$;{TEbd66Pu^d~~K+WeF!Vosy1 zBhF3x^Ab(ybY$qsVkQO*zR3>vK-R(ds<|gRt|Dxi`z9V;cLuV=RZhb&U%3uP&Q9|| zF1{25In$X-@{$%kymv<9Vg6u#%e5unDGalK;&4R2U;7VI$r1&Wrud4tO`k1Ndf-`# zZF{C4$7af=9-o*hzPJkYWc_RyVFuutcu8{9LNCYvYxGK#bG70<<s%MJ=}Ys&+elPG z+#=VI9f9zwH5*ha4!kr~(26m}93P~Xy`o#8qU@@lF?GS^S_e`^yMRhH-H>o3cCbxR z`MO0IdS?N}6_Kt(wL_>8rgXn8H+@uL>S3GmbbZT7q8oErJbV`sW4~(0^mXAM1rKbK zGBZy4p=|lwFVg0B{Jw9PxvlHCxiTc#bC7c~dI@O+CE3M-N+O=$c@sejw8yf{0=b^W zXU9jyx$;_)39qzQwlprn;LS!N8C)1ODuJBo1!H}|_6p71R->>T2dO71RC9O#V;5sp zJ*T%fyMEp*kIH9}^u%l=(_$GPw`z&+rETcX&k0~}GIrNOTOc5JMg=%^@VcK-roZ(+ z9LEPrp?(4T$hL3I{rKcZ4VK4uc}lam<gXwKl`ENoZ~<`k{3vfh1#+SX>Fd*ZKY-|9 z6X5!3M`M4$&ZxyRS0yqBSoX@Uyg1`M?N@N|fXsMh^h{|`7ly1Sri%a+b#p@n^2m__ znwOHr0gO8_Lh(~<AqPlON%@7<E@n7SLOSAQ%WW?D&cDqy+{h?QLvc&QM`BaxP;6%N z<-(QR9i-+)4!d+d14g>w6qfUk=fv{}L!keFtsxlH&MO3;DBaF<#p|9ZkfyUg$q12V zyU{Q|k6&@K1V1<4N*#aBO4qUkSVLBPSctGfx5FjZv;ntU&OpRnV~hUE_<CN!S7c$G z>2G5hnuaSXT$LK&>3N$|b4Qm{87UhD69*-Tv}NAkjOdavzQ&*P7$493ULI`O*!j(S zVi}2&5p^XWOL?4b_eX;7M&;lX^QhUgM|jQ_5ilf+5Zcjwy*CtQn?em&d!CzRGz>c& zj+1#P{^{{5SNOQ0oKms8ch5dsi9PgVD(?ak0VfewPtdYYsLW}REcq$r31_Z;=e0Ej zm#80?bm)OzJ6d<#rqSh&2`U$77xRM}&fUX^9}Vfy>hnLl@xBR(1ux^3Uz>1$y9PT$ zXGfMsj9LEa8SeR8K6u1_Hg5YW^F*{`;ART`&z6gW60TMj1}H&{|7dsLY9b>e=XZ5= zSvSog!A9uJNLV^Kp|98}p=8xFDG8Iw8#E#Xm$@F5W?`Ah+2Fdz<IueAK2>I$^;-wR z2bTYx$I45+S`xyx?lA#^;*47e5*KgltW_$!>9FL74_&Tp7WgGNv{BRC&K@gqdmCYB zHZeq%XmZq`nq`wDY=%C2b%{3luxt<36P#FTP>E!_P<?ayie8q9cnt)!Or*BbDsv9? z@!bj>$sHHfR}%UB_WiL^Gr?}HWST3iXUqy+)`MgGcbvOa*=~O3^~H2TQ?0Ee-AuGt zU1v87;b$(@QRmOUnD{HqFVez0X{HhEvN|xqR$s>1mlMNkr#w)BVGRLJn*k2#%e1)H z?MThezZ*;&Z+%Ih%n*DQHnl-LUX+ye6`I76`@G43NM9-G!^8wge-Uh11U^|!Opm+D zPUeGr0xpD)-}?evH9HYtpE{t2R!~r20*V$Uwx4WYSTcM2|MAtYD5$$J6RD;~3_XA> zL(9JN-kFS>C{m?5XEmzs^(GCSlnQ=*fe}e<&XGVjOX?aQ$Wu~$HB@sdHhL45wjT8r zIgga?ePG6uUPv^-7Rl+}8V9`~ZFu^rm3N1xTYk$)gl2MK*ZmZp&vB#3_L@`m?`)uw z*s|jw@^WU^shIkok&cCVc!%WQ#HZJ*9yG_!8ycX9HP<ND+;`!Z-?W4XY4_XmEQD!W zDa*Lae(B8+v?hV@^3Ht1+-OhvOf{B2$F6|x^{kG93}2Dt+jx7x4r$Z<%kTB^+kfW@ z7~Tqr3UW+%_h4#kBk7LV_!(6*j`ZR<9|U$>`d^REsjEoq9=b}DYP=C?cQ@xllZjr6 z4EJqCM$k2#&vl_9x<$$T<KICnFuKeiC39Z?{-PP*%Ew?ljZZtjwNMceOpUNV$W|pK z(T#KG_iH%NS*+c(CCq?Nyd^29;|b$TEgIaSJ~D>n{+N?x{oTSrisgfCc@HlnIuv6R z0_urMi0MC|i>9S-Kn{cNL51<({rRL-i>}SYyqomFZ!h|9X^JR?F|BE+>~q=BR3I8v zpMx3$%hzFOAGbrg$*b#9W8IM#M-YAExw83^W9Pfx{nL{vApFAd{1%yvD%ofNm&xPU z_n)MlkFP&45F2@JH`bid=8P*+X9o2w9Q4CYz!XbuHoW4+w|;k!z{`eKVbdGx3p#yt z1|FFLEe1C0kBp<8f8m&^w+Vl}6K2w3k0Rymv>i&U>f+dXDpsY3(!dj)Ci!3Ynt-pD z@e|=<&5$_SW^B((1*@rvofx)8-M%5^kE>uv$%tYAQ<7iITu-$t1tW^!S4ovwR`tm_ z)#bQeSR^80ZQH91+kjs)9$oa$fAi?EViY_)5+G%vUdIeZ6??l%zlGu+8W|O>;?Ezs z>>pAs7q+t#7`Q*1-51o53@_#tI_F<AJ>r6q+vxEh2;4T2m7#RblxDol(bTqj#}NfW zxh{FPe35t@H`Atd^mQt!_&Ax?CT4S~gnSO`S4|StnYD-jDc}!jQZSWK02l=@cW!AL zU8(ifEPRGBB7o<p4_2IEQ~#j*>^1jQ{CvkOh4uaX=L>4Vdzu%2PX2XeU`^#PmC23u zlhDCjxBrHog5Fcw;uo`Qyib9nmR@Jslt3yv9}u?^;hsUhG<ICGT%7z3)DlUVROV?J zo*n7Z_LHr0alvsL0aZ}dIoNRD-B(doLGj<fRGW*9h;jeT-q7`gqd#WP`&o~aYpkTV zBM>2tba%`u;et(S`Dw`Fwvv~+`oC9-53mG@)#>!>|3Wi0Gt)?3Q!1$}X(kL!CxdSg z5E~pR%wnR6Zve5b7q-;2DU{gn77|qG7E*hYBoInWI=&nDW)h+RV(>z6=vmF*({7R| zWu@O5Oe|0Kx=iGq8NW325j#8`v=h>2>YTA|pRxJ9<%>4zWwsMA-Ct7O7dsJ4V%ZB0 zq10IlHcW^Xj^wB{DQ?brD8W&-QqM=7Z&F8k4HhWfuNzmpfpC{YgVBVz^*_r)2I><Z zj-MJ)i@IamROUCN)|s`KR#)ZzEf_zWzX9nfy)E4j%-G(_S~<4D!2n?Z-9n<J8Vo9- zO_S9yOays`+ElcINWjdPP_BnHa6UAU^t=af4z&~q?7Ztv#2$8Ap`5hJRWkJ!&fa-f zoQj*n;|^2R#9l|ks#*N5F(VzTrslr1t@ai+dKjE@BD0}}2e~;D7N*klAcYtXwQsV# zu(BqWj$XRI=en=g;liGLG!)$@KYNNXBx{kpP6^#Hkp#TWNyXD50YX^m+eAy*;GCI! zcOF|6U>Vl}{DQ4tsZD2YZS?i^vkVsUhatWz<sTA}b0*FxlpxFvwTR>oPIq4vKj>R! zY2!kChRbL?3;nKPT{rW!M%G*N6|%bRg`ubdNb|EhxQdlDgO+PO9rg2K_rflj%F?V) zPu``I*xDpRE~f&Mr)kDEH6%GqVJ%c^Fff#azzf-z<lDJa?)MHO<{U3QClzm0UK&%4 zY&aWGBc!3VclcaaISNO^k@`Xa2Ge>~&q#|eI!A6AAM0FblPfkT=s=O8bCbuh(x~wY z{9#CSHNdwq79r(}k$-utlo(R<3_JG5S15pQS2B`c?LG<Xh^a?v(~iyWT~o$7533g2 zv}S}ToGUs_AgOMDL98@v!BJN?r*5mS&D&Lw@U7_vk!GceOK#phzm3-ZK9F^bCZKMT zM6|H#keX@DO!R4XD_jUIqo=syZwhESB~KioSudc9*Nmu_Rf-xm9nW`IkA;~m!h@gg z@;#aQ!035y+tOKn8tgN9R&f-y;Y*@<WZ$qDw`V`6GoQg~JxGBb4N9lD0%WnwZT$=j zgGDy^=q}{jCg8yULP@n#E;o*8nyPI#SqFRa)TD)0x0@vSLmn&NTn|$2sUb~m!*J$I zUK1-Xn3Kv2RA%Irs4L14tm=*zhPV5WR5m`YN+L}H;&mK#fAkeGm&~J5?=CQ<wxE*S zZtHadeY~vLaGUBC^QCR$8WwJgT!{f~ZqZx8^TPn~1#IWdsXU*@Jspq3s#yV02}L^j z3sI^X=UrZ<`)9rm^bq#o*4L&{$`mNbhHkwbwg42x>M-Amc+a1$=T@1#T^dSkNK6Yp zgSQa$stqbtM(9*OryMXSTH>i1b>8I`^gkC9YBPw3Xe7n(!#jZ=mijN*ad0>TSH)Qp zdova)*tmoWvocP*CJ0f=v)ik$@Up&K>f##iHjld#bn?+kNpG8rDfK*1ZDp;Wy`VLM zBw>@5C*%^0POwgr_OM*(HHjQV=nmJ|0Ux{QyY>gs$9e4g*74<K^FAOprRLm`jFFG? z1U`lgL|_^I0)Agz>JF@CQPQ!;PV*lXVsqUoG_!W`2#E{R>q1E;vaP=X#ail;;8t~f zl6NLp(93nmE&rWTGTM4Gcm_m7Ss<fCSK?jN58VD3sRq30VJ<~bQ#HNz+j_8OV+6rp z(_B_IXZB$%Zi?8bD8|9T{P;WYLh?J~BGlf#T`7h&$2YN&aR7XB=w^Fz$%X-bdSNA| z!E$ojQuLktvik`fsVY3*XTpze<PgvP-$f^M0^rH`C*SV8{DHy+1Nv(8RK&z@4Rb+@ z^%&#*8pQTT$7vF)<2Dr|x9fl{RHlPuKAj8(FEcGzyW%&wtj~n{%p)}K#*b)1o_>)F zX0DcoR*B(J4R+&xGjFjGD*}GHFTNR_x@{<DS)}o!&YETpV;J9$OyoPWWjcmY9uTt^ z8`QV*&n%}sNU_k5L_%rbsFD%>vPpCAuoR_W@C&=UdF<FK`@?!}y4KX^HL7|dA^msR zSpWHB?AMxiN<_i*n}VPuxU5ekR=7}Q8l&+T`!K}WyI-}|1Wu0$BsbluA`MM~TjwCA z_SczaC0>CuG+EFde|*6(I~ah28C5i8)VKL;8N$`M9`Qs)$A9!(yaNGmjhTU0&K=vs zKBllRSS!UJ2ExzPH5X)(N%uT72V8X%2QD@pab68;^Ne=u#!d<4LM0;s=OPDix;>}H z7|usye0caogP6wewnA@p$_A(UCf{c?YAI7C=S&vLMb-m8;GFJ{Ro{MnTnBuAI9*Vz z^5LasJxt(ZHI&E7DL8HL?$5~ZBq&s5<d2_7yTss#%N)?|7pZn;A{B<|{`Gp<1^4=R zIr!{)^q&z_i>~ij)Ws-}Fkh<xstAQ9GhT|cs#-P&N!-Tpn##9bBDCO008!a~tq_5t zZ4Mksq<tk`^+FJAoiJ|Tk~)UE1aQNr_73$OhsxjIi!XYBfIGzho-&Ca01_Ie%<YQ} zxK+;*aVG%MqZL=4UzrS5yGM3kC`2xbv82|?%xVwzIpT+?vMo+2pODibj(al-Zj1L6 z_J&RAR{e*FTTHgPh4Bc9_m<|!o~-JidJ#GI>tSQqls#?rwWj+i4vNve8eeGab&p!p z40Dg4ib&aL_u2zwa*V0C=40n=6mBIGC>dQaqMyKQdkcoH-2heX&sj}RXfF7lwAZ#c zX|oG{WC~z&z)_4fsr$iL-71zm{XQr9iUIIBG>SB5Rd}$)xXm!!dAQDrE;z<g#;yu! zL{MiJK6}RZQ)OE>J}wwA@FHfja>_8Mlr5@MXaQir7Qie-4B%6&tPJZ1Mgtpj6&R3U z;{8kt;-2D)oVgRaG;Q4{RV_B<Z~b)%q=U0ubqgmlRlPk5XI^PvA^es5HAAuZ$>WNj z4qQNb8F;|%0BP)VE4%K$v@yy)p5Pg&B^6Y41H@>MgjI^(4%5zTZiepc?1asKQoO?q z_V4dWuRNmza-4|pQw!C}Zz{dBMe=A3iTc??V@vwE8ZZj}^25~6aeR0+G1we%pl<pj zJ)Uod)YaV-8<^MWC|xt8kn-gf4_-Jtzd}+U{(k?n6p{=xFVu8UQ5na+qSTC5<x{i8 zGEzDZmxiidtjM%B#E_7izdwJ?5wPy|Dd;cdzct4I{f&_9ANq|PcKsXqMZi)LZv0+k z+!yf7`hhl?TQck;J%=tp>trC=M;TyF%&$yq#+om_6vTnjD0Vqf<P6X~rYI93j6S9I zFC6Pi;u-MX9~+G6@eSQ=KWhSn>g?q%SK3es64UQ>(_xipV>xKJBrYdO^`-_&GN?$; z4eDYZzyBnV_ygH~KJyLYQ7o;+!prU~3VtZ?;r(}QZd^V7#zl!};;C}<Q!Nm4_e)q5 zsjS;0v^jrXuR3bVT$2HmKA=oz)<d<or}jPM%pDAP4tOUF4gI89v>;DEwqfN&L_6`K zL4Ntdt$NU(-gw3VF?Tj);f=1WrIbw{u9<HOTFIIc9|~PCCsdK0GphQnM!z>Hc-7bK zr~S>$i><k*u~r9p_;kT6+MM1R)EQNeKa)GQ1w&tGv1r1ky&3E#-%CwjE%9rt4rXd^ z6}^2rp_<wh$Bgq-ywv(ltg*+ACGrj$`roN`_s>|rx4qN=F`&#s1dbi8bXUe%-}@}5 zS7yR@et(7$L20V4C)KYLh13*FfmBCZt<=SagI8xL*h1rESA1=y#Z;shOC_pR6eBW3 z`ktQfkn#=(FHGuR6|r{JO6>EfLUCFeJ*vxukgsN5s-Y_&PI71fZ|&{>MuvRs-|s5C zqEv$E1EsuNRGJZ!v&2h|2vr-DG+7ic<J-kzbg+&dZv2DvwxzK2^{M+qNGV5X;TqeH z87R{M?9<HbK6ohrtbJqrvEO6rWrf#$M43BP5fQ-nIcCp{XzMEjK_#^dOFS3NSv#5h z>{lrtp|M?PAHEJ}+53GCzFgy1zKXlqf9?AVsmI;JJvsgWOP1$+y^GM))O5HkUmpiY z9%eU%iyu`TUKW}p{>ePNRZwXl${$HJ6`Q->3;C}e74sgQz{rtWnVZ5NzjE|5nnZPK zQmOWzh1g~spL1T}aOrs!t8b8QSKB+<o&Ht*^|~3rt@F45Be^Ic0kN_Fy&(hxCZBuW zZF_$5ZV3g~_#Yr>FlrX6GdAk-4bKjb1T`u#?Dc9Ovc*?(8x0=*jXL(3MaqHm1Ckuv z6qP@Dp)Yy3p6Vd_X=l&Rj>1@(?7)#YbU$d>Z8gca4aE`X0D<H`;IEf;V1H{%)@hh@ z3{WRcPMeV<_mvYiiK}yzRM4pxsT+TG=R9QzS@m*{)?UFl(z*~`flEse+=#vIrl%b? zt2g6sQ^CYT({HI9P~Un(y!74@9zJqe{63g}P%DNX5i-yh_-R47!*dV7Q~y==zf}ji zCA~6?$S4Nw>cx^oS<{Ej3k+^f?$h=!>Kus5Yt~;Zj}QzELh`m~-K)qF<z6o_;<3o_ z0A=V|6<nSBkOy@vJ9iuK^kYglkWtXclVvMR6y?*!G4Vyz%<06ZstdLg;;PMAD9UDX zF0)!0z!EM+(NhDAo(ZB9N2#(<O<z|ppN%FFI+u5BegjtP7)O6F!hZ=+%*Wo$Oj=Mt z^<5k0v}6e9{CJKJ9Iqn-j24-a#F^4$h=l4|Qcjfmhj=>mDY>yd0bNDhZ>m#LYhDo5 z3(LY3*~LX}_}kC4-u7@x0td_?>X`{c8Wj@APGk1Kg|DGTMLAIbjhBmfA*DJdrcG01 zA^qIi-Y!`}jmEehs=(}IfA&U!S$#DUo9bGzf9w?Hg`hRuNTEUgxt_nNmPX2v@77d1 zs=hkQvF$yy(8D~h)79&hG)t~=+POCHeL?{*3=_qFfR?%;k^#;sp<jU8PFuI^z=gjO z%c)SILrCVbtrhUPRA5fIH3Ax)M}-tfeQb>gOg-5r231e`^Fp}2VNww{L+PRcW{>G? zik}jzjvW^)c3aJu;*>#=K3|a{y~QY24n_g*iIB?*#m_(bKhMfbTZb^6!qaTK1f@q; z_6*+^5#}ccEL1V?%ofzWm1<hqzo#NjaGV_Z2?c+RL)Zv8S{N`P1X7z~9DTvEzW1iN zX}yj>z^gYPO%DkPtgdG9JvSxo-TCXd7is*4!H^t5am8q^62}mp#l-+!zuYBTsIb;F z!me=XUZm+KB9eo-2%LP0mSBFfR_94X>r3jfT2Pl=+*hUd6zw<k+>9g^d^Fj9Tfx42 z)@j7cM>rpz_HJx>A~U9A7VwT8ZlcBDZ;*5GQ>C6M0{ATX7XXwF(;qX(ve`4db<QR$ z&X?x;)|VNc!=X{ECC}-Hn!aF;-zEOK)1KmTt8?N)yM80`f3Hj$q@ai05Ut3Kv+oX4 zK=Ha90D7;-)oR1*k5EkMRK$<M(jpI&kox3a6@rTpoifU%tNhZHxqzXFX1Ul`V$JO5 zoaIgNgqOj%?tD#Rx7G{|z^JuIOlPLi!B4}-5C)^zvg)YMyYb`07_+>tdJ3=7hQZ;5 zj#>Todi*rhT<Ko9$LHle-xBO-%1*n#^jIWQWuj`%G{at^iAA)hIvw6yzfFD2iT*M4 z+zK)VFBrD~Z2~nQjt&`MT5htX{ZHN{^t`{c)5<a%4q4fY9{+GVUuYLbY%DRwfKX-t z#tJugi=Rx}tBC0vqb~LlrHvGz2Ul>U{_X|+{*9puCU9tf)&kT=NC1eJXBL3&<%QYF z#2<0YrZYjQaGTmVMLMxFco!11IW!2kOk(hoA3|uW&<vXyF9pa9-0}sYyN$%h(+P@} z04}NZ^TOi~iLYU>P_Q?G0zQEFFYKu2Lx==)EUwdFVgL3Y8y*{&yyzGNclJCi3i7>8 zc352<+v()X1Tl_)Xa<L(%8Nm|`mc>=rzN-g6!&VCl4zjz(fpLLu=P;Ne-s_@rT#Sa zsrtiDvc9YI^VRF7%@_U4%U*x|ad2=NMmmofGi80?`;di<Uw^ZnyJLwp5TAv0=xWF^ z5j7PR9C<VJvDmLSdPPl<#`_pr$<`b@i~iOI|0I(c@y3C6+sxS{0U|ke&_1qncgicO z2Q5YJbj|N<U*P~zDNqgK;PzIvkf^9;15kv<mKJU^E?O!v;x=)3=f%Agl00hu1t7QE zN=UMCVlOSpb>6UYXZ))k+GPSB;dXyn15$^<#TUS7-1ZaA|2k;7&X#vjYN!%mOAY+& z?yyeXXF??^=dJw%lL+-(eRe&HE7*aT=;UzM-%`|y(WIZ!eKH~pR`G)&e}hW@V|$cV zC?R#UETNXprh$YMSqo88a{_yOa@srn2fh1x>m9~S`qj4QhR_Deq=*w|0{*`xhUF&! z4ENpN`E?z_`p!RzhMET)8B9{xKLZM5ua0!C4l$K|1zVM-NzK=`v%>k4__C84MSV#d z6XP1!k~@&xWIY=uVLJ&*=Rq0AW$PW;<M~E~@2Vo9{C}HXnI4fBRpv;;VfN~**aN-9 zdRb18@_r@~^T{Ix=A%Mq0!`u#+dW2wqd<Li!8u3UQVn(1jFuKG)Nl$1yt<Me4LB0+ z)K%uL+hGHwsc^;m@x}^xN7qYUY~(kYGXQ3dzRox#&@Onr&Bbmjzwaxvv+@0yoSY1e z=&XQTdLkChi}=O$hX(j{kznM%-*dEpc;qCK4=xM)r3|e5Yjh{Yr$IU?GjZ7l4A@L* zLZQ`uTW}&jvO8o*I71co+3mmA)%P}O*fz<w8o{0zd_5Tn|6|NDplOqKOr<wjEC^k0 zBBz)u%lp}xrg@fF<~R4;TsGxhJ?Y7AS?-RARKhxa-vlHy&1)l6DU-FeW}w@X{Ex>; zmMq}_l8@IOuxPFQ5bF6_OAAZe;(vJqF+Xu|TqVkM`YCf?_}<rY-#oJf+z~^>c4ke@ zzJ~#XVug%P$su_2NgmY15}$dL$mU>H71Sz>-&3HNDLmr~waVhslICmgka4})6V)Fe z{M%O51aRXY<%%Kzn*_1X(`E1QG2N|()j(gqZl1*exo-_(ut-Fa$0+sz!jpNuC&j7J zI*w#JMOau<!lbGZlB20Eiu9VIqbIQ>ZoP7_A(d-;SLXYb(2O=gx`x2Pmjw?U3>dn7 zS0Gmm?)`uiOfGUe6T4HV9MJyzCld}%>VHi%(;;L;qv-p;lK*mRwWF&vB(K%Js8*O> zbp_2G{nAWYEh;)5>*QT><}`4l_oiuRY-<j#+>%CX9bA+s-1HSWK~oIQ{U}~?@eZP* z9iE}T?0$7PU;c`%DowB%G1s>{`$fRBTFQVvHJ(*v->}BYkU@bK&mB9cHL@ZKOK11- z6o~fPzr&JYyE6k|_(PF)p&v@4mVDn0ac$I>zND2n1maBB2IuLIn{oc@z1te<6+|-u zzo6K3Bv0sYLI2-gK-(@L=)82%^8Naa-~7UZ-btP1XW93{Sy&=bXNrWh+RVSylp##g zr@-;D;g}+IIjvkmnQoe7N}?ifMxmiuBXz=Z7-q<NwZgYkX6hqo0naA2uT5G5hMpT$ zDQ#2Pf<t2uz?;m)Nhek%<CORE>80CPiR9Nx^Teb4Ha2%xxfG+7m=*uC+e^PODWe*{ zF#i&!yGTvkqt%v>t$7wT^`+ZXcJ>CJ=cUm5LeE?3zqhM579cv?R{Me}1M2@4Rw$Wv zc6R;{x4{m#1iiceP?UwPx}C3=pUq@x{k>&VbvffJjefBdw!iZW56hWLUVO0ROh~*> zxQ1iG_M|LN@w<tMIz@f;6S)>fGiv(jbLma$ak&~YGcz;h%?j`$@?Abzr-qs*OrtM# zHNO98v`!|%1`{c-Tl+8+Mb@asZIZ2r4+|)ckHl+Y7<%Wknt(1$s6T^5dS>S=gUH;9 zly&7)LRMoYm7=1ecJF$?-fz3CU<#3kGUWkp5diM~f7=5SrWFKz>ezCpGp1Y!l#w6! zVJu++CQv!Z%wRx6dVoqdIcH8}jBEP#PgTKHmJ<z?5!%~H<G<#!uf{~?QDFvgF4+tv z8xx$L7b@uUT|R=)OaLV$!>>I5wk;r#{&Ts=50#3PGK?GQgFk78@GagK7~=L>VSEqJ zY6!Y-%L9ILFG%5wXKy&CgkIdrG|#JqMpS&N*jipm|1wbi#+BE9=l_Dy4FsNFR<m?o z_aV_KEAGt2idNH*q;%?6Y5)iH-|H&BJtf)ew|sYT!2l-DrY3&YwDP~cVmF@J$0Tw< zjBPWia?orD=xW+(H7zwf+FRz=RP9o=F@HzFZLL<%F;0pz3czlXg9QxMq}83L1c13p zuR}UAC8RzCnOH$dsSM_yJk?bW&DcX5qpYZ>bB=7g#7R4f2`S@LBs0_4USWhyeP8|T z$(_SV(pl>}N6XQFnp05_R!!F}11gD77_)whUan^(HWJ}%eXWkgbRMrJi|NFv<}p+8 z&VtPi$CIzWo2I(@l+rexPS<PDyZ+X%vVenO-!9=oC7Fs?of-9*y?M2G?tKIQVU8Gz z3t*nc`gqxcQBXkHy!%^nOuRfzt&c%Dt<2s;M6_FCs4aRa(NXqCQK{gFv70LQ##`f5 zhr*yYDHYB8ZPsK(xEbdg?#WuJAC3}Ovu?h49QJ*q2kiOpWvM67rpcy?f?10S7#j5D zL*_-$JVSEO6;Q%O`81vj1%y<{f|{;eBog*a=re-lL;j|hlg)M-QCwIwNwmdC93BW^ zIeVffv}{OTB|d7$KkA`)_FRFNn=C~Et!CUry~3Zq{Dt4EIWCb<zTy!aEkP>-lG<Mn z>G+f(mM2xU=FBjRlrJZC<*m*2D{KX>{pT-NNYrXZPecM~4#<gk-R98<AP1UxkdaY# zw%#%Wf^dy}Klj`{Pf?~$>8=1l3;!L~<DkGGI=Lrv48QPa5$EK&AMz7xlbYh{A_eBl zVF>eXd{2X^#m<sAH^&zeh`bR@AGaB`H}gRc{(YwMJP>^87n<pw<nL+Yf<X%2FIaB( z!=23GH$4ER(zvDM?A)4Ks$NQ1J;(dYyp#tY0gs!|o7EM3xVe6(7m^3%@+s83D=GGD z4&Mmj@dz;@0@3xv6vb|bKZ@e^sjm)%)yU)G;;wHKR50L$-PBELA@??!$0X~kSPYvg zTwbkT-vYMAGlUzSgtZ4yR<dAkyPmQP7ma+99WDIsP|TCexiaf{`>EkKekw}--SF7# zODBIE_|aanUmBllW)_pFO7f{sJ&XS#O@6)5rB0$kD@TF%?RbbQ;8F;5)UmZvJkdDD zS>71v)6qDFpkY=;33&L*YAO;>xARDXnuG1Cc$XuYA&dUYkS+yLFNEWCw|mV-*(7!s zd(GaYGR><=-_(bvPHIp&jnL)Ru$QKxXiG>u=w&lBF?8LR8|O70iTnb*P|4-;9gXrG zI)MsQKMu0^gSa?cew;>s!cKb<@d?i_1!kh<ruvBt)(Jf7zvU{F!iB1AS}WEo4uY-` zHT3@Y;GQZ<pm-g*PKf>18742d3)jM7G57+U80Xt|d!rb>=Z}?@l$2a}JEmGnSVKQ~ zSf^sva%Cu<GT@Yb9^g`~m~kr-GtACzAc<|_9!;mpTvEqXL5)pd7%VK>@%@%DYuwiY zxgUub!n|MqZ>`QHTB<+^4mEb5!Fk?QHAd5|m~rktl(#c{lK)6Z!1s7MF^Rv~aP?qC zUjxBnBw?V@XNrVG8n$$5yuAsV`=^><tZkI3rrON&pF%^FC`Pg=xzTb+GEw%}e};mP zPb#J5OXiooSBiL#Sng8Zd>hK>u^o)UeqD`@A0jV9v0%z70dwqZ=Rth?rgRT)sU#jJ z$5apgKw<lDIZ1c?1Zh1#05F!U;fCS7T~RnPt4~~_>b1kyV!0M}VN2goNx23J&<QW| zpzV^rj+C?`+3-W=xOQ$%SZ`W-n>hMsxFAI(rRmJA7Y~6CZ`|p3zt^&gifr^E;C^%v zJ?256(MHe%1ITQTQfM<GL`=RxyFLY!j0b&sQdv4EuWVcAgBXqfdWc?2<w)^i1$phS z6i(>ehCc+GTYDlw9}OD6Xt7&Sdl@egRRka*+yLsxJBbx*wK3g;|F^upW-;)8U|6F0 zimNA4Uy67;b0+mVQXVe}f1lVS+eCj_I6VnqPgFMF$!b#}_?BBHWeU2m#+SV*H{H;R z_JqC3|A=C~N%ABOGu)kC@1dhjNS&Kgzh`vxp*8e>jy(P|EVI_Iz;fY|1xxf4;{sPD z<c*DuD5<nNNaN``D7ri)D-;2aF}dg2VCEd4!%x(urq?u%cdh|lG*j}<iRZ#pr<jSV z5F^lT_PDeu03F$V&&R&<G59J#l-A$&D9$Psv#nA1@?w^S)~ig*7NE$S92xslJH|UM z*9HoU={RBNA$D{ZWO*(2i(9;@>q^YMX{m;7Ghg&WAI+skE{&T@Dz@I$J|*u}14=7b zRq_J}368R|GWwK`x8#<dAS18mNNZ(5^d{gbIpf|m;##kaCR)FyOlVYS;rBPZcVNpj zw0n~QQH?j{2up0ac*jbv8{9O-nl~K|o18U+Vg;X537oT_x4;t2s#tTwfkAFJcgA08 zyeBHmpK6T?!m5ac^vRPYo0+xOSVS*oKmG4kdQBkzpk|DZ8NIkRTFp?jKQyoLea9>u zpWh%JxVDGu^MMzdyHi9Mq}mc{F%)(=ksNVb<95>Qyvkr_uev~W{Km<0i(AgGUZ!c~ zVv?}=d}&-H&)Sjoc(wK6#%m0$EDhx{WT0r2rvXN#d_(<aCl(kLK*Mc|$jd%o$7vze z7VQanUtd83c{E`$30t@djuN2!vNh*Gg;X&tr$=Lc(?2wUCveF>Q4Pw+!lQ&kBiRL@ z_M*G4EbYf)0(aw_WqMWD4g2hw^?~Z1UtjWP57uCcq7T*%PMGYsH(4%jk?GoHApUrI zdd|5{iRNB*f<00+B;*{8>L?j%Erm)O#uc)tARXj<W|&GxH6M^%c&s#&&CK+Lj{JE= zDp=OpNUsGu&vj<}pY0t>#*F__r1%O25<3E~!Bi=fc$*H>%&s}3mDiBgWB=bfl0zsK znggrt)g-fhydKUH$kUZ|G&$m#>=vk~V5gYNPVZR1-{0=!unt^kM^Q5ggyB$$ih*$5 zrbfFJm(9=TXJ<usz(p1_s@vV`_%$ioe0?=K{JI0N>!Ui|r&MyTK;>xzw;>8G$C-Ge zEh;Zq7bRBSyJlqZ@UNjt=;nVv=~S&+nMSDw!yK?+{krUUa>z(a%X5*2Q{`j{E~8CU zDC4KBC`aQ+&K=ZW_!%O@cast(8!7kIWLE9nwqV9e>ulL2)*67T-JfdrgjRRn9@tqC z@j3mVV0x!t$N*MX4{r+C+42Fka2yt0rN4sBs#RLQeSZ&gq3vZ&&D*s^mEU$mS+e(G zpP%{uW@iIckA5khnxOfG@rBjs=}W69q+A!`w1}9a-&y8KQ;nbfX@{ISXz|W&Xcl9Q zJPnS%J|AZNtXJaMfLv0r-kZ10<P*^;iEQhS!y)*kC6j=)n4$Pc5=M7n_RYRI{d@(N zuep+MBamClqF#>wxA<FbOK4PSlol8iH%#&WTHNqtRa8_ax2j4*#gd<tDU+nL)WpT? zDwgdFf0AiE-~FDUXecE*baOpV%*Q6z;c=0_)OFc(&)9RzqeQ?dBC?74Xan3bqVRB$ z8XU7ueUgX6hJ^bM&lGMfDtbak>%85>hLLqLGJSJOd*8^T4QR})awCr#t-Z5g^<W1~ zRZDthRi>xslN1`oAw|&Z+LlxeXo0b9<4Zih(R4B%-PbnhK<*atVQcNkcxB2Vb`g`~ zVU{ACMnc;SUaAx9tDmQ-JAS=v-|$tqiv4;15@uBqek|b=fEGSkZar*}nMaMV8W^`F z|MaEH<j0Lm#GfQU`@Y3vJ!NJIXN$N?>{}_R1M(FKY*cV=MJr9;=^jC4gXN@BWlKPE z(b{%$2!78pxH*AXP-gxAkFWNq%Yb1<@5htRRl!MF8AWq#-Is5K#QH~cIz(<iF{e7b zX1dgZpN97cWSnDiQ&ctmciYp*Br%Op0>$8!Y^MXE;Z7a^>jQX(6byN>(GlzYPg>t@ zwa75XYUZ2#70P1IO^?opRKNkIFVD24KO_WmvS4XL#V=HnW#y2cu(_v`>8PT|&5W>A zgmV-S{>4;<uq{X#7~AxgvPy7A4i;zuaY0e0rzdn+a{S}+_v*~0%F^V;6-FMgAI$Fl zr-FgnXE$|FY2u1ij3(bEw(7qoaYj{j&<>G7m#Sso8h6UT_OrpbbYlK}s7ull;=%Hu zd9KB#r<K{bTKxCgmUo2z?mNGBg)6isKL>uF7jY+SZISN~`isb#4Vm{NH=Py7`hmV= zw%zAy<a-BhBu$c4!~j&XT=x9h8ZM4G?9RK*Eq(-OCwNN_{;Oq%y{3?3&KX0%QKGGq zq9PA#$9er|z{gdOq^arN_z<wQdov(`EXy<q&X13EHWyZ&XVu69)L2q0xCop%Q>PY| zk#LvfXJ08H>9aIj<7*ZO%p>wIo_*i1!mSc=c0w>odTm+q+AQ4oIO~gK?BqsUop&`h zIV*c!i8*fyGoR*n_05i|jI@Cvt}EtklQ|#0f5snTrHFX&tM$q)HkW3Z%5RPQT#p+e z(8C%nL$>m!VM1;dOD2dKa=K+K+<5g*7qA(XXn19Ec@50l!p3?~;;IrYcthItyW5O< z-1}0TM(%le8`N|OEZI%6rXo$yjs6W-JWk`(@tbs=^a*r`rCgaAz%?G$z=qNKd~i~n z>0qWSyI~?BhKuzu9FCh^+R%{5fB!6m5x@L%%H4E@Z=^E}YiDjQXnsbuxVqZm^zt%% zl5g+6x~%LZ9Mm;<=}UAaEMNXD&~~Kf(-m@FcPnWMhHq$3-Evr;xPnZ&5fe`QH1#~` z<_E*T1D+t7YLQkEUp4iuy9~k>6IbbG>1P5uhxwJ2;ADhB)JF%T5HT)c?g<K^xj9XS zc_a-6oB{wpK(vk698FtX>^woYRp{HLT4JFxU#6fW{h(F{A*uyCr5Y$88FU)P8Ro*j zoh`6b7SlY+O+R{sG(fY8KNZi4b)#E&v3J02t}Xs5F+PfGRE&86O&07qG5ceHLKJfn z^Hd^;rlf>U>Y74Q!?B;sFvyJT3o*KWP{gx|#*h-SmAXcWMS*Ozi9(x6OiT03=UY_~ z?TRs<UR5jYeZ;Vg&)8>@qX#?KW^GfYdKKyC=&RK#QMYY$QzLy}dcJ&=FBRxjX;r%7 zObcOz)-kd=a7B6z8vOoZwI@{<>>8o40zXu5f_UJPn3(9?q<2A^?^-~&x@9%X4<s^n z_}baIDTYH+m@*_IA}ER@D<@gNuOmayFBMKsI<z08=v%)&Ua%V0?H2Y7t7<Us7tox- zQ5PDB^g;B>hZPqW6QCeV6;ci0g_Ua6@MaJVhetp2In?s%VQEgoE5eRF`{ry3c8?$3 zv3u0tKAXT}Vb{=Xir4Ab;Y3htMTXN&U11NU$ldBnOT)!Z02(f!t@zEMzMv<x5_Q%D z5_XtBZAyFnRxlH`TY4^hnv%ra7%Id434+y`9w%+piGe*w>&R5!jEHWc_oc+TzoOHw zOX&dgV2!!}lU=K~LoAvE<mBnKotlBJfO`Ak@$vTU)^61q=ospB-ue;^|M$K-V;PZs zmGsVP5LIGK9jho%vvvlq@LT-gE;7WrD#PJ!DP?YrYT0L8kjsFHcAdtXFohl$5bx)` zv9Zzj1r3oMS(3u&pCwG%<yuSZ$NQvb_t>{rKov>JtWz5|dZ5ODl>g%iD%)d~-fcmX zb<Y(73teZ`sx!D3x;j>pkb#HQcgOs@ssmeX!d*e&`}_Oav=BrEA|IRcjwjX+`2}Ao zLJtp*>Gd{Os4BQ2Y&>-MxG6Z)QX(`*>oyJKwRaPEwltW3DD*qnl?SfR@D~O81IT%Z zk`5VC!YaR<9EhZmB{CLs9`uB9d8sS%Z#jB7)aVh&>Mb}eX5Q!`^3y&P=4oyfZ4OOD z>PD<j$ZJ^ph}vj=xGsOPEJEqTMADo4W?aP0HZ2d4u+@c=N7X^nyuor$JLa(>At>_- z%T0C`aAIX@=lWOO7MvcmU1%?cZnP|O#IqgBRSpw_blEQ9ADFIt8S3Rhl&Wn17YUpU z*=@H&OBTPT<y9-UX)a!pK6Mmv-kXe*H$<`~Cg^#Y_xG1He-4x%0$AZC4zF+=`_Mmv zC&5E(?djoRMsVwS68GWhsVA;f7uWRn$R`PM<8SFyR{7`a+(ZFS9ZNiH4ugY((_6cj zm(^Y-z8vLCwi9#_dlm*emKk`W(^(lrmN0@Y+Yk_D>QPk$$x>1oY;H535Ry?Ec}Q?o z)vYWsZgncOTD#f!<bH3#G3aYlXl4$mNjGUQXz#YF8aLbNcDkL+(!>zr9p{!W*xUgF zp5dh>Vs`a##H-YfFWaAfy(5W>Svv`6nJdL>m*s$xB^sA1z8IHr^DHe8KBzSr`RD}- zZi4$lkWRWjz@DwMY<Ak!2C_jxu3og$Lr*~GEHwA;>VLH?A0h<vpC2Rn#KzWxH-DxK zpGU8jP9G9)pT+9acv*Xxh|tvtLi3*>y#{*<u;)>bcz?VCl;p8N@Sx+HfGxIY2rS+G zxE6*!P`xT!taNy?#^OROs4E*vLPPs;2?z{&L!lBAm^%sc@Qey#{)4MM^lWls5%Kv; z=pU~nc%fl{LCh^!o6sZJ(O#z0nG+g%c+<u9el(S<jER}pNePw5Cv5mN3xN==z|{2o zLQ+cUht#tXM8To?7h<Xys-X^wdQ%L}xFLrywYe`onQ7=(El_p}=zf0SMzax<h<ps; zqfXajbM4L~>|&Q^A%L52cuxv&tj~WB#mFw&vhXB7r9~=Gg|h4d&9|iR`QU^{Zx~=| zM{vL{P>(vMs?*;&NeB%28i+ix)@)y}_1v{p!nv50{sOQzfJTI~<$t4&Jv!GTw3{B< zZ}NX(yST)DSht<CkV6&>>CcZLvTkZXpy?E1mAZL)-r(HqF;_v!>%%gb2d%ERgp)M- zJAh_!I!}8;J`AC)V%5fUgGw!4MVJ%Q{j1NRuH0`PS{J7T?$Yd>92Q&C5h`c5o^4l@ zy^FO1dsaMW${nO%US+li@4GHG-;G|<1A0!|CN^Cy64)v}>@F&?Snq9<LXdC+i<4oL zwHY8r)QK!1S>FI!^gr4!%!9!{yx(AmBdyH#A%KNz+{%)fE$KVV-ch&T>oY-KcyzQP zS#{7*7R^mBH_EUwXPkzOl(aOhafcrEHN2_bd>Vn>kJ40qb1X$cJ&!Dn4TKKue{d?B z8yjO9O@L~BMjXv?+mHhfI!-8<9C8{pA_+D&10!i(m!o*s)4Qcu29}b%Lf_sc?$dF| zttn*94$H`vGw0~utwJUU5$P0493kgn3A{^aeX~m~)`d95;=^M<y~#55_P?G)Iq$!i zRU%y@ssTcl&8mWAx=~^hf{c$@X%g>!Ak_4z`=c;X%PmlA7cvG8qtyea6%ii&2ZRa~ zS}q9tfd~vo_5qNFXGW80C-UaaAj^z=c)pb%ft;#_8easFf*X!bT)kDwBY5BaS9z+w z7(SA`Ur}B_nAPyEHJH_SHy&kslg_z{xO}J}w5&i%Ekds%MiQNnGz57&hE6I`tDxT5 zJ>7oW)R2lnPK)tSG<M;K*!P7f>VwP$mY>QY@khsx_s^>hmaIPe@$8r%+ws3{KVMd1 z6=+?-<xb>^#v0vaXwQnH*>9gg)Iw8{2)MCD@m>sJl>D$<towD<-mZ~OEhqFYrW#*Y zKE=e21{M6^2z$?l{Eh1P2Jb1(XuxZ=)tPc5-~-%=#AZ23wAvFunu`Qoq=h+}-Xxtd z$MQ5?SuQ{-<5Z?<ZY9+-9c=58<8=|eI*@xS%+O@hjpKnn>-apvjMDFrB=0tQQZkdQ zZ8-2ywrFGj|7d#as3_m>`+Ml_l$MY#r8|f2ZX_g?hM~JtLX;dpy1PqKkOm3q?x8!L z`~CU;o_|>^78Cb%owN7r>{GJ}s1@gzUvS$+MuevR*Yc}D>gbb^`Bws;E~a4)rIe zW$x4w;5rH55fEtc-uQ(?9in#%X&g^uEYFe2!%huJrGwNmn6_w8&l2R60Jrj+`E#24 z117cG=N#`HnW+wOz8*I=)90<OOT2MCC^qLqo^<4QbYxDUppF}MQOe#00)j2&f?iTM zTO=%`+0;_S?6PYGvhN@EO4zG<^UnT^s_JHUZj%}v-Z#hnB2B+DCH{DA!D>FZpl!Lh z{|=v%7PMeNw%uW9kpzU!&Rkv5&%=S+)s18lh=f1a#nQBM3smb9(p0t+Y98l2G=I__ z+cDR6pg=pdt0nSbi<x$s)RUbM9di3R*lzn(;CsuGFjpioHWnUlac*4}_STl=)lGAE zrf#KB_!dIT^*?B*Nlthn*784~Ws!hOCosRua{K!}XtmRq^Yda|I0+Zql|HU)uX)ie zv1yN=nEmN;>*c8L&GA^8;!b^gyRaG(6W(0XyXz}=x~=^LaHZ#dtxD#^1>AT2xLW;a zevVH>NYpJ+zS4S>Mu%sFFWZdbc^DiJs_Uy84Y^Wfe@gE%HI*rCB#?v!Msb-=nVfgb z1!@8U%~zx@T>@B!58U;etKy$#I0t`2SL;J?uc?>>)DzoZO^7tM-9+c@a2elw9L94A zMVDDZ7%-8*BP-V@RXy@S$szRr4$~#X(#Et6ge%K694@?Pk#Y<RX@`9^cu8S-LyhWK zOpubeBIMN(FXVjuaO>jI%2gFC{HvjIviPY_lboR-i~O^Xy`>LviXXWZBM{#z8f}uH zuU`q`&Z0?_WbJ<fGcKbnKCoro%xKvh`v;9Pm^ysUmC7Rwk;mFbBf>P@6Y}lA>xM(e z0MQL%l%o-;+t?ulIW%Nu(dF1zIdw_+XUmQZ5wWDj@^pC#XE*J#8Tt>BX^cc?ig=z= zp!S17yyM*`O~U)_YtK}^^|!~1K>X+QUVmtn>;c`XZxKvF<anvLkTTVi_WBzoN#4+% z3Ect4v@RsazU-9+@;5M+n7v3gmN@*}1}(i|V*gIdKH&}Zh(j}t?#V6Rt_P+pyA?wv z2a`Oq$Ju(G4o15#Y<MTXl*Z>emAS2fptEtbzSBAAL9HGCKkesRNKhjX^D&(-i*c}< z=>!Fs>6tn}2-?V(<>3}oD2T)<wtc(M<ixl2S%dJ|!fXu$TxW^jR)L3{BscKo{`Gu$ zPpsG-7#5!j#SxRA8@Xz9f&lkydvl=k{#hR0?qJNkYEbK$)lp$2mCv1$uorf2bhpb% z`)ONjFjgwzH#P&QzP`Sz`-#9{<lR4oy{l9{y>;)12Aj3Qh3p*56x!vmr>bg^DWi64 z!Ymr!s|?Uuy?tAWTulwKS_wwES0><PUZKs7pCWd7X3iKdqGV@bd1qu3Bmt^HsX%vE zc9HGL`V3_JU(?X3xM^Tl!&84i7Rl9vgYt*X*5Kln@BLWyAk#-Ui%O0r+UamO%Yonj zQQG29ZbvDCI=gr2XHh`7;rBOOVM%)~R770tH#=z@kyaTV$aa$xf3jr0-ZSN)6b=dw zCLHT0cP}Hr?(i#)_)Z3irm%-b?t7?U4KUH&91oePQqmi?GN~zjtA_fB%6a+kzz(XM zJf`wCrIvh3z=W|b&cIIdsp_W@&Y8(czqXqt*vxpg@WI1Tb+M>##DNTlx>oNg*}jV{ z<D1-Fe_|q4X5tznOC4s!p^Wn~WM@8ISua%g<wDE%6%)7<zJ2Y~Py4I>zH8m<44f}6 zc}cHCd`G!fZNd*|B_ZF9{u41y{@=;4Jv}$~8)JR`^-`(9c2QBta_r6Q{EX5>=Q_L) zp-33hufQ~@669}jF{|)9M#gUA>UnWpCc<6IUfG_-7g6Cz>VJ3Z`|SZI{9rZF6U>{Y z4PmwxR3V-Fc3BJ(st^*~RVhEu^&U7fYHI6H3jiv2-~Hi0`e*BVsb+#FOjIVk_9K~b zLx$_XyLhT4rMUyz_yMGmbYX+HmhM+v<$CKGXJ^3?1wClUh=+;nJ|IevojQ7$qPe+V zu8#ME0EtJEgz(0{^5RK>O=JoUD^{voy&hI7r#Vr68mQ@mtuC5uX8_p~GpCU!D9rV3 zZm%sK?w9#SbFp}Zv#c+07Z=9KAK(9S*)UFHxbjHqmne!9P3g<o%_{bC_S0lfxt}qK zqJQIkcE}R-*HeS5ni>+?>l=@?{P;M0Z>Y!Xd2Boaxt|MlTr2O*%Q1sXKHJ~&y51#2 z`8TeG(_p*r`w-1J*qrV<k}R1qua{@ds+Ko(E_AX|pHgJ6L$=tS>6xfq@@DkTs-V@d zz<Tssz2kNQrEtsZYl9MBl@tcNyPD`VkI-eshtlHq$p1hFs^--wFdj$Sa8=nki{-zc zvKrfzJci4h>BsL_*yZB+j?`R5R`-DDm5GECVV|Pna;Jl%qlb2Zs<mq?gxm9TX2Zrq z?F?Zr(@$P`fF81__kVpNGcz6*Hum)HSmr^~Kc~WhOOnY4kE8v3r5xb<%2^;KrWPqD z$NWjfWgk<mt~p?5#9Cin9H@1w#PwU8;l?sQv~)Iqc)j+2j5t{Jh5f|f@DV#%?2Ls$ zh4$9x_AtW7nbMC^wmDFj5hhF;X5dz7$Wf|=ySledeVM6uY;9|DW5PpcS4`ju3#-N{ zC==Xfwe|~hf+aID_MxJ_H(W^aX&*qwXTp#H^@gBg?Dc>(vEfVJk^*T$PG`2RluLJE z(~$Z8l&W4&)I)Y|T-+p#o-c1GWakaVw5r7<Y7PSs%p4?^|Iiq5>O~$|H&5*dtcWIA zYWI=NqUUY&sMoEloHrDx?zq~>hiDVscZJzoz~z*XcoNbEso5xRU$*EvsJfNY{AQb+ z>+U@N2o*XxxKW6jE#U@L4@OQJG{Amt;Z6s4i3#ZTw$Pt{-J5HJ{F7RmhWv%-Y<4!= zOy>$T>-TfuFD>C~6n^kId;|yH^5p%1ngmK2QvV_U*-3rOtX^fB=T{)*zk)QPgRU)e z!R&=I`4QMrRXr1eMEls{0P#wm+>^I%>Z#KWp1JuWr^l-ZGeuLu806YB+CTh4!_?T^ z%$evFv~C3Zs|tG>_P}+H^|rB)B4CY9@Xcr%uqiH4*`I*oD15TgNy8KCn6#hvXf_$7 zupl5d06Ddp<jD7qZx*JTf-m=QxUFl(903c`?f)#u;u3SbP!yl@&4Jm9zXzwnr%*Yn zC5hsk+6a!eV|>FpTeRZbU`NUhZ&0j0t{fQq8Q4hi*+60JuF%EfDcyCpgFqtC-Y*Mq zPX|}ur)BrSV@Uu}t?>e%R_u1-j)?gJ0$(mUcXL6TjMXAPc5gg1ZMN`O=9PFR|0%fC zgFAP~D9g4Fru_RFEN{88U6$;wGUkm{_*Wrx2-;`<K!EBG&`(@a$Qg}$J&xN-ZImT9 z3a=coXB&TR>}mBJIYPWoWx-U*w@m@FxFj-W64|I3hrxKM0*whEq=|m{_s%5}Jzvbl zeaZJevwJ_WWH#AWKd~6si$E*3fn^=rL2fe)h$LLu#CFNZo5KU$D)0P{W4&Hbf^9)b z?4J);2DnjC5QJl02~$|t<0+P8ph^I^0Re=-gtlTrnaGzpHld>D;5)iAt|`ZD#zc52 zUo;S%m7$>>^gB2;8*)Y(9fkTkDz)tww7W;4z&s2!Nv<xx1WvjbJ3zXA(y>4542^|y z&YoSbT=!yFB1TN(bRRJZVYcuc<aKjPjz#<T6cHv0eMQ;qCPf_ho?;H&uEX^n74~M? z>82~+KmQ%exCHJVa+hBXhM)h2YWm}_7v9@Zdye^IC;YKk%foFM6}aI7P8DV4sov1X zPvlZ@r^Iafv%`BORJ?9!pFRM-`z#!pPgrUN=8I%5yZ|AcK>7EdLHtZj?w-ULHflOY z6th!tWISWSeCox&XP)x%zPi><%H&sD)DnufZR8Ec^S{tnDXaaxg}tewn<K76rz7Vc zCI1Eav$M$*V;>K;WWgR5?`s5KF#Dk-jOoAKYQj0^nzL_gvjlQkMCfleVc%i7oIJw9 zLPf=_T74;6GX;g3%xi1>60B;5#GD2lC0({J%h4ay#JwSHt4}M{{u{B~kL&TbT2=Lt zF$hY@+(ET)2yfag6+gFMO_Q7%U+i!OhW`T-IVbmjQs&;$bys|kZyYOllB~p0bX3)z z1LW<GUxsSdcG#y5Bn=<25xQb^a3b~|vVOb!F(f{e|GawB<Tbgz4kBOogE9UqTmwv6 z__Y67+uku4#3Vt@y@GBf8i{r*{zv=czOei~QJ9~h@3^61`wd0gMnrDSp0ORqz264T z;oQNk8U>Yi4Lpu!futF*)AZo!k`t=ebwg5WSUQ;)=!byPa&vpjty8GsKy&Rwt7g-2 z6b1Z$y*Xz<mn+{i?JdnC;2%^p)T}{edSV+>b`8%+MoBIzLy#uq;hv)eEN^096O44I zH1$VUQI0#m1_Hn38mvc)YRqHnkV4$?P%(mP{O-{a#{;|{n<@j*I2qLOdsI0%*P;5u zT6nP{vf8Knpjm|P%rtb&yqWiYshlJ+t(tPR+ELMpE+05#G{i>aR6y6R%44ntt85w^ zEQ5YuJ{+E$%3P)my<-$6^8i`Lkg2fnk*N&6W>Xe2C2Uy~{N0Z#UE~(x)7?KgWHAN2 z?o}Z^?nd_+%S4w=s@dlH`dETXV5HuyJwA?xs<(t6bXzv-vTI<Y6<h{0?0yNR=68Ev zcp+?s<B8pqaQ#!Voyp6?g>Obg!g>9i)dLZf5$wyMZj;J_&=$f_pBL3wE6qi_&lfyc zAo=yWMO6iP2Yzk<sjMfP)NlUda+nD+cFmkjNefjFgy0r4I0o+`Me$}1T-hsLYZ(gK zT?`WTWB?BhmYNQ5#EK~yrch~rABat#f<3RAjg9D0FLvj?ycE1jT<(pj1an`vSUM`J zsD_!qFACb~;L;>qM0P(Lxr667jQH2?$1wJ8JvHCv6b-nw+u2^rMot_UUQAK1*5B86 zic+3G1qYB(>^t$0r7bNBu3UE&Vz9I~S63ydsq!azH*3bDRk!IgY09-~!w%WzZ{jKP zf7|Wo`z{eKF=Fl3;};oZ`<nga{GEXM8h<l}#$H)ppgdr#j3BL4s#>`5l0ZA4k!Eqc z+j55y<UD2?cgfMR?&mXVwAv58P49lPwmBY*#*arX!eCc<;0@v?tl{Xo!}r+}UK@As z01|=2w>mTv#{CtCzOFSpQCIbDK;gENCI+f9><6ixrsyG*lqMa0Oj4ksz-+)%wbA^4 z*G8@RS7tAnS%c$zU=ecosgW0Tw(CgcF&gaPppZc+{e4T~76gMR=09A7C4Izw@Q2Nm zoY;+vknc(BEampQ>b67ctF&src<XZs6FUJFTa}s+c&dAVfgG!Y$YTXAWz?7IR%&w3 zLleH_2cP249m<j&(vp?;J))Z`2H%{lDE*hhtc5J`cz*caG|&(uh@j<RJu?J(W^UyJ z<nQ91x|$iMN?f8=?X2vUWuzd+j%A`F^lN8(Nqs@+yRRkh(w(-yws-1UdXFWHSD_X4 z*EE=><##x*68&ik@kUSj<krMIhVX*{C+@g7xL5Mw`SzL0!_(93E*s|WRO<Ll;LD&U zxI?(hhfwpnFDIUXmsBF@EG><3kgBCSAdRt0d6@elHxa4j;FO8GrdpPFB%RjK<$~G$ zrgfrF7}k=4eM(&<H0w*2|C26=V>9lD?@d(jday5D6(c(B+0UVk?DxZ;)Ji7{%rS#w zvBZYC;cn@<u~wVmyg===7C1bpd|9LIBzaWI7$alY%Q#db64cN8atFut<9`sT7@a}^ zg98w_WE(z>k(CazRkNE7&qRt{y&ch#!H9^kz3uXMq@m55LLxDdN;ihU`QNs$<vqg8 zh6X>DPcLfZ-*#=KAB^dB7ww(q`W2wo)0>4!hWn)3j)&}^AnR6il$&xm-fdtVmDcNT z>!*Dp5Z1%f%F|{Z7RPx#c|h=Fodt&GMOKMcKQoZxRMxRK=l}h4+<wsgqlnM*`?#?i z@-?SEm;gntXakK}xF(h?9DhLM(}jY+yBH~Tu6gyn3jc~CkPVDOPyn{&T1az6mV^4( zO=V*^k}dmPvIA$_Ux~tA@Ax;fWN_OxzmXQyl$HCPg~AMC-~e{wD^}-_5&ikM{yadB zeq#GSF6o|`kS#`9TH5_=QnGC?$5$YTaMcu|{)qfg+TNaMKSSXD@Wx?Z6!uK%)4Rio z?Ha2qu>~2Mt1g=Gzq!Or1)-*rLEk$u-NDhsBayGNCvhmYMhRtll&#;o^6y~il=aJK z#f!{=9zx!URKa06E-O`^Aiy=6SE86Bd7w}okvl!1JwLC#j5YChpHN<<2j1&7`2XWO zBsZ2oxrKdF99qxvo-I+G$!bN&64;%JCogF)PVaROG!r+0oHIE7i93E%MA_F)DssGB z8_S}VQb(!A4I^YT=%DXMRi5m{Qz-f%BqqtNC7YBg8=^GD2Xd+i7v+^zN@pt&f4%I6 z0;EQ_`%z`H2c;POb;Q@8T-q&zjmw8elm*C-F;)>lZtk>1V!j$TcnRNUoIv^ZVn(}- zCvP5`Ra|z{rYvH11MsMBmdw$-xV(u!f;nVzyPru#C2r=1(r7XC-`c#KUiXcMg**3t zJ?M|j7o003+ND~{?-5?GpHoxPJUl!A?4!(xg*9#VG-ozt=fIi4`&b4GtWRSMb&GpJ zvAob%qzJWpU!TxwoFEPXz=QGNZ?^T+#(|XCuUUKe?!9}Q`u!1rSePrBDE7c~+c^+R z;tEg8jw9X?><ObPO7A{K_c`M1jPX2KS#_K(a_cz4lhyuoKSVaiIwz>5HS4`<u&3TC zAmLT*8|77NXnw3M**P=>-tZ_^GJ_zE{Qyuk$2Bm@%}HJ;%8i!OE6Bus1E~SBA@Z;q z=%0Jqdb^6q<S^wpR8K@9&Mo-$Nz~*=k*M$Oq(mT&31nlS!EugEs3tHB8@AStI9s48 zrlzAFg}+0!(N9;5fc|iE(!3^Vc0ZzLpsKrtfan)Xo9YP{od!qrJLC@luSlCcOsBVu z%UjIN&1L5^MT?Zw1oN~IA&c)qT}#!SW@*1|{~>|uU(ev&d<I<jqW`N#?wN@eSvcw< zwM0$&ggqw%AT4`;icc+4UUuoI3#=KdbFRsNYpbBS<9h7shuSMjd_qEmnhJmRD|&3r z6Jg><vH73DexW7J5++kT*Zq-pCB@3^#cfO^8$xHuqm9$dr$~r@5Kr%+tm3}{a|2HW z*Zd9u?rH}i61)f2;HlOu{nk5F1$apLO!FG2$EPg2c3-;mpKfH+jq9#|rl=Kly|nTK zz8Eh(?Slu0TPD_@kY<@YCs#%Lt_Jx#qsN8!9Q|d+4Iejf{J$5m>IiMc@m{TpKZ`?z zkd2M?8fs?(Q9y7^Z^$VNQuHb}CHUm6;MKp!6%6majgS!R0)>F0Kv$cKbl9lc5}M_I zS+xkZbRgPlhA#Nen@4Lsl5I0Ye`|{1Tl!>H(hd$rGskvsN)&EM@(Rqz@>gFZA1c>g zU==^GS4DEp^+))-Jw*Mt$a4$g$>%S>fD1G?g7&&rSHCGV1t>C%u(bUlZaEOw>gn<r z)op{lc)0h5lS~7%IS69Aebg^pozIjoD9+QhoGoDFoQ3TT4PxUctEnaSV7&fT3rJQK zf4<r_d_4+$c6tCPCDq5Fqbnz~7wqRJ49-#yl8f-w1b7c(+4QagQVp9{iNXXay-tJT z%fC4?;l^oH-tPLg(hDXr3~KNXppZsur^ph`$|<|zEY<P}ffQm6!;uC`=k@DW?k<OG zp=_TKX7_`_^l9F;7i<+(odu?w;4acv+G-XSEz??*K@pMVg*-_RlkEqA?&j|FapU%H zLyD=RS}=*Vm(`a5GB~VCeW;MFK4>yaTtdR#_H#y7migo<gS-yDPN<U31K}-?f+{zy z<Wx$(x~Z6U4qc{(j`nx@dBlN61k%WRTF-aW{skt0@{~~d|AV?Ql-Af*EA?(DmHJId zq15S=8xS^Mx4l1k&7E6%`vlalgeY+={Bz|=CBM*o=RtN`Eb)4bwyq6Qmk)G8+VOT1 z{q!pH!V5<67799Hbmb!YDvLSa9#g_Z76budf*WhxsAX5}^(l0%TATIx+P>1)(UC`- zk1wNq-hM?zrdU=6*fvVYZ~y3(kmz)BK>btDZLikL-NNtbXLR&Azp|?G@x&g+n*HGU z>eRW5&zys)G-t=ved%8J<_K%4X*mHQ1e)O{veWeMi%oSNi#1aeTo8OX!r~_{*s4l3 zum%0cULp)njZ35>cJ(ZRzwYObUiX8JI+zTwZOa>3(nct+LX>jVY^qI^%pMQtZD)$c zmT!ccKEIBQYaWE6$lYKMxojcbOSuq$RQ0_0J8zo<giB|pM0S`!ijmlqR;{W!eZ8V* z!eYX|JnE|4=`6%mcH||n+KG}fS_7X$Ip0vNK9^Cy?mtjt;=o>zJuQ+v2qw<EZaWhb z{TG!?l>@KDU&D|ed;<edC1AdMPD@V`wfY_C3O_*0lH{R!l)-(V?`IWjx5MK(-j~fc z9p>j3gAg@F))99S%R}~lcV}4FX4XApdd$xI`1pkBvN^_?tN|OYfx>09fdUGX>yi0s zYff)j&;opj@QC$NlY{u@e_biq)Iw2@yNrWFtD*pEptJ@44Am_Uw!H3Cw0>ay*ZkR` z>#R=6?tVl|nx@1qKh_8DeYVsJcvAxZKzUL*BnE#|jy|CfJZBhBwQ`4h+c$nnMMn8X z&~ohyVvH-Ku4Due*19I6fu=(-l*-C?6%JpBmX`X?G9nBz$bKs&h8Cn(-G*#f@O_9X zxQ6KFCNUx5iy>rWq!PM8DI}6X%C2S=iE<spZT)-cKauqL|3p&NpCJQmBpRj0st4cO zr|muLv9GS>{5$;{W;jw5>8*fJ#u=`*7(t;@ew+(VqDL~qM75bZLCOXP^x&8?u~@%6 z1vWz|;#`^`J&d(p0^oHUFSR?Z9S-q*&c{#H5o!y=p){xEy!(>^cD5#zzT3`^<*?ZK zh9rGyhRbXJx^<s!e034{I9qHBndqYCFzI?qEM{c<ve@SRVXAOK%^P(hc!=A3*FB#! zO-!3BSyh10g?LepdSw=oVaO&RjN`7fI7h15cV!MU2HI8YcduDQ+*9s5MCmp8!zSmq zqD12okFDZZ@JkLUlrrNMO5baQ>4PT%DF4&}UV3`BFoZKF;Plc^bAlCbeY%PO!ro3h zj_XEk{VcMCM)G5`3#BP5LB?}r*QlSDX4ce9)?2836|NaR(^0R#kp*&vE5ZVCc5**` zJ9RZCn$V>Wy2<th3%%?*z1-w(`uJbpc0Fd3Wc#1CiUVq;Fz#vZkcDxDu{VA^rPxzP zVJu09$J%P=Xp_@gljGE;Y;|n@K3R>z^n{FT{%$q)c=lz^Kd1KA=60vYI;549*|`;k zt&~V+7QT`Nym=w?))oxoqj4&-Lcv*n8gF#c?;&R0C5fSbRy=;pblLt!jgP1N3A~`K zOeIz=%hv|Tj-oEpQq4yMESTZlxL=;Tf>>@lQg1nzYHhh?kI4&M3kI(&>?2xV0|*tP zBw|GC2Qu>R%&AG=YzfeKKNbo3qS!gUa`f9X&ZDw_^_lqgR;OWMLx;rDY?J+Gw#ubh zb%C+3N=DHSyEy^%A9A_wC)+7{wbFUoEV{x%k1uxi_GPnimaFlSHIPn?Zt?v6KuV|F z-bOqM-zB@^^Ogq6@c)`Dum9I%L78yf8F1BjWVo_#h0jF}n3E`FaDmLMFFIG~88u*7 zCCI3{G8ZA$u4Z}ns{)z0fTEJHTSK>D{tAlyY>6D=y(HljgPv2T2u@JAm4*&)>ZifJ zOiNV`i6C`8XzmIWRn_zCOJ9@di%W7zD9V=j%hs!8HDrKw|H$l-Otj-;pIn=&(7}^Q zyJy|`blef=Qo}}`c-wx5Tj0ipl3CIeAI{SLn-zy@AV8Jh;c~rROVvQ9{c>E`!U|fc zT_j+RU#NWuC1Ta(QbC@00wRjO{jF@z^^#bh8engBS{pz7kSKCt+hBE`T*{zC!ZmMP zf|}yKWanTzaIw>H+T}apy=Am2<Tbud^W6M;W90sL(k%Y^Yftpny8G!bzkl8Gq6#oz zP_Z=4V(Y@^M8D6EOGL5HuGQ$%Vh}}}!QY&yTP4<MeR#{bIk#LN7!u0a?jvkxYR32= z>(*DaQDq|R#W6rVn$EsdXMexRm{sSx-P79&yT3Mj9ba@%HS2Wlg@4#c3~*l>9v;5d zN+E#J<_kZ6@NiEhxxT($e$T^`Dpxf5(knTc*|luTW2!2%7T!$B(C^<-SYUiN#NPo_ z3!@%uh1oc(^7pM+hoy3eAM-;ai=vD2tHO7t-Fe5S^6dGEMg(K*(|+b|nOV0<ru|vq zAbeMvG&-eZ_C&kX;7zdfym<h)x;3)cC{{|~V?{5g34C2K=5Hy`bw)$3u2D*BA@6I2 z2H!nZA&B!ta_HlYJk+svTu~-K`Odp12Tof+jCL4o&w-$`KgCw&sy3EG@!}fYF{{L> zO~(7eHJHv}0^ZAV<KWp+TLa{$1FlnsEpB`pq7sej>^HIo>m0qKif#@%64$-@GM+}H z!xd{{v1RK2(ekDLcg+)UuCfnylVF5L6+YC+U%<a%G@Ob5l%3HSMW*xhuR{dkw!$X8 zBd7E?7grH=vrn7~7vE|iWrXx+1$y1`Ket2lDzZkW>bgXB+8;~W+a=;ph1hfSpp_}K z{3VI`-7NBYG+T|+8mTDNJd|t;n?F**l*(B06e*y{G|-!gm*Z#5B@I)cgx2h&@;Y8@ zPbcOymBJCb!wr4y?OL5meAyDOakOe$B$!M6R!y(d7HzxgURdX9;kPO4vaCPpI6b?t zpbrzhUG^1%KUL?4DCkuPMECywuWgz%T6@q{^?n8Z2;F}jvMd*?=$_z29*|U>HnKw- z8e3JB@XVO)K7CX+x8%By!bf&4!;zku^PM!2qx)%^v-7E}{4}@QJZf#sE!UT7#d|M% z5+ksWHQ<G4?XlNGJf_)kHTmf9SjzW3ofO%033^#R!Ld*ji>BAdkceFm{&Fn@?Szr1 zmX&AeF%+s*8PQIELjFSlT&?xx8R>nn2ufQJy*D<Ug=Z*EjVg#T#8iqQRx0!nOJ{u= zvgy7%<qS9<g$0N0kDCY|$Z`g3*l@I*ZMMIjq`ba(rH%A2XSYWH^GFW2Ykqg3PA&WS zv3!H^q};ispdlJsSluS_B`?!rPkHX>4jIt-orP3szJvhL0$#OK+NHV}xvx(o<KD+p za)I~2W!9#Z@*yn-$*|4+ck<fv%G$Ve9YH%aP$Est$cbHO^s^abtyghAhhT6(Gl3+5 z!&uI)DAUI>y~!QUmawYl%xs?f{pQkz??sy0dEWj=hb*dZ)g)RMJHIQo3hfx!7>9J$ zyJL56(ZBI`pfGb@DlG=AXpu=Yx`$sFoIgE|{+^5bb=ypI2`YW#INCp8-h-NMi=Hx} z|2%KKZ86$4vJ)@q9X^i_V_X9!RM|Y-iTFM*^Az*(D(o05Hwszdsjv^PVIVg+Pm4ZV zf5K-<fu#1^3eEl$#jRl>{NREAUD7<F!0#_=Di5iUdMh3m_7aZ6(a@NoJ!<55z3o(f zfBjln9EHGe`=<r(pxO&7M4kUYYy!pq0oe`6Yl(YL+qdCL-=@}=TitEl<Io4-;YpeG zsul4w{Swe8!C!b5%Q2HB^B3S@?o|>yuEF-#%tDa;p07@abzx=3CZ4_~B-*VgAuIY$ z;oxG%{q?-QhMIb?<s3!4+U_Dbr>SRd;fIr*zXJ;-mEFkh5!!nS>lqgiogH||Y;|uz z>+8e*_rZU5?)n960!6Q9=PL3N8ZNVot4vi}mk$j)v6)*-bjx?h#vlO+uAL?Lb>ayL z@gAzGs$-S9Ea4iqwQ4HYy5)1d(Y5ERrN4h86>M#>4h;=Wl<Ah4{F)-E5(5oL<A}<n zq-aU*R`pzc2lnG60#>8kyz%8{u^ZpDN2<@ucc{MWaD>>@V#Dne3non4rGc)ln~800 zKE&|D(yb^4I$wM2o*z(FYh1SI=G?{wGpQi!k`IIYUA<3NkMrX00}t0YtIg)NB`%jL z&EPXCWSTjvR<M;@rSxOxh=fp3`6s%BuYV%nF%D*Wtu_AuYTf02?sc%!a$C3etMtE2 z5<ul@ndS}^u@V{CA&2aQ8&^edtGt!e1MKchWrW{5M}-z>6I6Sy8pfr%1*bVViXRe2 zbMJ4}vYR)5?lhS9!nbY6i9<KC|E&fBliym6@5jzDeLcSvOpT8RI|XcIuK8_$RS`aF zG|cg$6c7-wz=C`y^Y~`xSf^p%fI-3NPeS-C4C`>Xcc|{lkQ5&AUA-*7`VSPtse0VV zl*6XT&|@PEmcjA5y%FQ{s(~3Z4OSSpCO=ZPoIKvb3aDSshV+1*?uD0R$H(p7xWjwK zQvTHA9;o{U=d<{|l88A(!<#;{)UWzi8swdqGB35;DFygBPxum7nnDc3>}ec@_fov< z@QaT*Qjje-{depe57oYO99#`i`KEeb1E(0i4Wq1Ie`4TM%3Akk3~NAZdwDxlvc%Bc zhOJeVgQTjwZC|L#F>d4GZ62XmtV1LCoUwV;{YLs<grK-oSGiQ|9%6Q2QJ;QoMf*~9 z-J%gMMy0Yt#+ZI$inp8{H*^sdSI;>Y8~klA<ZXpPw#$jV4n0F(t#uklcmw+&VO+BK zOKzYH^p&y{sv^@aD!SJQJVKdDz#{~}EEG7Xfz!r(m%CWpXQ8QY>p*if?Iup@gdu+< z7}!Y^W$xj1EDb8|g^`7!<q`$LL#|(kH2t_T*+=S<;4tYA4oiP8&9(Z;#6Aj@@Xz-d zU@DFE&3+Y@*DAm&3#SArL}F+3^8i?4%`J6r0BBp?<Qyrs{*xmT>0k)Dd88HlSw<|0 z#?MXqAF-gkjg6J=F30=e+{}!sRH}fxjb2~{hd-+60fQ3p%uc$QDp1j&iasptDv8|% zcXu6(uvW)ihWqjG3KH>>VcEU}zx@S$?CA}ys0xv#Smj4tpw-vTrM#|E*3(xaH#$Ur zcSa#^lla*;NFRhTY$lbDPvZ})XsBRKoB$=j+KyD0YBoN$0h_kJV~5&g=j0e->SO|7 z!Fgw1I!+@Q1cQ;0krUMH|NP*Qb&Ndi?eI72_vg#?P@D;A-}O#gu+m~4F0>@a<ody$ ze6;<?CM2Y{RsJwsLOPFU)}Cmo+Y84G!{?gG79)=+Torps4(W|W=qlvwYV)3ubkiwF znqFY3<y>Q_%|n>{$K(OZI#6;X6Y2Q)_yRI2%EKwECv2$|{xf<_)JP9*@YlB^EWCp{ zl-W`#>tRxG{TtLdNJ9bVv1UI%j0<Gf&zZW7HSf0_RTt<mR%guoo4Ev^m^B_Kw7tH3 zzA}6DV5dfD>*w!s!CLYB_c@AD-}S5~*elozi-`C*&Nu*wvCT@E(P=x7<Da|{?vgFv z)v<$$tL=P>e}`g8mP1wOd)ju=LA`q3<2@kaNsstbnw9E};M7ggoara?Xs;H4gr3xO zv~p?B7pG;$3qTPY5?<*Jd@Z{^ny>z~hd;}_g+D*gKI?_0UcH9VL-K&OZ+B-5YVUAb z#(BLnaL~yZT-y=kfkRgjoq($ZEe~I@T2?3J{dxN~<;^bFmGkFpr4Ib~-@?CaLHmEZ zwu9T^>|mWFbmAv6lQ7Vo%gQGT5~$w?F>XmGzZr7D1*#J`%eu6yip=XJxYCo04+j5n z8#$#6LSJo8dtczlj$s8N`1?V<m_BH!N*BYH6Qc~gL2H+Iyhq8=$tg!X<o&Jk_JY5@ zJnz5wYnSVl=rc8UBszgo{Iw00vU~S{oYjF`%ic<5wV7QN^8Lvs<df4%jZh(Gjv=06 z7+V>e(2rfuwEdU?m*glEjN8Mx@)CWv4>Y|}7(K2)Y8lF;x)R}gkmHDTiD{JaCNLQ7 z7x+{K)nbOnS0<kEzpV~@zM&MpZ(DENicXTE{B3eZU^)u$Ydb(a$>-jO#m{AnI0;_i z=@ir=g5Q@l;pwRkgytTF`OumZ2Q5iN1tAAP9Dma}uy^bT5Sx?Hpw$H+RFtlbO@AHz z#-2ua1y@qK8S#QZ3ePoEPdlmGJ=6)8<&vGECMLM}#(O>Z8m&-<;NN;~h!-J+1BJ!8 zBMUE_Irc?j*;N5y(dU27jH1$=O^Rt3XdXQ0DW9C?gw{<#9uHrJ2F-C*>OY3?^>U;B zLK-%zwGcEzfT{AfhU06<d)k<{FpnV(rtXJty+Ca6oujwRanXtBhM?(da)o4vVVFOl z5%RBK^?l~ziciw;dma0->2B~v3`*ao-E!Qh#4$kJ@QFk;uq9zBoQn3uZ!$)90bXer z@qM!^BJ!R0-#yh+zGeFnXLAQ~?_^wu<-heuyCQ@ex$(1bcU);p6FhDq!4zzmDAQs5 z4->ohBPB{^D+_IMTuerUZg!S*Fp<;2)oi(48GIJb%MSXbgK_l%?qZ=<ic;{mUgbzD zvUB3NYtBgRELLtGDS`B#j$I4r?%j%gpk9Knko+Qw$3F@>Vb{Y#wF%LOoW|}#(R)7e z=w6!Vx+zESSc@bE3Hwhaj@GF9DaEz)b1rhE!I@e>E(!SdUrjUmp^$>$>%9!KepVzg zXP$+rK(-6WGUJ6@r~2<(0}>5vI5Q78Bvj1`J$poV9KS~YJ+7lPP80N?S^NeRgreUp zScgA!IEfm10p*)@A3zd6kzw{6b!|{K6u+5@uwcBtl?J;|sSrn&*gzxyR#E1UKKPJM z!ZY=_#lb@{)q^kLMnK0P9?%E~1WE!0NS3P8utRl{H$Xp2<kW)9sOO26E|ZKATLk>> zaBXY{I={5;=put`vRsfu1swCFeSKW<b2iCB&5cpaajqqjYy$&1Jv?tNZ-I-}Mo=z@ z<w=@YyMw@(+~b!w$N*X&1P)%;hJ&SSK3i8hlA`E{p$MY@5be&o_E{&K*g0iDzRBDN zY??5e0ktQr$s)f%k@lt^e<_iuv>GalGSW@L6aoT3GDsdRBuj=ORY@1DE-Qo!>lEy+ z6dnD^8kz_(vh}8zOmL6uww5;VAO%aJsH39bh@_rWN{Z_nHO4`#s#s6|?XPkNwL^U8 zjm5>~rBJZ3(R+yfS;2m$Q6N$j!2}0puJ~Q3_&N;Wb1ptOF4TN|IfaRh&}fTZX$~>_ z+-*c2yuPdjZr;L=`E@uPJFipbCvJGx{0oU|YLB>8XZSLCb6;Kj)iwnCba<-jM61EZ zDXr;*vN$@jTP0LlNkZ3EGF>wey8_!a62b_fTFe%ti0jZya$tMct`y)U{c!g23&~e^ zLWv4LC(r>H!M`f0!>z;UL(|3ay<Q<Lucoljh-1Hb^F}WUwX;3{PM8|Ut2XxEmdjsS z=`XZ79xDCx?N|@(EWd|cTt!LY6(^(zwXYjku~c%`SS1wJz8(FTiv6DRiO1EJvvWsp zwIAB4S^d?XxY7Fv;9EcZuSS?LP_^Z}Pcb3JWQQiWGR~3BWMxnlsxyK0kLhu1@dnb6 z)7--8hw(97IUtoK`p{0gNZZ>pXQlO1@)Q!w8~0KY9bK^?@*w@f$l-6o#H;YvUL>W( zbZP+UOLokx<>mF`-5@rd0(ve+5U30^j)V(hf`@>?%ICztKA_>!tqLQi`UF&bN!b#H z*lP5^kfHE3@E%C(WFAOCL)<NV9XA5hP*hi^5>}D9Bm)Wx#~MazkZF(7+n^oh7s|FJ zjbg|h;02A&o3>t9A#($%BGNg*Vm-_`3L-5GMg1Vu=&7%J-GVcR+w`I0KT}Yi(dL8n z2ydmyH|_<GK4Vkea){|3NP%7tYx|!Gd$#nyxmulZnj7GYtDvAG+;v6%h@j0`wn&De z_#;dtteZ9zPJat>`Hrt$TGJcR?V@(Q2~Ux~GDUs%R3a|XLKWFoE=kuTy8Gw*S(KMY zDI7fP^H<o+%uJs)%N5!c!7{@9P^+ew`p=kU6c@35-EUu;hQS00NLXm@*g>8RC_Mr_ z?;o%Z!}e0c^rzPv_O>X41H$;EGuKx(7TArNTqU?4h~eWU(|f&rBfK<i^!VeivsAns z7bO!#FSt$?GmBUHtjiMMwVmjFAX|7t?qX(}d*Iw)jR@cMA1?ld9qWs!@YXasCDQxl zmX;_G5(L9zQPED3FMlfpL*u255hkz@h@UO2tiqV>F9O=UBPG2uW{(mdZ*OkSAye;p z8J2zNZ$^+YFc!YGf|)&jZA5Yxft5H4MN+VhiAFLZedo>7?QG7x<XJ5Kx|Sw?ViN$& zaDEiH<c==O)x-)loMt<lbpOi<X<+(q)=ACU8|?i%xBu6$h50Fn{wkl_*;3l?ds*2! zsczzw_J(>*k5qbOnNq@ccaVgh(`465`={ceeKk|w9Rk=-c$%)Qgny(Ui(Zr<sUC_R zypa2vb%b?ntg$U~br2UJ=v@$c79CBcaF9FXoJk##UW+v-&S%q{)Z7I*3Hi)=1@cpf zGnN)JhcXD*E;mpexZ)u0F_^)NBgIgNH-8IT7JT{()U2FvE0Q8lAbX_$Tqtn!$_;PZ zem(}Q`{A%$oc%h=^;hGVTd4EMUDP3t(}MGj-pggVlU5=<JOZBn(#(vUzrQFZldy2R z-FOyU0P^gctV?zyJ~v_L35^*Ft|%AR@C24Ka^gFQ(}~w7);o$417qKl+k?MGPFq4j zWC-fWJ#0L9km>T{w}6t!F3vB(!Lz<WY1(M7v!GIfjPp4~l8L7a&JpD2EZR`%oD=@g zGx6sAoT>^OS8Sbp<vX&6%@rgr;x-^*yhl6$zNU{f*#rp@?Qg5eyLUyv=MOb(%Lx*i z%`;AbS78}~Qp1QMVn{hlB1v5=)<IArf(MibY)m|nVhWVW=v&4tXQhBbwCE^1YB2c- z12}gYEKxfpVbj5RWhX)&5;K)M)qQqaqZPD**C4zECqb?#(OLK&YX*^h9|q0qV$ima zn=(E8^c)~k>^;C+n=~yH##d0r$wg>Rvo1JU1m8A5p5XJb8676yx(V<gb|*`2w(eKB zIxI#d1qG3b-H)fj`#r(WepIvZlY42NsW+~D1e_5+PqR?>OuG6ObPln4cvso8ZkBTY zU{qZ(mlm&~U8Ry>@yt8^?y@y6Bh98-M`%!*tTIKBy}ybw2oBEw9CdH;vK-vW+4eNu zvM{BjQ?l`-%!UV?jfvg=NpvEs7mgVwxiL1;$PXxjzcJz|%$)?RXzpXJ+QsRg&=k_Y zqo}Eb<WOx&*XsVY%wPHEl^3AEGOL@${!MXfCQY&8-vua=38ZiK`oO=>!0C;KKngMV z4}Q_z0M!6uvFSL?{Y>tQ7cy2C8!$I2*eCGC))o$BGx$hENJzDL#q*NDJ_{JeS%STs z`o7xljHFP_OhiNwvr&*PT;L=6<mVWQoky!p@^_u{0x=mgU4e(C#eR44^OTh2!uL1- zoL<uaEK3ID4BDQY$r1JvLlA^;rnzCm*m}B|Jy7FOp0+!EZ@HO}CXrBHfM2)Fzzul| z$2K8!q}=xMaJ0`TevgJAV2qGsQ%KCTMgesjN&rMV1=jCX2vmHYl%NZ!7`y}qC@v7x z1bV+D*H4F@gcuXA4}8(4HM7*faQmS)9XeB#s7TjCn*BX9BJi8Rygeml%<ysH90c_! zFF#XMi@Z9vD3#yb_n^FF9ECfaEVr^d-wZ_c`UZ19T%?;JmCEu(aml=6l$6Y{3MGnQ zT4k;pLdzT++`r6y75Ti@6^exmso(ewZZFRZT6xo9wo!?(|Cbb*J0ix<j1+xeZT*>U zoe-u{mpgKbIyk%i^SDF*k3wkuBkdQ2L5e7swbz$M<47QwzIFo&3v9ZjIni4e+Y>#u zO$TyfGjoBA43oD98P+PqpfAhri>-K|Q^__#;=14eDyZr%-wKjl`S9i1{o>0k#7(L5 zu5ZB0LP~;ZFB*~-l<Q`@8`Un)h2`tYQ>4lFH{_34rB(e`3I6?GC0I{ckvX_HV;l&n z7|qUpdjjc?HiS%}QB3=EQq_L)to;s|)3*zCC6pTjBbY;1p}?u(LYq$R)Oyk_E5nF2 zmTQKTOOza{{!B_v?(`><znLyQmKYlcwu?lGah@-GW}Lo&feCxxvaL7|0v=`f9ugmU zZjC-Tb=hptJ2;D5fQ#AK$aY`z_bSerxT_xOj=FFoL1(th0Ml{6ajm$HvL8Q(-{R(c z9Dd1*JEmq%j8F6$hzHl|I=ROuCK44D7m+CIv4|EF6g-a!oOTDUJn!WI>eJVYAW2UB z&WBlOi)H~Z=*WdS_$3%opKt%P9fnQe0I6cd<N$+{khDhnaKyhqz5JMX60S7y<#=AI z?u->30x3rsq?+qE|C*Wh1$<m6ApFFG!8hDYsg&`dm=tfBe|(wfKu|&zA;e`o*gww< z;x42k9oBUA?0`u!<HEDpu(oh?{G_9UU+$#ebQ~~KE0j19Mk^X4?!f4$?)e^8{1i(4 zggYb(?ZLq6lY(deD1(}2bALhfBo-Ozb>;#(!XV+;G)Y#;Y&sjC7G6E~1aw*M=d(!u z$vv@KZ{%S>mn}a4Ry-F0^V^s1u+Ce0kDf<^F26Uvle|q5ajemWNi?%)RGh#7ePJYZ zK-7d};6N3|Dt`$WsuSEoZ~-SYt_^vxEQCCZ-D@*Nj-r~_4{ZKj7i;V<mJ8;A?` zG?io>CDcnM?z@s>$(W^o|4JE5^=NY=@+N8Dp9qX^Q&-AM)Kfpw+LcO}#=-l0l9qWb zy9iG(4(FEzPn6ltOwFx8nbgL>@hM;iqe$H)CLrBm;D6+cjgWexYLd+lm*?@*FJ$|< zY8nk_N_1)YB6FKU<-bcf8jzD8FeBHy)6wzpajpTY#?7QNTdU94GZ&!k{hz6Ep}@)_ zzqaeYMhkt&PH)|ZB?I9gpcYA5I!HwKO=C58_bsrFY=`|2;OT}iDSC=KFGg4oBFF=z z%pRBYyz|0Q+{QBM54<OQsZ6|gM&VcTCH?~u-}^@>M<#D0LM3}+4japrvpF6PDG`Z4 zRPtzHgf%#ElRyB}LXFF1wY&SxXIq}k$v+AFB2Q-%E8Sm28JRSRh}Dfi84}zA?vUej zv6pkTE^}Acy6*R)oeh98Tfh{9Xp9y~-5r_(Z-^nX{jL?|x17!yZXy28w^45VGqf6{ z9MQWorjZ#v7=tIfGaHD3iEiO*kV|lr<iAJE%0qUPXLwUXV>f^Z%sR&-r1)y4-6{e% zIZaJi5sOkkHTkD8|9yVj+JWoS0$5}SzCxSZ8eEJ`LwSYCJ3DI>P!Rzil!5pmR*xJB z2J%PrN4wRfvmQz~0sJ_xnp;XR1Bl($Xw#cSmim~q*I6?6rM>%6K8cZyzLs#`EvdS{ zlbDS(|F-*8?Ot#_e()KW6ArueN-J6ew16Bn@LbzRPe>24|4JIJQK$$8bt+0q#lc~2 z<>lpt(H6jsxb6Pg@`<)FmatC_VnMW{a+-Q6%=t{1Eq9hZD7XHhAy!`A;&{yXurns^ zh8<%>=d)*ax*vG@YVSd{b2HhlZPa7#Oas;x_|2y>CTS;CvZUk5vD;I-53pHt7yq02 zb)^lt+Fx|e)vT3AaC-pKF__jsW}*@DzGoG&UxayD1Xuh^CFG3}RDI>R=S${UohSq; zUIX+hS@~NVP49;S@ARqfeu4bYLJ-)*t|k#Md3r+!z0@~AT*1hKJtF(?^7M#hQC1vr zZ$#j6-{Rqd_(8SSI`O3aaA$o=C=>5M=NY^Xq^Y)CEJ20v22X@N7H_DKmKBiY3#Im9 zOz^AZ_du%p+Dja;toEHR3S0v2(|oqG16)2_KV0(R^#icbpv#8CRu-5l@$UQO9?nV0 zT@o=*jI^$eaG_l`&Ny{0jH1b(%cf|F9CsRI*>#at{l54ioYU_kG+@}@|C0fdB<fwC zo8+54z)G=5>{R6P!R9T&JadkL`*=v6fjC^Jg<dIV`=Mw%?|sVQvo@A9VS~7>G}Ou# z?~9*9&uQY<FhPq31KR3Ov0m6*tTZN|tYz{+x}Zvk0iLo!5g?~sR-wRus3m9!d^P23 zfT~{h;=J&Ri^p*yBE*JZ-d$N+mF|#+?~JBjei;F_SCKB?-r@kWim`$ioVE&qkImG1 zGiu`TtJhUt^|ioiw^!MJ%}zEW^W>{%U|{5|u={DW+e*5ky`A5?IZ6~V=1^4x3@+8g zOcsk>E4(o0IKmZ$hcNvNdI)x)<Aa~TqLU1Xmi4#&oowysXQ7<uRM1t{6efn+BQ7A2 zj!i`&cxb#?>R~}+SVxC6u0GfM6clov5b$<UVPI0-((o}s)7p=Qd9@fhi?xTiZw{qc zv8Gfnid)q;YEi*``Ccmr$NkTPa(Tu3foFP<C%22SMTujeh`rW-V)oJh8r5jfQZ9Dm zkK73ENeWWZsEhk|b3LXgq_Gwwyo<g4ucSQh2jJy_6tP)Ql39)WfCGAAj@wZqnT`Xm zZXT{g`O~cNnN(5pNNo+A)dmc>n%?CYLTKTFi0I*gpI~CSK#MU%($@KrT3FonUh}?x zX$kVm!l*8NIq4?g`~gx`ah-J}w%d>@=|){|aByf+q;O)MhFiW9W6NZmm%tly*x6s| zBntBNi9XOG-=Er+J{;gN5H2j{A+RPzqPn{Wq+}$uI@^_@TH~2{m4mmSJg$lxSmcnN zL?z@&R&&zruWSsE(NBYZ%}TiKJslj<i~C2xw_GwPAB1*`3{1Cdf6)I_M_SkO?fXQv zW^zk{rl$5a_@B<Koy;%I59Wvd4P%{bG)uC!Z0+BD!c1^@6QJ}3Wn%V_o=2<)k{*Fm zj3ob;`@Ij}BT)kU{F1A~kE+Z9yXg<m8VEtokT$%an4|o)_10Rtkd+cZm`@8$n3B`0 z&>tKM(G6v*Y{7;cGUbzL??Ejgs~=Hg;Z>>0sVB?Rq06+Pe#;2Cd8%9h{9fA^CJ>`& z9b?DWW(4Ya>_NC?Y*&SRI)2wvo|rsVa)_a&C?sUiES^3(@78Kur9ZrrWL0K-T7r#@ zeN0M`mFYBiEsKJ!u23lA!LQKpI43dhKvpRmCw8wI=SJCn;MQRFn1yGLO9xLqSe(mf zrEH+dot-!vglD(-UQN;O4_>MM$#Dr#y#w9lOT9@xL6ifPC_>H=q?&vzvpH!b{Jjc) z8DU>0`a}te9Z2YR6IWz0{1S~s6`#$il<5<LGe@)vmeE!l1l?IHkuzp5hvobGF-Jk& z-a?-ZMA9-F!=8!|uqfZg28#NzR!_N?f%P_FP|r+JkbVl!#s_MFVp$!L7CvUI1NuE1 zE>y%>7E$p1JxhJblPN~V2OUg|2OgR#Q;9SyLTuh`6rFiPEI7EAccV-b9Hswss*QWX zooB;SD%y6E3FRcpd@ACr%zu2DLnynR3k37x(xJjM?q-si6qY1B5qa)#eE!|8b?3yl zrl<vQXyutB8mw55k$z91kNf4e<qNV2QhmZ&l+p;o^LO@dKJ>mlc{4P_Bg+1{bfVs^ z_-w+6C{OSA<JYdDH=eS4R1@KW3*M5QXK(hI7gXS{kxt+xu&Qsj>EUB~Mc0P3NlEEa zQY?+V<fGw#I<0lFTOoYwLf}f=0~X}UwT$0kM<=f{bicklhGfzHWD!27s2|^*fcuNo z5-W4?x6&xNM{5?Z7UQg{K%8m9#1;3a_c7O#s^~T5DsxaV#h{=k)vUnCw^5GnV*qJA z3xzq&I`|eB6`O19Jw7}f`QDtGT?4r~mx4gPz!XsP|B8RTsLu5{qHJFCDH;h<6s0dQ zSZ)2?=+o6kHnyNp6K2BI!$krqfx2@QK;9;igTE#ij5d@ldy6*z7UqhQRF~^JD6Xyw z+M;qh3wZyAN{dYvATlN_0Bk5X`=Y_EBe&m2<c-JeX$E6CdxB54s{GuJA{$Pql~Po& zV@(XEP5xI*MSR=gn1q&3yjA=|#qTz!7nq7;NLD_bTaEl}3bFntr0S%`>P*a)>L`8b zZ)IeZ^2j7V3)6;^={!SUB3jPh|HWo%dikxKEjvgc_k2b(e+wTS-EUBfa7U%Q7TTkZ zg;*U1NAp%8TIQX`QJ%=HyUE<+7jub!inhq`<JbBK4;g<Hduk4hV)+R^L+ku}M91J+ zki$hnUsbKBc3K+)rgvQ{><fLxT3=0$IO{SmD9+ydF2&2Epz|saSoem;2_Vms42J%H z0BS*%zQ_iOrn<D38U)(L+JCg0&onl){xjQIjhA#1o+A|jlkn76!?R$QWs>DQ0eAt} zHKQnivvBe?36vOFXdigj0fN<#0FcIcxR&tfkt7MccJys|mo|np2o{`sc(ThW!z7;< zEq2?r5}+!^9g;DPhWH71x}`5m;-=PKbkti6h&qFIp%%^FR!f&G-Lm$abH3m|+qQk@ zDewD(|M5rHUVH6jalJ`XhxXj|`pcSgmvzmj^*ahwgE5)#;>~x${(>O$h|f_60q{a! zArYi?37q^hNKApgU-T!@*^fip3JpijmocZ59T?S!F~IJhWHpA;%)ys$-@fgvB}<pC zuVaUY<#7=elvFo)Kkd>k?a~JB&-U_6pq@P0b&Q^*dp(hQCFhnwH327<Vv6ECFQP?w zmjHSJ8iVJHIqw3*o6K{rHzRPleXy2pU!!<ls?kw28>5$f6OgGuk#)~WvmRQ2VJ>G> z8(FvkGCi16BS1l&dG3VPBKH=ZZl%)*c=h02G|r8et94NAYTd3^c|Keh(twg(Q|c&n zswReodXK$_-kwXSDBgqb4F%N4(|ruUO8}<N94UP9hO56OpfP^D7!KmemwE|+RpU#I z7WMYaIRe792<Q_~sB{PG2g;|H{@~xC0!-aKP|6BC&(Mg+KhH_Gt}3ws^6b)HLap$9 zN{&`uz3&HFvH<;fyrn`H!aJAU3^7io=&rl&<mUp_Mt5t#RhO)^9sEoWKKLL%FL>#o ztstOTdFLB9J`&z{lM^$cJ)o7ZI``oGD}AG*ql>}19J8Cb^!OZ!qYz-capOkj;p;ef z?6JrAy`oOw!0*_xBgv$SOv0U=W#*b|f~;%-w;qND+8qj1c*cndXx_J$-K<tBoJy7Z zA^J{~qu=<=-~7+-edpWImZa{EJgw}y<-*hF5|z*Gpk3n~G&+@|T;6t{^u76asC`WO zofz-tC{WPu-=!Lp(#JH;!UCwRUqJl_#^a@zUdHVWV+95d-VypGVgN=*M^_#=u>W`7 z`qsC;gK%$*r;t?+3YPB9M^c(eZvmu_Z@cZ=<ylqQ!2Q`*o=U#>PXnwUiP(5FkbblY zJ0$6go(P%ph|dzilZq8C4=#mBK|-&X7gBiZ8gbM>uvasR!r~h4ohvCASKf1)mLeW; zB2i7TATb4C;r>C%1w{ZR&Q%FF1LgX?0%~21HQOPyqfLrXgA|QZj-o(QuPH`?(Koy| z+JLA$lc~Cxr(Nkc8g!|^Shw^Qa45JIBSk>BHlqe@;+fT;F^{lv$~E=8JqtY1nv&gU zJ(f*Uvqt)7&^k&wc==4ILZ+Lo$LM(yu<3V6R2EVwIhvZ@8y^5pUhdC(+Py})Cd5I# z#mJH8NgD#j#W%fgy`Ow)sp^ed<e$SEO8UDGW<1uS3MjrvR@5k=nSkdFk2`i55ZnqN zy>H)m7z;67cir_IxDCJzpm^hrH*mY`-o1x*?SfiNnUiUu{lK%|v}tofIl?moa3cT~ zbR5J0Y}l}Y>wx}n>#e)EO(fY<lcgNRGvC264#<O`3ONT3>|;H60pYVxU%FF(09Ek) zu|qIhscGAU*qE<=?VIno_IuxD(0<lg&pGt6OZwwWPJ3idF*iv$rpDM#mw4H2oWo1* zGnlG3UIRw8uj*L!HkcT7+TUfo$}WRYs=VrvD$Iz)ta#~hJODe|25|u}Y$hishj4r@ zLf+^YlcCfH^9x+?&WOw`ahNxoviql9ljk{M=yNuw-~efR?Azs8Qrf`%nO$a^ik|2c z6`f$`Jzh?H_82$gAC)x|JsF<&e6c91DN%znDm4M7uz)JqiG=H_i)5qGXy$XdLN1r< zYdVjnO0~fwC<+at@PczS)w%{<W&u?zfaSU5D8~2JOo+I*0A*Peg?}nQUZ?@8jc!yC z<DV;S#&5M7m)t<6r<tHASe54x@2@_ST|?<I0(^Db-Wwe#8U(7rypqF8x%B#+0#d}w zDAJ26hbQUZEqD*@pk71UeGsm>-d6){^*b0=8i(Kmdle{Zkg6F!Vpypni?kJhw%2bL zUVX9H(Q@}fcMb42fDsG{<&Y~NH`NZ^p)i_^8CIflqwVGaSu47X|NY72Ci`pQ-62R7 zpbvG$cmQxlvLr}3;vWje2oeziTq9#CIMvYb2e|&`H^0HhAY(3Q8|&7s<2Hs7@W2D> zXy3lw)YS!b7$`9{Sbi0|K0<Ypz7Nknf^AVGaaB5b71~-g=w~ZRHB-(#j0I3ga4vQW z0CdHuDDn=%z`%ecRF)m1=pR1%_x~TLIluO6zy9qHeBgus{l1&N__mwB`kQ~e_RPg} zXd*|IipW5EBQ3OOVkBzTULB*-&yk^3XlN)N;LCN?X@GWCzPlxMO204FdzbhLya#}G zJSPHkVFY2<M23*ehfQx_bHFNQP5ImL-gyq!-*qm9uO5C0p(r&YF-YV;bZnmcc4?Or zzO;e+Gq;>59`)n(@IT%ifhTfai@%TTD1QRiPnB{hPsLJ^nsF3Gg<LZRumc=)9Blo^ z9A<phh&!5b+=)O|PmusMKml)0Pd^9e@jc3A<^ZF3&}B+1<`Gx57c966I2H7&XJ0*m z#iD{`1Mq3UCtK(SjLn-TTyEhjYcuI~y60*uS6pAMdgK)ti@J(}+<KBaT@4G9p^H<V zW)##zy{YQSP4lh=Bny>Dx$ELl)Zje@CU|!54F<rGfKcHxTQHx2TjlwurSzl$ec-D1 z*o#qO^aL{s3>ayW9eAAO-T-<<_Cn*C)r+t174K5|hwVy8Kd~e_<|#k1CHKVWftI=g zQB~P#whVgJ@qx^_9UWtw^hn<kBqb5p3e_6PdMi6P=*s}p@PI=d27#%nf}(xh8^N=c zqqQYG`I0$wH77)aF($@=j1M&^(Fe*Moiu;myqfDX&2qWS9GtVxI_vg<fxbrv7OuLr zPD8YL+X32tpkH=M@;1&qh0cOg1-vT-N>pK_U0VTheJ(L{VaOK4&YHA`_BZX<+K=TP zGI!y9VAlk@8wffUy4!ToC5LwR3S$F12Ke25&O4cbTgMI&4f0k3SSsVIj(3_d?%JhY zo@u2G+@Cq+>EwbR?>XK(-HLm7r0X2X8*-%k9BVy~cJ1Ra2wEL;M3tNpJgZTi>a{wR zq7nhP^GVpnO=uZa{*CDjF}C9Kxj1e{*cw+r-`(9sr=4~>ACJWmpyJS>L#)vb00Ka( zGJc-sAotSkZS$TP4aPiZvKY&PuHI?`{+9aOuCJd9IMyIe3s}v!2rf06kMU~(&Q-M~ zy||i}Sni=-XA6!~+KT{h6b;A~$vyK(D~Dd|Z@Ufxl)U<mO4XTxA^=CV?A22#^|0Vw zJy(=oWO`NpzbXS6y+vaeG?S=FR^ojs2vTq=!INUFKsg1v-H=HHH3a<u;2oY!ttYM} z0f5u2TYhZC+F#lx9RU4Qde)Cxvj7zFyx^m2yK8&|cAm1wTkxo~DZKMAcu=6D4w+O9 zke2MZvI7SGH58qYH8>j&ax7&wSw~+~8{d8+)<Jf2l=7r~xuaaBGuE8JDPC*!dahI~ z#xHx>71v&W{SVIn(1$+sYnNSi**DL5?u)PKd*9bzeB-y@|2Kyp{mFT8y_e%_(0#oD zukE5cV<=|CS=-sMGXbs`#Cd)fXg5_cQr^3rXG&Ch4ei%v2=n;Oa~)-#3ADjb@8F6@ zoDj$7xH^izJqnTiIv>gJ;)R#*#3YG9yOI4Prr^kBTC5RmG~X^Kbn)rX+U3M8PbRnA z_BN0G*dv{j1=B}6r`7k-asE3}9kcbxxqs19@UPW%bzDWcd?Cu^%TX>@iW-$#uF+`Z z8Y21)uX|Fjd@dhFxm;9l#*8$0(RNaR%a$#ti!Z*A=FT0YdGqGdRad=?&N$-?_Rb+8 z6TGb&T&bX1z2F+isNOTtb{4>_MLFX_!?5H@CJAZRGOny9cCi4^Yyh06lxRt-R0!bJ zKu!h2K0Bv^XE8X0TW&$4axLN3s<MeF%LuTuBs20n0$6Mp!o2^eiv%qSz}LEhGNWKa z&y{w@HPY$bl@|~2C$g8?9`bBy@23G7)z4NnA1}M9L4PQ?CY}`(k1MWtDgE5fy_ilv z{dD$V?%1)DlLcuV&0xX%EC%3OP9zrbPcx3<p9cHdGYY>x3)qeRaCCg5eZv3K&yTl= zx3+_|-Zi+?c5-IcML|8D0n`&vH1Pb|f8p_-m=HaA4=mH~Ub5|4%!TZ3AP2(y`9o|d zL9GYZS6Nbje_waBKaK-M1oWFT&RD}9e+^(2wIAW0YkmWL|4^iwGdSllTnnHbKY#ug ze*R<g=M9Z--@bkEYhLr(8$SElFZ}At)6f6mTYvXk&w2BEKlcC4Texs?dTPS$OjvL^ z+Rx``K%X5L=uZ+Q`Ao0sJg`0>JbzPvvKS7PbXB8TgSByeADE7NVV40O_n>5zS0{qL z2YA%Q)CJ`wM5zYDmg|Lg9^|;PJ4XH*q7EN+85EPF9;RE9T07dPy<JZ9()PGN`$7Bh zp8t3}&qw?Fc<*zpUht!RuUd#t#&O5mjw!<d9CvV$^OUD%z7gT40y3j(M3fKSS%QXm zy^(_#9^dMMdD>~G(18O7X=LO8tzNyFlQAK|5*A-@b2XUK0z1{S?7iCpV7=TTiXQL1 z(8|3QFSa?M(jHjli7Q`MxY+^_R2I;y&<OaEt#JVd@_gd8_MW-4w^VfN)ti^5(uk*8 zDFy2FR)FB;6lFI;IPX~wyx$d2t$S@tO=a)1stUlCSOb;N6hKr=Xa|~TM*{;TFj(rW zlp*8e7Za5mw2jJ43gDCP)RPbOl*=xA0SyoDrpd`^y5fqLu$K6}_uj_|itxQXvps`{ zBtD4LfLgjEXM;>V@NN}=dL%G@EFNfoomNHx>ItBYzHSO8v(Y&$(=D{up#Xz-DnYK& zpRc**n<~Z19CtNz;E@N%y}y4>cvk6q*g=8e0O}0Dx5k@zuQHTp4jnqc=c!yM%D})N zopsh){#y+tRW3pu@m{qrDtPybFYv~%TYvurXRkf`zIvlkER{-)!NI}!(#tO0_QfxL zVa?X9TYBH~o?rjx+i$<^f?xaf-}u{eE_%(kmaVw{y_+^~TisFaPmIl(MGR$7c3}KL zjuVNn((lVS?b05g(Sfq2J8%|{;sdOWsv>>G^Xav(U}xj-=wa&a>WmQpk5VdO-%&EC z3IPTHyn+9SRAflh#N$3(&s-3}n~r;9zSDlmxL<xr`l(WI_$uyXH`k{{ZQ7+>PK?q9 z?$183e!Kwlsrdehg7Ty73g~yOuG8vof85b_4rcpXKMVV{M=gAQsa&S6j!vpml?uf& z<pb~wASjab=>i^*1+meHqkI$<nsK9K3LZocJ+y(&J$EgwT)C1?J@pipQ^NuZ899-l zGoY*>RJWpKG1Z{U;E4*!g}hfhO(_x3qslPq8CNhVo;3mX609oVTesh>?gkLki@O;S zT1WNp%J)Lo(fV3~DOvoJMs{3V1<dL-_A;2(25A)*!<sX7@Qtb?N2CKm<vnWMaGXz& zr0r?ma#i9mgF%l~NlV;b^vNx8mF<v7+`!b-Gy_MRvu@q}bpH9zVYL(_7sB6YWAL*9 zES36TUT$e?zk8zKOF#EUmL4PT&+-A-clLg@s4?pK^ZvVI@zNjZ7}RgJ1V!5KJ*@?8 z2OzCr+82!r@rD9`d9f&&a?#FS;Rps4RBiANziWL|N)(@+dg^JkY13nL;K2R_w1Z9p z?>xXU0J>y(1yEN-DAcny1L*2A!9W-o9H0l*Klt{4`}fbhy}PTMN@eVxl<10=U0KJm z-~RSBG&XjaKKjwWd*?s?<451Q=FGG9bai&kg~6a>-8k-+?N;yU_3(A9sEU&Z+WLNU zXHUkQ1${$K)Kl!VKgmv)@b{6B3o@J&6QCnW_S{vgRt;_1wCPHO|1=v7goM|dQL`2` zo6`|Rqos03wX3rO$?JgTp$=b(sCgit%U5|92?73SH}nCZZO*dHPa&T}4Je;$)~hwD z$FYmNiKwYmpunABVor!-h(lnj1iYTu@gME-vs2o@{n_PRf3oiLL_qly0mYB!y2o<f z@ziTJj=p}EJDzKHmOG;Ea!0ey(R2-JVq3q~h~fg6GI1@6qPS6S)|=FTDtZGrwp=KW z=W_XyBu<e<@1~n>;@e+-`Q_|&hsSQup53&0^QHhO5b!mTEYMjQNb$C%v#YAN5k-T? zjL*(TC4g2`8q7Pd;LHN)bj#hcc7j*zfunk!MR7*-)3csu^Ze&i9&-iLS%n<Q=x9_L z1@Lk$QMplyOOT99z`a~kGOr4Nk-B(EN&zrNbrCv@)Gf>Z)gW8cU%ck&Kw$*HN|3E> z=cn7<yxN|6Bz2K@R4y0kp@$x(bI(1O&N*i-t8{>3f&S3n-_PnJ%a<<;^^uqb)Dd7) zV;H3U<b4>gS)W1aN6J|?RS=)qRt=ae&_9-<$*ruPnPQFtNy$%U6bHY9;M)n_Vf25r zO{rAo9Vkm=1&|L<@+g%`9khD&Dh7*CmQll23>>Kw`hieh)cCYIqfh8}YMd%y)%QF; zj&t(NoyT#tnt0Q39t^H++qS0yYE7j^z&Yw~^d;$Mcs4u}=s2kJ{=NHXymO2SFzl!a zid^BMi!Nr5{`J>i&q_L|&%+NsxZtFfCv$Kub|_TJQ`-(89e`Q1^Tj|nL*7fznj(=E zGu-rV%u%IMSCSY@fW0QTlK2h;yW^aL2M>q9>N?Ye(2o1|?K|rS-@oqL90(sbnmLHi zv(G%LN7Sqqi^WDVR?tb2%C1SUyfB9%U`Tc+8ue=2h!554^@%7KHA=-2)f$arty-O0 zyY|eFUv%Mx-;(!Nw`bI@8#{hH{ww_Yc4?OruC#&s&xVKnsqn5p836vNy58{s^6Y2F z(iTck&U*YME01{PnSW3$<eP(oebiYlQddU@6#$kQ2u2h~&F*GggIjN~kS`XyI?H`M zy-50!TiuAti@k>%T-tAa>l)g&Z3mro)|tHE+<fyb9He;BMHePOML@1`a<#f1SgEJm z^UuA<+oS`H+9KE1)b#lz+oJHo%~Nh3`Lvf`udR!`fH##wl)8BDzk1g_-3MMu%iw7q zea%R!+wf`#h_~93ED6QMJnjn6eb!j>#9N@K#ttYQNDT__8TFK!YBinkMt308fKpw0 zX?xjy5a~&4FKtJC4lzh#>gnlY?eYKmukX`KU;1;jfB$}3vEn4!v}qIFamVd6FdzY! z08kRNiMG`sTalGabJWwul^8t+<~1pgJx`hkuAgbU%4eodWRjmI{i%IV`-6EhwT&%M z5`feCuG~wm0idp2{ZbN_;dh86t1dDRBXjCBgIk;jH4}hg=&TP84yI@+(r3_zRNr1G zX82tIuzZg(hPIKhqehGxKR(U`211P{CnW$|o?WCRH8@=L>*0x4RV8hIH6*3J{cNbg zgRij^csF=%e0JV>=TW1vmOlq22+wJmeJ%Ny8eq64GPY`e*4-)p-o!ALy4X&YkJYe@ z#i+mMz3Xn3?0OtzKD*9EazDH~8JoSmy%gp1IV7bEhHD;y{Eav+H=A*{whixUA*Kb? zqI!ei5Ye3siAAwwW<E9n@9*Aw?s?_>d2=s3{q!}rPeb=L@L&Y13;hPctNdG#mrOW0 z(ggP3c4?QNVrc{SXD?uXGQs$h@%dAEjbk~!)$a<j^<OjdvsKB3aic%sn8`PraWq}2 zE{Nkse`UJTU9HvTPEJmB95{Gzs8X$$SFBhux87)WO-)t$D58O8gF15gTrVih#X`O> zmoFBJ#ZqraXIE#v5qCDGrZgcFgD`joSFKt_>(<>z_uY4I!i7Hn{PP*8VewMA#w<m} zgIo_vZM$5k83J5{`eNMZTtd@OASnRay!7z+N<tu&f>gb6(RoJDsCe~s``-Y7$T4~i zdGqplP#_-9LdaBUd|L&M;yHxki^|RcZ2Q+HUSpy4sJB-%vOS+%!H5RmDYx7_@CsnW z11&obCex^??xn5*f=eakGMnL`-B4*3(iJUkzz5Lku7d#Gi2K0}H~g3$d1M1U_qorb zd+xc9?!Nn8{vMuqjRTPPiXhoMQ$Un%l<gDx&p@N`#x1DU$1G@aCk=pBBP|_(s=zI4 z1o7K&dh^;2x?7|Pexz-cGGq!TYRFkotpIj^9uIErb46ObcqvoM?zrQQ5DSq{IOW*A zlINBHR{`ciSMmYfrjf74h8ZK)zocL2Zi|3d?Z;9->EB8{GDAcS731#P?pHo9&nd~B zknl-7^B(vss8u5q$3js^$Ec@v;TZsgg|bsgazbEt0tN}{S}1sV)pBb3RG^H1xQ_<a zDv#ZE!{iz9***85e?rM;kmGaE9}!TGxogFW<<!;HP5bsjs#62OW!FR!MOo0UzBg~= zYk$)DPQEjVO5G)d3fJ!8J!b;Alk1a#`ktZ^DleYjPw1!oKmIe>Wov`@cKNB4HgJFX z%9F9{_C&qwPZT5{3+3flk9#ueawLvB&}BXRJ6dEMR;I3IvkBsAcO1usIF5Uo&1Sw4 z$6awFE>`Qcp@^FEE7O(UMjS7$)~cPgYHiu{)O2UHT3ym;G`ecFdZ|*W6elJo^OeeU zd30<nht%ogV`D`5E~;0js2Sy18WI&}92@1S7Uv210-IoVa(eV8^WAk3R-Q8ww48b7 zS?o;%81C!qWo>r^l?i^3t!c|Jiemh7?|JtNlm}Z%;V_T99j`Kj3ZOh~MZJT%P<pSu zUtksVY7!^^y#ghrBPgB0^J`VP#q-1ETm!rMnWqMrcU^##wyQpudga8}C}eglOcPz{ zK>{T0xio-Qj1E(>(R->lUJZxzu7Rg20SwB!^6jR|J^+>I2Nzs$0o{G~-SqXZf1TS4 z-@oWZFJh$*^atHR&}Ut=Xkqexl^!8rP7EGR;N__>)>ot-X)zwQ9-o#G^!#a)4fV7u zd!Gu}jk={&ECcfDk=M_qZ)y@SxnHe@f7*wPp5c>n!7Httet>7tX4G3QhM2}N2=&O6 zgVcC3V@iUIm42f7<#9@lM*57=Pc#Fq^&6uL>9Z>vuZeBB5K^P`F&G4Rw+QHjL4y9E z;8_5)+*9a6qTR0s7p^@uHJ;1~2xiv0qTt*|9@&^uUkb^KxNl0Il9#-H{|If^u#to1 zk)%pB*)eX!s1R78LA3`CjL^1iTUpfyb-`zd9{_zwV>>iPMEjoZLg@I%GvRzVFz^$f zV{Y|^yv`+JH0Zl90};fRsi~>Hq!D=UGqeGy?(A)smn)q2%-$+zb`9@e?#HpSVG(MB z_;z{PN*lO8Gs=?%*v&n3bl$k%pVps#axzqxR%K}(gU8!{rmj3sJyD>Yoeaf=*(y^< zrT};oMRObV`an$0!Fr?78#QTuqfsx%aXi#$HanV)#@uGJ*@f?#aok_6Rsr4z<2deU zG#c~j^?IpZuVc06?ODEYB3&qpok|6&M@T(goLr?^<*cb1j0he&w)ZXIO#p~4Jd#MK zkjS**I7z22KuEpW$cCu^2a9+*W2k^A01u^gC;*Xqh)3CTS`|=vkFx?SlNL1jNc~I_ z{bboi=Fv8z!2rH_X$=^A&%dNaSDw654@~hzy`MslF`%Z>fFAH_a9~!c#shx^jvh=Z zFcc4_j}s6uqsMEqCjnjh4lEA9C#<rhQ|9^f+<2uqX?;Xt!+?nXRDcMh?Xt@*3tZut z_1w{R;0)_KRFxV4rGp3ISvDZ9ymhIAc+Gu(5Rj^L9{+wV7D2wV;9>O|du@9I<qA@@ zUl^Und;SFkD}P*fGlY`m>yEZnFSNF&^$|6IBtAi>Cv9Krb2<ezQ_ri$p&F?Au8guH zbySbH^i`8U#6969*Xhi>^f10)5Lj{`si)-}uw4h85@9gNu7d1nAycpzycm8m2MM*t zC}VP68P7^>kzFKxC%P*IBT>gIfIjLMvW_M@E_go7XP_i$KSsan@9*Q!=FOWIVhki; z76uaTwRGt+rsAMau3B|6Cz=wvjLf4J8z4r3NWC^$?h|ty`ZQ!W0n~MFLSKf*AK&lY zyN?=;>6VTNKOZIrqs)#RRjhOv30@6-SvwrYE+=>jJ4wy7!cE#M&tjGQdfOiOc6qu= z8@NAnz3Y$1v!4C_NS^Ul$7E5OCnH2HK2vYEigX{X0KsBnEg*p<JEfaVIHODTMxzkN zjrr7U!XrM1qNuk~ulL8z=A5_@cM>({*X#ApX0tiJ*=z!E_cw{U;zpwz;w$xftplGc z$n~DVv;v5MB+r%9W3WKW0t4Wd4e*m@@Ss;0G~K?1Cyvib0FpJQZs9LnxQJf%vX{~g zH{8fu`B=c@y5>Rj9zO3y7cZIestu$H-6b7l=4lY{Sc-?=vWD6MZ|xz^4O))LNoLzi zJ&WF3p9T!p=Bjn>sXNNEHjb@HKx)9G0d(9~gKW*{kn3CKQ3Y!3TuUWO67RNo?$TaX z<1MG<A>}hUS1A^Lr$cuOjEbVF8%DoSS^@fmr^d)JW{i2|9X)1xx*9m|y@?SuJzYr> zIVqQ3fGwy@LgO(bNZ*%unnfYVyxodngsR~|YudxEtR?ReH}AV%N2NUVr?rJ|4>fqS zZ%bxcO<a}U4N}moAYST;cVxQ^o=cymQApb$#!)r<?K&2(AkSdC0A}#ud-bBDzGA3& zqfLWbEqGevLsT0-t#qXQ$onzuSw(AKgK#Z?)+jkjJ2R>Zbn44NhhC{C^)UZPT!_vO z>S4z`r8yK3^b14K2g|~n4tfi~J%XfhJpO6Fx9iEAdEtc@B?-&4&uK8KP+)`thqgk3 zxzkTSmAUR%Ld07?&0hHf2M#1V4RDH#j*ime#fy_Mife=BgX;p=`@W@P9?t;71U3hs zhq)N<2u2k8VCedq{3-FG^M4S)sx&dDu%ia4pZsTE<=UXWU7obk2JR;oV1Fv8Fpr1w zax_4Xe?S)LRE4wmu|ZH#Ktmy-z9zigME%WXvm8-#At)ws9M6wIO93b+>aRB%K&$iO zM!h4Bn+q`4HX4m0auYQ{d=1;%UaC*MIO-|0`Bbtdsyv_u7AgQo@zRMp7pv!zAKK}O zN0E5Vv3N_;A1s*I0=DEM%B5Ac3t5E4`>mcVQO-!G5LfB~s1Qif^3|_?jRO#|SYy#N zp1669#S>Lcym&$jK%yCw_mgMCf^8bh3Si|s%}l8@kgP7Zc@NbCs~{mAP-=mVS&zQ` zE!=m#u0LO&%lOnryYZ?wKIl^bw&}vFu>sH_9&Xcp_nvp-t%r{762}<FSb`JNhKcf! z)2b@UHP&Mlw1n1o=cd!Gd%&*VcLTj*bU|iMjur2?zGu95(RY`7D^FK~a*OO~fAy<h z`Qx#%vGccV+1jlEwlD&12SMI9s_MPULf6pW%>yg<u;)+?wKvqXt_os(A2P$q8&R^$ zq2osSxOkQ^&UA-Jy|S8>S3J^|g|=K)sZ9aO>Z$hm1|+t@OC+j+qH!6z%cO>vP`l7) zRhQof&;n2^4Ju9bu|Q~@lhjx=`cIltWIF`DuELMU9AIGCBwLkEqHT#bl70b$PL_Ci z&uR!D=0OyAa83M<`9gW~=r=k~T5z!$x$41JZ@f@)tbZs+U+6sYE<NqV&(+#jQ4e_M zAAR&OzMgXV)lkQK1ic3QczE=2-QBx~+3OC)9eCi;h9e^*v~}xNrW4|`MT-_ucXuye z3!wkTn{K&y$<mX)e(LI#dw34OSW9eD8<RmPUc<4I|EK4~nbN4qQmICsV+p2COz&v7 zL4CU%SCNcl?ea|YtQ&E3=CS_sBORCh`&g(g_=hYexvA;tH4~Fl^Bc9=K($tbcYAK5 z-YD1O2E5+IIF1*_jYdzsUY{GsF#tQj`aIB8lq!NEd{7^(l~%1#k6M<utH8#R<=FWG zL{$<|y;;&UzRMdhSD<ccARfefketmzsuTuMc9GBU4+{_^8nLx2pTQgC7dPdF+j9y% zrbKUi;~VMZlULH_&0Fb~TW+BT9(aHre)wVM+0;7LS@I34Gd^$)ix+~=R4KxHLDh4u z!HQ{xkHFy!MgYJ{TBc7a57LfVeyRSBqMlK&=Axhbu4$hOph-GghNG_F(BD(_&W)Gr zy|U`*GfIo+-g|JV=P5teb{b6iMX3ks74^o1rF^%Y3f~sqn9<LTMr7?^Ajxa0+qqWX z^tDo+K;{vPXY%<MU-Z3KU;XO;@%q>Q(ofc{Ti0U-pL*ME$G~DBw0}$6`SGaZHf@AS zyI9-Gv7+#j2CnujHb&D_CG$3W8jVn6V0<@bHMRt(>#j$d{v^*NKdnyoObX!f6Jtns zVZ0aJQ+oUyqGKT&lVJ0gCGb);7{9Ay0m|Bj@P;=t#*C`ws2YvTGeVUy<rp8wqW2PS zeJOx)^{C6dgElD^%_DB~DL?0>4OTP40lqDkLj$7I#bP@2z36U%W<kcdMyw9J<_8ZR z48}>3b5@|P;whI4!$1X12jKnw``6Kf4?ai>7A&NbPCAL-8|J-Dn;uQt7JX*r%2h0p zih6>VKQuJ|fxrI1pTG3<HD?Y_O-^DzNuCGqxGB<-evC@52~-&wdyMN9_;Xt)F$$^- zrQ1-pYUU7w)JkGf=kxSdl`cwFhd}p9JpFEdnQ=)xPxgRNG5wB%Y;~tr`)U{=e3~Bb zx6_VL6lA39<|SzTppg^I*^`DSNgGO&r+4&-TiK0Exghsn{Dv`OyC#|V5&yTdvNCYV z=8l=Wjma5Gl{&WO!SOR*md=M+=;r6w7T0Ne+@EHUeyrC!5?IgveI$UbrB%Y9Rv`Uo z;2!_R8gaAhnrpuEPwUp*_wvcf$)0Mp+QFV4j`%nA4F%f@mTeJM0ED7agz7;{cUC`n z%5@CP>EhuRVh_la2BMs4UEBnWSP~iqq~^gDu&E0qicvMp)9MrHctE5^fYKwhKKi>( z?w(7Y^;ixMe}p~kP(nb0C1lA&q8+WDS6;y)22}<POhvumr57)}-<CH|eYy>$ZH@11 zbP53w_}nJHGywMwBR}b7C*m~U*{C!+x$Ap1&pwK^QTlzU5{(BuIw9*KU_p%5-(ZNy zISQOi$p%FMjkbe=F7s%rgr)UmZ`5QB6f;^RXw@>gYJWBZ%78iEp<Tx-0ZHn387u0k zm0(s&1O<8lvdv%pnpge%6<1vGCqy(<tyX(1J|oR3w<K1&8>Jvvo>SXF<rcjcR_p93 zU$*9_$D*fgd2h45FV8ygJaC(Wv|g${<6{;)h_}T&9ebeQ(}GwvFjXlhCdcUM7JC0Q zuvJ4gfe6Vv(f+GrM0DbX7AEa#9DI33FQI93oE9~%#F()6f?!RJ_rN<+`A9WfZC+Gf zxjgIiv<4)@$n*D6=Y=1)7IR{TyK4FCE}sHSuS6v8MB;!<rOGHtrohwLS!T|BZ*O1d zU(H1E$1ClqF^M@3ZGjjd>}aYXpgX71#<H^jBNp|9f(`x=#b+KoeE3wNXgK(K0(j-; z3RD@1J5Am{JKPg>Bf-z84L2_Dfd%~Sj5;^P1v5E-Jvwr6pjp=gB$g6BeIx<04s7c& zsY~c&sV``jJJE@SiH@~2GY(1r^KsPEgJyS=6ktyu$7?|_!u(h{64*XU9gnNDf%{LV zb3Pu>eyqpN=1o7+@5gc+R`kPD)6;z)|M(}rc=Js+U#aR8-V^INz6#2{r^>vPo&)Xq zvHml&#zl=oRUb6?OtqdZF^?`9KG4$hTy^W)2RvpcKLv3f*yv)PekPkZy-G>;nG{@j z52^<?Qg8FnV$s1CFg!~l*(P)dNwIETJN2exVS-MwZe8ovvUn)XOFgrlZ6Z>Tj$#xd z?^!fYr>!XlY~(%Ica8?y!sB9zcYIM`>bcOZCPFhbvWg_WuW6r5*FoFezdNmy8bWs6 znUo;~h6d=;Nrb#%WFW^Tegl_Am&t-n-^NNy$r?fae)3QH0^T9|%bYoLDtFv*$EwX+ zwtnQ`!9xpR0BV0wV5tUz0zTt7tNy!YyA)$bjU!J@nYo$gS~M}9XX^t|3z<&C8@_$~ zj*c3yzCC@LnAbC%zrfR&^q;50wfftDx~J7-9hqqZ%h%uc0q>Fbbxp73=8#AmNR~^$ z8;f>7dtT+U>-g09R-Z)`g~V7>aBuI*8z)j{m5IeC62xmeH2}+^W@AQ!1kGyPh=A%E zd(;mf9;HfUDkRG))7rIbnbrcYI_5VGriOf{JeP3q74+j;pwt+}uaV4wvZHB~G}HrG zaM5<4$>2V`J3&-y#&OuT)3ysg!+*2=CUHh!-7(L*$MA_KI010#F@|-Z-uGls2bV=l z;2mf=4uB`fG~CDkoi>2=682zz{q-YNRB_zAlIoquhB8z44bL`nhiWFph_9Vl16u*# zluO7kL8MeBXTQi#e^T<CI)56Tm|3)*-r<<Oe^B_>wquHwdi*gpXn=#C?-fIY_mtc? zyTfq2r48JlT96(+fn$ya%8vxRk96$g`5pfbPfkwH`Pe`G)7Ngk@uthbi4^q(r7Fn5 zx)A8rw6GfFckSeUF-~scfQl$ASV9~-Rs$B*^C4VU4<u!f=pxied9%Dn$b(Gt7V5&K zU{v+G!Lcp5Y>FO?=tN}`RBED3B?{7voOTTlK>4q5-BPK*vVY3WH02nnFF=?s+WCAZ zA16U*meDfnNjEQgc-oYAQ$Mq*Y9>&Z>!rQ)X+y-on1QG4v+23!#r6Stx|XED%uFLM z{h2+7K5M$p_B^SjE76-5pfq#$A^n~e)O$fCdrk%a{+X?<tbgkEvH#o>)`%BV&ed__ zmr#3`3ar%&uJ0XvVPxb$*JnTbxyw~W2$@p_04eRqJnISsg`<ya*HY>vwg@W_4G<;S z@oKfB;sHrooyE7CKSqJB9+EZge82M`-U5w1UBTKc>$%VF1b9#}(^#`4QCY(x-G?zp zSbxnLVU~a@O{1}SFP*H)*WFWCaI9u0)%*Kh&a|;(`uZ@uh1Mta@iMd4Ru;3MZQ(Pn z`dkDW)U5F}2pk19OTGP|?t$teNuY2Jb|<HqgFZaGlNK&q%=DId^XAgjR2S{sxs$Jf zKvb1noik^ULA=P{f(I|0c^z+RJYde-zI{7QO-(YNUEi_n6bNn6XjGgyqgcR%9&mLE zp$fnjRL0Gbqb7s(&=<JbY{D@vd;s&wy#vk%wv=nhCBq9BfbaWaF#dErInb{4N=8m5 zK4v!XtEko=t6-lmsni(t9P7x|xyud2nV{N0aM}T3&FISvK%V)YccjA;qP6`_m$a?4 zSz>%doamOn31h^Z+QCTTXL5!__P+kRnMSa490HGo*RSS*(1+X@Pv%5V`$>D|XY<BC zp3(;HCmvvL_1)tI=|}pm)$clfv!8*}PG9)K7ysqfn{K`gz(5xiQ|r({oK_RD1<3Qs zO|3)$5f1eVCQ>YciC#}BEC#IYUOE7U&Y+KCfrMEvm3gSr4QAIgKq+;wg)mFE@dMSo zTxM`6Wy0>EKMnjCDB{18Ks^EF8Yrhhcjk@rlO_U3<rv#puw4<HW4!&D_0}Lm4>+>Y zd7)GAuNJ(RHjKOnRFC(QztNiv0O~V)qse=&-GZ1gCcI}|@8zE_3oy-qFfO^u0m^;V zC`@zqF<p9ZsL+Sf+;R_UJ@AzFw>HcgcVgh;JL}tiVf5EG&$k3FdcA*r-{9&O3cU=x zy!@m+pMi1%cV?{M95ceL4NMwR>0ZrQ3??&%{kX7xZ|$3Ir`DX&>}P2sF!?mqPFdqR zdoOQbSe?>sVdKMR22L9#dT(Dx919OK-UE^jb#{ujy4KGERV|?0<~bSbK9E_x{Wi|i z6drxHwBhZ&=Sn5>aTBJNl=a$cowBM|_8!yydu(isHg0@`<9SX${d8KeU;(XIv4Y!R z&z{{$T*}g=OK8cGCA4D2GCKYAGZ=7VHwfRu@c=KqaNNr@I*R-hVq^leYj#-}3PypE zgmAbIxbFS^gADY?$H$!Vmc%VUTCz|8eUKkMxRfYrGO`NqS=x#rE(^?H9^f$}Ye_E3 zskb)_40{DljgN92lfBw<#V{&D`#Hyie#Y;^_}3Y*Z2i$z$C-V;)o5@XJbhiPm7zbd zr(EByyP9(mC)W(UKUKfLU`@Qx=Fsx%`OGq7H$c}7Z4)$Q@@UG>ZzfOd+b((P%zWa1 zPaC%Bdf6Ih^QF8`9S@;hGHOEEIWqOGoRO9sGxJp)cllWd?oT&hKOV6DctQBF9CxJ8 zvLGJ4xOVLiuKPdNUH606c64^678&cH2Gq0OpJb>z52G#OX=M+-apJA>fX%>=-CvX* z5FllBp&1}0z2GTVUA>uFKfeGQmp+|X$ODUX(4(H`X*Aw*?-yJH0;WRapFO>MAz)Df zwD$-b7&iKVPLxtN3xd=37kW(=94R=-)4)Ivd&h+HYue(*TQxwR1x@LRE4%P`Ppg5_ zRwWHq?ApE!6uhRrK5G0KXvtpJ`bK)^z(1ciJbhhst~LWg7Ifdntu)bnJNum(0dUrS z8b_eKXMkj-hk5X>=UU(Kec8OX(hr1NuLhM~TS1uy^cv^dvX|;T(}t6QT5oX7G$7NS zL^Ue1-a+3tj1H&Y`<*oJozC`K4{W_roZiXv2AkolbU*MOad`&{UiF<@pu6|1>9yrM z%t@e%R8sf#b636YcV+b5rvsYJ(UI=wS}^bFJIfk68pLbw!(><`QJZSz>oaD@pUh9_ zKYq8t#(~U>;_+`#e}6wc?|J95hyALnu40e-`t|DreNSR50JJq=9&)DmO!?`!4t9kG z2j_6G?AX`@?=+&G@XCYBj~E|-`|0T^rqTecL%BwtRpl=0bndz5(Y9^dXvdE2d`~|Q zz$n1GsZ^%9=Z2USMT-Kk&AV;x3NYUjE<d#2C0mo5<FwaF`>}UjfF*-VJzo30u9vd@ zq>yBKK2eWznA3Eexsj8My$m?bjz2xtMwD>otxn+)&^JPdjY9qs?Z7@zRqB%oOi8Wt zX*#Lz+gZnjjm>mDQ|IVti?Yuf45t(&GQIZOT09eEr@?)C$0H%xXrirT$Aqt(aUR%P zNgFS=`z0g&m~eYy@Tu|VPy1N}?$OhDohJ&^A1?@hJjb>I?&v6oZ@K-B-}u~TKl{JE ze4dvX^y&gaEz$07Al7mw*+8*iO<UOIcMp!#YS+w;UQ$oMh@Q`t4qhc))XbYL0g7qx zt@_}We8oVKG=W!=u@vnFG~{nfa->{w;{m4?DAdqMt25|xnz15DTHrkudW~k*)NOME zXDX|QW99mOkrvrX%Ou(gEaS8BamgYHk6GI5?>W0hLz3s!X(*lKNZUq0p^qUD0HCso zrmmscOU>v|kFwrZi>d@Ew>#~=@LqZ^g&B#`0G^+DSfHx<-2y#U`e)L1>MaSQAq!k_ zE9g=K9QXy2^&=AFA-%Jq;8f}u&62c9kFf>74^=gsW_q)vzpD|aJZ612*oE;1g;6uo z_3@v3!_anBv`*f@w(+X(*$f2fOWFsM1v+B{T3wvCDs?|y+;!|2h&B*xZS4WSjwz`h z-nAMg2A<RJ(2Sd`QR3gTIR(_YAbkk|ndsk=j7T)}ZCBEE2DQHlMJmllwmHolB?@v? z($);OG$5I2<alqo?Z%lpR+_pd^N%-#HJOuT9k$?BNjeAlMF4gL)#G=J4YY@hck!kp z$o}BL5ze@ZYn*-dT2_?VvSkZjLk&k93+YGXCKw$ZW56%T=IVSdsDjXWM;$f!9iA6K z`8am@^5yLH-@F;utukQ8ebC;chif!7UE#!f5rcLEuz;x&{3!#|!T5mLLLU*=GJhN1 z8GGWRrqF7Fr(S3>j!Gwpoo_5XPm()nuWhOFC)W-9dbj@YyTVymbF$M!^2*I$tw5K@ zg1LbCMe|(e@11zkGwZ7}0`lA-ao~3c?>AFgbPUh7=46~U&d~PHOgZ;#p(vduN<Abu zjlQy!!Jl@-*f{l0#4tw$(=2%{@=a{8*+07(4(<_xH{Cury05nZkEOUd$VD^T>Ca~1 zt{padlCSwhk2@Z4ek|WT9<V-h^|j))`t}d+-gExv|KoEX7#|zw$qz-7eq^_uP2ois z8}%M~bp~5tR7Q?(>ViwnGFA?|=%uS9wtAV=!>WoM9#k9X&+=_Eljsb!nl$%K0fcNh zTR^MUSplD(<F}R#{ELAC?~tc#7&y`Uq$fJ%J$r3(Pv?;1C74qInox4o_%N?@x(&RS zxXBA6^uBSOg9mMUKJB>)M~5ZAz_hm8Y~Utzs*uuLlc!)&9vL~vi#w99z=MVWHF({y z!0Il??%jK6?%X*c$w~!5mwXKzD-xWLz!a&w&W;Y6s@AEur$>S-`Nk617ej5r(L?e< zgFeyySC=RoR|SgeA_WM5pMz&H5ro5nl4q|}E?=a$0f5nyX!V=-HO;fOcboPKS^v{^ zHSfMiaT>+Mk2l>3(QA9pyd1A%M0NlKAj-S<0o>+&_5j}u3T+lO4%6e^-m?L61MRk( z<@=A)EUe#X-TZT=f&5G#gBjR5f3#eTQ--l#N5QzSml=K9ZYKGeZF?(X^eMpAduhKy zA4GrlbA}HzHV?c8)5|r}P7zasv3iS_+k<>R-o$9rcdgIvS}?>BX+O$3WYpMK?RWL6 z>-$J2q-*lH1b6-3d+*`r1#pJfd(E0Pv|+=>WS0{PFhfK0dAwlE;<!C~hIuUGo~079 zw~Ch?4utV>$^46RVH`jra(Y_w6QJO;><$jrDAWgrz^SL6%5<HrTel>R0!~U+t5B_8 z?@GY3wzP24BjHXnm=B#Mj87S(g70K(%ejhiHGI*K2b%*P^d=oA0mgEy5<r6gJ41U) zZV|4NqbA0(_uwbzr_O7I0o;{bpRf)oUS8`eVp}+=$Yj>iaW7_%DDb3k7uzAsK~H<y zwFYht_9$4^LNvdPPTlPcs-0wOH2)1FN!y?`#`18`c0TReQqg2A=`*TP-m1N3wBO7l zvO5g8X`G7VY6Zdkcc}{}4fbpX?sS5I_Srs9N4m{^&ar@U|95tr9qUhZV;-EGoLcsY zkAL#thlh9d!oy*nLFqrbrS5^c_X3&HinoGidfB{}6h*w?o-0nXco)s9u3$icu+&Y! zpX>(s0qPZJG(nCX@4a;zFgSDaQLmLWS=Knv<KQ9Ex|jyF2f3-KFge$I64f*97ua-L zWVO_F+a0PA>D>|I6$?PYqA7|rjZ~0ht71mRjNQ?eo)r(yG-&b{e&H9`LyZL*i#t4Y zyLa#ApWwTy2M>DAn>KBt_q^xV>HFXRJ}<}!cKg8(en97)cOIR5^2zLhgAuTQ-#!{S zaDX+MPd)84y5*LeSP~IHp@F>c&06SmIcml=%H<1GsZLNnw3R#$-Z9=$jUohGtK4U$ z&fr}gtj!RhEd5F{J_59x5tpUL=uSj7h)ccW@~*rlyizl?z3q5UQSfc-$CA%IVBh<9 zBmmG7Jz21%-#JMq)v|k}x0$8BM(6Ofk(mI*^SZskDn_x!vuNF{9n$?tuah<y(m)_P z-(>wb-oUhX;pt~~Z=0VyB1;Ex`u;BgpGXD;<&<K^d+rTlse>jDGoYQ`k%0GJzL$Pz z@jL!llhw_}5?Nm{y>-7MC&8O(NlkdXbyv#=rE2i00(srl0brjycOGA3$BvzB{4QIz zG+7TYmOyvGKeUN>)vNUAqmT0aL5Gp&mpm4Q!ax!@i+c&hFXHnn6=YPM;(EYvSBXi? zwT*_{3vCKzu6_IV@bxgKY~Q|<$14nmMx(}Fs6<#Hj@Yafo=BpZE{qoe^b89{BD~4d zEBnmxw|ddFH!#Re;$s*O3aG^S7U&{CF0fz{uYjZ2sk^{|zGOV=TCCtQ$f_ufgMSTR zJGqzd@!l%W1imtIM{hIQ3SY8;xx-z<+|#^g5V^qo0D#3??APXWJ;J;q4W6za9^Nq> zllldnP6{leguR2!h!it2JKtI{OkvKm#AB{)khF<SB8Xv--&2<}_^k$1s;Skx5oX6k z&ePgEWuUcCGV?}&zKdrYaF3qmYaH#^*?@Pe<BoLfY#{q+-+AwO_CBqCM&X=EBI@|` zXFmJ??z`{aH2_W6>P0bLwt1Eepy`C3=Gl4OUh|gC+%8w(lU0lm+JyjL@ni{4TP|a= zkUAjccu~7Cexs>RC{H@;_0#$oXfp4m-+E3vG}3`5UUyut=YzUD_)uDr1qpiZr3NW# zVk!IEuH|I{Wnov(r5Ypx^rXE~9V%So(4oV;s7bP%^hA=KRQzP(cP3hYpZ*SBunRA| zkY4ke*U%Tg_(e7t0KO5ZcG+c@(S{8h=of$S7g<$e$BrFz+ikb;_wRYndze3qJ^@er zym|BJ^{;<DZQQt#Uhsk!@Yeg*ZQJO5?|UD8^IPAd4G%xeZHHjC<XwP<6Ba{ZRy8^0 zxd3wAW)52G5wcQ-t>fTrPj*=F4v>vCP#y}!9L=A<Fv%cm$)NQ8hCvu8O=8TN2D|8S z;~gpe$295v0xs>D4d(RJmGnC>54>DYw6DGTi}u|@%SFO~p6`?POzC&;RZv>(Af)R$ zbMf{Ip6ycD&Q%(q`kevwocTWKLA`$mI;PcYoqb1HFfE^@cQx$2$@Tm~t=}mS#+V0X zM3cj%yo(tlO2@Y*CbHd3eQ#2C0r2*$_)3i?oomDhP#T#UjP|{G*wc9=%;+>DOKEv1 zO1D$Gp4I`+2LpM*g88&)(Lx?~0LD1(uDkByXHz*x4WyPf66r?vfOBwZje2|gd7i*p zqjM?diQe8`zAg-W{M5Nk=WW|Pkk4_>!i5Vs)9U*5yJ`9I6}%&WAlV5h)YR)#nSKYm z?HP+E4=tTG<%HoECHxP5g8^b=K4I;4JtS#6j%XFfR@kFs#(2PiF)V~MDJ9@>rQ0A_ zCHRg5z)P=1#=isoFR{?EZYD11fMzq&k=eed=P6K4p4s!{m0qZdG@1k|R2=hUVjwsG zJQI*+ef&DM{SLbuBN=1e2lGnN`i8&U+N`fFy?d|4oFQEIU@`F>GO9Z|4f0vi=R-em z$U9U8?_%aN`aoZ%U`dmD4NGTj$g`R(>&zVrqX0cyfP3^bpMNwEezeby2c)<9Ec@Nj z{??zZyztrY5vo7^`7eC=<JVtz-OGjIpcAP|5~e$-r>l6Xh<qmrSJd0=0i}AS;59+O zkU9XkGH&4O)+mYsA4%RJ>I<g+!T(LXl0M64ddu5;*rXmJsYWRedRmiSuB}_p=0%ll zY4!4Z;G|pNwn$rMPd{1B4F1c4CY|8SBdF=ub<53D9@2m$y_usPI~)f!2WZ86N`^13 zC)*>J*}xgz^ZobVPs78*)ZL9_Q89hzJKtd$IC#(>dgvj#?z-z})v8s@Qw2x|Kltze z{_pv3fOnj8$t9Q2wbx!tx8Hs{ZQs6wv&sSxe7diXZocIf2L9cglqSy;vjPQ<6JSkp zc-^t2I_*)sBVH{VBK?KF9Q3Ere4y1Z*x}544fYNJc+4G`$KcG8)8KLj_F8$~r4RdI zr+voyfu}YZ1w%RMev#8-v+6h2KlM24|HchB@4m06^%ZZBr@yy%t#wFyyS?#XbPF}A zXYShQx#{ygIJV=`#-aW07w)Vlo?4#gcMxp1%63BhduTN;*;unU4$TIN9ZI23>2sz* zH|9KC2cQ-G7jqftYEV8wlAw%3G<m<iPYGz(ca6SbP80>|Qdf1h$b~cuv3lOq@gV*= zeg9JcZ$^O5H{~)6K;)Q^xg9dLVrYmwtq&xJw;a!m-vP+y&!0~V7cS)f2uce+gHAiv z42&(!Re>D<?Tau3)PS=c4CycUiFpIw{}n5i^UmF#J$q^Y{(Zbdr=?P<i0c~|S4rC1 zzXKSR45<R<8Q%*@Mc%ndDFzc2gm!zsLH1D~8rwwrV&FUwwg>(nqz_XPlM0OmREEso z*nz^1i3^@|%=HAVHhpkuX5_>H(7Su-Vd=5aV*XBj=SRDflx%&z9@%RA=^n>SuXs{H z??lRi<;ccjczny6rMxFMTzxIr_~h5fTPCw|s`VK|8z;@4J=PoBelC;KUGhTrO?v*D zX<*nfshaZuO+m80?}eXHupT{$$F>6At=?@b(0x2WJ=u|&<+JQ}epOZaOV$e?WxfYe zJ#g#ocmCG5uld$n)th4}(Pd(@Bp1>db&FdUW%W8?VGwW35cT%<%m4s5f9K8}ESJ{b zKM+1wNkaJ^-r#-v_J(YW60{_m$$4HNz?Vc(@T3_|0sKs(*!YmD1#E$)vbBwKz`Ir% zx2z{wt_AN>C#yx^Sy2a{oJl<3ev4kt)5IjYfXkvOb;CBUdA#gAS%gfvM;0o4r*s~X z#q^-vCNV#W*gH|6fx1BRc>n$prifUE#q{KQJivW6z^(=Nz`_aoi+W7ez`FV7oB6%m zefQmT#~pX1vOeN{t4CX}!@A^M-E`}%w-WLR;2nJDd*7puQi*zdy5+gKYc{FTtWyqg z5&-bny+AuK^$5K6K%Y@B6MNysSH|xZh8vy>KLHZNflc*Bow|B@X>edp%9APW&}tDf zAS?@vU;45E%0_$9=k);7k01FvorP5uMl^6b9dlv+HxIzl$Jp<-V~_^&3P!Wq?B>bN z0$tw@>0`~)YpN>gdg#5)V3zgMd#rt1J1?UDG!;1QJ%L&my<U3!+O;gO(-OaVBi>W{ zavY~2l#sNPs_?hPAplUhbLTEvym%1<R;Z>73`llQxxP6{%(xKaQ?BKAE9Kp4-AxV0 zgLtL<8Cdcf@pit>Hzt3o#)0>2>U?f<3xK-Z$Jzw*smz@K;s_XBv}h3ncKnWi`2D{7 z?qlO!`Ryp<<C16zKpo=%#ydRnXiHFYBypJ06fqVWjVkZTVSYmpD>AX}-n}bXQ?$gD zYEYE{oJ|-P4F14D4k%5P!iDpa0~;e^PK{8i+278NZf05gwhj?d@?EeH7=R0RMo~VR zKgaiUaSh?!B+mXYY(ta{n-wXfA22Jox%LgYPXZ7$K~O^L3BxM+(|Mb{2cGMhh(?5Y zG7Rv<s~=jBzYmluQP|Yb{$ugJ>w~1npI_6mpQVfKE}%X6J%rfSWF|<Iev)w$i1`BE zQQRC6@pGZ!WXz`~c5|$l2VdVwGDh^C2?%H7IdGb0gK@zS%t+m)=dNd-$31!)&W|3) zciGRgMB&-M`tbnwEHKymWY0U=G5&A=6QA$jwtdITKKI$reLw&(l4ghkh<c=SVe&K- z)$PVV=;wkmuzK|>y5fqL(D~<|&%8v_epeaCJl%Wmz06;J*Sp@ulQO`y-%=NP4m>g2 z=z|~p5N~y^S#u`6@P(JtdFP!=gM$O?jW=&MJY7Xvzy1OG>%abMnw+eKjC~d6N5A>a zZ=$_>_tK|7{Tb#uq8<_)*-h_z-|x|Br=3b4``G`Z8*lsxUq?LsP+UP^Zkhh@58uc1 zjcc#{0bPFiWo(cjEjO+K5RdD~?gSPe+`CQ>KKKxQ>Qn#D3yBys4PIED|NKkn{PUm7 z9^&tO=ex9N(_?&(^g^BW>ZL94G`LB59x}cbTL=WOH5jx{Pfw<_x|2>c%jDR~D`FnW z=%@f5{YSlJzNlACfBNsW-y}OL@KS}?fsRga%f%bsSq8-=Pq{*o8d&&4YycJ=1e(h8 zOP0`v?i^v4C-8XL3$HsN03WQtf;iMX#qhklA%<(s85rdEh4(z0SJu3^3O3aXZb^N- zTPWR@S>Qbrq}qGV2ErQMDh>8+^4EJ<vDMrbN!vY;&$S*VPpA~GR>eP;E;xFw_fT0} zh2K#~Z+Fi$eiS&`?v?NR+3x4-k~TnsCoG}h_?;5pHhLWe%ogY3cSqo1Mjr>T)V5T^ zUJX)=`F;ELv4a3RUQx7|b<olOHGo~8(<oNPHAifysom(i@wqBA$(%_=YW@qO<|Tf= z#1PY+2BFreQPpg*t4Wz$7OLds0gc2c;F-=i;|vZI9U2<qc^<n8YSduP2ek&{2<kg9 z?lpt2_5;cED)TDlPt50VcwmkmA4iH2+hLLRYto~SKEn5f0fjjtpEm_Fl!@tS;kXCH zol{^Pj3I81@EI=1Ju?hqfzLv1k-wqslG?fwat%*c>M0KW6PLHd&~m6B)4^77<4_HX z0I1aoAO3K24gZe!E2D+4;&|%v&H@-$ufFo{{Z^RXH~dGk8>Jr34M=rLyN(g+!ne&j zgj$s_{$+!~9OD5~JKUX$6(I%6iP4hsma6AJJd%QSUy{v|pzEWCOETAl7iKd=c3t!o zLK{!Xysp=^9jk;!WlfiM+=RzT&C&AMem#HYaNMJ(=^Doi+K&Xtv!Bg&?6H9O=okQc z7UUlZ*eB*)I0pX?93CAz{a^n1U;b&=&h4E@6|GbezECQ8kS!ACm4Y<hBrRIBm|p$r zSJKb_{LizdFH{BaGp#``9TUNXZ+Xj`S!n<O9>GM|=0w5q=bW>aCwzFLPC97?2R6Rq z6<0FF0|8JEJn(>1SCIPj_4UwCesU9gTd*yQb5WN!yx|SBaN!VZ3xDP_pG_ucY*}A@ z^=s(ji!Y*wAAXqDufIP@`;O<t!h(Ce=}m8>OE0~Y&&T}%=0W>FQ03{TpT>2D#~6z- z+5@TNpZC1yasA;*`~2s>K+BgeqYE#*fL{FK7x7L6?sv;Ax6-a%yLf9|p4+<!(i4d$ z0ZAs|l+L-lUOm?UQ=0OC_c$_ghz=h{(i5Zc_;ZYcG}BY!Cr|&K?;luDkL2-GImlLE zsx=)!&d(Kd1aB9Bw|K_^$|ZO-Ul1NGgLHVu@eg%vhysREW}4W#2XMhI5eH-D*`p4C z9##%sb<GnT05k&#c<Zq<(@Wi5Fw$hp-w!V{uF|xU^d?+dMMjr~?9R!IMcDzfG|<;} zOEcl@c-sjuPkFk1<!4H|EJe!+PPGK=TK&_{Z`U=sO<T;gFIb&@Aa2?y$x=hCZx~qD zdr}L-)x6H>zU2E^tL^r*r_1V`j(PF#UF$AtEAR%3Dv~9>vg?SRxy&gTC)jC(af-MO zI6Yw0tD$b^S{;RYg5Q*KsNg=WKd<l0f=WGoPJy=u=Zlj>cN5GIQVB}zaEgRxno=We zsS=J^gB=0rkY&XDJ1{Wd3=bqyswQ)QQf$O<ksSp9c)b^ZK8}HmB<_V>Hq=`TeWf*F zF0Zm-0G)SGV;+9^A=YwNr5RtUwJI+(9Bdjs(+rmi9>uq<+!#j@3Dk4YW|)z#URAaM zL`nwN(mX!G6Iaw80Kd6p`O4Y(&-E>(f0(XS%A0MSKY0GlTb|&1_3j5FlOH<x-%TSt zJLk{9CCPW`0g|*0Ke$a20;p-WlHLIeaFtK<_nggv)O2-B#(cmRNrEQNMCTXgG}ygY zT;G5A8I+Dwv96{S#86xv^{I6jOHRNQx*d}-1{?rN%^&{nl=;ze9X`>4d-N2a7d;7| zw*uWqJGRwNzgN=gT1NusvwfBY{Ih+Be}^Zhrssa_WB>O*9(wShm8G(!MxSXh&kSBv zb&{c>1@xDH`RBa#`|tn$8T$6Oze5KOjPL^GEk@Z2jpzd(_)DJH@4a^&4Gau2$W|{O z7Bg@kL9Mv%y6frP?|wI}T)Bd;aPXjjPIz!o)UydN{V)IW2~NI&YrXizFQ&J>?U!lk z(xvR>LcuvuB7x@}!2TsK`8hToU|js!pZx_NhaCd-a$%9Z>Z&X0EpK@fbFKgG?><V8 zJ@y#==YReu-}g`c<bN`7|I(NKlm7niKbp{Iu;~2iufB_~{pwf0iVcsm&RRpAon7?Z z?|zT2zy3$Gb?avK1}WXcK)2CaO#MLti{B=n=~cIZZqyA0h)P#MkQcn}8ZV&lQnsmU z-1hv=#6=+BSb-7qyu&&90tbF7rxDk{;*1>#+{=5-^gH}h<4in*UOGS*w=_Udj}bt5 zl~p7PR4R+aBftB=e~h6j5fX;ft5sfzxefrN@iboxiZaPg5xjT-M6(2BqfSNCy9~ZA zo=by=Z2`hDbLPwq9QfJ{W6Azbj~TbgYM-V8JZBzfi-UQhGoBbn?XbnlfV`_h#%P$C zyh^p>Z8}ne$^${A&T0K^{AK+C-UIGS+Jl}p+|tI9-%&_|>n!DnTKqImc=~#3C}>^$ zGkW7e#+p)4^x0G@GQG1UpDBe8{abedb#4NP*PTmH{P0f$EisotRRyxF;)qbHlX2}; z6ae><p`l=11K)j&jkT4IG2N~4AlrEY6OX<+LUbMzPrdGZ$eh7<Pv{)!zVEMx&$_z0 zc`lHk(|QZfsRrUhAqD}eeLR1N?s^x4a0z6EvP_Alr^mw_B4gB4o1_oJ<9_In%=P!( zcQ3C?OP7M{E}v;>G#X)hGl+a}r3BQfbT>;6hAcY>FJ;eq_*-6)Bq-v03uqULhBuwL zdj+H~&kmP(luMlVLbcI;;#{k&!LADLA^bI&3-$8m=T0(28I47~&e|Cg#=KN8>p{*! z<ir3@ea0h8e%B1Jfhw4C=s3<<c9$^g__68BL!lW4%#7co)Gni!Sq*Um$*2`BjP44s zx6<Y6KnIZJRJS<zht7sNLkG_pUr{y`{JfHOG#CXZ<NT2C((AR^1=)7exk@Azd@R$6 z4BVe8(Eelt_G3A>)$zxx{^CDB5?Ie(??~Vs$8prpSHAkSzq#k`yU#8oGpdsvOy623 zT)(JU$9(N;U&EmNjyvw6fBn~w^I*mzri+$J0%E~>>s#N#nfC6v=N|g-hd)BU|NHNw zbIv)RuLrL+yw_j)(wCXXeD&2=GiZl`2)yjzwSzBdo;A=<hUlS(9^eTYDYxJBrZ+Hf z2UX=S{^B=T|NGDX{7)IU14KXg-~)8V8K={4{^olaod4BdeSnosz%PYIT^6q*^D*D? zj(6~V{^_6oAE)&O4;5S6uYdjP=*lavWNOamKKFSx7DSpX&kM#kzVS`=x`Tp)g$5KG z$Qc6oqy6AXGVh}fW*MN`&Ze}XlYmJM>XyBE0=-AlUbXko1GHBvSQrIV`^gb?#{1Dg zP`*DF@;UP<E)=P>bOq(|C5o|_?%qa)T7}}uG)2K%t%eSagEUx@?QVRBYYVV(lp0L> zm1$~BPEf9^myH2dGH?JuJ%{k(jg5j<fPLt&t&c7AT9q1cGsw-!?gif;=U1y7cv>GD zr5p^6QWqN?GgJhy+t8@<^~;@|viS`_n}?E&$a<n5ff6O&)K=hAOWLDiAl%-Gc~Lzd zSv;FkpENl3z&^XPl3n!dnfx`f*R#4Lqr8QBQWl)0k26oc^*aS{e&L<@y#c?pv7q;D z?QK$zclP<yyG;IA-$q%`pWadMb+cezGmK^`OzAaryrOT5!76j8N?q#rDA=*_b1C`~ zf+@SY5C<eQFx~yo0C?3P*SR+fytC7_zn|`=<Z@ak^`@uim2AdXQzFuLWPR0p^R*3y zUTMaiALHKWRFy3?=Kao<1g};TT8v%~p9yVF<|&C)62n3bv5pQ&vb1BzIA05M19pzl zcFUHnpl#c>Btfom9JAs9t2%~+BMISKWgrzO%UkBpq$`9uSms<+oJlAmY6Hk=i3zTb ziJZo!ra~2&PR*D;fPaJRAw_F~=>@!}z3G0iS@%!rH}e4@5-l~RlDXQOsD9Ve4fsS= zCNU5s`H_}H!!6~~_6D|&Be!Fiy5CH&?$@|XACKgM2*wR(`gM@kmeA1tV>OCYPsSuP zW%Ufzh-UEO4Fj1YMNe`&9^p#T-pRg*Y~W<(necp$E*1Ke?;A<`*qmB;1_JNLbKcVd z*0TV+)ldKZk&ek7Cs;ogAfNqC?{VP98*h2<_piP7YW84Y0uGX2Iyu|IE}k2Be^qB$ zw6BGK4G#&*S!bO|fA9zI<D@#8N?pAqx7>0Y_4oHO-yA&8kACzYIr#K%|MqX`&;IQF z?12a6<{RJm2Hkw~t(<&k_3G8~5V<^qUeWNC08`Wxw3Bt~?xW3{H`8lhdo{iL-S1-W z)%U;u1E#hh`1RzIS0<B%NQHGLQiBgZ_#kz6_tL9h{pw`FgYv-x4?M`%f;a4%YraE2 z`q2&4*VoJUU%U1kdgnXe$(|%U1E?qP7U@of7!&jO-tgkT|NVbT>(;GL^o(u6^8muj zWg4$N+jR^qsh8e7@!mUVo={o*Mn?8>J;5bSgFw+v$4__ylf)*tf6o9>|2(Qsj#B;5 zVJcwTy4*qaRcBFc+eT_0*hf(bJW_ejFnUllxK!I5?F3^>q(v=gm}`s#ED=%9Rli7; zZJVh6*aMUg35|48#qqcYzkAM59yr{AuU@S;H~~`+;tUdr(um@zNs3_Pb#_zd1uvwj z%^N8{ewb%x11d5>s%Ov^!vNZvbv6u&r7{C7<uXg#*-%rDZF=X!Prl-`QJ|FeD0u@Q zy8)*QnD!NY=Q^~#H`*^SazEq7XF>K%ua>7gnYYLkR?Gk~1JN%!cCLcyuzV%Pg<p`e zMuvI!JwQ%-xBauH7dJD0&0D3{bxz6|bxa#C*2aGPWQ{FPH^NWRJ%_hlVlqUf%D{=r zKFY3EJ*DiU*Y54@=D<}6TsJ^&T=E%MECrr@ef1sNu2)*N64H_y=&i@&)$`6%(0Vrq zfyGRqE}CUkb>7vm_B#bAN)=MDuJ^$hgC`wh8M~zFguyYG8vxL~^e_G?eFk%r3KaP4 zu{a)d9K<rMU%xJ;r;p>G_q^vbCG(bBZkF#FF=HPrVa#GlQld)BaR6!Pz6#EBFu?e| zX~x^&Gna^VNwXTL6pHqYwh?x763KFf-|A~tp0@F-HPNry%D%fNJ46}!On8J8mrUhz zlr3*#%{1S+4e@tSq?rL&ywszI;xpz1t)Jv$NIMN?Iw0f{*{s_$0D7i2sUp<~pjhe? zKz$m8C)=i~GjB~Bu47sD)JCzYCfBn0DdQ+fP4tq(%Op8NkZvldm^+HbFS|M0+e+$< z&$dC~84T8scJ31a<;M!lvwt5ec#n?qcPrrT6E$T$>Ym)%3ZQ!cZ!0m;zWdid_)DMp z%xB(TnVt^3OyfFw5RzUr(+izSib0<n9+Nd|&Y%~*@P(<A<XF%k^99cPi(d31mgoYt z1YC6}&Vb+k*MI$CdhdIGlTJJBG}h{V^wCWmy!G*qe}VxyuKR1h_N&R3t1cW+kU>%( z7z3AFaxq<V&9_-9@UqJ;r7Ny@DIY6de^HHq#~jCjZ;oe!1mR!&#h<1;pWvRuGmjwD zd+xcHKJkf9a6lFA4bS?2`)|L&0aBpOfJ=$bWU-S46o0?_-S6bZ0)e&n+;bnR)<}S_ zsNcv!i^bD>KfNVy6PbA^B@j#jo`F4GfIW{nY^xOtOfTBCYeym>mvpZ1er20lo+0rB z*Q%5&cTjoxDw_Y?i-?LP8sG3B9lqhalt&Qg-tGJoloJ#z#PEi}Bkd<*EY$cN28-v< z<6-0RF{+Ior2aSkCKaD|IUT;^M#`ZM;T<OfBA@474!q~it}f=dGicX&If@tnRD3o? zaBBMoY5rS(OJvl#d#V2|C)33GJL%x3K0?LnG&KXDP~(z!Tc9`1j<w*0WKMjZh894x zUHX6rxe6}*`?L3^yT*R_n%5<>W!loi?m?`Mx#YKm;*kzMwe8rMUTN<ba*IW>D`Ryu zPmh6WyH3^!&^FM8T#Xq&9odeZ-CF^t*3I|J?C-v$JzrVRyB%YOmE6;I3bh^VeP!Q| zcU<@ca{{Oppvt(H#6c2tY1i=FZ;J`AOsKYt2K5y?)^pZHQr9%tO~TRI&F8DIKxP5I z`BXbgLOS(|>w8jVFblTUI_o?3YBBl@)+UzJ&KnF8wA$eL2Z`P=N9a5O5RS2gTn?Jp zNmQi7SdqZhNuHM=CLjT<MV<p>&5?6tM*@_?PQEtIL&3E%XQM7-V~2Sy(bA~bdEj&0 zY3RC4xeJS*;`bmBBNz++;pY`+Z5R)t_^9j}VK=kHI-_`@-l%Vxm0pC*rxS+*jO;`Y zsNG^mf;ZMWkoF;5CuKj{I}>tW2u2OA=_C!TdWLmm2#5{myR|(vXZV4a*{RHq9r-@& zNF)viGr-f}-P5*O&4KCCVh66NU+DZ}){XuMn<q^3F=u*9v)`IsrS}y&r)>c3Ahu(| zwqF>r+}P+UIu7mG0^P{s)1r*iB^;XUEQXoPP1rw0;2u3i=N%7_e=@-O(E$9h{A>l_ zv)_B*o&9{a<NZ0=^YL@v@bI4VKlzDI{@uvP{*rh(Oew}^;6w3X(&QgaryQUOJn?_| zmw)An7L%nPWcXVGMyEIs3zI82;{dZb28$l}?0@>Ff6iWC1(4W!1{LM8$2L)ae;+G( zcu#RY06KufZQHi9V$7B;TlrX|z1E;4J156<8f?S<&hPv#H;n|Ns)n;HLc_zm*z*J9 z;jzaaWp57xNLAkPKmOyhY^1DPcRy2iyq6UP$NblST}xm2%2(;`yYJ;KT<@{;(wX>a zUNdg(<oRp>o1x^5DLEI5vAr7)rr@nYoe@ZjEor5Z*!5-W8J}ZORHH~6t+II|b)A1H z^}YO;XllcHs@-%wH4p4%4>`Ou%6G(~iZ)XIy7if6V(i$$E{>$QTBTf1AN9ZDmuSIT zev`)UzmsbFhM8v`<<s(Q=nvx)6I5o!iDKZF6Xgndnwm7~Pa;)1Jw=5Tr_f1%^>L~l z*iSqE>USyM(Me0*|Np3G?el1?ub*nWw^LLWZy(wp>K52(>Fw(igB1FYpxD$KqOaWx z3Xyp8eWp{}^^o^u##9<88^yywoB`D|=Uk7|F*g&4`o3aR4_nj>Fq_vjd9BH@23|dl z#HJ+wcN(bARKxMx$W{kmvdd(;F8a4EVse}Td+WEYRF+bAO0`?o!)N!`x@3dG{c+yV zNdph@tg8eq`hI%el;d<>P48Hw4UCyu)@m#$H$IzDI^jg~aXv?c?<d+umV+Zr^)YX! zJR8Ppu?S47;7R9si-(c>n7UZnkd)m49IL_anCqboCOfd{9WJS(Wz0sfKYs4qd5Cv6 zqeuWg;-WA%RT;;O9(~RnJ7j!Nt4IjTyms%s_t5U$!`8aYY?qC<(AtSZT-@k^)1hFw z*@PGjpTg(zw-UUnIZItKjb;dRO+teh{BgXzkY?0X9r`uPLFNSR%RMA<Qvl`xj7x4O zk&+L`v_?FsJ|O&^1fyHfXlR0z7hV6hho9x@8BjfAmoa4+WFfNN#*cY3if!J@f_*!V zoPeXeKU43qYlizr&X&<Zpj#dRpNH(NiKx3*jkn!Jw->8U^<Z&HP_hAiO~~b%B5A6$ z<HY#w-rKG<oyER*+JSrYQ#dy}8_w1rTY+kG*Ua>Gw>mfL`S#x*4ZP0==CksRM+5Wv z`)nW|pHEFpOsxFGr#|(6ckSBQ1AuCr%(T}@X$=Ba(p%TMfGXD-z!rbQ1CHW7P3o1w z#0%gqU|oW^Bp?bJ>1CeWp*DlhMKu5tf<*@40H0E9j?_oS1bF}b>q0#WOqGE)u<#@; zow|CU@ecv2x@hZyBP>9<H;zSyPTXHqUnKYpUZ9(9x+&0fL}OU5tpE(3pCA0-I{r-L z&ESdCL?|N1ChLpxaJ9|lne08tb9&3&FMhV@dx^fZ*JStZy{uS)x@IR?^-iJf)srmO zl;?predNEsN|W2S($sA~q^L4U`R-n-vs5Cx#*)BbT+auj3MYL!7)G)UuJ>(J;O#EZ zl0W<~4PNm|iYF^n9z8(0o_>nQ4q#PJ^+QdbQts}dMs=DyAqT5fE9^}#mpT%ogRhUe zkB!mj-M3N4iq$mm%C}O~)lE|m-b1_p;r-McKSa4wnV(Ms^H>_Rt5X6`>osaNwLM}E zNKG4FX~63Hq8}R`iwOYIT@ib~9`LH?Qm<hkP!|FZ(!F=xK(KgoOtB{I;qn}E(|u1* zaaL)s%HkJVJwFYe(i9c{+}1AHDK*_+?VRMdj6osq!@P3-cOTH|V?g8{>A5W}w`%Qc z9P+dgV$Wi`94hrFu{-KiP++Uqlxrx+Rgbvp?{iI)xxfrRy^hjSe8y)zr}Yx0nR*Re z8xWG56#|&WgKpWd)rpZPFophWISRCI2t`uoE>Ew@2E3==qg>1SsOQ_uc>=uUGwje} zE*BkliDyAwEqkl=0T}L><EEx02;KKz6z{M=DHcmS!9=+z-;A5-cvQx496p+K{N#2x zQ2Ld;P0TZ##-4#(z_c=<v!=QtJEYAFkeFLgz+xm)$|i{@{}HkZgLfD}Trv5bHROZC znEN*TClQk-{hX9AGC-(z2CqoM+irq@S~Y&fK#^}}NstgY{HZ}6=0!hJR8mFAJZfmj zHmio|2CSs|xVo?4cgt)))$S*tT|_*kncW=c-jX@ch5M4I21y;jd(s$Eh0gqmMgq&g z3C{+t{a|e+7GAP75)1}5!jf#Qg5GDqLEGWex+kwac-wJH9=~c@C-a?u9ffB&V4v-~ zqXF~m_cL7`GeLTmzS8Qa9yc2}KOW$IB(R<Z;;ru8>UaDE0;>JTXTR`g_uh5)siGib zi@!{~GBMhOK68s*Ctn5fegV}K*O*|HGwHpD`Mh>qNk-&#p#{Jf+{BJ!#CuaH2=7^W zom$jer5ea6!s7=1Gq0%kGU6w|xNSAt=L&LgEgwiJ_mb-a1WU%$^wytV3)huh3>nB8 zxD{%g;ox!$C)c;FZTno06Qu_Os98{F-9srdhgts~UNjE|^j-k&s`{fwn)e`LzoLu) zy1RZXnL)dHs1d5pfvbVPj&qeFqjke)@Wg{6gP$otU#U>8*reUx{Thutyq=1q2Wb4Z zA5s1A2<5QIhHInF;Qitr@PzBc3C9zsOP`*W?4@BrPqy)~ReoR}ZTay3pyFw3sXRE3 z8XNDUJc3vc?x(2SK@HAwDbEXUd!bmQVyQ&6>U81-#4~_9i(M7vwtBC#2N0&<W8WLN z_I-AyM?MYOJeNAX6QdM|^!qoUn>8qG3Qz;lt1q;s=6C>~HRSzVp<vANI;893y~@7d zd5>Cpm%z89C6==K`MOyf_#`OV1u`8MkUUAIy}VZ~?fv)dnD+dc7aT<;Af*r5@s@pg zX4YhFbHD51$4?rZnpfRCljbq^eN1=pym5nI?wJAAN|%vX884rybH5od7U0f-;XM9o znf|EP(x6<wW1u{E1^Tj6p<H%tFYKP8EwSsWYXGP*YLsIh!9UsE5N<n;!J4yg-$=?y zseK*y8yuWV+qP}>eW1+5387CQXHP(Y!FQ`Zb4+t_g8`f<!7z-+7zlxeIgKU^9VJm& z5$q;3nGouc<aA2TPy;f@X`RF)j{<LdVg|7F5hP6n6`DaF*z{t<8J0HgdwT4uw>_cE zBzpCU|K5^0rOy*yI0tnG^qbh;S(+O6gmgq`5YbGO9~0?EF)Z}@+Sj$(HvWQP6^w*t zW^HUm1qK36#+ku?i87FSCl9VS4)-=ExwHez;Y;U8^w|>y&@g@j>JHUTO*ni^CYCrn zt6U=35J?9M9(^@tOeSAXEIf+<`|*A@8(2S{-?N|je`!<e@d5QLz2!(?K6_ji*yDH1 zepBDP<~x7<qaR-Xvb;;aqYJWa-zz`YJVp2?z||~3lS`AL-b4Yf%E?Sq3dExWm5!O} z8tTC}Z=R*x_VGiizTp9bGT01+8y8%XU(V#4;&YwQEDgLZtZC&0D+umNd%?ZOBMlVn zS>*Y%U_T8O40!0Im*&h`0BagpST~es$TKJhuN|J_d|o|Hb{}}d^*yQD0{+HA`hpj{ zfX+PgOd1&(p+yT8(EgGA^zH9{j}9I<kV>Ydz&&f=py2wdAYlL|;vJbY&pM0FIr}Wy z^za5+(Mz;z%VxUukq4;I+fU5~u3=thP^^%#mY)g1rnwx0?C}Zl@}vHq;=|7nH>tO) zKxHI>8Ge-d$M?|Y;q5flsPm2izxc3Sk8OCgYG=7K$&f4kQL;A9pT97<Zg#iBRL|1< zb~Q{5410iV_0)Im0i5^jr%T!!>-&<wHyc<^<3GC_;K8kWk7wK|S%}l1(tFjtciNvL zLLK(LvwdFcrR`?Zr7hg)?Q(rS>l5CQ;0;*4j?v4~fvJAMPa7>hP&CW6PkRCd<SHn| zu3MR7c>J!V%pD%kc%?3DTQdNC*4T80Qu8R9gF`{OwY~0W=EGR_5~68i%6r&#J~41D z{m0ruci+qyGOCKs%j((o0mV{RQH>ErCO>D0A#XVyayg@*VZ3Yqk^U^tC1Bm2Sq&RF zY!D}fV=(7Q|2KycD2;RG4AP1fC$TdFc`T}xN(cApIL0i_yp&{l2?>;dq+&?%sWyx< zAb{fpJSL&0aM~v>a7#X<ep#dvWo#|@IsicDS!Fu`B$$BC!)^)V@1Qor`6tW?96Ec# z5s^Wem>Z&|k{Oqw?{iSUTT`4zE?hmaD4J=HdNN|=1*ogqDrDoy!EQHa&D?SG#{`GA z<J22swS-QgBtRY|^Ev<Yy8uDA-dV!#BAloy=mvT4<_rj>^^-NaI`U^(<Lz^AOr&su z-cs(Xvr7Q$i3Q;2&ZPc@69}vy?Yv_F=EwT?(XKTc;MSk|BC_Y`=d&rfJQ3iY1>xC$ zvjKZwkApYedi&eH^u;f|hbMwC3Hl6#UUEz)YQL~)=Tt8VJ{M0@n!Bl!rWOkbQ*fP5 zweG!Ux`^49t_5=`5cC5?&#|n4x<D8RQfFs+0n<g^gDng6lidN;E!K>$LaR{Fq3SxO z&LD<~Qf|Bfq}LHoy|iyDfaHxK1@G#;!ZAKweY!2=T1tO_e5Pc5HTsG?yUMVE&#GzJ z&ENtMLA(MILt(LmOeQ>G6XWB&@Y(yxC4r||&309$QQo|QKKu^v^~+xNGMYDcE+_0d z>&!Lu8N>`A!y#Y8;wJ$9@oeP|kzLjqu~x6~&O<509cbI*A3(wDUiUgW=bUqxF7=DA ze?7~J{=+~1BSj&Y)*BfJXvOXeHosGTk|roJL+sHPFqGy>`(f?9sM-g!bgr3zd1n95 z8hqNG3VMAIrw8lVYo!6VtF1Hk%v+n~fX_4}egA4rRq=Ed<6`^1o$c#7N60*sZpZZf z6#S>#N`a%C=M%)Kk?xRKa!qS{?~T{*?Y`#F@KhUbd?+17vH@$5^GwdXC7-jpXMu0p zKsV6u=O#(MB=4+NgBRV@n?z;B&*#1ffL8CgSG2PGnlnHhF4;Pm&c8V;B+%97AnQZ& zyO#nsI-z>?{dbaM0&=gIOE71t2E13U!C1#Xq4d}?i8%#x4T4~OYKV!6ah{7H>$_&n z*{n%_?%Ah*<H{>u^y%qJWo{fd3n34L%0CKl$GZw_7^OS&o08pBWMT^-Q&d<4ZVI>t zV&s`5@TY^UEJrQ|Pk2b9$sdb59e`XN!Qz@X)ENA@0a!Bf#xb~;e4UKdfV9mmuDlv+ zclSVAYxQC?UR3>)0HV_qNXi1hG3-9mwId80qiv>lxed(Pyx>I?!f|4E1ZzZH*xE>X z-)4AZn<M2yPQG35ovgy)nJoG<c)NA_;%x#)a4~i~6O`~hd+@b`tIIv?viKBr;cgO0 zto}R=FOaoOwiQ(g-|6^xcD`#a=|nnC3nw^Wj~>To$NK$j=S0Wwvz6}p(e%@g^n0s+ z{`*!cGOg<3jRyZ2{*65P*yb00_S2vFpOCiW$r+g-Q>m=YOXfZCmXXoqA!Ty+fW>>h zy-I-rO?cVG6J(ROft{%3g6H|ZI(h5$wSGRJ)_ccvYgw;hTe|kLm8xTa!4^nSEr3_Z zva_n^7z=>x9{AT~MvgA@QZET&li#&1jhbUX!h>+#>Co3`+sWP_u;)<&MboMu<m`bO zbek<I|EM1JET0^JSKAvuaZONOyw^;VwE*0Epr;fZ&;8eTC2g0dFMR&<!8<14A5;~+ zj{eh3i%^STnNrq!CMpz5q7@(7P3xh328%jk6CgJVm6&f`a}C{a!wt#KfZxFo`A4FT z&Q9?{)n$bd`O+@twww1ay%_m6v)|1#X=6zZI(ttZq<c^sSg5IlT<Pn`wLLJlYo>v& z0p?Z)LHZa!2K_izpl9z->tXz918g2hr?=;Qf3-F<bfG`R<7;DE+g*(&{m4AvHumfs z<z8D|ZS3f^X7aE7oMe4D%duCDbD@@@FRQ+|-roZfAE>GxM}Hq{BN?YAHK_AS+K89> z<f&A$x_NK}-nwh$WUltlrS;@Yz^Oi#-Z5=8$LRCJF!KF2yZflXUjjsBjz)eCd|oVy z(hYz%jAGDYunPxi-mb1Xd&rf>Q>#rUS!Q88;~JPZ5Qr+f3y_w?F&Ouf$6;`A4vmf; z=K2o|%%S=7huAPj+m=e@_}6~@SO3@2<traKaNxl5D3`;C53rR%q5Q&2S4ey#?;*}n zGY6YkS4}im!zhECm{VVJ=xKaD&It^QkStCInX=@A2&AG#LE!NDCxNIoaM?T0)zUh< z7tZKWp{tk@I6U;hjI%&rsP|T<5;uiG<`vofxr{uMc`L|Cy0NbFp!J<r-1y8zb&UJ1 z%+$A1wd|s1obnWCm!APxyE!sBSNBcqJX7CsbGKjQleP`-L|$pe$PRNV-_8t(gjS<H zPMVQ_Pq2yJK6N*PezFl#_$dPRCkwRC_I>u)BLVi=KFfZ7BrqQx$KP4t@4e!9WBCm5 z){g2wZ}qPguO0smA38jC(!c)e$Nzlq-rXGt3N>m$8gyqpiXMFG@8;P~Z}SR>5{{<@ z$e9Pw79?F18z~RBoNL}c-IBF>XdSZNW&sR3X&6sjWf%Esspm29??JRItftTa4^KMP zx9vJ;TckacY0jxF`hM}82{_UqLavQ^doY*fM4L9WUtsYWIH6F*fuSS;zB3EFgvvYj zpijX+z=(e?|4dqNoMeBTNhLDRpiyuXL?8eepxOf%4M5X&L2Lv*M?DY_to;<*yimuH zq%C5AXtCXu9Nlrp9sJG!4DP)1POfL!X~S!Mk+T3wHR9?Kl&jy(n?J<u2g9uu5TEIF zHt^^@OxoYP$2PN-ntHcBsgdt%28{Kcd+(}%USALMDyQ4WzDonctn!Th^s<9?ZBrxh zhJf!c-ou{s?(9k}YnWTl(*WO&Q7(g0<kEb6<AbO9*fw?g-HCKt>ohs@z3O{N^Y<n0 zrk?aKlRixMEpJF^Fsn}eey%g`wtp}7Y$_S6{X*sj3HZkN;+>}w#;d0Ys<XssRO+BG z$yeKL$r|33NqOo30LcMKL_t*E2(uU@17jjHDM9}lhotRk4i<fHc052jq#c!RhjG4O z!2;eH<d_v!kP-cLxxUQ3_#6OT)-Aawa%3!AxQMTXm?IpEYoB`RsZ5_ydJVw5z8Ac! zLx;!v=1fh_4In+&h!I{IH3TSgyeNb55TqzSL(_-2Lot!!hDK_NcQpi);uwxabrG%l zHp52>(T$+tAi50e#4j#H?64FhxHaL+sNlT9JxRBk!Se}`+rMXSlR*5K(dTtwh7Vj6 zsf;%_G?V00sWC1gpGL7s26-YYpUju8eqy*JfiyrFskuQ7fG7+4(~p}B`pomDyzPqj zvtVDR5qasUY_>^jrq=_DV@`c(Z$4~fB<+Fr)BV5@T41Za%HIetUY<8-cqaEKJdHs8 zctH1TpB?FMKieHCkhIljPXxFh>GxKDw*u|iV_F^C3ZNh9c=fbT)*Erx$N%*cAK18I z!!k^4K48igUgNgQcj-s4z`vP5z`!;pS^*Gg52G!R-m9&35Oo8&w(;WA-auJA()ag@ z8?soKp{|RQE|9i0tvvd)x5_`W=mIM*+ms=EebSi$)dQdQUS@$<7O2^7f;m*uo>OZx z=LkswBtHj9TSl~N*D#HbkG2HuW{64f>1^L0?eny!&j71_#{r{G6W;$61rAerkOfs# zdl2x(TY&}84?+)gaTaiIK=q|mEQqI_r2sVBB#zBf+-!*95vq(>4*XuN3CLFiBA?4s zS4WXEzt)3+!5J#!It|X5OZ|P4LDs-;+PG1Wq<z+p37-hZ-oH%;9z^QjHjc716K_1( z^}L}X3M1Md{5kf{e42V4hyGrcRLDO=+Tc*YXKE=H6QXtWV@3OFnl_ZBfu#GD86>TC zIA)F)-=^LRoV|~MS2MWGfH&|j$N2<ea(xZ5$M2X|1Q?2(sNY#K<IYox(qk_jkZ*>A zr@?6~kiHvCM=I&Mckdp~@(d~n)K^YF{j?-z#pZLVtEtRbfAPC)(gyN90#Aj`CxPm= zbC9MGiJ>TSyq{yWom9z717ephU7BQ1M*XqVb@1Rp-f2UEJB(N8tYaq)a|fyp0IzET z3O<MD93FXG7oPR=&U<d+1kz{H?8z|J%^{SG;Am=kvMX*j^36ETv+@f&vEwK&M7><x zXf|=ZLOw4sstlr8uu<HrVwi*mW>uMH9-eq^L+NO7xGqyZLaI(~HC8SOoEL$^Oo7*H z0kLzKV$#e);Bf1P%eWN4x=VT$;zGr{j$eY?FEhV1Q++j+yCDJXK^@T+p5!~Zg0^P> zyP<C}#mKVCTF@y!o7y=^^>Gi$T@_3Sr&@1oY1Yv8#nwNM53Idr?xF?h7XH)ELCNo? zW}{cKfL$|kXG~shuF)oO_JcV+Sl~upbZ{0)TP306Nsx`UU9t(l=Rzr{@H7DSqn$h3 zcaI0Ow*uG4`~7S`kLULzf$`%FKGpBV?btf_G<#ky9FLhV{^FPZ^ZmEpcI){7YVgq5 z_Nh#|=?<CpP<igH$qvqxx%0eiSv*atKt8j?AX-iN&Zsb2bYW4Ci!DZJ;A&ghGkKZv zoor?M1yb$<3XCkmx{w<%F<s&;2Vb96pT~|<4R|p?blX^u@d12#ZW`!Vd!y(=V;(u{ zrZaa$!~==Xp`-(f3^LLBoeh6&ZCj<3wDOQ<>uArIHA>Rnn{=?8@ZPi6%Nk31O}T!K z8gZV%d6Wk*uTv9=XQCp5@#NfaZ3L(SeDfNLM2LJ|o??IwndjJ&W6k%3jwHYylO|_m z#LkRZ2b?JuzzBe8pnovDcc1k$U1#f)zHi~54>XkbW&kk#S-3*V1D}1zdX9j(EN9dx z6RuaJKx}%<q{p`h*Ya6<>htxs1vqW&S^&9$YVV0x&}x9(@1PmA#-1zPHX7TJZc`l> z1}JsjNw=ATVEfL4eJyDncfW&|-4zk10P57$g-pQ38A?08y~T+k>RAe+<-Q_6tK(6h zS%WsQ%XHwtei|4UWc_hurN&%_92D>}i&9jPvoZ@%w%8vtsFVt)aRjQ0WJZR~ab_s# zvr64yplG|<E`dH{dR|P=b((1v=V7b?s6(b#Vn#%l9r+#f+2KKlM_yH~gaXq@06%Cl zs1w=-8MeWPN9>JP7?WqRcp{xMwGVPu@J7ARjGI7_c~0UMMNBGhG#UcTv3(H70N)9_ z9bh|#$Sfo8KqLu>nBOycfQ4^y&}qJzgJ`F?TZ0o7>>Cz^5AzB4P3Nx;lnOAQ15HJh zD&5>KV<Z9J&5&kEfT+-K_yf)Yr0+8XXR<$=18MEOCG%34ztjog2Z#5-sdT0vr(que z-QBzeIw-V{aP|-Fp8`q~sYU)nu&j;Xl##Bb*&?Bli)T&EK4G3o$mQX@4D-j#k#IJv z$b_*H8cLfhG4=x@cUF&8J+WuPiAj6$71+K>nn_*!fya;coiZB2sfops!|N%WU|_w~ zchTeg{dj@<v4Zv4bkiR%aQEQc1Myb>W($061?KUhN3Z|UPu_OTH^2F+eDJ3E1Rj2I z)NFbv>7Y%~3)Tf*x8p5{)pajtRVt{~&m}=nZdOmC8_>x%se&8x4oV&TgkfGm2^6!$ zMnaJ>?Rmez7zbbKY8-ycD3}Ex>Z$U{KeAxSz?%my%Jo;zmnKV+wpN)ydp_^2b)J;e z*0m21#eK1;!;7_R*UrER_35T<Zh=<0a!c{M2K#1@ODowN{ktsa&z_TR|4cz&0D#6S z!`mjvii+QZ0s?>%Ku4lt#A0dUrD5<x)Ck;O4rYU7X1&T0P5A)u8#M@9!dqXUC|9Jo zUY8w#AnD2fAYEFo(VT(7B+IL9>3YL5yG!H2q=HNZ`mH_7dX6_VwSBZbz0!#GS?w3; z9UIRj*LzF7ox{w1XZ_OyF%LNX*i$1PURkM^fx`6rHDl2`r3}<%UVCO-r<*Cui8p<F zt*Zy>>J-p%qGR7L{(8^WMx+nYRZykvm)-@G7#NXzwXvv_L)#sccGS9P5UB>3inO7Q z^^uVS?0H5^298DlL%s_HT_RRx-n=2M8$8kgvG|F;J~=r-bLY-WsAK82w|Eq7OQk1T zyP6^BcLA*aa;(Oyq~}ImZqg1Po%>be9+#V#7-Kq&7&|5AsKfZi^QmO8&b<Kl3heP* zXy@MEK3cYHkkw=GH>79RuV0_+ih4?=8bUJ#00Ji*@30XU<7NyEcbuQoXh;U0aihsW zwNV7;F-46WTs?s$EsGi_kQ3}4=YYo96CR>Z(RTcbHDyy+nQ$AlNt3BGiDN;oBcY2D zpBiY-HWCsA$w15zgCP+S*ZvxU&cY=^@3(n{KM<ktWEFNpa27{$s(9x=Q%@50dQ8PZ z^+x7436V_<K@}-af#zUr=s|8a5bGz6k_-cr^}k>|hNcUTlb&gKQ-Rx1NvHn$ZlQO` zTh&36K!VVE)>!&#lP%1dhHbh8Cy0hIh5I^|eG4{&J6mhcbuK)KK>b+Gj~>Toj|Z&J z_A~q0v4Zs{0^C~#jLrte^=GSNjt1uScRlvN9e3Sx^}m1WQ@@1(o?=0?)lm$z`@qPV zATbT7XMz-4Kox{~-FG=AElZc?{-#wOG~iKEd+RxNEnO6C(N)j1$=}(i;D$`Vg*26N z^S!Jbiq}Q=8BOIHSg_PnCEz0)<f`rGJ*i%W#-86mfbWier^7F@Y2as*l?PNP*xtr7 z?cBMGCMHIMhJ6}5>pj=5T}vxgtl)DWe)wV9zI}U0%3@wCEPP6JQEhj<ma5QXfp`|2 zwgLxPK%Y!bXw#5RU7os0d9)MNk(!(e9i3FG)+rx2x}d}GiU~kpuTi1cK~XH8_R7>0 zl^{)t_Xc2&^yv8_!Oo1~d9PL($ma^hkd|AyxDBdJ*QngtNehOC9Dwx{vecGz(g)Nq zH2R1iOa7Q_+jy?K2iblHBkeg(_Zh!aWjk6*VUSlIr*?siOP!^W$TOM;)&QK1VFmr! zcdl*WIo{TGY0rN;Bd(m6)@-+VAx%F@8#-D?>tk9co6pj7oIftr|1u>l<LSBUM#;eL zB><=&3)!71uXF`Ui|+2R#Ok6&{1XLv0(R`!Npt7UVUKz*BvE<yr_NqyrH`nWU6Yzg zoJy5F)vE5K_q7-VzY~-WG}a(ndq&;Vm7;;k+MlxTTtU3wO|iBz?RH$Vr>B<_?qP=l zKwaVjw5<d8{Lmrxpo0RlaN$DszANoTaz!AY!!&2y#?B(<ZE-wU+nd3w{YM=!p&igK z;zqMpujZ?@YJnY~EEmEf9{-JF#I#^Xt{Iz@IubHLtbpkrXtad?f`q3{<Z+6kIyeyQ zI@MtvYyxh;X0yQ}nE<%#dqy+yu_B4it4tVN;&$iVMKS-tzRB#Ug!w6ipb7*810!Hj z$lbv0CjR~~vEU=Fa4;#D0u#_{dOY(Q86+*G|ERJH!`N67$npi{SnNsg39`oVtS;>x z0x*LK!}|>~{t{T9nlqA0B+~AxH*bc>j5S7m;c}ON!Gn`KM9n7JovMJNF$)gJ`}sGN zKw%2@MiN_WLNL+^q^ZI@o$!iuTGG4e_aQRDnNG6V5Nak?QF7BnSTxb!v=#n|mFRJN z7ahmn(Q$lsEFk_^0lVLWO8_!9zvMtooNPckyl(XIR$zVx=r&t3Imh2ifw=YozJ{)a zEr7pLWDf4!wfn43e*6=EI5u{;2n}qLVf4w6#9Qfsq#b7oGi<RFbrIu7DhN&oOZr7r zr4l{u#617<=-`K^!9jW<HeFux_<P!o=TfH^cKOcJ9rXFr3%QrsOX6ZuZQzX*1qH^# zl?B2)@!^eSCK)e>=G!OjEuAreCD}H$zFxjjKZ6V!Jaa0csn^$^02)I>L%hYjdi82r zw{BgcQ?3D|C}=Mnw|Mbldf<TvQgy@PiIn88dey7w_S<jgYbam0m3Q6$JsU{UJ_j#2 zI(D6f^?5s+zXQmgGk1{AfA0BgWMI2}7c%H3*Mf&lq$g4LuI_HCa&TLiSJ7UL8g+Jb zaf_CUdG`F(s}=Uf6J-3b!;>petv<~Xl_e-xa1h+gKw|HewV+}7JneOMt|{k*@kwsd zpx^pRHff>uH3dlu&eQKX9r*1%?aEy@0Oy~{O4|Ew0kT>rtB)OT250&`>+@M%%_tF2 z;FV6y$kC)`X>ekaiQdq0H4lb}<)uhJSIcfU!~3q|F1>T%dG3~&2wq?HLOY<t&IEu< zc$Sf28GUX3{P_$v;U&g-_#JeYLx&DBRRkG7k!u0t2mpWHym<`ZaXh^1xCH<^IN(c{ zF5}>C0AT?5Tu!{!ItSX0UzTQ<o_Dle?LEreh~ss))2Jp!i3x7va6RSD+ni<Xkv5j# zG1q`zbqJu~xiAOe8Q@evo1#s?eOF0YC|p6?9p}q4=K^)es64vcf;vesyMNDN!3@B@ zP%Pw%g+e}VG(c*X(WZTqfjnYV3C;toCgCG2)jX#t`GgmyK)}$MK>|s+frYs(9Cu52 z!dX_~q`<~va5nS7I!0p=e-v{{9K4d6DazFYql5!C1HDAiBlly}HW$W<IJsFq9$)1! z&xPDjG1Iiv`VM2!jinjCHkxdVV52y&vbi3OTnY?>;U56LdZV@9iJ_q9D!qhLgi3zc zpsy2r+lisAbGUinVM;a4p=i4eItQ^CmSktO1gEyDvQ(!kl8L-NM;+)UuJ1JhyfBA_ ztW7GLFK<^LF<1sIIqtzu&^bM*KPEn^WFZNAEx{s?|AgHg7hj;Z&Qqc)lb9DrKj&!R z9mRMI>CZek^2#eAo<gH_)1W+fTT`Ig!aRccrB+YqSaAcnBE<lT8*#2)uVE^K2QXJC z@^)ze?TL`8hGhmq9E@kVXQ0HXe^yC!0e~mZ!t+cpx+MFT^kJTnIGRQ495(3`xJOYm zF*ZIi^w0nN&;Mul?%__6*vqEOm4GrVlJcDX%^5)TN+>G-=(jZeHlzSbU0l=Nvh3Eo zdY#pi<3XukG-b<E3=I6#jH1b)bb~{;r%k%gz_x(d^n$GS@&HHyNGk=ItVde2|Jg!m z07|GU!XFpIVJ81O>yb{EW=mj%G842TVaX)z+=)a>hzn>nq=h?+#SvaDsH|+;wv9os z(q(+Tu$V$lQ9bcmKP<2S9e3Y-H*;$};LLi{{j<#u*e!4|nT*5ZV}V0`nfKb?N0-0w zh4jTQe36eUAb=Dgjlf+O&pW*8XPkK!O-+u`)~(wJ<FbgDj!K29wHlqgY7r-3x%b|C zg3Kp8@>K!upb$-0sefRQ<_yjk;~|sLQu~|5F9;|~19Vebk-uq1-%9UZrDGP%v+ije zS-OnhvG9F&=I{Rg3dYSqHRCY5V`N@&HA-e0Umm=B@4wII;QK??xUsn-O?!h8@7utS z88c|L4hpobpZoT)>!!1o+A~{yq;1l%H0eM%0i_~4SV#i9{f>wv0;{oN5)5CAEr9oV z^O_t$3YrH%x84`u<2Z~dc$e`v0x|(gL6d=u;ndV5pND&c(+zENe79`bayoSAaFVgr z^W;5k#2Z{X4`%h$ZGJQ3(CB^A4|J}!T_BUIHL9V?1pDA^b%t2*sK(ad9}FAa`NJHA zxeSU}k38}ykNwrFPvPq<Teg%Qdu$W$Jc#6NE)!5K<2W7LW5zW<qy8)u@}-W>0>sC7 z#PT8})s31>&c!30iP>RH3lAPu9K%UE`0C*^@zgTBR*s7Cw$U~c8y50k28v(ktma`? z-bpg^Bwl&-p$8U?!kR>*P;fmZ6?d;gbmcX95#vE+X&3|%zc_=H0FreOgb#EcVw)}O z*l1l63Xaqc?)2F0&Im0f%%_^wN@w~YxTyiK3EF2PBp85d8t8L#%g6jUxk${E)GQhX zZt(Ai;7^^><U=Kl18%EgQ1UIV%k-r<#|8!t4AfQ*CuLJkU?N8^1nxZdy<qU6?()7v z@GX0l<e39PR~LGa@((VJFxZgHOVo6d9TSzcN^(LKQaZDtK>&q7dcXCh=+;v57InKf zDE$ZPGO>sfFcgrOY^~@T5OV7#B1diu)tWb1X>_L`v`H8z3XJuY1|@!m(c-ZV(n&sR zR>sYw_I3Jmjef?!HNdX|{0>m(b5x8<N>Srf$u7QI;fs34`S)<`AcG`8UXMw8=J|f^ zTo(M7I!M5_jxF=v+q2}OD4K3Go5fFl^56d8zI*RI8Iv4}=OyZZGS7(5@Mjah237e5 zF3eH9xazjGd0x`|dGWT*49ZlmlmSsW)-OKNjV&lD?d?g^MNnsze#AcjSM}_mUZ9P5 zZ?}Sf{oXX@XL4VCd-;;qzE@A71e^IRvop8)6#)80)5d|{;YibI?Ag_zkp)UL+p&N{ zMTQkoboarhdZQ*M8G?r#-YkFt@m%HEJB4H}{{3v)v`K<L3wcMCF<=Nybbx!+L{9_F zRvu4#Hf>LvD*{yoToxU6;r-(y^x?U4=F$x}{Dk?ud-v{T&p%XW;4yF1YNGYt3GRAC zyLays;Ez6#1CT%fYD_zK?WDy^76&cpig-*}+gY@xAs;t)&b%aDyVP4f>{&y~d$Rp= zW(`WCUU}+FIuO#{Yu59g_Nx0pI|HuC9O~3Wvd0;q^89=KY0sqZCLL%w8(_Colm1-$ zJ#D0z_syPF+e62S_q6G~{q+(*WGX(zp1GCLXmv@CX@7m&{qXlyU}#x5rLSX`sw)!^ zX}c2`SJTr7qKugK0cr^Po6yg?Y4`5ktXB??GSCEo`1trHTC`{h8`2n8I2Irt0DgFQ zCm#<$tJ0|OMB_6AtpePpcY6FBuAlqBU^P6`2DkQGTMyLpF6W7ZC98rZyF5OYNp|2A z{5N>KsrpW%F~NVsc>r*}Yu9cX9v)^2kR~|OH3RK}XT$xLFJHzqn|ywY+extbT*k`( z-`>B)T9;;5Lg2dX%Q@$dKO+9PWMpJUW<=U)yE5(UD$%YBO?A^{Qxta)hzF_=hzF2B zAhpy|zk%QZsd+#MREP(fmb&RytDop<3UC!5yIdx5;i}4VQ8r2&JDuT7XF4-3|Lt7% zWi2%3nB$vst+US`Sv=KIels2Z&pCVVwb%9g#vI?6V~#EnZ0>YL+FQ|j)2+L%@7it! z-px%-3{7$RGC(LWX5CCZH-H4h-{ameRI-pIbvqO)LpYUpD0;=l2Z86}^+?bzv5jp9 z{JYQSzG^L71--YRq$DvZ;KR{}Sy4Kg6IAntMUE8l4^|m{Bi;wrP>#TsCtdUB731py zyD>9JkGnM-$^|q+XqGkD6O)Y_+=XV&Ug&opmzK@M=!V|}MpEz5!q&Q6rr`AX4?5}j zwl9?hya&b+M6JDIHaL7E1_JvgF0k;!C7ZLFW-~odkpc^GnSc}v9ZLeWGwg_4j%S+C zMc5NYue}i6Q1rHvFC}^|)I+*K;(Ypv)F7#4=(LoPL;8{VH3<Sd|C3*tU7r|OX0wb9 zK7N0N2B>%m*n9NyeCO|$zxc^eik?9}?=`f!D*02}wnN#TI%$>PXX$^u$Nu$)Tr7It zFC`9nJ9&Szc76FdYzy1A+v@-Q|N8&@YrpuHe&K(Yy=#NXn?EC(aKs?TKsRUemYVKx zkkR&I(9f)X$zg8+wkX!hOtP-~l7NnJAQ&<M5p^;Z5Rc-kYylbIA?qEry=--sR~o|B zjI6Uf;co+_T+}LgKmgSM19KTs{HuFC{~kJLo*#Yh+~owv3r6nk&%DF^@bu62#jhpo z4Q*-D{Lhcgg9i_rhj2|<G+NR1xVU&Q+wZuh{2gF=*>yJVFUpw$;0kQ{7M6b3rH<;* z^aHxA?tH)49rf9-KW={Q*M7}@UT?O|9-4LUzzRngg7l+xb^V)Q)B9D^uTb1NHCLCH zymo!xJbiZA{NgYEWmvq~^|`*rYm_=50eS1Kw~gVKPxSo0%?xtf-}7fm_oi6OU;~|x zDY7zwAF=lNKG!plL3jq%r}ioTectU-$B|cq($han8kw+Umn98t!9oX<nxECYO`Qwb z!s@;e3qN;)S#Ec(Szji;^Zn1`M4oR>19**7^Ql0e%@U}kPCf2bJZtg>&tt1d5PS@P z8(<y318jfhGoLY_3P28E31^hgeC8FC$w0yg$0L(?ou4-!eDFO>tdXGN^YA7|A|MwT z$W7P@89fh%=KA`odGO$K-XJdD1JuWBjE(c1>nI`t3eqNQ9CiG<4l#D~KGt}xYaFXK z`W|i<`+?OtBr(79JKr!Z|L_0)_v{$4x`6G1Bp}JeF&2r*cDrf5@P#ilU--g%%|{<S zHv3Eb4F#*JiO4G*?68`rM&1LKn2$$Wtw7_!KlLa7-k<yI=Rg1WcsydsWH2xF;;U}s zr*pHW3Zdr3v6RzfBcE`haPp2OH8GZyT~7@x+pVNEL?7WPi2*eC!P4L7;uha?XN>(w z>`Ub8SnhUb?QQxmmf)r1Pr0*0rY?YMBUBQC2vVj|CR>@89n<#}%;ho^ijDlLmvKeY znU(|QrJvkYePziROee3U2=x>7=h?53uY9zgl$3{^n3M2N`)FUl4yChkf)1NeXPOeC zJQ_4@N766EHlBhQ9yIQq?wej;O63r#{DLQ(U-mCz##dHkD1r*Mh1aAce;kdxs8{kC zCX2(Ih4|!{<LH=eGV^olW4AX`{ERr%N5WU`xf7q|qZG(RO9vSYi!QkZ+~?Q1NLX|e zEx)sDL!a^INR~x<&+`3u{U?wgEP62U0`1)kKzw1`^LP0%V8c)Ui~sU3{OLdUpZ#b5 z2$w_!AT!X8$^EvcaAvWiC3kW0NFK;?Y?)77&56PNu&}TbunG1rv)BARG;X0|50Ih> zJ~|C@JJg$UITx9g_J^ztz8^(QONKiDg(MJkjghpV<cPCmKrECdyZDzn+kD$*)>FVe zTrcE$AW#=B2=V<f=`Od2<H7!7()--S17n;Ev*_Bqk}&u#@K?Uh0?%;7(7nO$iEEnK z|0u>2*cVfp-G~CP=br@*1C;6hWP>9sI-QON#O<8m8oAayu6f=zeci!a2wd2C#Zo+0 zIQP5IIQsmE*B`v}Qek!awzXn7fU#&wHV5OGrCx%?)BDAD1gm^IX;UpoBByQv>+Fv% zuo7&204)`v@;lTNCj;_1n;!{60QzX=rE8x%x8~$6ewValzM?cI2|~^igg{OVBEiu) z%kqo)wli4EujQZTs~G_#=hrarcQ{jN9MUz{J<V}}k~eyZ!>%ybtHj(3&<PL@z)j1@ zb7R@jKjZ4^y0Fhro_y2gF(@=$8F;<Ax@lg0^)+)<!TSZkkx>5TZ$4|@d+$ASp8<e> z{P<(rUu-|`zicN#XvFo;(v=`N<|IPQ51FZsRX{>VnFmDC{`}fTQm)#ivH7{5`?=y2 z!*j>$3m~5F8(I?|y@A~CH9!CJf5~cTe&Q#7!p;?dK94J|rS28EYeD8_Me8nW!ueYb z-Q|1le)gCDk$?10ef4L5=4b!g)#kx;b#r|VrG?+}-c-bJCTy}HbH}Vl0u&+?8M3=P z#zBiKs!7@s#eqzq-o0!snw+XR5*hYlgXnS`Jy#B^{oa=9BSB(Phy^J67)NZE$RD>! zbgnyEs_K4K`6Ow50Wn^`GDZl1rgQG+-_jH{S~6ydpC?xKr_8@yWn&Jg3bdYy-?baM zv_40byfT&=8g0jbyk54`t5qT&OC^LUCoz9PBsS%UEDtfFU4A{DOO<EBFTa%)`-yTO z>8HN4dI&!PC9*DUDt`WDn?>rv&uX=Y2_!emyT+~5`1ikEjk`d02I!}d{~T<ecrAfp zzo%|(@6^BL=OwUB%=gkNF+hI2r+j|7A3wl<FLH;;-<y9wW!HG>_YC4sy>}+NDHpbB zKKzxx_O(CxpZ-7p(|-YA4a=#)h|FCu7*iQ|bC=N!z|*NJlam;l%)n<W#khv^<n6ZJ zF`CvCuvJ=SXNFxln2sYe(Ao7SPsjmImJ@6Cz}Cb)_r>Ofmzi!20s#o-lA4eM-3CPh z=9$sYO``<9xL9)g_E(am$usL%c@6_;?GJf%WzNR({BoPY6l#BGgV=08bZlX77u$=^ z%r5of80HME?vYqISeCCOAe%NdW9VmqIj>NJiL%`r#(*pnuSiU-GpjQ-c)ynFwci=Q z>2IfoGM?8tBc8$KG6F<p7Bh~c5OC>y#P`SfpWo|qCRyLDdwTxeku>G!I-k$HQlw+b z#~0^lUX;2#H(FU>;xIplIz977Rk4j&IY?V9GLU6bo8L2kzs9WCpZVu92n-@3ud4BU ziNQWQ+sv+g?sGvGn49L&qesTJ3#0<Xqd@iQ>bXfiu)Uj`tLEjG-)Wvad29?iSaYm4 zp&<1;-}$Z;s6KfDhbXf5_zYfq|NU<^Z@>K+1McXSiqGa`o|d(T87r;27Xss)c+byY zZc-P-Z9K1BndQ78;vz_eOp>Un9up}@fOziCZJW}%W30t-vu6i&?|2`QXsr4@eE6XG z;upWzeEZwqwv~*0KPWN5K0u1};YXLv&{O)jSr3Qvvx}>@KmEq9|Hyl9|Kb<kd-res z*pGejn?Ln;{oPNlZuXC^udmO#wmmvROGKz0u<I9$ku`88IgL1Ex;DB}$SuE}5j7l3 zMQ<q_C4RN~OxK{pp@x6;_p0%|cWIs9$l+>I6tqsha-cM^OL<ydC#*_JOBssJrl`_g zb<F%C2zGA8pD)L0gs*}5vUV<E>}-=l+TS7ROqVZETAn&zSqRZx(C=kwfZBO=b;_fo zKeK6cOkJ#t&wLRZ#VIN?WbTTZh-6BiZWr6<(I@~bfqr>Cu(`PvW3Tbhb<AjrTE|Q* z{Xk;(!xq$Yk>V%Q`}=yFf?L4-1dEZG>N3EkbC>^q5~QckFTwb!zr7H!F9G-+U|B!k zdS4jl+cxI(DF4kR=|8AN<MKVr&z08}Ec>1ByW{shB^rAD@$bC<yMORM`M>=q|MG5k zZ92#R?ZKYwUdrHl*|<Uzoo?6+{&TmzXs#3%jkhOIEM1b};qN@X{C8dqDgWTSuc^;N zVgo}X&+iOP`J7dX)r4T;g2BwIMm!cyN`6@uE*t{%(2p-Cy-1aVz2dpmdDHpgWXJE+ zXM=Ul@`k7xm=`9_uaTHQG1>D*6?3r0bCQ{e`I31C(*d9+n^en~F6N+Yf3E+|gWM7b z<?A1H5%C_~l5-HHrZMyF>vQ2$G*3oK5(uliH1}n2gW&ZZo5O-hj`J3CXZ$>yG8Rc@ zobTl}A_>*!ZYP8DeFy-b@2BPS5!ZXZ|9Kzgp7VN5=XJh~{O@vqb)H}3?;oF?19iEQ z%#SI5CX#9G=X_NlgUJBgcg#t*?!y=TK2MzHOuWwD;lN{tbOr3V&b6+uo?qzJu^j+Z zG(m&x1uV0e_xIobesgxVHP;ygKsTf>l*c^tnv<b{eJ?B`zwwRVHg=s2)kwx5IRNXA zehv5>_J@A(xt=J-mXIKYB!<^e{UdUs$8(}0TaKBnB@pkv`<^l6zx~_4Z6JHS&i8L7 zPjr7~5A{AZ!pjmx7OG;ELgPH<4J0d{|NQ4{KLE<{JI<2`rsa6>^23YY{{uhvxxe}D z=Rg15Pks8$-+%K{Z+`!CpZV<juRVJG!;6P6U2o6Mr*Ul0o;|yK$$*i|CwxK{jjnMw z6`m40x%@(~lnBjUrNO#}EUx-%Q4^)2Vv!xh<{M39x4=xh+^6(F>+{P8-9Ut_+#T4v zjRr3||0IJ!2V+8)gx2<zN$=tBOf{Q}(7wzV0smU_ZujIS^fzv>E<t|Llly6tGABRC zb_%TRReH&IXU~UP*VwD2l1LbQ1wGpfqs=p;FDvD-v!u0X$J4!~zlGq>Z$0ge2=#PJ z%DuC=Xc|xM=?E((IQe^Fs!QTcy;CL^zjU*|#e>cBoPm1=w95zjjw^WQ-|hnRu>*5` zxqdwL-cmSv3dG;>-(A3csY(Ca`ELonGYD@My7i?+WBH6g`(nFd(r15{qs$4W-A2Q< zZLc0bdGg+${j-1e|MI)<fAb}Fq(kSu@ZXh>bH1h-u*+u7x>goTvFzfag3c)R$pxjk zpfc<c^Lz8Mw<d4`ZtX|TYL^{4`LkMqmm7j7*Cr+GTeh>*<dchFsks%)8=U~PEv!<Y zC@dN%WG9%|#uAK*InKI$tw>}xIi9~@{B-O~@Fh^m&lMoLSlSP!m$y)6;3GK@&<`zp zTzCGP<w&PV;=Edrk0k?je&@2FR_8~L!aUiDZE^c5oX?-l<52*1z0T_u?iRZC(G55l z!FcRr#bds0pJmeb$F;gG6^Z9&x`Q!}#6$Pk9I(%u7-fc6*LJzhd9pBP>X)lr`B~Jl z=p4-x$hizG?z?5->wG)>eAY+vbE@x{5A|_A<2o%@#X@Qog|tlA=S|eIyl5#u%8AlE zv6zz-0W#yf-d<_Y{jTFt!=?Fm@jL*40=T2`83GcRM~_}NHyJSF^m4y!9zA-^^xkBj zI|HPj{`A|XVMmu#fLN@U;=7;&hu=F2RArH<Zp2{mKli!Mr(`J3J-}~1mbtAjH06}~ z%+Jx>xk|*q^XFI1cfb2xD;9-(2XY<kH<Ai&hxe1@nE{IC#7tgY)3dF41i*YgriU!^ z=`$oljX6U#I~2O|I^z7`eNUe~ZT`uB{7?N4|MI{1FZ{cki-)VGTWuf`+#e3ZcpT5i zX*$2&S&fgJzGd5JX6%MzefThX!)`fZCkOS;U|Snf|C^j+I_q<3V}T!ZvWwJnCO;EZ zF&eZLDLrS=1&5p?7VB&5vwn^n)UyUp0*KPf^R4zw&VkKVij_6^<(enM4(?L{sa;Wj zK*}SWT-8H6Boya;qM$Xh!yrB_2{AvkNDb`d>3p-d-fWI7V`-a)Li4THc@f~|(aHNo z#iCj)i6Y;!;-T{&q%K!Oc<5!|hy`3Jd(x^xBwV^?{#X@3kV~Y3$@f$+D}c(+;w@<z z>g{z|cx(szNj~nk*!J1Tcl!4iy>=J)=DyD9!UDiQ0kk(Kz;bg37{2qrQ^0w#?ef|} zmp=QOf2KdBML)4Ey~hen^Y4q#l%JJF!dCn0`sVe2<KOr<|Ih#JfAinGiHU%+iaAr8 zfq`xOmhX1>KO=InQZ7`|d&!hgvXOzwoW<6%YrG!s%Sprhw&3UTY0u2zTymiaer`(^ z6Vb98X$Ht4709v~?GwF$Gw2ME8B560D264V&NF<3HMz%m#$+t!i_5}u|NMN+!Ei?B z*EqHS9oc?x*%mu9V7bd`KKBAex7q$V@C&CLU5juX(z%&m%V21A-qpmayklk;iq`|Y z=i;~k71>KV1HL6Gk@jK+{9_+8V?76cOAxKk@q03pyetx40^z#=Z`_0N+$`_w0EKga zyX=J!05tBAkYz1Fzm8!JpyuZwjz#x*J|~d`%{Ak^Cv?8Ur7S0}0n($8Tjx~UrOaZU zq|Plb=ZVU)(`oj{k83_(Van$sv;TQ~(R)=xLdOymm#%KDWC)<*J#>P(FxMumRzdRd zz3+XudHC=pW7$EfKq><_7-+TuzOfBx-T~l0_qlh?F7o{Rfo%iN4Bij<%^Pog%C-;I zAA!GP8(IbBvq-=m9ZtJj1*LL`0l1e-&ip=!IRM9q{r=LIzTEuePyS@{Yrpoln$Ldr zvzCnHu_qHTI){{Ca-0(g&(|W8Cz5Z$0SedV`sUJ#c(J;$U9VsVJHGkGqo;4a{`$vX z{NfkB@%kID|IWYvAN)su>bt-Hfz5keJG`=a>5Vsc`~9%Lx-#~Ju+j{+S;}aZj%buh zqZjlqHH~}mel8ik4MG7Q{g6fn?O4c*`A)JKp*PyUI{<T3tiDAt=)|K|TxkjzFAu+( zq|(a8SY+7|;yk;KLJdR9997u;LV;(3WhO$D&N`#od@BgVmoZi(zJuc8>p}$OsX~~S zm{U)Bpos5112N~1Fg%H2+RFjb`EX{PoAd{M@^j|kJFl2%XNwG{tZzto6GK2&$`sJg zmkr_PfkO^J8i#0*pBbnGSp0~hGp#H}x$#&IIej1SUW)P8rB^XT-KBAlp)U^X*36g- zN|XD`lA)gg@dbOn{P)hE6R>W60MM;7oxyVR0%w*bgMMpU3ul+?9&>A3E@^oY_<zyQ zV%l%*rwUvBRNwsh|NPJY>|gu~f8pJiA3ik4jgSsd56&fCKDZbJ*{v>^Z8opqXDB}j z{Ww`&vheVG$NMOq2pNr7ZL!QTFpKeIl0bXLU>TKQ*hw`{?I>1VwsDW+3Gk5h?b4*n zSw@Uhu-cq_0j9<J=ENp{4}XvQp8IwRH01W+8OX;?FK|NZOfvDBL^auSn*zxM$7~)F zKrypc0yN>juhAzSqdAz36$Nj)U9M>)Py#TzFXqyjoJ<7s9<>QNXSq?;DH%sjFnBHq z>;xv#J7=GrTWroF#?1LKpSrGdFdSsWoN0}1-e&wy$DHxLEd$A5KR`XNS3alNg3(aK zc={OT$;9&7=w3XPeB^5oi9p_dG&<t`MYAYf<49iT_u9N}B))&ieBTEC+LwH7=1D;$ zW@4A;Nz^<cS$=j-T*NiV$CY1?`@|hdysiWimux#5*MkWuKsjVFZ@&2{1K}8l=w1Zb z%WKA-!)*r79{@O*^e0a~HUJJ;3O@hx%MY9HfB*N*^$G0ycFQJ1*uGrCSk!rDokbzF z36ddj0Y1a$imPP052DwF#(Iv0(SJj$NI`yJ`)|MfR`XB%6aQHABR}#5J2v!yKmvh% zj`J=OCFGPODT0a5W2E*4=lA+%*X(zDbB=m&zHL7H)|*e>c;k%^UVG!U4?p+0cYg0j zzVO~R-uuG4zw^c$Z+)~{Z;wsWU5(Rp^_PF~tAF>)uRI+8&>#HCU*7MpH~alK7)I-w z-XJb?!E}4!VmH}VgN9(-y9rAZX6^wW5MMcm!cLQb4a&4pr0PMUaBpQ4&FjUUW|BI4 zFuU}E;MF|e1E)JDuA-a((;+1<H=Gg$Sp}K_V`;>s0gGdUj2KBsCt`YbzgsmX{UR+X zi8or;8#j4$%%5Es`E3sAl9itm%XT{1%v8YF@vzQl>9jL%)x&f=R79B!3Bi0jt2>AX z-nXyeMi)<`fiya0u{19NI3r%RB4kE^jUBkoD3?v*ti&iTlXN-D6biolz3f_Im3-u} zw;{DGkEb*CSyF{no*%S0_4cf}V94{&exjGaT%VbN^2H*HXHMnwr+|5L3e28*Eq(5V z8ue7D`XaD>i$y=Ny;F`cFVd}N`HfijQ~SK!&i>|R_tr1{(l7myFMs*VHi&}_5}PhP z;SNiL{y+e@Xa97u<zkWav)Xj$;?c|^3J420<c2^2=v2rQgSnV&fcVvFZTo@uV7ZlG zJUai)85sd@F+?$$YQmQ^LjU3TalG1|90oG`t4WznU+74q{pPV~$)3eixfxY#lgYx8 zCDu97_bPe8YnaffRn=!vm?g&$y}z9m<VLa*OVQC7DVk0#S*<)dXBIuPlwvLC&O>tm zqwk!9usJI~2fqPqGW$6PR7=~>CHRgNhj=aCvt+wt91MWA9Kw`5=KcejRo45Wh9a(m zJ{Qb)BsRRib#8L!$k^&K2~Z*z+sv##&(AX1$W71WBr|97v+jCX1Rebx<}Okie3y<j z863}72y(0Ya@H1w#(5<w-!ID~M%OZrGZ~QUyCXps*k7{Vxd>eM+wFTawx#-v=;JWI ze`8DobBr-7M-=jtJOH3&htt7z>ko`Irrqe;0Xe#zUb*J|ffZds%MMu$fUx8r)W+|v zOEJcaciwr&Ksx&-V4PlCfvUzTkp$VIRW2(rX61e!L4L&bh(db3#s*T)n!ogy{<7IP zVuj$RfBL75=|__(kt8I5@;$;apB+tkud$ePZZ!#O$MduG^_Ty^kG%ixd!PTkcRu^s z?|l00x4-|^n{R&f+8eKb`0(Y|K5Ci{gWGn$->q);yNjFsb6mZb{`8;u=fC==|I9!4 z%j0-6wrxK>zr23nw7qmA)UrDuO%$<#?^1;751brY*b~SRc#A%!1+W!igadDPjwv*N z18$e!ILLB^gvn`Cj|h`*N7e=z{9^@lm*PwZt7YUYf{WP=UZf$?uTa+G2s<_SbjWN@ zESWvm*R{>m2NqUwYqB)t?kd?xBA=2tI}=`>Z37~wo^#8J%HR`^ESYZmb~4&!FwLtG zQ`Eo4bE~g*bxc_G$n~cnWAW;?aN%cCb}s&~l+LKpvWgc-CkXi<U0`C?2`d^;@c8kP z<+P@Fr>8iPz26%S=y^g*Pbww^e!uv@M)i?v+%wQl1M01rFAug$K>maL?F9fl|GZ?+ z@tr3NO+V?s6Y>;ZuK1g_c?*m$*mnWv^7#|&{A{}m(7ybxTc0}x@=xqTIhVWL?(F&V z=jXHo>x%uDmPey)HQ8<iCX%d87sw?O&TZ)D49Ep6H7Npg2CI{o`w52a`GD8xzz&sA zWC?sv)2cN7(d37TQOr3RW%?!O*6*RG&y01j_xvsbWa`!BR=|c!0P=V*CL0|yog%1j zM`YGsU^x#qIxhi`xDCCgPNUHZod5&&W_h_7-$S;F=Q03A=;|XGiAFO5Ut0ENf<^$D zlNm7b>Y~a-Ov~v3>S!AmNkQI+oUkd8%b<;{dw_YJ|NLHm2FhR{Ff72u>yg1_fQY<r z0b2R_a0rPcNynDYQ+939eyH<rybsr#pVM^}$i;0e5IeUs<!e5k6~;0w`Ibz6Fv#+8 zKjp^4Rh0SPv!&jASdEELO?Ku9NR}ZqC(c>0v-3nRl7mDB-C9Y}xeOMY@0;(N{<d6o z&@tri&JwRk0CKW9U$F>QKd+E2&v*U~fqRWj@tH_4ZYL1AD3!^*>@0O|L{1QVL(2}9 z{knPmbvn!783iG7c?p*NEqe_BoRXK;8Yv-Od+iN7UPxk41Pb6kO|RH9{HafUsyMIk zzNWiNK8~e3kLqo5f)kMwS0*nym(lc&bvAIaq3`;oB@gIwiv15Kn6%k4E^^Lb6Stu_ z<Dk$K+retW_rCwV=I{Fxf6w3ixBkt4{r|f?e>k3<pI;5b_R2T3I*y0o>gwio%wN&O zM@yyCbb0yg)xPiTMY!=ecqv*52SxtCm5ilmjLYwYog$A3&QvH$yDxTCG$hB`Q^%8b z^XT?-@re6#8v|{(kQ2fjl8T?X7-~D`3D~*~A$!$00QMw+04}r|uGO|x0D8kSC(tvi z8^a$;@8l{3>|4~f9nKnl)uq(_Nf$3mm+}-98}|g%XV$pRY!?fg&?ND+&}JpnE3=zZ zc!%IOQy`54-QtW;tQO@fsmi`K{T{aMSu@Fv_;N#>xIkLz@~|*em)o5%rR?z&S?oT8 zey}}5l2`^FJMZ%TEQ<nu57IrxOIpjha8FGq;9V+{<t|ImK7TB41N!{4M%blDc?r(_ ztBPc%y#EJ~!khx&`Tck4+RNXQ45ets?*QOSFh1Mf9jy3WpUeAoO1^Uv%)j7gRNHi2 z*Bvn_qo7F)Gs3)UZLri5HYaPzU8IXdWQI2b*7<c0wu@}`vAMa4Mn?jJ0X+F$4AjBE zXn8ie?P<ax$ft}a-)s6l9uq)!EW0ilKuz{MPEA_#5kaqGKLj)dva{}g-h`%T=h8&2 zVqEw(6M*L>;q2yf>U^p(O0eP#+Q(%EI~Op{i^nqP3&4JyB?mf|0O2~8VCV&Y<GZzw ze5{sj$|JdA^Q+8YDuH0qHBbKZ_ee18Y?Xav0;E-hNFH=fwZ8)O^J^NwRKrf33#}Y+ zds))M>n=dg`&rVjxJI#Jp=(Ni=>6;%^qk~w!|<I}vY4$_bsvfy&CGhPM_8VN{M_(- zsE|+~TB|a#O2W&hRT)t|@%-oKcfLw-+Sc;aN`}s1KL7Lg1~?D4JGLNvmA@mNgJ^EV z<VFm$u-9@w3qP5D*Z0JE3nD_VXPKXx7;&Wy#ijW;@^ixEdvDA%iZ}VZ&{^imlkb|u z2Hyjj47Bdgo?SLCzx;}Q{!^cN%Zfhn9Kov{*X8xsU-Nr>-c4E-qLLIYSLSlFC2GaF zZzNcRVaa%FoB2BHoJA7QnR^Y62`dF}yz!>3CZJH2or}3TtKc&)NgzQxNE9@mf^HuL zxsVINp$7VW#Q*7E`xk%bjkn%?d^j8)9H;SocYSry;5j4!Ge#WXxsaeOtnh;8Jsb|` zLsJHSd#?itsTsVDPca{%l!nEmlV@UHgetPtzSmt?AR{4-N@a%wbiCcP=hU*x(okif z?0(1Z<DRJk$<tKszh47qRSQ7RH}cHuFo9*U`vT~aqT9_OV@vfpRp(S{R*KDx>OZ-E zL6Z1+z{Hauoxs!KIO+FHw3z3!;XiYqe7q{M_w*?8L#_?+eHs^9_PlLLQQFX!myK#% zF;7mOA5X*bfMCFyw)(b~z!ivM>J9!W4c+U7uVA<@Z+46Bv_#)gbU}qUWkZefyI= zoLKA(Q@P^uqg}*b#MpDbraB9s8C|r6Q4d+&IFrgO-D7?LhJE?7*yfYqIs@}NnjW15 z?xz|SodWR-5IzIj0?l`5*t2U(dH)Hgm=}TSY%N)2HQMee3C#k`-^Ie`zm?yQ$HU6O zyJ;&qXcB-(iz)Uyn(GiGW{+~Yz68?}6S#Eo`g>;o2s+u+C<9-4{f0Y?^zs<!1CYsu zAhhkATtef`{Zb*Uq&16svM`=v<OonhLyyk|Q_cwx00*ZgZwJW_*>arE{Rt1~_<k|= z8EC0{VQf<jtE?o+=JWdr=;mE0x&6HSodG<zD~F&tXcxE^D=pwrhVPlnP&sqy=f*&0 zK8FImn%{ALH1P+Zj6^R3`jApIw?fCKbAr&l$7?02)Lc&-PDi)Fml7ZWP$f}w29?LG zx`pgclfkHtMYgK=nMpAVjCBlp2J~#{dZ`Ws>?D#pTy7>NVI>;(b@;jKUebOlq14KR zo^Q!=^qIU0M1ZdQl&q(&dA4#@ZvY+xKgT+h@ub8_t3r3J%;*|L?F9c8;4+UJQU9W! zRqRaZ&r<hJfX?%mle*ZyV4ii2mo3}l{)&V-KrfF?2}F<`_!qL2VB6>SdK@>%6G&U= z>IL08?jIz>xDW7NXx~?>P4mht1n@ZDj~>0USgnckqie(DKURwL9Ou<Y-TOfVETuuJ zH`4PE<G-E-)&OO>R1h^tCTMjzx~?9{Xj>X6aomD8{iUrapxM&LAAe|{fiws}e;M1& zrunI#`l%0^W_tPN=6da_V)D6e%NPR{_32uOF%)mrnhw5PFM(l?m%9Tfr@oq!7-z^` zg+X`(DTZz`lV!Lo<k<22Nco^<N(9~Bb&L`kV@8QeiH+@ZuEi!iBb_Qai;@Uu*ZDOC zEV|6XpTANnj)p#IuA0!evw(T&a-0uPttMGvPfCgjV{$^5rF=9May!c+K8YMc--h#& zD<lh}orEOOgj9gtH>UHh)eLUIQGdDN-KsNbc?tngeDNoh-I9Rz(gO$WYIs{JOMUkC zx&}`MTn%GY%HGFM%(>}b3^4OTm!?*}YBP7$OcN=SLYd8QCzId4WK&)Qty&04Wpwp< z)%4w#VY0<4O=g^O_cHDjiw>qb=gXh(`rC^NP%|)Jg6<c+Cxh=>@|J}!db21P)pl+H zV_7YF=g}D(eus7AUBLZCfc_NlFA2d3In6AYxZ__#4~OHpx!LX3YOX=nx@&ejE^!L* zNyi=Uk)Asy{s8ct5an4e<~01qW1=QQu8E&aX>@vIhdsVWzzF{mm~)>(lgj@%p-2-> z09MAT8FOkEb(S2!b2!-W%*uwdLI7<|R#B)aw;Qmeq0I~#0ztTr86n-fRy7E;<}5e< zP6n5MqiY5kPbMx*R^sPi?lZ8${_uK$xs4@!y-&a;J{uAtYU?x0c^XjX1aIl*PJ1~! z>hhg97Xoy#vLiq%-~0?5Sir~RDUuq2-6bf}wH0WVTub+CW)1_?WNT1vL&vSpMj{&5 zJpgq$C8^;HkB8?C_eKm?kyHuvD)EaI2K-L89Y9B`9(*2$1^Cx9m{(SiK;&bK8V&*O zWihj^58k5$GbaQZ2XybpbygCb9h!p8UKR-Bb*=IVTq`lp&st6v=g$YfPb)X^UJ+zG zR&}#gB9rS`;$GG&M(lsCGtoV%@i4A^c3_#0KhK^$EwUC~b6K=%rDHCcfn-rq88ll$ zy!P7b<+~m|deuLRYeMgJ?xSRN;qDdVRh;YmEG-*og)9c=SI=seFGv;>*Ex?<(acCI zt1*_47&_Q>xY?nIbca=h>H7Mr{osS=_MCu42dfS*dL`zc6z_cY?WaHb#V>yE^7?AK z+wXfLD@{9Ydm)K68*^f+99d)<Pa_#=X$bsd0PZU8#0Uf-wW;s5bYrq-${c!^63ahx za*#hr_F_^QV{k`f=L@?Z_9PDMhyvMb$C~cg)Nc+p9Q}1ahrV9CFEJq!hcY^Y;4Sx7 zkzJSTS)}1}KH0FYT{IV|n6AHc9%W^&@490&tY!EqFH#sZlP*sn56}fIraAHr^FHzM zz?#_2XBAT8{&<!ITo3osjm5KN^-(Q(f^>z-h)NM|<FD~pCHk?S!xmnk-Rn$E<^&lE zPdpQxvgy*Vh#3ehCBXf=QpPPbc`!-|44B)6DtTk^U#E>@nB1tc7I_7lb(bVfi+J2u zCZFObT*6XTd;H{Cs!<qsf$emYEW!Eg_jDu8z_p(R0o3wy8j&;jUVi=*i+-1-qriFw z+^3lBlR)^C)#4ps`%cz-vCX{inoVECqUZM&K%Td?IEMWG;dnS~Zmw_6vBbJ$5VQYy z){YBY#4>yg-e!=MSS3jtG#Td4`86&~l~^!JP^f3u<U!Dh35AjY?IRc}EWHYlQ3Fr8 zjM!_j_wjw)W}d(@vz$RgF4%%jQb~x4borV2vE*cijX`b_K$0U*6p3n**F+^3hWT}1 zqaR&Dtv1X7YOFwL_?DhuiB9Yrz=wbXA0;LP;T^6)KUOG0#$+RZVSDv33#iGjKbU3h zLzZm>OPyssAu&qh_sktdU?9#_+++M(BtK&0C9euLK3r(>szZRC06-ZC3D}10g`hpy zUfn~y&s4`Da33oL0(|oXhlSTiFYx9zq~*_vmX3*%E)_-wXq~TIg=7n>H2OKDZcG|< z&GM=PWgZ!zi@gnL*6p~hz1KZUfH;3vxZ<Y21=B0WUhfUSIG3IA98tH;x8VK=P{{)B zkX~sUalAP}i06*ae6auXTAX;lo<EIwdd303-+%x8=IdYojoC3q!FuTIm59Ch<{PDc zhDj~PoP17%S#;cUhpXI!fd#~I&f>GGHOMssS`~|DQg|nllkCV7^25Appz%z`2E2!G zj$muKI(+)muYd67qt`xo>+Mf}{Q37j_nm+5-}?{$-e38Zzw)U0Um1V@&;IeRU0l3$ z{qct%ZVlgpEa43@(kPI6Ut?g48%xopJHuV*PxD_dth(WIEBds7*IUrr00t|?u@nWC zzqey&4U;&Vl^Vnr>#}UZW0NJf@0Us7p6J-Qi@5R4ti@Sa-(P2>gTO7G;z~ALx^40x zVW#pJ`o9M9#o`umwS#|Z@cA%_Ugle(uC=TT>psyxNK@=YO7bsA%a6FVWg(L3fD#8) z?kAUxCt&PdLhaau((Rm;noyj4Gq}NhU_TQuGdcAZf?YFWteEHw<lE@w2QOdukPd~s z#`ISHha?T7Cf&;toc;Ed0h6dWBcbmqg}S27Ed?mP@GhtE#HCc<M#C?Dx!rJD6Vc)G zI*lznOAA)!PGuWWCQdCi?h6p^`+rL&vjp<^V0XuRW&nN(su%Cg+W4&d7N|b;*-v7p zPf2RB-rSh>#lC$KATPgrc6_RMRp;#_aKA%(b0=^=u|H_KWVht;IIgE@95kWjrBV#O zkTwVyg_}rRLQd#leL4fsSrS5!p0&L(;b}6!gvQp|WMsMgj>(b}DgcbSQ);ph0OI!t z0J0~0q;6i5U&wp1EFmT|0v4VgB^8N&C=*p?VFN6Oi%ect*V3`TksKqG$Y^lNolSYE zV*-w1ML8+}1O~8>d_inkBqUjfE{1VRvK^i~0W@lU2{x9FJh@O7e~ZFi?SFVUhc;iJ zpQ{v0*^G4BN&s|k1+$lRzp6V3aGily-Y(C{d>`T(vgwV0R!(}fANn_vg8-%>31g9` z_A3BW$R;wouHWN7pEi=SkQ|5feOV60BJ8-{bS~jND-cQ$tktFLK~7e94%X&19m{i< z6KZvz6#K0qL<u6F9o`GNj`=z%3DN6(203?7YDX4a$t_nQBH`C}Dk;hLMS#$JZ6u?J zg40|FksYG+xp4E*>I?68?SDKA{F}y~?7ox}?zm_9Jh3w<*>gTybANI@OB|M&NN%?) z+XwB3j#sN6dd~G6YlTnacHRdbTiHyy2XYNhtkmmgt*}UEuW1AKzE&zAtHj&!FB(F< z`s%A?d$@1=z8i;O*gbe~@xhyKy!xHbeD>|%d-VG2PanPd^3|i4UVV1);HB$sv+dvh z%;&EkZ2rc3Q#YQCfZfNjJ&Y4h8rGKj{dhD8*g;z|P2C8#({`vG&bRAt{rFG(#Mi#_ zo$qZfudW8edR^PBdw}h3Joxhfz>VL1h0Q@Tfu<5FvqI^61JGU9*&S-29j|xoNV$HG zW=Z(+u^GX(*b_9i?NP}9CRC;Ka6q&qV4OztWViS9*0kJEybn(t;fOYU-^i*<K7%C0 zlG0#+XOfqq2N7ts#KD+vVSy#Lu7sgndWqZ1Tf!;FL7Jbj#b>=Ks3CFgi7hTHJR3zh zQ&A(?hZnQ*$V;Q4AV>W8eOh%Q+rbf~IIaTmx2P$W^fsmFw+Mo4r%d-NroG{7lsJ{Q z6sN`@8?aLEytQ;FQp<$jzkf99b^Uc7fX;MDxHtkk*sw3u@p(4qr4w2~2oHK&{qdEZ za#!FY_)*wTh3N6*Bi{+a3PyqE>zoIj7kRFq_{^-}boto@bG!t{imVfV5xBhtitk{` zwJ);<N6W&}J0vSF0`JT3DSy91V}EM@PHkhB<eW-AJdrVu0)x18=)8eB=!4C+lbJf6 z&Y3pe9GV2h6b4}B<UqzyAR?HyC`t<OIo~cP+t4v{d?C=+;Y{8o5PrvGsl--mg4H(T z*tE=><u{tB$h1N(gfTeWG2}BJ%q%C~IrFUtPsbRnKfaHvsRABg@Hv^NpcXO^XuxBF z&PAQnv~!Zy`4r#+z!5MBwo8By`>jVNmipxw#3W|E?5$&x+l4&#CCAC2FOHYjELc*3 zcZS&D>>MMonDw>V4+5h(Fx2toRT0T~Vg)sloy_bmnZf0?ij|8wTb$n$gOv7#&y1LH zuAam>noEkJt|424DsjPkDNUi4T}e*vM2zbc08X}eN`U6pp3)I(RZQ+3`B?8tSlDxc zvMie?+^&+&KUfXmeXaX1pTl6%#Z>d}YAB|2F>gc^3Bf#xP!W2_)|Oy7C*xWvkRN!E zm$~a_UM&iZef-OWEL^ixH=$LBQ%*xcPT(4;UPzJ}br6mB<dv(?gR@2?&PitVxgT+! zwEaxF#F#d}PsOn3F(nf4?v62W-rEAl1f97|3@|@@^P9h8D~kWeKk+j+Z@&53$D8%` z@k<XcK78ro;-i;ee(A&W2QOWpZCA(jW_{@TVY<5Bt-kg2ch7f+@xlAQ_x<U6-~G<V zZ@l*U*Sdb1#ts-5`?hL^e%tiJ*zLw0<R#6}b<GOnJ+1*nC=J;0_2HNQ%HNnCzVfN_ zN3Xp$jYwp`xI19(yM9`)SH^xKkpS@OyP@fjRDc*lay4{QZ&tpmsT&3Zeyd?1pzo;d z?g{+O!J~uAO*bG3n7VcV16J5|<Q4%li&oiWA?*LD!6#~ydC6RR?=l)=VA+wC?5*G* zWn@yGgm}D|tq>D74S`*Ov$C&D)-yAMl_Ifl208#OfqAGpl1HLka%N<{>-7DjjzmLt z&0E(5^df_EVkxLTm%w<trPM;yaUj67bl}<noT5<I@P=knRA;%_8%JL`I!?mhVzt6E zLy7py1Ls7vYupP=X0BvA@7FpeBlrAw(;-i0%2%X$D4j{s_c48VJ+ST`UNL3V+JMYC z?UQ3#I&?EhT?)Tn`IKjk`wWEp&b23AFMsoaM&MWMxc%(~9ZQ=#3PN>KW<R@={}S*n zL4Rhvm%x14mGl-^7O+3Th~EXm?|S{@`(LnP00upGhQ0Iq7CL-f=i!)^hy{=f6X63m zSoN6n!bVV&qyUN-*s_dfI(30VvWp?12#<7uNe;5X{tCnglX;sNA}Hl#8_Tqu<mOG1 zVwqh)U@jvF#*oYszk6PQDE5xPWzNvgr9|@rv^<Ft(2J!f7(jxuvSU{gBfuiR`_R(s zvdRme$Ex!YEWAKl$V()-Ac*7n5rZ7;x8yAvj$@@j1#q%)%R2nL+#c=}aZYtDb?tHi zsAL|JWkdn4wwEO_QPe14mxhpXj`OjEc03m|2Y3|#%F>$5QtP!WP0{Cd|8rYnd{ti| zS0+9Sdh7yx=LARqid}OBs-z5}T<ms&G?z1|h&vJ(thOk*$qcxToyo3}Tz*EUUaJAv z)_yOEuM)<1j<q5qW}8V0&j$*DW7UpHynwT0K)O$sOuDXx{tLN|o_zvo-Ip1N@;Wey z%ByL-cOubPuGA>$%!xw2rup3E=Pl%Ex(`)z5N<?zuJ!y%A}B>^Jack!iPw}A<du`S zMzQ)8@|V0Hkxc8J&G#Nj0~Rs!ILZ1WkwEh&G3mHhpu;~uKYQ8_!^iKu^XA9ro6W~x z_~MT|e)Y9izkjwqyE-0^tD)<=!(rb&{^-NildfB@@SWo{9q|2-&rI#~TfhC=%|{=9 zZ@^zHA#J;9gx`x18K4`xX^kY2*Tu}i+rA%Hta)nNX;}Z>x4+eX{nvhVdiTBerk;u5 zWF*ee82|@_7`nb$S<|X^>R0P&=!a%ItfuvPJ&hv)`vJttxSs|P`^UkgFu-#L-W`bJ zXB!{<vo@9XU}HRC_6v^B8Z;7<ZD6tiop0O1t%FO;hC>eA(Ynd$cKMjNON}V-0{iW| zN)c|6|A>-J?1K2?LU*fxu@L%+9G0vniZR^;MK+hNl3~+QHjZ_G=LH0^F`RcuifUkk zqfl*+(eKGDCTWDOoWUgXl+JrqrH^w_Gs<(L3SDoG71=;ZR#YuV(CXu*%W4|OgtM-v z9woa8G_92beSM4{tXY)~h8NIeI%1-VeLWo5=W^Qeg`(c=?NR%iu4VaYP9Qn4t;9+d zs?tsst-5+%(GpUa1$IhHfZn_atmmH-yI%f&!Y$?$Fc&-hqSu!UwqE}vaJ!VLWZ--f zfT!ZtQ|$UlP=3PN@zm!|y|*MIp6o0eJDmji3n>o<vlSQ(4e*%__8X(<fyGA6+uLh` z?2;#NFo^=D0&-yMGI$HGZ2}a2fA-WCb4;+TeG*_$(7J366tlBJ?z9T|4wkUVZU+z| zBdp@`T&$Rvqq#bv<K%Kb0L#2<EG9fPWuhzqlPj&y$moYRx&{C;@Ho!BuYQnW1v3ej zOTdVL5U=$q2?z#H;8oyI-?O|v*;yn@OLz{$8cuE`sx!cTtyVf;Vmzan*8CcTepcT@ zKoZ~>LC^fS=i>9c&IDe;tmB->!G-{m`xvVx0&j6lvNBYnp?d^>!}jtuCo9ftHP=SV z<}XW5T#RVV$9PX?P?r-V>@Q>?I`7g$$3%d0%X<>nm8^8O8pUUo++`+K#lAd`0%mv( z%)73U&Z#6SN<QNFcz$(l2=q9#z=|*&d<4>EGZ>Rm6kkVD8P}DrI*`j~UJKyN&*a2B z-w&E>xUX8JiEE=3Axe>h;m(AE0JokY-3v^1l-zK<i{e}+AUv;eJdw2XzueV1uhv9N zw;1-g7o+w@+l#SHTJzAy>v~4r2#0>YH-E40!>C)(eT)QytF3!u&rw91j|<oF>}-2{ z_0?ByHk-32XXmSr9$cJ%^x)#+@n+TEH0^Y=*>0}a!}{?2`Q_^Q<7b;^<I}A{>aJ~3 zGBaX48=Gm1iKg$H>+vuhr*T3rkjEc?*mTFK=~g({!SJAs4;Y`=tJJX8(6{X{m`sJz zmA;$6n4=PP9LDCuCm&81A6zsS4=yG!>YJ4TYx7+PTMl48^mwk;)39Do{jeg)?`g$o zNXOW6)0#BL_As?$JGPcjn8w`<YTBtq4q@=8AN#32b_Ny)FKaZwZiT3P4-Ux79Sx2l zap3p?zYm8#U};OD=!LAjY=mP)K0)L)7CTAz`6fy(@UqwfW?i-HCNtqr7@zDL(+#?~ zVO?kL!g=mlaW-@p9C6H1q?rnS{3q{+RM`HKD3mRDn<}?h^aikgUJQ5IfZ#K9PE<z6 zx@Bb{Jw(*`qt3ud?^5YG6}-SiCLU&gIa@o<s!z*)m496~?#F2}qd&GOIr4(!IDEUL zmObbmVrnGMn3702D0e@duzM`~EU6PEGpK>4V<}IDE{5HAqxZ4J2Zt9lL{iLv_$M?` z%HZ@Ah(9HDS+eHk=R3U5?*z(=&ZqqgY!&r$0r?5^+vk_McVCvVeY-<H{~{)ScAP0e z$mi_TXKn$0ozt%CdkoqifBaGN$}6uH_X2?|{0xAUz0cWHCMIfuc>=EtatJ8&**uxW z<eVqJ&}U}G6}y`CyP3_>GPwYV98)MakP}V-%v{VR;Gum`!KRpQxx#32)wv1zLyVVs zRe%68cg+M)4-f3jM9Xm|%NPifv)p3t&Jab5^r05}npsLt=J9Cpe8zV261#$$YMo#1 zyBJg@ZURvPPq?ixCK3b?WCR!wJ$sfdNd6JN*1UJ54c22WW)KM$uSNJ#>vi69l&omq zB^k+u(>i8dpGZ=9Jq0SWre4=Sv#Vl_=?)Ufk=%{Ml4jdHem<UwoCt=Sk0e^^B8h8t zyHGb5`6_V}KwY{x={^mud8|ZflUe7yOm=kaIf+`W;@nE3O_`dcVQgHcXDn7la;-*; zC%i9t?KsZp_;36E^O;;u0U@7~+Y*!T@Fy43tb_{t0o*1KEPRnyYFPJy6|j&K>3rvV zdtSI22~<2Mk;w5pXjL)*daO<c6BgrPPK-s4<RmQimr15;G-ixE$4V7G<3Eh~H#cmy zXUB$pwOSB#RUN%q)T(*;<(Izm_NU+Y%U73IZMT{lT-w9#dfe}(c6Zo!-7q{Dx}hD9 zN8I5|z3}<<+GOAcBHCuULbA<-u00;c2`v8g<$mgrc)^euwSnFr6YOc%we1SiD8|KZ zoU9SkYBhDZxBGTF8z6%jrs1WFX6ieea5uv+t+!{*X1$p<u;1KnrqyQC;OEt5HQEXx zj9+@N5}@|U`5oH^B6KIaJERMw!boL0$mV_-IV^bwaVFPHaQ^&KxiGmjVsZ~b)-IYn zmCP+KQn6?hw1ak@%s8cmvXO+&+Pnqz+2k)D_m7(NaD)lqUw~p^*+ZG(KsT|#rGZe9 za0nC1-Ck;)EZhhQPuRRu7ZbLNs`Hd2E7A;m)fF*n3Tu4GqPen5KFTq<2;7q#E9G<s z!0{KQ|26=db!R?TZK)5V(8LlWU&)Xoqn^jKT46F{$Ar%KmsJC-DioT#h?!J;>}Sg$ znA~fUpAFsM@!WWpC-)k+`|+k;K0r{~gy%LVdN#*sgV|3xNuq3gN>Z5&uC*>a1LoOv zCV|@`ky&i#WD}$Xz+VE_TR`^{81VA@9bHb#d$V`?0;rewosiee-j|s14Ek?@Z3p<L zj%T^g%cNqN^ys^m`)KEI7$E*TPT%<L-)%Q%-)$bg^uQ+{G3jd35&BvD8<Vv(sdJ6G zCguPH0^1o#OYc0FX=HGoHPR@4&A!b5l0a?08AQ_SI{e`Iz1&}UVvA)&&{9y0ZnV(O zMQpL`9|=X)m<rtU`(z;*k`ghq@gA{fv2OzCah}*fDc1<#wBv8u7qCeIh;(`Vk#t5- zdSZcLF@aI|8wr*`OVk_$doK{0Sx^C~EL9@Q$;VK|>lwi497+SO<I?MMt!@BV$^gjV z%1J}VD>otSrvTQRNhO=FLP!D1NInAm066A81Q~2<U*o!?n<En^{w*`4l-1+{Lw#SC zPf7Zbfqe8#m}~6Ak6to0CZ-{~5rf~SLg!$1<C?}Q0e_CBW|{fUbqLxA#WHzP5;1of zkwlAbFF7H~P0}KHWoJ=c$5_cIUwcAA6_%p9M$(dp&pubtI7UUnt>jHfy1IXAbtzct zn9i1~BT<*3T7dAV=lA13vD;ZkpPBz;Ad<$qV9oW+#?+b_bsY~A8YbLvzF9;n2P|mO zv2urfz!-wW*~W&ZIX-;p;rG^?)$Z$G|N1*W`IWD<@QDBD!^h2=Z#=qs^5OTvlV7y^ zuH8(%X~*}dvl+*!>(Rr{$p&5nyR`emzJcbvM>lDQPWyh3+KCA;`Q~ajVGLevR@17z z@cZFl03EFQ8ik-;-?sfQvU@5R_8zM~({{U_Hmjj|X}z7!UwLVI^Yu5HH(z};z4GXl zW;i=<hSk}$-k2n&ZC5?L`%w7V54cirx9(AhYIcc)Ibiw;xN!`9r>0E?&dIowou{_l zt`pKen|e!Os>@#-R1u6tW2XY@%Q}mbK;{-wI95Y|wz&fDsY8**9PF}2727|dSZUeu zn^6{F=~td2fwpp+`KL{`v$R(v-RwF@*SD8fL@}2Q$16N=pXgLNOZ;mfvt-KoUN*QW ztm?XbNMq7C;C}a>mr#~eyvrRx%e$Y+LM$_+1J=;d(G4gkEM^0mnRNXu*BTvR-mbjc zU7zpyo?jn7+VuX}Do0tdDD@6JQDXa*R4Cc<I}OM_+-c&>OE~F?h_4X%y=1nceqU>U zZuz(;u-cqp&&%KZB=Cmin@aJ(C%C7aVxpI<dj{J}mi`vAoxpFF$&~L{=-2fbn>CgI z{*L6~u6@46mM_@!c5!U^`%iwKlAgTUaKhShc=gev>wooM`Io->|NC=){>Ps^d)ocR zZ~oT9r%#`vo7W7?1uG=5ED)3J`7%os6On*wmLg;TAx3El76t0W7^#R4pUDM^!H5!s zEDHdmxR0QLp9MG(Fq2zIHv`oGhJI}q?hM?29a9Ek2!T>bQnc@S4<@WA1TGIhFKz)F z!Rkq49L!$;MNDXUQqL@-3U#}V3@5gsVqeuQ$RAwSX{r6!Afn<`TDu8+g+yj94T#!; zkhlm4$F&TQrsD{p9PT;%JMRO!1qF*8Nr^yrX3gc46B35pjLJvv)a^Ah%z9q{@~GR0 zeb@2Llf%r)Y8#Rnk;SKED!^Y99&%L%_ieO+&&{+lldjL@1c2a{PDU&!q`sYCG~^OU z-XML+;9dY$1;LVy2r$R$LfngDxOs1}E3vM<0DNY(bxrX(vf4~=*zhSFic|nQmwL=y zfOPB`;O6H{Om|KwLee668}1vOYp$qAt-}2Ij6@XQ8FsGOzg)?p?pd+_;f&=7WYM)) zpDnW3R8SkQY5a|ZhT~im-~yO~Nyl@_&qe1}u<7S#7rSBA@4CKwx>@y4)~n(1s_&oo zeS0-d$HVz{_~3ir`_4OEJFQ=P^vZ{;Vfe=LtE-o~erSiOX|In57D*bIK((f`!8qS3 z!R?w2bqc6sf*1tk%mHAZH^<?yH}bk)57WkhO~2YqecMkx+;vuc+YQ~=4(on3teOXB zo95wq({$_gbpGIMdT@5poIkig6RPRaqesolue>sCF3y{6zn;b(@)$4L@37Ydf&kwG ze(zfX0%cVWbXZ(!=+Bxb`TYW9Jz}36+?v+CBa>S|kO9&J(i4*{7CZ_ks28!Hi?<0e zM**TfMY4k_$MaGR;cEjTU)8v?C{}p>CDV!39KXX$(N`%{jpTIBzDu;B(n>teP9}T5 zPO;@_VsyI{2d;LH$6H)z9oh~v?DVX}QX{^oj<;4cnpQ4kQ>o(;{mq1?9L@}i3gDYN zgumbZom7($K$gjZta5Y|+V=(M#=fY@R*ZKk@hRo4rKwgv?R<YJ-7TBUiH6RyGKK=4 z1CaYA2xdNtkOQ=pqT^&)M5ccn$Fl^`x#AUo_7+$_0Ydfm%(7?jeG0HI!TBw)eHV~^ zkvt{ITVAxS%(}~^C4>6R;@{f$^xo{jero@hzVa%7%{u($Ia!|TvM(tqXuPP^#!>jG zedk->eB+<~Xa2c=(wFGUWy(x4lSyBmiTkU3l|Z$1$OOZker93Dd^tE82dPPiGvSt3 z#&WQhq9w7=<Sb@T`$xBxm=y8d^u&$?#2vdFJn;Pjch@&JJQCYq$`vudhbGqB+S}h{ z4Hpb_9>WBzf(f1%B+i%ALslbpLreJr^8|u%)&q<ZuxGcCNOV{%2apl~j^{q_lidu9 zWGD~nlA;LsWeEe{M^GrBo>ybIFOhucT5E}4G7cn4;kLqan2Rd&3X5bgTv>>FN^JXl z^`?|t&AuaAxGy`PYE>mmaORzY)s8)%16ginMme*@T5(u*7tWo0<w&FJ!j*vNz?;Dy zeg^1O;;}4>#?NB?_5E4KmhDpWap1h*JaILO$%gh7fEp~WfV}o4>N}>BbprV~^Reg{ z)Bp~8Yu%%Av0*ZbdsDR~0Y;P*Xxoxch0Z=CFqx_6y+<ZGUz>ak`J8A4MKYx2vE<)n zd%4}7HQ)dK2hA`1!Y`Oz;!7{RWZRC0RcQ$I@l%EU^Xrk_UP88~gl^{zjSi*$z^!n* zw%KmBmltQ-Cr#Tt@0#&>+qO^pzI)!b$Y_tYU~5))rhA>*VHl3%{^<4?{d62h5bW3( zWg@B64H|Q^TGViE7YdUT*zsZNhOR*?(*ugzozdN6^#GIE*fh_cJe!_fJwtO+Te91( zhGqrez8R*?`KB3G8@R%>FFiPK9&FE>m(CtcXAdu$?ZXGtS-))tyl=gpwwnjd<^u19 zyl24olVO8|2Kz_nCt5xBX6;8XXk@n)G#Eey1CO>ro*r3kA;@cL>urplda(9j{#Pq7 z`b-cYVX-Ag{L5}gK1jIgTE5)e2Nhoi1~1I{3~c!r>e!Xqd1~!>znI6F>qI1r5s>vh zo=&nx!D(W~*>uV=u*S8bi1+s<DWOPVOHx!?S}Y1ndsMxY#w!Pw`MDKnC?GR|UqMv| z&a`3=;4Bv(+`I<99f+5Iy~CgV>wnYl<-hcqMt}49%@YMo|0Dh37jmLmauvri1Mabk z5R&@kIBR1C7H&#Ar~uvao-fLKo<-Z=(fWQB2~1(pCB$(nNSD==3R`*0a0SQjGXVFC z*$BkA1tMS22<a9`U3}&)kbakc`4Zfp0^|928}sgZ@8WOyvv^S&|GScbd=5^s`O9rC z{w>G$0<ZYHwmExGUKyBQi*~xYzS{oQZ+!g?bonEOw9AXZtuv5ACsQws4?){xHVW7; z8w2f=aJHg^tZn!EeS16{y2Ekb+H7JXu&Fy9eWfzpw;03?v_gxC&R%^x?e@p+*MI%% z51(INzx?Ar{>A2h{2%{T^R=)2s_F8<v}TQHc!CpLVp0nb8Ww|SL5`1TGRD6TA3m6V z^u5pTEQ{{iX209FV5JYovE3aG?RXqJ6jgOFqU!o-oR0P$4C;sdvANmZG>84co**PF zbY<Ata<R0f00-)JsBzT(4yT3vkv4LebRko)k<km~rqPPW2tX)5&_F2A*2DF|5~aP{ z0^_ts)21kvB`Atj4+me+`+IUw#u{JVl>0@1U`Z2vz)uZr1jLv6+~w*@29eqGe7PNg zDFO4jq#(L`&KY%S)Rh#rw`vFUUrr8~2=dAx*#S_^Kq`ucqkAg1KX)fmV#>*v`$7p+ z6h-Rz^;sR43W;gQ7`lE*SYoAOUW=lHL|{GZ=d<o#=Zo^Pc_W<+x^-Vknw44i`LSxX zfDMb3Xa<l~qNLTFNEVeG%o_!<8Ccl5M!|Y)XPy+5Ic(ufBQhW-d`hgeok$L}>J)|3 za~GM|ubd3z>yVS52M;cq?|=XM&0qYB|8?`~tFJUKzx;A~UiB=gb|UsE?~9TMC1dQX z!7;>&woS5S;1Sz7Y}VV$?Pl|=AKGWrczixhhwHX&pHI{Az-FHqxQ-aXjM_XNkLHv@ z*3yRHX#?jUNMX|05x@e%6VrN|{>6bmZ4j|)>Ar<{?1o`IZ7?;g+Qtlty54|C-?r24 z0NKvXwBH{Mpl(*1=6t<swr8tm*sPk1vx{kc@nAZ?xM*KKJD&z<?l)&<@3`Kqn{FDW zq3xz&J+%D>;C(%9*XtGqr$e{F9*!W_Vc*y_1NYNbRavfS&l;4;u16OZrh3Aq3D%Ga zV4TAi*m{>hO(;S)5O2u<8;!PIH-hl7l3D^KvYJ5!ixm!L)FmFyG}Br|Jvr4JlyF*_ z?ZP$}1Caog^d#Z0N(y-4IFZ<Ic2!5SO%%E;QWlM~w(!8aIZO<l4Yz05;oy>GPHc66 z`cPiX(5`yP<a3f<*6&)T!hg~pW)N=R+<`ZjD{1HgQI;*);kgiaPvCyk&(36r-)#QQ zSdyG27I_|=vD~-7`GP|aeZF4v9!iP+^oCor4~ACVzr(5k?1~hzj5u{m$f6KWg}=OJ ze!HO~ulu;SCxH7Y0Kfb>zvtB7mXee9MWB1J4T0XfK6eUaFJ&$I+bx%wJAnAIG1D!e ze}avl{rwamKcTNbwJ$IFS?90(ZC)Ha_2*}2hoAh)|K=Nu{W-av#Wg;)YOuVn%hylc zD}l)7uN{B<C%*j3H@@-Bhkx{s{$Z<F`T3v!h30Et`&#q#>9f+P3IAbWMdCqC__2BR z>`8NVbvbLc5_)9<FoK<Z^H2R_|M2sF`~Ujy{H_@Z`!i2A{)prRLqm7K#44-BX>1RN zV|zRtyWMWrUSIFpJp}V8>2@o|!+zHuk7IkY+jrMD*FAvw9;*Ul(;W6UE$R#K`t|O* zyT00YNJJ(8HFH;Jn%(uKm7g5PWAp6!WnU5-TMcl@MANirBW`Us+P1~<LeGkQy}8~Q zh{t}446uJ)Y>(G)CRW4HUR__iFwo^DKEw>G!Tg)$?t*;*pvAef!c|Uk&C#^9M<xtG zHX)huB2oc$Z#-k2?ZT&8AX6(LXcvEZdDT38_^`-2aQ^H)=Dsyqf@i?k^yWC<2iqp| zOTW%e22qmX=ge?RFqr~V!9aUzT4YFJ>nZ<x?sF~<R`Q^tSgph`*<g(ZK`SPH-QL?R znnMxLs)-ptM-6}Yyz{%ohHKK!Y&!Q*&Nn=-l7dJ|hGtY*zN7>syXRzf9$-=If0m== z#%z$7Na{kFi)<<5eL9a?+0p8lBx!lI#Rd*vwNW!DB?Ng}a$Z^{LOJqr>GjaY2hdj1 zqZJG#YP@H|;~sP9a+M=iqf{RhtKPbvK8yM`oD}sHH6?jS%2lY1#0ujQ?`d9ZbDZkU zl5reX!>(`p-P9bPHEsK3==vw)G#-w}%W*o6d$7MF=B=sOjMI45zz3ySk!WZRn$O!K z#;YPHYntb_yD(ab<l8}}@#j6LcH?DCkkyPG0sH{F-)6M^>wubZ?CaG8$@mJ-$1t=j z*gE#B>7qMp$K%dab*uGuIy*aWUb(nv&dx6Y%v;zkLZ{yMn`s!<ZMW^F71NWcU888Y zZ-#co!qe?A+SuPS$wu*N+xA`GgEem__%NEz9?u7`JT=3#7js6{@(|*5y4R?n28w*# z<G4=#8SkJf7T;N0dj9!kRS1wNIk1~G8kVZc*qL<+UYJa{6olMZu|Z!-DFVnl{pMX; zi%BDge8X+B?X}CtTDyge!%3px+5H&QNi^<WuLs~hBy`A)COODl53c>z1H1tJMSCqa z-6su!bQOdZjGJ&w{yZKR1LjsZ5rBTiyiX3`vFfs5^|f+AfkEuE#$10K<J{-tD9E}< z@6$2cz#uGA4n%T_*iKoE@ek81UZCIJ=5*GgHi6Z(g8AV<Bs)&aCUNk#6QZ6nv#X4& zSrnzdQ2Mg$lBx@ne_k--w?MO->@NYjKBxUW^`E^bZ`Z%~6qvsS^u;#k*H3(2S?OKH zr?-C2s|+U`Z%zU04EUExi;ka<*!(!GIRB2-f^vP`1FGDjwt#ngznQ4J%3=AirET5? z+Vju*>+9?7<>h62b#-NT<mW#3x#rh??bn;*@v#Fv%4ImY!G(nS?&r^+HoM(*VeeiP zU;fE2UB|wOg+xa^JJb04ahN9>_%CPb<)q9W*7@--k8cr_CL&QdP6sp}0n=~UF=T+o z0FK9Ye?S6oz);lg_csRIcUQai^71(VbbEcZn?8K}Vf)dCA6aL^k3W9gTt44*msi*A z?r_!I?8)dKk9)HT!W_KaYyrxBfIqgAHR0)PWLOV<b0kxY>MYPp4ZNAV)yj(V2UtS@ z88k<9TV^3yx58=-mdcUPaPaY>p`jg`(W}`?qvvt#K$EPxuKmJ$?+#!3@*ij+FZkNm z{zmi7Z+^46zTO{q`{NM}Q&<55hlsv89Iru?83|}M0d3Q)R~r@?<A28^R!&+n(O4Mb zK0<nXI2_ueGqPf(<;sJ=XTUgv;S@N;>uN`D+w`R4u;05g3iZ_ji`*XBXj*=@&E+Ll zT?kYkfBcv&xKp=N0%W{D>JE6CoJDU@kc}ipTKtf%s79l##1val08u(G8AyZ$>rCz= z@E>-Mc~v5>3g~@G3?j*4G4Q-=EWv3c3tUZ55}-y*TKUMeBT5*S$xGPMGV#drAnjlF z?9a(f)Y<qT6~tpK?<Yx)7<wiDx#3!_%fS%F-`S0sj!0z20m5Vdc&@YC3-1m3sPkU) zkrm(956x=mcdMblUaf|!sp+rA@o+UB_g8&;yc(zdbeyJc58*j6=P)+N060E@crf>t zX6O#%!6te;2B?S!v|}zqRtpB+*V0F8XvFJcfAPY<A_by`yaVHG%l)u>oK_ewSM91D zruBL=t=65n$sm_otvAhj7`n5~Su?CROiEY7wAyYOxWSy^{R0{%bxn)LNYJW}{nYiV z77dj89^(+?DXRv3Rfldpt<d{o=-bu0AHjs%lt+^s`-vPhE)C#23SWIigBpDrpMZS^ zvu>?Yr>O_<H|E;zPaDIGRj0fR#|yAW&;%4enF~&_6)%l1u{n1DbfZ6P7xiPt@cPOg zE{xq?2IY$E*;!G$X$rO$sFbTolByKX60b^hL{}^X9aJLGaODoaP%0fl6YfHh?D$>5 z>7I?DYz00i5Ly|Cl|bE03t7lqMp9%w1pEm&>qW;e$|Hm+kN)==Q!mzCOgb=wzxU9B zRcOG#7uNlV9=B5z1WQuG1S|HdBu0yzDeq&9Br#@jr6t^S3Q$mnZ{%CvNIKuX1Ia`_ z8T1tWx|0QdR?E2vqDij%biDC*X<m?@+OPzVzM+$B>j|lhjmJyCn!)l3d5Co7#a__? z`zdf;!2TzI_FL@wLRPY5@@L6_@5k(W7KsQ>+Nph<PJr-o{ual+ObljVehJi1_|7jA znC5SjwO`gC=)TI^;dw||_(I~N@Ah?_@-T4way5<DhIih1=j!78{C9u*xBlk`zxkVA zf9b;yKkV5tHA^t0Tj#1;_`b{ExI7rQ9=3~%i{|h7<NpT;?1zy(*=OL|2gAatuuMA- zlxE&aq7ANH0NVz)RqO9UBa;zP<7&((Jp%05!C2!PKxi3&qjnhbAsbsDr^jf+?iUj* z*i6@|rSu~}(PrBm#_ML^?b~74*rbMuXua**{cakEgY|rFH-~Y&1`B_<fj+63_C|kW z7C9WILwf@^3IIzha0KIbFs2=+lnxcx3Xb8}Ovbufmu=1<`@Y2-3i-PEb@wPrgSHj# z!{7TBO;G^uVWkW-kG27a{k}yq0%Ce-4(EU7pZ(LDAOG<mGtl!_|LR|Be(&4gy1d?9 z?g#U80|U{uLw`0M+oQ?<*8Qr*lKXaZHmxqs+Vk_lq(cA{?fQ((t}$`9&9rW}&2ECE z2&*YgYY-oWd>H8tT{G@?t*s^R_wCTH&08IJe!uGN`T?9k`UTnVs<m#6CjPW}c7W&K z)U7PTAQLBxM76d*9`>flLct&aKaK}0MX=BVc*Eau&*IqG<A9PIH<oDjJ2uk7_hK~! zj|%n+?Cik`0;32V+q>Ca7d{Bj1+JwM1th~}*Z@y&fXE{yTZaQ!RTVde1*8%cB0QIU zI1+KabV*;$H`tOE6{7kx>66t`#um?|h6V!X=)S7@f#@0>1*&sLD?0xu8KB#c*l}z} zt43hCWn(JMyt$Zo!V|R&b8A~AG?6Tz;CEe;0I=iFpFekL9FskKhD<unFDw~%MV^D# zu^O^kt;gg30JQyl7}n34e!6UqyZv<7@5cRZkD=u_j$PM|?Y`@`0GF<xE}Y|JIK^<* zh|}XsV3TPiN;}35jY|8WH-Wof79f9CN*lYB+@E;tEGLBKx*xdGxiw7+&c$Y0uexTt zUQffY>iX?^JUib^o9(7OTdmve`T4YYaMr9==goFl+w*U&y1cQGGyY)up+z4d{p;I} z0dU;sVEQ*3F!-QPjJa=7f7G?z*bRM;B*J#iXN}^WglUH}6I^8|H*xS}OU(nYsGu#i z@lJ-DP#ndvY^mb_9p}bt1FWu+REG_Rrd?;o<q~k4pCC#u-xu}Ag+C=T%1-8-StK^+ z$##81QCSG@$;92xKQl|OU(@w;2SI1;#o0RJrWU7R%P3pK0wR6-Bk7{voHGfGOLP30 zI3*-m%(-H%{bxGk7uH+PF$+hvN-;m?TO?p%&mEu(tm9uW?zqkD_k{+2jPK<VdvRg# z@0lkklDCv(WVUip{?5bq)2f8Yc}%5fUPxf1i?4jkPE{ZDFLC%`WKKSb<#i<rN~mH# zT-p@bqp$1mHT-GtU0VY3_AXs|l9OZ>c**oG!F2|J0=4~J)`|<Tc<Oy8f%~cdmdyT% z#NgE5n-hR{$xfd-_LJxF#Ai#PX|mMJ@6k(l*+uFhyzBe({@+R-Qn%LGai;9L?8hC+ z+VVU2`8jB}zx91TzVYUpAHMqN(c?e&|Nqb5`T3v!`G=Sg<=T*!%T>527A|M~nQhBJ z;WKZ4`tVa<`N}@6)`*FdaV<x7wnO6@DrZQO)7T8j=fYU=;{<nLN<IqnXrBR2B-l1% zFSAuU+TyF!DPV{3Rr~z`)kP-1Lq`Q9B(Pb7>}5Mpuz3YZ%x;enf7%~+IBD(8)$``@ z<0k+J#=t*${%m^s?6SSSeAZlElc_)MkKGP{;<#^`<Jj6)8cy4{XpsWVy&WzdaLXi0 z5sa}<tHFxd8oEoanyE9{Lksr>Bo~<fF`?N2HZ>D)FLoI(9Gby;l?(ty=Hc8lhvNhq zeljM$*-wXwfJRc1v$L~ioOb=Rzd78r4VL$fEjWx<?EwX0%`{!NUAO6nX}8)mo8#Hk zjc3hvjY)ph94C~apsUKUIgI;ejXHtx*zS(U@i0#9Zhx2#H#d+wHM^UAGaYdjIDPCf ze`DnZvj7=$HsOYLTsE5^J6C;sv0AsA_1UyO-?VExUZae?>jobUoJw1GH@pA|fuWVA zeb!+hZI7tr8{1}uE;jU|>#*Ws2@Z~d`CZcuZ3|ff5{H8=dhVNk)wTmXtetTl)@$n` zzq6uGn-5#~T%$F7KWuE~*#r2K#33__=j3>3)|+!HNjV;O1{v&r2W#()H{y6aw!8ff zw!`+CBs4Y=!Lo9HXm{6e@g`I;mcM7wI1&~BSbNy9Vu1!nZr`ev0{o2H5hRaz-eDPu z1c$OI0%A3IQ;|B0XYu@_<ELs%w2DF}8I1{QD5h~ja-7^mN$kB=4m398#DS{<t~Yo2 z5&rw&gAdWf$cO<XNTyNuXAAp@??mA$^zYlV?URo`{P4;1Cr_`}ZFe(G`@`{OH{p)8 zhErsaHyD3<6GhND&~5o9OO8WwW`mNY?GSt$bvxmM-kDtrSW8|k(=6c2K(T|&c4(*& zvg4g>#im>1eD~{BJ8oA)Ynt=*&}`Qi)A=w=54PKBb-ro3^Yi}v`~vok&31d<tcLXj zdq#oY(ja~uryfjtS?xjRQY<vIQ{NG&_dwT34u-asAG-m3Qva3&*!V=uEyl<YBHqgk zjjM8O9_jTL_zeZC#4gqr%wR6%OZGP_OvM@Zu1RF)S;RQnN`!0TQ4H!Z$h1WKs<fIT z%o+umB(v4xwAgWBsF^Xmj`bD`x}`CZulK+Vzog8f1XWNh9+$&<Ng0Hs{aZ>Cqyj1f zgD-UIMeZZ$m^AmvTRyKe`#!Vf)k62r<Y~@imt`);8Z68TTrdOS0_qOX@iXT0!{R^b z;*X|p7n|ZM=itL4kD1G4f_;zEmSb78ntyZ%P5`}pLFhl^N3++WJav8zlo4e2pvB3a z?Wexg5(G~eECr6g-(rlH0QZvs<0(ydW}k1d=nJ<MvF}TuOVNY>e1|W)!0;(e`(2=Y z_FjQ#0pmMtE%UjOF8(BNe?dWRd3~|H*?-G!sp(wmepsHTd=2gb?lY^;47BsHr|-+} zE%#x5U2>{a%#!Xu97ER+!*KZ0m%n^Nse+!_C}@j9zpxb4GJamV%YYv7M}GRJcQ3vC z2=g1X6h?g*=;TCht;lS|_99*FKQ-3IC^{W6PR?lBI_G|O0D}V%h9Ta@S6ddh(er43 zu~h<q=EDRz2bQaSnf-?EF&W0ei1EYj#%74;dorj;%<0py*+FLy$p;|s%{BhsUf=BP zbrb;~cE|Q`M9)HJ=e?$fW4nR#W)ICi+r+bF^EgfiNOi1RC*BHeDUjvZwD9pi!W;si zb7~K^^p3XWptBFnejMxp!@BTzoLZFf;#{J?l}&@jY8@aTHQ~&(I)e7L0<!TiHP<)O z;g^2tmxr(a#&7iB_{KM;2M=F9ZdT_<5QqnJ$U(+*fGab6pKZQ|wiRplkbj^PIpS#3 z0;uDz8M~cRH(iT!WgyM(K8HYNMP~#hWIpQ8(H~o!IXn?7lt18%kB0`|0wECvIXExP zbnH;~uxr}AVJ&hUv}n|7a(5W9Hi8=zNJ7ivsNsWcbw5o<)DajHIW`B7LY>_NW3#g~ z@`wc?vzNdihSEEvI^4=Q9>Tn*?OKrkz^n#092l{#fsZ0?UjT7*qr@6YPqnWxi@4rL zoM04<<C^2Vli@VBlc&e(0PR2tr~s_2E2ROg@h}=I+9L6o+G$0{lXks*U^Nj)p1`bj z!`gN1%$1L*D>)w9^{Q>(dh5;MM}Oo;yEor_z4_~Z{cFt!AADei+LxEt$6;7G3<U$t z2I;%q4S=Xia>&p}_uX*Fk-s?`lMS=Zp|aAHe1-n!s<EJh5Y93F#pm!Z*mV`-qBi5n zlc&vkvuWOX>rMN+d7GR2cY9o|hTWI`z)x)c@E`dj-LL-YuUf6nG##%lpFjQJ`sPWG z>)qo<CPQaq3q}~OZlG6DH??Dr#-7d89Zd9r?w?v|K><AwyVW3;`hN!_R+x!@x@KKE z=|FadUPjhe1MVrj){v{1tf_~rWxQD79^E#Zvu$&>S+!?qaI{%Bo3ry~dvQK(&(5c_ z&DpfsuBLvoZ8zPf!5TA?{lWS)!ny|Ejq$>|W14rn>BeoJ?H)4xZ1*LvneC6+IhxeV zng0$QT0_o7uxgEpd>--6XkMZzXBlGeuDC8(uN(FPMY`q<mweiF+TMP1fNr042R_?B zV~@RL*O?yE1bRmxI<>pYyBDE)<J4$@88D9}RI>GU5NTUTs84GN=JQ8cvorKz5?Hp$ zx)&AP;#1V{By~F%OXUJn03YuZUu9kt!}|9d=90uDt@&_%RFV?xy#4NV0a|=0%(e<} zonbe1j_-=?m$C1D!X$|?w%ma_0K0+pwrzLm=Yym({u#+;j*{8PCeim&*F>%}+Q)=R zlHF%u3di5&yu`Ana><m;*fnsM9{(dTMSLjEWm?>b>N9UXRo05QmQosE6~%+!WwI76 z8u}<sJ@wxwNidecn6%t!VBan57nib=<$p`?-RI9|9lQX0($L?<#-IAW3{DG3Pyc3M zI`fm)%0s#-P66cQIi1}=lIWy_Vae`i;GBP6N^54@Ug+sx6iYCE$^tZ>qvhZEbj0~e zjorM)&=wCd$ad4apa1+dTpGUfo$r=qb7@^!h!-u`^%^Jdu-)@x*KsyK^Rqv5g`f8* zCS{ePokoC86pJ!NrAz?hNs$fsI0s=2WGet0crcEK<Aj1$`_8Uy)~f-$8A%{^xi*Gz zJW_v(S$4O(wglmbRdN6hNKy_rWcujs)lK8UWD*8?&}^_>+x}i&UA7}M*Cuf|Hka4e z?d8=~b9uFMSqsw*Bp3h?7{?Ds6qRwAoz6g`P1X~>|7Z*Fc7_1P0nkn8Z>!8BrdRAu z+pKK$on8~@4vUL?Tmg#XT7lO<@tSplJ7P&3{I~JSmMa){2w@C5avt55ZryL&-+%vi z5C4z<`+t0Sb3C-LUfb<=)A4Ya#uZuW70$?L^WoHhnQlkJ2XLFV?`>O4I+|nG_8rFO z8%di8(vd^}z~TDu4?x2W3iojJMt}nj>CGO5TLW)t9Fa7FN3xK{9QF;svF<YfsbjZ? zq86B&e##@vCYTzGxCsn`OcOQ!*dG>9VDq~p<hJIi2ihBjeg=%~p0h**H@Dqk4O*>R z`p1<VfFaWx%m3U6K#n@V+)(sm1%V4hH~`$-mY5;w;DfO@z-*uft48=A8AhhZ23Lwg z%)k!rA>PpjAs~z4DlC#F?7t-e-ci;jA0z=_SebmFh_Tpu*vy1`%Oo8mT&1Sz>Bn!M zedQ}(Is2KP`4a|k|N3A1>&@dQA6?(vTwj_7+}NWIOCnbEi`(s+zw`cskDokQf$i4V zzykK6{0un~`v-6)L^n?|<+90CBQO#I_$-Q~A!otGeC5&W`_1<3aCP~-8;^(H3TIbv zcIvusz5lJ|tH1o;wcGWkxj26SvG{J9n(JZcubT1Z=5TX${L~w-fA**U@E<<IICit! zH_xA5b~n5IW^;CCk|jLLEHJgSh$DcDmobVA96=4z;0v_WZklY2FJ51VdvE|3>%9nI z^Eg784FC$~q^6%Xn6}mfh;-y!CM!Zx1oy3Bvl`c{9!W_1aJ6Xw*1Lyi#-d+rFR&Um zZPwdnwHcajHBj>ou-$gkx?3?XK+&f)2w*bhA`bJxHs>eqjy+SRo3{o`6sud}r&SM2 zCLsR-bKlx37>^l)5myZ*R}s>I*F4T(2iF(ovn~}f8!4`78Oo<l-LJPdZm=ZJExPa= zxO_!^{*s`G9daSNI)!qQ71A!U1|cZ+q)(#il4O~&xgI*y0K4?UXG~xI6p!j#$^MPZ z%na2fd5k14G<QtQ9KYYrkAyq{287*tFoEs)Mn9y??mDiV7fm`g*6RhDCV)$qmr~Pc zK)c9kl8#2w7<@67&k8ule+9I+Eta&z!0)rpeI}J@SaYD(HGU~w30RVivLdxuNeIb7 z!V`CVMhRD1<ZyHyns!&!c*0Q7x4+*vQhtvl$rCeOu?)1BlBVn9;0u(QN~^;oJhQe- z!2U@xlMJ3uf%Yu-D9ri^8^=>X|I~YOb0q=(yFhvd>Ua6H>$CV$f%20H&EmC_fOhe@ z>8`(L;JX0G`QLfkI4`(3l_03HJKdk&bs(+a__69-ltlg{sCQXa$ur&XR=1t69hUd| zD51WG-P@mj`|$3&?~d=k|7~D2+qCTVqLA#AZgyUHra*h{Klq3KkWp!5-3(aUy8!N- zWycIk=_eRdtED`eWW#O(1B&3yr{?Bn-|co+c9?K?0YW_<H%8wa4=_dpE4w$KwTCPN zT5|&`M%;9V!vPZ$mbZ<m#h$EMD=ae-cXtB^8EUEb<5hFB+krvmh-!^&Ocr3U&Ghs~ zILsWu%5^L7v;CpngK@X6b^~V5sqNu}1_(G!sJv<ca3pUS!2s{3cIDT~=s;M!5kY|0 z>mWxl9f)=8CXoRAvx2QBb@4r!aag&5k+m_`IvF<Tv@%X;?E+0ajoR97e{*BPB6MhE zQUUyHaK*09iX~p{zCS?i-VUSN;;n~fwT6QQwDw30$fS$zvgz2q3!Q7Q0MIx6x@(VM z@cUsLFw*V7VoKMEdBHlw(t5%yCRcWSu+f#BX)BcNOdCB|@gFB#qYuGj_swBEv~t_P zJYvZX0DT!cNigBM0K!h~3VNBQ9e3U&9iYe5%eL;%@!x<oZZWg!!!2a15kArSEXe26 zfpI%@_GfGIG*Iq>oq~qAJFJ<V7@-db!QLu6H7y%BqMp{uEUds5*HTU2kI18}@Y!xF z77aHo&WRGlBV57J1qTZXtTl5TE^fYqB_a?Pp*8{6==syfoi)p8n?SDSOlPOhId zmzPhbaks~+gRML4+T#S#*m|`ZpFV%O|JJv@y;?&m<--rHFA3ZM3L(LQCLQ<Y_4SqM z&Dk}X*$wAU))wThz1RlEjCbFA=i}ENz4>h1kG+i;1H@lr+l|v|+#jYNefK?EV(UAU zZtM?-!yZqP6+a>$`;}k$>i7Q2U;V2uV;bpKtDBqa-N#4VWXG->hSi8Oble{}=OQD- zw`0|V1F~mOCeTK$NPECT@4Yi{;RmQ>oPNW7j4s(OR|1PZB4-}ZK^2KJBr*2fpvZJ+ z)>|Yf=s>!iwySk}cD`-S&o7#@&H0ETcKEFKYZM_5ZP%}jsi%jzHz=};-;W!sAHY4+ z<1s^yO`!@`yG$$3$<!e6h+CoW`eRRN3ZEm>tvkqvQ%uk9t<E3g0l@L#4xxUJz2NO` zvTVT0Pxvr85(ejB!<eW{d(OS!)aMF5H^{DCjzR*(K`s2@i9AV?`y5~`=p`-3Q~@nb zL9WI1vAFmbuvGw@?p9ehDj$d`yI2w_@Apko2BbNZHM$rAY#G4??5<HS{HwZta$Yn( zK`xCmfay|t=X7U+43Tb{%++R9_E5$3F-cA`pvOjy$MADV)o64p3uhTMxbo&hm{uf} z5xY)i-2go1^Ic})m(DURyQqa!Mr)#Rx-%%x2UtKi9e|>cUdNY@li-|pU&dTa5<>wH zCsYNb{6^MNc;%nh9~6E4Qm?a!QZ1N(p%MiI*1%55G)@&q-X%485tuLkEs8~p>}8>4 z&x|{cEf<n5r8arnlC@+#yb5odQw;V(R-^qcAUHG6N%viD_+_L_EdyW~>SiFUzjvST zH|fG=pHFg>oDisMSl*uAUlI*vz>Du)ZqETaQ*S>IyYF$U`*@~XnV+9;Q>#Jxrz~^6 z_WEl#pa1;l_y5&@^>dqHg=S0;BE!aQ3-f?dAV>Q@NJS*4x&4qJzWk*x9p8HEQ+sqA zJRWu<+)aR);cIT*VdimuDAEMXkJj)B2-8Mp>kR1a*zmpA(~Ys`SXwu4^l9C%u|MtM zxI+sluBDFX=4}Kg<Tdt)*^0qt)n4CRdP>rv{=L0E-WY={2Qkx;UxTqfG$<s+n2WB1 zhY9i+FzO?!U2Vu8`c<>)$L7%Pn#~#v?#fs^c(je+Ao>=TmW`E9V(J-eZNqf2)_nz= zI%1{=SU)zSksD37wtIDLCUBS+cQD@X+qPTLQVn|f(H@PJJw$eM8d%n{^9E3q=2{c{ zmpgNx!B`GGd=HA=nIT&bpp~Oja}dSbgpWmh8$yR>%@q+1n6%hKLeN0?VlI+c9k2pL zT-!CT1Xc<T07zZi4=C7e?HWMmZt%eF!M>T$iPpGHZXc@zR^VWd&0qil7Zi*kq$G4* z1J1xr1W%8C+BvraV1ivVX@XC~)|{PdaF9iz{LtKfOyc3s0N?;>pPLclql43|W-$g3 z&ms)k+1b1>$PwB`r6UzzHUhCx5gOT=F-API5Ts#!ijyjmALBdNRlr>@Of9Ur4%=UK z>*;{vV=%bgfOMh*vyM$;0mSV^aW0^nRw>!E>IQ0bWJqk1GRv$;JmK}G-F@||UtN9w zgAcopKmM>eKYuWN@1qaUgcF5>EZ^(e7WWSx63lCFzWK)f@nbkj!C{KSA)RfEN%n%v zV8>*|si7xU=s1FLg$?J5$?!1rhjBXYpFQ~qmC_x>R91Wd9m1Y+>(zehj?>NVX*V6a zzDI^*Mr>HwnA*ehXZx<}ey{0<>G0I*RLs%raA>Ff;krB9teVZ)ioGc4fXb^4XA{!~ zVr|3P+%`Cg-2hz+0p+kV)|$Y#GkyaFqg**y_w8!v`}MGz`qjGWo7J>ETeaJZwdvTm zo3rNp!FhA>;9)zghv^JWj<y%(wGIZpV=n_-YU)u8WV2JSoo6HxT*&|kx9V5vPKF-q zWNvxb4ep~&pK@!EWC^GV->j`W4i954?v`N~%$kvU7+mrWtcKegT7^1Yt4zO46zn+A z*D1WX&z}c(f{_}@o&y51(X=FX|5<}KTb?KEpWQfMsBKjsv=TCfcN0C9y-LqcxJh>& z))a`X7JPTWPO-CZPgq~8X9f3{NtNleI;cjyDDj3A93ex^+UJ<-i%m<hSLALvTrYAA zC)^8qk6JKF^2%4+N=H1)nb31HUeU&eQD&V?6VaELY`4lRO_k^;3oSc;&ww3l`)*ol z+zHkN_9xq(d$|h`Cl7Vma^`){JC*=;obXHz7P2rk0bBt6$bf{Fv=Tw+qzxwJ6MI}O zGO3Jfit(SEY4Z9>+HXwtCmH1okU3l2tzXaYT>^LgzLc=M$SI~I0}G}-|NWNDql5NS z`*SMkXimJIuWtdx3uZnu(z@V&o@WfWq%?jL%~rOQ6y>axmJRd2ow_dAj*PWQ8Qea` zoE_(?ZllQJy|xn==X!u${~+5~coQ`*h6zwkO<wtKcA4gs<|14t2do^<_r%PoY%J`% ze)q@z*dKlRU;l-lYo0uL(p_F&cl-UmySaMS-duCHP=I-J1NF<@2`N~X&31kGhyT%k z=;K!(J-T`P<S`0M4UrfiACKUKF*alBgRZ$fj1Vh8ObwesTlS}Rdpx$|0n!3G$$&Ap zVo{J>XcfM@HrHm1%#_Px_yENXb`m;ZP~M%%SHQYq-+D}qw$5h?YnxGyFjusq+peQu z`D7mKI928<0%YoidPpUV{XKwXJT~jIjcM+&)os5ayE#HWF-;?=u*v+vO(5Yo3uBtO zt_;%#3D7i*`*zx}0Ti|U7&^cmA8ZgH<^hwA;xki$p)j<pBxAxSc*kfCh8!O{q9+W_ z%ZMsi$Uq?PHYDtBWn_6F15x!n&Mhe}fl)BX#^s`4`vwjlD-^voE3kD=cma-D(-ijq z!%d4uT3C|>fN4-;yYHbhH^I5>gUN)9uN&IES+p4>@P;OqT3LTWJOxl$;M%WOeTM>3 z(?x-EH|nRQ)sCepYnl{OtZ(NSM+3M6B!jz<ZOtu-0#vsL0#<Ymag22z>B4QQXE*sW z(Bs@9v*!^7zfefyB-w(x5sh89hFr#TW*Us)Pvq$QJX54*Lk;c;m!MHd1=TWDPYrZX zum>f^Vw0VrMb}9~|5lJ~hr}vwYX!6dh(Gq@G;q$esRZZVE+*<FsQ%nv-W<O6E5GvO zfB5hJ`)*kGxGv*vcR6<b&`sljq7mCom=eOf6|&_A4;~yIJUBmm@WHM)xY`PY0dUoj zn5RkTqkZypSx;*8l^Z*8=o?n6<JtD&&>hTe%?4*o1V%_W&uaa9<h{p1*F@dci^0I@ zglBl&jeDfY20*Qmu)CV>Ve7Nnv_lUS4oqB-pc=BZsoO0zZIDI5s58GNbr~QTvU{ty z0_OD!U>z2Xt7cf^_o2O5Z`;*oJ)N(&&Dq7aS)FaC&DlkJzCD}P{IBiIl?u-(Qf%uC zYQs9b*x9^@{^;iH!mi1dH+Q`kUfWV0q%CC3v3}>SF2H8s0tA|@2o!g#+2!!wGZhdL zLE>dRwa~)z*#n^GjcdL!MJiyaZ8V#q#KoCqTLzTUgmB##y!Z!q??A4jYF$oTypTmc ztXs-u>`oXE;0wF@T@_5O&+Ql%3;5$>stL~p$ZF0MYLwU>tt?%&M;c6%YI1mqj}}Nl z<ecT_NsubVQR?(50}}0%r8%B(IPNHby5Q6qndf%p{_vDS)C7L=L#021O41HW)1<`5 zm@&r_<`QFIomgg<q%!+y8V$hTDo!<KpGGcC@!6-jLC#&$ImzH%1*kfgMM89!1UF%* zGQKP$fV{?<`D@yiNL`&now((9sPI%5q-3kYJ?S?C?ms|RPy6={kM&!?{FG07YN#}m z#w?ifC6k^(zI@u3Nke~^&7+RZ0q?0~LtuJYoH=9OOLa%NZ)az8`Mcfv`TYx<$J~%$ zdG2+iYoAYEk8~4qCSh`;dxE;M@Q=^n+ZOV*y5}7q42Ssr2lm5eT`_rnK70ivyBcs5 zqY+H;bTp}oEuHdJm(N&^ZpZZx{DXh;Td!Pn{rkWBe*f{ukNe%#b+<q4`~Cj9M>EvJ zaq7U{LT3(l7Thhi1l+G6g`HNL&GGEw{CKt<ZvOcH{*N6lFR#qB!B%kbRNJg%_8Hg_ z;ynp7S*+=fPX=&WNa4*A&A@KktcSI`<f1stT5Vfyf)Xu28b|~{WjFgCMRg#IC``oJ z-orX^H3FETesKj5KS1F+Ovhu7Vo@eT0HQ?tW`wqfY{#tgKzTP)i$;R$%`|Lp+SSdv z-R{nso9hFaT5!i`_JnN9J1E-uwcj0F7%De`ASFXbYV#o}p%&3ZC^qaJZ8g$dWlSz$ zKo8b}n0X;B8jtXzZqN?pum|lei^0PLOUU*B9Xsxfy<ug{cD7GehIceeNuXKq?0|O7 zxSg6FD-Uc~GoV-!H()n5>jBaO)H|%2HQhdpiaH!jIONJ~sH=IaTO*(q+(-^hw{NDk zxdF*l2P+3#7$=$|{RZD>3w%UoKHO7BjYczl)AXxt3t$KE(!fK<7=ElE0GHDD9jDr; zS^ylMEU~6b8S4Nz>O_#0sals_Hpr$61`}ojQ_Tuem##NsV$QJS$1Sl#bDZPUY>#Vu z27xqrh0OvJ@XvLxSg|onQrz~IjSyCF62J`QCAIb_k9d@Eb@0})YmY5tKr8F02{zf1 zBYgLSW=!Z*OuiG_z~Q3Q&<0r)vbxnMq*S=2D7m7PqPNmpeBo~DhY>3yCjGK<7Z<fn zJ)WqwS!x{7V+c*A*6ZozmmlsQKYn8QQ>iix=i>#>5{y`Y_-Md|TT#C8SQR_pZf;g+ zLW)GX4Azi^n2^c4$LwrHg$7f0MeMrII{bRUA|@rgZ5T|NV?#HdkHg_Gt$VCHz*Ptr z-gMp6TpJi}CrIW@3fA?_rXSk%uma$2&Q^WfZdN9pL0^OO?RMI%&)N+fV78lPbAHxb zoSn6sE%fS}X0<+Rhs}o0IP1aWM{4SZVse#f+KLj8u_b{6_L+Kl8~yMakUhb7J7L|7 z@)?)A1ZZllqSy>?T9mpgv2*zg#xN_v?O2=*kd62IlAMn`nvWcSBkeS4H`!+vbrNn% zs=#N&4GdfXVnQ3dlZmN(xXD<0qb3&~IC3=!d3HcAP1_0qS_~I0c`r%@?=xHYRWZC7 zWJ_C3=duC`=()@Nm{~Cf$-V?^B5jo%q|V6R4~TEz*e(@T$TVbFuPWN2OSeTI|04BC zhGfjUs(R_AJl+M03x+Qp%0y6_f2n7mo?Ky4<o<d-GZx0&bbK9HEP{8GBSG7475o$Y zad-F~rfu?b4_S>RQ==YxDTtJ0nE!Gy*N_!waIRT$yObp_82Xef%{s{D-)BXyWt&=_ znKSzNb()+;qL^0%1W!`-<*AyOes?}HYAV}1z5v9Zl)#)|xQ!)0p<6GEd1l9#;Cuo8 zPkt`5{#fh2!#c9aX#DVVQlQ}aUA`)dWf1>cVb&A47I@CrNAJm1$@*8!dYff1i`oMH z%^$?sYCw?#`Rm&EEU(F*Dd#|iv@Th(QOZ~HSOv$Y)QG#3y>eetS6|n#dz*~uP|ADC zqEJ!RFxesb7#%u~EYSSYSN^W)EC1U+y2Cty$zi?SjP&hh@zZXPMnsnlWFXL=A5aL2 zCPuq`vxn14Gj`X{ue-DD)(TL!8+5QVA2~^Rj08637uGDKkc?16QK_qXtz>M&EW^5< zTCe5fu?1LiZ}+By4Vw9y(^8;=+y>iWiw*N3XTw7C7_(y}D^E__S|S-wJ)(QL4gJRM z^Nt!1$Ac}_qxca{H|H1Y=KAKW8TW_wxZ90a`(u0DA1BCY05uMy>EbQx0>(!np=qSi z{nDjCa72Wt0ILa*$gl_!*9A5u^hLqmjXR8qW>{=I_7VHn_S11kka=^wvCF!`X@m<7 zMp^(hCJ4r+TQMCD%_K-RzhDW$>Nk03!L7%1`$UDX40NY_W21dUHE-HsXi*Go0(Nsi zG4bsP2Mu%kGUA9G>~OEy{e%v<$f?%*Y2N@yLUIIqLNM%WuCBIbWNEGUPyvn&S+ zk8WCl&BJ?EU@2FeY|wt4ymi|i`_8=M&4tC1M3Xw0nKtA~b`D0<@bX0Cte_tnPPEy} z*a`=Z5`fMuHI1;JCfLHmHgB@Z1KbCcDuARlh8f3eygUR^cs#mkZGTkd2)VnyN2P(g zZde`1*ijsW&ww{C54_FXLp#{okO@?JZ?Xjz-=0ZyFUEVOrh~t^0eAT3ckOEG4k*Ax zQ!lpCqC$5Xdsu=ZzmtC7GG;)1OM^kD+v<pj1@o~X!(k6kJFRG0I==k!OS{!-bw<0$ z7(!LNPH%jA%$M8D2xK*BvKz&*1f@X;+*>cde11KS@cPFEF-$R`?3z=)kKs@YQ3hn| zH7p>8{KM>^Y)CY@1^_?ol32PhO>jd*L5U4FW@b2Avr={rGD(?@CniZ7(1d6jR$a5| zHvsJotV7qEVZyjJY}d_Z1-F-Nv$@!G+s$^m*qlwU)a*AK6n<Os1Ua1-lr~luU^;c{ zxa$%rRuUlH!T~~-XJFhC8M}r?_TavPb+1?V6J!(Qf(kg$I?)gz3vsXwWTjj!7_nGr zm8`bzYQ9Sb?(Mq)`ssK?Z*wICym)qwsU?z}j`xIhfDK`Hs_AqWGI^nU4Gfj+Tq>r2 zyIK%&Dq?LbSCj1<Q+s)iK$^f+7!gf;d@j^P%tuk0Wg%fLiLu6JR%qxh{aG3>(%1p^ zLZEG{Jc(>mWo|Ka7xC^?8&|zq(^4E^gz)`TXik^NU(FAS<W-2h2yt9J<m+)>Ba=WV z#qP?u;$XGfz<Y+fOSav}G#`{ZFznO5oxrvmV7H%9qys+0im9wsp)EVoHr+i^o1`4F zgT$ob{bUo)E>@f~(~NWsp)x8cYqk{O@45B65}WilKb7;8V9DtF%1-1?sYXJHr#4pj z;tb+_e{V@;PBbn$C4K2m0qi?09Z!MxyMCWB^Plj(4AyV$?+JE(cAN`M_;Mjc;C!i* zQdP75E^Su^_p?+kv-%6Smz-eaebDc>_IZ(@m|*#iYm+_)4-<iI`eC?%EWd~Umeuh5 z{hobm(M*M(>@+RABHy0M)eBW%DYrlBPK3d|g{`qSxI6}~jkRLSYct5OVSY7En|1?f zh9}XcQ?U|IF3%dmXosO|SL-#j=;j72$01)bpyw1dj<op&Ho^GjT}%iV+>!vGmvpo( z_)9p)VH|S-8`s$ktjZ<B@dWTTcG3r)<t#=Pn4q;i9^vcGDTYoOUPNaQl+YfmIDE;m z=R0Wp_j}V`?8gIKS?oMu3;P2!wFj!Bk4*<woPC|_ly^u9knlj`eLU{EopIGFnL=`6 zo`oY^P^?uHkiXeu;^W}O;o*$}Sb*()Wmg?hu;s<wB{&2pxLyeE?(XjH9vl+f9WD?g z1b25XenW6~cMERAym@ct{ek)R`qNppPFHoGKBu}?t=hY~#NAg3la6;YeZ5*LuWlm+ zU1kcK;bq1EL~lFPFh?`4%j8?1Yzs0Rx*thG%O#^E)vlgh?LIK^Yt=kn&ng4!#0YWk zqzS|5YlMY0b)1n-JUg)biifxpd^W&!ozOus1ofE}YNwJur~4?wCOnub^g;qmugG3? zm_^}WpVhW=f`NQ!-h*&-b!R`{ow8bH5V~WHg9t!1+~0`}No%FLPFkw~xeG5k?n*<~ zkbeI&@98E<|0V{(BuTj}D2qK=vB+hzFVOOv3;Y6-^0Te;JZNUt`B0337V8<6A6JB- z_GFm)bIA56MV>p7y1gd0QDT1w+(AY(6151+0-qOVq$12qWNa^NxbzyFKU@>3h3>N& zZsp1!TDp@^J2TXaUn5Rg`<Y?MS~d0qf_GyTtQ!Ubt-L~k*R$HnKXVwX*hdqwy=&Ri zkLNTBw7JHKDA5+H(XCG!h%2#8_{{5xP;}V+4kW2RDgEjvZxn6fl#^f@moRPdUl9!r zHNaxTYxV^UVKF)ym~z~ZH)wK$+<4%Rm*?!bMg8N!*@ec66}N1CHSZ+g;uFmVy_)5l zhKBu92SK!zh9k2ZHFwu<Jlrd#hG;oR73!^I6nvF+s$o)6I?P*+_N1~1BkH`={OU^n z?&ft>uk`Xw9q|$QusaW^$ns}L-1sCY;XE=;(lTW>A{Gx=^STa#8%k8jYJ2CVcI*Lk zGuq~-kUcPUTH;u3<WSQ&Q#(G|IcLG4&6qpK*lqH>n&6(HMps-p84=FP!<t2K3buP8 zU&V&E&sf_yA(JvCG8?vO$^BElO3oH%lcE_5jv}8V6y~}?xx=u(+tY8*ezDHV-H(N( z#iHI8!M!6h-K3emy9DOS#GjtFjJkn5=}ia<iIECg-*-^%Tz@EE&B@B^cy-V%WNXx( z*kWZk%cra3zMO~4-K~}KO)Q=6OGDa2yhbe)F5;mzpBHj12U~xV^`{nCt`%sCfqypd z1qQ8J%Tsn@Di}ap%8R>4`?7AGiiKFY3*CEQC(g^Aqe9)~zEBg8ga0tV(aQsDyRNhj zG@yDTx{A&#^#8CN-5c1n!>&B~|9j>@O4Rm;FDnyi`;wII@Z#2E_4ML#UXN<&J7;zJ zSoA#a@mpNm2|7_|gJn%m>|GP^QvQxRMJJ$zkL;p+jTcx=t@tND2d=P&Ap7H8aq9q& zPMw=$27cfp0tZ1O4QT#|Aro`q6H^vEprnTu{P)ge#c+FwAL{Efg*<fbWJbs%2ZR3F zX9%h(<9=`_b#FmKzxX=pFWCg}i(@q`HDO@o1^WiU`>r5n>#p?^{+*1cJR?o}@p|Ev zAhuA~X4h3L;Z*dGFDhJrX=diHRn#a9f8pB&jsyfVx6BE1a@{XMhS*^UzBcJZ!=Des zn&G5CA|v~|8i%^~N36Eem3x7I?es<SRHeir2(_7W4r+Ne@{l2O9XAt-3<`2Ogwvj> zWI%??s;N0+JH$K!7B}|;@-;A&+!pb8zk<G;6>Q%fB7<h;B{ZSEKBlkmi{o=4#|+NQ zG1)y(3$bnEtX8hisaeNXblm%=<p-E_fCQlP<F#G@rGjM0X=|3C7T7z|<m|9wcTG`P zE0%y|1jLkVk_o6SJ}}guKqj{()>9-*Y6qe`*&<-bp4!H+l-35os(b`z09tCIJKVy} zdFJgZ-<Go$&F-wGe26^<rAXB+)<_rlH!6+*?RN(#)J@L;N_+QTK&Ol}gl1-iYp=ak zlNFEcLD)<jMU95@DEv`cIT06#f(Y~yN45KgJ_Jd-W|b3nh3yzu#nXD&sYY2(Q>Q62 zfj<@D=k}7l_-S{28niyaj0%)2d?ig4Ub-Pp@6nl6zzGDHAM`S{6UCGpE1Miqnm_T0 z+{Kv3V=3$_$qlE`#9|Y~s-s&9L|55%l`mx)Tk-<CUYS@t%-aqo(qB{hg#tVi@_1P@ zSqQ!>8S2!}i@C*e0lBOy=<tcKb4TZ?3UnNIV4*cPui#-zFcL(RJrUJs%r)~xf%m|Y z4SLR{5G$L76>cW;DuVWn?YhB-C>E)GVJEGa0RVs$KXLwUQQ|qkPz_f(Q-{RHPzI@< z8Ef0WGfyCwugYzHo^=a$y#5ls3LKvZesCG8c6^AfJ82f2aU*<=zs9bwEY0sXx5h;; z<~-d)cX75CX5v$&Q(@iV@d9Ec=y^`94y4z!m(dy-)hDw_6uxvEE(MC)_4j^LGzGHU zskf|7tW}EmN5#WE;meE24wY{vmJ+oXAD)c*xVx~VcI)f6Ysk2Fx*^jotdX#-NH+wg zO=@OmG##2aa2wji@|vMV?#qL6s5j{m8v!dtL-$lg-bC6Gxh*MB?TSJy6g!Du$`oQR z)f*5F!s;1dE<d8TEU%0qk&E~~BJkEZwYh?<(=0UsKaD0pJ9+i95jsn!R`uR(k%93r zgLc%7b#?)`i)H<1mT<3s>3rG&u9P5`I!)X6ToyY_vz7MIafm`MzdU`kaX@`KZowPu z{GAf~D=s5TZC=;1bxk1j^S2m7;l6H!%g(isTU-&vNu#OWjHsD+7G|HR@Ul`^urODM zN8Op2R?C|_M`i%lO*hvEkhEMPY%cVsSey|Bez7aCxo+18HIAQ-$Ph9a^S%a8@lyo< zAom{Ssa>YWXe{^_4<eR!tkGaI(=e0C1U$;4VOG!eDby9s_=v$#n-VEmq2DqA0wZRu zT<qqf$=q8pr_RGgsK8=4afudkcB*2V)px3HCZ;+qreRjOP^%`%e;J%t2)@}q9EwmT z2jNwmYeDNx;v7UQlijSuJ|K)7o6+ef>>ky(Kh+{PM4CJk-s~g922}EkJobnlf$zC~ zP(I@GJ1l@oMjkfnWatA#?uZfIgs=>K&(OU){GB&~L>%z7@Pe?T5)kzO1Br_hKJ^f* zx;j0dA^50~wNz_<8BZ^QRzK<YYb(u<FDC9?COU{Zcm*_6PLHx#QE7hlb8Wua^5fy8 z{r;zU4zr<pu)&%qZsvZwSQPVCxcUW=b_)f}KDsg$3IMj{=%jy;XIJZG4-=VF969{X z3K%Vt0(B12M0%co?Hl9?OeWmQ@*aL>&wv7sU15jJaNqH+ox1Tv5z@YV@{rWheKsNv zI300HkFW(tJnI8_C0f>g>lXqMUEeGQ3*G&CgtL^TlKz|?K|O6fM&}Sy!QBZ6Q~-mV zWMvM6=a`Uji@!p7seRO0@hb;uZ;I&I8d=q1iaeZ4p(~2h>`$*@FJZFP6(Vk2seUnt z6}C<Fs>hjCgHXV+`hs%MYtR!Us$;Ei$>F-6ZP(%Ndc#FnJ5!2!B3^O6u%{Z0e}`UG zzH!`h&J{qNfRe;!rZ2k1WCX$M-|3cZ{80=XOQOqCu(?C?Qdz;Hrt=SUWZAk4dTO}w zZX$SGkwwnfNyo|F(i(kg3hP5^RK+JNZpTU1f|e*x^Nz@ar`qfSb)YnU>v%y}8XCpv zzp)`XnTJK!*=m`MY<(0hqs64zVUr5cT2lz1kz1RpZ30@|fSUZ112>=^mNsGDWnmYU z9-SRvMRu&^8K3=`3-3mczN3k0%QT2*b<Pj%G{#$_)(VzMkV6mbhnQtF84nIHiGCxt zP=LBPht8V9$)U%qv<x!Ykz;h%B=<2sW@uow78ZI@YVtqvK_4;bOOovLcDkL!4_&r5 zk9m_Iiznje8^)a+fj(mvOj3%3Bt^ecY1<9V4((sUIqj<YOhxLm*?qn9O>XTyqjDrs zB|DjEL@D9Q`nrV6rmc>;L|G$r*UuN?PF7*T77hrw?uSkWkG;hD*5uR?;J;M%&c>)5 z&7q%gounfFMOW+q8rGL8bf*rL*bZx(RS>NaZ?AcPEcpLPm>s}YSp1VS81of^bbd4@ z<$L-8L;wPxH&J+Ujr^zlm4=dCK~Vc0FLN{YWx)?>$H`eYmHNiV%NZ+UHIQ!eI^*Sw zm$w&S{@e<78f}P&L<``eQhi%ib9~Kqi{baZ#n9_RXpDxyN*cjK+qD0+(D8k4>Z1Lq zc{d&LehuSJ{8{mhG*mF>kw8ZBIMbgT?KN8!86?%(W0FcaFTzppT<x{EbtWRIQTiMX z!wRMEpKjYeH@4`vNF@emqTl6VrGr@ZSueKWSHZ3_UIu$fyNJ7D(&P-fwicBk1PS$S zm<VQGyWL}B?q<(cMDSw?g6ceoNVpb&#V)xC##KvRONvr+#m~I6%!4;fatRtZyG&4W z6RkoJI2Gf=I+md6d(+F?b!rE6d1t?di=AviG~r@n+yU{f;yD{zKtqJ{K5}@R0|zCB zSQECVHOUO4@|j&kj6}_69ASl8T=v0oXaU1kS2miuT-UfwR!ysJ<Z9TdcJ{I4UTeW3 z%!MC^>6_31$=g+PR%6TGeZ`3d>tuGHgj6?`e?){hIOnkt3Xw`FKr3?!^U#~!04uO$ zf~OiZtA$*)vdt96#N|k5u1qR$tpJEC%J$TNzZQg%+_&{Ok`zuSJ<qn2mbk2~U{{hm z7Y@<tU_bcp!NGTm@)zJSBMB#uP;T+#*xQyHkKh@sUz&dFq$(C6*&_b#D4e(xO(JVj z4Q5Sn6-yrfY(oBg?pro(+BaEdr-F4k1<pWWR1uo^kwY)&=^Rzw>V<GLINxc(qEr)y z-(!Jsv@TIBY<O`3dCOwXmS!#jPV|-EK1c?uGV+BY<VpJ4q2`)7$8}yN(93`2d^iRW z<7t7nRY;>n16ipiP{;^4v-jj6Sot>*$?xjhoRNuu4%!TFWu-4BHvY+-Z4-IAE-{-_ z4^lwMs0SML{oiu;38H1&HR#m)89%|;6DKy?2|xdNhxrO5Qn@K!yDnW|MO=vYOjFJr zRZfC0CneKch-j1u2`X<pUJcsjl1W5mmJ*wVN~aK95RYKTJ<m;FW&)->vchZ)rD8xe zu)yN>r4vf08p`Wsu?3)~V`7(hqHDSZn}v#kfkCR_2f=z5(+g|F!+@{n74R-KFC}Jr z`^o;3m~|_6J32-weh*ubjY-Fa4+e`z@G9@VAgk1*v7QIW;oUCdm}PLV-PkFZ;6QM! zPF#)$nvx@abTRtzUX!e?B&VkVN-EhJW~rxxNfg_K?9pG#d%t^BosO9Z?c?X9pj-uw zf24i7#!Z$m!6@9MQ3!8S6M0&TVCszDCd_Bj$Lh%9aK1~g7d$LQ8}09kJc;yIAw1~! zskXZsK13#KV-pk4z1p70)ouZp|2#RLKQOcy(k74py7+^iD)o;@6&~|?1?$dR)>{Ct zWd^3{1wo^$8%=VxuxI1%r@qR|rA+>#z`XX*qsT95kRy0-9Pb`}XUR|P5tr*K4fqmC zD2I=FoeG#TBFQ%QdUA{o;*$o;0Pju6IqRUAms4I{bHw<{LBjPf4&KxYaCS?2ln?r+ zXXb!v>96EH4K@Gl1_raS)rtRgCYE7-78NDP8iz9sbGgGBGkD>T6SPu{=X(0;eFZdk zSQ;3#WTLICyS45Y9R7V?HaxX{43k`wlE;|Rk&K+UJzYaM2PX&NMQD8)mNs$@wX4V1 z)#A(4)*BREUiq6=V#t>Ahs94)i=oz%M@Hs2L$c}JOW-T{^vbWSB*!tO96EqOU)<;< z$~$zcKdodL^uXUg*s{hJIi8#<$-V8R22HTp)Kg*JD{jz^;tGt)I2QR|+Pz(d*x|{1 zMfkMVvw45$oug{zX!U=Px5n;+pmq{G1B|cga>p!Q_0;Dg8aCo~N?nOp_?IJx|5bFI zr-!O=i?&HfX?a>Sg18VJ)4haD$*ZhGmLP2JEf%3TOy5cuS2FB-CH=>=-Ap@#6==mz zy!3@Gi|E`*-1w3W{YP8@>7<|~y*r;^_zf+=(^v&Xgc%AihwzSrx?3US$ZiGO9_c_h znIK$D3jIw#BChx0qrY)3kL+PoMwYb?v=q?!VQ?p8&moj2<>F{SEeszlRmBiD)fDiO zm$u=`>Z-s;uj8|e+}F2zA%W+IqlOQt!nek6Z!dODJ>BQtzz(M%Ui8DH;JF6~Td(UY zpp;P3*>Qn{+<~X#?9QQQt<oFAsJ->uzvJ<YoLhXYpZjs^=u8qu14|=gAYY6$F?J7B zBQ$u^IQC!#aIV~@kt`oFiQUuOSmrjwP7o~z&mgn3;VjHnurdeoG@*t1!3tB@mwAg~ z17VMZA#WclTB)BzW0Y}S{P%q)Ll!oPcWEqmbaFJ&%=p13N8)b=o+9PIo(j#H%%IB- zu?^kASUUDlI1!wg=S23(Ws`|0nvH6L0}Rq{P#mA+I-)uq$GOGfSr=_t-D!*;ql`o6 zWq-7l99k)wSpaC3xzL}zo7!UHZ6VV<x}p8IOicHZe-%ETJR&%d?<4!79o}v<NDP1S zEXPV4m$MWXZXtUG#6a>~!kYiS62_WB{M=msbnd@5e^j`jBWKoR&*R;(-<{~?mXE>> z`-2apGni4^I#3re$=ChWxVEjhth_swzv>7?&UsJ7L%lUx#KX>(vO{e?qu8^~4MA&9 zZ*+7QR74ZVpQ6EfH{wx@QHr{2Ne=?*%ixe-cT<TEVr46d%iaja6dSXC&R$&-4N2$Q z$w!fnIXU=&h;jee!e0gqbLZq}coa47W@CGIV2Rb7DCVF$C39W^<^$%+-n{5e@-2Yg zvgX$t8K{2E;Reu?>fL9qkvq$Hm??jj+(yNiz2Fw-(zPc#nzj^yj*omt+aD~!c`uJ? zp!bT`vEUOeXf+}-*&HLG9g{pbn&}$#cPFO$Dl_Y)3A40*@&G;W;v0RE*cVxrUZFf7 zI|kfjR8WQXPGYfFf6?lBKu^+UHy2ZjdJ8s1=PqSk0=PfJOPv_1T8%d-HMfLfb4WVo zIF=esi;l!-r9%PRLWtnpQh9sikkNg`)nk%U!0&_C*2Bt4$A!~){|ZMt%1w<YM<8p< z^fQ17E;&TsCMvMta?MVWN8BW>_(~_>PD%i`(?v9se<mkNUlz;55dt#E#nKk|fukTI zo?yYlc4fy8kiDk}RZ7bE-jBMD7aqVA%w@0iND`)JN<*{6v*NmnWtA`1ETqcdWK;@g zTea&WmYnS>n<g8)`7qxDqEp3bR`@7xSDd=&_*FEU$1clsnjv~-N>n-2-@M~s+@{tZ zu_nCAM&QKw3?39!a5}Xxjes_~{iiW2n#G6A#5z2c9eAWGibF#F)>IF!1CzW#712M4 zNhKaXeLp!eQimt_9<C9%KN*jlH7<t7$Ym&wA~%=2y!acz8UqQ5;~r*=f;S|i$ceM_ zqY65!JXZB+ePc|kv+{3R%K%mrBHK?QeMX&TmR6sdIZ)a%CTBZ4o&g5!<LH$S$^Ec+ zP{YdYa}G>8Q>+)fTWg!tOe5oX@TRKMHH8LzBcwG{oeuj8;0!7vuVTxpB}^mQk+%v9 zdgk`^ZHNHs>GnFmiP$azEbPz1ds*<)W~Ir#QCc#E(gTKjMT+g{#8t<c-d^|CB|!A& z7yRTqlI$ge(NpVFS@5yg<Xt0=S!OtbyohCPar{Kd6i>8FjR{ONBmHT2l3)K56<b{? zrD9y~#Q89ZnCi6S6LsoT0pidu=TJbhCh#sWw1sCH|9LHM5S>}T^vd13QeYQdD;%*c zth2c=p~YaN{r7YYDI?sU!LJNhe>g1r<$rdhHAs6^e-=bU%SxA#P9}r<hzJt)wk4p< zlx*{l?d%Ge)4PWeU@bRS1y1+^I51wjvT19PqW5XXIdZG%i9lkgNAkW!7W$`}Z6!i+ z5tZGC45yq_>SqmkvMIOTErGbYbhLdOB0+H#7ZPVWOw1MV461IO#heNq8sss$GCPaI zIo4RLOV`=93rT>YyS^9|-C(<W^cmB|Ox<L94&2c~7%xKuo><+#;lih`85&mbnaY4O zFQ_L@eIb~OAD*935(tka6<+g{I8n+7LLT<MsRLb#Vr<|?IDLl&21XU3{~6n1ssIAZ z{fz2w`??#Xm~2O~XB<42fL%Q1@weG97iz27C|YoxNP2N+d%m_+&D91QmeVO(!i|pO z(+otYm<De%4%<u>njVa!#iRo3d&O4sZ!3sf0f^6-t`^e-2d&e?Xv2C2q6Hhdik=Qt zrzFiNh3eiW;cN_qu5J3MqRpr_hs|fQ(G@m}=eqtTd2X%x^LgP?7pHt+>L^QTD;!0Z zRWy=`!M+Tf%s4h%52BH5!be2N7v|y6>&s;Pl(c5Gr-xTeE1=g~LBc&#pD!&*PoA&- zopl+NamSQE@1NjK4<m_U1gbe<eq~si)(qx`5M-1Yhnh74P^@2qXeLC*r^g)TulL`@ z{v+FGH(J(-`w2$Ag0c=~H@=7_09@bzZ0?O7UsorTOOI~~l)eA2oMCN99>qO;wbxbP z(coryA+dYT)hW0h&@&{2ml4p10w{vZxAj_$`<fZFZf6BJ-^GyUPa9lbZ&gi>&u7GE zqEDC6ALn_ITg9~Fp?WOK?p`cPUqb|cpOYf9cRm69@WS~(603l)v8!El60~1N$uRhZ zFGX!BNc#vx{Sm)1vx6+aj2X<GvPlkVNtD^?>!48jg0SR#{8AP*mncciuuK@N%mDQ} z{ZINl1ZRpERvh%d9RH$k)jE6m>j>j8^hsea!LDW&Z2cXRolyctvR7@c#3h~v6c|B^ zJ%0-a4BmZuuMzJG$9FV{-J6dI(=^>CJh^HcZ9GrCYMrA@u~|0jkB{`ywir`&1$00- zG!8==W<^gC5PZ~nlUZ>izH1L9WvAsYlh@{Ra9cM*(4=U-SCa~fT@T2?rmO*qiGz<T zH!|^lLyy2%5az`9i^AOB>7k4Zahw5846Q*;EWZ@CAB7sepz%d`6W#8y6Jtz#lKKGq z*Eg$+T@l3;Hfhjz53q<cC{D+ntE&v<DUFZJ&(M0$k)_FsIrRJrq#Nl{DMF2n*zumu zr^3l$LO7~$mGWk9*>zK15*_MM`s-SeI>sx*x|{pF=aRIDte9$??GPEG!9#RkUY$6o zpS6;v^1YEW<ufu(8*-q5mf6?ZkML#8>NU0T=t8=xT1DTP$a6r(Xa`W6kB0)ME=yz% z(X^q@`0)XG*@jk)Exj137uE;~xf?d3_I`w=eW~tY-JnVg%E%Y&n3(u?Az%BAQg!6i zb={a>=p8s846XCYSH8V`_M5hep!XH>Ns*;?P34JO`cg<orp;McWTyJP@pCBXmXLk3 zzf(@_vM9_kR7NKLqdOfMo40(-;9yjWN}V@!4n&U>UCQpFsBribg*^Lr{F@jF_#Trl zTmu+$4Y=S4dSz$koj9ry><+UbjOoanZND8KtxC}0f!NG4fX<yzUZ~T}h%uYG*pp?% zE4AO}?y**NtS6yF$%H9j4g%hYSXzjdtbKJOn>0wct8*b#N|ARZ_uzobZ|DFMl7?Qj zmK$bVq#Lq0s~PRtVZWIfVayhEWQRX#|Jv;`>2s`rh>lbue6IaV8P28jHqrW~QjoQ* zmy*CIyQgSgo^&0Gm}35nW*A@8IPNMgW@P5smx?6*^xed1w|z>Kbyuu-FuKg!L0S&6 zYKdPNL*o#)YmV3FxX;t~Zi$&0(zXNl6)YEwkK5^;Xv4cewp2Taha4nDe+SeH?bu!O z9cQT*k@r_T;mZ=Z!hYbMqUyDdJ!S){nTvht=g91A^rLN70o!|onBKVC>zq)ijo%5- z;SkN&|4XUt!e7WV$$`Xb#uB49D@@KK9irNnOn&^fZLO|?k+m6smtHM*rnDf3&EtiT zTUe_o+$K&hWQw27mIB7ewcPv{3MUEZ@ByqpYUjA0Ui4YbYciXkhcIK$CCwAK!;enF z8yuRVIcVL>RHeXY&t1C%q3MZ(s~ob-_Z<dO0gFH#edISseMwlSmIRDquSSoXJ4ysb ztEn#WaVfvkcK9Wohs^ih^shc;=u1YN!x$&6d(#BROHhYZs7s@a@~c&j;r!V?Lj%65 zy<Gw|lI5y4Hus{bF>+A7QgFE2+F>C5`3LUwsw9`jXo<jM7os5?cToSBKt(8L+{9a! zShV$W53YmXk7C$ernOSv;9l?PeV=F+5u<$|Iqr7TKcE9BJezgMXFiCS{Hopj&w+tb znV!C{HK!$Gs2oA?%_mMtWlb>z<JSJ<?-Crk``$e+@a>$1M=b0>#TlY+b}RGL>@!?q zJYk@kQY7r``8S#&F?K}+3=92oh8uZ4ZuW@vXmYRe2_(Z?hQux=rdR6C{2(E?zsl@4 zWyqQtD|X3fMQ@H5F7cz*nm`HotLf4hL4=O(oWGzvAQitKoXe!iTVii}`}gvh3_yh7 zMoi3gQH37aN6xJ8^s_ckWysLQY-0cA=d!`wLC^Uw@O$!nQ1wyS@^0t5$+S45$jCEJ z1{y~#S|S~j`6V7}S)U**B+)cx6dl8TVr&0)<9DnFm@APc3?t~Q3<7>A+iV+>Ncd>` zd@Dm1r{Ui2DZxx*r7*p^IhIcw#BlAw+Ydbrhj}gt7%WT+WMJ!2;44JHjydK_27wxP zj}Pm)&hFgL@Oy;hQ#~V-$r9hMFFsLTsvjD#@T04#IG(iYv6}{#vR-E%A=`(Zh1W8a zt-|CoyYfYOH`lH7>&WBO`CFMZgg-A_)~=q8rFDGM$HTJLMZ8xiW^<T5{px-OhH;># zGEnv>yAc00nIg_sw%|G4CdrC%S%S2F);UwDSY0>iRG~YlC;;+VLQko;jAuk&E*Iyy zurGUg9BB=WV8Uq-(=fdJ+8EGNV~trDg_iHSnO>utgxE)Uzu~6!sFFb`d_QwlJk?t_ zr}sc=F0z)l^N@Q}uu4gE4`eGq63E@-O3)+{`btWdqlF;&yP}Vfh9Yy>$r1>E-HDI( zz3NXf=?h=W#h@k3y(4#p*25VD<J6+wo%ZCQ3a73_!Y>!H3A*$6CN1Bq9}Fz9_y^{a z)-?`u{R|DpJ}l*5bQ9dbAywbAJ!|#``((iob6V?PBez9Qm7LS4O~|ay59AZ*Ow|)m zRsv#Pk?w}#BhuzI3U%SUw_v!~T459J^GB6wJ;ZKGrJ;41G@9n}(0wxq>yr(E>9|hh zC0A&{{1zB@praMVbwKR~(qIn!x{f*^kmrDn+`9%IZIk8jSTg==Fo(#Kaq5^nnr`@x z+8CSoR)tmt)m7qzAs2e7h4fBdC2F#Vp%)DygKhQB;upc6`kMGhvTa(H$a?=G85niJ zMSW|H$=2=r&Y!uepCYyLZaf6k0Xq)h99M!A_f;8-r7Xl0o9&m#9xw^(Xk5NJdM-(R zV8OJ6mJhZrsXbx62}5;l?RuYwa|eSdjhqb=Qe#kFUR2|dFslTUlUudrpM`yv`I{)_ zNOidKawK)9>Qov$-S%k^Juj&d;6b_m&iimn*;5PRmih6`tza@)2+voixL~}YE}(}< z8yU?z?=~`+Ueq{J7%Rt{XYN_mn@Mi`=bSeT2sl4_kww{hbrKQqz704R16=SXEuJUT zd>kUfp@;V$mC7WWtmRE~lyph(1Dy?i_8GcO6{I%i*F5vhQ*YOciqLS_g<ria?DGm+ zDK+@@MY)r!iLW!x8#0d;AMV+l!11rYjvz2cJ0e!+W!3F?jo83se&CYwa(a#RaLf<E z4nELZb9HQL^ZjAtOe5F!HW{BSVk7ow#`t+v)AAdgI%wcWto<_%{NWG4$@QF!#i@xX zK#8clh;OJ&ouA}*^AjUlfyWJ+R0dQt14VIsRnw5v+#8x@f1+`zARA|i@knxXN>uv4 zlaj+H8A{Au#fycawB#<(cp!f9vSWF!0FmMiq3pdp5?mj$)%w-&QL~k<4oZG~yW_cN zSaOO5y$;K$4ccQ}71-TWqQ?^00y60ec{YF}p05>-=|R#w|BzdDO|ulSF{c=i%3&-! zCtGe^D9Z6SZZ3CwW3yHSjO2n*h9lmd2RZ`={gS8guggA_NsKF@3;dwyN8&TpSF#0U z>?SyP^0)|K6HzQ!v7|;RX=48Hk7C2s_Qh_6Z|6B?=L1bILwyB0xHVyX{;`Z$Edk!0 zWG{q1Zd?4!yMga2u{rWKHUYny2U}<M8lAs<x>b;Q)207pVtb~SL%mUFbPLDK4xI;Q z`<L_q#aq=ZIz>{EFN!m%kz6}T8^=f_x+v{Avnq}h$tQ&5U*r~Q$9$pcBuoxi>MA}e zw5|>#!JyZC(F^#LR9`&U7^%_Z6n0=+Oqd%8!S+=LS#|37IyGkPO~Z3qF`kI8u4l8+ zK&srP#3FK}bz3*~FkNM^7a`FDrFrQhwe^;bQRj3X$~6}IlV{BD&FHX+U(>+{JFZyZ z@FA61hgwtUaxciP#IJ*)ARZc(t0!h{Zl=#MJX7ZyJmS-<nvt6n;DCJ3r;VzFEWaF* zA!6a3rqG^%COn!MwoU2s<XeLVJg<%yt>RrBWW&t>7S3lnV@a)VW|M_<f9Iv;&84z5 zv-;pYtG@EY8WyUTt?i)mBy=XAcItOY1V1Ex!ij7}(D*!e(Dap0Pj8P$_*5;6)mo&h z(bq%qi6KiKYUeF$3rFOsd;@MMgXy_E+-#JH^?ki~18XgG&B(8A5?MLV^ixCpdu@2w zhUQf)=;ov&VvrWbJ1{Eq?$k(q@m?AFobO2H)W6O&cCMqpH!3hyIX&x9&Y?pjz^HKK zprv!+fWOR}<O$!nGFhc~P(nbh{9tO=x)?X2HA3Gz*O*>T)BCr0F1a(wPv9Swru36S z`5hSa@ZZC`zne#5^&`4{Eg9YwP{%X_OepQG@UU}bYz&pmmA>cdI5Y!2{aj?0FFd$^ zHki9fxBx{d2Su8}C3>0Z?Fk%MeB?XwpM(nexF;EgpsIoz!kFImp^(5D-~)l04v(xD zyiC;*Q)g~vEaN|H3&M;JKkqq>GH}RWahD#%xqoKAw*pyC7p9|fQ`asy$sDc!%t)Nh zL>Zd2loYbe^x4^o^rkCoA?aSWhAHG*A!VY<lyYMT!8BrN=I_Fm{!(1;h2IzJr>;GW z!(WR3DCOY1LN98ZEsPc2Tunx!?R`OhBB@8AMtclYlslN!mes+;9L@BbpueqaEUpbH zj^C^JIY;Gn{yDc^lQghFph&&6EZR+T`wQP~XYaLmi=UJ;qq>JG(a%z6SpMV|_Q$yf zomNEttve<LSwy$sS8|QVErlp2^pc?xc%t9Fqb0~>jJnmV1qTQUa}Zl5uOFExbwxid z^jsHqiiHl$v|eIlBvNT!>JRtDuttcW2mHq@=hZA-nX3vBj1|4QSLM;?9pQfK+!H=D z*TBV8x5>{3e8J~R&&wk`tZ|Hp1ecL=5b};*J_3=4axD)Rj9yxhP7O_^_KkP)!?vNP zw~Oi0Omr!4<<soG%5QaHWFdu~G_GYUuk|raW}9B~=6LNO2y$JuT+4sC0x^7L4nfKD zOPaJHn@(`(qS();$Xz14rNq8-C)v(5SLjGk41~YvS30tm<v%LSwnrIHJo#gLqbK^u zQ*<(oQ)>j2$<%o?y*lwTZ<$ovfoSW?u+mH%PGRC0;IB31Y+ih;o<H5xl3gMmhYHby zI7`~-d)}pd4>%T7>op<F8l$5O_4pzLlPvpI&lCxHPRg_3V1pohsZAmDc{PM7Z}Gl^ zV$i#?!gLl9lC{yO9sB*n=km#CGVHY;$Nn?UG+b6+M~b&ftom}$MyKOO!p6Q6n!Hi8 zdgH|%*~$F3=gvLQ=qyU*px2DyZ_!$Tu{~jFF+DkV9lZjYBWi6bAAh@}L)}$^XB=ZI zW#lNHp!w7h*i7$5y>(|#H>gE81_SGYd)vJb7CEJSUhM6Q7nVg~83YHR2O?@s$6e;4 z7$sGk-U@>*yOzV~=xwo)a25s&A6>CB1YnEQykh@MZWL<%S0m0EPj1Z8w%WwEw>~kg zlIkgRyl9Pqadc!G;Dt4%ocWe0eS0T-a^^0Hs4f~S;-~Ljn@Z&%fFdBntxvaIpX4&8 z_16naFzo?e`~1N`y?xCW$Bei|>2kW#Uy%zFlOXCk4WvozzU0PZ^k^<Iyb`}ZYnC&* zt}mxN0h^-3mvdenBVrh8TD|R=nNk{G3JnrlBFm;V`YvCmJuPiiuh~=J`C1wN%&RTb z$yVhN@LQ*+Ji3eIAxP@}BWfgH)5Ejwug88TPci&57=tLOv}#0gz||^JwX(8xA!W{q z^k?U5o3-7b@9W=bAiLY|@dP82yX=Npul(F4PrlSLu@ZZ0)q@VPNi>8QC&gX^)H)3f zBM}ozfwx(ty*i@xVLVag8V-6bA(|hJ(nife%@?rF?MUOn_-VUBOj{F|YD*2<OI=I( z$>|nKPT5}mQWHZPsZzBejY8%g$*Lh=zBxhmHY_-de#u!ArVROpRD9LHZs>kp&1B1C z4SMM$G+;1FC=#C{7F~4l9Y?9FN?%nZ;SR(-iUp|)LavkKFv^@J`(+M^CYB+Sr8xxl zJ5wwbe(aye2dsGfJD^myZIOF1{#HA08DOm`!A$tGm^6#Xt+CPK+tSv3%8BRw1yT_| z{{q{Muo<Y7irskf7CJz55Ku)gFHbIB_D6)8k2)q-@Nb~xQt_NnV`L#}>y2;&%HD7E z6w$dz>qf(FC5FE!wH`YIrx=z1)EedBOG|bJf=i*E<_AMO$g)!U*x`ZtJF_wC=C`Rz z+0!7Fq6v|1UFbi!L<$_OfAAB=;P-xWe1I78zfI2lg=?+&>Zf}8yKLrbeA$`RW_8a> zk7}_yaVuzK9eFF+<KUxSoRhqqzQMkNE5}K*a_4<aE}{-n{@v=2#^ijp5)DE2tVbt} zFGKAN@iV4mhQ`okRPA@5D~4B5udnQK3I2Wln!)reQ&qp=j~jyuMq*<+QNG=Fw2ZK) zBKu}hNQ@TWLRs{Sn{)GzHhLn7ZxQ;fb!8gabO9n?6ska+vc^@f%8l+`EkdA#rqxP! z)|RZpPXy{pb={5bRPITH5?+{vUm2LqTA|v2%6(RBg~Ti8zg?8wAb4U#a8IJ2oUK5e zib{(7=<YA+u=L%FKi*QkZ6j~}(SW6PW{)f&X_7NO0@cv%L(t|#aBSnBn3YDKT)e=t zFUqfN*76yb&UC>V>3s<)Pq);Cy_oNMe6mSy-hdtOiP>o0=<VGm2d1lR(*~76-QDXg zwDZn04G;4h`!{pmc$SfcLq?&)Q|)St=_aQ2hy^!Ey+S=!GyIyPbB57+oZE0#u9-rD zL8urSFk#$RVTigVQaJM@XUWzLtz%7%(?fmQ%!UO_V0kIELVjdw{4Kh@LrLgu>DYB~ z>yLV~Nnu!R0Y0nq(&<AkA^#g#a=xszv?3K{CW!Zjww9T$TCf{WYK4hT+-&sF6eq^8 z_2;JV6M4j%@?p@&g1U*qaaMSoHPZuT=ggg|s2;?LQF-Wl%tMVihT8T@6tm<lXv>Fc z@S?R5lfUu0juzJ<r*XWE7=l=voRj+>zbncuk&zu!YOEV_%|(pRBL(D+a~vV5Wzfjy zS>BFhLfImOl@zzus(vkDSYp<GYgVEPJICSB`c@K)_n_d?d_(iqmpK)ymEvhcolD@V znO-1*__Ip)k)YUY4A^2wP3~{^ObM4x7sq4F5;<`q&|wd?>r*Es*2$-KZ@I$<el6XA zr185rs-JWNLVQ@p?0ifSC0`n^xTzJHh%#0&<(XADkF=swgg-C4<yjN`B@dM;ede~C z{iXU-Dvs!5@W9WVe(Lcb!~c}Mp~oVx+W)^9tq7_i{{L;lJ;fK7n*X}}m+B6g1l;+5 z)3_S;tGDa_=>89d{+M{J3;);LFIS8r===X|_&-JGq8gh<|M@H*q9MWW|6}|=7W;pe x{lE6e|7^JbJbnLj)c(tl{Qq?_kd4Qy9zX;o=+guKDh%M`l9g1Fs1`E`{a@hoON;;j literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality CR-10_cover.png b/resources/profiles/Creality/Creality CR-10_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..dafbcf750a557ff00317e262ea874d9574e9c672 GIT binary patch literal 199893 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ˊ`C+1Jt^S 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 O$3hg;!Ig6FzWhJE6jqV| literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality CR-20 Pro_cover.png b/resources/profiles/Creality/Creality CR-20 Pro_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..7f27867edf5bdaf528dd8e606daea42ddb19074c GIT binary patch literal 247256 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%0DmhO1l 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̔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�JeTt5NZe`3Z?kZ=-1hGrG2cg3*7X9bA-Jb#O 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 U$X@u>@NbrKQp%D=;-CEgA46>5q5uE@ literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality CR-M4 SE_cover.png b/resources/profiles/Creality/Creality CR-M4 SE_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..84495c6074a5780e3d06ba791a44c5a89ede71a1 GIT binary patch literal 133556 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%0D3>G-&Zpz6MC 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Ä~*J`?xC!uipPU$s-~-MVn$ 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality Ender-2 Pro_cover.png b/resources/profiles/Creality/Creality Ender-2 Pro_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..882d4b74758f368c7fc219f9fe94dc6bbb3f6ac8 GIT binary patch literal 178826 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 bAJP}!kv<#cLjU6*@S~$)a1X6+`}+R@A~~M& literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality Ender-3 Max Neo_cover.png b/resources/profiles/Creality/Creality Ender-3 Max Neo_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..ba733c734fb49c8bf2fa2bc09693f58fb8bb6acc GIT binary patch literal 238946 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 Gfd2;!JH<)> literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality Ender-3 Max_cover.png b/resources/profiles/Creality/Creality Ender-3 Max_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..1c43c97125c4963a4334f63e3edfedad23eccd7a GIT binary patch literal 83871 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 TDvq%;;OD-Uu4b9KP3ZptKyW>K literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality Ender-3 Neo_cover.png b/resources/profiles/Creality/Creality Ender-3 Neo_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..ff0967c00304dbfcd7786d3b27dacd048c70ffba GIT binary patch literal 145615 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 f??e^#D>dRgM{}5h% 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 z%0D-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 Geef^L?ElgL literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality Ender-3 S1 Sonic_cover.png b/resources/profiles/Creality/Creality Ender-3 S1 Sonic_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f332c45c2e0861b67c271dbd7debad57374eac GIT binary patch literal 177884 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�R- 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 !PuuolU2b)3f^XaG1yR$Q_ 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≷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 DVcQWO literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality Ender-5 S1 Sonic_cover.png b/resources/profiles/Creality/Creality Ender-5 S1 Sonic_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd3eda57f01ad7d4c297975b39cf8ab125a56f7 GIT binary patch literal 132637 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%0AQj)3ViEBfPd0 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality Sermoon D3 Pro_cover.png b/resources/profiles/Creality/Creality Sermoon D3 Pro_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd3b2f18c753faed2da4be980336aa4bce09857 GIT binary patch literal 308640 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¨X9Tix;0=T3UMc;K75hrPEY*8ZfJP@H9(h+ioes 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�q(3>KJi@9m`4#pr`rvyD|8_3oB0Rq<^k04g2{;a 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 Y=3{}&e$pj5;Qo8_O5<gvlEvr$1)0|T?*IS* literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality Sermoon D3_cover.png b/resources/profiles/Creality/Creality Sermoon D3_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..e8cb509a0ebbf59c107f3bca3d64f1d86ef098ad GIT binary patch literal 170093 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 *WXs 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 IoO$s70nowu3;+NC literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality Sermoon M300_cover.png b/resources/profiles/Creality/Creality Sermoon M300_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..4322bbf6ee89e730a7438a4e5391dff015f83545 GIT binary patch literal 126058 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%0AI8DFNvhF3er3%RfdCwUxA!> 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%0DrfgfmNLe`!L8t{ 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°+8^_*RY|@Okv<e}mo3=eW2yu@2w88QRtW&%e59 zWqRf6ZF`#)*E=ykorR$jif(_M20kg=UQw7unThy~sHs{>jG3+e_Qq>yt=7c$SdSt) z`CuN#-JHfJ%5=^ov!hJYpaN|x$-$+@+QgZGVi*`$Y3IJFob|N>%T{CEW?q;KS_`zX zl8ASqkRv@6YhUpSxvAW-3miCI-{R`rZV)q3V0!uFt|gRO3feAG_$&~0mE$S7Gm{Pe zbs)5-C4>zwEKlGK^IV)D{R?NKR3QT8{U<^3zfIU`v8{D6jK~TN`d?kM7hOXPLmaN@ z?jZu<gXuJH{i}Mi{nby$4vxk(eTGGsCU^tW0Ny~i7-RGInQJ&uNxmanfI{ulT?z2Q zNrXIY%1@Mj-j45L_lE+*ymuuFiI|XU5hl3N*NUtRU8Z;Dp#s<O=J)4SVViupSJb-1 zqy*3h|MLa%YbYP2rKaXg{e*jRM2qb{6|a9!#w9=vsnImGzM9H@e=@|_f$b@Y?YJ6s zZ<)Vc0-laG*U5Cl3&Cn7h>>6UrCcwq^dFhOH^gO2C_uO1@3}EOi5-xQg`5Yqdl<(; z88rC6+cJ7H{1LZPM=EwB<zsHHFK^%FmxRkBbr>I5yPxohLsZ?&X@&+p_sZD1Br5X{ z)imu8hk!SMN;8hDWusIsb;$%OVy2bkkmc|_pynsjL_e&H>5Bv;WBlFB)EYsd!Y#z= zH=79(!h2?|2V(b-7mA`hnaFF9=wbRzB<<}s&mD~RKHwF*Ch^yJH-^WokFZKQRbBNP zte<gJXAcw19BnF=w+OJAd(p`)NCheQ+V-=2vA|N(xgM_R@Kh&@RY{AMiQVyaAVU;7 zWx`Po#xqrmNtYvqytyUtx~DRTjp{UNa)3xi8`4rZr7wHH6J2e{2meCNjpY>z+k-D` zq;;&2oXjm0Wq=f>2*lp46}hd+?b$ED;oXH#-TBpUUE&ur20{JD_)Z5|phOaf%KhTH z&441#*=fRnM@wQ?5rzqi*He^!@MCS`V{b{c_x-Iq7BiAF6)dOQ_&|{KznQxU|6@6P zI~&`9%z#Ck2h|#tEwL;YS9}=6q1R0dVO&{q5iIEXvN94|E`Nc2OL9*_s4weaVx$dA z7f=Uuj(AQ$f}j8gmA^){KRDvy59egw<1`(SUPvLZ{K8}}Dp=2qzx3Ji@Q^K<T6|`T zwTa1cucmawTJeJV?1b{yoVk%Qd(ZDZR(8ys#<WR-U9{&G1C3)_>O=g4T(FT&rCst0 zo1tKq$8c*z%n|8MtM7xl`7|BL*1JjqGXOIcua@Q4u;buPbmz^Ey(ET~d|JtA+I#|u z+r*AFE@cX@cUSK)D0f1l7xx~(mHkk+)X5dPv~8c2q$H-~6MM;<6{12>R9ioCU@L3% z_k;ugujSj#EH^LWJc^vKr9dvG3xS_t);7ss9ko(BZ)^7ENq&CCGq1ww|5w=tyH1U) zPUI*lBD~$s#+Wo2BAr6fU(A_`sc)HM7HUW8%$wR?yh<^vQe;25j_AJh@@e~!s8h`; z=_r^$p8Vo`Mc2$Z+_#-<J~@a<<yqE`!GxWNlngKXwT9VtBg~;0ztC2B#ejT)G6zYj z8%g0iIuV$A?(D=-B^~f2`0dKwd5alO<Tjf08`FYo^Ib#3F9h+vciX<b#)ZK0=1)!z zzf-Git)=sIfl*IlIqZ}ZD{(cbad(<<^X>lP-mJ#mQLg%Iumw%=&*_^-<coN)fJs@C z;uu%s;>mfPJ<EMQ_1IEvAHILIw?KVn``OKv<Cd-dqYSgUtcD23l)1*RWeN1se@UQu zRoj}0xFEd`YBFu9(=(O4=lJ#*&We|bI`d2#{Abw)J50ZKc{%ISnZU($G<LcMU)lc6 zs#UFAy<o1-mqgvz*|%qZC#Okzn*svJwzeIau_!QvOOu!Q&<@AeqO%y?P%K&XyphjN zciZgwc8d!i4bua!%zlgTe%fK;`Aq-Jri4Or@R>&{1N9SjeUq%CU9dudM#w7Z{YlmR zwdC!L?wsjoFyVi1f)-wt0PwMBz|lYbgtoJj<5&uw4mn>0xk!~>vO}xO2W2ze4@p#N zaF1CuzgT(1r}$#slt2tuW7A(L_|qhmV4afkPe3ZmBG;<jVC6-ICiI%vz4Oe>0Nz!V zSAdp=Z3fMk#smIP(+EBGz7F<Ztu^u$qz;4}m~9U66&F#31_dsv9YLU(qYVWPy?<_v z(ek<zyFIhH3Lh56W6I%1SkH=tM)V?v<MgsjBXl?HKDP5R_FhH$?Z5c{NfhO;7>*%X zXWxh<gm0nL?sxkm`y=iNgmEnnt!@hqMjTXc-gr%9c6D8C&tnlnEqi04*#T+&NGdUv z^`ubwuc5FU@eH}Y^im|_!1He)?ayY>O=2A1%q6%<ZyX<+eTp>c**p}_B50e{gi2DE zyQkonRA{6Xf@IA~EZRx`m{bm!vbvne3+oL#$qVSIG?sI&j6i2&&Z9a;J&-0G71k(P zhO{X5e2DCIU*96i7jL$Hu^feuz7Nl$3wq30a2+m!(;?i5$?i0dxK&MxYEJU=m8`${ zd^0#9?Hs=pwwYmX1C9&Zv<F@nhG9#vFDRq^M$yy9#%XfQ+4qkv`2M?3)#g6Fc>X*D zYE%ZSN4lZ(x+g9#(@D1~_26=~pJol1X8+6G%VLP$cr+|ln*7eHU?y(?GEfnYUJv>Q z=FGSa=Ew>D1nsm=ZCqZE`>F%zwU$m=-sXPIgdvlTt}D+hlf^1of;tyae$!eSV42Iy zyIHqA{9(lRyLGd<k!oOuY^U`rNWVmy?~oVBU9SXDb-ZLPTI<>|LOj!ecLV~Qi-Ybr ztm+tbvmEs6k!UZD3HV*;>bjEs@iS4sl|{Tmz$r_xawXr4mVXg>mf9@cxZ+Afb@@i@ zwy?hyA38@U8gWuQxK@=Ht-r||pTu%XWwU%SW2|1dpW@))Fiy@iKCoAHGZcnyZ)`s( zzCVsNzv*TWtj!D&P+eMn!$AH3`JY9|?DCFKGVF32>Wa8KTQ5uQERy%IvEk3m&h{py zV>9C87u%O$skys$t`Z>*JG$P>ZZv%)N#<o}O)BgA^D?FJ?x=zMQRzpAa9-3#MERS( zG9vK=U|%uM``hvlK%1o{l>*~->a+Jjo1KRmy;GGz13}@zX8m+~`vKVrVp25fuh&t* zlK9E<y`oFNP5dNavSN?#mhW@#gnnC+-aB9OpOF*Zl(T<~kz5NcTI0M80Mv{~-9dJC zc0AO5`OwS#L>5ZDp@YkteKu(J>{M$XhQClheeg$Dj2WmP+y?BqKE89GzHb~4?a$>L zqS!#%Ra{6GVwxV&P<hhOE_WQQ5QSapbYfaNPhr3n3Lu-kB8SP?-*(W0>nAIOSs-ky z(vG=?hQ@u+BB-C48LCiMmnq`Q?bNWVRk;vFZ{F5<*P<e=`y?Y2gKm{)1_%8c)tlqe zI`g_ziVbf@fZR}(1)dk*-Cle8sTC~kO+jk93z8T#RiwOJ-hwMvkSb)a47Fm$a+kXd z4)CN|r)7qvo0i&$NokEcPd6``JJVX9UK@c=!e^5q_U5II%X&JI5;v~rVuaMaQ`zX& z_Y-f&^w=5Slaot?Uf0L|s1k0>k*mrb^O=ZRNMU}1B@8S3@-&>Z-d%9P*t15|EHN|l zj)X&^7g}H~^cglo%AUIe$L0cvkO6D)_a_6146s{laQ4}ge#Q`2YZHYBdk?W^f#3zH z<oUWzRp;7_f5^!oOU_NBvhqpcp<Y*4Z!0Hn?cf{nAbvpL?x%Wp)RIGhO)pcek(GlM zIb~Q=P@y&4x^_z{CBu#Q%xw7Fp0gfRW#HCTW8~c1&MKW<DVa@P=g=vg&qlXGn@jJk z_BJ(gT%~C*Nb9P#EflH+BG+j!XX<jIcNV{3kzCyaJSb}~%&L;~7jYca;DXtSa8s2T z9UM0&b?V<YTF{V#-|0+W>6sqe=Z4N8BR?$&mN6aP3i=W$%Rz2iDVz^RHbSd%2@LK! z%Ia;G&^=LY9<xCg)Z9xv%SO|&#_sLs32s<<7T2w5B?5JKhq}M}Z8jAuIX@G>fx&Ik z{%=(9#+Eresd6Z7AZg!2Hr@_C<7qpJ)oMP&dZ%bnDf6n?g1Un;o9>@_!)oK}LWI|G z?1QC=KZ&%%sN8&~A`;@76!eMd(~XRYH>#yxltd8~M&<i5arVy<<v;1W2ePKBYTC}c z=6PgSM5k6iUn`AJWM${d7;%x2$bS#r2*+&FHhLf>Eb9f&eqv^dG)p6;0jOV>T2d^p zb$GSOm}Wd15-ELeuE}Krwe%6(LJMp70ir@30h53#*}j*J+;Adug)!-wvhvxwj6m1m zN-t&e0Q_Iz^C2|J?rqEhIkfz!W%Mevl~R3*Fz*qLn^nFZ$KH)|Mr~Y^x>e=oE>sfB zl^KJu80SI?Tf7WIo@HfI!<NnJB_V4+Kt8{6GriE@agI(a$|t8E$u_sw4d4~8T4}zy zWly>^Gx<uhLjpdNC>mEroE9T|n{HY;?7I<_btyN9A?cw`2<9Ss7Nii2rj7b92pERm zz{bFS0963EVK@D`ey;}gIGXi!3w)?2ulWA{?HCU<`{t^!+w)&=CF^N4R|CiCv(t(E zE#P>|8b}nlmLEwA^mA}1?XZU({)f4Cvnrzhv^JX(=F(t-qZ&pPB+#|T{&CtV`j1i{ z^wfGNEh8qr`i%{1kXmVEZli;{5Lf})@#a~AfR7;#02S(f_Ks&2LW^;t?`YtbX4lxq z(8POeF9K+o54(S_9R&*4za=OWTS<w>S(kg&j>06Oq<Jb?@>=Dj5TWWG$-cW}=NI2K z)p08jz*h&eP6lA}MRrD!$pha);!3?qOG7y&9fWyU#~0xDV6zg>2K)geAS`g0aCRk0 zseL&=)Z9ut`*r*-P0*o;{glo$QV#B$tEAxWB6_eusBlM+V0=v(?bw=ouA*SkWu_up zBG<nR<dM4sp10YiKk)B|R3t|Cu5s6NRKKTfurihpEJuPG5u6PzLOfhdOhGA80I?P( zDjFJ*AZ(EHiYVkC%P^7nS)~C=EzaGWqg|K}u>^Hh*_k{m8s(KGs3yef4~`zh!@|UY z4MAK^f|-(lfTPO$-R3RATlZFflwZSw%EYHxTZgAIa(y?^sj35_sG4x8-EU~uC(K`E zz)}t=1E=Z6zagwi6u>b%GoPwp(zJDgD{d6VkF@j43)0^1f!5IF#)skY{$`Oy;0LuE za3`9?X3gsB%YJdv3Auirl0uTCl)1e^rvypu75A+mmuGi)(p7{LMt$e-?qzjqTUIJp zgJG}M_FR0;s+j0tSSvJmVy}YScO=*_o=kY$|84L-F9mtp=f;UtFZKnbUl25_V4_@1 zbsc=#_+GM;edUmJVWfNQ(A``pq${U=Gsl>u{svRi+9{aH-VcsZaTNjp_{DAtwad=d zZx(MFc}7hxhp^ID7@x4P*GJTja7z%{6LA~t;)2M}7WKdD+=6NFwB21t5B>S`v0_7| z+Ic?g2sg~&PBLsO_hNg)$}>{vDRrywXCd)&m^0(o07DNj?=LY)U2)IVb$f2Jwo9V3 zy9~aqf}PW?LKQwf?uDXq!WdOHK%pXts$HzAD)4j9E@R;R;p>h=oq!951-%f-IV{*V zu$vxH;--^_PMn^HVe&r<(gsXKed&Covi(dFW&AY6k{0B#KL2CUt7ql<>n)V{<vk|< zzRkGgZ^^QE#_Ys#Rdh80sKyL2l5+9c984&mGj0+eCRv|yRy%aIw>*2hsUUfik9eg< zQWBhyT0{sAFRl1slv;3NH~Y++HJtf-a-V!x)b}$DG!NJ8kW~5C84!(V(g92ffZhr` zQecRAM06omWlaMt78*Pj_ul-(FU<cs9z^H}i6>1_KEPnmsIYf#4LKp_aQ!f05fK3f zaO{K&Gg?q?9=R=7d1$AmTW|J|0s*8E5|_9c7h3$wZ{(_*<w!*IyqMZiFQeux@I;f4 z`$ffvYD&6Q!vE9Wb-%OK{(sM>d!R<!rz+LjTNg^G4x=a@D@bi>i=EVN(JG3zimFw+ zLhKPDNyP}YYD7wGVl?(>BqYA)`4_%FKkuK<b<TBO=f2K$zu)(3WWIU6Wts%_>xn~^ z<S-3)Y&JrcbO6N<qJLl@a{2qKaAOn%t_&lc9>u%5Dqe((L9JymCkM5ntxc>2>!G^Q z8Cu2IJx0zJ*IC}dN10D5<8S@RCTaRw$h23OZO@-A(~}l_#HfM}_<wjQ&CBUI#=fX@ z+Gm8Incx$*4d(w7e58H^c38S0i_ZwAm{wn^7?|#?ig9fW-_)_+Uggvx#T`=L2rF%b z^dID?({)PPJz@gM)Ds|*TBd#(x2KNfwGq(eo}gvF?AKAF)5>Rh&kYX`>MLLu)W+6# zsQ!Rm9r;$xl7bAz)_)4|>h;}0tGUTDe*zuvVM_vRbW=7-#y5?^ZKobIWVfo;Xs(&f zz+urFuk0A??+?^>b|{SZ=$wp<zD43snutgnO6Z_kC^QhzdKj%vC~mEJQyN%(7Pv#w zIcfg)$Mqb??6SOz%?$kmk)-F9__QLy!i9<Y3Dp{whoTLEHnQ8{<+`ISRO7>M9ra?$ z;ZBrqtU;_MCNHLvC=?mCMT|Ve;`hfrE5l)M_+rW3TPYv&`*U;S<*k=n+NtUm1(JUW z5mzqMFJZYlQUu=nHuMXJSSd2|V}IIJ_XnNbQ9MWg8a>!UvC*ttXm9EAXxyMjE9_4! zD2=XkWhg2uWT4&dUOzB=NV;M-0ylH&t`-Zd<)xlsS4Hz^>#?#pf$ty;w<U@k;(S=Q z2_JYP+r`wh9pr+K!uiOv5wVck_brF<FylWkV&gp6roV`{SP_Z%z0kc3h_Vgc^xdS9 z71kN~RJg3p!PQ@D&XXyU5a&sDpbZojBZe6F8fZ}0${*Ii!4K1poyDT8{^Wp^l|#n7 z(1RS_v0<yt+#A4{#JwkN(23G$q!!X6*BBP$;<6YDsQEUkemLOvhh_uaWx(d!*h=bs z&5KuF)B^Y^9|y=)n?<1;Sb93pr5(J^$QYw1zdMha9n~w^;k78#=DEhV=_g}wSN}w` zk=yg-*8=urv`xoK7x}86-A>4{*#^jLMVxDMc!XBnZT>=<8lYvk2?2s*<&4=iVF~6R zNTunqQ`1P_CN{I2@1twncB9A!D_@Xv_E|=G+s{g0?qt&(P@6C{0;cWY50{3v8K1$5 zw@&EGE_wS*Z4K1+ch}^9e9ODaTXyHpm&cA%BsYs3gL~Z{BV}3P^;zd7x}y8@#cqOM zWu;AdDQAvJCML`ws@H$r@}o@7hm~vJq}&eTHousj*ZR=Ps()<?OQQiolmXy^t;EP3 zog-!(cmsz~R|%F+EX)*>P~j>o-Q(t906Q~NkyjN0>mK}EASRnZ@j0SsAQrklC>R(G zv_v{O3THl|{NrSTQnGG;as*SF|0XC}ARtb_D8lk?!V@XxyR1JRFG7QaM^}UUucX-x zJ4PV|u}KqWZ{UCM#QUmDw%`mksr&umvJZ!n&trHaAzJO3O$`OVjfBWge(^}|+8yvv z?zXDFdm7u_4`V!JYoQNG3(kR>E!ZCq%YN^lR1sx2ygm?w3o_U286p?iv{|~r18|;z zXeouc2MXdZ=S|gW-${yWu$JqQVSSr<xR0ytDkMzGDby343obXMToDWG8Mf^9R}aTW ze^4{}p~57Jt817RnXGiQwzm2tC3+u><H8T@)WY_4D!WJhcij}5X*r=2aEa`19%i~I zg~U!rxa?o{;ntbG!Y_N;bB`Fg2sMTDvcaS{PyrCHb|^7`-#patC{6*=aQm9CoL^d6 zEGX(Usk@24peQ=^O!pXe#4YeGLXi*;XY7y0QJ-WVv45!kkU5d3IPQLI6dJzJQ$i|u z`e=h%fx3~pWM(#$w}H0*)odYppX*J(#nmmP<aMaa7f$kg<ue{FdWgz}z%44M)v}RP zN?eg)MhrgbL`u-lBt_zBcI*fA(_Rj-D`zDp1%jh+xdX33iO4fy=8%shv2be#gf4ci zW;?@f;xZk#Cs}$k<(-*ZpdVEUCD>%SbpV8RAFzJk?gD1%X;u+jTE@G+rDjYRW|FPV zuccGJ_WQFsb9w%R4%aI#-=gbtTt0t$?H>aErFT&1J^ZyWT5GIfmf99k!YC^&A#8&} zY}C24cjYpViEv6-VM1bBsI3)LPdH{}6U~?j-&U{NLdIb5<%!oPC~Is_A4CLzbUoQM z)xDm46}&8eff?sjsfPEfxZwXuIgL~bLQLaHwieP>Xw^}0ey!5%RF7j2YPkU<pPO&y zPX}pm%$!4<`x_lIQ1fvU>}nbmR|<icjHc+B2u)sI94+mqRKO{;<Db%9?;3Q*@#+J7 z`rsl+8LP@#KC+19p+4@VWcM!LO}tl&<E7^@0%+={D3$P0(iml(0PP#Ki<ptn@Fhk^ zGG_2!?rX5<nJCfVUI7BM{u1f8-^ky8cYXZcD=>Io{D;(bOIaRGd^Lghn^KamT_#Di z_VX_9y1MWPDu|28cqDqnG9R@{4q{j2a5uVgJ*eCv&u`lJJ)}6Xwl2n_>EJCANffa- z6s2~0((2J{h12uaV<P333U7bJ8FaPGvqKEt(FrG{=I$XO$i&$XvpyuxJ>ookr&POO zYfro2Rsp@)0C${&d@=^y;_!2`_F~{CE$v6F9lQO*438q_hw80rjkx^f#yLn>01A4w z@{<f-%@4CoKeOT8vHCB3n~R=(eCxrfGO~_xp0AH=ZFkk58A`j@v}HqY#moKGLoj`Q zvyEJP<pOpilL+AqyXSGC27+~>)i!tGEG90C`l(Fz|L>OZE!xj7CCCkSgso;HW%)tr z$cpQRvLhZc>qaI((<w5!b3e|FUz^&_vCT>JPVE-iVER_-E?jy`U&XzT_rL7Ny$wD@ zn&sJZFM%v=5nEd%pJ^mz-wc`R0<1=3l<Ma01MitumjXsFkjY{!Hs0yC4bo`FeKD5d zKyP24nB|OCbk-fI%N{)r*$vapn~bFnx6t}SPfq`7Xj}_su9QUnPOxLnl_*#@FKafE zPXF;<gQyz)S`hLWsS)Uc6_vg;h|Lb?#;|SVQibB@_Z51m+wFkq%uf?1UGv4gyk?ga zk955~IL1aQRZqIN{I$D;Sqs`mIu)5}QiQ9k8>t}E)`R#sQcY?&ai)ZPr}$5)dPOR7 z2z&b(Y%oz;P*tH$bob|Dhk^=|?Dbz3$T2)v|1bEcsL!93D|9|dR+6d8X%)ceR%?Eq zVzbAcSn=eY+hPY0)rsD)L@lKfq*d%Hn)Q-M*L^~nJX0)r*R>7$g>{QxLsixf!^OI* zOLu?8Dng$Vb{acbs|ZK2XR(o>=Cw_}=pdWooFLlnL6Ne}o-`lRPtZJS`VGFfYADGL zIXuudxYj8f6(RBH;rTOkkEYd@?PJG|Nf3dyk%!nv1jN`m02sQH5{pZ&*<@S#E2she zQ#{|sdgBb20k}zu8iydS5N;pyt^bz<{U+&&<$E(XwXFrdbN@Oi$k18);nB5sY6lk< zKJig`L*izhN^3e74GfJ>N$(U(9>!le8@-@*8Ra963pTG9Q>mVxnNkludOdn$@NbyK z(kCOCvHDO8DsX@R6JoOShI)&x&_nk`9Dd*2kMk8ND1gnSQ+)8)EtF4q*}vzJh+_QC zpk(|To7mQsoQ7+sC~KqdnIdb>Z@*^21y=n^CzAMUWQrn9MEscK?FKQ!^sPL|gh28$ zzj|w_^dD>f<{;jn2SbxrM#@Z1`GH40ss0o!dA&f@pkNYK*4vq8C}RR;-&8;O`0?ZQ z=`Tt)y4_!_OqLvb(&W}B?%gnxLc9z4<s>{l@8;leU*MWyF%mIaDo8VxoFEHqVIke6 z=?Ulr^KOlXj`Bh208X`aEOOPX<+!Q7YQ5;t#TR^VRG3Vpi2~*1<Bb)jMX>f{Kp+Y_ zMBCi_Ii^>1I9CAz<5g~}ZCmW@?8F*n-w$dwv9kK`Ex=5^n#ez?0aoT8<nomRhLxFT z`$p->N6C@aOzudw5PJ;JALqMZR({_u<C(yP6T&-_txKH?H4*j5I30n(xqN{qM&-x7 z_q$U{YL4Gh2VzjRP$F$2_{d=cW!4lRRy8skUcsiLM6wCPI@20K+nSysAwRVG#$W0A z)1(;xlS%?q)hZvD7Lj}AVwUpOE%#X25t`->&b1cXuCBy+L?dhx3ZmSCsE7X!4E72u zS5gKqsh(uI$-olt&bv$`QAltMiY$%l3c5ZN@%R?i|9Q2w{D6ftHJa+bm*d}5PUR}< z@ykxUmvm|lttdcTd*SR{*NjGg+YGTrL3;cq1m2@pw981cse07T25+Zfz&HibK-s!4 z#@0PA=cD7#-i|p+<yoicvqwaoCatEoG1O!GWGYlj4`*|!sw1r~#+GN#ma>>Sa9;1x zqJwcz;%Q6lp>Ub*P@HuHOyoZ9vyt}p#JCMF^1gf?4vqdaqN|WP(KQ4-E95W&YkTB@ z0Y&;8v02m1end{hUOP=93uQ>ZioY|6%ID?q^14~sdKD??+%?;#<Ye~<dw;q3%+Xjb zYb-Zn^VKO0#&V;O_b9C%(2a`IhKHBRM*mSTQsQ;xkt<`_Iu}(fXpgz`Gt6Vc$?Zu# zUb(;6-`*4hy_f=W{-*-03j=g%)kD5F*h8|avU%=D^2pg16Ex9tTQa@YJ|wCE0fWn% zTog*3*)6$Y_h(yPM^3H@j+&F_7gV(yw*y!n8yT*8i0M$DgE*p)0?SqC@ayW6F+bU5 z^rv;q25z*CJ5mO>-rQ)5udAyo8+3bD2s(DP^q<&=f5fp6T^)Jk${+5E?HnXe3|+^# z4$PVV%Pm$_DWtsJ50eHrTz#OAS!q&2%Yn_9Aa$Q&8iFa$cwtq^c`03SHS5r|se(T4 z&lLu75|Qo)FWaVee{A#4WLYOHB>IzU(nllz&@KKqraHx@AC!9f5T<hZ@}Hn3E`9#$ z<*ZnJX)It8ad=io;Krwa0P-nGeX*;ntE!zzK6UaWyBJa?1P)w&U&hW4O}k&xHtgZS zTT=M=>*;XBha9_;^=?Af!V7`zEr+$#h4sxv7cBmzIpq2okzWp=9rI9aGKN)ZaX)li z{ukHIb_vhVcE*>+daTkno$Y0h*y&2g6Q5;T2g3H-*rrw)fR_aAH^15V+KaEGc#_Ju z5@N|mxL}rV@;L0Y{ntsD@=(%C!v`oc=_Z0$s-9Kl2Cz^g!S(u_g~>^93|5P9f9<;2 zxUuI~GwF^s__JiVpJi;J%>^FvQE`D}vs8Tk)n@I0;T=!Xn~+P{E5^#|PvaZ<ql8Jq zVYa*BM*-p!&#U!T&3mYq+GvVTWfkv6r7Q0s4MGa{+#s$A6|OzT*<xcBCZ4uK-HA4* z(6*HWQbw+BZu@ztXN_v=z-*?=^=Nl`Ku%$Nba?G6uhpqvtM;jXaiF!2f9P!z9&A3` z`2J<M137>2S-)tT9Lm^zEiQf)1d98YYm*wWk{;1i{zKpWI6gh~xfDp{m&`d+L1J{D zOF#?B!+Z{H?p^N~^ml{w4N5(j`b6aNG2_*c7(WcilmB6^uBxamWkG{{kj7aWq;l14 z{Naa=Qc+LKdZ_wO81dBA#9~$D$EkYmg<0R=iH?#@6fdYdC0+1bFrKxr07c=dfS<mI z-vqADBTZs(H#Kf(EObg`bIqKfMpH`prXf&Fm3bsDZ=2Qca#=3D2jzicu73aiovy8; zgS&kXAdxo(q*T(fo*EfpVmvus?7Z?lWy$Rj^Mb@P<C#5kk^c7Osi>PW6A>8@{M7Nr zAfY3Jq_s%N39<2P-vNzlm$D%-$~=WGig6-+fk%8ATev?oiKNC)3e{ei?znr1aR);k zW5({b>X5W-^->v^++|3^x6RvKLakO6=CDz&v2lU*N^2>dW6{#%W&-ig2HgZ3CnU86 zCDKaF(8+a_>auCcTe<K2>!kfKHr`4Ck5Oobe-SUsrO6s2_pVSP6D#OGkW`{DG2ET< z^e4?!_jyKf=0x9OqFa61r}G*rzzZhdjTa70Xb(q066YadlCZ{Hzoy%FE>GA=A)D1e zS_>(A9ohIkWy&7+rZ_Mj=GYW((<>Hly3q5StE@i0hufF*RQjTYx$dKTBAZ!=9fE6i zbdsUgh0=c6J6e3H7p*Gi`gPnl`Mr0<!~z;AJ0v~tDIwDP89JE%_rCKSG(fq%y2m&J zn0?<5SnO3$=v4?Z6Om5$v|@Bb2(MpqSN6f`4a>{PYX=1E7^2Gr=aWEu!x;K1!!!;q zv6`OWTPzZZkyRvl$l2&fm3<l6(A4MH>;z~dz9&{lbrr+25gk&<c^FhOOvARG2&y>Y zpS*BU=fgeosLI6$%jGb~loNZBuD>M$I^`k_^P}Ek!e0al-{nV*X}ZWa+a>+pbH+gX z?$N<<1J>sD<t9(Jm&N5}(hCAomZpSnpbXz3^*Fh?wGy?#;|<=|OV>?GMFUg|;|lbk z7FJqfRR_eL(V~H-H9c492GNz)yoY196`^~nPSk^`gQ<I^X<r~&#<$(ee;D`N`8@9A zSQ1BO9gHv2g*Yq$(-MvugLu9c!@ClI-$ca1C}>(VhV&0V%2t;*2$2i$8<~}JxZM8f zo9f^@J4J9X&fURb7Q*OORQSHSnx)TAvXhfrYqs{&qdM9YPM<*}q<Pvv5`XCRj;nDG z%|_B63o$3sg<e!)M=aw{o>X;JT`S9J_Pyvk8ra2Qp8~9N4vwm~;YIvw6#P+Oy$Op! zfrVPEMFZvz_+SP#T?g3tr2*BM+1I&GAP{^D2EPHPd)y7sEw|dSzde+miDf!iiCm7a zB72au>!HuSk!cAekLNHqw`Ic5pPRdY23`I<CujCJK61meaoX?T=uS903<E7|veLJ} z559%JR0h~G92_r(od&(r_pcBKdkIf>3Fiisldh>V2N?`TFJ*n{<dZC!k2$^8NRy<v zjwb~5EN()jXu+64N(fEAVzt0aC9y~>-I+%53W;(%^<ua>n5g*|2S<f8&ERy078eIC zx-O6dsFwyD0N_B`^S%7{&Ht<a5cm&){}A~9An=wsdvvNlF~O4ZNM`!q8|Z2oYF0e5 GkNQ89ErlEa literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/Creality Sermoon V1 Pro_cover.png b/resources/profiles/Creality/Creality Sermoon V1 Pro_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe6eaed51218287c32a437324ba0ece608abdf7 GIT binary patch literal 240411 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З#WDDJ>2UMQ6_MGicx6Kakg_`v<hOy-iO( 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%0DfWt_g^0bhb(t<|3py%C>se&i< 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 HoxA!UovKvu literal 0 HcmV?d00001 diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-2 Pro-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-2 Pro-all.json new file mode 100644 index 0000000000..fd6827f08e --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-2 Pro-all.json @@ -0,0 +1,155 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-2 Pro-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "xXPIfJOKtSIkbgSZ", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "20" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "20" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "80", + "customized_plate_temp_initial_layer": "80", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-2 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Plus-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Plus-all.json new file mode 100644 index 0000000000..183d18044a --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Plus-all.json @@ -0,0 +1,126 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-3 S1 Plus-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "41fKjFexWC3Zh7XZ", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "35" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "5" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Pro-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Pro-all.json new file mode 100644 index 0000000000..034b774116 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Pro-all.json @@ -0,0 +1,126 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-3 S1 Pro-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "SDigCIbuTDRn8b96", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "35" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "5" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Sonic-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Sonic-all.json new file mode 100644 index 0000000000..54b78801bb --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1 Sonic-all.json @@ -0,0 +1,126 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-3 S1 Sonic-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "jYdpNiDMaOz2Ay6R", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "35" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "5" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Sonic 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1-all.json new file mode 100644 index 0000000000..554ee258d7 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-3 S1-all.json @@ -0,0 +1,126 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-3 S1-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "5kp6VbwvXPo7Lvzg", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "35" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "5" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..9e20a85dda --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-3 V3 KE-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-3 V3 KE-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "XUzmyFDwpqu4Kfjh", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_min_speed": [ + "70" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.08" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..af35c821b2 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-3 V3 Plus-all.json @@ -0,0 +1,146 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "2bvhLTGnyzWCVkPy", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_min_speed": [ + "70" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.08" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-3 V3-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-3 V3-all.json new file mode 100644 index 0000000000..b642c061d7 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-3 V3-all.json @@ -0,0 +1,172 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-3 V3-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "MQURrCD6wSxqa1jP", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.08" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "100", + "epoxy_resin_plate_temp_initial_layer": "100", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,230],[10.0,240],[20.0,250]]", + "pressure_advance": "0.046", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-3-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-3-all.json new file mode 100644 index 0000000000..2629589532 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-3-all.json @@ -0,0 +1,138 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-3-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "H4UaUhKIsHDvC918", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "35" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "6" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "5" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-5 S1 Sonic-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-5 S1 Sonic-all.json new file mode 100644 index 0000000000..a916898419 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-5 S1 Sonic-all.json @@ -0,0 +1,135 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-5 S1 Sonic-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "p6IjY3IqwpTbVeUP", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "35" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "1" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 S1 Sonic 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Ender-5 S1-all.json b/resources/profiles/Creality/filament/CR-ABS @Ender-5 S1-all.json new file mode 100644 index 0000000000..cffd00e58e --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Ender-5 S1-all.json @@ -0,0 +1,135 @@ +{ + "type": "filament", + "name": "CR-ABS @Ender-5 S1-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "JJLc8iPdvZucHYiJ", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "fan_cooling_layer_time": [ + "35" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "1" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 S1 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Sermoon D3 Pro-all.json b/resources/profiles/Creality/filament/CR-ABS @Sermoon D3 Pro-all.json new file mode 100644 index 0000000000..c6384af3b1 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Sermoon D3 Pro-all.json @@ -0,0 +1,166 @@ +{ + "type": "filament", + "name": "CR-ABS @Sermoon D3 Pro-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "iYMDiv64la5GboAA", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "50" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.08" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "overhang_fan_speed": [ + "50" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + "; filament start gcode" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "1", + "chamber_temperature": "60", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "80", + "customized_plate_temp_initial_layer": "80", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon D3 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-ABS @Sermoon M300-all.json b/resources/profiles/Creality/filament/CR-ABS @Sermoon M300-all.json new file mode 100644 index 0000000000..9c96ec28ad --- /dev/null +++ b/resources/profiles/Creality/filament/CR-ABS @Sermoon M300-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "CR-ABS @Sermoon M300-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "afINvBBB1U1PjGVB", + "filament_id": "OFGwZmgS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "60" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.08" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle", + "Creality Sermoon M300 0.6 nozzle", + "Creality Sermoon M300 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-Nylon @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/CR-Nylon @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..1b84fb8c47 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-Nylon @Ender-3 V3 Plus-all.json @@ -0,0 +1,188 @@ +{ + "type": "filament", + "name": "CR-Nylon @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pa", + "from": "system", + "setting_id": "JOqqaEHv9emSaO58", + "filament_id": "OFvLppPU", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "52" + ], + "filament_density": [ + "1.12" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature": [ + "260" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "60" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @CR-10 SE-all.json b/resources/profiles/Creality/filament/CR-PETG @CR-10 SE-all.json new file mode 100644 index 0000000000..11c256bb6a --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @CR-10 SE-all.json @@ -0,0 +1,167 @@ +{ + "type": "filament", + "name": "CR-PETG @CR-10 SE-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "ca0t7XsRrFpxcL7a", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "80" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @CR-10 Smart Pro-all.json b/resources/profiles/Creality/filament/CR-PETG @CR-10 Smart Pro-all.json new file mode 100644 index 0000000000..5efe6f65e4 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @CR-10 Smart Pro-all.json @@ -0,0 +1,133 @@ +{ + "type": "filament", + "name": "CR-PETG @CR-10 Smart Pro-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "iB29j2vvnyfpO4tk", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 Smart Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @CR-10-all.json b/resources/profiles/Creality/filament/CR-PETG @CR-10-all.json new file mode 100644 index 0000000000..1756d8ab78 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @CR-10-all.json @@ -0,0 +1,133 @@ +{ + "type": "filament", + "name": "CR-PETG @CR-10-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "LHxnOzAAJr1mk5GK", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @CR-M4 SE-all.json b/resources/profiles/Creality/filament/CR-PETG @CR-M4 SE-all.json new file mode 100644 index 0000000000..f21befa548 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @CR-M4 SE-all.json @@ -0,0 +1,170 @@ +{ + "type": "filament", + "name": "CR-PETG @CR-M4 SE-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "N9vgkspyIr8EV1T8", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_min_speed": [ + "50" + ], + "filament_cost": [ + "22" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "50" + ], + "filament_flow_ratio": [ + "0.9" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "0.05" + ], + "filament_retraction_speed": [ + "50" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + "\" \"" + ], + "filament_end_gcode": [ + "\" \"" + ], + "activate_chamber_temp_control": "1", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "70", + "epoxy_resin_plate_temp_initial_layer": "70", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,230],[5.0,240],[8.0,250]]", + "pressure_advance": "0.08", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-M4 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-2 Pro-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-2 Pro-all.json new file mode 100644 index 0000000000..d9332855b5 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-2 Pro-all.json @@ -0,0 +1,135 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-2 Pro-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "F7h6B3GqsyWLIXWk", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-2 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Plus-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Plus-all.json new file mode 100644 index 0000000000..9bc34c6d76 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Plus-all.json @@ -0,0 +1,144 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-3 S1 Plus-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "ukQaApwo1Kafy1of", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Plus 0.4 nozzle" + ], + "filament_vendor": [ + "Creality" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Pro-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Pro-all.json new file mode 100644 index 0000000000..dba7e80eda --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Pro-all.json @@ -0,0 +1,144 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-3 S1 Pro-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "YzCFzg5CFVXkP5mI", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Pro 0.4 nozzle" + ], + "filament_vendor": [ + "Creality" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Sonic-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Sonic-all.json new file mode 100644 index 0000000000..37b8d888cd --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1 Sonic-all.json @@ -0,0 +1,147 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-3 S1 Sonic-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "nhmw2HhDlNRvvccd", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Sonic 0.4 nozzle" + ], + "filament_vendor": [ + "Creality" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1-all.json new file mode 100644 index 0000000000..ac69ab27a2 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-3 S1-all.json @@ -0,0 +1,144 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-3 S1-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "HOXafIaVQNYa5uzz", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 0.4 nozzle" + ], + "filament_vendor": [ + "Creality" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-3 V2-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-3 V2-all.json new file mode 100644 index 0000000000..6a07468aa6 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-3 V2-all.json @@ -0,0 +1,131 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-3 V2-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "KOU7rizOewXtUGdS", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.24" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.4", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V2 0.4 nozzle" + ], + "filament_vendor": [ + "Creality" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..1cb042c148 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-3 V3 KE-all.json @@ -0,0 +1,142 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-3 V3 KE-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "RtNydGhtx6FMjQDr", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "70", + "epoxy_resin_plate_temp_initial_layer": "70", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.08", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..949c078c53 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-3 V3 Plus-all.json @@ -0,0 +1,169 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "Z3uXiHTYNnlPwfXX", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "80" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.23" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "70", + "epoxy_resin_plate_temp_initial_layer": "70", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-3 V3-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-3 V3-all.json new file mode 100644 index 0000000000..d8f76c70a8 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-3 V3-all.json @@ -0,0 +1,156 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-3 V3-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "jLTxg3JhZaoBjPDd", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "80" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.23" + ], + "filament_deretraction_speed": [ + "25" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "235" + ], + "nozzle_temperature_initial_layer": [ + "235" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-3-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-3-all.json new file mode 100644 index 0000000000..4b4843889c --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-3-all.json @@ -0,0 +1,138 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-3-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "XtRCnvDgIt3woTfm", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retraction_length": [ + "8" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-5 S1 Sonic-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-5 S1 Sonic-all.json new file mode 100644 index 0000000000..35ab6be5f0 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-5 S1 Sonic-all.json @@ -0,0 +1,165 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-5 S1 Sonic-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "kEN1rd7J0bDhpXLB", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_deretraction_speed": [ + "30" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_when_changing_layer": [ + "1" + ], + "filament_retraction_length": [ + "1.5" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 S1 Sonic 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Ender-5 S1-all.json b/resources/profiles/Creality/filament/CR-PETG @Ender-5 S1-all.json new file mode 100644 index 0000000000..941d436657 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Ender-5 S1-all.json @@ -0,0 +1,162 @@ +{ + "type": "filament", + "name": "CR-PETG @Ender-5 S1-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "SXeN7LY4p9TpzIfK", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_deretraction_speed": [ + "30" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_when_changing_layer": [ + "1" + ], + "filament_retraction_length": [ + "1.5" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 S1 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Sermoon D3 Pro-all.json b/resources/profiles/Creality/filament/CR-PETG @Sermoon D3 Pro-all.json new file mode 100644 index 0000000000..306848cdb2 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Sermoon D3 Pro-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "CR-PETG @Sermoon D3 Pro-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "PhFJ45TOClwggKYD", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "7" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_start_gcode": [ + "; filament start gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "80", + "customized_plate_temp_initial_layer": "80", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon D3 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Sermoon D3-all.json b/resources/profiles/Creality/filament/CR-PETG @Sermoon D3-all.json new file mode 100644 index 0000000000..a01d9d5f21 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Sermoon D3-all.json @@ -0,0 +1,132 @@ +{ + "type": "filament", + "name": "CR-PETG @Sermoon D3-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "Pw1DtBsgpbzj8P0k", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "20" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon D3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Sermoon M300-all.json b/resources/profiles/Creality/filament/CR-PETG @Sermoon M300-all.json new file mode 100644 index 0000000000..74ec78f7d1 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Sermoon M300-all.json @@ -0,0 +1,156 @@ +{ + "type": "filament", + "name": "CR-PETG @Sermoon M300-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "WaYzXCaD9MuLDXsX", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.24" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "10%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,240],[1.0,240],[1.2,250]]", + "pressure_advance": "0.07", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle", + "Creality Sermoon M300 0.6 nozzle", + "Creality Sermoon M300 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PETG @Sermoon V1 Pro-all.json b/resources/profiles/Creality/filament/CR-PETG @Sermoon V1 Pro-all.json new file mode 100644 index 0000000000..0e8fc1df14 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PETG @Sermoon V1 Pro-all.json @@ -0,0 +1,129 @@ +{ + "type": "filament", + "name": "CR-PETG @Sermoon V1 Pro-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "yPw0Q8cZoH0z5Q5W", + "filament_id": "OF3WQaKK", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "20" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon V1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @CR-10-all.json b/resources/profiles/Creality/filament/CR-PLA @CR-10-all.json new file mode 100644 index 0000000000..33e4682f95 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @CR-10-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "CR-PLA @CR-10-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "gRYsvflqQ8IIyNOu", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @CR-M4 SE-all.json b/resources/profiles/Creality/filament/CR-PLA @CR-M4 SE-all.json new file mode 100644 index 0000000000..805d435a94 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @CR-M4 SE-all.json @@ -0,0 +1,146 @@ +{ + "type": "filament", + "name": "CR-PLA @CR-M4 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "tABggke8tUaNmEEh", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "fan_min_speed": [ + "50" + ], + "filament_cost": [ + "22" + ], + "filament_deretraction_speed": [ + "50" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.9" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "0.05" + ], + "filament_retraction_speed": [ + "50" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "temperature_vitrification": [ + "100" + ], + "filament_start_gcode": [ + "\" \"" + ], + "filament_end_gcode": [ + "\" \"" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,200],[5.0,210],[8.0,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-M4 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-2 Pro-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-2 Pro-all.json new file mode 100644 index 0000000000..fe31a36da7 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-2 Pro-all.json @@ -0,0 +1,126 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-2 Pro-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "pyic9IqsyOiafceu", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-2 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Plus-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Plus-all.json new file mode 100644 index 0000000000..836c241ca6 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Plus-all.json @@ -0,0 +1,123 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-3 S1 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "DyGKfjo621EQ9y3H", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Pro-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Pro-all.json new file mode 100644 index 0000000000..3cf869c6f0 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Pro-all.json @@ -0,0 +1,123 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-3 S1 Pro-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "CgGlQJsaZQNxVOTe", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Sonic-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Sonic-all.json new file mode 100644 index 0000000000..e6f6477240 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1 Sonic-all.json @@ -0,0 +1,126 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-3 S1 Sonic-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "WsUax8HKz582lvgP", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Sonic 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1-all.json new file mode 100644 index 0000000000..de69653dc1 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3 S1-all.json @@ -0,0 +1,123 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-3 S1-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "q2a9vySJTktLFns3", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3 V2-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V2-all.json new file mode 100644 index 0000000000..3e0b41143f --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V2-all.json @@ -0,0 +1,128 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-3 V2-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "0w38xo4i4Hsv1NGO", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V2 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..057c90b12e --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 KE-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-3 V3 KE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "SpUnsDch11ry1O8N", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "18" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "5" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.048", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..337000232c --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 Plus-all.json @@ -0,0 +1,153 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "EgSHGiAjpbFer6VA", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "18" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 SE-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 SE-all.json new file mode 100644 index 0000000000..7e3d85b861 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3 SE-all.json @@ -0,0 +1,166 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-3 V3 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "HE08t6PGCuot7MAy", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "6" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[2.0,185],[4.0,190],[7.0,200]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3-all.json new file mode 100644 index 0000000000..3d4608ffd4 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3 V3-all.json @@ -0,0 +1,163 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "NZMJjZm0Io0FYdX4", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "18" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "overhang_fan_threshold": [ + "0%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-3-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-3-all.json new file mode 100644 index 0000000000..7f84c2d8a5 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-3-all.json @@ -0,0 +1,123 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "ZzKcZo3q8UkZOVdx", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-5 S1 Sonic-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-5 S1 Sonic-all.json new file mode 100644 index 0000000000..789c851caf --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-5 S1 Sonic-all.json @@ -0,0 +1,126 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-5 S1 Sonic-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "CpzRJ9b1jr2BByHJ", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "20", + "compatible_printers": [ + "Creality Ender-5 S1 Sonic 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Ender-5 S1-all.json b/resources/profiles/Creality/filament/CR-PLA @Ender-5 S1-all.json new file mode 100644 index 0000000000..f759af2774 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Ender-5 S1-all.json @@ -0,0 +1,123 @@ +{ + "type": "filament", + "name": "CR-PLA @Ender-5 S1-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "mLW6hhvEaIThZZj2", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "20", + "compatible_printers": [ + "Creality Ender-5 S1 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Sermoon D3-all.json b/resources/profiles/Creality/filament/CR-PLA @Sermoon D3-all.json new file mode 100644 index 0000000000..e4591247c2 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Sermoon D3-all.json @@ -0,0 +1,144 @@ +{ + "type": "filament", + "name": "CR-PLA @Sermoon D3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "HGHr7BzzF2VF1cgI", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "18" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon D3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Sermoon M300-all.json b/resources/profiles/Creality/filament/CR-PLA @Sermoon M300-all.json new file mode 100644 index 0000000000..79097e7089 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Sermoon M300-all.json @@ -0,0 +1,162 @@ +{ + "type": "filament", + "name": "CR-PLA @Sermoon M300-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "rYqGOIXnGXHEgXTZ", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,205],[1.0,205],[1.2,220]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA @Sermoon V1 Pro-all.json b/resources/profiles/Creality/filament/CR-PLA @Sermoon V1 Pro-all.json new file mode 100644 index 0000000000..08436c9bca --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA @Sermoon V1 Pro-all.json @@ -0,0 +1,144 @@ +{ + "type": "filament", + "name": "CR-PLA @Sermoon V1 Pro-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "k8A978HSNhLgfqzv", + "filament_id": "OFp4ETDP", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "18" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon V1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA Carbon @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/CR-PLA Carbon @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..b9f95c498b --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA Carbon @Ender-3 V3 Plus-all.json @@ -0,0 +1,162 @@ +{ + "type": "filament", + "name": "CR-PLA Carbon @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "Ny1QQCvYxopOGq7P", + "filament_id": "OFrM4hdm", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}\n\n{if(initial_extruder != current_extruder || layer_z > first_layer_height)}\n{if (layer_z +0.4 < printable_height) }\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X205 Y345 F20000\nG1 Z{layer_z } F1200\n{else}\nG1 X205 Y345 F20000\n{endif}\n{endif}" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "1", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "40", + "epoxy_resin_plate_temp_initial_layer": "40", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA Carbon @Ender-3 V3-all.json b/resources/profiles/Creality/filament/CR-PLA Carbon @Ender-3 V3-all.json new file mode 100644 index 0000000000..3d3da7f6ad --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA Carbon @Ender-3 V3-all.json @@ -0,0 +1,162 @@ +{ + "type": "filament", + "name": "CR-PLA Carbon @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "EqzstEZ9es8clekk", + "filament_id": "OFrM4hdm", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}\n\n{if(initial_extruder != current_extruder || layer_z > first_layer_height)}\n{if (layer_z +0.4 < printable_height) }\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X205 Y345 F20000\nG1 Z{layer_z } F1200\n{else}\nG1 X205 Y345 F20000\n{endif}\n{endif}" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "1", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "40", + "epoxy_resin_plate_temp_initial_layer": "40", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA Fluo @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/CR-PLA Fluo @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..473baf354e --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA Fluo @Ender-3 V3 Plus-all.json @@ -0,0 +1,153 @@ +{ + "type": "filament", + "name": "CR-PLA Fluo @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "CGabAfjdy4b23bvd", + "filament_id": "OFgpQwkk", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "18" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA Fluo @Ender-3 V3-all.json b/resources/profiles/Creality/filament/CR-PLA Fluo @Ender-3 V3-all.json new file mode 100644 index 0000000000..a8af45249c --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA Fluo @Ender-3 V3-all.json @@ -0,0 +1,155 @@ +{ + "type": "filament", + "name": "CR-PLA Fluo @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "xkniY2GiXA6eVgP9", + "filament_id": "OFgpQwkk", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "18" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @CR-10 SE-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @CR-10 SE-all.json new file mode 100644 index 0000000000..291d3652e0 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA Matte @CR-10 SE-all.json @@ -0,0 +1,155 @@ +{ + "type": "filament", + "name": "CR-PLA Matte @CR-10 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "NKcoKfmFBGE1ZRio", + "filament_id": "OFM0xjBG", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "19" + ], + "filament_density": [ + "1.3" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..8849c9c510 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V3 Plus-all.json @@ -0,0 +1,156 @@ +{ + "type": "filament", + "name": "CR-PLA Matte @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "QvQmSZuNcXgsVOzE", + "filament_id": "OFM0xjBG", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "19" + ], + "filament_density": [ + "1.3" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V3-all.json b/resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V3-all.json new file mode 100644 index 0000000000..2e66b94e2b --- /dev/null +++ b/resources/profiles/Creality/filament/CR-PLA Matte @Ender-3 V3-all.json @@ -0,0 +1,158 @@ +{ + "type": "filament", + "name": "CR-PLA Matte @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "XDalZ3Pyn4ARpJDe", + "filament_id": "OFM0xjBG", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "19" + ], + "filament_density": [ + "1.3" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-Silk @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/CR-Silk @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..29ed6bff6b --- /dev/null +++ b/resources/profiles/Creality/filament/CR-Silk @Ender-3 V3 Plus-all.json @@ -0,0 +1,156 @@ +{ + "type": "filament", + "name": "CR-Silk @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "MIcCsrSIIFHcKg6c", + "filament_id": "OF3OMgrI", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "22" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-Silk @Ender-3 V3-all.json b/resources/profiles/Creality/filament/CR-Silk @Ender-3 V3-all.json new file mode 100644 index 0000000000..213e26cc62 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-Silk @Ender-3 V3-all.json @@ -0,0 +1,159 @@ +{ + "type": "filament", + "name": "CR-Silk @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "27Rpfmi4f1MJahL0", + "filament_id": "OF3OMgrI", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "22" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "1", + "material_flow_temp_graph": "[[3.0,205],[5.0,215],[7.0,220]]", + "pressure_advance": "0.048", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-Silk @Sermoon D3-all.json b/resources/profiles/Creality/filament/CR-Silk @Sermoon D3-all.json new file mode 100644 index 0000000000..e188c21b6e --- /dev/null +++ b/resources/profiles/Creality/filament/CR-Silk @Sermoon D3-all.json @@ -0,0 +1,147 @@ +{ + "type": "filament", + "name": "CR-Silk @Sermoon D3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "GwhtT5VncavD9Mnc", + "filament_id": "OF3OMgrI", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "22" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon D3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-Silk @Sermoon M300-all.json b/resources/profiles/Creality/filament/CR-Silk @Sermoon M300-all.json new file mode 100644 index 0000000000..a9c8a6439f --- /dev/null +++ b/resources/profiles/Creality/filament/CR-Silk @Sermoon M300-all.json @@ -0,0 +1,163 @@ +{ + "type": "filament", + "name": "CR-Silk @Sermoon M300-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "hL6B3rEviI23wR5C", + "filament_id": "OF3OMgrI", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "22" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.4" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,190],[1.0,190],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-TPU @CR-10 Smart Pro-all.json b/resources/profiles/Creality/filament/CR-TPU @CR-10 Smart Pro-all.json new file mode 100644 index 0000000000..02537b71b8 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-TPU @CR-10 Smart Pro-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "CR-TPU @CR-10 Smart Pro-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "iOz1sN3kp22Y5TBE", + "filament_id": "OFG2RkhN", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.1" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "customized_plate_temp": "35", + "customized_plate_temp_initial_layer": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 Smart Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-TPU @CR-10-all.json b/resources/profiles/Creality/filament/CR-TPU @CR-10-all.json new file mode 100644 index 0000000000..6041be6248 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-TPU @CR-10-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "CR-TPU @CR-10-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "V02QbRBaZBg3wFIn", + "filament_id": "OFG2RkhN", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.1" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2.5" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "customized_plate_temp": "35", + "customized_plate_temp_initial_layer": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-TPU @Ender-3 V2-all.json b/resources/profiles/Creality/filament/CR-TPU @Ender-3 V2-all.json new file mode 100644 index 0000000000..38a1295fb4 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-TPU @Ender-3 V2-all.json @@ -0,0 +1,166 @@ +{ + "type": "filament", + "name": "CR-TPU @Ender-3 V2-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "vbCa5VO9C083vHVd", + "filament_id": "OFG2RkhN", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.1" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "40" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "40" + ], + "textured_plate_temp_initial_layer": [ + "40" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "customized_plate_temp": "40", + "customized_plate_temp_initial_layer": "40", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.4", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V2 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-TPU @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/CR-TPU @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..65414cbeda --- /dev/null +++ b/resources/profiles/Creality/filament/CR-TPU @Ender-3 V3 Plus-all.json @@ -0,0 +1,156 @@ +{ + "type": "filament", + "name": "CR-TPU @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "7NlAEl0uRjpET60w", + "filament_id": "OFG2RkhN", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_density": [ + "1.12" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3.5" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-TPU @Ender-3 V3-all.json b/resources/profiles/Creality/filament/CR-TPU @Ender-3 V3-all.json new file mode 100644 index 0000000000..5cc6b7e824 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-TPU @Ender-3 V3-all.json @@ -0,0 +1,161 @@ +{ + "type": "filament", + "name": "CR-TPU @Ender-3 V3-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "WmQ8C2t4J7YJSxdO", + "filament_id": "OFG2RkhN", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_density": [ + "1.12" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3.5" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-TPU @Sermoon D3-all.json b/resources/profiles/Creality/filament/CR-TPU @Sermoon D3-all.json new file mode 100644 index 0000000000..dcf6b60a99 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-TPU @Sermoon D3-all.json @@ -0,0 +1,157 @@ +{ + "type": "filament", + "name": "CR-TPU @Sermoon D3-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "SoAsld30mkDNavBm", + "filament_id": "OFG2RkhN", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "0" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "215" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "customized_plate_temp": "35", + "customized_plate_temp_initial_layer": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon D3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-TPU @Sermoon V1 Pro-all.json b/resources/profiles/Creality/filament/CR-TPU @Sermoon V1 Pro-all.json new file mode 100644 index 0000000000..6e73d09a10 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-TPU @Sermoon V1 Pro-all.json @@ -0,0 +1,168 @@ +{ + "type": "filament", + "name": "CR-TPU @Sermoon V1 Pro-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "HtxgDX79Zv5Oc5f2", + "filament_id": "OFG2RkhN", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "0" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "215" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "customized_plate_temp": "35", + "customized_plate_temp_initial_layer": "35", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon V1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-Wood @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/CR-Wood @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..46f976cf53 --- /dev/null +++ b/resources/profiles/Creality/filament/CR-Wood @Ender-3 V3 Plus-all.json @@ -0,0 +1,156 @@ +{ + "type": "filament", + "name": "CR-Wood @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "RUOc2G0ddCoK7iZB", + "filament_id": "OFGxC8gB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "23" + ], + "filament_density": [ + "1.22" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/CR-Wood @Ender-3 V3-all.json b/resources/profiles/Creality/filament/CR-Wood @Ender-3 V3-all.json new file mode 100644 index 0000000000..545bcc259d --- /dev/null +++ b/resources/profiles/Creality/filament/CR-Wood @Ender-3 V3-all.json @@ -0,0 +1,158 @@ +{ + "type": "filament", + "name": "CR-Wood @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "Uhd78nmEHWhm9byr", + "filament_id": "OFGxC8gB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "23" + ], + "filament_density": [ + "1.22" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/EN-PLA+ @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/EN-PLA+ @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..f46ef49cf0 --- /dev/null +++ b/resources/profiles/Creality/filament/EN-PLA+ @Ender-3 V3 Plus-all.json @@ -0,0 +1,153 @@ +{ + "type": "filament", + "name": "EN-PLA+ @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "XloTVVL72xDtiyTa", + "filament_id": "OFks6esg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "23" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/EN-PLA+ @Ender-3 V3-all.json b/resources/profiles/Creality/filament/EN-PLA+ @Ender-3 V3-all.json new file mode 100644 index 0000000000..57472a4047 --- /dev/null +++ b/resources/profiles/Creality/filament/EN-PLA+ @Ender-3 V3-all.json @@ -0,0 +1,155 @@ +{ + "type": "filament", + "name": "EN-PLA+ @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "TVbzWm0CvOZJ8gjs", + "filament_id": "OFks6esg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "23" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Ender-PLA @CR-10 Smart Pro-all.json b/resources/profiles/Creality/filament/Ender-PLA @CR-10 Smart Pro-all.json new file mode 100644 index 0000000000..974d926c0c --- /dev/null +++ b/resources/profiles/Creality/filament/Ender-PLA @CR-10 Smart Pro-all.json @@ -0,0 +1,154 @@ +{ + "type": "filament", + "name": "Ender-PLA @CR-10 Smart Pro-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "wdwQn6YvEYg7K8C1", + "filament_id": "OFWao3Ic", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + " ;filament start gcode" + ], + "filament_end_gcode": [ + " ;filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 Smart Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Ender-PLA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Ender-PLA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..8397db9679 --- /dev/null +++ b/resources/profiles/Creality/filament/Ender-PLA @Ender-3 V3 Plus-all.json @@ -0,0 +1,150 @@ +{ + "type": "filament", + "name": "Ender-PLA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "qUPut85n4i97Cvqa", + "filament_id": "OFWao3Ic", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Ender-PLA @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Ender-PLA @Ender-3 V3-all.json new file mode 100644 index 0000000000..2517c43d36 --- /dev/null +++ b/resources/profiles/Creality/filament/Ender-PLA @Ender-3 V3-all.json @@ -0,0 +1,158 @@ +{ + "type": "filament", + "name": "Ender-PLA @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "F9v1dXKIkcKfbp4f", + "filament_id": "OFWao3Ic", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "overhang_fan_threshold": [ + "0%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Ender-PLA @Ender-5 Plus-all.json b/resources/profiles/Creality/filament/Ender-PLA @Ender-5 Plus-all.json new file mode 100644 index 0000000000..c07f4d0d5e --- /dev/null +++ b/resources/profiles/Creality/filament/Ender-PLA @Ender-5 Plus-all.json @@ -0,0 +1,136 @@ +{ + "type": "filament", + "name": "Ender-PLA @Ender-5 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "8G5nUgeCIjUSGrph", + "filament_id": "OFWao3Ic", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @CR-10 SE-all.json b/resources/profiles/Creality/filament/Generic ABS @CR-10 SE-all.json new file mode 100644 index 0000000000..bf4cd1eac3 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @CR-10 SE-all.json @@ -0,0 +1,146 @@ +{ + "type": "filament", + "name": "Generic ABS @CR-10 SE-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "7k397eGw1kOhR5hJ", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_min_speed": [ + "70" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 SE 0.2 nozzle", + "Creality CR-10 SE 0.4 nozzle", + "Creality CR-10 SE 0.6 nozzle", + "Creality CR-10 SE 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @CR-10 Smart Pro-all.json b/resources/profiles/Creality/filament/Generic ABS @CR-10 Smart Pro-all.json new file mode 100644 index 0000000000..80de600c3c --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @CR-10 Smart Pro-all.json @@ -0,0 +1,141 @@ +{ + "type": "filament", + "name": "Generic ABS @CR-10 Smart Pro-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "9Zj0TQAyiQFyTSif", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 Smart Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @CR-10 Smart-all.json b/resources/profiles/Creality/filament/Generic ABS @CR-10 Smart-all.json new file mode 100644 index 0000000000..7bb4cfab6f --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @CR-10 Smart-all.json @@ -0,0 +1,155 @@ +{ + "type": "filament", + "name": "Generic ABS @CR-10 Smart-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "tJrf3QI8y5yQFjbf", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 Smart 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @CR-10-all.json b/resources/profiles/Creality/filament/Generic ABS @CR-10-all.json new file mode 100644 index 0000000000..2b000c9af8 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @CR-10-all.json @@ -0,0 +1,147 @@ +{ + "type": "filament", + "name": "Generic ABS @CR-10-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "pRRyz5XpCSUuEj2b", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @CR-10S Pro V2-all.json b/resources/profiles/Creality/filament/Generic ABS @CR-10S Pro V2-all.json new file mode 100644 index 0000000000..c2ce62ab4b --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @CR-10S Pro V2-all.json @@ -0,0 +1,155 @@ +{ + "type": "filament", + "name": "Generic ABS @CR-10S Pro V2-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "F2Px3DYGFi2GpTdt", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "100" + ], + "eng_plate_temp_initial_layer": [ + "100" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10S Pro V2 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @CR-20 Pro-all.json b/resources/profiles/Creality/filament/Generic ABS @CR-20 Pro-all.json new file mode 100644 index 0000000000..79e52b003a --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @CR-20 Pro-all.json @@ -0,0 +1,158 @@ +{ + "type": "filament", + "name": "Generic ABS @CR-20 Pro-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "k2JmcThf6XE6S1MT", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "20" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "overhang_fan_speed": [ + "50" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-20 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @CR-6 SE-all.json b/resources/profiles/Creality/filament/Generic ABS @CR-6 SE-all.json new file mode 100644 index 0000000000..7dd628856e --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @CR-6 SE-all.json @@ -0,0 +1,144 @@ +{ + "type": "filament", + "name": "Generic ABS @CR-6 SE-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "o6MZqC2Q4tsA5eP5", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-6 SE 0.2 nozzle", + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 SE 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @CR-M4-all.json b/resources/profiles/Creality/filament/Generic ABS @CR-M4-all.json new file mode 100644 index 0000000000..d577452be4 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @CR-M4-all.json @@ -0,0 +1,140 @@ +{ + "type": "filament", + "name": "Generic ABS @CR-M4-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "v0uZLdNL4HQohnml", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "50" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-M4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @Creality Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic ABS @Creality Ender-3V3-all.json index fcd8548620..4081db783f 100644 --- a/resources/profiles/Creality/filament/Generic ABS @Creality Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic ABS @Creality Ender-3V3-all.json @@ -19,8 +19,6 @@ "Creality Ender-3 V3 SE 0.8 nozzle", "Creality Ender-3 V3 KE 0.4 nozzle", "Creality Ender-3 V3 0.4 nozzle", - "Creality Ender-3 V3 0.6 nozzle", - "Creality Ender-3 V3 Plus 0.4 nozzle", - "Creality Ender-3 V3 Plus 0.6 nozzle" + "Creality Ender-3 V3 0.6 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Generic ABS @Creality.json b/resources/profiles/Creality/filament/Generic ABS @Creality.json index cb2c1a6f9c..2e0bb44fa0 100644 --- a/resources/profiles/Creality/filament/Generic ABS @Creality.json +++ b/resources/profiles/Creality/filament/Generic ABS @Creality.json @@ -18,10 +18,6 @@ "Creality CR-10 V3 0.4 nozzle", "Creality CR-10 V3 0.6 nozzle", "Creality CR-10 Max 0.4 nozzle", - "Creality CR-6 SE 0.2 nozzle", - "Creality CR-6 SE 0.4 nozzle", - "Creality CR-6 SE 0.6 nozzle", - "Creality CR-6 SE 0.8 nozzle", "Creality CR-6 Max 0.2 nozzle", "Creality CR-6 Max 0.4 nozzle", "Creality CR-6 Max 0.6 nozzle", @@ -35,7 +31,6 @@ "Creality Ender-3 Pro 0.4 nozzle", "Creality Ender-3 Pro 0.6 nozzle", "Creality Ender-3 Pro 0.8 nozzle", - "Creality Ender-3 V2 0.4 nozzle", "Creality Ender-3 V2 Neo 0.4 nozzle", "Creality Ender-3 S1 0.4 nozzle", "Creality Ender-3 S1 Pro 0.4 nozzle", @@ -61,11 +56,6 @@ "Creality K1 (0.8 nozzle)", "Creality K1 Max (0.4 nozzle)", "Creality K1 Max (0.6 nozzle)", - "Creality K1 Max (0.8 nozzle)", - "Creality CR-10 SE 0.2 nozzle", - "Creality CR-10 SE 0.4 nozzle", - "Creality CR-10 SE 0.6 nozzle", - "Creality CR-10 SE 0.8 nozzle", - "Creality CR-M4 0.4 nozzle" + "Creality K1 Max (0.8 nozzle)" ] } diff --git a/resources/profiles/Creality/filament/Generic ABS @Ender-3 Max Neo-all.json b/resources/profiles/Creality/filament/Generic ABS @Ender-3 Max Neo-all.json new file mode 100644 index 0000000000..dc7db577c4 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @Ender-3 Max Neo-all.json @@ -0,0 +1,146 @@ +{ + "type": "filament", + "name": "Generic ABS @Ender-3 Max Neo-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "RvDjCXHEbns6IztB", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 Max Neo 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @Ender-3 Max-all.json b/resources/profiles/Creality/filament/Generic ABS @Ender-3 Max-all.json new file mode 100644 index 0000000000..91dd90c8ea --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @Ender-3 Max-all.json @@ -0,0 +1,146 @@ +{ + "type": "filament", + "name": "Generic ABS @Ender-3 Max-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "PguzrK3BdcVjZRQo", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 Max 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @Ender-3 Neo-all.json b/resources/profiles/Creality/filament/Generic ABS @Ender-3 Neo-all.json new file mode 100644 index 0000000000..1a1c7a6c4a --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @Ender-3 Neo-all.json @@ -0,0 +1,143 @@ +{ + "type": "filament", + "name": "Generic ABS @Ender-3 Neo-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "GyPeZnytNANmnfaS", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "20" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 Neo 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @Ender-3 V2-all.json b/resources/profiles/Creality/filament/Generic ABS @Ender-3 V2-all.json new file mode 100644 index 0000000000..e64a860b55 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @Ender-3 V2-all.json @@ -0,0 +1,152 @@ +{ + "type": "filament", + "name": "Generic ABS @Ender-3 V2-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "aBJ8pESX1Thm99ek", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "20" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V2 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic ABS @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..97ec708a23 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @Ender-3 V3 Plus-all.json @@ -0,0 +1,145 @@ +{ + "type": "filament", + "name": "Generic ABS @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "hTvm1fTXFd7cztWW", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_min_speed": [ + "70" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @Sermoon D3-all.json b/resources/profiles/Creality/filament/Generic ABS @Sermoon D3-all.json new file mode 100644 index 0000000000..c6fc10b69e --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @Sermoon D3-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "Generic ABS @Sermoon D3-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "rX4Bj2tjmMnLdXC1", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "30" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "0" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "5" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "activate_chamber_temp_control": "1", + "chamber_temperature": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon D3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @Sermoon M300-all.json b/resources/profiles/Creality/filament/Generic ABS @Sermoon M300-all.json new file mode 100644 index 0000000000..04576e2222 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @Sermoon M300-all.json @@ -0,0 +1,155 @@ +{ + "type": "filament", + "name": "Generic ABS @Sermoon M300-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "dSUSzQHEZb1rva3B", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "60" + ], + "filament_cost": [ + "15" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.06", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ABS @Sermoon V1 Pro-all.json b/resources/profiles/Creality/filament/Generic ABS @Sermoon V1 Pro-all.json new file mode 100644 index 0000000000..f3422ad1b9 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ABS @Sermoon V1 Pro-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "Generic ABS @Sermoon V1 Pro-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "2Frv7ji4Qi8bfdoJ", + "filament_id": "OFY9muEs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_max_speed": [ + "30" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "0" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "5" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "activate_chamber_temp_control": "1", + "chamber_temperature": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon V1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ASA @Creality Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic ASA @Creality Ender-3V3-all.json index 27ee572384..0675884518 100644 --- a/resources/profiles/Creality/filament/Generic ASA @Creality Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic ASA @Creality Ender-3V3-all.json @@ -19,8 +19,6 @@ "Creality Ender-3 V3 SE 0.8 nozzle", "Creality Ender-3 V3 KE 0.4 nozzle", "Creality Ender-3 V3 0.4 nozzle", - "Creality Ender-3 V3 0.6 nozzle", - "Creality Ender-3 V3 Plus 0.4 nozzle", - "Creality Ender-3 V3 Plus 0.6 nozzle" + "Creality Ender-3 V3 0.6 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Generic ASA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic ASA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..8e5207977f --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ASA @Ender-3 V3 Plus-all.json @@ -0,0 +1,139 @@ +{ + "type": "filament", + "name": "Generic ASA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_asa", + "from": "system", + "setting_id": "OfYB1taVdE79ijdP", + "filament_id": "OFLPAxz3", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_min_speed": [ + "70" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "required_nozzle_HRC": [ + "0" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "55", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic ASA @Sermoon M300-all.json b/resources/profiles/Creality/filament/Generic ASA @Sermoon M300-all.json new file mode 100644 index 0000000000..062033b4be --- /dev/null +++ b/resources/profiles/Creality/filament/Generic ASA @Sermoon M300-all.json @@ -0,0 +1,170 @@ +{ + "type": "filament", + "name": "Generic ASA @Sermoon M300-all", + "inherits": "fdm_filament_asa", + "from": "system", + "setting_id": "kLMeHvTGuEgoSyDI", + "filament_id": "OFLPAxz3", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "fan_cooling_layer_time": [ + "40" + ], + "fan_max_speed": [ + "90" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.1" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "10%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "60" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic BVOH @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic BVOH @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..9ef41326f5 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic BVOH @Ender-3 V3 Plus-all.json @@ -0,0 +1,159 @@ +{ + "type": "filament", + "name": "Generic BVOH @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_common", + "from": "system", + "setting_id": "WUkZ2i1FEzXoLzFH", + "filament_id": "OFo2UF2C", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "80" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "1" + ], + "filament_max_volumetric_speed": [ + "7" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "1" + ], + "filament_type": [ + "BVOH" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "nozzle_temperature": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature_range_high": [ + "220" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "3" + ], + "temperature_vitrification": [ + "110" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "filament_adhesiveness_category": "797", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic HIPS @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic HIPS @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..57c2863c94 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic HIPS @Ender-3 V3 Plus-all.json @@ -0,0 +1,170 @@ +{ + "type": "filament", + "name": "Generic HIPS @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_hips", + "from": "system", + "setting_id": "QYY4DkK23PeGRBFb", + "filament_id": "OFsFon5l", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "HIPS" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "3" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..ac553bbf3f --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PA @Ender-3 V3 Plus-all.json @@ -0,0 +1,164 @@ +{ + "type": "filament", + "name": "Generic PA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pa", + "from": "system", + "setting_id": "Y3Z9Q68NlMOpad6E", + "filament_id": "OFg8ndtj", + "instantiation": "true", + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "5" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "50" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "2" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature": [ + "260" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.01", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PA-CF @Creality Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic PA-CF @Creality Ender-3V3-all.json index a73077a6e9..152c8100d6 100644 --- a/resources/profiles/Creality/filament/Generic PA-CF @Creality Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic PA-CF @Creality Ender-3V3-all.json @@ -8,8 +8,6 @@ "instantiation": "true", "compatible_printers": [ "Creality Ender-3 V3 0.4 nozzle", - "Creality Ender-3 V3 0.6 nozzle", - "Creality Ender-3 V3 Plus 0.4 nozzle", - "Creality Ender-3 V3 Plus 0.6 nozzle" + "Creality Ender-3 V3 0.6 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Generic PA-CF @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PA-CF @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..2e02d3b231 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PA-CF @Ender-3 V3 Plus-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "Generic PA-CF @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pa", + "from": "system", + "setting_id": "q3qyg6fzkk9JIB1o", + "filament_id": "OFQLcbps", + "instantiation": "true", + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "5" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "45" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PA-CF" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "2" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "overhang_fan_speed": [ + "40" + ], + "overhang_fan_threshold": [ + "0%" + ], + "reduce_fan_stop_start_freq": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.01", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PA6-CF @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PA6-CF @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..77ea80c859 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PA6-CF @Ender-3 V3 Plus-all.json @@ -0,0 +1,185 @@ +{ + "type": "filament", + "name": "Generic PA6-CF @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pa", + "from": "system", + "setting_id": "l5IAmECVqLP55XnR", + "filament_id": "OFhTPf6L", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "50" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PA6-CF" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "3" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PAHT-CF @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PAHT-CF @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..e4d9c0de32 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PAHT-CF @Ender-3 V3 Plus-all.json @@ -0,0 +1,194 @@ +{ + "type": "filament", + "name": "Generic PAHT-CF @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pa", + "from": "system", + "setting_id": "JmS6q1BN7ccHIeva", + "filament_id": "OFH7b12v", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "100" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PA-CF" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "nozzle_temperature_range_high": [ + "320" + ], + "nozzle_temperature_range_low": [ + "300" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "slow_down_layer_time": [ + "3" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PC @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PC @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..61d482cb50 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PC @Ender-3 V3 Plus-all.json @@ -0,0 +1,140 @@ +{ + "type": "filament", + "name": "Generic PC @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pc", + "from": "system", + "setting_id": "cIIy4Tb4NffN6Hvs", + "filament_id": "OFLakOUI", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "110" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.94" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "260" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PET @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PET @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..3d8b5038e4 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PET @Ender-3 V3 Plus-all.json @@ -0,0 +1,185 @@ +{ + "type": "filament", + "name": "Generic PET @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pet", + "from": "system", + "setting_id": "vR7Nq6HGtQLIDsE9", + "filament_id": "OF6MOPWx", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "50" + ], + "filament_cost": [ + "20" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PET" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "3" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PET-CF @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PET-CF @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..2992d76fdc --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PET-CF @Ender-3 V3 Plus-all.json @@ -0,0 +1,173 @@ +{ + "type": "filament", + "name": "Generic PET-CF @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pet", + "from": "system", + "setting_id": "HGWoOaoIlZLDY3wV", + "filament_id": "OFQdaVZS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "90" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PET-CF" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "290" + ], + "nozzle_temperature_initial_layer": [ + "290" + ], + "nozzle_temperature_range_high": [ + "320" + ], + "nozzle_temperature_range_low": [ + "280" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "3" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "110" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "40", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @CR-10 Smart-all.json b/resources/profiles/Creality/filament/Generic PETG @CR-10 Smart-all.json new file mode 100644 index 0000000000..7f1e2941ae --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @CR-10 Smart-all.json @@ -0,0 +1,132 @@ +{ + "type": "filament", + "name": "Generic PETG @CR-10 Smart-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "VPJdTsJ7pz202BYK", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 Smart 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @CR-10S Pro V2-all.json b/resources/profiles/Creality/filament/Generic PETG @CR-10S Pro V2-all.json new file mode 100644 index 0000000000..1ebe014e7c --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @CR-10S Pro V2-all.json @@ -0,0 +1,132 @@ +{ + "type": "filament", + "name": "Generic PETG @CR-10S Pro V2-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "qUF9PNCTfAqc0tN7", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10S Pro V2 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @CR-20 Pro-all.json b/resources/profiles/Creality/filament/Generic PETG @CR-20 Pro-all.json new file mode 100644 index 0000000000..966d433329 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @CR-20 Pro-all.json @@ -0,0 +1,131 @@ +{ + "type": "filament", + "name": "Generic PETG @CR-20 Pro-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "C2dcZhzBCUXyQUWg", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.24" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-20 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @CR-6 SE-all.json b/resources/profiles/Creality/filament/Generic PETG @CR-6 SE-all.json new file mode 100644 index 0000000000..c460965ed1 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @CR-6 SE-all.json @@ -0,0 +1,134 @@ +{ + "type": "filament", + "name": "Generic PETG @CR-6 SE-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "GqakIC4b2rKk8Z1q", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-6 SE 0.2 nozzle", + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 SE 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @CR-M4-all.json b/resources/profiles/Creality/filament/Generic PETG @CR-M4-all.json new file mode 100644 index 0000000000..37c0fa4705 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @CR-M4-all.json @@ -0,0 +1,134 @@ +{ + "type": "filament", + "name": "Generic PETG @CR-M4-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "B7gHYu1pv886koYQ", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "255" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-M4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @Creality Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic PETG @Creality Ender-3V3-all.json index 9d2c3a5529..5cabe6f64d 100644 --- a/resources/profiles/Creality/filament/Generic PETG @Creality Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @Creality Ender-3V3-all.json @@ -43,14 +43,6 @@ "250" ], "compatible_printers": [ - "Creality Ender-3 V3 SE 0.2 nozzle", - "Creality Ender-3 V3 SE 0.4 nozzle", - "Creality Ender-3 V3 SE 0.6 nozzle", - "Creality Ender-3 V3 SE 0.8 nozzle", - "Creality Ender-3 V3 KE 0.4 nozzle", - "Creality Ender-3 V3 0.4 nozzle", - "Creality Ender-3 V3 0.6 nozzle", - "Creality Ender-3 V3 Plus 0.4 nozzle", - "Creality Ender-3 V3 Plus 0.6 nozzle" + "Creality Ender-3 V3 KE 0.4 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Generic PETG @Creality.json b/resources/profiles/Creality/filament/Generic PETG @Creality.json index 7bd45cd910..d6b81cb3fd 100644 --- a/resources/profiles/Creality/filament/Generic PETG @Creality.json +++ b/resources/profiles/Creality/filament/Generic PETG @Creality.json @@ -48,10 +48,6 @@ "Creality CR-10 V3 0.4 nozzle", "Creality CR-10 V3 0.6 nozzle", "Creality CR-10 Max 0.4 nozzle", - "Creality CR-6 SE 0.2 nozzle", - "Creality CR-6 SE 0.4 nozzle", - "Creality CR-6 SE 0.6 nozzle", - "Creality CR-6 SE 0.8 nozzle", "Creality CR-6 Max 0.2 nozzle", "Creality CR-6 Max 0.4 nozzle", "Creality CR-6 Max 0.6 nozzle", @@ -95,7 +91,6 @@ "Creality CR-10 SE 0.2 nozzle", "Creality CR-10 SE 0.4 nozzle", "Creality CR-10 SE 0.6 nozzle", - "Creality CR-10 SE 0.8 nozzle", - "Creality CR-M4 0.4 nozzle" + "Creality CR-10 SE 0.8 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Generic PETG @Ender-3 Max Neo-all.json b/resources/profiles/Creality/filament/Generic PETG @Ender-3 Max Neo-all.json new file mode 100644 index 0000000000..720ffce250 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @Ender-3 Max Neo-all.json @@ -0,0 +1,131 @@ +{ + "type": "filament", + "name": "Generic PETG @Ender-3 Max Neo-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "4jdpaGFkPz4pnTnp", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.24" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 Max Neo 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @Ender-3 Max-all.json b/resources/profiles/Creality/filament/Generic PETG @Ender-3 Max-all.json new file mode 100644 index 0000000000..b14b26323d --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @Ender-3 Max-all.json @@ -0,0 +1,131 @@ +{ + "type": "filament", + "name": "Generic PETG @Ender-3 Max-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "KUWLr5F0x6xiHwQd", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.24" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 Max 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @Ender-3 Neo-all.json b/resources/profiles/Creality/filament/Generic PETG @Ender-3 Neo-all.json new file mode 100644 index 0000000000..f690e5f19a --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @Ender-3 Neo-all.json @@ -0,0 +1,132 @@ +{ + "type": "filament", + "name": "Generic PETG @Ender-3 Neo-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "iSUhZ9e0myJZgziW", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.3" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 Neo 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PETG @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..3881ec9e50 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @Ender-3 V3 Plus-all.json @@ -0,0 +1,166 @@ +{ + "type": "filament", + "name": "Generic PETG @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "INALbe8Pxz0phRkj", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "80" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PETG" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @Ender-3 V3 SE-all.json b/resources/profiles/Creality/filament/Generic PETG @Ender-3 V3 SE-all.json new file mode 100644 index 0000000000..3d71688507 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @Ender-3 V3 SE-all.json @@ -0,0 +1,148 @@ +{ + "type": "filament", + "name": "Generic PETG @Ender-3 V3 SE-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "zFR4lJhuSVZp49fK", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "30" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Generic" + ], + "filament_z_hop": [ + "0.2" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 SE 0.2 nozzle", + "Creality Ender-3 V3 SE 0.4 nozzle", + "Creality Ender-3 V3 SE 0.6 nozzle", + "Creality Ender-3 V3 SE 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Generic PETG @Ender-3 V3-all.json new file mode 100644 index 0000000000..a116b405cc --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @Ender-3 V3-all.json @@ -0,0 +1,153 @@ +{ + "type": "filament", + "name": "Generic PETG @Ender-3 V3-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "SohXnNCwt1Lcb2CD", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "80" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.23" + ], + "filament_deretraction_speed": [ + "30" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "235" + ], + "nozzle_temperature_initial_layer": [ + "235" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG @Sermoon M300-all.json b/resources/profiles/Creality/filament/Generic PETG @Sermoon M300-all.json new file mode 100644 index 0000000000..976073db00 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG @Sermoon M300-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "Generic PETG @Sermoon M300-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "TT4mu2ksdRU4itY8", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "fan_cooling_layer_time": [ + "35" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "14" + ], + "filament_density": [ + "1.27" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_retract_before_wipe": [ + "100" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "95" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "16" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,240],[1.0,240],[1.2,250]]", + "pressure_advance": "0.07", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PETG-CF @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PETG-CF @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..82f717751f --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PETG-CF @Ender-3 V3 Plus-all.json @@ -0,0 +1,164 @@ +{ + "type": "filament", + "name": "Generic PETG-CF @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "Uv6FLT6UtYzjUfj6", + "filament_id": "OFoYSJKi", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "50" + ], + "filament_cost": [ + "70" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PETG-CF" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "temperature_vitrification": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @CR-10 SE-all.json b/resources/profiles/Creality/filament/Generic PLA @CR-10 SE-all.json new file mode 100644 index 0000000000..0b12bc1128 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @CR-10 SE-all.json @@ -0,0 +1,173 @@ +{ + "type": "filament", + "name": "Generic PLA @CR-10 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "TY7zqKMIv5RYjFrd", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "3" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 SE 0.2 nozzle", + "Creality CR-10 SE 0.4 nozzle", + "Creality CR-10 SE 0.6 nozzle", + "Creality CR-10 SE 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @CR-10 Smart-all.json b/resources/profiles/Creality/filament/Generic PLA @CR-10 Smart-all.json new file mode 100644 index 0000000000..7282b20b3d --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @CR-10 Smart-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "Generic PLA @CR-10 Smart-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "IXZ23pJ9zevMPL8A", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 Smart 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @CR-10S Pro V2-all.json b/resources/profiles/Creality/filament/Generic PLA @CR-10S Pro V2-all.json new file mode 100644 index 0000000000..ccbc098d84 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @CR-10S Pro V2-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "Generic PLA @CR-10S Pro V2-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "1TrAULamCk2jglbA", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10S Pro V2 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @CR-20 Pro-all.json b/resources/profiles/Creality/filament/Generic PLA @CR-20 Pro-all.json new file mode 100644 index 0000000000..e5cb1f87fe --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @CR-20 Pro-all.json @@ -0,0 +1,128 @@ +{ + "type": "filament", + "name": "Generic PLA @CR-20 Pro-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "3NjQxuPrwE6NAXcD", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-20 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @CR-6 SE-all.json b/resources/profiles/Creality/filament/Generic PLA @CR-6 SE-all.json new file mode 100644 index 0000000000..40b30b2c19 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @CR-6 SE-all.json @@ -0,0 +1,131 @@ +{ + "type": "filament", + "name": "Generic PLA @CR-6 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "9vR9LecaoM9OEni1", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-6 SE 0.2 nozzle", + "Creality CR-6 SE 0.4 nozzle", + "Creality CR-6 SE 0.6 nozzle", + "Creality CR-6 SE 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @CR-M4-all.json b/resources/profiles/Creality/filament/Generic PLA @CR-M4-all.json new file mode 100644 index 0000000000..515172dd57 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @CR-M4-all.json @@ -0,0 +1,122 @@ +{ + "type": "filament", + "name": "Generic PLA @CR-M4-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "fWGNSERAQ1y3IpVv", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-M4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @Creality Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic PLA @Creality Ender-3V3-all.json index 4bc29d5df2..3c2e7de2ed 100644 --- a/resources/profiles/Creality/filament/Generic PLA @Creality Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @Creality Ender-3V3-all.json @@ -41,10 +41,6 @@ "Creality Ender-3 V3 SE 0.4 nozzle", "Creality Ender-3 V3 SE 0.6 nozzle", "Creality Ender-3 V3 SE 0.8 nozzle", - "Creality Ender-3 V3 KE 0.4 nozzle", - "Creality Ender-3 V3 0.4 nozzle", - "Creality Ender-3 V3 0.6 nozzle", - "Creality Ender-3 V3 Plus 0.4 nozzle", - "Creality Ender-3 V3 Plus 0.6 nozzle" + "Creality Ender-3 V3 KE 0.4 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Generic PLA @Creality.json b/resources/profiles/Creality/filament/Generic PLA @Creality.json index f3d807d76b..248ff78dcb 100644 --- a/resources/profiles/Creality/filament/Generic PLA @Creality.json +++ b/resources/profiles/Creality/filament/Generic PLA @Creality.json @@ -21,10 +21,6 @@ "Creality CR-10 V3 0.4 nozzle", "Creality CR-10 V3 0.6 nozzle", "Creality CR-10 Max 0.4 nozzle", - "Creality CR-6 SE 0.2 nozzle", - "Creality CR-6 SE 0.4 nozzle", - "Creality CR-6 SE 0.6 nozzle", - "Creality CR-6 SE 0.8 nozzle", "Creality CR-6 Max 0.2 nozzle", "Creality CR-6 Max 0.4 nozzle", "Creality CR-6 Max 0.6 nozzle", @@ -65,10 +61,7 @@ "Creality K1 Max (0.4 nozzle)", "Creality K1 Max (0.6 nozzle)", "Creality K1 Max (0.8 nozzle)", - "Creality CR-10 SE 0.2 nozzle", - "Creality CR-10 SE 0.4 nozzle", - "Creality CR-10 SE 0.6 nozzle", - "Creality CR-10 SE 0.8 nozzle", - "Creality CR-M4 0.4 nozzle" + "Creality CR-10 Smart Pro 0.4 nozzle", + "Creality CR-M4 SE 0.4 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Generic PLA @Ender-3 Max Neo-all.json b/resources/profiles/Creality/filament/Generic PLA @Ender-3 Max Neo-all.json new file mode 100644 index 0000000000..178526b2ef --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @Ender-3 Max Neo-all.json @@ -0,0 +1,128 @@ +{ + "type": "filament", + "name": "Generic PLA @Ender-3 Max Neo-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "rvTqPsDsianWVwQr", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 Max Neo 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @Ender-3 Max-all.json b/resources/profiles/Creality/filament/Generic PLA @Ender-3 Max-all.json new file mode 100644 index 0000000000..d49ae893de --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @Ender-3 Max-all.json @@ -0,0 +1,128 @@ +{ + "type": "filament", + "name": "Generic PLA @Ender-3 Max-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "tuAInjcszFU6tv4J", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 Max 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @Ender-3 Neo-all.json b/resources/profiles/Creality/filament/Generic PLA @Ender-3 Neo-all.json new file mode 100644 index 0000000000..d920dd8243 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @Ender-3 Neo-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "Generic PLA @Ender-3 Neo-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "d3BEThprk5ULUC4X", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_long_retractions_when_cut": "nil", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_retraction_distances_when_cut": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_stamping_distance": "0", + "filament_stamping_loading_speed": "0", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "idle_temperature": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "pellet_flow_coefficient": "0.4157", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 Neo 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PLA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..5f290642e5 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @Ender-3 V3 Plus-all.json @@ -0,0 +1,173 @@ +{ + "type": "filament", + "name": "Generic PLA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "7dpzvFQKfzuIlB51", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "3" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Generic PLA @Ender-3 V3-all.json new file mode 100644 index 0000000000..26e427e999 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @Ender-3 V3-all.json @@ -0,0 +1,168 @@ +{ + "type": "filament", + "name": "Generic PLA @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "VtuRiOJnDZt6CYif", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "fan_cooling_layer_time": [ + "80" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "60" + ], + "filament_cost": [ + "18" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "14" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA @Sermoon M300-all.json b/resources/profiles/Creality/filament/Generic PLA @Sermoon M300-all.json new file mode 100644 index 0000000000..cc47765260 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA @Sermoon M300-all.json @@ -0,0 +1,157 @@ +{ + "type": "filament", + "name": "Generic PLA @Sermoon M300-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "RULhpYPSJj3TYuwI", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,210],[1.0,210],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..721bcd8f9d --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V3 Plus-all.json @@ -0,0 +1,162 @@ +{ + "type": "filament", + "name": "Generic PLA-CF @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "mh1D3QxWorOTicEf", + "filament_id": "OFWbdGsC", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "30" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "7" + ], + "temperature_vitrification": [ + "50" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "500", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V3-all.json new file mode 100644 index 0000000000..5a88b68e50 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA-CF @Ender-3 V3-all.json @@ -0,0 +1,163 @@ +{ + "type": "filament", + "name": "Generic PLA-CF @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "7rIqk0tZvIPnM4pG", + "filament_id": "OFWbdGsC", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "32" + ], + "filament_density": [ + "1.27" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @CR-10 SE-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @CR-10 SE-all.json new file mode 100644 index 0000000000..a664afe583 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @CR-10 SE-all.json @@ -0,0 +1,164 @@ +{ + "type": "filament", + "name": "Generic PLA-Silk @CR-10 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "k9sozpN7VGTLlGzN", + "filament_id": "OFi6PfUM", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "55" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "55" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..f72dce681f --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V3 Plus-all.json @@ -0,0 +1,165 @@ +{ + "type": "filament", + "name": "Generic PLA-Silk @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "K7C0rlTax8rnt9Lk", + "filament_id": "OFi6PfUM", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V3-all.json new file mode 100644 index 0000000000..ecefaadc93 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @Ender-3 V3-all.json @@ -0,0 +1,157 @@ +{ + "type": "filament", + "name": "Generic PLA-Silk @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "l78OyTnZnFN4sZSK", + "filament_id": "OFi6PfUM", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "22" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,205],[5.0,215],[7.0,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PLA-Silk @Sermoon M300-all.json b/resources/profiles/Creality/filament/Generic PLA-Silk @Sermoon M300-all.json new file mode 100644 index 0000000000..38b7921057 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PLA-Silk @Sermoon M300-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "Generic PLA-Silk @Sermoon M300-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "H6MlBQfgGbhqCQuD", + "filament_id": "OFi6PfUM", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,195],[1.0,195],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PP @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PP @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..5dbcbfa816 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PP @Ender-3 V3 Plus-all.json @@ -0,0 +1,155 @@ +{ + "type": "filament", + "name": "Generic PP @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pp", + "from": "system", + "setting_id": "KQyiw6fEMfPcCZRP", + "filament_id": "OF1UNk9P", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "30" + ], + "filament_cost": [ + "40" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PP" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "250" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "3" + ], + "temperature_vitrification": [ + "110" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PPS @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PPS @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..3179ad835b --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PPS @Ender-3 V3 Plus-all.json @@ -0,0 +1,170 @@ +{ + "type": "filament", + "name": "Generic PPS @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pps", + "from": "system", + "setting_id": "YLZ2isKVMT0wfnJL", + "filament_id": "OFq9svOz", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "100" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PPS" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "320" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "nozzle_temperature_range_high": [ + "350" + ], + "nozzle_temperature_range_low": [ + "320" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "3" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PPS-CF @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PPS-CF @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..cee7f84875 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PPS-CF @Ender-3 V3 Plus-all.json @@ -0,0 +1,170 @@ +{ + "type": "filament", + "name": "Generic PPS-CF @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pps", + "from": "system", + "setting_id": "nQU4zvH8XtE55hqE", + "filament_id": "OF6rdQ6M", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "10" + ], + "filament_cost": [ + "130" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PPS-CF" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature": [ + "305" + ], + "nozzle_temperature_initial_layer": [ + "305" + ], + "nozzle_temperature_range_high": [ + "320" + ], + "nozzle_temperature_range_low": [ + "305" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "3" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic PVA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic PVA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..8ba7f59320 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic PVA @Ender-3 V3 Plus-all.json @@ -0,0 +1,125 @@ +{ + "type": "filament", + "name": "Generic PVA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_common", + "from": "system", + "setting_id": "TANQbEsNUzxo1W6e", + "filament_id": "OFDvXujf", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "filament_cost": [ + "80" + ], + "filament_density": [ + "1.24" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "1" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_soluble": [ + "1" + ], + "filament_type": [ + "PVA" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "225" + ], + "nozzle_temperature_range_low": [ + "215" + ], + "overhang_fan_threshold": [ + "50%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "4" + ], + "temperature_vitrification": [ + "60" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic TPU @CR-10 SE-all.json b/resources/profiles/Creality/filament/Generic TPU @CR-10 SE-all.json new file mode 100644 index 0000000000..388173b0d2 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic TPU @CR-10 SE-all.json @@ -0,0 +1,149 @@ +{ + "type": "filament", + "name": "Generic TPU @CR-10 SE-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "cAnzTan0oQSt5eTD", + "filament_id": "OFgbpcy9", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "filament_cost": [ + "25" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3.5" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 SE 0.2 nozzle", + "Creality CR-10 SE 0.4 nozzle", + "Creality CR-10 SE 0.6 nozzle", + "Creality CR-10 SE 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic TPU @Creality Ender-3V3-all.json b/resources/profiles/Creality/filament/Generic TPU @Creality Ender-3V3-all.json index 89fa6b290b..80d3316a76 100644 --- a/resources/profiles/Creality/filament/Generic TPU @Creality Ender-3V3-all.json +++ b/resources/profiles/Creality/filament/Generic TPU @Creality Ender-3V3-all.json @@ -31,14 +31,6 @@ "5" ], "compatible_printers": [ - "Creality Ender-3 V3 SE 0.2 nozzle", - "Creality Ender-3 V3 SE 0.4 nozzle", - "Creality Ender-3 V3 SE 0.6 nozzle", - "Creality Ender-3 V3 SE 0.8 nozzle", - "Creality Ender-3 V3 KE 0.4 nozzle", - "Creality Ender-3 V3 0.4 nozzle", - "Creality Ender-3 V3 0.6 nozzle", - "Creality Ender-3 V3 Plus 0.4 nozzle", - "Creality Ender-3 V3 Plus 0.6 nozzle" + "Creality Ender-3 V3 KE 0.4 nozzle" ] } diff --git a/resources/profiles/Creality/filament/Generic TPU @Creality.json b/resources/profiles/Creality/filament/Generic TPU @Creality.json index 0277d14563..af863c3893 100644 --- a/resources/profiles/Creality/filament/Generic TPU @Creality.json +++ b/resources/profiles/Creality/filament/Generic TPU @Creality.json @@ -20,10 +20,6 @@ "Creality K1 Max (0.6 nozzle)", "Creality K1 Max (0.8 nozzle)", "Creality Sermoon V1 0.4 nozzle", - "Creality CR-10 SE 0.2 nozzle", - "Creality CR-10 SE 0.4 nozzle", - "Creality CR-10 SE 0.6 nozzle", - "Creality CR-10 SE 0.8 nozzle", "Creality Ender-3 S1 Pro 0.4 nozzle", "Creality Ender-3 S1 0.4 nozzle" ] diff --git a/resources/profiles/Creality/filament/Generic TPU @Ender-2 Pro-all.json b/resources/profiles/Creality/filament/Generic TPU @Ender-2 Pro-all.json new file mode 100644 index 0000000000..23f0445200 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic TPU @Ender-2 Pro-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "Generic TPU @Ender-2 Pro-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "eSne6uswp0ZDCGTS", + "filament_id": "OFgbpcy9", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "0" + ], + "filament_density": [ + "0" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3.5" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "215" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode\n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "customized_plate_temp": "35", + "customized_plate_temp_initial_layer": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-2 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic TPU @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Generic TPU @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..ad229829b5 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic TPU @Ender-3 V3 Plus-all.json @@ -0,0 +1,149 @@ +{ + "type": "filament", + "name": "Generic TPU @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "VEMUCoSWsQDUCoG3", + "filament_id": "OFgbpcy9", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "filament_cost": [ + "25" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3.5" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic TPU @Ender-3 V3 SE-all.json b/resources/profiles/Creality/filament/Generic TPU @Ender-3 V3 SE-all.json new file mode 100644 index 0000000000..4954f23528 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic TPU @Ender-3 V3 SE-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "Generic TPU @Ender-3 V3 SE-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "b3e5QHJLSLlb24dl", + "filament_id": "OFgbpcy9", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "30" + ], + "hot_plate_temp_initial_layer": [ + "30" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "30" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 SE 0.2 nozzle", + "Creality Ender-3 V3 SE 0.4 nozzle", + "Creality Ender-3 V3 SE 0.6 nozzle", + "Creality Ender-3 V3 SE 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Generic TPU @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Generic TPU @Ender-3 V3-all.json new file mode 100644 index 0000000000..43abaeed71 --- /dev/null +++ b/resources/profiles/Creality/filament/Generic TPU @Ender-3 V3-all.json @@ -0,0 +1,159 @@ +{ + "type": "filament", + "name": "Generic TPU @Ender-3 V3-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "dr6ZzW956Z1DKzEF", + "filament_id": "OFgbpcy9", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "filament_cost": [ + "25" + ], + "filament_deretraction_speed": [ + "30" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.5" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Generic" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "215" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP Ultra PLA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/HP Ultra PLA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..9a8e04481e --- /dev/null +++ b/resources/profiles/Creality/filament/HP Ultra PLA @Ender-3 V3 Plus-all.json @@ -0,0 +1,156 @@ +{ + "type": "filament", + "name": "HP Ultra PLA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "XLcCmwVIxpLHbh41", + "filament_id": "OFCJpR7a", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "19" + ], + "filament_density": [ + "1.23" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP Ultra PLA @Ender-3 V3-all.json b/resources/profiles/Creality/filament/HP Ultra PLA @Ender-3 V3-all.json new file mode 100644 index 0000000000..a60736724a --- /dev/null +++ b/resources/profiles/Creality/filament/HP Ultra PLA @Ender-3 V3-all.json @@ -0,0 +1,158 @@ +{ + "type": "filament", + "name": "HP Ultra PLA @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "2pSWHcC3tIRR7Si0", + "filament_id": "OFCJpR7a", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "19" + ], + "filament_density": [ + "1.23" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-ASA @CR-M4 SE-all.json b/resources/profiles/Creality/filament/HP-ASA @CR-M4 SE-all.json new file mode 100644 index 0000000000..fdfa38fb66 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-ASA @CR-M4 SE-all.json @@ -0,0 +1,178 @@ +{ + "type": "filament", + "name": "HP-ASA @CR-M4 SE-all", + "inherits": "fdm_filament_asa", + "from": "system", + "setting_id": "Dhco9jbb2yrYCMxM", + "filament_id": "OFPHLnoe", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "90" + ], + "cool_plate_temp_initial_layer": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "22" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "50" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.9" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "0.05" + ], + "filament_retraction_speed": [ + "50" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "90" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "filament_start_gcode": [ + "\" \"" + ], + "filament_end_gcode": [ + "\" \"" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "90", + "epoxy_resin_plate_temp_initial_layer": "90", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.038", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-M4 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-ASA @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/HP-ASA @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..54c20f21ee --- /dev/null +++ b/resources/profiles/Creality/filament/HP-ASA @Ender-3 V3 KE-all.json @@ -0,0 +1,148 @@ +{ + "type": "filament", + "name": "HP-ASA @Ender-3 V3 KE-all", + "inherits": "fdm_filament_asa", + "from": "system", + "setting_id": "P0pGa8GFCqqmTGut", + "filament_id": "OFPHLnoe", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_min_speed": [ + "70" + ], + "filament_cost": [ + "15" + ], + "filament_density": [ + "1.08" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "required_nozzle_HRC": [ + "0" + ], + "filament_start_gcode": [ + "; Filament gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-ASA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/HP-ASA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..53fbd9f7f7 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-ASA @Ender-3 V3 Plus-all.json @@ -0,0 +1,167 @@ +{ + "type": "filament", + "name": "HP-ASA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_asa", + "from": "system", + "setting_id": "MZoppE0tszjnZqV6", + "filament_id": "OFPHLnoe", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "70" + ], + "filament_cost": [ + "29" + ], + "filament_density": [ + "1.15" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "4" + ], + "temperature_vitrification": [ + "60" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "55", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-ASA @Ender-5 S1 Sonic-all.json b/resources/profiles/Creality/filament/HP-ASA @Ender-5 S1 Sonic-all.json new file mode 100644 index 0000000000..515811a9d9 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-ASA @Ender-5 S1 Sonic-all.json @@ -0,0 +1,135 @@ +{ + "type": "filament", + "name": "HP-ASA @Ender-5 S1 Sonic-all", + "inherits": "fdm_filament_asa", + "from": "system", + "setting_id": "hD7rLz57dF2bvLHX", + "filament_id": "OFPHLnoe", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "1" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "105" + ], + "textured_plate_temp_initial_layer": [ + "105" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 S1 Sonic 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-ASA @Ender-5 S1-all.json b/resources/profiles/Creality/filament/HP-ASA @Ender-5 S1-all.json new file mode 100644 index 0000000000..5ef42d7d01 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-ASA @Ender-5 S1-all.json @@ -0,0 +1,135 @@ +{ + "type": "filament", + "name": "HP-ASA @Ender-5 S1-all", + "inherits": "fdm_filament_asa", + "from": "system", + "setting_id": "ZJrXEEputl9C7y09", + "filament_id": "OFPHLnoe", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "1" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "105" + ], + "textured_plate_temp_initial_layer": [ + "105" + ], + "filament_start_gcode": [ + "; filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 S1 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-ASA @Sermoon M300-all.json b/resources/profiles/Creality/filament/HP-ASA @Sermoon M300-all.json new file mode 100644 index 0000000000..9727f398c7 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-ASA @Sermoon M300-all.json @@ -0,0 +1,170 @@ +{ + "type": "filament", + "name": "HP-ASA @Sermoon M300-all", + "inherits": "fdm_filament_asa", + "from": "system", + "setting_id": "Tcoza1m0aSFuXYRU", + "filament_id": "OFPHLnoe", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "fan_cooling_layer_time": [ + "40" + ], + "fan_max_speed": [ + "40" + ], + "filament_cost": [ + "29" + ], + "filament_density": [ + "1.15" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "10%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "60" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "100", + "customized_plate_temp_initial_layer": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @CR-M4 SE-all.json b/resources/profiles/Creality/filament/HP-TPU @CR-M4 SE-all.json new file mode 100644 index 0000000000..093c986a28 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @CR-M4 SE-all.json @@ -0,0 +1,173 @@ +{ + "type": "filament", + "name": "HP-TPU @CR-M4 SE-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "q7NL7g8NqH3KF0Mc", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "fan_min_speed": [ + "50" + ], + "filament_cost": [ + "22" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "3.5" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_start_gcode": [ + "\" \"" + ], + "filament_end_gcode": [ + "\" \"" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "pressure_advance": "0.015", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-M4 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Plus-all.json b/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Plus-all.json new file mode 100644 index 0000000000..afc6e6af80 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Plus-all.json @@ -0,0 +1,135 @@ +{ + "type": "filament", + "name": "HP-TPU @Ender-3 S1 Plus-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "veAmk7nWv4l2qBQx", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2.6" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "2" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "30" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Pro-all.json b/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Pro-all.json new file mode 100644 index 0000000000..ef40db949e --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Pro-all.json @@ -0,0 +1,135 @@ +{ + "type": "filament", + "name": "HP-TPU @Ender-3 S1 Pro-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "4HqXHKEb8wUypDHP", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2.6" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "2" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "30" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Sonic-all.json b/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Sonic-all.json new file mode 100644 index 0000000000..7040a22404 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1 Sonic-all.json @@ -0,0 +1,138 @@ +{ + "type": "filament", + "name": "HP-TPU @Ender-3 S1 Sonic-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "6cMRhVjiVJizc1d4", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2.6" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "2" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "30" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 Sonic 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1-all.json b/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1-all.json new file mode 100644 index 0000000000..1a86e73bcc --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @Ender-3 S1-all.json @@ -0,0 +1,135 @@ +{ + "type": "filament", + "name": "HP-TPU @Ender-3 S1-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "9z9LwDYycgCzsv0B", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "2.6" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "2" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "30" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 S1 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/HP-TPU @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..0a7561c378 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @Ender-3 V3 KE-all.json @@ -0,0 +1,157 @@ +{ + "type": "filament", + "name": "HP-TPU @Ender-3 V3 KE-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "CvqhoCm59l1UBZ1W", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "filament_cost": [ + "25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3.5" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/HP-TPU @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..0b032374d1 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @Ender-3 V3 Plus-all.json @@ -0,0 +1,155 @@ +{ + "type": "filament", + "name": "HP-TPU @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "IIOblAXYi6YakHFb", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "filament_density": [ + "1.26" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "215" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "nozzle_temperature_range_high": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "40", + "epoxy_resin_plate_temp_initial_layer": "40", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @Ender-3 V3-all.json b/resources/profiles/Creality/filament/HP-TPU @Ender-3 V3-all.json new file mode 100644 index 0000000000..4940476543 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @Ender-3 V3-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "HP-TPU @Ender-3 V3-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "dDNCATfMc696mMY7", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "35" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "filament_density": [ + "1.26" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "215" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "nozzle_temperature_range_high": [ + "220" + ], + "overhang_fan_threshold": [ + "50%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "35" + ], + "textured_plate_temp_initial_layer": [ + "35" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "40", + "epoxy_resin_plate_temp_initial_layer": "40", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @Ender-5 S1 Sonic-all.json b/resources/profiles/Creality/filament/HP-TPU @Ender-5 S1 Sonic-all.json new file mode 100644 index 0000000000..a3733d12a0 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @Ender-5 S1 Sonic-all.json @@ -0,0 +1,150 @@ +{ + "type": "filament", + "name": "HP-TPU @Ender-5 S1 Sonic-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "mS1SMgjJf9QxR3Pg", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3.2" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "1" + ], + "filament_retraction_length": [ + "2" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "30" + ], + "hot_plate_temp_initial_layer": [ + "30" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "30" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 S1 Sonic 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @Ender-5 S1-all.json b/resources/profiles/Creality/filament/HP-TPU @Ender-5 S1-all.json new file mode 100644 index 0000000000..3e6adfcf76 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @Ender-5 S1-all.json @@ -0,0 +1,147 @@ +{ + "type": "filament", + "name": "HP-TPU @Ender-5 S1-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "kSfY6xweiROqM97E", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3.2" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "1" + ], + "filament_retraction_length": [ + "2" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "30" + ], + "hot_plate_temp_initial_layer": [ + "30" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "30" + ], + "textured_plate_temp_initial_layer": [ + "30" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 S1 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/HP-TPU @Sermoon M300-all.json b/resources/profiles/Creality/filament/HP-TPU @Sermoon M300-all.json new file mode 100644 index 0000000000..17e040b593 --- /dev/null +++ b/resources/profiles/Creality/filament/HP-TPU @Sermoon M300-all.json @@ -0,0 +1,172 @@ +{ + "type": "filament", + "name": "HP-TPU @Sermoon M300-all", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "Gsl2ZOm6ShvzkqSv", + "filament_id": "OFGcMkEB", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "35" + ], + "filament_density": [ + "1.26" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "3" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "40" + ], + "hot_plate_temp_initial_layer": [ + "40" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "10" + ], + "textured_plate_temp": [ + "40" + ], + "textured_plate_temp_initial_layer": [ + "40" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "40", + "customized_plate_temp_initial_layer": "40", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.4", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle", + "Creality Sermoon M300 0.6 nozzle", + "Creality Sermoon M300 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper ABS @CR-M4 SE-all.json b/resources/profiles/Creality/filament/Hyper ABS @CR-M4 SE-all.json new file mode 100644 index 0000000000..11bfc18d1f --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper ABS @CR-M4 SE-all.json @@ -0,0 +1,178 @@ +{ + "type": "filament", + "name": "Hyper ABS @CR-M4 SE-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "hBZ6ud06hTANqh4L", + "filament_id": "OF8GnyFU", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "90" + ], + "cool_plate_temp_initial_layer": [ + "90" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "fan_cooling_layer_time": [ + "100" + ], + "fan_max_speed": [ + "60" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "22" + ], + "filament_density": [ + "1.24" + ], + "filament_deretraction_speed": [ + "50" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.9" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_minimum_travel": [ + "0.05" + ], + "filament_retraction_speed": [ + "50" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "90" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "15" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "filament_start_gcode": [ + "\" \"" + ], + "filament_end_gcode": [ + "\" \"" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "90", + "epoxy_resin_plate_temp_initial_layer": "90", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-M4 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper ABS @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Hyper ABS @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..276d880338 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper ABS @Ender-3 V3 Plus-all.json @@ -0,0 +1,157 @@ +{ + "type": "filament", + "name": "Hyper ABS @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "BjYVxAcG7vcGP88r", + "filament_id": "OF8GnyFU", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "fan_min_speed": [ + "70" + ], + "filament_cost": [ + "22" + ], + "filament_density": [ + "1.08" + ], + "filament_deretraction_speed": [ + "0" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.926" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "0" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "Normal Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "230" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper ABS @Sermoon M300-all.json b/resources/profiles/Creality/filament/Hyper ABS @Sermoon M300-all.json new file mode 100644 index 0000000000..fb1d196317 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper ABS @Sermoon M300-all.json @@ -0,0 +1,164 @@ +{ + "type": "filament", + "name": "Hyper ABS @Sermoon M300-all", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "gqPXRCOcnlERlcv2", + "filament_id": "OF8GnyFU", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "80" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "fan_max_speed": [ + "60" + ], + "filament_cost": [ + "22" + ], + "filament_density": [ + "1.08" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "80", + "customized_plate_temp_initial_layer": "80", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.03", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..e8f0178f0b --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 KE-all.json @@ -0,0 +1,147 @@ +{ + "type": "filament", + "name": "Hyper L-W PLA @Ender-3 V3 KE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "8TcC8qLzV6pt9D4k", + "filament_id": "OF70zbGS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "fan_min_speed": [ + "60" + ], + "filament_cost": [ + "48.9" + ], + "filament_density": [ + "1.21" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.75" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.6" + ], + "filament_retraction_minimum_travel": [ + "3" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.1", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..08fa830940 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 Plus-all.json @@ -0,0 +1,150 @@ +{ + "type": "filament", + "name": "Hyper L-W PLA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "o8xXZkmH5KA2P9Xu", + "filament_id": "OF70zbGS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "fan_min_speed": [ + "60" + ], + "filament_cost": [ + "48.9" + ], + "filament_density": [ + "1.21" + ], + "filament_deretraction_speed": [ + "30" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.75" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "80", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,200],[10.0,220],[12.0,220]]", + "pressure_advance": "0.1", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 SE-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 SE-all.json new file mode 100644 index 0000000000..8d4bf4db63 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3 SE-all.json @@ -0,0 +1,153 @@ +{ + "type": "filament", + "name": "Hyper L-W PLA @Ender-3 V3 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "stFRO2ehiEi0mDAG", + "filament_id": "OF70zbGS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "fan_min_speed": [ + "60" + ], + "filament_cost": [ + "48.9" + ], + "filament_density": [ + "1.21" + ], + "filament_deretraction_speed": [ + "15" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.75" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.6" + ], + "filament_retraction_minimum_travel": [ + "3" + ], + "filament_retraction_speed": [ + "15" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.1", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3-all.json new file mode 100644 index 0000000000..7de5499bb1 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper L-W PLA @Ender-3 V3-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "Hyper L-W PLA @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "eP8wEl79mHeBddgE", + "filament_id": "OF70zbGS", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "fan_min_speed": [ + "60" + ], + "filament_cost": [ + "48.9" + ], + "filament_density": [ + "1.21" + ], + "filament_deretraction_speed": [ + "30" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.75" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.6" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.1", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..1164bcd6d1 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 KE-all.json @@ -0,0 +1,157 @@ +{ + "type": "filament", + "name": "Hyper Luminous @Ender-3 V3 KE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "4UH3F59EjQKbtyrx", + "filament_id": "OFC1PzXz", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "28.9" + ], + "filament_density": [ + "1.3" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "21" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "95%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "1" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "1.5" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + " ; filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "40", + "epoxy_resin_plate_temp_initial_layer": "40", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[1.0,200],[1.2,200],[1.3,220]]", + "pressure_advance": "0.06", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..51f3f30d01 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 Plus-all.json @@ -0,0 +1,159 @@ +{ + "type": "filament", + "name": "Hyper Luminous @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "RF40zBxzPrRJqzOX", + "filament_id": "OFC1PzXz", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "28.9" + ], + "filament_density": [ + "1.3" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "95%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "1.5" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + " ; filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "65", + "customized_plate_temp_initial_layer": "65", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "55", + "epoxy_resin_plate_temp_initial_layer": "55", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,190],[1.0,190],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 SE-all.json b/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 SE-all.json new file mode 100644 index 0000000000..c7c8a9afe8 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3 SE-all.json @@ -0,0 +1,157 @@ +{ + "type": "filament", + "name": "Hyper Luminous @Ender-3 V3 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "ROda7wbinyGRYcyj", + "filament_id": "OFC1PzXz", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "28.9" + ], + "filament_density": [ + "1.3" + ], + "filament_deretraction_speed": [ + "15" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "1" + ], + "filament_retraction_speed": [ + "15" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + " ; filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "40", + "epoxy_resin_plate_temp_initial_layer": "40", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[1.0,200],[1.2,200],[1.3,220]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3-all.json new file mode 100644 index 0000000000..a7f7c3d632 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Luminous @Ender-3 V3-all.json @@ -0,0 +1,159 @@ +{ + "type": "filament", + "name": "Hyper Luminous @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "ULJWbH3WIta6qv0f", + "filament_id": "OFC1PzXz", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "28.9" + ], + "filament_density": [ + "1.3" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.99" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "95%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + " ; filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "65", + "customized_plate_temp_initial_layer": "65", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "55", + "epoxy_resin_plate_temp_initial_layer": "55", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,190],[1.0,190],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Luminous @Sermoon M300-all.json b/resources/profiles/Creality/filament/Hyper Luminous @Sermoon M300-all.json new file mode 100644 index 0000000000..64634f829e --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Luminous @Sermoon M300-all.json @@ -0,0 +1,162 @@ +{ + "type": "filament", + "name": "Hyper Luminous @Sermoon M300-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "dzNozpc70jsBlJvf", + "filament_id": "OFC1PzXz", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "28.9" + ], + "filament_density": [ + "1.3" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.99" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "21" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + " ; filament end gcode" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "dont_slow_down_outer_wall": "0", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "40", + "epoxy_resin_plate_temp_initial_layer": "40", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,210],[1.2,210],[1.5,220]]", + "pressure_advance": "0.042", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle", + "Creality Sermoon M300 0.6 nozzle", + "Creality Sermoon M300 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..b98f0e166c --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 KE-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "Hyper Marble @Ender-3 V3 KE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "WPGA61PBfz4GtHD1", + "filament_id": "OFLzx3J4", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "23.9" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "2.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "3" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.8,200],[1.0,200],[1.3,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..2e9dff0e3f --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 Plus-all.json @@ -0,0 +1,159 @@ +{ + "type": "filament", + "name": "Hyper Marble @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "d2S4P7eOqBldwbK4", + "filament_id": "OFLzx3J4", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "23.9" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "customized_plate_temp": "0", + "customized_plate_temp_initial_layer": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_temp_graph": "[[0.8,200],[1.0,200],[1.3,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 SE-all.json b/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 SE-all.json new file mode 100644 index 0000000000..b4f8a17103 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3 SE-all.json @@ -0,0 +1,163 @@ +{ + "type": "filament", + "name": "Hyper Marble @Ender-3 V3 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "NzP0zuVF8V6fxJJn", + "filament_id": "OFLzx3J4", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_cost": [ + "23.9" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "15" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.5" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "15" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "3" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.8,200],[1.0,200],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3-all.json new file mode 100644 index 0000000000..c848558368 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Marble @Ender-3 V3-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "Hyper Marble @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "QGUNxNqtDRpzMjpQ", + "filament_id": "OFLzx3J4", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "23.9" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_special_cds_fan_speed": "100", + "customized_plate_temp": "0", + "customized_plate_temp_initial_layer": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.8,200],[1.0,200],[1.3,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Marble @Sermoon M300-all.json b/resources/profiles/Creality/filament/Hyper Marble @Sermoon M300-all.json new file mode 100644 index 0000000000..5a491beeb5 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Marble @Sermoon M300-all.json @@ -0,0 +1,162 @@ +{ + "type": "filament", + "name": "Hyper Marble @Sermoon M300-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "W2KijERiDCLzi6j7", + "filament_id": "OFLzx3J4", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "23.9" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "1", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,200],[1.0,200],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PETG @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Hyper PETG @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..c429ec204b --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PETG @Ender-3 V3 Plus-all.json @@ -0,0 +1,164 @@ +{ + "type": "filament", + "name": "Hyper PETG @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "n2NyHtXVREV7h9YJ", + "filament_id": "OFujZSdh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "60" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.28" + ], + "filament_deretraction_speed": [ + "30" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_retract_before_wipe": [ + "100" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_z_hop_types": [ + "Auto Lift" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "260" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "temperature_vitrification": [ + "75" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.07", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PETG @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Hyper PETG @Ender-3 V3-all.json new file mode 100644 index 0000000000..c317632683 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PETG @Ender-3 V3-all.json @@ -0,0 +1,154 @@ +{ + "type": "filament", + "name": "Hyper PETG @Ender-3 V3-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "Plfak7mxwk9wmWdb", + "filament_id": "OFujZSdh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "0" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.23" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe_distance": [ + "2" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "75" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "70", + "epoxy_resin_plate_temp_initial_layer": "70", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,230],[10.0,240],[20.0,250]]", + "pressure_advance": "0.07", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PETG @Sermoon M300-all.json b/resources/profiles/Creality/filament/Hyper PETG @Sermoon M300-all.json new file mode 100644 index 0000000000..71818258ee --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PETG @Sermoon M300-all.json @@ -0,0 +1,148 @@ +{ + "type": "filament", + "name": "Hyper PETG @Sermoon M300-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "0fM5QG57SdQuGQM2", + "filament_id": "OFujZSdh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "25" + ], + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_retract_before_wipe": [ + "100" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "75" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,240],[1.0,240],[1.2,250]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @CR-10 SE-all.json b/resources/profiles/Creality/filament/Hyper PLA @CR-10 SE-all.json new file mode 100644 index 0000000000..779216814e --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @CR-10 SE-all.json @@ -0,0 +1,146 @@ +{ + "type": "filament", + "name": "Hyper PLA @CR-10 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "mlEWV69IgZ6iC7VM", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "30" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-10 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @CR-M4 SE-all.json b/resources/profiles/Creality/filament/Hyper PLA @CR-M4 SE-all.json new file mode 100644 index 0000000000..c889c334f0 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @CR-M4 SE-all.json @@ -0,0 +1,143 @@ +{ + "type": "filament", + "name": "Hyper PLA @CR-M4 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "UQQt5UseRcOUsmvI", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_cost": [ + "22" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "100" + ], + "filament_start_gcode": [ + "\" \"" + ], + "filament_end_gcode": [ + "\" \"" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "45", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[1.0,190],[5.0,200],[8.0,210]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality CR-M4 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Plus-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Plus-all.json new file mode 100644 index 0000000000..75b9a5bd0c --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Plus-all.json @@ -0,0 +1,120 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-3 S1 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "ybueJQhMk3WJ5oYu", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "required_nozzle_HRC": [ + "0" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "20", + "compatible_printers": [ + "Creality Ender-3 S1 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Pro-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Pro-all.json new file mode 100644 index 0000000000..75e9f7fd4d --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Pro-all.json @@ -0,0 +1,120 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-3 S1 Pro-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "N6F4Q7gHMILWifkd", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "required_nozzle_HRC": [ + "0" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "20", + "compatible_printers": [ + "Creality Ender-3 S1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Sonic-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Sonic-all.json new file mode 100644 index 0000000000..c04c61f8d0 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1 Sonic-all.json @@ -0,0 +1,126 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-3 S1 Sonic-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "tAEqUR1QHm0yXOqz", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "20", + "compatible_printers": [ + "Creality Ender-3 S1 Sonic 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1-all.json new file mode 100644 index 0000000000..a96d497009 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 S1-all.json @@ -0,0 +1,123 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-3 S1-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "XpoXBsTY1UIsShcD", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "20", + "compatible_printers": [ + "Creality Ender-3 S1 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..675bff1aca --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 KE-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-3 V3 KE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "K48vhJIIKA0gOqrT", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "30" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "5" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[2.0,205],[4.0,215],[7.0,220]]", + "pressure_advance": "0.044", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..93d0e055f5 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 Plus-all.json @@ -0,0 +1,155 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "KPU9W1pTRZLW2mcv", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "30" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "0" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "1" + ], + "filament_retraction_length": [ + "0.6" + ], + "filament_retraction_minimum_travel": [ + "1" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "overhang_fan_threshold": [ + "0%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "80", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,200],[10.0,220],[12.0,220]]", + "pressure_advance": "0.044", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 SE-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 SE-all.json new file mode 100644 index 0000000000..8a8dc7c0b6 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3 SE-all.json @@ -0,0 +1,166 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-3 V3 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "hPCZJwKNFERgGwow", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_cost": [ + "30" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "0.2" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature": [ + "190" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "6" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "100" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3-all.json new file mode 100644 index 0000000000..85fd1e25db --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-3 V3-all.json @@ -0,0 +1,156 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "uaxsRKRO6rkA4KQs", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "30" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-3-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-3-all.json new file mode 100644 index 0000000000..f9e7b029ea --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-3-all.json @@ -0,0 +1,123 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "pkEk3I3u5ULuHMR9", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "0" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "200" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-5 S1 Sonic-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-5 S1 Sonic-all.json new file mode 100644 index 0000000000..20aec231bd --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-5 S1 Sonic-all.json @@ -0,0 +1,126 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-5 S1 Sonic-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "Wz2JrEOCCMM8TzMD", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 S1 Sonic 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Ender-5 S1-all.json b/resources/profiles/Creality/filament/Hyper PLA @Ender-5 S1-all.json new file mode 100644 index 0000000000..6a0aa5faf3 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Ender-5 S1-all.json @@ -0,0 +1,123 @@ +{ + "type": "filament", + "name": "Hyper PLA @Ender-5 S1-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "6AVwYT9KJufuPaZ7", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "nozzle_temperature": [ + "200" + ], + "nozzle_temperature_initial_layer": [ + "190" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.5,200],[7.0,240]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-5 S1 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Sermoon D3 Pro-all.json b/resources/profiles/Creality/filament/Hyper PLA @Sermoon D3 Pro-all.json new file mode 100644 index 0000000000..b423223437 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Sermoon D3 Pro-all.json @@ -0,0 +1,150 @@ +{ + "type": "filament", + "name": "Hyper PLA @Sermoon D3 Pro-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "Rh1eymlYH1u6IvzP", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "30" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "temperature_vitrification": [ + "110" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon D3 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Sermoon D3-all.json b/resources/profiles/Creality/filament/Hyper PLA @Sermoon D3-all.json new file mode 100644 index 0000000000..6cd99992e9 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Sermoon D3-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "Hyper PLA @Sermoon D3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "di2xwPCjXAzsNHQ7", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "30" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon D3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Sermoon M300-all.json b/resources/profiles/Creality/filament/Hyper PLA @Sermoon M300-all.json new file mode 100644 index 0000000000..18d709497d --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Sermoon M300-all.json @@ -0,0 +1,159 @@ +{ + "type": "filament", + "name": "Hyper PLA @Sermoon M300-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "DmU0yWAIDK8EOaS3", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.6" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,200],[1.0,200],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle", + "Creality Sermoon M300 0.6 nozzle", + "Creality Sermoon M300 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA @Sermoon V1 Pro-all.json b/resources/profiles/Creality/filament/Hyper PLA @Sermoon V1 Pro-all.json new file mode 100644 index 0000000000..f433ffcde9 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA @Sermoon V1 Pro-all.json @@ -0,0 +1,151 @@ +{ + "type": "filament", + "name": "Hyper PLA @Sermoon V1 Pro-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "Q7HYM3Yf7KcL6GeF", + "filament_id": "OFCZsqXg", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "30" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "1" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon V1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..5935ef47cb --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V3 Plus-all.json @@ -0,0 +1,153 @@ +{ + "type": "filament", + "name": "Hyper PLA-CF @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "yok46e0rKj3i5ybi", + "filament_id": "OFTnWzBs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "32" + ], + "filament_density": [ + "1.27" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V3-all.json new file mode 100644 index 0000000000..b9d47063e9 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @Ender-3 V3-all.json @@ -0,0 +1,171 @@ +{ + "type": "filament", + "name": "Hyper PLA-CF @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "fpFhOw0DIpQqzbiC", + "filament_id": "OFTnWzBs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "32" + ], + "filament_density": [ + "1.27" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "nozzle_temperature": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "35", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.02", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @Sermoon D3 Pro-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @Sermoon D3 Pro-all.json new file mode 100644 index 0000000000..00d3920a24 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @Sermoon D3 Pro-all.json @@ -0,0 +1,150 @@ +{ + "type": "filament", + "name": "Hyper PLA-CF @Sermoon D3 Pro-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "CAYb6ctqqPxeVUG1", + "filament_id": "OFTnWzBs", + "instantiation": "true", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "32" + ], + "filament_density": [ + "1.27" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "0", + "filament_retract_lift_below": "0", + "filament_retract_lift_enforce": "All Surfaces", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon D3 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper PLA-CF @Sermoon M300-all.json b/resources/profiles/Creality/filament/Hyper PLA-CF @Sermoon M300-all.json new file mode 100644 index 0000000000..1a73001297 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper PLA-CF @Sermoon M300-all.json @@ -0,0 +1,165 @@ +{ + "type": "filament", + "name": "Hyper PLA-CF @Sermoon M300-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "NlVNH5P2LBuXEmLT", + "filament_id": "OFTnWzBs", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "32" + ], + "filament_density": [ + "1.27" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "23" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "80%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_type": [ + "PLA-CF" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,190],[1.0,190],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..e9c60f83e1 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 KE-all.json @@ -0,0 +1,154 @@ +{ + "type": "filament", + "name": "Hyper Stardust @Ender-3 V3 KE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "pq5xoNBva9Vik7Rv", + "filament_id": "OFXnToSX", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "26.9" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "2" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "3" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.7,200],[0.8,200],[1.0,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..a9dcb9a7a1 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 Plus-all.json @@ -0,0 +1,156 @@ +{ + "type": "filament", + "name": "Hyper Stardust @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "Sx2y90keaEJncyPw", + "filament_id": "OFXnToSX", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "26.9" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "customized_plate_temp": "0", + "customized_plate_temp_initial_layer": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_temp_graph": "[[0.8,200],[1.0,200],[1.3,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 SE-all.json b/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 SE-all.json new file mode 100644 index 0000000000..17aeff1519 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3 SE-all.json @@ -0,0 +1,157 @@ +{ + "type": "filament", + "name": "Hyper Stardust @Ender-3 V3 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "P2HxpxRxL0G4E1nR", + "filament_id": "OFXnToSX", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_cost": [ + "26.9" + ], + "filament_deretraction_speed": [ + "15" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "2" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "15" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "3" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.8,200],[1.0,200],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3-all.json new file mode 100644 index 0000000000..472a1aa82a --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Stardust @Ender-3 V3-all.json @@ -0,0 +1,157 @@ +{ + "type": "filament", + "name": "Hyper Stardust @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "pnJsYSX88wTBQ4jV", + "filament_id": "OFXnToSX", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "80" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "26.9" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "0.4" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_special_cds_fan_speed": "100", + "customized_plate_temp": "0", + "customized_plate_temp_initial_layer": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "epoxy_resin_plate_temp": "50", + "epoxy_resin_plate_temp_initial_layer": "50", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.8,200],[1.0,200],[1.3,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Hyper Stardust @Sermoon M300-all.json b/resources/profiles/Creality/filament/Hyper Stardust @Sermoon M300-all.json new file mode 100644 index 0000000000..a3dc2ea646 --- /dev/null +++ b/resources/profiles/Creality/filament/Hyper Stardust @Sermoon M300-all.json @@ -0,0 +1,159 @@ +{ + "type": "filament", + "name": "Hyper Stardust @Sermoon M300-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "LbpYWARON1ZTN1lF", + "filament_id": "OFXnToSX", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "26.9" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "10" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "1", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,200],[1.0,200],[1.2,220]]", + "pressure_advance": "0.04", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..0df433e3db --- /dev/null +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 KE-all.json @@ -0,0 +1,120 @@ +{ + "type": "filament", + "name": "Soleyin Basic PETG @Ender-3 V3 KE-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "eQu3UILWB8OQPf1X", + "instantiation": "true", + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "15.9" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_max_volumetric_speed": [ + "9" + ], + "filament_retract_before_wipe": [ + "70%" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "2" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe_distance": [ + "1" + ], + "filament_z_hop": [ + "0.4" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "chamber_temperature": "35", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "material_flow_temp_graph": "[[1.0,230],[1.2,230],[1.3,240]]", + "pressure_advance": "0.09", + "default_filament_colour": "\"\"", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ], + "filament_id": "OFBLktDy" +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..cfcaf8dcd4 --- /dev/null +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 Plus-all.json @@ -0,0 +1,122 @@ +{ + "type": "filament", + "name": "Soleyin Basic PETG @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "uYReKb57FZWbcn66", + "instantiation": "true", + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "80" + ], + "filament_cost": [ + "15.9" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_retract_before_wipe": [ + "70%" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe_distance": [ + "1" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_layer_time": [ + "14" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "chamber_temperature": "35", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "material_flow_temp_graph": "[[0.5,220],[1.0,220],[1.2,240]]", + "pressure_advance": "0.076", + "default_filament_colour": "\"\"", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ], + "filament_id": "OFBLktDy" +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 SE-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 SE-all.json new file mode 100644 index 0000000000..07826b7931 --- /dev/null +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3 SE-all.json @@ -0,0 +1,105 @@ +{ + "type": "filament", + "name": "Soleyin Basic PETG @Ender-3 V3 SE-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "IkpZHqKxz3D4DM8n", + "instantiation": "true", + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "15.9" + ], + "filament_density": [ + "1.25" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "chamber_temperature": "35", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "material_flow_temp_graph": "[[0.5,230],[1.0,230],[1.2,240]]", + "pressure_advance": "0.02", + "default_filament_colour": "\"\"", + "compatible_printers": [ + "Creality Ender-3 V3 SE 0.4 nozzle" + ], + "filament_id": "OFBLktDy" +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3-all.json new file mode 100644 index 0000000000..6cb9b5389d --- /dev/null +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @Ender-3 V3-all.json @@ -0,0 +1,119 @@ +{ + "type": "filament", + "name": "Soleyin Basic PETG @Ender-3 V3-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "VFPEq8OL7ibFlpNn", + "instantiation": "true", + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "90" + ], + "fan_min_speed": [ + "80" + ], + "filament_cost": [ + "15.9" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "30" + ], + "filament_flow_ratio": [ + "0.99" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_retraction_speed": [ + "30" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe_distance": [ + "1.5" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "240" + ], + "nozzle_temperature_initial_layer": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "90" + ], + "overhang_fan_threshold": [ + "25%" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "slow_down_layer_time": [ + "14" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "chamber_temperature": "35", + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "material_flow_temp_graph": "[[0.5,220],[1.0,220],[1.2,240]]", + "pressure_advance": "0.076", + "default_filament_colour": "\"\"", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ], + "filament_id": "OFBLktDy" +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Basic PETG @Sermoon M300-all.json b/resources/profiles/Creality/filament/Soleyin Basic PETG @Sermoon M300-all.json new file mode 100644 index 0000000000..ee7263427c --- /dev/null +++ b/resources/profiles/Creality/filament/Soleyin Basic PETG @Sermoon M300-all.json @@ -0,0 +1,124 @@ +{ + "type": "filament", + "name": "Soleyin Basic PETG @Sermoon M300-all", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "oKRNh6oI0CNy6guE", + "instantiation": "true", + "complete_print_exhaust_fan_speed": [ + "0" + ], + "cool_plate_temp": [ + "70" + ], + "cool_plate_temp_initial_layer": [ + "70" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "40" + ], + "filament_cost": [ + "15.9" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_retraction_minimum_travel": [ + "1" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_type": [ + "PETG" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop_types": [ + "Slope Lift" + ], + "hot_plate_temp": [ + "70" + ], + "hot_plate_temp_initial_layer": [ + "70" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_speed": [ + "80" + ], + "overhang_fan_threshold": [ + "25%" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ], + "customized_plate_temp": "70", + "customized_plate_temp_initial_layer": "70", + "enable_pressure_advance": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "material_flow_temp_graph": "[[0.5,230],[1.0,230],[1.2,250]]", + "pressure_advance": "0.075", + "default_filament_colour": "\"\"", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle", + "Creality Sermoon M300 0.6 nozzle", + "Creality Sermoon M300 0.8 nozzle" + ], + "filament_id": "OFBLktDy" +} \ No newline at end of file diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 KE-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 KE-all.json new file mode 100644 index 0000000000..bd347fcae8 --- /dev/null +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 KE-all.json @@ -0,0 +1,160 @@ +{ + "type": "filament", + "name": "Soleyin Ultra PLA @Ender-3 V3 KE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "M9hiEdBSP3W0lVeo", + "filament_id": "OF02UAVh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "50" + ], + "filament_cost": [ + "6" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "40" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "100%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.6" + ], + "filament_retraction_minimum_travel": [ + "1" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[1.0,200],[1.2,200],[1.3,220]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 KE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 Plus-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 Plus-all.json new file mode 100644 index 0000000000..cc3c80c511 --- /dev/null +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 Plus-all.json @@ -0,0 +1,165 @@ +{ + "type": "filament", + "name": "Soleyin Ultra PLA @Ender-3 V3 Plus-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "deiJHFWuGggB0V8x", + "filament_id": "OF02UAVh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "6" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "65", + "epoxy_resin_plate_temp_initial_layer": "65", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "pressure_advance": "0.066", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.4 nozzle", + "Creality Ender-3 V3 Plus 0.6 nozzle", + "Creality Ender-3 V3 Plus 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 SE-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 SE-all.json new file mode 100644 index 0000000000..daceb58f57 --- /dev/null +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3 SE-all.json @@ -0,0 +1,163 @@ +{ + "type": "filament", + "name": "Soleyin Ultra PLA @Ender-3 V3 SE-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "XR1hw32yGPSpPq7H", + "filament_id": "OF02UAVh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "50" + ], + "cool_plate_temp_initial_layer": [ + "50" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_cost": [ + "6" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "15" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "90%" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "15" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + ";filament start gcode" + ], + "filament_end_gcode": [ + ";filament end gcode " + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "60", + "customized_plate_temp_initial_layer": "60", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "60", + "epoxy_resin_plate_temp_initial_layer": "60", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[1.0,200],[1.1,200],[1.2,220]]", + "pressure_advance": "0.05", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 SE 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3-all.json new file mode 100644 index 0000000000..7e3a6ff4ca --- /dev/null +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Ender-3 V3-all.json @@ -0,0 +1,166 @@ +{ + "type": "filament", + "name": "Soleyin Ultra PLA @Ender-3 V3-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "TTnVw4dyyvrEM4Pj", + "filament_id": "OF02UAVh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "65" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "filament_cost": [ + "6" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "70" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "overhang_fan_threshold": [ + "25%" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "8" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_start_gcode": [ + ";filament start gcode\n" + ], + "filament_end_gcode": [ + ";filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "100", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "1", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "65", + "epoxy_resin_plate_temp_initial_layer": "65", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "\"120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6\"", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210], [10.0,220], [12.0,230]]", + "pressure_advance": "0.066", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Ender-3 V3 0.4 nozzle", + "Creality Ender-3 V3 0.6 nozzle", + "Creality Ender-3 V3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Creality/filament/Soleyin Ultra PLA @Sermoon M300-all.json b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Sermoon M300-all.json new file mode 100644 index 0000000000..3c1aac03f4 --- /dev/null +++ b/resources/profiles/Creality/filament/Soleyin Ultra PLA @Sermoon M300-all.json @@ -0,0 +1,166 @@ +{ + "type": "filament", + "name": "Soleyin Ultra PLA @Sermoon M300-all", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "gZsP2JRQ3MnRJfLx", + "filament_id": "OF02UAVh", + "instantiation": "true", + "activate_air_filtration": [ + "0" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "60" + ], + "eng_plate_temp": [ + "50" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "filament_cost": [ + "6" + ], + "filament_density": [ + "1.25" + ], + "filament_deretraction_speed": [ + "nil" + ], + "filament_diameter": [ + "1.75" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_is_support": [ + "0" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_minimal_purge_on_wipe_tower": [ + "15" + ], + "filament_retract_before_wipe": [ + "nil" + ], + "filament_retract_restart_extra": [ + "nil" + ], + "filament_retract_when_changing_layer": [ + "nil" + ], + "filament_retraction_length": [ + "nil" + ], + "filament_retraction_minimum_travel": [ + "nil" + ], + "filament_retraction_speed": [ + "nil" + ], + "filament_soluble": [ + "0" + ], + "filament_vendor": [ + "Creality" + ], + "filament_wipe": [ + "nil" + ], + "filament_wipe_distance": [ + "nil" + ], + "filament_z_hop": [ + "nil" + ], + "filament_z_hop_types": [ + "nil" + ], + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "50" + ], + "hot_plate_temp_initial_layer": [ + "50" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "required_nozzle_HRC": [ + "0" + ], + "slow_down_layer_time": [ + "14" + ], + "slow_down_min_speed": [ + "20" + ], + "temperature_vitrification": [ + "70" + ], + "textured_plate_temp": [ + "50" + ], + "textured_plate_temp_initial_layer": [ + "50" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (layer_z > first_layer_height) }\nM104 S[nozzle_temperature]\n{else} \nM104 S[first_layer_temperature]\n{endif}" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "activate_chamber_temp_control": "0", + "chamber_temperature": "0", + "cool_cds_fan_start_at_height": "0.5", + "cool_special_cds_fan_speed": "0", + "customized_plate_temp": "50", + "customized_plate_temp_initial_layer": "50", + "default_filament_colour": "\"\"", + "enable_overhang_bridge_fan": "1", + "enable_pressure_advance": "0", + "enable_special_area_additional_cooling_fan": "0", + "epoxy_resin_plate_temp": "0", + "epoxy_resin_plate_temp_initial_layer": "0", + "filament_cooling_final_speed": "3.4", + "filament_cooling_initial_speed": "2.2", + "filament_cooling_moves": "4", + "filament_loading_speed": "28", + "filament_loading_speed_start": "3", + "filament_multitool_ramming": "0", + "filament_multitool_ramming_flow": "10", + "filament_multitool_ramming_volume": "10", + "filament_notes": "\"\"", + "filament_ramming_parameters": "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6", + "filament_retract_lift_above": "nil", + "filament_retract_lift_below": "nil", + "filament_retract_lift_enforce": "nil", + "filament_shrink": "100%", + "filament_shrinkage_compensation_z": "100%", + "filament_toolchange_delay": "0", + "filament_unloading_speed": "90", + "filament_unloading_speed_start": "100", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[0.5,205],[1.0,205],[1.2,220]]", + "pressure_advance": "0.06", + "support_material_interface_fan_speed": "-1", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ] +} diff --git a/resources/profiles/Creality/machine/Creality CR-10 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 0.4 nozzle.json new file mode 100644 index 0000000000..5da636490c --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-10 0.4 nozzle.json @@ -0,0 +1,117 @@ +{ + "type": "machine", + "name": "Creality CR-10 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "tsVnTn07ACdoHqPV", + "instantiation": "true", + "printer_model": "Creality CR-10", + "printer_structure": "i3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "default_print_profile": "0.20mm Standard @Creality CR-10 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "400", + "extruder_clearance_height_to_rod": "33", + "extruder_clearance_radius": "70", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit
\nG1 E-2 Z1 F2400 ;Retract and raise Z
\nG1 X5 Y5 F3000 ;Wipe out
\nG1 Z10 ;Raise Z more
\nG90 ;Absolute positionning

\nG1 X0 Y0 ;Present print
\nM106 S0 ;Turn-off fan
\nM104 S0 ;Turn-off hotend
\nM140 S0 ;Turn-off bed

\nM84 X Y E ;Disable all steppers but Z
", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000,5000", + "machine_max_acceleration_extruding": "500,500", + "machine_max_acceleration_retracting": "500,1000", + "machine_max_acceleration_travel": "500,500", + "machine_max_acceleration_x": "500,500", + "machine_max_acceleration_y": "500,500", + "machine_max_acceleration_z": "500,500", + "machine_max_jerk_e": "5,5", + "machine_max_jerk_x": "10,8", + "machine_max_jerk_y": "10,8", + "machine_max_jerk_z": "0.4,0.4", + "machine_max_speed_e": "50,60", + "machine_max_speed_x": "500,500", + "machine_max_speed_y": "500,500", + "machine_max_speed_z": "10,10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25 ;pause print", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,300x0,300x300,0x300", + "printable_height": "400", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "CR-PLA @CR-10-all" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "70%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "0.8", + "retraction_minimum_travel": "1", + "retraction_speed": "40", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Auto Lift" +} diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json index 9dc1ae8962..b209783664 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.2 nozzle.json @@ -116,7 +116,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @CR-10-all" ], "machine_start_gcode": "M220 S100 ;Reset feed rate \nM221 S100 ;Reset flow rate \n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp\nG28 ;Home \nG92 E0 ;Reset extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position \nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positioning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z3 ;Raise Z more \nG90 ;Absolute positioning \nG1 X2 Y218 F3000 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.4 nozzle.json index 12805d5e86..d682c70090 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.4 nozzle.json @@ -116,7 +116,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @CR-10-all" ], "machine_start_gcode": "M220 S100 ;Reset feed rate \nM221 S100 ;Reset flow rate \n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp\nG28 ;Home \nG92 E0 ;Reset extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position \nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positioning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z3 ;Raise Z more \nG90 ;Absolute positioning \nG1 X2 Y218 F3000 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json index 60ae6d2db8..b854582917 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.6 nozzle.json @@ -116,7 +116,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @CR-10-all" ], "machine_start_gcode": "M220 S100 ;Reset feed rate \nM221 S100 ;Reset flow rate \n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp\nG28 ;Home \nG92 E0 ;Reset extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position \nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positioning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z3 ;Raise Z more \nG90 ;Absolute positioning \nG1 X2 Y218 F3000 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json index 1ae4e24163..cba09d49dd 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE 0.8 nozzle.json @@ -116,7 +116,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @CR-10-all" ], "machine_start_gcode": "M220 S100 ;Reset feed rate \nM221 S100 ;Reset flow rate \n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp\nG28 ;Home \nG92 E0 ;Reset extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position \nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positioning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z3 ;Raise Z more \nG90 ;Absolute positioning \nG1 X2 Y218 F3000 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \nM84 X Y E ;Disable all steppers but Z", diff --git a/resources/profiles/Creality/machine/Creality CR-10 SE.json b/resources/profiles/Creality/machine/Creality CR-10 SE.json index 56af1ec8a6..98e5738a65 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 SE.json +++ b/resources/profiles/Creality/machine/Creality CR-10 SE.json @@ -8,5 +8,5 @@ "bed_model": "creality_cr10se_buildplate_model.stl", "bed_texture": "creality_cr10se_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Generic PLA @Creality;Generic PLA HF @Creality;Generic Speed PLA @Creality HF;Generic PETG @Creality;Generic TPU @Creality;Generic ABS @Creality" + "default_materials": "Generic PLA @CR-10 SE-all;Generic ABS @CR-10 SE-all;Generic TPU @CR-10 SE-all;Generic PLA HF @Creality;Generic Speed PLA @Creality HF;Generic PETG @Creality" } diff --git a/resources/profiles/Creality/machine/Creality CR-10 Smart 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 Smart 0.4 nozzle.json new file mode 100644 index 0000000000..f7d9b8167e --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-10 Smart 0.4 nozzle.json @@ -0,0 +1,117 @@ +{ + "type": "machine", + "name": "Creality CR-10 Smart 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "IyWrvdE9qswlbnaV", + "instantiation": "true", + "printer_model": "Creality CR-10 Smart", + "printer_structure": "i3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "default_print_profile": "0.20mm Standard @Creality CR-10 Smart 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "400", + "extruder_clearance_height_to_rod": "33", + "extruder_clearance_radius": "70", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit
\nG1 E-2 Z1 F2400 ;Retract and raise Z
\nG1 X5 Y5 F3000 ;Wipe out
\nG1 Z10 ;Raise Z more
\nG90 ;Absolute positionning

\nG1 X0 Y0 ;Present print
\nM106 S0 ;Turn-off fan
\nM104 S0 ;Turn-off hotend
\nM140 S0 ;Turn-off bed

\nM84 X Y E ;Disable all steppers but Z
", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000,5000", + "machine_max_acceleration_extruding": "500,500", + "machine_max_acceleration_retracting": "500,1000", + "machine_max_acceleration_travel": "500,500", + "machine_max_acceleration_x": "500,500", + "machine_max_acceleration_y": "500,500", + "machine_max_acceleration_z": "500,500", + "machine_max_jerk_e": "5,5", + "machine_max_jerk_x": "10,8", + "machine_max_jerk_y": "10,8", + "machine_max_jerk_z": "0.4,0.4", + "machine_max_speed_e": "50,60", + "machine_max_speed_x": "500,500", + "machine_max_speed_y": "500,500", + "machine_max_speed_z": "10,10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25 ;pause print", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,300x0,300x300,0x300", + "printable_height": "400", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @CR-10 Smart-all" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "70%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "5", + "retraction_minimum_travel": "1", + "retraction_speed": "50", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Auto Lift" +} diff --git a/resources/profiles/Creality/machine/Creality CR-10 Smart Pro 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 Smart Pro 0.4 nozzle.json new file mode 100644 index 0000000000..c7db2ac74f --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-10 Smart Pro 0.4 nozzle.json @@ -0,0 +1,117 @@ +{ + "type": "machine", + "name": "Creality CR-10 Smart Pro 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "tlLeGUg0qXJvDgct", + "instantiation": "true", + "printer_model": "Creality CR-10 Smart Pro", + "printer_structure": "i3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "default_print_profile": "0.20mm Standard @Creality CR-10 Smart Pro 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "400", + "extruder_clearance_height_to_rod": "33", + "extruder_clearance_radius": "70", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "1", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit
\nG1 E-2 Z1 F2400 ;Retract and raise Z
\nG1 X5 Y5 F3000 ;Wipe out
\nG1 Z10 ;Raise Z more
\nG90 ;Absolute positionning

\nG1 X0 Y0 ;Present print
\nM106 S0 ;Turn-off fan
\nM104 S0 ;Turn-off hotend
\nM140 S0 ;Turn-off bed

\nM84 X Y E ;Disable all steppers but Z
", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000,5000", + "machine_max_acceleration_extruding": "500,500", + "machine_max_acceleration_retracting": "500,1000", + "machine_max_acceleration_travel": "500,500", + "machine_max_acceleration_x": "500,500", + "machine_max_acceleration_y": "500,500", + "machine_max_acceleration_z": "500,500", + "machine_max_jerk_e": "5,5", + "machine_max_jerk_x": "10,8", + "machine_max_jerk_y": "10,8", + "machine_max_jerk_z": "0.4,0.4", + "machine_max_speed_e": "50,60", + "machine_max_speed_x": "500,500", + "machine_max_speed_y": "500,500", + "machine_max_speed_z": "10,10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25 ;pause print", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,300x0,300x300,0x300", + "printable_height": "400", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Creality" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "70%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "0.8", + "retraction_minimum_travel": "1", + "retraction_speed": "40", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Auto Lift" +} diff --git a/resources/profiles/Creality/machine/Creality CR-10 Smart Pro.json b/resources/profiles/Creality/machine/Creality CR-10 Smart Pro.json new file mode 100644 index 0000000000..c1663ebf3a --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-10 Smart Pro.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality CR-10 Smart Pro", + "nozzle_diameter": "0.4", + "bed_model": "creality_cr10v2_buildplate_model.stl", + "default_bed_type": "Cool Plate", + "bed_texture": "creality_cr10v2_buildplate_texture.svg", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_CR_10_Smart_Pro", + "default_materials": "Generic ABS @CR-10 Smart Pro-all;Generic PLA @Creality" +} diff --git a/resources/profiles/Creality/machine/Creality CR-10 Smart.json b/resources/profiles/Creality/machine/Creality CR-10 Smart.json new file mode 100644 index 0000000000..9fcf37fabe --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-10 Smart.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality CR-10 Smart", + "nozzle_diameter": "0.4", + "bed_model": "creality_cr10v2_buildplate_model.stl", + "default_bed_type": "Cool Plate", + "bed_texture": "creality_cr10v2_buildplate_texture.svg", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_CR_10_Smart", + "default_materials": "Generic PLA @CR-10 Smart-all;Generic ABS @CR-10 Smart-all;Generic PETG @CR-10 Smart-all" +} diff --git a/resources/profiles/Creality/machine/Creality CR-10 V2 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 V2 0.4 nozzle.json index 7b70121bef..429b30df61 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 V2 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 V2 0.4 nozzle.json @@ -106,7 +106,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @CR-10-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG28 ; home all\nG1 Z2 F240\nG1 X2 Y10 F3000\nG1 Z0.28 F240\nG92 E0\nG1 Y190 E15 F1500 ; intro line\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E15 F1200 ; intro line\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600{endif} ; Move print head up\nG1 X5 Y170 F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600{endif} ; Move print head further up\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality CR-10 V3 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 V3 0.4 nozzle.json index 6eee0b7357..67c2456583 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 V3 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 V3 0.4 nozzle.json @@ -109,7 +109,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @CR-10-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S{first_layer_temperature[0]} ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG1 Z0.28 F240\nG92 E0\nG1 X2 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600{endif} ; Move print head up\nG1 X5 Y170 F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600{endif} ; Move print head further up\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality CR-10 V3 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10 V3 0.6 nozzle.json index 8ec571442d..c40ea674fe 100644 --- a/resources/profiles/Creality/machine/Creality CR-10 V3 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-10 V3 0.6 nozzle.json @@ -110,7 +110,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @CR-10-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[nozzle_temperature_initial_layer] ; set extruder temp\nM140 S[bed_temperature_initial_layer_single] ; set bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S{first_layer_temperature[0]} ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp\nM109 S[nozzle_temperature_initial_layer] ; wait for extruder temp\nG1 Z0.28 F240\nG92 E0\nG1 X2 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600{endif} ; Move print head up\nG1 X5 Y170 F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600{endif} ; Move print head further up\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality CR-10.json b/resources/profiles/Creality/machine/Creality CR-10.json new file mode 100644 index 0000000000..18923f29ea --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-10.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality CR-10", + "nozzle_diameter": "0.4", + "bed_model": "creality_cr10v2_buildplate_model.stl", + "default_bed_type": "Cool Plate", + "bed_texture": "creality_cr10v2_buildplate_texture.svg", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_CR_10", + "default_materials": "CR-PETG @CR-10-all;CR-TPU @CR-10-all;CR-PLA @CR-10-all;Generic ABS @CR-10-all" +} diff --git a/resources/profiles/Creality/machine/Creality CR-10S Pro V2 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-10S Pro V2 0.4 nozzle.json new file mode 100644 index 0000000000..04fe4b7cfd --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-10S Pro V2 0.4 nozzle.json @@ -0,0 +1,117 @@ +{ + "type": "machine", + "name": "Creality CR-10S Pro V2 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "5sLT5epTTbqCr0Cb", + "instantiation": "true", + "printer_model": "Creality CR-10S Pro V2", + "printer_structure": "i3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "default_print_profile": "0.20mm Standard @Creality CR-10S Pro V2 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "400", + "extruder_clearance_height_to_rod": "30", + "extruder_clearance_radius": "60", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit
\nG1 E-2 Z1 F2400 ;Retract and raise Z
\nG1 X5 Y5 F3000 ;Wipe out
\nG1 Z10 ;Raise Z more
\nG90 ;Absolute positionning

\nG1 X0 Y0 ;Present print
\nM106 S0 ;Turn-off fan
\nM104 S0 ;Turn-off hotend
\nM140 S0 ;Turn-off bed

\nM84 X Y E ;Disable all steppers but Z
", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000,5000", + "machine_max_acceleration_extruding": "500,500", + "machine_max_acceleration_retracting": "500,1000", + "machine_max_acceleration_travel": "500,500", + "machine_max_acceleration_x": "500,500", + "machine_max_acceleration_y": "500,500", + "machine_max_acceleration_z": "500,500", + "machine_max_jerk_e": "5,5", + "machine_max_jerk_x": "10,8", + "machine_max_jerk_y": "10,8", + "machine_max_jerk_z": "0.4,0.4", + "machine_max_speed_e": "50,60", + "machine_max_speed_x": "500,500", + "machine_max_speed_y": "500,500", + "machine_max_speed_z": "10,10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25 ;pause print", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,300x0,300x300,0x300", + "printable_height": "400", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "CR-PLA @CR-10-all" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "70%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "4", + "retraction_minimum_travel": "1", + "retraction_speed": "50", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Auto Lift" +} diff --git a/resources/profiles/Creality/machine/Creality CR-10S Pro V2.json b/resources/profiles/Creality/machine/Creality CR-10S Pro V2.json new file mode 100644 index 0000000000..bdd3986cd2 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-10S Pro V2.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality CR-10S Pro V2", + "nozzle_diameter": "0.4", + "bed_model": "creality_cr10v2_buildplate_model.stl", + "default_bed_type": "Cool Plate", + "bed_texture": "creality_cr10v2_buildplate_texture.svg", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_CR_10S_Pro_V2", + "default_materials": "Generic PLA @CR-10S Pro V2-all;Generic PETG @CR-10S Pro V2-all;Generic ABS @CR-10S Pro V2-all" +} diff --git a/resources/profiles/Creality/machine/Creality CR-20 Pro 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-20 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..49f85b6acc --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-20 Pro 0.4 nozzle.json @@ -0,0 +1,117 @@ +{ + "type": "machine", + "name": "Creality CR-20 Pro 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "CQgwdo8OEISIMGmT", + "instantiation": "true", + "printer_model": "Creality CR-20 Pro", + "printer_structure": "i3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "default_print_profile": "0.20mm Standard @Creality CR-20 Pro 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "250", + "extruder_clearance_height_to_rod": "35", + "extruder_clearance_radius": "60", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000", + "machine_max_acceleration_extruding": "500", + "machine_max_acceleration_retracting": "500", + "machine_max_acceleration_travel": "500", + "machine_max_acceleration_x": "500", + "machine_max_acceleration_y": "500", + "machine_max_acceleration_z": "100", + "machine_max_jerk_e": "5", + "machine_max_jerk_x": "10", + "machine_max_jerk_y": "10", + "machine_max_jerk_z": "0.4", + "machine_max_speed_e": "50", + "machine_max_speed_x": "500", + "machine_max_speed_y": "500", + "machine_max_speed_z": "10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-5.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,220x0,220x220,0x220", + "printable_height": "250", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @CR-20 Pro-all" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "90%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "5", + "retraction_minimum_travel": "2", + "retraction_speed": "50", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Normal Lift" +} diff --git a/resources/profiles/Creality/machine/Creality CR-20 Pro.json b/resources/profiles/Creality/machine/Creality CR-20 Pro.json new file mode 100644 index 0000000000..1f67fd8d34 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-20 Pro.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality CR-20 Pro", + "nozzle_diameter": "0.4", + "bed_model": "creality_k1_buildplate_model.stl", + "default_bed_type": "Cool Plate", + "bed_texture": "creality_k1_buildplate_texture.svg", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_CR_20_Pro", + "default_materials": "Generic PETG @CR-20 Pro-all;Generic PLA @CR-20 Pro-all;Generic ABS @CR-20 Pro-all" +} diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json index d738e8569c..0cdef40a50 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.2 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 SE", "printer_structure": "i3", "default_filament_profile": [ - "Generic PLA @Creality" + "Generic PLA @CR-6 SE-all" ], "printer_variant": "0.2", "default_print_profile": "0.16mm Optimal @Creality CR-6 0.2", diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json index 8ad215b2f5..7c76a7db3e 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.4 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 SE", "printer_structure": "i3", "default_filament_profile": [ - "Generic PLA @Creality" + "Generic PLA @CR-6 SE-all" ], "default_print_profile": "0.20mm Standard @Creality CR-6 0.4", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json index f5f19131b8..4be0b5238b 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.6 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 SE", "printer_structure": "i3", "default_filament_profile": [ - "Generic PLA @Creality" + "Generic PLA @CR-6 SE-all" ], "printer_variant": "0.6", "default_print_profile": "0.20mm Standard @Creality CR-6 0.6", diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json index 8afdf0d906..64d0f8a8b1 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-6 SE 0.8 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality CR-6 SE", "printer_structure": "i3", "default_filament_profile": [ - "Generic PLA @Creality" + "Generic PLA @CR-6 SE-all" ], "printer_variant": "0.8", "default_print_profile": "0.32mm Standard @Creality CR-6 0.8", diff --git a/resources/profiles/Creality/machine/Creality CR-6 SE.json b/resources/profiles/Creality/machine/Creality CR-6 SE.json index 63fc2fc19b..669a8559ba 100644 --- a/resources/profiles/Creality/machine/Creality CR-6 SE.json +++ b/resources/profiles/Creality/machine/Creality CR-6 SE.json @@ -8,5 +8,5 @@ "hotend_model": "", "machine_tech": "FFF", "model_id": "Creality_CR_6_SE", - "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" + "default_materials": "Generic PLA @CR-6 SE-all;Generic PETG @CR-6 SE-all;Generic ABS @CR-6 SE-all" } diff --git a/resources/profiles/Creality/machine/Creality CR-M4 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-M4 0.4 nozzle.json index 9d1de682c3..b37774f408 100644 --- a/resources/profiles/Creality/machine/Creality CR-M4 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality CR-M4 0.4 nozzle.json @@ -9,7 +9,7 @@ "gcode_flavor": "marlin", "printer_structure": "i3", "default_filament_profile": [ - "Generic PLA @Creality" + "Generic PLA @CR-M4-all" ], "default_print_profile": "0.20mm Standard @Creality CR-M4", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality CR-M4 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality CR-M4 SE 0.4 nozzle.json new file mode 100644 index 0000000000..1a6ac10bea --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-M4 SE 0.4 nozzle.json @@ -0,0 +1,111 @@ +{ + "type": "machine", + "name": "Creality CR-M4 SE 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "OKCJV8cYk1mclm5H", + "instantiation": "true", + "printer_model": "Creality CR-M4 SE", + "printer_structure": "i3", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_filament_gcode": "PAUSE", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "creality_flush_time": "86.0", + "default_print_profile": "0.20mm Standard @Creality CR-M4 SE 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "420", + "extruder_clearance_height_to_rod": "50", + "extruder_clearance_radius": "60", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "G91 ;Relative positionning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z4.5 ;Raise Z more \nG90 ;Absolute positionning \n \nG1 X2 Y218 F3000 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \n \nM84 X Y E ;Disable all steppers but Z", + "machine_load_filament_time": "11", + "machine_max_acceleration_e": "8000", + "machine_max_acceleration_extruding": "8000", + "machine_max_acceleration_retracting": "8000", + "machine_max_acceleration_travel": "8000", + "machine_max_acceleration_x": "8000", + "machine_max_acceleration_y": "8000", + "machine_max_acceleration_z": "2000", + "machine_max_jerk_e": "5", + "machine_max_jerk_x": "10", + "machine_max_jerk_y": "10", + "machine_max_jerk_z": "0.4", + "machine_max_speed_e": "100", + "machine_max_speed_x": "500", + "machine_max_speed_y": "500", + "machine_max_speed_z": "30", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "PAUSE", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home \n \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X-2.0 Y20 Z0.28 F5000.0 ;Move to start position \nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X-2.0 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-1.7 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-1.7 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_hrc": "0", + "nozzle_type": "hardened_steel", + "nozzle_volume": "0", + "parking_pos_retraction": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,420x0,420x420,0x420", + "printable_height": "420", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "96x96,300x300", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Creality" + ], + "deretraction_speed": "50", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "max_layer_height": "0.36", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "100", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_length": "0.8", + "retraction_minimum_travel": "0.4", + "retraction_speed": "50", + "wipe": "1", + "wipe_distance": "1", + "z_hop": "0.4", + "z_hop_types": "Slope Lift" +} diff --git a/resources/profiles/Creality/machine/Creality CR-M4 SE.json b/resources/profiles/Creality/machine/Creality CR-M4 SE.json new file mode 100644 index 0000000000..c0efdfa5bb --- /dev/null +++ b/resources/profiles/Creality/machine/Creality CR-M4 SE.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality CR-M4 SE", + "nozzle_diameter": "0.4", + "bed_model": "creality_crm4_buildplate_model.stl", + "bed_texture": "creality_crm4_buildplate_texture.svg", + "default_bed_type": "Cool Plate", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_CR_M4_SE", + "default_materials": "Hyper ABS @CR-M4 SE-all;CR-PLA @CR-M4 SE-all;Hyper PLA @CR-M4 SE-all;CR-PETG @CR-M4 SE-all;HP-TPU @CR-M4 SE-all;HP-ASA @CR-M4 SE-all" +} diff --git a/resources/profiles/Creality/machine/Creality CR-M4.json b/resources/profiles/Creality/machine/Creality CR-M4.json index d4df994d2c..cd164a1ba0 100644 --- a/resources/profiles/Creality/machine/Creality CR-M4.json +++ b/resources/profiles/Creality/machine/Creality CR-M4.json @@ -8,5 +8,5 @@ "bed_model": "creality_crm4_buildplate_model.stl", "bed_texture": "creality_crm4_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" + "default_materials": "Generic PLA @CR-M4-all;Generic PETG @CR-M4-all;Generic ABS @CR-M4-all" } diff --git a/resources/profiles/Creality/machine/Creality Ender-2 Pro 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-2 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..8aa0ce3cb3 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-2 Pro 0.4 nozzle.json @@ -0,0 +1,118 @@ +{ + "type": "machine", + "name": "Creality Ender-2 Pro 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "ttX6bPA2xYsziRP5", + "instantiation": "true", + "printer_model": "Creality Ender-2 Pro", + "printer_structure": "i3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "creality_flush_time": "86.0", + "default_print_profile": "0.20mm Standard @Creality Ender-2 Pro 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "180", + "extruder_clearance_height_to_rod": "35", + "extruder_clearance_radius": "55", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000", + "machine_max_acceleration_extruding": "500", + "machine_max_acceleration_retracting": "500", + "machine_max_acceleration_travel": "500", + "machine_max_acceleration_x": "500", + "machine_max_acceleration_y": "500", + "machine_max_acceleration_z": "100", + "machine_max_jerk_e": "5", + "machine_max_jerk_x": "10", + "machine_max_jerk_y": "10", + "machine_max_jerk_z": "0.4", + "machine_max_speed_e": "50", + "machine_max_speed_x": "500", + "machine_max_speed_y": "500", + "machine_max_speed_z": "10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,165x0,165x165,0x165", + "printable_height": "180", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "CR-PLA @Ender-2 Pro-all" + ], + "deretraction_speed": "25", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "70%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "5", + "retraction_minimum_travel": "2", + "retraction_speed": "25", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.2", + "z_hop_types": "Normal Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-2 Pro.json b/resources/profiles/Creality/machine/Creality Ender-2 Pro.json new file mode 100644 index 0000000000..3407d33800 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-2 Pro.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Ender-2 Pro", + "nozzle_diameter": "0.4", + "bed_model": "creality_k1_buildplate_model.stl", + "default_bed_type": "Cool Plate", + "bed_texture": "", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_Ender_2_Pro", + "default_materials": "Generic TPU @Ender-2 Pro-all;CR-PETG @Ender-2 Pro-all;CR-ABS @Ender-2 Pro-all;CR-PLA @Ender-2 Pro-all" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json index ce445321ed..cba4530078 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 0.2 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.4 nozzle.json index 7e6a63ab18..7b9ec903f2 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 0.4 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json index 5becaffc5d..02050b4f61 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 0.6 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json index 03beab016f..d04beb2184 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 0.8 nozzle.json @@ -112,7 +112,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Max 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 Max 0.4 nozzle.json new file mode 100644 index 0000000000..2c0f280ae7 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-3 Max 0.4 nozzle.json @@ -0,0 +1,117 @@ +{ + "type": "machine", + "name": "Creality Ender-3 Max 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "FJXSUGtl0iKSMMlz", + "instantiation": "true", + "printer_model": "Creality Ender-3 Max", + "printer_structure": "i3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "default_print_profile": "0.20mm Standard @Creality Ender-3 Max 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "340", + "extruder_clearance_height_to_rod": "35", + "extruder_clearance_radius": "55", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000", + "machine_max_acceleration_extruding": "500", + "machine_max_acceleration_retracting": "500", + "machine_max_acceleration_travel": "500", + "machine_max_acceleration_x": "500", + "machine_max_acceleration_y": "500", + "machine_max_acceleration_z": "100", + "machine_max_jerk_e": "5", + "machine_max_jerk_x": "10", + "machine_max_jerk_y": "10", + "machine_max_jerk_z": "0.4", + "machine_max_speed_e": "50", + "machine_max_speed_x": "500", + "machine_max_speed_y": "500", + "machine_max_speed_z": "10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-5.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,300x0,300x300,0x300", + "printable_height": "340", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Ender-3 Max-all" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "90%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "4", + "retraction_minimum_travel": "2", + "retraction_speed": "50", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Normal Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Max Neo 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 Max Neo 0.4 nozzle.json new file mode 100644 index 0000000000..8db6b4d5cc --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-3 Max Neo 0.4 nozzle.json @@ -0,0 +1,117 @@ +{ + "type": "machine", + "name": "Creality Ender-3 Max Neo 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "OxVWi5kHu40cFYHk", + "instantiation": "true", + "printer_model": "Creality Ender-3 Max Neo", + "printer_structure": "i3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "default_print_profile": "0.20mm Standard @Creality Ender-3 Max Neo 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "320", + "extruder_clearance_height_to_rod": "35", + "extruder_clearance_radius": "60", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000", + "machine_max_acceleration_extruding": "500", + "machine_max_acceleration_retracting": "500", + "machine_max_acceleration_travel": "500", + "machine_max_acceleration_x": "500", + "machine_max_acceleration_y": "500", + "machine_max_acceleration_z": "100", + "machine_max_jerk_e": "5", + "machine_max_jerk_x": "10", + "machine_max_jerk_y": "10", + "machine_max_jerk_z": "0.4", + "machine_max_speed_e": "50", + "machine_max_speed_x": "500", + "machine_max_speed_y": "500", + "machine_max_speed_z": "10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-5.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,300x0,300x300,0x300", + "printable_height": "320", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Ender-3 Max Neo-all" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "90%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "4", + "retraction_minimum_travel": "2", + "retraction_speed": "50", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Normal Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Max Neo.json b/resources/profiles/Creality/machine/Creality Ender-3 Max Neo.json new file mode 100644 index 0000000000..1ef930f96c --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-3 Max Neo.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Ender-3 Max Neo", + "nozzle_diameter": "0.4", + "bed_model": "creality_cr10v2_buildplate_model.stl", + "bed_texture": "creality_cr10v2_buildplate_texture.svg", + "default_bed_type": "Cool Plate", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_Ender_3_Max_Neo", + "default_materials": "Generic PLA @Ender-3 Max Neo-all;Generic PETG @Ender-3 Max Neo-all;Generic ABS @Ender-3 Max Neo-all" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Max.json b/resources/profiles/Creality/machine/Creality Ender-3 Max.json new file mode 100644 index 0000000000..fdce0d58ab --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-3 Max.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Ender-3 Max", + "nozzle_diameter": "0.4", + "bed_model": "creality_cr10v2_buildplate_model.stl", + "bed_texture": "creality_cr10v2_buildplate_texture.svg", + "default_bed_type": "Cool Plate", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_Ender_3_Max", + "default_materials": "Generic PLA @Ender-3 Max-all;Generic PETG @Ender-3 Max-all;Generic ABS @Ender-3 Max-all" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Neo 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 Neo 0.4 nozzle.json new file mode 100644 index 0000000000..d401e149e5 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-3 Neo 0.4 nozzle.json @@ -0,0 +1,117 @@ +{ + "type": "machine", + "name": "Creality Ender-3 Neo 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "kj6ydR2Vq7vxm1eo", + "instantiation": "true", + "printer_model": "Creality Ender-3 Neo", + "printer_structure": "i3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "default_print_profile": "0.20mm Standard @Creality Ender-3 Neo 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "250", + "extruder_clearance_height_to_rod": "33", + "extruder_clearance_radius": "65", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit
\nG1 E-2 Z1 F2400 ;Retract and raise Z
\nG1 X5 Y5 F3000 ;Wipe out
\nG1 Z10 ;Raise Z more
\nG90 ;Absolute positionning

\nG1 X0 Y0 ;Present print
\nM106 S0 ;Turn-off fan
\nM104 S0 ;Turn-off hotend
\nM140 S0 ;Turn-off bed

\nM84 X Y E ;Disable all steppers but Z
", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000,5000", + "machine_max_acceleration_extruding": "500,500", + "machine_max_acceleration_retracting": "500,1000", + "machine_max_acceleration_travel": "500,500", + "machine_max_acceleration_x": "500,500", + "machine_max_acceleration_y": "500,500", + "machine_max_acceleration_z": "500,500", + "machine_max_jerk_e": "5,5", + "machine_max_jerk_x": "10,8", + "machine_max_jerk_y": "10,8", + "machine_max_jerk_z": "0.4,0.4", + "machine_max_speed_e": "50,60", + "machine_max_speed_x": "500,500", + "machine_max_speed_y": "500,500", + "machine_max_speed_z": "10,10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25 ;pause print", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,220x0,220x220,0x220", + "printable_height": "250", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "48x48/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Ender-3 Neo-all" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "70%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "5", + "retraction_minimum_travel": "1", + "retraction_speed": "50", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Auto Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 Neo.json b/resources/profiles/Creality/machine/Creality Ender-3 Neo.json new file mode 100644 index 0000000000..e113342daf --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-3 Neo.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Ender-3 Neo", + "nozzle_diameter": "0.4", + "bed_model": "creality_ender3v2neo_buildplate_model.stl", + "bed_texture": "creality_ender3v2neo_buildplate_texture.svg", + "default_bed_type": "Cool Plate", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_Ender_3_Neo", + "default_materials": "Generic PETG @Ender-3 Neo-all;Generic ABS @Ender-3 Neo-all;Generic PLA @Ender-3 Neo-all" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 0.4 nozzle.json index 72e1aeb855..c6366b740d 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 0.4 nozzle.json @@ -106,7 +106,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3 S1-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nG4 S10 ; allow partial nozzle warmup\nG28 ; home all axis\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json index 6f61fc3c0b..0e4621d7fa 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.2 nozzle.json @@ -110,7 +110,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3 S1 Plus-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling \nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.4 nozzle.json index 08579e0a00..7d0ac504f9 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.4 nozzle.json @@ -110,7 +110,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3 S1 Plus-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json index 9b688aae93..d24fe79b3c 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.6 nozzle.json @@ -110,7 +110,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3 S1 Plus-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json index 73f2340b40..f458759671 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Plus 0.8 nozzle.json @@ -111,7 +111,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3 S1 Plus-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nM420 S1; Enable mesh leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro 0.4 nozzle.json index d7cbb9292d..99373934d5 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Pro 0.4 nozzle.json @@ -109,7 +109,7 @@ "change_filament_gcode": "M600", "machine_pause_gcode": "M25", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3 S1 Plus-all" ], "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Sonic 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Sonic 0.4 nozzle.json new file mode 100644 index 0000000000..c0bc21cedf --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Sonic 0.4 nozzle.json @@ -0,0 +1,118 @@ +{ + "type": "machine", + "name": "Creality Ender-3 S1 Sonic 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "S7bteie7d5ZpBHTK", + "instantiation": "true", + "printer_model": "Creality Ender-3 S1 Sonic", + "printer_structure": "i3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "creality_flush_time": "86", + "default_print_profile": "0.20mm Standard @Creality Ender-3 S1 Sonic 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "200", + "extruder_clearance_height_to_rod": "25", + "extruder_clearance_radius": "65", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "3000", + "machine_max_acceleration_extruding": "10000", + "machine_max_acceleration_retracting": "3000", + "machine_max_acceleration_travel": "5000", + "machine_max_acceleration_x": "10000", + "machine_max_acceleration_y": "10000", + "machine_max_acceleration_z": "200", + "machine_max_jerk_e": "2.5", + "machine_max_jerk_x": "10", + "machine_max_jerk_y": "10", + "machine_max_jerk_z": "2", + "machine_max_speed_e": "80", + "machine_max_speed_x": "500", + "machine_max_speed_y": "500", + "machine_max_speed_z": "30", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "PAUSE", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,230x0,230x230,0x230", + "printable_height": "270", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Creality" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.32", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "90%", + "retract_length_toolchange": "1", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "0.8", + "retraction_minimum_travel": "2", + "retraction_speed": "40", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Normal Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 S1 Sonic.json b/resources/profiles/Creality/machine/Creality Ender-3 S1 Sonic.json new file mode 100644 index 0000000000..546161f02b --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-3 S1 Sonic.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Ender-3 S1 Sonic", + "nozzle_diameter": "0.4", + "bed_model": "creality_ender3s1_buildplate_model.stl", + "default_bed_type": "Cool Plate", + "bed_texture": "creality_ender3s1_buildplate_texture.svg", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_Sonic_Ender_3_S1", + "default_materials": "HP-TPU @Ender-3 S1 Sonic-all;CR-PETG @Ender-3 S1 Sonic-all;CR-ABS @Ender-3 S1 Sonic-all;CR-PLA @Ender-3 S1 Sonic-all;Hyper PLA @Ender-3 S1 Sonic-all" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V2 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V2 0.4 nozzle.json index 47e5f72147..cb8c5a2302 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V2 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V2 0.4 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Ender-3 V2", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3 V2-all" ], "default_print_profile": "0.20mm Standard @Creality Ender3V2", "nozzle_diameter": [ @@ -20,7 +20,6 @@ "0x220" ], "printable_height": "250", - "nozzle_type": "undefine", "auxiliary_fan": "0", "machine_max_junction_deviation": [ "0.013", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo 0.4 nozzle.json index 7cddabe415..f361989c43 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V2 Neo 0.4 nozzle.json @@ -8,7 +8,7 @@ "printer_model": "Creality Ender-3 V2 Neo", "printer_structure": "i3", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Ender-3 V2-all" ], "default_print_profile": "0.20mm Standard @Creality Ender3V2 Neo", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V2.json b/resources/profiles/Creality/machine/Creality Ender-3 V2.json index a5ef1d123d..6c7ed82f20 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V2.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V2.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3v2_buildplate_model.stl", "bed_texture": "creality_ender3v2_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Generic PLA @Creality;Generic PETG @Creality;Generic ABS @Creality" + "default_materials": "Generic ABS @Ender-3 V2-all;Generic PLA @Creality;Generic PETG @Creality" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 0.4 nozzle.json index de3c4286dc..353f7f012d 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 0.4 nozzle.json @@ -126,7 +126,7 @@ "change_filament_gcode": "PAUSE", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Generic PLA @Creality Ender-3V3-all" + "Generic PLA @Ender-3 V3-all" ], "machine_start_gcode": "M140 S0\nM104 S0\nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 0.6 nozzle.json index 75ceca6c79..fcfd16f834 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 0.6 nozzle.json @@ -126,7 +126,7 @@ "change_filament_gcode": "PAUSE", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Generic PLA @Creality Ender-3V3-all" + "Generic PLA @Ender-3 V3-all" ], "machine_start_gcode": "M140 S0\nM104 S0\nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 0.8 nozzle.json new file mode 100644 index 0000000000..d075f13e04 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 0.8 nozzle.json @@ -0,0 +1,107 @@ +{ + "type": "machine", + "name": "Creality Ender-3 V3 0.8 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "3INwhJUXUBs0frv1", + "instantiation": "true", + "printer_model": "Creality Ender-3 V3", + "printer_structure": "i3", + "auxiliary_fan": "1", + "bed_exclude_area": "0x0", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "default_print_profile": "0.40mm Standard @Creality Ender-3 V3 0.8 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "140", + "extruder_clearance_height_to_rod": "36", + "extruder_clearance_radius": "65", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "machine_LED_light_exist": "0", + "machine_end_gcode": "END_PRINT", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "10000", + "machine_max_acceleration_extruding": "20000", + "machine_max_acceleration_retracting": "5000", + "machine_max_acceleration_travel": "20000", + "machine_max_acceleration_x": "20000", + "machine_max_acceleration_y": "20000", + "machine_max_acceleration_z": "500", + "machine_max_jerk_e": "2.5", + "machine_max_jerk_x": "50", + "machine_max_jerk_y": "50", + "machine_max_jerk_z": "2", + "machine_max_speed_e": "100", + "machine_max_speed_x": "600", + "machine_max_speed_y": "600", + "machine_max_speed_z": "500", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "PAUSE\n", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M140 S0\nM104 S0\nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer]", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_hrc": "0", + "nozzle_type": "hardened_steel", + "nozzle_volume": "0", + "parking_pos_retraction": "0", + "preferred_orientation": "0", + "print_host": "http://172.23.209.71:4408/", + "print_host_webui": "http://172.23.209.71:4408/", + "printable_area": "0x0,220x0,220x220,0x220", + "printable_height": "250", + "printer_technology": "FFF", + "printer_variant": "0.8", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "1", + "thumbnails": "96x96,300x300", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Ender-3 V3-all" + ], + "deretraction_speed": "40", + "extruder_colour": "#018001", + "extruder_offset": "0x0", + "max_layer_height": "0.56", + "min_layer_height": "0.16", + "nozzle_diameter": [ + "0.8" + ], + "retract_before_wipe": "70%", + "retract_length_toolchange": "1", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "0", + "retraction_length": "1.5", + "retraction_minimum_travel": "1", + "retraction_speed": "40", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Auto Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.4 nozzle.json index f9b91395ba..ab5f8d2508 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.4 nozzle.json @@ -123,7 +123,7 @@ "change_filament_gcode": "PAUSE", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Generic PLA @Creality Ender-3V3-all" + "Generic PLA @Ender-3 V3 Plus-all" ], "machine_start_gcode": "M140 S0\nM104 S0\nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.6 nozzle.json index d0c4bee18a..8d3cba108c 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.6 nozzle.json @@ -123,7 +123,7 @@ "change_filament_gcode": "PAUSE", "machine_pause_gcode": "PAUSE", "default_filament_profile": [ - "Generic PLA @Creality Ender-3V3-all" + "Generic PLA @Ender-3 V3 Plus-all" ], "machine_start_gcode": "M140 S0\nM104 S0\nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.8 nozzle.json new file mode 100644 index 0000000000..713d45e321 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus 0.8 nozzle.json @@ -0,0 +1,108 @@ +{ + "type": "machine", + "name": "Creality Ender-3 V3 Plus 0.8 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "POEqDPvODxBUiA6S", + "instantiation": "true", + "printer_model": "Creality Ender-3 V3 Plus", + "printer_structure": "i3", + "auxiliary_fan": "1", + "bed_exclude_area": "0x0", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_filament_gcode": "PAUSE", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "default_print_profile": "0.40mm Standard @Creality Ender-3 V3 Plus 0.8 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "1", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "330", + "extruder_clearance_height_to_rod": "60", + "extruder_clearance_radius": "50", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "machine_LED_light_exist": "0", + "machine_end_gcode": "END_PRINT", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "10000", + "machine_max_acceleration_extruding": "20000", + "machine_max_acceleration_retracting": "5000", + "machine_max_acceleration_travel": "20000", + "machine_max_acceleration_x": "20000", + "machine_max_acceleration_y": "20000", + "machine_max_acceleration_z": "500", + "machine_max_jerk_e": "2.5", + "machine_max_jerk_x": "50", + "machine_max_jerk_y": "50", + "machine_max_jerk_z": "2", + "machine_max_speed_e": "100", + "machine_max_speed_x": "600", + "machine_max_speed_y": "600", + "machine_max_speed_z": "500", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "PAUSE\n", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "M140 S0\nM104 S0\nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer]", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "preferred_orientation": "0", + "print_host": "http://172.23.209.71:4408/", + "print_host_webui": "http://172.23.209.71:4408/", + "printable_area": "0x0,300x0,300x300,0x300", + "printable_height": "330", + "printer_technology": "FFF", + "printer_variant": "0.8", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "1", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "1", + "thumbnails": "96x96,300x300", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Ender-3 V3 Plus-all" + ], + "deretraction_speed": "30", + "extruder_colour": "#018001", + "extruder_offset": "0x0", + "max_layer_height": "0.64", + "min_layer_height": "0.2", + "nozzle_diameter": [ + "0.8" + ], + "retract_before_wipe": "70%", + "retract_length_toolchange": "1", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_length": "0.8", + "retraction_minimum_travel": "1", + "retraction_speed": "30", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Auto Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus.json index 919076763b..3bb4eccf61 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 Plus.json @@ -2,11 +2,11 @@ "type": "machine_model", "name": "Creality Ender-3 V3 Plus", "model_id": "Creality-Ender3-V3-Plus", - "nozzle_diameter": "0.4;0.6", + "nozzle_diameter": "0.4;0.6;0.8", "machine_tech": "FFF", "family": "Creality", "bed_model": "creality_ender3v3plus_buildplate_model.stl", "bed_texture": "creality_ender3v3plus_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Generic ABS @Creality Ender-3V3-all;Generic ASA @Creality Ender-3V3-all;Generic PETG @Creality Ender-3V3-all;Generic PLA @Creality Ender-3V3-all;Generic PLA High Speed @Creality Ender-3V3-all;Generic PLA Matte @Creality Ender-3V3-all;Generic PLA Silk @Creality Ender-3V3-all;Generic TPU @Creality Ender-3V3-all" + "default_materials": "Generic PLA @Ender-3 V3 Plus-all;Generic PETG @Ender-3 V3 Plus-all;Generic TPU @Ender-3 V3 Plus-all;Generic ABS @Ender-3 V3 Plus-all;Generic ASA @Ender-3 V3 Plus-all;Generic PLA High Speed @Creality Ender-3V3-all;Generic PLA Matte @Creality Ender-3V3-all;Generic PLA Silk @Creality Ender-3V3-all" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE.json index 71786a500d..26e76d82be 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE.json @@ -8,5 +8,5 @@ "bed_model": "creality_ender3v3se_buildplate_model.stl", "bed_texture": "creality_ender3v3se_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Generic ABS @Creality Ender-3V3-all;Generic ASA @Creality Ender-3V3-all;Generic PETG @Creality Ender-3V3-all;Generic PLA @Creality Ender-3V3-all;Generic PLA High Speed @Creality Ender-3V3-all;Generic PLA Matte @Creality Ender-3V3-all;Generic PLA Silk @Creality Ender-3V3-all;Generic TPU @Creality Ender-3V3-all" + "default_materials": "Generic PETG @Ender-3 V3 SE-all;Generic TPU @Ender-3 V3 SE-all;Generic ABS @Creality Ender-3V3-all;Generic ASA @Creality Ender-3V3-all;Generic PLA @Creality Ender-3V3-all;Generic PLA High Speed @Creality Ender-3V3-all;Generic PLA Matte @Creality Ender-3V3-all;Generic PLA Silk @Creality Ender-3V3-all" } diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3.json b/resources/profiles/Creality/machine/Creality Ender-3 V3.json index 5650e068aa..65a7f68a02 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3.json @@ -2,11 +2,11 @@ "type": "machine_model", "name": "Creality Ender-3 V3", "model_id": "Creality-Ender3-V3", - "nozzle_diameter": "0.4;0.6", + "nozzle_diameter": "0.4;0.6;0.8", "machine_tech": "FFF", "family": "Creality", "bed_model": "creality_ender3v3_buildplate_model.stl", "bed_texture": "creality_ender3v3_buildplate_texture.svg", "hotend_model": "", - "default_materials": "Generic ABS @Creality Ender-3V3-all;Generic ASA @Creality Ender-3V3-all;Generic PETG @Creality Ender-3V3-all;Generic PLA @Creality Ender-3V3-all;Generic PLA High Speed @Creality Ender-3V3-all;Generic PLA Matte @Creality Ender-3V3-all;Generic PLA Silk @Creality Ender-3V3-all;Generic TPU @Creality Ender-3V3-all" + "default_materials": "Generic PLA @Ender-3 V3-all;Generic PETG @Ender-3 V3-all;Generic TPU @Ender-3 V3-all;Generic ABS @Creality Ender-3V3-all;Generic ASA @Creality Ender-3V3-all;Generic PLA High Speed @Creality Ender-3V3-all;Generic PLA Matte @Creality Ender-3V3-all;Generic PLA Silk @Creality Ender-3V3-all" } diff --git a/resources/profiles/Creality/machine/Creality Ender-5 S1 Sonic 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-5 S1 Sonic 0.4 nozzle.json new file mode 100644 index 0000000000..c290f9bb9a --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-5 S1 Sonic 0.4 nozzle.json @@ -0,0 +1,117 @@ +{ + "type": "machine", + "name": "Creality Ender-5 S1 Sonic 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "JbNM2XbaoJVkIEIV", + "instantiation": "true", + "printer_model": "Creality Ender-5 S1 Sonic", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "cooling_tube_length": "5", + "cooling_tube_retraction": "91.5", + "creality_flush_time": "86", + "default_print_profile": "0.20mm Standard @Creality Ender-5 S1 Sonic 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "-2", + "extruder_clearance_height_to_lid": "34", + "extruder_clearance_height_to_rod": "55", + "extruder_clearance_radius": "62.5", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "{if max_layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+2, printable_height)} F600 ; Move print head up{endif}\nG1 X5 Y{print_bed_max[1]*0.8} F{travel_speed*60} ; present print\n{if max_layer_z < printable_height-10}G1 Z{z_offset+min(max_layer_z+70, printable_height-10)} F600 ; Move print head further up{endif}\n{if max_layer_z < max_print_height*0.6}G1 Z{printable_height*0.6} F600 ; Move print head further up{endif}\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "2000", + "machine_max_acceleration_extruding": "2500", + "machine_max_acceleration_retracting": "1000", + "machine_max_acceleration_travel": "2000", + "machine_max_acceleration_x": "2500", + "machine_max_acceleration_y": "2500", + "machine_max_acceleration_z": "100", + "machine_max_jerk_e": "5", + "machine_max_jerk_x": "12", + "machine_max_jerk_y": "12", + "machine_max_jerk_z": "0.4", + "machine_max_speed_e": "100", + "machine_max_speed_x": "250", + "machine_max_speed_y": "250", + "machine_max_speed_z": "30", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "PAUSE", + "machine_platform_motion_enable": "0", + "machine_start_gcode": "G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set temporary nozzle temp to prevent oozing during homing\nM140 S[bed_temperature_initial_layer_single] ; set final bed temp\nG4 S30 ; allow partial nozzle warmup\nG28 ; home all axis and restore leveling\nG1 Z50 F240\nG1 X2.0 Y10 F3000\nM104 S[nozzle_temperature_initial_layer] ; set final nozzle temp\nM190 S[bed_temperature_initial_layer_single] ; wait for bed temp to stabilize\nM109 S[nozzle_temperature_initial_layer] ; wait for nozzle temp to stabilize\nG1 Z0.28 F240\nG92 E0\nG1 X2.0 Y140 E10 F1500 ; prime the nozzle\nG1 X2.3 Y140 F5000\nG92 E0\nG1 X2.3 Y10 E10 F1200 ; prime the nozzle\nG92 E0", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "92", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,220x0,220x220,0x220", + "printable_height": "280", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "CR-PLA @Ender-5 S1 Sonic-all" + ], + "deretraction_speed": "30", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.32", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "70%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "0", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "0.8", + "retraction_minimum_travel": "2", + "retraction_speed": "30", + "travel_slope": "1", + "wipe": "1", + "wipe_distance": "1", + "z_hop": "0.4", + "z_hop_types": "Slope Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Ender-5 S1 Sonic.json b/resources/profiles/Creality/machine/Creality Ender-5 S1 Sonic.json new file mode 100644 index 0000000000..7fa8e4f621 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Ender-5 S1 Sonic.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Ender-5 S1 Sonic", + "nozzle_diameter": "0.4", + "bed_model": "creality_ender5s1_buildplate_model.stl", + "default_bed_type": "Textured PEI Plate", + "bed_texture": "creality_ender5s1_buildplate_texture.svg", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_Sonic_Ender_5_S1", + "default_materials": "HP-ASA @Ender-5 S1 Sonic-all;HP-TPU @Ender-5 S1 Sonic-all;CR-PETG @Ender-5 S1 Sonic-all;CR-ABS @Ender-5 S1 Sonic-all;CR-PLA @Ender-5 S1 Sonic-all;Hyper PLA @Ender-5 S1 Sonic-all" +} diff --git a/resources/profiles/Creality/machine/Creality Sermoon D3 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Sermoon D3 0.4 nozzle.json new file mode 100644 index 0000000000..aafe573db7 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Sermoon D3 0.4 nozzle.json @@ -0,0 +1,119 @@ +{ + "type": "machine", + "name": "Creality Sermoon D3 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "59RabiPsByZ8SN4V", + "instantiation": "true", + "printer_model": "Creality Sermoon D3", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X42 Y180 F30000\nG1 Z{z_after_toolchange} F600", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "creality_flush_time": "119", + "default_print_profile": "0.20mm Standard @Creality Sermoon D3 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "100", + "extruder_clearance_height_to_rod": "50", + "extruder_clearance_radius": "60", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "machine_LED_light_exist": "1", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000", + "machine_max_acceleration_extruding": "500", + "machine_max_acceleration_retracting": "500", + "machine_max_acceleration_travel": "500", + "machine_max_acceleration_x": "500", + "machine_max_acceleration_y": "500", + "machine_max_acceleration_z": "500", + "machine_max_jerk_e": "5", + "machine_max_jerk_x": "10", + "machine_max_jerk_y": "10", + "machine_max_jerk_z": "0.4", + "machine_max_speed_e": "50", + "machine_max_speed_x": "500", + "machine_max_speed_y": "500", + "machine_max_speed_z": "10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25", + "machine_platform_motion_enable": "1", + "machine_start_gcode": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "0", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,300x0,300x250,0x250", + "printable_height": "300", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "96x96/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "CR-PLA @Sermoon D3-all" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "70%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "299", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "0.8", + "retraction_minimum_travel": "1", + "retraction_speed": "40", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Normal Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Sermoon D3 Pro 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Sermoon D3 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..e82ab42245 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Sermoon D3 Pro 0.4 nozzle.json @@ -0,0 +1,118 @@ +{ + "type": "machine", + "name": "Creality Sermoon D3 Pro 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "9JdpKeb70NBMQqK4", + "instantiation": "true", + "printer_model": "Creality Sermoon D3 Pro", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_filament_gcode": ";switch//////////////////////////////////////////\n; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\nG1 F800 E-[new_retract_length]\nG1 F21000\n;P0 S1 L2 D0\nT[next_extruder]\nM109 S[new_filament_temp]\n;T0 S1 L0 D0\n;switch//////////////////////////////////////////\n", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "default_print_profile": "0.20mm Standard @Creality Sermoon D3 Pro 0.4 nozzle", + "disable_m73": "1", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "101", + "extruder_clearance_height_to_rod": "45", + "extruder_clearance_radius": "45", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "machine_LED_light_exist": "1", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\n;G1 Z10 ;Raise Z more\nG90 ;Absolute positionning\n\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\n\nM84 X Y E ;Disable all steppers but Z", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000", + "machine_max_acceleration_extruding": "5000", + "machine_max_acceleration_retracting": "5000", + "machine_max_acceleration_travel": "20000", + "machine_max_acceleration_x": "3000", + "machine_max_acceleration_y": "3000", + "machine_max_acceleration_z": "100", + "machine_max_jerk_e": "5", + "machine_max_jerk_x": "10", + "machine_max_jerk_y": "10", + "machine_max_jerk_z": "0.4", + "machine_max_speed_e": "50", + "machine_max_speed_x": "500", + "machine_max_speed_y": "500", + "machine_max_speed_z": "10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25", + "machine_platform_motion_enable": "1", + "machine_ptc_exist": "1", + "machine_start_gcode": "M900 T0 K0.03\nM900 T1 K0.05\nM593 X F35\nM593 Y F37.5\nM205 B20000.00 S0.00 T0.00 J0.05\nG21\nG90\nM83\nM107\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer] T[initial_no_support_extruder]\nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "0", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "printable_area": "0x0,290x0,290x220,0x220", + "printable_height": "300", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "0", + "support_air_filtration": "1", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "96x96/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "CR-PLA @Sermoon D3-all" + ], + "deretraction_speed": "40,40", + "extruder_colour": "#FCE94F,#FCE94F", + "extruder_offset": "0x0,0x0", + "long_retractions_when_cut": "0,0", + "max_layer_height": "0.3,0.3", + "min_layer_height": "0.08,0.08", + "nozzle_diameter": [ + "0.4,0.4" + ], + "retract_before_wipe": "90%,90%", + "retract_length_toolchange": "10,10", + "retract_lift_above": "0,0", + "retract_lift_below": "0,0", + "retract_lift_enforce": "All Surfaces,All Surfaces", + "retract_restart_extra": "0,0", + "retract_restart_extra_toolchange": "0,0", + "retract_when_changing_layer": "1,1", + "retraction_distances_when_cut": "18,18", + "retraction_length": "0.8,0.8", + "retraction_minimum_travel": "2,2", + "retraction_speed": "40,40", + "travel_slope": "1,1", + "wipe": "1,1", + "wipe_distance": "2,2", + "z_hop": "0.4,0.4", + "z_hop_types": "Slope Lift,Slope Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Sermoon D3 Pro.json b/resources/profiles/Creality/machine/Creality Sermoon D3 Pro.json new file mode 100644 index 0000000000..5218ce111b --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Sermoon D3 Pro.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Sermoon D3 Pro", + "nozzle_diameter": "0.4", + "bed_model": "creality_cr10v2_buildplate_model.stl", + "default_bed_type": "High Temp Plate", + "bed_texture": "creality_cr10v2_buildplate_texture.svg", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_Sermoon_D3_Pro", + "default_materials": "Hyper PLA-CF @Sermoon D3 Pro-all;CR-PETG @Sermoon D3 Pro-all;Hyper PLA @Sermoon D3 Pro-all;CR-ABS @Sermoon D3 Pro-all" +} diff --git a/resources/profiles/Creality/machine/Creality Sermoon D3.json b/resources/profiles/Creality/machine/Creality Sermoon D3.json new file mode 100644 index 0000000000..3eeb52b32f --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Sermoon D3.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Sermoon D3", + "nozzle_diameter": "0.4", + "bed_model": "creality_cr10v2_buildplate_model.stl", + "default_bed_type": "High Temp Plate", + "bed_texture": "creality_cr10v2_buildplate_texture.svg", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_Sermoon_D3", + "default_materials": "CR-Silk @Sermoon D3-all;CR-PLA @Sermoon D3-all;CR-TPU @Sermoon D3-all;CR-PETG @Sermoon D3-all;Hyper PLA @Sermoon D3-all;Generic ABS @Sermoon D3-all" +} diff --git a/resources/profiles/Creality/machine/Creality Sermoon M300 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Sermoon M300 0.4 nozzle.json new file mode 100644 index 0000000000..bd52ae171a --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Sermoon M300 0.4 nozzle.json @@ -0,0 +1,113 @@ +{ + "type": "machine", + "name": "Creality Sermoon M300 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "HOFVUEhkatFtDeUd", + "instantiation": "true", + "printer_model": "Creality Sermoon M300", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y160 F30000\nG1 Z{z_after_toolchange} F600", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "creality_flush_time": "128", + "default_print_profile": "0.20mm Standard @Creality Sermoon M300 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "2", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "118", + "extruder_clearance_height_to_rod": "24", + "extruder_clearance_radius": "64", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "END_PRINT", + "machine_load_filament_time": "128", + "machine_max_acceleration_e": "5000", + "machine_max_acceleration_extruding": "20000", + "machine_max_acceleration_retracting": "5000", + "machine_max_acceleration_travel": "20000", + "machine_max_acceleration_x": "20000", + "machine_max_acceleration_y": "20000", + "machine_max_acceleration_z": "300", + "machine_max_jerk_e": "10", + "machine_max_jerk_x": "100", + "machine_max_jerk_y": "100", + "machine_max_jerk_z": "5", + "machine_max_speed_e": "50", + "machine_max_speed_x": "800", + "machine_max_speed_y": "800", + "machine_max_speed_z": "10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "PAUSE", + "machine_platform_motion_enable": "1", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_hrc": "0", + "nozzle_type": "hardened_steel", + "nozzle_volume": "183", + "parking_pos_retraction": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,300x0,300x300,0x300", + "printable_height": "200", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "96x96,300x300", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Sermoon M300-all" + ], + "deretraction_speed": "40", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "1", + "max_layer_height": "0.35", + "min_layer_height": "0.1", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "70", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "199", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "30", + "retraction_length": "0.8", + "retraction_minimum_travel": "1", + "retraction_speed": "40", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Auto Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Sermoon M300 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Sermoon M300 0.6 nozzle.json new file mode 100644 index 0000000000..e8cd96e845 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Sermoon M300 0.6 nozzle.json @@ -0,0 +1,119 @@ +{ + "type": "machine", + "name": "Creality Sermoon M300 0.6 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "IVoSH2oMNLuH2D1s", + "instantiation": "true", + "printer_model": "Creality Sermoon M300", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y160 F30000\nG1 Z{z_after_toolchange} F600", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "creality_flush_time": "128", + "default_print_profile": "0.30mm Standard @Creality Sermoon M300 0.6 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "118", + "extruder_clearance_height_to_rod": "24", + "extruder_clearance_radius": "64", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "END_PRINT", + "machine_load_filament_time": "128", + "machine_max_acceleration_e": "5000", + "machine_max_acceleration_extruding": "20000", + "machine_max_acceleration_retracting": "5000", + "machine_max_acceleration_travel": "20000", + "machine_max_acceleration_x": "20000", + "machine_max_acceleration_y": "20000", + "machine_max_acceleration_z": "300", + "machine_max_jerk_e": "10", + "machine_max_jerk_x": "100", + "machine_max_jerk_y": "100", + "machine_max_jerk_z": "5", + "machine_max_speed_e": "50", + "machine_max_speed_x": "800", + "machine_max_speed_y": "800", + "machine_max_speed_z": "10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "PAUSE", + "machine_platform_motion_enable": "1", + "machine_ptc_exist": "0", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "hardened_steel", + "nozzle_volume": "183", + "parking_pos_retraction": "0", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,300x0,300x300,0x300", + "printable_height": "200", + "printer_technology": "FFF", + "printer_variant": "0.6", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "96x96/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Sermoon M300-all" + ], + "deretraction_speed": "30", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.42", + "min_layer_height": "0.12", + "nozzle_diameter": [ + "0.6" + ], + "retract_before_wipe": "90%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "199", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "1.5", + "retraction_minimum_travel": "2", + "retraction_speed": "30", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Slope Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Sermoon M300 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Sermoon M300 0.8 nozzle.json new file mode 100644 index 0000000000..299bb1679b --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Sermoon M300 0.8 nozzle.json @@ -0,0 +1,119 @@ +{ + "type": "machine", + "name": "Creality Sermoon M300 0.8 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "JFD4mtUYcImChJkw", + "instantiation": "true", + "printer_model": "Creality Sermoon M300", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y160 F30000\nG1 Z{z_after_toolchange} F600", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "creality_flush_time": "128", + "default_print_profile": "0.40mm Standard @Creality Sermoon M300 0.8 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "118", + "extruder_clearance_height_to_rod": "24", + "extruder_clearance_radius": "64", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "machine_LED_light_exist": "0", + "machine_end_gcode": "END_PRINT", + "machine_load_filament_time": "128", + "machine_max_acceleration_e": "5000", + "machine_max_acceleration_extruding": "20000", + "machine_max_acceleration_retracting": "5000", + "machine_max_acceleration_travel": "20000", + "machine_max_acceleration_x": "20000", + "machine_max_acceleration_y": "20000", + "machine_max_acceleration_z": "300", + "machine_max_jerk_e": "10", + "machine_max_jerk_x": "100", + "machine_max_jerk_y": "100", + "machine_max_jerk_z": "5", + "machine_max_speed_e": "50", + "machine_max_speed_x": "800", + "machine_max_speed_y": "800", + "machine_max_speed_z": "10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "PAUSE", + "machine_platform_motion_enable": "1", + "machine_ptc_exist": "0", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "hardened_steel", + "nozzle_volume": "183", + "parking_pos_retraction": "0", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,300x0,300x300,0x300", + "printable_height": "200", + "printer_technology": "FFF", + "printer_variant": "0.8", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "96x96/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "Generic PLA @Sermoon M300-all" + ], + "deretraction_speed": "30", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.56", + "min_layer_height": "0.16", + "nozzle_diameter": [ + "0.8" + ], + "retract_before_wipe": "90%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "199", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "2", + "retraction_minimum_travel": "2", + "retraction_speed": "30", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Slope Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Sermoon M300.json b/resources/profiles/Creality/machine/Creality Sermoon M300.json new file mode 100644 index 0000000000..b0d59958cc --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Sermoon M300.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Sermoon M300", + "nozzle_diameter": "0.8;0.6;0.4", + "bed_model": "creality_cr10v2_buildplate_model.stl", + "default_bed_type": "Textured PEI Plate", + "bed_texture": "creality_cr10v2_buildplate_texture.svg", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_Sermoon_M300", + "default_materials": "Generic ASA @Sermoon M300-all;Generic ABS @Sermoon M300-all;Hyper PLA-CF @Sermoon M300-all;Hyper PETG @Sermoon M300-all;Hyper ABS @Sermoon M300-all;Generic PLA-Silk @Sermoon M300-all;Generic PLA @Sermoon M300-all;Generic PETG @Sermoon M300-all;CR-Silk @Sermoon M300-all;CR-PETG @Sermoon M300-all;CR-ABS @Sermoon M300-all;CR-PLA @Sermoon M300-all;Hyper PLA @Sermoon M300-all" +} diff --git a/resources/profiles/Creality/machine/Creality Sermoon V1 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Sermoon V1 0.4 nozzle.json index 2d7f0a63d8..a120b5f629 100644 --- a/resources/profiles/Creality/machine/Creality Sermoon V1 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Sermoon V1 0.4 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "printer_model": "Creality Sermoon V1", "default_filament_profile": [ - "Generic PLA @Creality" + "CR-PLA @Sermoon V1 Pro-all" ], "default_print_profile": "0.20mm Standard @Creality Sermoon V1", "nozzle_diameter": [ diff --git a/resources/profiles/Creality/machine/Creality Sermoon V1 Pro 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Sermoon V1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..036ec9c791 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Sermoon V1 Pro 0.4 nozzle.json @@ -0,0 +1,119 @@ +{ + "type": "machine", + "name": "Creality Sermoon V1 Pro 0.4 nozzle", + "inherits": "fdm_creality_common", + "from": "system", + "setting_id": "s7iFo8yEpyRUvd5w", + "instantiation": "true", + "printer_model": "Creality Sermoon V1 Pro", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "0", + "bbl_use_printhost": "0", + "bed_exclude_area": "0x0", + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", + "best_object_pos": "0.5,0.5", + "change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X42 Y180 F30000\nG1 Z{z_after_toolchange} F600", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "creality_flush_time": "119", + "default_print_profile": "0.20mm Standard @Creality Sermoon V1 Pro 0.4 nozzle", + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "100", + "extruder_clearance_height_to_rod": "50", + "extruder_clearance_radius": "60", + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "marlin", + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "machine_LED_light_exist": "1", + "machine_end_gcode": "G91 ;Relative positionning\nG1 E-2 F2700 ;Retract a bit\nG1 E-2 Z0.2 F2400 ;Retract and raise Z\nG1 X5 Y5 F3000 ;Wipe out\nG1 Z10 ;Raise Z more\nG90 ;Absolute positionning\nG1 X0 Y0 ;Present print\nM106 S0 ;Turn-off fan\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM84 X Y E ;Disable all steppers but Z", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": "5000", + "machine_max_acceleration_extruding": "500", + "machine_max_acceleration_retracting": "500", + "machine_max_acceleration_travel": "20000", + "machine_max_acceleration_x": "500", + "machine_max_acceleration_y": "500", + "machine_max_acceleration_z": "500", + "machine_max_jerk_e": "5", + "machine_max_jerk_x": "10", + "machine_max_jerk_y": "10", + "machine_max_jerk_z": "0.4", + "machine_max_speed_e": "50", + "machine_max_speed_x": "500", + "machine_max_speed_y": "500", + "machine_max_speed_z": "10", + "machine_min_extruding_rate": "0,0", + "machine_min_travel_rate": "0,0", + "machine_pause_gcode": "M25", + "machine_platform_motion_enable": "1", + "machine_start_gcode": "M220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\n\nM140 S[bed_temperature_initial_layer_single] ;Set final bed temp \nG28 ;Home\n\nG92 E0 ;Reset Extruder\nG1 Z2.0 F3000 ;Move Z Axis up\nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nG1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position\nM190 S[bed_temperature_initial_layer_single] ;Wait for bed temp to stabilize \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X10.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line\nG1 X10.4 Y145.0 Z0.28 F5000.0 ;Move to side a little\nG1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line\nG92 E0 ;Reset Extruder\nG1 E-1.0000 F1800 ;Retract a bit\nG1 Z2.0 F3000 ;Move Z Axis up\nG1 E0.0000 F1800", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "nozzle_height": "4", + "nozzle_hrc": "0", + "nozzle_type": "brass", + "nozzle_volume": "0", + "parking_pos_retraction": "0", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "prime_tower_position_type": "Middle Upper", + "printable_area": "0x0,175x0,175x175,0x175", + "printable_height": "165", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "purge_in_prime_tower": "0", + "scan_first_layer": "0", + "single_extruder_multi_material": "1", + "support_air_filtration": "0", + "support_chamber_temp_control": "0", + "support_multi_bed_types": "1", + "thumbnails": "96x96/PNG, 300x300/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "default_filament_profile": [ + "CR-PLA @Sermoon V1 Pro-all" + ], + "deretraction_speed": "30", + "extruder_colour": "#FCE94F", + "extruder_offset": "0x0", + "long_retractions_when_cut": "0", + "max_layer_height": "0.2", + "min_layer_height": "0.08", + "nozzle_diameter": [ + "0.4" + ], + "retract_before_wipe": "90%", + "retract_length_toolchange": "0", + "retract_lift_above": "0", + "retract_lift_below": "164", + "retract_lift_enforce": "All Surfaces", + "retract_restart_extra": "0", + "retract_restart_extra_toolchange": "0", + "retract_when_changing_layer": "1", + "retraction_distances_when_cut": "18", + "retraction_length": "0.8", + "retraction_minimum_travel": "2", + "retraction_speed": "30", + "travel_slope": "3", + "wipe": "1", + "wipe_distance": "2", + "z_hop": "0.4", + "z_hop_types": "Normal Lift" +} diff --git a/resources/profiles/Creality/machine/Creality Sermoon V1 Pro.json b/resources/profiles/Creality/machine/Creality Sermoon V1 Pro.json new file mode 100644 index 0000000000..df70f60379 --- /dev/null +++ b/resources/profiles/Creality/machine/Creality Sermoon V1 Pro.json @@ -0,0 +1,13 @@ +{ + "type": "machine_model", + "name": "Creality Sermoon V1 Pro", + "nozzle_diameter": "0.4", + "bed_model": "creality_k1_buildplate_model.stl", + "default_bed_type": "Cool Plate", + "bed_texture": "", + "family": "Creality", + "hotend_model": "", + "machine_tech": "FFF", + "model_id": "Creality_Sermoon_V1_Pro", + "default_materials": "CR-TPU @Sermoon V1 Pro-all;CR-PETG @Sermoon V1 Pro-all;Generic ABS @Sermoon V1 Pro-all;CR-PLA @Sermoon V1 Pro-all;Hyper PLA @Sermoon V1 Pro-all" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 0.4 nozzle.json new file mode 100644 index 0000000000..1ceb571964 --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality CR-10 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "yTrl8J125QyD9a2d", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "7", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "35", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "25", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "20", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "35", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "8%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.08", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "30", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50%", + "overhang_3_4_speed": "30%", + "overhang_4_4_speed": "10%", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "35", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "35", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "35", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 Smart 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 Smart 0.4 nozzle.json new file mode 100644 index 0000000000..3f7fed4cee --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 Smart 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality CR-10 Smart 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "butEbLsfJxOh1bvl", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "7", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10 Smart 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "40", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "40", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "8%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.08", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "30", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "40", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "40", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "40", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 Smart Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 Smart Pro 0.4 nozzle.json new file mode 100644 index 0000000000..ced90481ab --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10 Smart Pro 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality CR-10 Smart Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "3bm7MqdMcjbw0Cam", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "7", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10 Smart Pro 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "60", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "20", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "70", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "8%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.08", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "60", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "15", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "60", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "60", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10S Pro V2 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10S Pro V2 0.4 nozzle.json new file mode 100644 index 0000000000..66c1943722 --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-10S Pro V2 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality CR-10S Pro V2 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "Mig8EoCpkEcf3ziy", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "8", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10S Pro V2 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "35", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "35", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "8%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.08", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "30", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "35", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "35", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "35", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-20 Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-20 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..7a0a132cb4 --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality CR-20 Pro 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality CR-20 Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "HTuSW1dDbNcU2jYF", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "7", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "30", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-20 Pro 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "10", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "10", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "10", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "35", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "100%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "8%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.08", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "10", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "30", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50%", + "overhang_3_4_speed": "30%", + "overhang_4_4_speed": "10%", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "5", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "35", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "35", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "10", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-2 Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-2 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..3821bf9d72 --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-2 Pro 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality Ender-2 Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "AGNseZJ1dDlfxSpJ", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "7", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-2 Pro 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "20", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "60", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "70", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.08", + "line_width": "0.45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "50", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "70", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "60", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "60", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "50", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Max 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Max 0.4 nozzle.json new file mode 100644 index 0000000000..de2456da79 --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Max 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality Ender-3 Max 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "oaCT7YTo6y4UFStp", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "7", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "30", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 Max 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "10", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "40", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "10", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "10", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "50", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "100%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "8%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.08", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "10", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "50", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "5", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "70", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "50", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "10", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "40", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Max Neo 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Max Neo 0.4 nozzle.json new file mode 100644 index 0000000000..0e4b49c1db --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Max Neo 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality Ender-3 Max Neo 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "RS4QkLYzrl7h45WD", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "7", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "30", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 Max Neo 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "10", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "40", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "10", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "10", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "50", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "100%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "8%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.08", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "10", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "50", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "5", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "70", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "50", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "10", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "40", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Neo 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Neo 0.4 nozzle.json new file mode 100644 index 0000000000..b5c1c6ac56 --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Ender-3 Neo 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality Ender-3 Neo 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "T1a6nt3lzdMsvyDH", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "7", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 Neo 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "40", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "40", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "8%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.08", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "30", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "40", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "40", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "40", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Sermoon D3 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Sermoon D3 0.4 nozzle.json new file mode 100644 index 0000000000..7be15b7f7a --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Sermoon D3 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality Sermoon D3 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "hgzLcDIojpLI4XXw", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "8", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon D3 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "0", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "25", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "25", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "50", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "80", + "ironing_angle": "90", + "ironing_flow": "8", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.08", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "50", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "80", + "speed_limit_to_height": "[[100,150,100,6000],\n [150,200,80,5500],\n [200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "90", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "8", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "50", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Sermoon V1 Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Sermoon V1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..8da87bc0e9 --- /dev/null +++ b/resources/profiles/Creality/process/0.08mm Extra Fine @Creality Sermoon V1 Pro 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.08mm Extra Fine @Creality Sermoon V1 Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "ylm8cO9jHjj6P5pV", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "8", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon V1 Pro 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "0", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "70", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "70", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "80", + "ironing_angle": "90", + "ironing_flow": "8", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.08", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "70", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "3", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "80", + "speed_limit_to_height": "[[100,150,100,6000],\n [150,200,80,5500],\n [200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "70", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "60", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "9", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "70", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality CR-6 0.2.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality CR-6 0.2.json index d33349495f..65e63734ff 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality CR-6 0.2.json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality CR-6 0.2.json @@ -20,5 +20,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.2 nozzle", "Creality CR-6 Max 0.2 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.2.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.2.json index 230b17d517..98e3b8460f 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.2.json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.2.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "9", "top_shell_layers": "11", "layer_height": "0.08", - "bridge_flow": "0.7" -} + "bridge_flow": "0.7", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.25.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.25.json index aa1fb27356..a41c195976 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.25.json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.25.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "9", "top_shell_layers": "11", "layer_height": "0.08", - "bridge_flow": "0.7" -} + "bridge_flow": "0.7", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.3.json b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.3.json index d1e542b304..8ed82a6eed 100644 --- a/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.3.json +++ b/resources/profiles/Creality/process/0.08mm SuperDetail @Creality Ender5Pro (2019) 0.3.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "9", "top_shell_layers": "11", "layer_height": "0.08", - "bridge_flow": "0.7" -} + "bridge_flow": "0.7", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.10mm HighDetail @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.10mm HighDetail @Creality CR-6 0.4.json index 792e4bf7a3..10228d278b 100644 --- a/resources/profiles/Creality/process/0.10mm HighDetail @Creality CR-6 0.4.json +++ b/resources/profiles/Creality/process/0.10mm HighDetail @Creality CR-6 0.4.json @@ -18,5 +18,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.4 nozzle", "Creality CR-6 Max 0.4 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.2.json b/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.2.json index dfb5e9c47d..60a7132c79 100644 --- a/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.2.json +++ b/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.2.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "7", "top_shell_layers": "9", "layer_height": "0.1", - "bridge_flow": "0.7" -} + "bridge_flow": "0.7", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.25.json b/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.25.json index 05874dce2a..071e03351c 100644 --- a/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.25.json +++ b/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.25.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "7", "top_shell_layers": "9", "layer_height": "0.1", - "bridge_flow": "0.7" -} + "bridge_flow": "0.7", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.3.json b/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.3.json index bd46eedd26..1726af7779 100644 --- a/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.3.json +++ b/resources/profiles/Creality/process/0.10mm HighDetail @Creality Ender5Pro (2019) 0.3.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "7", "top_shell_layers": "9", "layer_height": "0.1", - "bridge_flow": "0.7" -} + "bridge_flow": "0.7", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.2.json b/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.2.json index 148e6ca5d9..82aa1d69c6 100644 --- a/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.2.json +++ b/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.2.json @@ -20,5 +20,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.2 nozzle", "Creality CR-6 Max 0.2 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.4.json index 89456915ee..90ca992996 100644 --- a/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.4.json +++ b/resources/profiles/Creality/process/0.12mm Detail @Creality CR-6 0.4.json @@ -13,5 +13,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.4 nozzle", "Creality CR-6 Max 0.4 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.2.json b/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.2.json index ad1efe2985..8039bf2a18 100644 --- a/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.2.json +++ b/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.2.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "6", "top_shell_layers": "7", "layer_height": "0.12", - "bridge_flow": "0.7" -} + "bridge_flow": "0.7", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.25.json b/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.25.json index 691b29d56a..2e3dcd7f35 100644 --- a/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.25.json +++ b/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.25.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "6", "top_shell_layers": "7", "layer_height": "0.12", - "bridge_flow": "0.7" -} + "bridge_flow": "0.7", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.3.json b/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.3.json index e1eea95fd2..3c191ec24a 100644 --- a/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.3.json +++ b/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.3.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "6", "top_shell_layers": "7", "layer_height": "0.12", - "bridge_flow": "0.7" -} + "bridge_flow": "0.7", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.5.json b/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.5.json index 5334f80bed..8f9cf150e3 100644 --- a/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.5.json +++ b/resources/profiles/Creality/process/0.12mm Detail @Creality Ender5Pro (2019) 0.5.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "6", "top_shell_layers": "7", "layer_height": "0.12", - "bridge_flow": "0.7" -} + "bridge_flow": "0.7", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality CR10Max.json b/resources/profiles/Creality/process/0.12mm Fine @Creality CR10Max.json index dc15cc7123..8c65593d23 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality CR10Max.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality CR10Max.json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality CR-10 Max 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.2.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.2.json index 41f8e5b490..d2fd6f68e1 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.2.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.4.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.4.json index 10c03ba2a4..90919815b8 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.4.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.6.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.6.json index 8be588c2d6..f0007702c4 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.6.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.8.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.8.json index b87ff8fad8..9f34c3442b 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.8.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.2.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.2.json index 2abe6f6862..b5bf31d804 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.2.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.4.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.4.json index cd3243dc7d..92fc5427a8 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.4.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.6.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.6.json index 93e4e9b816..dc7b38858e 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.6.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.8.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.8.json index 0dfcd85243..0d5d63248f 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.8.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3 Pro 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3V2.json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3V2.json index 1ef7613160..7f31205706 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3V2.json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender3V2.json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 V2 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender5Pro (2019).json b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender5Pro (2019).json index 753f7dee03..f9c11085b3 100644 --- a/resources/profiles/Creality/process/0.12mm Fine @Creality Ender5Pro (2019).json +++ b/resources/profiles/Creality/process/0.12mm Fine @Creality Ender5Pro (2019).json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5 Pro (2019) 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.12mm Standard @Creality Sermoon M300 0.4 nozzle.json b/resources/profiles/Creality/process/0.12mm Standard @Creality Sermoon M300 0.4 nozzle.json new file mode 100644 index 0000000000..465df95b50 --- /dev/null +++ b/resources/profiles/Creality/process/0.12mm Standard @Creality Sermoon M300 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.12mm Standard @Creality Sermoon M300 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "ZOP2kgwd4yGaTltF", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "10", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "12000", + "default_jerk": "12", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "250", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "2000", + "initial_layer_infill_speed": "105", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "300", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "200", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "250", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.12", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "200", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "40", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "300", + "speed_limit_to_height": "[[100,150,100,6000],[150,200,80,5500],[200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "6", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "5000", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "200", + "travel_acceleration": "12000", + "travel_jerk": "4", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.15mm Optimal @Creality CR10Max.json b/resources/profiles/Creality/process/0.15mm Optimal @Creality CR10Max.json index 997f874554..f5fde4bc85 100644 --- a/resources/profiles/Creality/process/0.15mm Optimal @Creality CR10Max.json +++ b/resources/profiles/Creality/process/0.15mm Optimal @Creality CR10Max.json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality CR-10 Max 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.15mm Optimal @Creality Ender3V2.json b/resources/profiles/Creality/process/0.15mm Optimal @Creality Ender3V2.json index 979f70e7a5..2450f7bade 100644 --- a/resources/profiles/Creality/process/0.15mm Optimal @Creality Ender3V2.json +++ b/resources/profiles/Creality/process/0.15mm Optimal @Creality Ender3V2.json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 V2 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.15mm Optimal @Creality Ender5Pro (2019).json b/resources/profiles/Creality/process/0.15mm Optimal @Creality Ender5Pro (2019).json index f731a0fbac..6042d4d458 100644 --- a/resources/profiles/Creality/process/0.15mm Optimal @Creality Ender5Pro (2019).json +++ b/resources/profiles/Creality/process/0.15mm Optimal @Creality Ender5Pro (2019).json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5 Pro (2019) 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 0.4 nozzle.json new file mode 100644 index 0000000000..a6bea52616 --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality CR-10 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "BtecBhTYyinrVQFz", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "30", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "50", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "100", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.16", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50%", + "overhang_3_4_speed": "30%", + "overhang_4_4_speed": "10%", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "30", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "30", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "3", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 Smart 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 Smart 0.4 nozzle.json new file mode 100644 index 0000000000..b6bb4210da --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 Smart 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality CR-10 Smart 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "rdzOHhJEPbarUR3Q", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10 Smart 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "30", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "50", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "100", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.16", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "30", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "30", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "3", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 Smart Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 Smart Pro 0.4 nozzle.json new file mode 100644 index 0000000000..a97753b2dc --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10 Smart Pro 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality CR-10 Smart Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "LJbKpfmvGswSJysf", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10 Smart Pro 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "60", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "20", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "60", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "100", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.16", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "50", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "15", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "50", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "60", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "3", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10S Pro V2 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10S Pro V2 0.4 nozzle.json new file mode 100644 index 0000000000..81a5ee48c3 --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-10S Pro V2 0.4 nozzle.json @@ -0,0 +1,229 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality CR-10S Pro V2 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "a8UILdzfT7Jvodmq", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10S Pro V2 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "30", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "50", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "100", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.16", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "spiral_mode": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "30", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "30", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-20 Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-20 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..acd0a89782 --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-20 Pro 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality CR-20 Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "IFOZoV3ULJge16uI", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "6", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "30", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-20 Pro 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "10", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "10", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "10", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "30", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "100%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "50", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.16", + "line_width": "0.45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "10", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50%", + "overhang_3_4_speed": "30%", + "overhang_4_4_speed": "10%", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "5", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "30", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "30", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "10", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.2.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.2.json index 84157fbc26..9c93cbe430 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.2.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.2.json @@ -19,5 +19,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.2 nozzle", "Creality CR-6 Max 0.2 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.4.json index c5dc0794c6..2bcfd2e51b 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.4.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.4.json @@ -41,11 +41,11 @@ "support_threshold_angle": "30", "support_top_z_distance": "0.15", "top_surface_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "tree_support_branch_angle": "40", "wall_loops": "2", "compatible_printers": [ "Creality CR-6 SE 0.4 nozzle", "Creality CR-6 Max 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.6.json index 003f549456..967a55cf81 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.6.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR-6 0.6.json @@ -20,5 +20,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.6 nozzle", "Creality CR-6 Max 0.6 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR10V2.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR10V2.json index a0c88be82a..c45781a428 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality CR10V2.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality CR10V2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality CR-10 V2 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-2 Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-2 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..810c79f8ba --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-2 Pro 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality Ender-2 Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "ODK9virAvPP70d4c", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-2 Pro 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "40", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "20", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "50", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.16", + "line_width": "0.45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "40", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "50", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "40", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Max 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Max 0.4 nozzle.json new file mode 100644 index 0000000000..21c9ace1df --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Max 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality Ender-3 Max 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "3Z5wEVkpMgJE2HPp", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "6", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "30", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 Max 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "10", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "40", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "10", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "10", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "50", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "100%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.16", + "line_width": "0.45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "10", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "40", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "5", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "50", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "10", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "40", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Max Neo 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Max Neo 0.4 nozzle.json new file mode 100644 index 0000000000..0c11d1aec4 --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Max Neo 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality Ender-3 Max Neo 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "eTiCi22QXm4V8Quh", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "6", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "30", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 Max Neo 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "10", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "40", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "10", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "10", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "50", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "100%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.16", + "line_width": "0.45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "10", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "40", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "5", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "50", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "10", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "40", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Neo 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Neo 0.4 nozzle.json new file mode 100644 index 0000000000..cab9dadf96 --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender-3 Neo 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality Ender-3 Neo 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "SQ04SvR2NsqqjdBh", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "5", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 Neo 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "25", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "30", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "50", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "100", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.16", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "30", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "30", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "3", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.2.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.2.json index 1664978e87..206549e65c 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.2.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.4.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.4.json index ac767b8490..72da659565 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.4.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.6.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.6.json index 2a5050d2b7..976d9b7116 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.6.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.8.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.8.json index 329db47286..e9f4cf9d59 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.8.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.2.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.2.json index 4096165c24..e86f3f74c5 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.2.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.4.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.4.json index ed65a2fb18..30e1cf98db 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.4.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.6.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.6.json index 9425a012a8..c3802632d5 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.6.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.8.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.8.json index 4dd044f031..cb1ad11aac 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.8.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3 Pro 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1.json index 16ef9d5d29..362cb2cad3 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.2.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.2.json index 90151f2c75..5da4a37fdd 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.2.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.4.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.4.json index de800c7b94..86ae64bfd1 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.4.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.6.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.6.json index 9030c8abe9..5eb55b60d6 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.6.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.62", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.8.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.8.json index 95b568b104..50ab4487c5 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.8.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Plus 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Pro.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Pro.json index 42661ac38d..57a7eaaf84 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Pro.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender3S1Pro.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Pro 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5.json index 837a2b1a56..ed1b002398 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Plus.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Plus.json index 569e6c021f..44ee28d720 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Plus.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Plus.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5 Plus 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.2.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.2.json index 344366907a..3a910089b8 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.2.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.2.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "5", "top_shell_layers": "7", "layer_height": "0.16", - "bridge_flow": "0.85" -} + "bridge_flow": "0.85", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.25.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.25.json index cbb8231466..74a0b56f10 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.25.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.25.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "5", "top_shell_layers": "7", "layer_height": "0.16", - "bridge_flow": "0.85" -} + "bridge_flow": "0.85", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.3.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.3.json index f8542b1e99..096d04c368 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.3.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.3.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "5", "top_shell_layers": "7", "layer_height": "0.16", - "bridge_flow": "0.85" -} + "bridge_flow": "0.85", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.5.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.5.json index bcca7d93c0..b044040489 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.5.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.5.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "5", "top_shell_layers": "7", "layer_height": "0.16", - "bridge_flow": "0.85" -} + "bridge_flow": "0.85", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.6.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.6.json index 076f5babc0..c874a2a8fd 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.6.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5Pro (2019) 0.6.json @@ -8,5 +8,6 @@ "bottom_shell_layers": "5", "top_shell_layers": "7", "bridge_flow": "0.85", - "layer_height": "0.16" -} + "layer_height": "0.16", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5S.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5S.json index d59abbd109..536cca9634 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5S.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5S.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5S 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5S1.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5S1.json index a5ce9a6b3a..9e468ec630 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5S1.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender5S1.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5 S1 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender6.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender6.json index 8e1c2e74f8..68b01b62d6 100644 --- a/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender6.json +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Ender6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-6 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon D3 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon D3 0.4 nozzle.json new file mode 100644 index 0000000000..7a62afa0e2 --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon D3 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality Sermoon D3 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "eWeXLHAR3zJzuB48", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "6", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon D3 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "0", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "70", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "25", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "25", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "80", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "100", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.16", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "70", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "100", + "speed_limit_to_height": "[[100,150,100,6000],\n [150,200,80,5500],\n [200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "90", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "6", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "70", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon V1 Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon V1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..52c8e0231a --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Optimal @Creality Sermoon V1 Pro 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.16mm Optimal @Creality Sermoon V1 Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "TrL4s7dKLZO8Wkau", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "6", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon V1 Pro 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "0", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "60", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "70", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "70", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.16", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "60", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "3", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "70", + "speed_limit_to_height": "[[100,150,100,6000],\n [150,200,80,5500],\n [200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "70", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "60", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "6", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "60", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.16mm Standard @Creality Sermoon M300 0.4 nozzle.json b/resources/profiles/Creality/process/0.16mm Standard @Creality Sermoon M300 0.4 nozzle.json new file mode 100644 index 0000000000..81b5cbd37f --- /dev/null +++ b/resources/profiles/Creality/process/0.16mm Standard @Creality Sermoon M300 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.16mm Standard @Creality Sermoon M300 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "mpS4aVNklhQbM1p7", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "10", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "12000", + "default_jerk": "12", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "250", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "2000", + "initial_layer_infill_speed": "105", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "300", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "250", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.16", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "200", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "40", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "270", + "speed_limit_to_height": "[[100,150,100,6000],[150,200,80,5500],[200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "6", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "5000", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "200", + "travel_acceleration": "12000", + "travel_jerk": "4", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.1mm Standard @Creality CR-M4 SE 0.4 nozzle.json b/resources/profiles/Creality/process/0.1mm Standard @Creality CR-M4 SE 0.4 nozzle.json new file mode 100644 index 0000000000..2c829ea440 --- /dev/null +++ b/resources/profiles/Creality/process/0.1mm Standard @Creality CR-M4 SE 0.4 nozzle.json @@ -0,0 +1,266 @@ +{ + "type": "process", + "name": "0.1mm Standard @Creality CR-M4 SE 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "z5rc7aZHBPNSx4II", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "25%", + "acceleration_limit_mess": "[[0.5,1.0,250,6000],[1.0,1.5,220,5000],[1.5,2.0,200,4000]]", + "acceleration_limit_mess_enable": "1", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "45", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0", + "brim_type": "auto_brim", + "brim_width": "0", + "compatible_printers": [ + "Creality CR-M4 SE 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "6000", + "default_jerk": "5", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "100", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "5", + "infill_wall_overlap": "25%", + "initial_layer_acceleration": "2000", + "initial_layer_infill_speed": "80", + "initial_layer_jerk": "5", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "5", + "inner_wall_line_width": "0.42", + "inner_wall_speed": "300", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "300", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "44", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.1", + "line_width": "0.4", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "0", + "ooze_prevention": "0", + "outer_wall_acceleration": "3000", + "outer_wall_jerk": "5", + "outer_wall_line_width": "0.4", + "outer_wall_speed": "200", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "3", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "300", + "speed_limit_to_height": "[[100,150,250,6000],[150,200,200,5000],[200,250,150,4000]]", + "speed_limit_to_height_enable": "1", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.38", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "3000", + "top_surface_jerk": "5", + "top_surface_line_width": "0.4", + "top_surface_pattern": "monotonic", + "top_surface_speed": "200", + "travel_acceleration": "6000", + "travel_jerk": "5", + "travel_speed": "300", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 0.4 nozzle.json new file mode 100644 index 0000000000..1faa3f2939 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality CR-10 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "yvb1ouVlo339IFEQ", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "30", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "50", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50%", + "overhang_3_4_speed": "30%", + "overhang_4_4_speed": "10%", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "30", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "30", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 Smart 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 Smart 0.4 nozzle.json new file mode 100644 index 0000000000..836d6326fe --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 Smart 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality CR-10 Smart 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "vK777nizrbrLs9Iv", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10 Smart 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "30", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "50", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "30", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "30", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 Smart Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 Smart Pro 0.4 nozzle.json new file mode 100644 index 0000000000..d128fc2679 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10 Smart Pro 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality CR-10 Smart Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "hwwvVH4BvwFFzSSV", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10 Smart Pro 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "20", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "60", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "50", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "15", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "60", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "60", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10S Pro V2 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10S Pro V2 0.4 nozzle.json new file mode 100644 index 0000000000..3a04359a46 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-10S Pro V2 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality CR-10S Pro V2 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "ogGlQxeRdyP26VID", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-10S Pro V2 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "30", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "50", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "30", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "30", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-20 Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-20 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..e9c733f426 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-20 Pro 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality CR-20 Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "GGW2QJCHjA9Piw1E", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "30", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality CR-20 Pro 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "10", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "10", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "10", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "30", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "100%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "50", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "10", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50%", + "overhang_3_4_speed": "30%", + "overhang_4_4_speed": "10%", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "5", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "30", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "30", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "10", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.4.json index 506555356e..9518526116 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.4.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.4.json @@ -9,5 +9,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.4 nozzle", "Creality CR-6 Max 0.4 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.6.json index afbdf4f130..52af5b4c3c 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.6.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-6 0.6.json @@ -17,5 +17,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.6 nozzle", "Creality CR-6 Max 0.6 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR-M4 SE 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-M4 SE 0.4 nozzle.json new file mode 100644 index 0000000000..8a0fd8fc76 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR-M4 SE 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality CR-M4 SE 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "V5SGWqAfJSwoeSyb", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "25%", + "acceleration_limit_mess": "[[0.5,1.0,220,6000],[1.0,1.5,200,5000],[1.5,2.0,180,4000]]", + "acceleration_limit_mess_enable": "1", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0.8", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "35", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0", + "brim_type": "no_brim", + "brim_width": "0", + "compatible_printers": [ + "Creality CR-M4 SE 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "6000", + "default_jerk": "5", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "80", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "2000", + "initial_layer_infill_speed": "60", + "initial_layer_jerk": "5", + "initial_layer_line_width": "0.55", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "3000", + "inner_wall_jerk": "5", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "200", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "300", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "44", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "0", + "ooze_prevention": "0", + "outer_wall_acceleration": "3000", + "outer_wall_jerk": "5", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "150", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "20", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "3", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "zig-zag", + "sparse_infill_speed": "300", + "speed_limit_to_height": "[[100,150,220,6000],[150,200,200,5000],[200,250,180,4000]]", + "speed_limit_to_height_enable": "1", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "0.95", + "top_surface_acceleration": "3000", + "top_surface_jerk": "5", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "200", + "travel_acceleration": "6000", + "travel_jerk": "8", + "travel_speed": "400", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR10Max.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR10Max.json index dd416019bd..6a1e75827e 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality CR10Max.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR10Max.json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality CR-10 Max 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V2.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V2.json index 339f526068..b04ea99897 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V2.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality CR-10 V2 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V3 0.4.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V3 0.4.json index 6a21dbbb0f..d97214d18b 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V3 0.4.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V3 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality CR-10 V3 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V3 0.6.json b/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V3 0.6.json index 17fc2be073..ba5d371743 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V3 0.6.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality CR10V3 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality CR-10 V3 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-2 Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-2 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..0c12d556e1 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-2 Pro 0.4 nozzle.json @@ -0,0 +1,268 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality Ender-2 Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "DpqbZYPz3h3o2hXb", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-2 Pro 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "40", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "20", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "50", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "40", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "25", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "50", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "40", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_hybrid_cross_height": "1", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Max 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Max 0.4 nozzle.json new file mode 100644 index 0000000000..5ae4ca6216 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Max 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality Ender-3 Max 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "VRyLZfy1XDKFijOq", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "30", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 Max 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "10", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "40", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "10", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "10", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "50", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "100%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "10", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "40", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "5", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "50", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "10", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "40", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Max Neo 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Max Neo 0.4 nozzle.json new file mode 100644 index 0000000000..63372d27f9 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Max Neo 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality Ender-3 Max Neo 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "1gLpNz58JJPmIfbz", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "30", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 Max Neo 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "10", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "40", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "10", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "10", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "50", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "100%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "60", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "10", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "40", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "5", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "60", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "50", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "50", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "10", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "40", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Neo 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Neo 0.4 nozzle.json new file mode 100644 index 0000000000..3a7a1bce96 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 Neo 0.4 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality Ender-3 Neo 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "vlPovqqFXXoN0Qkb", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "50%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 Neo 0.4 nozzle" + ], + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "30", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "20", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "50%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "30", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "50", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "25", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "20", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "50", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "30", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "30", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4\n", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "30", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 S1 Sonic 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 S1 Sonic 0.4 nozzle.json new file mode 100644 index 0000000000..cb0b0ff8e2 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-3 S1 Sonic 0.4 nozzle.json @@ -0,0 +1,265 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality Ender-3 S1 Sonic 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "xG8sAeaOvK04Eu9T", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "25%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "30", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 S1 Sonic 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "2500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "100", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "15%", + "initial_layer_acceleration": "1000", + "initial_layer_infill_speed": "50", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "30", + "initial_layer_travel_speed": "80%", + "inner_wall_acceleration": "1000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "80", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "50%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "170", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.45", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "1000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "80", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "40", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\n0.2,0.4444;\n0.4,0.6145;\n0.6,0.7059;\n0.8,0.7619;\n1.5,0.8571;\n2,0.8889;\n3,0.9231;\n5,0.9520;\n10,1", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "170", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "1", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "100", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "100", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "1500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "100", + "travel_acceleration": "2500", + "travel_jerk": "8", + "travel_speed": "200", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json index 2e08e610f9..1f98d132db 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 Max 0.4mm nozzle.json @@ -246,7 +246,7 @@ "wall_filament": "1", "outer_wall_filament_id": "0", "inner_wall_filament_id": "0", - "wall_generator": "arachne", + "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", "wall_transition_angle": "10", diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 S1 Sonic 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 S1 Sonic 0.4 nozzle.json new file mode 100644 index 0000000000..8932628726 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender-5 S1 Sonic 0.4 nozzle.json @@ -0,0 +1,265 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality Ender-5 S1 Sonic 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "0d7La3peCCBKSGE3", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "25%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000,210],[1.0,1.5,80,5500,200],[1.5,2.0,60,5000,190]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-5 S1 Sonic 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "2000", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "0", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "100", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "15%", + "initial_layer_acceleration": "1500", + "initial_layer_infill_speed": "40", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "25", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "2000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "140", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "200", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "20", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "1500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "120", + "overhang_1_4_speed": "50", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "2", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\n0.2,0.4444;\n0.4,0.6145;\n0.6,0.7059;\n0.8,0.7619;\n1.5,0.8571;\n2,0.8889;\n3,0.9231;\n5,0.9520;\n10,1", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "200", + "speed_limit_to_height": "[[100,150,100,6000,210],[150,200,80,5500,200],[200,250,60,5000,190]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "120", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "120", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "1500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonic", + "top_surface_speed": "100", + "travel_acceleration": "2000", + "travel_jerk": "8", + "travel_speed": "200", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.2.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.2.json index f1cfbfe8f3..d9a3f8d843 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.2.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.4.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.4.json index b27666455f..04f482da54 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.4.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.6.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.6.json index ee6e2ed895..49aa126fc9 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.6.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.8.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.8.json index 0a9358e108..f00217c708 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.8.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.2.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.2.json index 0c2b09e737..48e7cf9c1b 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.2.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.4.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.4.json index b93111451e..f1034dc096 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.4.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.6.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.6.json index c190f844a8..12cc62f889 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.6.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.8.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.8.json index 260cb03123..fe8bb1a5e4 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.8.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3 Pro 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3.json index dc1e84e791..a31aa422e9 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1.json index 1c2f7de443..34670dbacf 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.2.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.2.json index 6d9ab2fe28..1fcec3161e 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.2.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.4.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.4.json index cd152d2d75..9ee5a55fe2 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.4.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.6.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.6.json index e97c038247..f91ecf1797 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.6.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.62", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.8.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.8.json index 49582a273f..881b39db32 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.8.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Plus 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Pro.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Pro.json index 19346b5d19..f91af9f64f 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Pro.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3S1Pro.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Pro 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3V2.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3V2.json index c20ff406ed..a450d82df2 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3V2.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender3V2.json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 V2 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5.json index efaba44268..d1e55ceb63 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Plus.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Plus.json index a1ad472270..63dffa4336 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Plus.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Plus.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5 Plus 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.25.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.25.json index be515b9d65..473c237402 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.25.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.25.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "4", "top_shell_layers": "5", - "layer_height": "0.20" -} + "layer_height": "0.20", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.3.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.3.json index 8920fa0caa..0fefec6b07 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.3.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.3.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "4", "top_shell_layers": "5", - "layer_height": "0.20" -} + "layer_height": "0.20", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.5.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.5.json index 6dc555ab8d..b15cfe4803 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.5.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.5.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "4", "top_shell_layers": "5", - "layer_height": "0.20" -} + "layer_height": "0.20", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.6.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.6.json index bf5f94e023..7d2dac16ee 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.6.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.6.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "4", "top_shell_layers": "4", - "layer_height": "0.20" -} + "layer_height": "0.20", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.8.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.8.json index 80356a6239..68d25ccb89 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.8.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019) 0.8.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "4", "top_shell_layers": "5", - "layer_height": "0.20" -} + "layer_height": "0.20", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019).json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019).json index 4c9413c6e1..e768f4b576 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019).json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5Pro (2019).json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5 Pro (2019) 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5S.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5S.json index 761c7164c8..5ef8ae6d74 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5S.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5S.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5S 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5S1.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5S1.json index fac00205d0..2a6697d283 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5S1.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender5S1.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5 S1 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender6.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender6.json index 3ffeed2563..af385078a9 100644 --- a/resources/profiles/Creality/process/0.20mm Standard @Creality Ender6.json +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Ender6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-6 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon D3 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon D3 0.4 nozzle.json new file mode 100644 index 0000000000..21b8e95b5c --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon D3 0.4 nozzle.json @@ -0,0 +1,265 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality Sermoon D3 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "kiVhgHnzhfIiaHHv", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon D3 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "0", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "80", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "25", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "25", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "90", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "100", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "80", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "100", + "speed_limit_to_height": "[[100,150,100,6000],\n [150,200,80,5500],\n [200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "90", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "80", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "120", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "3", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon D3 Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon D3 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..ed7a20248e --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon D3 Pro 0.4 nozzle.json @@ -0,0 +1,234 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality Sermoon D3 Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "5k3qANKv9ylFh4Fz", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "25", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon D3 Pro 0.4 nozzle" + ], + "default_acceleration": "3000", + "default_jerk": "10", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "0", + "fuzzy_skin": "none", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "200", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "10", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "80", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "40", + "initial_layer_travel_speed": "100", + "inner_wall_acceleration": "1500", + "inner_wall_jerk": "10", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "200", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "70", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "200", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "100", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "1", + "outer_wall_acceleration": "1500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "150", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "preheat_time": "5", + "prime_tower_brim_width": "5", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "20", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "zig-zag", + "sparse_infill_speed": "200", + "spiral_mode": "0", + "staggered_inner_seams": "1", + "standby_temperature_delta": "-70", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.4", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_bottom_infill_wall_overlap": "30%", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "1500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "120", + "travel_acceleration": "3000", + "travel_jerk": "10", + "travel_speed": "300", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "50", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon M300 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon M300 0.4 nozzle.json new file mode 100644 index 0000000000..c27a3b2bb5 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon M300 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality Sermoon M300 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "3BRxuCkpfcCuRQtt", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "25", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "12000", + "default_jerk": "12", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "250", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "2000", + "initial_layer_infill_speed": "105", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "300", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "250", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "200", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "40", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "270", + "speed_limit_to_height": "[[100,150,100,6000],[150,200,80,5500],[200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "5000", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "200", + "travel_acceleration": "12000", + "travel_jerk": "4", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon V1 Pro 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon V1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..07b8b5b843 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Standard @Creality Sermoon V1 Pro 0.4 nozzle.json @@ -0,0 +1,265 @@ +{ + "type": "process", + "name": "0.20mm Standard @Creality Sermoon V1 Pro 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "OqNEI1eawVONwK5y", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "6", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.2", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon V1 Pro 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "500", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "0", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "60", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "15", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "500", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "70", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "70", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "500", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "60", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "35", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "3", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15%", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "70", + "speed_limit_to_height": "[[100,150,100,6000],\n [150,200,80,5500],\n [200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "70", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "70", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "6", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "500", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "60", + "travel_acceleration": "500", + "travel_jerk": "8", + "travel_speed": "100", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Ultrafast @Creality CR-M4 SE 0.4 nozzle.json b/resources/profiles/Creality/process/0.20mm Ultrafast @Creality CR-M4 SE 0.4 nozzle.json new file mode 100644 index 0000000000..c25d688744 --- /dev/null +++ b/resources/profiles/Creality/process/0.20mm Ultrafast @Creality CR-M4 SE 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.20mm Ultrafast @Creality CR-M4 SE 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "MdU3VLkLFPl7z0JA", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "25%", + "acceleration_limit_mess": "[[0.5,1.0,250,6000],[1.0,1.5,220,5000],[1.5,2.0,200,4000]]", + "acceleration_limit_mess_enable": "1", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0.8", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "0.95", + "bridge_no_support": "0", + "bridge_speed": "35", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0", + "brim_type": "auto_brim", + "brim_width": "0", + "compatible_printers": [ + "Creality CR-M4 SE 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "6000", + "default_jerk": "5", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "1", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "0", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "80", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "25%", + "initial_layer_acceleration": "2000", + "initial_layer_infill_speed": "80", + "initial_layer_jerk": "5", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "6000", + "inner_wall_jerk": "5", + "inner_wall_line_width": "0.42", + "inner_wall_speed": "300", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "300", + "ironing_angle": "-1", + "ironing_flow": "15%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.1", + "ironing_speed": "44", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.2", + "line_width": "0.4", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "10", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "0", + "ooze_prevention": "0", + "outer_wall_acceleration": "3000", + "outer_wall_jerk": "5", + "outer_wall_line_width": "0.4", + "outer_wall_speed": "200", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "20", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "2", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "3", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.53", + "sparse_infill_pattern": "zig-zag", + "sparse_infill_speed": "300", + "speed_limit_to_height": "[[100,150,250,6000],[150,200,220,5000],[200,250,180,4000]]", + "speed_limit_to_height_enable": "1", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.38", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "0.95", + "top_surface_acceleration": "4000", + "top_surface_jerk": "5", + "top_surface_line_width": "0.4", + "top_surface_pattern": "monotonic", + "top_surface_speed": "200", + "travel_acceleration": "6000", + "travel_jerk": "8", + "travel_speed": "300", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json b/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json index 944efd7c84..b893e31512 100644 --- a/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json +++ b/resources/profiles/Creality/process/0.20mm Ultrafast @Creality Ender-5 Max 0.4mm nozzle.json @@ -248,7 +248,7 @@ "wall_filament": "1", "outer_wall_filament_id": "0", "inner_wall_filament_id": "0", - "wall_generator": "arachne", + "wall_generator": "classic", "wall_loops": "2", "wall_sequence": "inner wall/outer wall", "wall_transition_angle": "10", diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.4.json index 613aba63aa..f55fb25cd5 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.4.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.4.json @@ -18,5 +18,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.4 nozzle", "Creality CR-6 Max 0.4 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.6.json index 9280c29399..58dd958ba4 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.6.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality CR-6 0.6.json @@ -18,5 +18,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.6 nozzle", "Creality CR-6 Max 0.6 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality CR10Max.json b/resources/profiles/Creality/process/0.24mm Draft @Creality CR10Max.json index 30dceb8779..6b3d6ee09b 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality CR10Max.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality CR10Max.json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality CR-10 Max 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.2.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.2.json index 321a209d41..3cb09b1428 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.2.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.4.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.4.json index a7eeb4b431..cadcfad296 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.4.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.6.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.6.json index 0f72e86f78..c57f18fb58 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.6.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.8.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.8.json index bb97f10bd8..5c9925f6dd 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.8.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.2.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.2.json index ae13bbdc2e..cea6715713 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.2.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.4.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.4.json index b75a5f183d..f146ede84d 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.4.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.6.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.6.json index 435d40e856..49532a9f89 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.6.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.8.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.8.json index 80677ecbe6..e6712e9e0c 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.8.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3 Pro 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.2.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.2.json index 40969e1d77..68465e6552 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.2.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "10%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.4.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.4.json index 2366b2862a..6bb4b876b5 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.4.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "10%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.6.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.6.json index 5889b22d33..5abfb69109 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.6.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "10%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.62", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.8.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.8.json index 2790d07d1b..4a5441d441 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.8.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3S1Plus 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "10%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 S1 Plus 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3V2.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3V2.json index af0c60205c..860302e43a 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3V2.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender3V2.json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 V2 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.3.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.3.json index 0e0eb4dc85..51746e618e 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.3.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.3.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.24" -} + "layer_height": "0.24", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.5.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.5.json index 63dc2bc305..fc0373a88a 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.5.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.5.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.24" -} + "layer_height": "0.24", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.6.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.6.json index 6049703a62..467e9fcc4c 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.6.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.6.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.24" -} + "layer_height": "0.24", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.8.json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.8.json index 942736f2cd..c7784056a9 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.8.json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019) 0.8.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.24" -} + "layer_height": "0.24", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019).json b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019).json index 389f793d31..41aea9d7dd 100644 --- a/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019).json +++ b/resources/profiles/Creality/process/0.24mm Draft @Creality Ender5Pro (2019).json @@ -29,7 +29,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "500", - "travel_acceleration": "700", + "travel_acceleration": "500", "inner_wall_acceleration": "500", "initial_layer_line_width": "0.5", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-5 Pro (2019) 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Optimal @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.24mm Optimal @Creality CR-6 0.8.json index 2591c462cf..005429f059 100644 --- a/resources/profiles/Creality/process/0.24mm Optimal @Creality CR-6 0.8.json +++ b/resources/profiles/Creality/process/0.24mm Optimal @Creality CR-6 0.8.json @@ -19,5 +19,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.8 nozzle", "Creality CR-6 Max 0.8 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.24mm Standard @Creality Ender-3 V3 0.8 nozzle.json b/resources/profiles/Creality/process/0.24mm Standard @Creality Ender-3 V3 0.8 nozzle.json new file mode 100644 index 0000000000..733342116a --- /dev/null +++ b/resources/profiles/Creality/process/0.24mm Standard @Creality Ender-3 V3 0.8 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.24mm Standard @Creality Ender-3 V3 0.8 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "Bw1CXOOnrWY8XI5Y", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "80", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "25", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 V3 0.8 nozzle" + ], + "default_acceleration": "12000", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "60", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.82", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "40", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.82", + "inner_wall_speed": "150", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "60", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.82", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "150", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.24", + "line_width": "0.82", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.82", + "outer_wall_speed": "100", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "1", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.82", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "120", + "speed_limit_to_height": "[[100,150,200,6000],[150,200,200,4000],[200,250,200,2000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "1", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.82", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "1.2", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "2000", + "top_surface_jerk": "6", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "100", + "travel_acceleration": "12000", + "travel_jerk": "12", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.24mm Standard @Creality Sermoon M300 0.4 nozzle.json b/resources/profiles/Creality/process/0.24mm Standard @Creality Sermoon M300 0.4 nozzle.json new file mode 100644 index 0000000000..3d0cb37b46 --- /dev/null +++ b/resources/profiles/Creality/process/0.24mm Standard @Creality Sermoon M300 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.24mm Standard @Creality Sermoon M300 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "aMb2KnBA5Bge7QK5", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "12000", + "default_jerk": "12", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "250", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "2000", + "initial_layer_infill_speed": "105", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "300", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "250", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.24", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "200", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "40", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "270", + "speed_limit_to_height": "[[100,150,100,6000],[150,200,80,5500],[200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "5000", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "200", + "travel_acceleration": "12000", + "travel_jerk": "4", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.28mm Standard @Creality Sermoon M300 0.4 nozzle.json b/resources/profiles/Creality/process/0.28mm Standard @Creality Sermoon M300 0.4 nozzle.json new file mode 100644 index 0000000000..eec508a598 --- /dev/null +++ b/resources/profiles/Creality/process/0.28mm Standard @Creality Sermoon M300 0.4 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.28mm Standard @Creality Sermoon M300 0.4 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "hXOJrGuHUxSYTTMX", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "50", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon M300 0.4 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "12000", + "default_jerk": "12", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "250", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "2000", + "initial_layer_infill_speed": "105", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.5", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "60", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.45", + "inner_wall_speed": "200", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "150%", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.42", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "250", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.28", + "line_width": "0.42", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.42", + "outer_wall_speed": "200", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "40", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.45", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "200", + "speed_limit_to_height": "[[100,150,100,6000],[150,200,80,5500],[200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "5000", + "top_surface_jerk": "8", + "top_surface_line_width": "0.42", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "200", + "travel_acceleration": "12000", + "travel_jerk": "4", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.4.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.4.json index bbc6626580..5944ce484a 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.4.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.4.json @@ -14,5 +14,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.4 nozzle", "Creality CR-6 Max 0.4 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.6.json index 711cbe34f1..68d265c753 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.6.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality CR-6 0.6.json @@ -18,5 +18,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.6 nozzle", "Creality CR-6 Max 0.6 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.2.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.2.json index 4c2962dd26..5a810c75ce 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.2.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.4.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.4.json index 9eba8aff2a..4cbf66e846 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.4.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.6.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.6.json index 6ac861cab4..01e71dfffb 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.6.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.8.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.8.json index 3ae69265a6..84bf155e9f 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.8.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.2.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.2.json index ee377bed8a..0ca70c8485 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.2.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.2.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.22", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.2 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.4.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.4.json index ce72fbf16b..f08cb153a0 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.4.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.4.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.42", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.4 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.6.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.6.json index 6231185dad..460cfa057f 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.6.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.6.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.63", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.6 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.8.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.8.json index 364fab8fa5..da67ee9abb 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.8.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender3 Pro 0.8.json @@ -30,7 +30,7 @@ "sparse_infill_density": "15%", "sparse_infill_pattern": "crosshatch", "initial_layer_acceleration": "0", - "travel_acceleration": "0", + "travel_acceleration": "500", "inner_wall_acceleration": "0", "initial_layer_line_width": "0.82", "initial_layer_print_height": "0.2", @@ -104,4 +104,4 @@ "compatible_printers": [ "Creality Ender-3 Pro 0.8 nozzle" ] -} +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.5.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.5.json index b4e0c86367..03edf37aa8 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.5.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.5.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.28" -} + "layer_height": "0.28", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.6.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.6.json index d0c557248c..a4b93ff235 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.6.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.6.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.28" -} + "layer_height": "0.28", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.8.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.8.json index c55b785ef3..75e0b17c81 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.8.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 0.8.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.28" -} + "layer_height": "0.28", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 1.0.json b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 1.0.json index 2caba2b00c..85549a3c62 100644 --- a/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 1.0.json +++ b/resources/profiles/Creality/process/0.28mm SuperDraft @Creality Ender5Pro (2019) 1.0.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.28" -} + "layer_height": "0.28", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.30mm Standard @Creality Sermoon M300 0.6 nozzle.json b/resources/profiles/Creality/process/0.30mm Standard @Creality Sermoon M300 0.6 nozzle.json new file mode 100644 index 0000000000..8bd1562e5d --- /dev/null +++ b/resources/profiles/Creality/process/0.30mm Standard @Creality Sermoon M300 0.6 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.30mm Standard @Creality Sermoon M300 0.6 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "9zjICdioPQnj6GRp", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "25", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon M300 0.6 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "12000", + "default_jerk": "12", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "60", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.62", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.3", + "initial_layer_speed": "40", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.62", + "inner_wall_speed": "150", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "70", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.62", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "150", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.3", + "line_width": "0.62", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.62", + "outer_wall_speed": "100", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "40", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.62", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "120", + "speed_limit_to_height": "[[100,150,100,6000],[150,200,80,5500],[200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "2000", + "top_surface_jerk": "8", + "top_surface_line_width": "0.62", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "100", + "travel_acceleration": "12000", + "travel_jerk": "4", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.32mm Chunky @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.32mm Chunky @Creality CR-6 0.6.json index b7eccb8181..981c71aa66 100644 --- a/resources/profiles/Creality/process/0.32mm Chunky @Creality CR-6 0.6.json +++ b/resources/profiles/Creality/process/0.32mm Chunky @Creality CR-6 0.6.json @@ -19,5 +19,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.6 nozzle", "Creality CR-6 Max 0.6 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.32mm Standard @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.32mm Standard @Creality CR-6 0.8.json index acc5ad1799..abdeb19af1 100644 --- a/resources/profiles/Creality/process/0.32mm Standard @Creality CR-6 0.8.json +++ b/resources/profiles/Creality/process/0.32mm Standard @Creality CR-6 0.8.json @@ -19,5 +19,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.8 nozzle", "Creality CR-6 Max 0.8 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.32mm Standard @Creality Ender-3 V3 0.8 nozzle.json b/resources/profiles/Creality/process/0.32mm Standard @Creality Ender-3 V3 0.8 nozzle.json new file mode 100644 index 0000000000..6f74b9884e --- /dev/null +++ b/resources/profiles/Creality/process/0.32mm Standard @Creality Ender-3 V3 0.8 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.32mm Standard @Creality Ender-3 V3 0.8 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "sQaSuiuAXUSCOLNx", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "80", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "25", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 V3 0.8 nozzle" + ], + "default_acceleration": "12000", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "60", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.82", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "40", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.82", + "inner_wall_speed": "150", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "60", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.82", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "150", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.32", + "line_width": "0.82", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.82", + "outer_wall_speed": "100", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "1", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.82", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "120", + "speed_limit_to_height": "[[100,150,200,6000],[150,200,200,4000],[200,250,200,2000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "1", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.82", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "1.2", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "2000", + "top_surface_jerk": "6", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "100", + "travel_acceleration": "12000", + "travel_jerk": "12", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.5.json b/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.5.json index 469ed08efe..1a9131a536 100644 --- a/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.5.json +++ b/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.5.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.36" -} + "layer_height": "0.36", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.6.json b/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.6.json index c8428476c1..dad7e4e3ca 100644 --- a/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.6.json +++ b/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.6.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.36" -} + "layer_height": "0.36", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.8.json b/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.8.json index db5b10390a..50a0fbbfb5 100644 --- a/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.8.json +++ b/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 0.8.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.36" -} + "layer_height": "0.36", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 1.0.json b/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 1.0.json index f007be85a1..6e5225820f 100644 --- a/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 1.0.json +++ b/resources/profiles/Creality/process/0.36mm Chunky @Creality Ender5Pro (2019) 1.0.json @@ -7,5 +7,6 @@ "instantiation": "true", "bottom_shell_layers": "3", "top_shell_layers": "4", - "layer_height": "0.36" -} + "layer_height": "0.36", + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.36mm SuperChunky @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.36mm SuperChunky @Creality CR-6 0.6.json index d9308a459c..743bfab007 100644 --- a/resources/profiles/Creality/process/0.36mm SuperChunky @Creality CR-6 0.6.json +++ b/resources/profiles/Creality/process/0.36mm SuperChunky @Creality CR-6 0.6.json @@ -19,5 +19,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.6 nozzle", "Creality CR-6 Max 0.6 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.40mm Draft @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.40mm Draft @Creality CR-6 0.8.json index e46d858e3e..4ecbcd005d 100644 --- a/resources/profiles/Creality/process/0.40mm Draft @Creality CR-6 0.8.json +++ b/resources/profiles/Creality/process/0.40mm Draft @Creality CR-6 0.8.json @@ -19,5 +19,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.8 nozzle", "Creality CR-6 Max 0.8 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.40mm Standard @Creality Ender-3 V3 0.8 nozzle.json b/resources/profiles/Creality/process/0.40mm Standard @Creality Ender-3 V3 0.8 nozzle.json new file mode 100644 index 0000000000..711240ce39 --- /dev/null +++ b/resources/profiles/Creality/process/0.40mm Standard @Creality Ender-3 V3 0.8 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.40mm Standard @Creality Ender-3 V3 0.8 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "QJ4FcHAVV0dlByvx", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "80", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "25", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "no_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 V3 0.8 nozzle" + ], + "default_acceleration": "12000", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "60", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.82", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "40", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.82", + "inner_wall_speed": "150", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "60", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.82", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "150", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.4", + "line_width": "0.82", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.82", + "outer_wall_speed": "100", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "1", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.82", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "120", + "speed_limit_to_height": "[[100,150,200,6000],[150,200,200,4000],[200,250,200,2000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "1", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.82", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "1.2", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "2000", + "top_surface_jerk": "6", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "100", + "travel_acceleration": "12000", + "travel_jerk": "12", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.40mm Standard @Creality Ender-3 V3 Plus 0.8 nozzle.json b/resources/profiles/Creality/process/0.40mm Standard @Creality Ender-3 V3 Plus 0.8 nozzle.json new file mode 100644 index 0000000000..b79383003d --- /dev/null +++ b/resources/profiles/Creality/process/0.40mm Standard @Creality Ender-3 V3 Plus 0.8 nozzle.json @@ -0,0 +1,265 @@ +{ + "type": "process", + "name": "0.40mm Standard @Creality Ender-3 V3 Plus 0.8 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "2FbOTrX2tEcmbpzg", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "25%", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "0.9\n", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "25", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 V3 Plus 0.8 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "12000", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "60", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.82", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "40", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.82", + "inner_wall_speed": "150", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "60", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.82", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "150", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.4", + "line_width": "0.82", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "1", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.82", + "outer_wall_speed": "100", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "1", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\n0.2,0.4444;\n0.4,0.6145;\n0.6,0.7059;\n0.8,0.7619;\n1.5,0.8571;\n2,0.8889;\n3,0.9231;\n5,0.9520;\n10,1", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.82", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "120", + "speed_limit_to_height": "[[150,200,200,2000],[200,250,200,1500],[250,330,200,1000]]", + "speed_limit_to_height_enable": "1", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "1", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.7", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "1.2", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "2000", + "top_surface_jerk": "6", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "100", + "travel_acceleration": "12000", + "travel_jerk": "12", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.40mm Standard @Creality Sermoon M300 0.8 nozzle.json b/resources/profiles/Creality/process/0.40mm Standard @Creality Sermoon M300 0.8 nozzle.json new file mode 100644 index 0000000000..d87052212c --- /dev/null +++ b/resources/profiles/Creality/process/0.40mm Standard @Creality Sermoon M300 0.8 nozzle.json @@ -0,0 +1,267 @@ +{ + "type": "process", + "name": "0.40mm Standard @Creality Sermoon M300 0.8 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "DWhukqzI9XI80fTQ", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "100", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "ai_infill": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100%", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "20", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Sermoon M300 0.8 nozzle" + ], + "counterbore_hole_bridging": "none", + "default_acceleration": "8000", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "dont_filter_internal_bridges": "disabled", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_fill_target": "everywhere", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "0", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "8", + "infill_wall_overlap": "30%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "60", + "initial_layer_jerk": "6", + "initial_layer_line_width": "0.82", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "40", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "3000", + "inner_wall_jerk": "6", + "inner_wall_line_width": "0.82", + "inner_wall_speed": "150", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "70", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.82", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "150", + "ironing_angle": "90", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.4", + "line_width": "0.82", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "material_flow_dependent_temperature": "0", + "material_flow_temp_graph": "[[3.0,210],[10.0,220],[12.0,230]]", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_length_factor": "0.5", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "3000", + "outer_wall_jerk": "6", + "outer_wall_line_width": "0.82", + "outer_wall_speed": "100", + "overhang_1_4_speed": "50", + "overhang_2_4_speed": "35", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "0", + "prime_tower_brim_width": "3", + "prime_tower_enhance_type": "chamfer", + "prime_tower_width": "40", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_order": "default", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "scarf_angle_threshold": "155", + "scarf_joint_flow_ratio": "1", + "scarf_joint_speed": "100%", + "scarf_overhang_threshold": "40%", + "seam_gap": "10%", + "seam_position": "aligned", + "seam_slope_conditional": "0", + "seam_slope_entire_loop": "0", + "seam_slope_inner_walls": "0", + "seam_slope_min_length": "20", + "seam_slope_start_height": "0", + "seam_slope_steps": "10", + "seam_slope_type": "none", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_area_infill_flow_compensation": "0", + "small_area_infill_flow_compensation_model": "0,0;\"\\n0.2,0.4444\";\"\\n0.4,0.6145\";\"\\n0.6,0.7059\";\"\\n0.8,0.7619\";\"\\n1.5,0.8571\";\"\\n2,0.8889\";\"\\n3,0.9231\";\"\\n5,0.9520\";\"\\n10,1\"", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.82", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "120", + "speed_limit_to_height": "[[100,150,100,6000],[150,200,80,5500],[200,250,60,5000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "0", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.42", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "2000", + "top_surface_jerk": "6", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "100", + "travel_acceleration": "12000", + "travel_jerk": "4", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_direction": "auto", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.44mm SuperExtraChunky @Creality CR-6 0.6.json b/resources/profiles/Creality/process/0.44mm SuperExtraChunky @Creality CR-6 0.6.json index 1dbda2a495..ef589df505 100644 --- a/resources/profiles/Creality/process/0.44mm SuperExtraChunky @Creality CR-6 0.6.json +++ b/resources/profiles/Creality/process/0.44mm SuperExtraChunky @Creality CR-6 0.6.json @@ -19,5 +19,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.6 nozzle", "Creality CR-6 Max 0.6 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.48mm Chunky @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.48mm Chunky @Creality CR-6 0.8.json index b2efb112b8..7b18819cf4 100644 --- a/resources/profiles/Creality/process/0.48mm Chunky @Creality CR-6 0.8.json +++ b/resources/profiles/Creality/process/0.48mm Chunky @Creality CR-6 0.8.json @@ -19,5 +19,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.8 nozzle", "Creality CR-6 Max 0.8 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.48mm Draft @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.48mm Draft @Creality CR-6 0.8.json index a19aca4ffa..230c78f146 100644 --- a/resources/profiles/Creality/process/0.48mm Draft @Creality CR-6 0.8.json +++ b/resources/profiles/Creality/process/0.48mm Draft @Creality CR-6 0.8.json @@ -19,5 +19,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.8 nozzle", "Creality CR-6 Max 0.8 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file diff --git a/resources/profiles/Creality/process/0.48mm Standard @Creality Ender-3 V3 0.8 nozzle.json b/resources/profiles/Creality/process/0.48mm Standard @Creality Ender-3 V3 0.8 nozzle.json new file mode 100644 index 0000000000..c0a99987a7 --- /dev/null +++ b/resources/profiles/Creality/process/0.48mm Standard @Creality Ender-3 V3 0.8 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.48mm Standard @Creality Ender-3 V3 0.8 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "fLJ9BGiQBqcWStvh", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "80", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "25", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 V3 0.8 nozzle" + ], + "default_acceleration": "12000", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "60", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.82", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "40", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.82", + "inner_wall_speed": "150", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "60", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.82", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "150", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.48", + "line_width": "0.82", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.82", + "outer_wall_speed": "100", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "1", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.82", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "120", + "speed_limit_to_height": "[[100,150,200,6000],[150,200,200,4000],[200,250,200,2000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "1", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.82", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "1.2", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "2000", + "top_surface_jerk": "6", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "100", + "travel_acceleration": "12000", + "travel_jerk": "12", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.56mm Standard @Creality Ender-3 V3 0.8 nozzle.json b/resources/profiles/Creality/process/0.56mm Standard @Creality Ender-3 V3 0.8 nozzle.json new file mode 100644 index 0000000000..495478eb61 --- /dev/null +++ b/resources/profiles/Creality/process/0.56mm Standard @Creality Ender-3 V3 0.8 nozzle.json @@ -0,0 +1,244 @@ +{ + "type": "process", + "name": "0.56mm Standard @Creality Ender-3 V3 0.8 nozzle", + "inherits": "fdm_process_creality_common", + "from": "system", + "setting_id": "OHaFzyRDGPTe34TZ", + "instantiation": "true", + "accel_to_decel_enable": "1", + "accel_to_decel_factor": "80", + "acceleration_limit_mess": "[[0.5,1.0,100,6000],[1.0,1.5,80,5500],[1.5,2.0,60,5000]]", + "acceleration_limit_mess_enable": "0", + "alternate_extra_wall": "0", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bottom_solid_infill_flow_ratio": "1", + "bottom_surface_pattern": "monotonic", + "bridge_acceleration": "50%", + "bridge_angle": "0", + "bridge_density": "100", + "bridge_flow": "1", + "bridge_no_support": "0", + "bridge_speed": "25", + "brim_ears_detection_length": "1", + "brim_ears_max_angle": "125", + "brim_object_gap": "0.1", + "brim_type": "auto_brim", + "brim_width": "5", + "compatible_printers": [ + "Creality Ender-3 V3 0.8 nozzle" + ], + "default_acceleration": "12000", + "default_jerk": "8", + "detect_narrow_internal_solid_infill": "1", + "detect_overhang_wall": "1", + "detect_thin_wall": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.15", + "elefant_foot_compensation_layers": "1", + "enable_arc_fitting": "1", + "enable_overhang_speed": "1", + "enable_prime_tower": "0", + "enable_support": "0", + "enforce_support_layers": "0", + "ensure_vertical_shell_thickness": "ensure_all", + "exclude_object": "1", + "extra_perimeters_on_overhangs": "0", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "filter_out_gap_fill": "0", + "flush_into_infill": "0", + "flush_into_objects": "0", + "flush_into_support": "1", + "fuzzy_skin": "none", + "fuzzy_skin_first_layer": "0", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "gap_infill_speed": "50", + "gcode_add_line_number": "0", + "gcode_comments": "0", + "gcode_label_objects": "1", + "hole_to_polyhole": "0", + "hole_to_polyhole_threshold": "0.01", + "hole_to_polyhole_twisted": "1", + "independent_support_layer_height": "1", + "infill_anchor": "400%", + "infill_anchor_max": "20", + "infill_combination": "0", + "infill_direction": "45", + "infill_jerk": "12", + "infill_wall_overlap": "30", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "60", + "initial_layer_jerk": "8", + "initial_layer_line_width": "0.82", + "initial_layer_min_bead_width": "85%", + "initial_layer_print_height": "0.4", + "initial_layer_speed": "40", + "initial_layer_travel_speed": "100%", + "inner_wall_acceleration": "5000", + "inner_wall_jerk": "8", + "inner_wall_line_width": "0.82", + "inner_wall_speed": "150", + "interface_shells": "0", + "internal_bridge_flow": "1", + "internal_bridge_speed": "60", + "internal_solid_infill_acceleration": "100%", + "internal_solid_infill_line_width": "0.82", + "internal_solid_infill_pattern": "monotonic", + "internal_solid_infill_speed": "150", + "ironing_angle": "-1", + "ironing_flow": "10%", + "ironing_pattern": "zig-zag", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_support_layer": "0", + "ironing_type": "no ironing", + "is_infill_first": "0", + "layer_height": "0.56", + "line_width": "0.82", + "make_overhang_printable": "0", + "make_overhang_printable_angle": "55", + "make_overhang_printable_hole_size": "0", + "max_bridge_length": "10", + "max_travel_detour_distance": "0", + "max_volumetric_extrusion_rate_slope": "0", + "max_volumetric_extrusion_rate_slope_segment_length": "3", + "min_bead_width": "85%", + "min_feature_size": "25%", + "min_width_top_surface": "300%", + "minimum_sparse_infill_area": "15", + "minimum_support_area": "5", + "mmu_segmented_region_interlocking_depth": "0", + "mmu_segmented_region_max_width": "0", + "only_one_wall_first_layer": "0", + "only_one_wall_top": "1", + "ooze_prevention": "0", + "outer_wall_acceleration": "5000", + "outer_wall_jerk": "8", + "outer_wall_line_width": "0.82", + "outer_wall_speed": "100", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "30", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "10", + "overhang_reverse": "0", + "overhang_reverse_internal_only": "0", + "overhang_reverse_threshold": "50%", + "precise_outer_wall": "1", + "prime_tower_brim_width": "3", + "prime_tower_width": "60", + "prime_volume": "45", + "print_flow_ratio": "1", + "print_sequence": "by layer", + "raft_contact_distance": "0.1", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "2", + "raft_layers": "0", + "reduce_crossing_wall": "0", + "reduce_infill_retraction": "1", + "resolution": "0.012", + "role_based_wipe_speed": "1", + "seam_gap": "10%", + "seam_position": "aligned", + "single_extruder_multi_material_priming": "0", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "0", + "skirt_speed": "50", + "slice_closing_radius": "0.049", + "slicing_mode": "regular", + "slow_down_layers": "0", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "50%", + "small_perimeter_threshold": "0", + "solid_infill_filament": "1", + "sparse_infill_acceleration": "100%", + "sparse_infill_density": "15", + "sparse_infill_filament": "1", + "sparse_infill_line_width": "0.82", + "sparse_infill_pattern": "grid", + "sparse_infill_speed": "120", + "speed_limit_to_height": "[[100,150,200,6000],[150,200,200,4000],[200,250,200,2000]]", + "speed_limit_to_height_enable": "0", + "spiral_mode": "0", + "spiral_mode_max_xy_smoothing": "200%", + "spiral_mode_smooth": "0", + "staggered_inner_seams": "1", + "standby_temperature_delta": "-5", + "support_angle": "0", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_bottom_interface_spacing": "0.5", + "support_bottom_z_distance": "0.2", + "support_critical_regions_only": "0", + "support_expansion": "0", + "support_filament": "0", + "support_interface_bottom_layers": "2", + "support_interface_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_not_for_body": "1", + "support_interface_pattern": "auto", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_interface_top_layers": "2", + "support_line_width": "0.82", + "support_object_xy_distance": "0.35", + "support_on_build_plate_only": "0", + "support_remove_small_overhang": "1", + "support_speed": "150", + "support_style": "default", + "support_threshold_angle": "30", + "support_top_z_distance": "0.2", + "support_type": "normal(auto)", + "support_xy_overrides_z": "xy_overrides_z", + "thick_bridges": "0", + "thick_internal_bridges": "1", + "timelapse_type": "0", + "top_shell_layers": "5", + "top_shell_thickness": "1.2", + "top_solid_infill_flow_ratio": "1", + "top_surface_acceleration": "2000", + "top_surface_jerk": "6", + "top_surface_line_width": "0.82", + "top_surface_pattern": "monotonicline", + "top_surface_speed": "100", + "travel_acceleration": "12000", + "travel_jerk": "12", + "travel_speed": "500", + "travel_speed_z": "0", + "tree_support_adaptive_layer_height": "1", + "tree_support_angle_slow": "25", + "tree_support_auto_brim": "1", + "tree_support_branch_angle": "45", + "tree_support_branch_angle_organic": "40", + "tree_support_branch_diameter": "2", + "tree_support_branch_diameter_angle": "5", + "tree_support_branch_diameter_double_wall": "3", + "tree_support_branch_diameter_organic": "2", + "tree_support_branch_distance": "5", + "tree_support_branch_distance_organic": "1", + "tree_support_brim_width": "3", + "tree_support_tip_diameter": "0.8", + "tree_support_top_rate": "30%", + "tree_support_wall_count": "0", + "wall_distribution_count": "1", + "wall_filament": "1", + "wall_generator": "classic", + "wall_loops": "2", + "wall_sequence": "inner wall/outer wall", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "wipe_before_external_loop": "0", + "wipe_on_loops": "0", + "wipe_speed": "80%", + "wipe_tower_bridging": "10", + "wipe_tower_cone_angle": "0", + "wipe_tower_extra_spacing": "100%", + "wipe_tower_no_sparse_layers": "0", + "wipe_tower_rotation_angle": "0", + "wiping_volumes_extruders": "70,70,70,70,70,70,70,70,70,70", + "xy_contour_compensation": "0", + "xy_hole_compensation": "0" +} diff --git a/resources/profiles/Creality/process/0.56mm SuperChunky @Creality CR-6 0.8.json b/resources/profiles/Creality/process/0.56mm SuperChunky @Creality CR-6 0.8.json index 665d997917..21e5710c14 100644 --- a/resources/profiles/Creality/process/0.56mm SuperChunky @Creality CR-6 0.8.json +++ b/resources/profiles/Creality/process/0.56mm SuperChunky @Creality CR-6 0.8.json @@ -19,5 +19,6 @@ "compatible_printers": [ "Creality CR-6 SE 0.8 nozzle", "Creality CR-6 Max 0.8 nozzle" - ] -} + ], + "travel_acceleration": "500" +} \ No newline at end of file From b4b4438a473a0e36c01796683a28756927136f25 Mon Sep 17 00:00:00 2001 From: Kris Austin <kris.austin@gmail.com> Date: Sun, 20 Sep 2026 08:24:55 -0500 Subject: [PATCH 49/76] fix: custom G-code keyword check uses the wrong list and skips the editor (#14908) --- src/libslic3r/GCode.cpp | 4 +- src/libslic3r/GCode/GCodeProcessor.cpp | 4 +- src/libslic3r/GCode/GCodeProcessor.hpp | 2 +- src/slic3r/GUI/Tab.cpp | 20 ++++++- tests/fff_print/CMakeLists.txt | 1 + tests/fff_print/test_gcodeprocessor.cpp | 79 +++++++++++++++++++++++++ 6 files changed, 103 insertions(+), 7 deletions(-) create mode 100644 tests/fff_print/test_gcodeprocessor.cpp diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index d9cc1d4a11..e5d3e58554 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -2378,9 +2378,9 @@ namespace DoExport { static const unsigned int MAX_TAGS_COUNT = 5; std::vector<std::pair<std::string, std::string>> ret; - auto check = [&ret](const std::string& source, const std::string& gcode) { + auto check = [&ret, is_bbl_printer = print.is_BBL_printer()](const std::string& source, const std::string& gcode) { std::vector<std::string> tags; - if (GCodeProcessor::contains_reserved_tags(gcode, MAX_TAGS_COUNT, tags)) { + if (GCodeProcessor::contains_reserved_tags(gcode, MAX_TAGS_COUNT, tags, is_bbl_printer)) { if (!tags.empty()) { size_t i = 0; while (ret.size() < MAX_TAGS_COUNT && i < tags.size()) { diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 6fc7717386..7932bc11a6 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -2609,7 +2609,7 @@ bool GCodeProcessor::contains_reserved_tag(const std::string& gcode, std::string return ret; } -bool GCodeProcessor::contains_reserved_tags(const std::string& gcode, unsigned int max_count, std::vector<std::string>& found_tag) +bool GCodeProcessor::contains_reserved_tags(const std::string& gcode, unsigned int max_count, std::vector<std::string>& found_tag, bool is_bbl_printer) { max_count = std::max(max_count, 1U); @@ -2618,7 +2618,7 @@ bool GCodeProcessor::contains_reserved_tags(const std::string& gcode, unsigned i CNumericLocalesSetter locales_setter; GCodeReader parser; - auto& _tags = s_IsBBLPrinter ? Reserved_Tags : Reserved_Tags_compatible; + auto& _tags = is_bbl_printer ? Reserved_Tags : Reserved_Tags_compatible; parser.parse_buffer(gcode, [&ret, &found_tag, max_count, _tags](GCodeReader& parser, const GCodeReader::GCodeLine& line) { std::string comment = line.raw(); if (comment.length() > 2 && comment.front() == ';') { diff --git a/src/libslic3r/GCode/GCodeProcessor.hpp b/src/libslic3r/GCode/GCodeProcessor.hpp index 0f211f133e..a677912add 100644 --- a/src/libslic3r/GCode/GCodeProcessor.hpp +++ b/src/libslic3r/GCode/GCodeProcessor.hpp @@ -521,7 +521,7 @@ class Print; static bool contains_reserved_tag(const std::string& gcode, std::string& found_tag); // checks the given gcode for reserved tags and returns true when finding any // (the first max_count found tags are returned into found_tag) - static bool contains_reserved_tags(const std::string& gcode, unsigned int max_count, std::vector<std::string>& found_tag); + static bool contains_reserved_tags(const std::string& gcode, unsigned int max_count, std::vector<std::string>& found_tag, bool is_bbl_printer); static int get_gcode_last_filament(const std::string &gcode_str); static bool get_last_z_from_gcode(const std::string& gcode_str, double& z); diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index a7e2d3ad3e..f6c1cbf901 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -3991,7 +3991,7 @@ void TabPrintLayer::update_custom_dirty(std::vector<std::string> &dirty_options, bool Tab::validate_custom_gcode(const wxString& title, const std::string& gcode) { std::vector<std::string> tags; - bool invalid = GCodeProcessor::contains_reserved_tags(gcode, 5, tags); + bool invalid = GCodeProcessor::contains_reserved_tags(gcode, 5, tags, wxGetApp().preset_bundle->is_bbl_vendor()); if (invalid) { std::string lines = ":\n"; for (const std::string& keyword : tags) @@ -4020,11 +4020,27 @@ static void validate_custom_gcode_cb(Tab* tab, ConfigOptionsGroupShp opt_group, tab->on_value_change(opt_key, value); } +// Orca: names the field the way its page does. The option label alone is ambiguous, as the machine's +// and the filament's custom G-code are both labelled "Start G-code". +static wxString custom_gcode_group_title(const Page* page, const t_config_option_key& opt_key) +{ + if (page) + for (const auto& opt_group : page->m_optgroups) + for (const auto& opt : opt_group->opt_map()) + if (opt.second.first == opt_key) + return opt_group->title; + return from_u8(opt_key); +} + void Tab::edit_custom_gcode(const t_config_option_key& opt_key) { EditGCodeDialog dlg = EditGCodeDialog(this, opt_key, get_custom_gcode(opt_key)); if (dlg.ShowModal() == wxID_OK) { - set_custom_gcode(opt_key, dlg.get_edited_gcode()); + const std::string edited_gcode = dlg.get_edited_gcode(); + // Orca: this dialog writes the value straight into the config, bypassing the field's change + // handler, so the reserved keyword check has to run here as it does when editing in place. + validate_custom_gcodes_was_shown = !validate_custom_gcode(custom_gcode_group_title(m_active_page, opt_key), edited_gcode); + set_custom_gcode(opt_key, edited_gcode); update_dirty(); update(); } diff --git a/tests/fff_print/CMakeLists.txt b/tests/fff_print/CMakeLists.txt index 60e1721817..b52694e793 100644 --- a/tests/fff_print/CMakeLists.txt +++ b/tests/fff_print/CMakeLists.txt @@ -9,6 +9,7 @@ add_executable(${_TEST_NAME}_tests test_fill.cpp test_flow.cpp test_gcode_timing.cpp + test_gcodeprocessor.cpp test_gcodewriter.cpp test_model.cpp test_multifilament.cpp diff --git a/tests/fff_print/test_gcodeprocessor.cpp b/tests/fff_print/test_gcodeprocessor.cpp new file mode 100644 index 0000000000..402a4757e1 --- /dev/null +++ b/tests/fff_print/test_gcodeprocessor.cpp @@ -0,0 +1,79 @@ +#include <catch2/catch_all.hpp> + +#include "libslic3r/libslic3r.h" +#include "libslic3r/GCode/GCodeProcessor.hpp" + +#include <string> +#include <vector> + +using namespace Slic3r; + +// Bambu firmware uses the " FEATURE: " style reserved tags, everything else the Slic3r-compatible +// "TYPE:" style, so which list applies depends on the printer kind passed in. +TEST_CASE("Reserved keyword detection follows the printer kind it is given", "[GCodeProcessor]") +{ + struct Case + { + const char* name; + std::string gcode; + bool reserved_on_bbl; + bool reserved_on_non_bbl; + }; + + const auto test_case = GENERATE(values<Case>({ + {"compatible feature tag", ";TYPE:Prime tower", false, true}, + {"compatible layer tag", ";LAYER_CHANGE", false, true}, + {"bbl feature tag", "; FEATURE: Outer wall", true, false}, + {"tag shared by both lists", ";_GP_FIRST_LINE_M73_PLACEHOLDER", true, true}, + {"bbl spells this one with a leading space", ";COLOR_CHANGE", false, true}, + {"ordinary comment", "; heat the bed", false, false}, + {"not a comment at all", "G1 X10 Y10 F3000", false, false}, + // A tag counts only as the whole comment's prefix, so neither a tag mentioned mid-comment + // nor one trailing a real command is a reserved use. + {"tag text later in the comment", "; the TYPE:Prime tower marker", false, false}, + {"tag trailing a command", "G1 X10 ;TYPE:Prime tower", false, false}, + })); + + DYNAMIC_SECTION(test_case.name) + { + std::vector<std::string> tags; + REQUIRE(GCodeProcessor::contains_reserved_tags(test_case.gcode, 5, tags, true) == test_case.reserved_on_bbl); + + tags.clear(); + REQUIRE(GCodeProcessor::contains_reserved_tags(test_case.gcode, 5, tags, false) == test_case.reserved_on_non_bbl); + } +} + +TEST_CASE("Reserved keyword detection reports every offending line", "[GCodeProcessor]") +{ + const std::string gcode = ";TYPE:Prime tower\nG1 X10\n;LAYER_CHANGE\n"; + + std::vector<std::string> tags; + REQUIRE(GCodeProcessor::contains_reserved_tags(gcode, 5, tags, false)); + REQUIRE(tags.size() == 2); + // Reported in the order they appear, which is what makes the max_count cut-off meaningful. + CHECK(tags[0] == "TYPE:Prime tower"); + CHECK(tags[1] == "LAYER_CHANGE"); + + SECTION("the reported count is capped at max_count") + { + tags.clear(); + REQUIRE(GCodeProcessor::contains_reserved_tags(gcode, 1, tags, false)); + CHECK(tags.size() == 1); + CHECK(tags[0] == "TYPE:Prime tower"); + } + + SECTION("a max_count of zero still reports the first tag") + { + tags.clear(); + REQUIRE(GCodeProcessor::contains_reserved_tags(gcode, 0, tags, false)); + CHECK(tags.size() == 1); + } + + SECTION("g-code with nothing reserved in it reports nothing") + { + tags.clear(); + CHECK_FALSE(GCodeProcessor::contains_reserved_tags("G28\n; home all axes\n", 5, tags, false)); + CHECK(tags.empty()); + } +} From cb98d82023d4b3c248874d6404875cdf4e3ce71d Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Sun, 20 Sep 2026 22:36:45 +0800 Subject: [PATCH 50/76] Document filament compatibility specificity and preset naming conventions --- .claude/skills/orca-profiles/SKILL.md | 6 +- .../references/filament-profiles.md | 51 ++++++++++++++++ .../skills/orca-profiles/references/naming.md | 60 +++++++++++++++++++ .../references/review-checklist.md | 15 ++++- .../orca-profiles/references/validation.md | 2 +- 5 files changed, 130 insertions(+), 4 deletions(-) create mode 100644 .claude/skills/orca-profiles/references/naming.md diff --git a/.claude/skills/orca-profiles/SKILL.md b/.claude/skills/orca-profiles/SKILL.md index 692e529074..bb755d12fa 100644 --- a/.claude/skills/orca-profiles/SKILL.md +++ b/.claude/skills/orca-profiles/SKILL.md @@ -21,6 +21,7 @@ Paths below are relative to this skill. Commands run from the repository root. | Add a printer or nozzle; change models, variants, assets or extruder vectors | [machine-profiles.md](references/machine-profiles.md) | | Add a quality tier or tune a process | [process-profiles.md](references/process-profiles.md) | | Create a vendor bundle; diagnose loading or inheritance; migrate preset names | [vendor-bundle.md](references/vendor-bundle.md) | +| Name a preset; check what a name must equal | [naming.md](references/naming.md) | | Change ids; diagnose AMS identity | [ids.md](references/ids.md), then `docs/HLSD/filament_id.md` for identity changes | | Review a profile diff | [review-checklist.md](references/review-checklist.md) | | Run checks, interpret failures, test another tree or verify in the app | [validation.md](references/validation.md) | @@ -44,7 +45,10 @@ Paths below are relative to this skill. Commands run from the repository root. update in-tree references too. See [migration rules](references/vendor-bundle.md#renamed_from). 6. **Compatibility uses exact printer variant names.** Every instantiated non-library filament needs a non-empty `compatible_printers` in its own file. Library fallbacks may omit it; - library printer-specific tunes use a non-empty list. Keep same-product tunes disjoint. + library printer-specific tunes use a non-empty list. One variant may be claimed by only one + profile per filament product (`filament_id`); an overlap is resolved by moving the variant to the + most specific preset, which is preferred over deleting a profile. See + [one variant, one profile](references/filament-profiles.md#overlapping-coverage-one-variant-one-profile-per-product). 7. **Preset values are strings or arrays of strings.** Use `"instantiation": "false"`, not `false`. Model `nozzle_diameter` is a `;`-separated string; machine `nozzle_diameter` is an array. Wrong types can abort loading; see [failure scopes](references/vendor-bundle.md#failure-modes-ranked-by-blast-radius). diff --git a/.claude/skills/orca-profiles/references/filament-profiles.md b/.claude/skills/orca-profiles/references/filament-profiles.md index b3f6acd4c4..d6679d9122 100644 --- a/.claude/skills/orca-profiles/references/filament-profiles.md +++ b/.claude/skills/orca-profiles/references/filament-profiles.md @@ -103,6 +103,57 @@ name. - Copying a base's full printer list onto a nozzle-specific variant produces duplicate combobox entries — a real shipped bug twice over. +## Overlapping coverage: one variant, one profile per product + +`filament_id` is the **product** key, not the preset key — every variant of one product shares it +(`<filament_vendor>/<filament_type>/<name-before-@>`). So if one printer variant appears in the +`compatible_printers` of two presets of that product, the slicer cannot tell them apart at AMS match time. +The C++ validator reports `Ambiguous AMS filament match: N presets share filament_id "X" … printer "Y"`. +`orca_profile_tool.py check` does **not** see it and passes. Resolve the overlap by **specificity**: keep +the variant on the most specific profile and remove it from every more general one. Deleting a profile is +the least preferred fix — moving coverage keeps the tune that users rely on. + +Judge specificity from the profile's `compatible_printers` — how many variants it actually covers — and +use the name only as a secondary, easily-vague hint; decide by the lists, with a best judgement call on +the name. Naming conventions differ by vendor: BBL's is the reference (`@<Vendor> <Model>` for a whole +model, `@<Vendor> <Model> <nozzle> nozzle` for one variant, `@<Vendor>` for a vendor-wide generic), but +others vary (`@<printer model>`, a printer serial, or Creality's `@<Model>-all`). A name never overrides +the list — see [preset naming](naming.md) for the shapes. + +Specificity, most to least: + +1. **Variant-specialized** — lists a single printer variant (BBL-style + `... @<Vendor> <Model> <nozzle> nozzle`). +2. **Model-specialized** — lists the variants of one printer model (BBL-style `... @<Vendor> <Model>`). + It should cover every variant of its model, not only the nozzle it was authored for. +3. **Family / series** — lists variants spanning a printer family or series. +4. **Generic / catch-all** — vendor-wide, covering many unrelated models (often the bare + `Generic <mat> @<Vendor>`). + +Rules: + +- A model-specialized profile is extended to **all** variants of its model, and each variant it thereby + starts covering is removed from the family and generic profiles that also listed it — including variants + that had no overlap before. Apply it per nozzle, not just 0.4. +- Apply it **per product**: trim only the material that has a specialized profile from the generic; a + material whose product has no specialized profile keeps the variant in the generic. +- Never strip coverage a variant has nowhere else to get. If a variant has no variant-level specialized + profile, the next level down keeps it; when the model has specialized profiles, the model-level one wins + over the family/generic. +- Moving coverage is preferred over deleting. If a profile must be deleted, remove the more general + one, not the specialized profile that carries the tune. +- After moving coverage, repoint the affected `default_filament_profile` (machine) and clean the model's + `default_materials`: they should name the most specific profile that covers the variant, and should not + keep generic entries that no longer cover the model. This rule applies equally when adding or fixing + defaults. + +Multiple profiles of one product with **disjoint** `compatible_printers` is the intended end state. +Adding coverage to the specialized profile and removing it from the generic is the preferred direction. + +**Detection caveat:** `orca_profile_tool.py check` is blind to this; only the C++ validator behind the full +`./scripts/check_profile.sh` reports it (`validate_system`). Always confirm with that, not the vendor-scoped +loop. + ## Alias shadowing A printer-specific filament in either the library or a vendor bundle supersedes the library fallback diff --git a/.claude/skills/orca-profiles/references/naming.md b/.claude/skills/orca-profiles/references/naming.md new file mode 100644 index 0000000000..502863f0c4 --- /dev/null +++ b/.claude/skills/orca-profiles/references/naming.md @@ -0,0 +1,60 @@ +# Preset naming + +A preset's `name` is the loader's key, not decoration. The index registers it; `inherits`, +`compatible_printers` and the `default_*` keys reference it by the exact string; `renamed_from` depends +on it; and `setting_id` / `filament_id` hash it (see [ids.md](ids.md)). Two presets of one type in a +bundle may not share a name (`check_preset_name_uniqueness`). Treat a name change as an identity change, +not a relabel. + +Naming is convention only where the loader does not parse it. What the loader actually acts on: + +| Type | Shape | Acted on | +| --- | --- | --- | +| `machine_model` | `<Model>` | the exact string, named by a variant's `printer_model` | +| `machine` | `<Model> <nozzle> nozzle` | the exact string, named by `compatible_printers`; `printer_variant` must equal a nozzle diameter | +| `process` | `<lh>mm <Quality> @<target>` | the exact string when referenced or selected; the `@<target>` half is a label | +| `filament` | `<Product> @<target>` | text before the first `@` is the **alias**, used for shadowing; the rest is a label | + +## `machine_model` + +`<Model>` — the vendor-prefixed model name (`Bambu Lab X1 Carbon`, `Creality K1`, `Prusa CORE One`). A +variant names it verbatim in `printer_model`; a mismatch makes the variant invalid. `check_name_consistency` +forces the index entry to equal the file's `name`, and the variant's `printer_model` targets this string +([A `machine_model` is not a config preset](machine-profiles.md#a-machine_model-is-not-a-config-preset)). +It is also the `<Model>_cover.png` and bed-asset stem. + +## `machine` (variant) + +`<Model> <nozzle> nozzle` is near-universal (`Bambu Lab X1 Carbon 0.4 nozzle`). `printer_variant` holds +the bare nozzle (`0.4`) and must be an exact member of the model's `nozzle_diameter` list — the hard +rules are in [The `machine` variant](machine-profiles.md#the-machine-variant). Casing varies +(`nozzle` / `Nozzle`): match the bundle, not this page. A variant that is not nozzle-specific (a special +toolhead, a multi-material build) may drop the suffix — still an exact reference. Bases are named +`fdm_machine_common` / `fdm_<vendor>_common`. + +## `process` + +`<layer height>mm <quality> @<target>` — [process-profiles.md](process-profiles.md#naming) has the +quality ladder and the `fdm_process_*` base names. The `@<target>` is a human label, not a reference: it +usually does not equal a real variant, and compatibility comes from the resolved `compatible_printers` +list or condition. + +## `filament` + +`<Product> @<target>`. The product half is what `filament_id` hashes and what survives as the **alias** up +to the first `@`; the target half is a label except for reserved forms: + +- `@base` — a non-instantiated product root. `@base` is convention; a base is really identified by + `instantiation: "false"` and no `setting_id` ([the three-part shape](filament-profiles.md#the-three-part-shape)). +- `@System` — the OrcaFilamentLibrary selectable shim. The literal `Generic <mat> @System` is + load-bearing for 3MF/project recovery, beyond the alias rule ([alias shadowing](filament-profiles.md#alias-shadowing)). +- `@<Vendor>`, `@<Vendor> <Model>`, `@<Vendor> <Model> <nozzle> nozzle` — printer tunes, BBL's shape. + Other vendors differ (a bare model, a printer serial, Creality's `@<Model>-all`). Specificity is judged + from `compatible_printers`, not the name + ([one variant, one profile](filament-profiles.md#overlapping-coverage-one-variant-one-profile-per-product)). + +## Not the same as the filename + +The loader keys off `name`, and a filename that disagrees usually still loads. Index `name` must equal the +file's `name`, and the filename should match `sub_path`; a mismatch that differs only in case breaks +another platform ([cross-platform paths](validation.md#cross-platform-paths)). diff --git a/.claude/skills/orca-profiles/references/review-checklist.md b/.claude/skills/orca-profiles/references/review-checklist.md index 0c4fa7e95a..43dc5091f8 100644 --- a/.claude/skills/orca-profiles/references/review-checklist.md +++ b/.claude/skills/orca-profiles/references/review-checklist.md @@ -79,8 +79,15 @@ and written in the preset's own file — golden rule 6, with the flattened-vs-ow inherited or copied the base's full printer list, and for two presets of one product with overlapping lists — duplicate combobox entries and an ambiguous AMS match. +Two presets of one product (`filament_id`) must not share a variant. Resolve it by specificity: move the +variant to the most specific preset and remove it from the more general ones — preferred over deleting a +profile. Then repoint the machine's `default_filament_profile` and the model's `default_materials` at the +profile that now covers it. See +[one variant, one profile](filament-profiles.md#overlapping-coverage-one-variant-one-profile-per-product). + *Why:* real shipped bugs twice (`b7b3418baf` "showing up everywhere", `ff83aa41ef` duplicate Flashforge -entries). +entries). The Python `check` passes on an overlap; only the full `check_profile.sh` (`validate_system`) +reports `Ambiguous AMS filament match`. ## 6. Model ↔ variant ↔ process consistency @@ -128,7 +135,11 @@ numbers nobody measured. ## 11. `default_materials` (checked by CI) `check` fails on a `default_materials` / `default_filament_profile` name that resolves to no system -filament, so a dangling entry no longer reaches review. Scope the run while working on one vendor: +filament, so a dangling entry no longer reaches review. When compatibility moves between profiles of a +product, the machine's `default_filament_profile` and the model's `default_materials` must be repointed at +the most specific profile that still covers the variant, dropping generic entries that no longer apply — +the same [specificity rule](filament-profiles.md#overlapping-coverage-one-variant-one-profile-per-product) +applies when adding or fixing defaults. Scope the run while working on one vendor: ```bash python3 scripts/orca_profile_tool.py check --vendor "<Vendor>" # py -3 on Windows diff --git a/.claude/skills/orca-profiles/references/validation.md b/.claude/skills/orca-profiles/references/validation.md index 497e1d4e18..aa2a7d348d 100644 --- a/.claude/skills/orca-profiles/references/validation.md +++ b/.claude/skills/orca-profiles/references/validation.md @@ -223,7 +223,7 @@ Keep stems tidy too, but a space immediately before `.json` is not a trailing pa | `references unknown compatible_printers "<p>"` | the printer was renamed or deleted; fix the reference | | `references renamed compatible_printers "<old>" (now "<new>")` | in-tree references must name the current preset; `renamed_from` does not excuse them | | `Filament preset "<f>" is missing compatible_printers setting` | non-library filaments need a non-empty list in their **own** file — the flattened-vs-own-key trap is in [filament-profiles.md](filament-profiles.md#compatible_printers) | -| `Ambiguous AMS filament match: N presets share filament_id "X" … printer "Y"` | make the lists disjoint, or fix an `inherits` pointing at another material's `@base` | +| `Ambiguous AMS filament match: N presets share filament_id "X" … printer "Y"` | make the lists disjoint by [specificity](filament-profiles.md#overlapping-coverage-one-variant-one-profile-per-product) — the specialized profile keeps the variant, the general ones drop it; prefer this over deleting a profile — or fix an `inherits` pointing at another material's `@base`. `orca_profile_tool.py check` does not catch this; only `validate_system` here does | | `Layer height cannot exceed nozzle diameter.` / `Line width too small` | `Print::validate()` flow rules | | `[ERROR] … no <V>.json list references it, so it never loads` | `update-index`, or delete the file | | `[ERROR] … references it and it declares no profile type` | set the correct `type` explicitly, then `normalize` and `update-index` | From 505a46b2800c434e8f0ff329b6707ea2ae0987f4 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Mon, 21 Sep 2026 00:28:50 +0800 Subject: [PATCH 51/76] Move check_profile's downloads to a per-user cache outside the repo The validator, fixture archives and unpacked fixture trees no longer live under <repo>/.test/check_profiles, so every worktree on a machine shares one copy instead of re-downloading. macOS, Linux and Windows each use their own user cache dir, named apart from OrcaSlicer's per-user dirs. The now-unused /.test/ ignore rule is dropped. --- .claude/skills/orca-profiles/SKILL.md | 3 +- .../orca-profiles/references/validation.md | 14 +++++---- .gitignore | 1 - scripts/check_profile.ps1 | 15 ++++++---- scripts/check_profile.sh | 30 +++++++++++++------ 5 files changed, 42 insertions(+), 21 deletions(-) diff --git a/.claude/skills/orca-profiles/SKILL.md b/.claude/skills/orca-profiles/SKILL.md index bb755d12fa..259564e063 100644 --- a/.claude/skills/orca-profiles/SKILL.md +++ b/.claude/skills/orca-profiles/SKILL.md @@ -91,7 +91,8 @@ Paths below are relative to this skill. Commands run from the repository root. ``` On Windows use `py -3` instead of `python3`, and `scripts\check_profile.bat -Vendor "<Vendor>"` - / `scripts\check_profile.bat`. Logs: `.test/check_profiles/logs/<check>.log`. + / `scripts\check_profile.bat`. Logs land in a per-user cache dir (see + [validation.md](references/validation.md)). Id checks remain tree-wide under `--vendor`; filament-only bundles skip the default slice check. See [validation.md](references/validation.md) for flags, coverage and error remedies. 5. **Verify the changed behavior.** Slice newly added non-default processes explicitly, and diff --git a/.claude/skills/orca-profiles/references/validation.md b/.claude/skills/orca-profiles/references/validation.md index aa2a7d348d..c23b555f49 100644 --- a/.claude/skills/orca-profiles/references/validation.md +++ b/.claude/skills/orca-profiles/references/validation.md @@ -20,8 +20,11 @@ default Windows client refuses to run a checked-out `.ps1` at all. The `.ps1` fi probing `py -3`, then `python`, then `python3`; run the tool by hand with `py -3` for the same reason. Every check in the run happens even after an earlier one fails; the script exits non-zero if any did, and writes -`.test/check_profiles/logs/<check>.log` plus, on failure, `.test/check_profiles/pr_comment.md` — the same -report CI posts on the PR. A stale `.test/check_profiles/.lock` after a crash must be removed by hand. +`logs/<check>.log` plus, on failure, `pr_comment.md` under a per-user cache dir — the same report CI posts on the PR. +That dir is `~/Library/Caches/orca-profile-check` on macOS, `${XDG_CACHE_HOME:-~/.cache}/orca-profile-check` on Linux +and `%LOCALAPPDATA%\orca-profile-check` on Windows; it is named apart from OrcaSlicer's own per-user dirs and sits +outside the checkout, so every worktree shares one copy. `--work-dir` / `-WorkDir` overrides it. A stale `.lock` +there after a crash must be removed by hand. ## The five checks @@ -150,9 +153,10 @@ Two things it therefore does **not** enforce: Built from `src/dev-utils/OrcaSlicer_profile_validator.cpp` (`-DORCA_TOOLS=ON`). Both scripts find a local build under `build*/` — `check_profile.sh` tries Release, RelWithDebInfo, then -Debug, and `check_profile.ps1` adds MinSizeRel — else they download the nightly into -`.test/check_profiles/validator`. Pass `--download` / `-Download` to match CI exactly, since a stale -local build is used silently. Windows looks for `OrcaSlicer_profile_validator.exe`. +Debug, and `check_profile.ps1` adds MinSizeRel — else they download the nightly into the +`validator` subdirectory of the per-user cache dir (see above). Pass `--download` / `-Download` to +match CI exactly, since a stale local build is used silently. Windows looks for +`OrcaSlicer_profile_validator.exe`. If your build lives somewhere else entirely, point at it with `--validator` / `-Validator`, or set `ORCA_PROFILE_VALIDATOR` (`$env:ORCA_PROFILE_VALIDATOR` in PowerShell). diff --git a/.gitignore b/.gitignore index a2a1520fd5..b029afa180 100644 --- a/.gitignore +++ b/.gitignore @@ -52,5 +52,4 @@ internal_docs/ __pycache__/ *.pyc *.opc -/.test/ docs/superpowers/ \ No newline at end of file diff --git a/scripts/check_profile.ps1 b/scripts/check_profile.ps1 index 1aa5a11bd7..c016e8f299 100644 --- a/scripts/check_profile.ps1 +++ b/scripts/check_profile.ps1 @@ -21,8 +21,10 @@ normalize and update-index would still rewrite. Everything that has to be downloaded - the profile validator and the custom-preset fixture - archives - lands under <repo>\.test\check_profiles and is reused on the next run. That - directory also holds one log per check plus a copy of the comment CI would post on the PR. + archives - lands under a per-user cache directory (%LOCALAPPDATA%\orca-profile-check) and + is reused on the next run. Being outside the checkout, that directory is shared by every + worktree on the machine. It also holds one log per check plus a copy of the comment CI would + post on the PR. resources\profiles\user, which the validator creates as its data dir but a CI checkout never has, is moved aside for the duration of the run and restored on exit. Only one run per work @@ -60,8 +62,8 @@ Re-download the validator and fixtures instead of using the cache. .PARAMETER WorkDir - Downloads, logs and fixture trees (default: .test\check_profiles). Point it somewhere short, - such as D:\t, if a fixture tree trips Windows' 260-character path limit. + Downloads, logs and fixture trees (default: %LOCALAPPDATA%\orca-profile-check). Point it + somewhere short, such as D:\t, if a fixture tree trips Windows' 260-character path limit. .PARAMETER LogLevel Validator log level (default: 2, as in CI). @@ -212,7 +214,10 @@ if ($Vendor) { $VendorArgs = if ($Vendor) { @('-v', $Vendor) } else { @() } $VendorPyArgs = if ($Vendor) { @('--vendor', $Vendor) } else { @() } -if (-not $WorkDir) { $WorkDir = Join-Path $RepoRoot '.test\check_profiles' } +if (-not $WorkDir) { + # Per-user cache dir, so every worktree on the machine shares one set of downloads. + $WorkDir = Join-Path ([Environment]::GetFolderPath('LocalApplicationData')) 'orca-profile-check' +} $LogDir = Join-Path $WorkDir 'logs' try { New-Item -ItemType Directory -Force -Path $LogDir | Out-Null } catch { Die "cannot create ${LogDir}: $_" } $WorkDir = (Resolve-Path -LiteralPath $WorkDir).Path diff --git a/scripts/check_profile.sh b/scripts/check_profile.sh index 42e72b93f7..a6d7ca3b2e 100755 --- a/scripts/check_profile.sh +++ b/scripts/check_profile.sh @@ -7,8 +7,9 @@ # continue-on-error), then the script exits non-zero once at the end. # # Everything that has to be downloaded - the profile validator and the custom-preset fixture -# archives - lands under <repo>/.test/check_profiles/ and is reused on the next run. That -# directory also holds one log per check plus a copy of the comment CI would post on the PR. +# archives - lands under a per-user cache directory and is reused on the next run. Being outside +# the checkout, that directory is shared by every worktree on the machine. It also holds one log +# per check plus a copy of the comment CI would post on the PR. # # resources/profiles/user, which the validator creates as its data dir but a CI checkout never # has, is moved aside for the duration of the run and restored on exit. Only one run per work @@ -33,9 +34,20 @@ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd -- "${SCRIPT_DIR}/.." && pwd)" HOST_ARCH="$(uname -m)" +HOST_OS="$(uname -s)" +case "${HOST_OS}" in + Darwin*) HOST_OS=Darwin ;; + MINGW*|MSYS*|CYGWIN*) HOST_OS=Windows ;; + Linux*) HOST_OS=Linux ;; +esac PROFILES_DIR="${REPO_ROOT}/resources/profiles" -WORK_DIR="${REPO_ROOT}/.test/check_profiles" +case "${HOST_OS}" in + Darwin) DEFAULT_WORK_DIR="${HOME}/Library/Caches/orca-profile-check" ;; + Windows) DEFAULT_WORK_DIR="${LOCALAPPDATA:-${HOME}/AppData/Local}/orca-profile-check" ;; + *) DEFAULT_WORK_DIR="${XDG_CACHE_HOME:-${HOME}/.cache}/orca-profile-check" ;; +esac +WORK_DIR="${DEFAULT_WORK_DIR}" VALIDATOR="${ORCA_PROFILE_VALIDATOR:-}" # Vendor to check, named after its <Vendor>.json - empty means every vendor, which is exactly what # both the validator's -v and orca_profile_tool.py check's --vendor take an empty value to mean. @@ -75,7 +87,7 @@ Options: downloaded for this platform --download ignore local builds and use the downloaded nightly validator --refresh re-download the validator and fixtures instead of using the cache - --work-dir DIR downloads, logs and fixture trees (default: .test/check_profiles) + --work-dir DIR downloads, logs and fixture trees (default: ${DEFAULT_WORK_DIR}) -l, --log-level N validator log level (default: ${LOG_LEVEL}, as in CI) -h, --help show this help @@ -304,8 +316,8 @@ EOF # holding the signed .app, Windows an .exe. download_validator() { local dest="${WORK_DIR}/validator" binary dmg app mounted app_src - case "$(uname -s)" in - Linux*) + case "${HOST_OS}" in + Linux) case "${HOST_ARCH}" in arm64|aarch64) msg "the nightly Linux validator is x86_64; build it locally for ${HOST_ARCH}" ;; esac @@ -313,7 +325,7 @@ download_validator() { fetch "${VALIDATOR_RELEASE_URL}/OrcaSlicer_profile_validator_Linux_Ubuntu2404_nightly" "${binary}" || return 1 chmod +x "${binary}" || return 1 ;; - Darwin*) + Darwin) dmg="${dest}/OrcaSlicer_profile_validator.dmg" app="${dest}/OrcaSlicer_profile_validator.app" binary="${app}/Contents/MacOS/OrcaSlicer_profile_validator" @@ -332,13 +344,13 @@ download_validator() { [ -x "${binary}" ] || { msg "no validator app inside ${dmg}"; return 1; } fi ;; - MINGW*|MSYS*|CYGWIN*) + Windows) binary="${dest}/OrcaSlicer_profile_validator.exe" fetch "${VALIDATOR_RELEASE_URL}/OrcaSlicer_profile_validator_Windows_nightly.exe" "${binary}" || return 1 chmod +x "${binary}" || return 1 ;; *) - msg "no nightly validator published for $(uname -s); build it (-DORCA_TOOLS=ON) and pass --validator" + msg "no nightly validator published for ${HOST_OS}; build it (-DORCA_TOOLS=ON) and pass --validator" return 1 ;; esac From 6e4be42a044d867f4ef49ceb15e082dad56c7e4a Mon Sep 17 00:00:00 2001 From: Drew Wingfield <89153952+DrewWing@users.noreply.github.com> Date: Sun, 20 Sep 2026 12:00:55 -0500 Subject: [PATCH 52/76] UltiMaker S5 Profile + Local API Support (#14062) * Add Ultimaker S5 Profile - WIP * Add Ultimaker physical printer base * Ultimaker API WIP for base update. * Fix undefined reference error. * Add UMS5 profile, add placeholders for testAuth stuff. * Fix non-const func definitions, make func names align with style guide. * Localization stuff? IDK if this does anything or is required. * Add cover image * Auth code cleanup, add UI button for auth cred generation, implement various auth checks and tests. * Fix auth stuff * Clean up code * Get upload code sort-of working, fix typo * Update printer settings and start/end gcodes * Add makeGriffinCompatible preprocessor script to prevent machine crash, update machine profile. * Fix buildplate size, fix time missing bug, add S5 buildplate model * Correct capitalization to UltiMaker * Fix display bug, fix capitalization bug * Implement credential generation button and logic * Fix generate auth creds button, add todos, fix capitalization. * Actually fix generate auth credentials. * Fix generate auth creds message. * Update UM S5 machine limits * Revert accidental commit. * Fix postprocessor, clean up code. * Update presets for multi-extruder printing. * Add Single Extruder and Fast profiles. * Code cleanup * Register and validate the UltiMaker S5 presets * Show the Generate API Key button only for UltiMaker print hosts The PR added it to the Physical Printer dialog for every host type, where pressing it runs an ordinary connection test and reports "API Key created". Gate it on the selected host type instead. * Drop unused lambda captures in the UltiMaker host code clang promotes -Wunused-lambda-capture to an error under the project's -Werror, so the file failed to build on macOS; the five callbacks do not touch this. * Fix the Windows build of the UltiMaker print host --------- Co-authored-by: SoftFever <softfeverever@gmail.com> --- localization/i18n/OrcaSlicer.pot | 6 + localization/i18n/list.txt | 1 + resources/profiles/UltiMaker.json | 22 +- .../profiles/UltiMaker/UltiMaker S5_cover.png | Bin 0 -> 42838 bytes ...tiMaker S5 0.4 nozzle Single Extruder.json | 38 + .../machine/UltiMaker S5 0.4 nozzle.json | 139 ++++ .../UltiMaker/machine/UltiMaker S5.json | 12 + .../UltiMaker/machine/fdm_machine_common.json | 3 +- .../0.18mm Standard @UltiMaker S5.json | 111 +++ .../process/0.2mm Fast @UltiMaker S5.json | 45 ++ .../ultimaker_s5_buildplate_model.stl | Bin 0 -> 510284 bytes src/libslic3r/PrintConfig.cpp | 3 + src/libslic3r/PrintConfig.hpp | 2 +- src/slic3r/CMakeLists.txt | 2 + src/slic3r/GUI/PhysicalPrinterDialog.cpp | 65 +- src/slic3r/GUI/PhysicalPrinterDialog.hpp | 1 + src/slic3r/Utils/PrintHost.cpp | 2 + src/slic3r/Utils/UltiMaker.cpp | 666 ++++++++++++++++++ src/slic3r/Utils/UltiMaker.hpp | 72 ++ 19 files changed, 1184 insertions(+), 6 deletions(-) create mode 100644 resources/profiles/UltiMaker/UltiMaker S5_cover.png create mode 100644 resources/profiles/UltiMaker/machine/UltiMaker S5 0.4 nozzle Single Extruder.json create mode 100644 resources/profiles/UltiMaker/machine/UltiMaker S5 0.4 nozzle.json create mode 100644 resources/profiles/UltiMaker/machine/UltiMaker S5.json create mode 100644 resources/profiles/UltiMaker/process/0.18mm Standard @UltiMaker S5.json create mode 100644 resources/profiles/UltiMaker/process/0.2mm Fast @UltiMaker S5.json create mode 100644 resources/profiles/UltiMaker/ultimaker_s5_buildplate_model.stl create mode 100644 src/slic3r/Utils/UltiMaker.cpp create mode 100644 src/slic3r/Utils/UltiMaker.hpp diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index 74774f1bf2..79d50e844c 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -19225,6 +19225,12 @@ msgstr "" msgid "Could not connect to Duet" msgstr "" +msgid "Connection to Ultimaker is working correctly." +msgstr "" + +msgid "Could not connect to Ultimaker" +msgstr "" + msgid "Unknown error occurred" msgstr "" diff --git a/localization/i18n/list.txt b/localization/i18n/list.txt index cca4d9b9a7..7636bf2484 100644 --- a/localization/i18n/list.txt +++ b/localization/i18n/list.txt @@ -250,6 +250,7 @@ src/slic3r/GUI/TroubleshootDialog.cpp src/slic3r/Utils/3DPrinterOS.cpp src/slic3r/Utils/AstroBox.cpp src/slic3r/Utils/Duet.cpp +src/slic3r/Utils/UltiMaker.cpp src/slic3r/Utils/FlashAir.cpp src/slic3r/Utils/MKS.cpp src/slic3r/Utils/Moonraker.cpp diff --git a/resources/profiles/UltiMaker.json b/resources/profiles/UltiMaker.json index 52daf03cec..d437ce7191 100644 --- a/resources/profiles/UltiMaker.json +++ b/resources/profiles/UltiMaker.json @@ -1,13 +1,17 @@ { "name": "UltiMaker", "url": "", - "version": "02.04.00.02", + "version": "02.04.00.03", "force_update": "0", "description": "UltiMaker configurations", "machine_model_list": [ { "name": "UltiMaker 2", "sub_path": "machine/UltiMaker 2.json" + }, + { + "name": "UltiMaker S5", + "sub_path": "machine/UltiMaker S5.json" } ], "process_list": [ @@ -23,9 +27,17 @@ "name": "0.18mm Standard @UltiMaker 2", "sub_path": "process/0.18mm Standard @UltiMaker 2.json" }, + { + "name": "0.18mm Standard @UltiMaker S5", + "sub_path": "process/0.18mm Standard @UltiMaker S5.json" + }, { "name": "0.25mm Draft @UltiMaker 2", "sub_path": "process/0.25mm Darft @UltiMaker 2.json" + }, + { + "name": "0.2mm Fast @UltiMaker S5", + "sub_path": "process/0.2mm Fast @UltiMaker S5.json" } ], "filament_list": [], @@ -37,6 +49,14 @@ { "name": "UltiMaker 2 0.4 nozzle", "sub_path": "machine/UltiMaker 2 0.4 nozzle.json" + }, + { + "name": "UltiMaker S5 0.4 nozzle", + "sub_path": "machine/UltiMaker S5 0.4 nozzle.json" + }, + { + "name": "UltiMaker S5 0.4 nozzle - Single Extruder", + "sub_path": "machine/UltiMaker S5 0.4 nozzle Single Extruder.json" } ] } diff --git a/resources/profiles/UltiMaker/UltiMaker S5_cover.png b/resources/profiles/UltiMaker/UltiMaker S5_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..f123d6c81c1a9fbb8743fb553f79341bf9202a0a GIT binary patch literal 42838 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 b>d*fHGh7&x)_Kq600000NkvXXu0mjfXpkFJ literal 0 HcmV?d00001 diff --git a/resources/profiles/UltiMaker/machine/UltiMaker S5 0.4 nozzle Single Extruder.json b/resources/profiles/UltiMaker/machine/UltiMaker S5 0.4 nozzle Single Extruder.json new file mode 100644 index 0000000000..2bd40746c9 --- /dev/null +++ b/resources/profiles/UltiMaker/machine/UltiMaker S5 0.4 nozzle Single Extruder.json @@ -0,0 +1,38 @@ +{ + "type": "machine", + "name": "UltiMaker S5 0.4 nozzle - Single Extruder", + "inherits": "UltiMaker S5 0.4 nozzle", + "from": "system", + "setting_id": "7BKZlwffTrzDsUgj", + "instantiation": "true", + "printer_model": "UltiMaker S5", + "default_print_profile": "0.18mm Standard @UltiMaker S5", + "default_nozzle_volume_type": [ + "Standard" + ], + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "extruder_type": [ + "Direct Drive" + ], + "machine_start_gcode": "; NOTE: Do NOT remove the following header. It is necessary for the UM printer to not crash.\n;START_OF_HEADER\n;HEADER_VERSION:0.1\n;FLAVOR:Griffin\n;GENERATOR.NAME:OrcaSlicer\n;GENERATOR.VERSION:5.11.0\n;GENERATOR.BUILD_DATE:2016-06-23\n;TARGET_MACHINE.NAME:[printer_model]\n;EXTRUDER_TRAIN.0.INITIAL_TEMPERATURE:{first_layer_temperature[0]}\n;EXTRUDER_TRAIN.0.MATERIAL.VOLUME_USED:{extruded_volume[0]}\n;EXTRUDER_TRAIN.0.MATERIAL.GUID:506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9\n;EXTRUDER_TRAIN.0.NOZZLE.DIAMETER:{nozzle_diameter[0]}\n;EXTRUDER_TRAIN.0.NOZZLE.NAME:AA {nozzle_diameter[0]}\n;BUILD_PLATE.INITIAL_TEMPERATURE:[bed_temperature_initial_layer_single]\n;BUILD_VOLUME.TEMPERATURE:28\n;PRINT.TIME:2\n;PRINT.SIZE.MIN.X:{first_layer_print_min[0]}\n;PRINT.SIZE.MIN.Y:{first_layer_print_min[1]}\n;PRINT.SIZE.MIN.Z:{first_layer_height}\n;PRINT.SIZE.MAX.X:{first_layer_print_max[0]}\n;PRINT.SIZE.MAX.Y:{first_layer_print_max[1]}\n;PRINT.SIZE.MAX.Z:{int(total_layer_count * first_layer_height)}\n;END_OF_HEADER\nT[initial_extruder]\n\nM82 ;absolute extrusion mode\nG92 E0\nM190 S[bed_temperature_initial_layer_single] ; Wait for bed temp\nM104 T[initial_extruder] S[first_layer_temperature[initial_extruder]] ; Heat extruder\nM109 T[initial_extruder] S[first_layer_temperature[initial_extruder]] ; Wait for extruder temp\n\n; Set the settings we removed in the post-processing (orcaslicer generated header).\nM73 P0 R0 ;TODO change the R value into the total minutes of print\nM201 X[machine_max_acceleration_x] Y[machine_max_acceleration_y] Z[machine_max_acceleration_z] E[machine_max_acceleration_e] ; accel\nM203 X[machine_max_speed_x] Y[machine_max_speed_y] Z[machine_max_speed_z] E[machine_max_speed_e] ; max speed\nM204 S[machine_max_acceleration_extruding] ; starting accel\nM204 P[machine_max_acceleration_extruding] R[machine_max_acceleration_retracting] T[machine_max_acceleration_travel]\nM205 X[machine_max_jerk_x] Y[machine_max_jerk_y] Z[machine_max_jerk_z] E[machine_max_jerk_e] ; jerk limits\n\nM107; start with the fan off\n\n; Prime blob for left extruder\nG0 F9000 X4 Y6 Z2\nG280 ; g280 is UM-specific\nG1 F2700 E-6.5 ;retract\n\nM82; set extruder to absolute mode\n\n; End of the start gcode sequence.\n;LAYER_COUNT:[total_layer_count]", + "max_layer_height": [ + "0.4" + ], + "min_layer_height": [ + "0.06" + ], + "nozzle_diameter": [ + "0.4" + ], + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Direct Drive Standard" + ] +} diff --git a/resources/profiles/UltiMaker/machine/UltiMaker S5 0.4 nozzle.json b/resources/profiles/UltiMaker/machine/UltiMaker S5 0.4 nozzle.json new file mode 100644 index 0000000000..5c212070b7 --- /dev/null +++ b/resources/profiles/UltiMaker/machine/UltiMaker S5 0.4 nozzle.json @@ -0,0 +1,139 @@ +{ + "type": "machine", + "name": "UltiMaker S5 0.4 nozzle", + "inherits": "fdm_machine_common", + "from": "system", + "setting_id": "hmkJtw7J1KXbiYfj", + "instantiation": "true", + "printer_model": "UltiMaker S5", + "default_print_profile": "0.18mm Standard @UltiMaker S5", + "nozzle_diameter": [ + "0.4", + "0.4" + ], + "printable_area": [ + "0x0", + "330x0", + "330x240", + "0x240" + ], + "printable_height": "300", + "extruder_clearance_height_to_rod": "60", + "extruder_clearance_radius": "61", + "nozzle_type": "brass", + "auxiliary_fan": "0", + "use_relative_e_distances": "0", + "machine_max_acceleration_extruding": [ + "3500", + "3500" + ], + "machine_max_acceleration_retracting": [ + "3500", + "3500" + ], + "machine_max_acceleration_travel": [ + "3500", + "3500" + ], + "machine_max_acceleration_x": [ + "3500", + "3500" + ], + "machine_max_acceleration_y": [ + "3500", + "3500" + ], + "machine_max_acceleration_z": [ + "500", + "500" + ], + "machine_max_speed_e": [ + "120", + "120" + ], + "machine_max_speed_x": [ + "500", + "500" + ], + "machine_max_speed_y": [ + "500", + "500" + ], + "machine_max_speed_z": [ + "12", + "12" + ], + "machine_max_jerk_e": [ + "2.5", + "2.5" + ], + "machine_max_jerk_x": [ + "20", + "20" + ], + "machine_max_jerk_y": [ + "20", + "20" + ], + "machine_max_jerk_z": [ + "0.4", + "0.4" + ], + "max_layer_height": [ + "0.4", + "0.4" + ], + "min_layer_height": [ + "0.06", + "0.06" + ], + "printer_settings_id": "Qidi", + "retraction_minimum_travel": [ + "5" + ], + "retract_before_wipe": [ + "70%" + ], + "retraction_length": [ + "4.5" + ], + "retract_length_toolchange": [ + "11" + ], + "retraction_speed": [ + "45" + ], + "deretraction_speed": [ + "0" + ], + "wipe_distance": [ + "0.2" + ], + "single_extruder_multi_material": "0", + "change_filament_gcode": "; Set temps to avoid oozing\nM104 T{previous_extruder} S{old_filament_temp - 5}\nM104 T{next_extruder} S{new_filament_temp}\n; Change to next extruder\nT{next_extruder}", + "machine_pause_gcode": "M0", + "default_filament_profile": [ + "Generic PLA @System" + ], + "z_hop": [ + "1" + ], + "z_hop_types": [ + "Normal Lift" + ], + "extruder_type": [ + "Direct Drive", + "Direct Drive" + ], + "extruder_offset": [ + "0x0", + "0x22" + ], + "extra_loading_move": "0", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n", + "fan_speedup_time": "0.5", + "machine_start_gcode": "; NOTE: Do NOT remove the following header. It is necessary for the UM printer to not crash.\n;START_OF_HEADER\n;HEADER_VERSION:0.1\n;FLAVOR:Griffin\n;GENERATOR.NAME:OrcaSlicer\n;GENERATOR.VERSION:5.11.0\n;GENERATOR.BUILD_DATE:2016-06-23\n;TARGET_MACHINE.NAME:[printer_model]\n{if is_extruder_used[0]};EXTRUDER_TRAIN.0.INITIAL_TEMPERATURE:{first_layer_temperature[0]}\n;EXTRUDER_TRAIN.0.MATERIAL.VOLUME_USED:{extruded_volume[0]}\n;EXTRUDER_TRAIN.0.MATERIAL.GUID:506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9\n;EXTRUDER_TRAIN.0.NOZZLE.DIAMETER:{nozzle_diameter[0]}\n;EXTRUDER_TRAIN.0.NOZZLE.NAME:AA {nozzle_diameter[0]}{endif}\n{if is_extruder_used[1]};EXTRUDER_TRAIN.1.INITIAL_TEMPERATURE:{first_layer_temperature[1]}\n;EXTRUDER_TRAIN.1.MATERIAL.VOLUME_USED:{extruded_volume[1]}\n;EXTRUDER_TRAIN.1.MATERIAL.GUID:506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9\n;EXTRUDER_TRAIN.1.NOZZLE.DIAMETER:{nozzle_diameter[1]}\n;EXTRUDER_TRAIN.1.NOZZLE.NAME:AA {nozzle_diameter[1]}{endif}\n;BUILD_PLATE.INITIAL_TEMPERATURE:[bed_temperature_initial_layer_single]\n;BUILD_VOLUME.TEMPERATURE:28\n;PRINT.TIME:2\n;PRINT.SIZE.MIN.X:{first_layer_print_min[0]}\n;PRINT.SIZE.MIN.Y:{first_layer_print_min[1]}\n;PRINT.SIZE.MIN.Z:{first_layer_height}\n;PRINT.SIZE.MAX.X:{first_layer_print_max[0]}\n;PRINT.SIZE.MAX.Y:{first_layer_print_max[1]}\n;PRINT.SIZE.MAX.Z:{int(total_layer_count * first_layer_height)}\n;END_OF_HEADER\nT[initial_extruder]\n\nM82 ;absolute extrusion mode\nG92 E0\nM190 S[bed_temperature_initial_layer_single] ; Wait for bed temp\nM104 T[initial_extruder] S[first_layer_temperature[initial_extruder]] ; Heat extruder\nM109 T[initial_extruder] S[first_layer_temperature[initial_extruder]] ; Wait for extruder temp\n\n\n; Set the settings we removed in the post-processing (orcaslicer generated header).\nM73 P0 R0 ;TODO change the R value into the total minutes of print\nM201 X[machine_max_acceleration_x] Y[machine_max_acceleration_y] Z[machine_max_acceleration_z] E[machine_max_acceleration_e] ; accel\nM203 X[machine_max_speed_x] Y[machine_max_speed_y] Z[machine_max_speed_z] E[machine_max_speed_e] ; max speed\nM204 S[machine_max_acceleration_extruding] ; starting accel\nM204 P[machine_max_acceleration_extruding] R[machine_max_acceleration_retracting] T[machine_max_acceleration_travel]\nM205 X[machine_max_jerk_x] Y[machine_max_jerk_y] Z[machine_max_jerk_z] E[machine_max_jerk_e] ; jerk limits\n\nM107; start with the fan off\n\n{if is_extruder_used[0]}T0\n; Prime blob for left extruder\nG0 F9000 X4 Y6 Z2\nG280 ; g280 is UM-specific\nG1 F2700 E-6.5 ;retract{endif}\n\n{if is_extruder_used[1]}T1\n; Prime blob for right extruder\nG0 F9000 X-4 Y6 Z2\nG280 ; g280 is UM-specific\nG1 F2700 E-6.5 ;retract\n{if initial_extruder == 0}T0{endif}{endif}\n\n\n\nM82; set extruder to absolute mode\n\n; End of the start gcode sequence.\n;LAYER_COUNT:[total_layer_count]", + "machine_end_gcode": "; Move toolhead out of the way\nG28 X Y\n\nM204 S3000; reset accel\nM107; fan off\n\n; heaters off\nM104 S0\nM104 T0 S0\nM104 T1 S0\nM140 S0\n\n; disable motors\nM84\n\n\nM82 ;absolute extrusion mode\n\n;End of Gcode\n", + "machine_tool_change_time": "1.5", + "scan_first_layer": "0" +} diff --git a/resources/profiles/UltiMaker/machine/UltiMaker S5.json b/resources/profiles/UltiMaker/machine/UltiMaker S5.json new file mode 100644 index 0000000000..2a9b858938 --- /dev/null +++ b/resources/profiles/UltiMaker/machine/UltiMaker S5.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "UltiMaker S5", + "model_id": "UltiMaker-S5", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "UltiMaker", + "bed_model": "ultimaker_s5_buildplate_model.stl", + "bed_texture": "ultimaker_2_buildplate_texture.png", + "hotend_model": "ultimaker_hotend.stl", + "default_materials": "Generic ABS @System;Generic PETG @System;Generic PLA @System" +} diff --git a/resources/profiles/UltiMaker/machine/fdm_machine_common.json b/resources/profiles/UltiMaker/machine/fdm_machine_common.json index 035efc68ba..2f5795627a 100644 --- a/resources/profiles/UltiMaker/machine/fdm_machine_common.json +++ b/resources/profiles/UltiMaker/machine/fdm_machine_common.json @@ -112,5 +112,6 @@ "default_print_profile": "", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", "machine_start_gcode": "", - "machine_end_gcode": "" + "machine_end_gcode": "", + "thumbnails": "" } diff --git a/resources/profiles/UltiMaker/process/0.18mm Standard @UltiMaker S5.json b/resources/profiles/UltiMaker/process/0.18mm Standard @UltiMaker S5.json new file mode 100644 index 0000000000..7920fed2e6 --- /dev/null +++ b/resources/profiles/UltiMaker/process/0.18mm Standard @UltiMaker S5.json @@ -0,0 +1,111 @@ +{ + "type": "process", + "name": "0.18mm Standard @UltiMaker S5", + "inherits": "fdm_process_common", + "from": "system", + "setting_id": "UAhqUBDi1CzMB2Vg", + "instantiation": "true", + "ooze_prevention": "1", + "preheat_time": "20", + "reduce_crossing_wall": "0", + "layer_height": "0.18", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0.8", + "bridge_flow": "1", + "bridge_speed": "60", + "brim_width": "0", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "0", + "top_surface_acceleration": "0", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0", + "enable_arc_fitting": "0", + "outer_wall_line_width": "0.4", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.45", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "initial_layer_acceleration": "500", + "travel_acceleration": "0", + "inner_wall_acceleration": "0", + "initial_layer_line_width": "0.45", + "initial_layer_print_height": "0.25", + "infill_combination": "0", + "sparse_infill_line_width": "0.5", + "infill_wall_overlap": "35%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.1", + "ironing_speed": "15", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "20", + "overhang_3_4_speed": "15", + "overhang_4_4_speed": "10", + "inner_wall_line_width": "0.45", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "3", + "skirt_height": "1", + "skirt_loops": "2", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0.45", + "spiral_mode": "0", + "standby_temperature_delta": "-10", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "grid", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_filament": "0", + "support_line_width": "0.45", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.2", + "support_interface_speed": "100%", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "0.2", + "support_speed": "45", + "support_threshold_angle": "30", + "support_object_xy_distance": "50%", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "1", + "top_surface_pattern": "monotonicline", + "top_surface_line_width": "0.4", + "top_shell_layers": "5", + "top_shell_thickness": "0.8", + "initial_layer_speed": "15", + "initial_layer_infill_speed": "30", + "initial_layer_travel_speed": "60", + "outer_wall_speed": "30", + "inner_wall_speed": "40", + "internal_solid_infill_speed": "40", + "top_surface_speed": "15", + "gap_infill_speed": "20", + "sparse_infill_speed": "40", + "travel_speed": "120", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "compatible_printers": [ + "UltiMaker S5 0.4 nozzle", + "UltiMaker S5 0.4 nozzle - Single Extruder" + ] +} diff --git a/resources/profiles/UltiMaker/process/0.2mm Fast @UltiMaker S5.json b/resources/profiles/UltiMaker/process/0.2mm Fast @UltiMaker S5.json new file mode 100644 index 0000000000..16fb188ca1 --- /dev/null +++ b/resources/profiles/UltiMaker/process/0.2mm Fast @UltiMaker S5.json @@ -0,0 +1,45 @@ +{ + "type": "process", + "name": "0.2mm Fast @UltiMaker S5", + "inherits": "0.18mm Standard @UltiMaker S5", + "from": "system", + "setting_id": "Ai0I1drAIYiCbydj", + "instantiation": "true", + "default_acceleration": "3500", + "default_jerk": "20", + "enable_support": "1", + "gap_infill_speed": "25", + "infill_combination": "1", + "infill_combination_max_layer_height": "80%", + "infill_jerk": "20", + "initial_layer_acceleration": "1500", + "initial_layer_infill_speed": "40", + "initial_layer_jerk": "10", + "initial_layer_speed": "30", + "initial_layer_travel_speed": "150", + "inner_wall_acceleration": "3500", + "inner_wall_jerk": "20", + "inner_wall_speed": "100", + "layer_height": "0.2", + "outer_wall_acceleration": "1500", + "outer_wall_jerk": "10", + "print_extruder_id": [ + "1" + ], + "print_extruder_variant": [ + "Direct Drive Standard" + ], + "print_settings_id": "", + "sparse_infill_pattern": "adaptivecubic", + "sparse_infill_speed": "100", + "support_style": "default", + "support_type": "tree(auto)", + "top_shell_layers": "1", + "top_surface_acceleration": "1500", + "top_surface_jerk": "10", + "top_surface_speed": "45", + "travel_acceleration": "3500", + "travel_jerk": "20", + "travel_speed": "150", + "wall_loops": "2" +} diff --git a/resources/profiles/UltiMaker/ultimaker_s5_buildplate_model.stl b/resources/profiles/UltiMaker/ultimaker_s5_buildplate_model.stl new file mode 100644 index 0000000000000000000000000000000000000000..4105f1fe3ae541e724d01b6b569ec596e2dc2506 GIT binary patch literal 510284 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 literal 0 HcmV?d00001 diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 02d1b50198..75df1a42a6 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -152,6 +152,7 @@ static t_config_enum_values s_keys_map_PrintHostType { { "octoprint", htOctoPrint }, { "crealityprint", htCrealityPrint }, { "duet", htDuet }, + { "ultimaker", htUltiMaker }, { "flashair", htFlashAir }, { "astrobox", htAstroBox }, { "repetier", htRepetier }, @@ -5401,6 +5402,7 @@ void PrintConfigDef::init_fff_params() def->enum_values.push_back("prusaconnect"); def->enum_values.push_back("octoprint"); def->enum_values.push_back("duet"); + def->enum_values.push_back("ultimaker"); def->enum_values.push_back("flashair"); def->enum_values.push_back("astrobox"); def->enum_values.push_back("repetier"); @@ -5417,6 +5419,7 @@ void PrintConfigDef::init_fff_params() def->enum_labels.push_back("PrusaConnect"); def->enum_labels.push_back("Octo/Klipper"); def->enum_labels.push_back("Duet"); + def->enum_labels.push_back("UltiMaker"); def->enum_labels.push_back("FlashAir"); def->enum_labels.push_back("AstroBox"); def->enum_labels.push_back("Repetier"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 727246ef73..eb03c8798e 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -98,7 +98,7 @@ enum class WipeTowerType { }; enum PrintHostType { - htPrusaLink, htPrusaConnect, htOctoPrint, htDuet, htFlashAir, htAstroBox, htRepetier, htMKS, htESP3D, htCrealityPrint, htObico, htFlashforge, htSimplyPrint, htElegooLink, ht3DPrinterOS, htMoonraker + htPrusaLink, htPrusaConnect, htOctoPrint, htDuet, htUltiMaker, htFlashAir, htAstroBox, htRepetier, htMKS, htESP3D, htCrealityPrint, htObico, htFlashforge, htSimplyPrint, htElegooLink, ht3DPrinterOS, htMoonraker }; enum AuthorizationType { diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index e689548896..d04e38086f 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -776,6 +776,8 @@ set(SLIC3R_GUI_SOURCES Utils/SimplyPrint.hpp Utils/TCPConsole.cpp Utils/TCPConsole.hpp + Utils/UltiMaker.cpp + Utils/UltiMaker.hpp Utils/UndoRedo.cpp Utils/UndoRedo.hpp Utils/WebSocketClient.hpp diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.cpp b/src/slic3r/GUI/PhysicalPrinterDialog.cpp index 04317ca46b..1facddbff1 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.cpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.cpp @@ -265,6 +265,43 @@ void PhysicalPrinterDialog::build_printhost_settings(ConfigOptionsGroup* m_optgr return sizer; }; + + auto ultimaker_generate_creds = [=](wxWindow* parent) { + auto sizer = create_sizer_with_btn(parent, &m_printhost_generate_creds_btn, "ultimaker_generate_creds", _L("Generate API Key")); + + m_printhost_generate_creds_btn->Bind(wxEVT_BUTTON, [this](wxCommandEvent& e) { + std::unique_ptr<PrintHost> host(PrintHost::get_print_host(m_config)); + if (!host) { + const wxString text = _L("Could not get a valid Printer Host reference"); + show_error(this, text); + return; + } + + wxString msg = "generate_auth_creds"; + bool result; + { + // Show a wait cursor during the connection test, as it is blocking UI. + wxBusyCursor wait; + // Send request to printer for api key and such + result = host->test(msg); // using test with special input because I don't want to create the generate_auth_creds func for every printer + + // Prompt user to approve access on the machine. + show_info(this, "API Key created. Go to the physical printer and hit \"authorize\" on the screen, then run \"Test\" again.\n"+msg, "API Key created."); + + + } + if (result) + show_info(this, host->get_test_ok_msg(), _L("Success!")); + else + show_error(this, host->get_test_failed_msg(msg)); + + update(); + }); + + return sizer; + }; + + auto print_host_logout = [&](wxWindow* parent) { auto sizer = create_sizer_with_btn(parent, &m_printhost_logout_btn, "", _L("Log Out")); @@ -303,6 +340,7 @@ void PhysicalPrinterDialog::build_printhost_settings(ConfigOptionsGroup* m_optgr Line host_line = m_optgroup->create_single_option_line(option); host_line.append_widget(printhost_browse); host_line.append_widget(print_host_test); + host_line.append_widget(ultimaker_generate_creds); host_line.append_widget(print_host_logout); m_optgroup->append_line(host_line); @@ -606,8 +644,7 @@ void PhysicalPrinterDialog::update(bool printer_change) m_optgroup->hide_field("bbl_use_print_host_webui"); m_optgroup->enable_field("printhost_cafile"); m_optgroup->enable_field("printhost_ssl_ignore_revoke"); - if (m_printhost_cafile_browse_btn) - m_printhost_cafile_browse_btn->Enable(); + if (m_printhost_cafile_browse_btn) { m_printhost_cafile_browse_btn->Enable(); } // hide pre-configured address, in case user switched to a different host type if (Field* printhost_field = m_optgroup->get_field("print_host"); printhost_field) { @@ -704,7 +741,24 @@ void PhysicalPrinterDialog::update(bool printer_change) m_optgroup->hide_field("printhost_authorization_type"); } else { m_optgroup->hide_field("flashforge_serial_number"); - } + } + + if (opt->value == htUltiMaker) { + m_optgroup->hide_field("printhost_apikey"); + m_optgroup->hide_field("printhost_authorization_type"); + m_optgroup->hide_field("bbl_use_print_host_webui"); + m_optgroup->hide_field("printhost_cafile"); + m_optgroup->show_field("printhost_user"); + m_optgroup->show_field("printhost_password"); + m_optgroup->enable_field("print_host"); + m_optgroup->show_field("print_host_webui"); + if (m_printhost_cafile_browse_btn) { + m_printhost_cafile_browse_btn->Disable(); + } + if (m_printhost_generate_creds_btn) { + m_printhost_generate_creds_btn->Enable(); + } + } } else { m_optgroup->set_value("host_type", int(PrintHostType::htOctoPrint), false); @@ -720,6 +774,10 @@ void PhysicalPrinterDialog::update(bool printer_change) m_optgroup->show_field(opt_key, auth_type == AuthorizationType::atUserPassword); } + // The "Generate API Key" button is only meaningful for UltiMaker printers. + if (m_printhost_generate_creds_btn) + m_printhost_generate_creds_btn->Show(tech == ptFFF && m_config->opt_enum<PrintHostType>("host_type") == htUltiMaker); + m_optgroup->show_field("printhost_port", supports_multiple_printers); m_printhost_port_browse_btn->Show(supports_multiple_printers); @@ -787,6 +845,7 @@ void PhysicalPrinterDialog::on_dpi_changed(const wxRect& suggested_rect) m_printhost_browse_btn->Rescale(); m_printhost_test_btn->Rescale(); + m_printhost_generate_creds_btn->Rescale(); m_printhost_logout_btn->Rescale(); if (m_printhost_cafile_browse_btn) m_printhost_cafile_browse_btn->Rescale(); diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.hpp b/src/slic3r/GUI/PhysicalPrinterDialog.hpp index c32da334be..276e62416e 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.hpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.hpp @@ -31,6 +31,7 @@ class PhysicalPrinterDialog : public DPIDialog Button* m_printhost_browse_btn {nullptr}; Button* m_printhost_test_btn {nullptr}; + Button* m_printhost_generate_creds_btn {nullptr}; Button* m_printhost_logout_btn {nullptr}; Button* m_printhost_cafile_browse_btn {nullptr}; Button* m_printhost_port_browse_btn {nullptr}; diff --git a/src/slic3r/Utils/PrintHost.cpp b/src/slic3r/Utils/PrintHost.cpp index cc15805256..37e0a41f83 100644 --- a/src/slic3r/Utils/PrintHost.cpp +++ b/src/slic3r/Utils/PrintHost.cpp @@ -15,6 +15,7 @@ #include "libslic3r/Channel.hpp" #include "OctoPrint.hpp" #include "Duet.hpp" +#include "UltiMaker.hpp" #include "FlashAir.hpp" #include "AstroBox.hpp" #include "Repetier.hpp" @@ -57,6 +58,7 @@ PrintHost* PrintHost::get_print_host(DynamicPrintConfig *config) switch (host_type) { case htOctoPrint: return new OctoPrint(config); case htDuet: return new Duet(config); + case htUltiMaker: return new UltiMaker(config); case htFlashAir: return new FlashAir(config); case htAstroBox: return new AstroBox(config); case htRepetier: return new Repetier(config); diff --git a/src/slic3r/Utils/UltiMaker.cpp b/src/slic3r/Utils/UltiMaker.cpp new file mode 100644 index 0000000000..0376578db0 --- /dev/null +++ b/src/slic3r/Utils/UltiMaker.cpp @@ -0,0 +1,666 @@ +#include "UltiMaker.hpp" + +#include <algorithm> +#include <ctime> +#include <boost/filesystem/path.hpp> +#include <boost/format.hpp> +#include <boost/log/trivial.hpp> +#include <boost/property_tree/ptree.hpp> +#include <boost/property_tree/json_parser.hpp> + +#include <wx/frame.h> +#include <wx/event.h> +#include <wx/progdlg.h> +#include <wx/sizer.h> +#include <wx/stattext.h> +#include <wx/textctrl.h> +#include <wx/checkbox.h> + +#include "libslic3r/PrintConfig.hpp" +#include "slic3r/GUI/GUI.hpp" +#include "slic3r/GUI/I18N.hpp" +#include "slic3r/GUI/MsgDialog.hpp" +#include "Http.hpp" + +#include <iostream> +#include <stdio.h> +#include <string> +namespace fs = boost::filesystem; +namespace pt = boost::property_tree; + +namespace Slic3r { + +UltiMaker::UltiMaker(DynamicPrintConfig *config) : + + m_host(config->opt_string("print_host")), + host(config->opt_string("print_host")), + + m_api_username(config->opt_string("printhost_user")), + m_api_password(config->opt_string("printhost_password")), + m_ssl_revoke_best_effort(config->opt_bool("printhost_ssl_ignore_revoke")) +{} + +const char* UltiMaker::get_name() const { return "UltiMaker"; } + +// Modified from OctoPrint::test in OctoPrint.cpp +bool UltiMaker::test(wxString &msg) const +{ + // Returns true on success, false on error. + // If called with specific arg, just generate the auth creds. + if (msg == "generate_auth_creds") { + BOOST_LOG_TRIVIAL(debug) << "UltiMaker: test called with generate_auth_creds! Generating the auth credentials."; + return this->generate_auth_creds(msg); + } + + // Since the request is performed synchronously here, + // it is ok to refer to `msg` from within the closure + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: Attempting to test machine"); + + const char* name = get_name(); + + bool res = true; + auto url = (boost::format("http://%1%/api/v1/system/variant") % host).str(); + + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Get system variant at: %2%") % name % url; + + auto http = Http::get(std::move(url)); + set_auth(http); + http.on_error([&](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error getting system variant: %2%, HTTP %3%, body: `%4%`") % name % error % status % body; + res = false; + msg = format_error(body, error, status); + }) + .on_complete([name, &res](std::string body, unsigned) { + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Got system variant: %2%") % name % body; + + // Validate that response is correct ("UltiMaker 3", "UltiMaker 3 extended" or "UltiMaker S5") + res = (boost::starts_with(body, "\"Ultimaker 3") || body == "\"Ultimaker S5\""); + }) +#ifdef WIN32 + .ssl_revoke_best_effort(m_ssl_revoke_best_effort) + .on_ip_resolve([&](std::string address) { + // Workaround for Windows 10/11 mDNS resolve issue, where two mDNS resolves in succession fail. + // Remember resolved address to be reused at successive REST API call. + msg = GUI::from_u8(address); + }) +#endif // WIN32 + .perform_sync(); + + + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Testing auth.") % name; + std::string auth_result = test_auth(); + if ( !boost::starts_with(auth_result,"OK") ) { msg = auth_result; res = false; }; + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Auth test result: %2%") % name % auth_result; + return res; +} + + +wxString UltiMaker::get_test_ok_msg () const +{ + return _("Connection to UltiMaker works correctly."); +} + +wxString UltiMaker::get_test_failed_msg (wxString &msg) const +{ + return GUI::from_u8((boost::format("%s: %s") + % _utf8("Could not connect to UltiMaker") + % std::string(msg.ToUTF8())).str()); +} + + +#pragma region Auth +// Modified from PrusaLink::set_auth in OctoPrint.cpp +void UltiMaker::set_auth(Http& http) const +{ + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: set_auth, m_api_username of %1% and m_api_password of %2%") % get_api_username() % get_api_password(); + http.auth_digest(m_api_username, m_api_password); +} + + +bool UltiMaker::has_auth_creds() const{ + // True if has authentication credentials, false otherwise + return (!m_api_username.empty()) && (!m_api_password.empty()); +} + + +bool UltiMaker::is_authorized() const{ + + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: is_authorized() checking if creds are valid."); + + const char* name = get_name(); + + bool rtn = false; + auto url = (boost::format("http://%1%/api/v1/auth/verify") % host).str(); + + auto http = Http::get(std::move(url)); + set_auth(http); + http.on_error([&](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error verifying credentials: %2%, HTTP %3%, body: `%4%`") % name % error % status % body; + + if (status == 403 || body == "{\"message\": \"Authorization required.\"}") { + rtn = false; + } + + }) + .on_complete([&](std::string body, unsigned) { + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: url completed without error: %1%") % url; + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Got credential verification: %2%") % name % body; + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: [auth] rtn=%2%") % name % rtn; // DEBUG + + try { + // Validate that response is correct + rtn = (boost::starts_with(body, "\"ok\"") || body == "{\"message\": \"ok\"}"); + } + catch (const std::exception &) { + rtn = false; + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: is_authorized Caught error") % name; + } + }) +#ifdef WIN32 + .ssl_revoke_best_effort(m_ssl_revoke_best_effort) + .on_ip_resolve([&](std::string address) { + // Workaround for Windows 10/11 mDNS resolve issue, where two mDNS resolves in succession fail. + // Remember resolved address to be reused at successive REST API call. + // msg = GUI::from_u8(address); + }) +#endif // WIN32 + .perform_sync(); + + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: [auth] rtn=%2%") % name % rtn; + return rtn; +} + + + + +std::string UltiMaker::auth_status() const{ + // returns 'authorized', 'unauthorized', or 'waiting', or 'ERROR: unknown value' on a different output + + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: auth_status() verifying credentials."); + + const char* name = get_name(); + + std::string rtn = "ERROR: unknown value"; + auto url = (boost::format("http://%1%/api/v1/auth/check/%2%") % host % m_api_username).str(); + + auto http = Http::get(std::move(url)); + set_auth(http); + http.on_error([&](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error verifying credentials: %2%, HTTP %3%, body: `%4%`") % name % error % status % body; + + }) + .on_complete([&](std::string body, unsigned) { + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: url completed without error: %1%") % url; + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Got credential verification: %2%") % name % body; + + try { + if (body == "{\"message\": \"unknown\"}") { rtn = "waiting";} + if (body == "{\"message\": \"authorized\"}" ) {rtn = "authorized";} + if (body == "{\"message\": \"unauthorized\"}") {rtn = "unauthorized";} + + } + catch (const std::exception &) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: auth_status Caught error") % name; + } + }) +#ifdef WIN32 + .ssl_revoke_best_effort(m_ssl_revoke_best_effort) + .on_ip_resolve([&](std::string address) { + // Workaround for Windows 10/11 mDNS resolve issue, where two mDNS resolves in succession fail. + // Remember resolved address to be reused at successive REST API call. + // msg = GUI::from_u8(address); + }) +#endif // WIN32 + .perform_sync(); + + if (boost::starts_with(rtn, "ERROR")) { BOOST_LOG_TRIVIAL(warning) << boost::format("%1%: [auth][auth_status] Unknown value encountered in api/v1/auth/check") % name;} + return rtn; +} + + + +bool UltiMaker::generate_auth_creds(wxString &msg) const { + // Returns true if no error, false otherwise. + + BOOST_LOG_TRIVIAL(debug) << "UltiMaker: generate_auth_creds called!"; + bool ret = true; + /* + The auth POST request returns json of the form + { + "id": "string", + "key": "string" + } + where id is the m_api_username and key is the m_api_password + */ + const std::string name = get_name(); + std::string application = "OrcaSlicer"; + std::string application_key = "application"; + std::string user = "OrcaSlicer"; + std::string user_key = "user"; + std::string exclusionKey = "OrcaSlicer"; + std::string exclusionKey_key = "OrcaSlicer"; + auto url = (boost::format("http://%1%/api/v1/auth/request") % host).str(); + auto http = Http::post(std::move(url)); + + // Note: the body/form cannot be blank or OrcaSlicer's Http library crashes on perform_sync() + http.form_clear(); + http.mime_form_add_text(application_key,application); + http.mime_form_add_text(user_key,user); + http.mime_form_add_text(exclusionKey_key,exclusionKey); + + http.on_error([name, &msg, &ret](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Error generating credentials: %2%, HTTP %3%, body: `%4%`") % name % error % status % body; + msg = "Error generating credentials! See the log for details."; + ret = false; + }) + .on_complete([name, &msg, &ret](std::string body, unsigned) { + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: body: %2%") % name % body; + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: POST request completed without error") % name; + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Got credential verification: %2%") % name % body; + + std::stringstream sin(body); + boost::property_tree::ptree pt; + + try { + // Parse JSON into property tree + boost::property_tree::read_json(sin, pt); + // Extract the keys from the json + std::string id = pt.get<std::string>("id", ""); + std::string key = pt.get<std::string>("key", ""); + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: Got id and key. ID=%1%") % id; + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: KEY=%1%") % key; + + if (id.empty() || key.empty()) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: Either ID or KEY is empty.") % name; + msg = GUI::from_u8("ERROR: Either ID or KEY is empty. ID=" + id + " KEY=" + key); + ret = false; + } else { + BOOST_LOG_TRIVIAL(info) << boost::format("%1%: ID and KEY are both present. Setting message appropriately.") % name; + msg = GUI::from_u8("Username: " + id + " Password: " + key); + } + } + catch (const std::exception & e) { + BOOST_LOG_TRIVIAL(error) << boost::format("%1%: generate_auth_creds Caught error") % name; + BOOST_LOG_TRIVIAL(error) << "Json parse err: " << e.what(); + ret = false; + } + }) +#ifdef WIN32 + .ssl_revoke_best_effort(m_ssl_revoke_best_effort) + .on_ip_resolve([&](std::string address) { + // Workaround for Windows 10/11 mDNS resolve issue, where two mDNS resolves in succession fail. + // Remember resolved address to be reused at successive REST API call. + // msg = GUI::from_u8(address); + }) +#endif // WIN32 + .perform_sync(); + + + // Wait for user to authorize on the physical machine + BOOST_LOG_TRIVIAL(debug) << "UltiMaker: generate_auth_creds done! ret=" << ret; + return ret; +} + + + +std::string UltiMaker::test_auth() const { + /* + Used in UltiMaker::test(), creates creds if they don't already + exist, and returns various error strings if errors. + Returns "OK" if no errors and creds are valid. + */ + const char* name = get_name(); + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Testing for presence of auth creds...") % name; + + // Auth credentials are alreay existing (user-entered) + if (has_auth_creds()) { + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: Has auth credentials. Testing validity...") % name; + + std::string auth_stat = auth_status(); + BOOST_LOG_TRIVIAL(debug) << boost::format("%1%: auth_status returned %2%") % name % auth_stat; + + if (auth_stat == "waiting") { + BOOST_LOG_TRIVIAL(info) << boost::format("%1%: Auth credentials are waiting for user approval at the physical machine.") % name; + return "Authentication creds waiting on approval; Please approve access via the dialog box on the printer's screen."; + + } else if (auth_stat == "authorized" && is_authorized()) { + BOOST_LOG_TRIVIAL(info) << boost::format("%1%: Auth credentials are valid. Returning OK") % name; + return "OK"; + + } else { + BOOST_LOG_TRIVIAL(warning) << boost::format("%1%: Auth credentials are INVALID. auth_status returned %2%") % name % auth_stat; + return "Invalid authentication credentials"; + } + + } else { // Auth credentials do not exist + BOOST_LOG_TRIVIAL(info) << boost::format("%1%: Auth credentials do NOT already exist. Returning error string.") % name; + return "Error: No authentication credentials found!"; + } + +} + +#pragma endregion Auth + + +int UltiMaker::getPrintTime(std::string filepath) const { + // Get the total print time in seconds from the provided gcode filepath + std::ifstream file_in(filepath); + std::string line; + int ret = 0; + bool found = false; + int h = 0; + int m = 0; + int s = 0; + + if (file_in.is_open()){ + while (getline(file_in, line) && !found) { + if (boost::starts_with(line, "; estimated printing time (normal mode) =")) { + if (sscanf(line.c_str(), "; estimated printing time (normal mode) = %dh %dm %ds", &h, &m, &s) == 3) { + ret = 3600*h + 60*m + s; + BOOST_LOG_TRIVIAL(warning) << boost::format("UltiMaker: Hours=%1% Minutes=%2% Seconds=%3% Total Seconds=%4%") % h % m % s % ret; + found = true; + } else if (sscanf(line.c_str(), "; estimated printing time (normal mode) = %dm %ds", &m, &s) == 2) { + ret = 60*m + s; + BOOST_LOG_TRIVIAL(warning) << boost::format("UltiMaker: No Hours, Minutes=%1% Seconds=%2% Total Seconds=%3%") % m % s % ret; + found = true; + } else { + BOOST_LOG_TRIVIAL(warning) << boost::format("UltiMaker: ERROR: sscanf error while getting total print time, no vars assigned."); + } + } + } + } else { + BOOST_LOG_TRIVIAL(error) << boost::format("UltiMaker postprocessing ERROR: file %1% or file %2% was unable to open!") % filepath % (filepath+".temp"); + return 0; + } + + if (!found) { + BOOST_LOG_TRIVIAL(error) << boost::format("UltiMaker: Print time estimate not found!!"); + } + + file_in.close(); + + return ret; +} + + +bool UltiMaker::makeGriffinCompatible(std::string filepath) const { + // Modifies the header of the given file path to remove the double colon + // at the timestamp because >1 colons in a line makes UltiMakers crash. + + // Opening and modifying files code was modified from https://www.w3resource.com/cpp-exercises/file-handling/cpp-file-handling-exercise-6.php + std::string file_temp = filepath+".temp"; + std::ifstream file_in(filepath); + std::ofstream file_out(file_temp); + std::string line; + bool write_on = false; + + if (file_in.is_open() && file_out.is_open()){ + while (getline(file_in, line)) { + + if (write_on) { + if (boost::starts_with(line, "; generated by OrcaSlicer")) { + boost::replace_all(line, ":", "-"); // Replace the colons in the date with dashes to prevent printer crash. + } + + // UM machines need total print time in seconds. + if (boost::starts_with(line, ";PRINT.TIME:")) { + file_out << ";PRINT.TIME:"<< getPrintTime(filepath) << "\n"; + + } else { + file_out << line << "\n"; // Write the modified line to the output file + } + + } else if (boost::starts_with(line, ";START_OF_HEADER")) { + write_on = true; + file_out << line << "\n"; + } + } + } else { + BOOST_LOG_TRIVIAL(error) << boost::format("UltiMaker: file %1% or file %2% was unable to open!") % filepath % (filepath+".temp"); + return false; + } + + if (!write_on) { + BOOST_LOG_TRIVIAL(warning) << boost::format("UltiMaker: while postprocessing to make compatible with Griffin, headers not found!"); + } + + file_in.close(); + file_out.close(); + + // Now replace the upload file with the temp one + std::remove(filepath.c_str()); + std::rename(file_temp.c_str(), filepath.c_str()); + // boost::filesystem::copy_file(file_temp, filepath); // replacement of the above line to keep in /tmp/ + return true; +} + + +bool UltiMaker::upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const +{ + // Preprocess the file so the machine doesn't crash + if (makeGriffinCompatible(upload_data.source_path.string())) { + BOOST_LOG_TRIVIAL(info) << "UltiMaker: [upload] Griffin compatibility appeared successful."; + } else { + BOOST_LOG_TRIVIAL(warning) << "UltiMaker: [upload] Griffin compatibility FAILED."; + return false; + } + + wxString connect_msg; + auto connectionType = connect(connect_msg); + if (connectionType == ConnectionType::error) { + BOOST_LOG_TRIVIAL(warning) << boost::format("UltiMaker: [upload] connectionType is of type error!"); + error_fn(std::move(connect_msg)); + return false; + } + + bool res = true; + bool dsf = (connectionType == ConnectionType::dsf); + + auto upload_cmd = get_upload_url(upload_data.upload_path.string(), connectionType); + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: Uploading file %1%, filepath: %2%, post_action: %3%, command: %4%") + % upload_data.source_path + % upload_data.upload_path + % int(upload_data.post_action) + % upload_cmd; + + auto http = (dsf ? Http::put(std::move(upload_cmd)) : Http::post(std::move(upload_cmd))); + http.form_add("jobname",upload_data.upload_path.string()); + http.form_add_file("file", upload_data.source_path, upload_data.upload_path.string()); + + set_auth(http); + http.on_complete([&](std::string body, unsigned status) { + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: File uploaded: HTTP %1%: %2%") % status % body; + + int err_code = dsf ? (status == 201 ? 0 : 1) : get_err_code_from_body(body); + if (err_code != 0) { + BOOST_LOG_TRIVIAL(error) << boost::format("UltiMaker: Request completed but error code was received: %1%") % err_code; + error_fn(format_error(body, L("Unknown error occurred"), 0)); + res = false; + } else if (upload_data.post_action == PrintHostPostUploadAction::StartPrint) { + wxString errormsg; + res = start_print(errormsg, upload_data.upload_path.string(), connectionType); + if (! res) { + error_fn(std::move(errormsg)); + } + } + }) + .on_error([&](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("UltiMaker: Error uploading file: %1%, HTTP %2%, body: `%3%`") % error % status % body; + error_fn(format_error(body, error, status)); + res = false; + }) + .on_progress([&](Http::Progress progress, bool &cancel) { + prorgess_fn(std::move(progress), cancel); + if (cancel) { + // Upload was canceled + BOOST_LOG_TRIVIAL(info) << "UltiMaker: Upload canceled"; + res = false; + } + }) + .perform_sync(); + + disconnect(connectionType); + + return res; +} + +UltiMaker::ConnectionType UltiMaker::connect(wxString &msg) const +{ + BOOST_LOG_TRIVIAL(info) << boost::format("UltiMaker: Attempting to connect"); + + auto res = ConnectionType::error; + auto url = get_connect_url(); + + auto http = Http::get(std::move(url)); + set_auth(http); + + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: Connecting to url %1%") % url; + + http.on_error([&](std::string body, std::string error, unsigned status) { + auto dsfUrl = get_connect_url(); + auto dsfHttp = Http::get(std::move(dsfUrl)); + dsfHttp.on_error([&](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("UltiMaker: Error connecting: %1%, HTTP %2%, body: `%3%`") % error % status % body; + msg = format_error(body, error, status); + }) + .on_complete([&](std::string body, unsigned) { + res = ConnectionType::dsf; + }) + .perform_sync(); + }) + .on_complete([&](std::string body, unsigned) { + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: Got: %1%") % body; + + int err_code = get_err_code_from_body(body); + switch (err_code) { + case 0: + res = ConnectionType::rrf; + break; + case 1: + msg = format_error(body, L("Wrong password"), 0); + break; + case 2: + msg = format_error(body, L("Could not get resources to create a new connection"), 0); + break; + default: + msg = format_error(body, L("Unknown error occurred"), 0); + break; + } + + }) + .perform_sync(); + + return res; +} + +void UltiMaker::disconnect(ConnectionType connectionType) const +{ + // we don't need to disconnect from DSF or if it failed anyway + if (connectionType != ConnectionType::rrf) { + return; + } + auto url = (boost::format("%1%rr_disconnect") + % get_base_url()).str(); + + auto http = Http::get(std::move(url)); + http.on_error([&](std::string body, std::string error, unsigned status) { + // we don't care about it, if disconnect is not working UltiMaker will disconnect automatically after some time + BOOST_LOG_TRIVIAL(error) << boost::format("UltiMaker: Error disconnecting: %1%, HTTP %2%, body: `%3%`") % error % status % body; + }) + .perform_sync(); +} + + +#pragma region Get Constants +std::string UltiMaker::get_upload_url(const std::string &filename, ConnectionType connectionType) const +{ + assert(connectionType != ConnectionType::error); + + if (connectionType == ConnectionType::dsf) { + return (boost::format("%1%/machine/file/gcodes/%2%") + % get_base_url() + % Http::url_encode(filename)).str(); + } else { + return get_base_url()+"/print_job"; + } +} + +std::string UltiMaker::get_status_url() const +{ + return (boost::format("%1%/printer/status") % get_base_url()).str(); +} + +std::string UltiMaker::get_connect_url() const +{ + return (boost::format("%1%/printer/status") % get_base_url()).str(); +} + +std::string UltiMaker::get_base_url() const +{ + if (host.find("http://") == 0 || host.find("https://") == 0) { + if (host.back() == '/') { + return host; + } else { + return (boost::format("%1%/api/v1") % host).str(); + } + } else { + return (boost::format("http://%1%/api/v1") % host).str(); + } +} + +std::string UltiMaker::timestamp_str() const +{ + enum { BUFFER_SIZE = 32 }; + + auto t = std::time(nullptr); + auto tm = *std::localtime(&t); + + char buffer[BUFFER_SIZE]; + std::strftime(buffer, BUFFER_SIZE, "time=%Y-%m-%dT%H:%M:%S", &tm); + + return std::string(buffer); +} + +#pragma endregion Get Constants + +bool UltiMaker::start_print(wxString &msg, const std::string &filename, ConnectionType connectionType) const +{ + assert(connectionType != ConnectionType::error); + + bool res = false; + bool dsf = (connectionType == ConnectionType::dsf); + + auto url = dsf + ? (boost::format("%1%machine/code") % get_base_url()).str() + : (boost::format("%1%rr_gcode?gcode=M32%%20\"0:/gcodes/%2%\"") % get_base_url() % Http::url_encode(filename)).str(); + + auto http = (dsf ? Http::post(std::move(url)) : Http::get(std::move(url))); + set_auth(http); + if (dsf) { + http.set_post_body( + (boost::format("M32 \"0:/gcodes/%1%\"") % filename).str() + ); + } + http.on_error([&](std::string body, std::string error, unsigned status) { + BOOST_LOG_TRIVIAL(error) << boost::format("UltiMaker: Error starting print: %1%, HTTP %2%, body: `%3%`") % error % status % body; + msg = format_error(body, error, status); + }) + .on_complete([&](std::string body, unsigned) { + BOOST_LOG_TRIVIAL(debug) << boost::format("UltiMaker: Got: %1%") % body; + res = true; + }) + .perform_sync(); + + return res; +} + +int UltiMaker::get_err_code_from_body(const std::string &body) const +{ + pt::ptree root; + std::istringstream iss (body); // wrap returned json to istringstream + pt::read_json(iss, root); + + return root.get<int>("err", 0); +} + +} diff --git a/src/slic3r/Utils/UltiMaker.hpp b/src/slic3r/Utils/UltiMaker.hpp new file mode 100644 index 0000000000..b32b87434f --- /dev/null +++ b/src/slic3r/Utils/UltiMaker.hpp @@ -0,0 +1,72 @@ +#ifndef slic3r_UltiMaker_hpp_ +#define slic3r_UltiMaker_hpp_ + +#include <string> +#include <wx/string.h> + +#include "PrintHost.hpp" + +namespace Slic3r { + +class DynamicPrintConfig; +class Http; + +class UltiMaker : public PrintHost +{ +public: + explicit UltiMaker(DynamicPrintConfig *config); + ~UltiMaker() override = default; + + const char* get_name() const override; + + bool test(wxString &curl_msg) const override; + wxString get_test_ok_msg() const override; + wxString get_test_failed_msg(wxString &msg) const override; + + bool has_auth_creds() const; + bool is_authorized() const; + std::string auth_status() const; + bool generate_auth_creds(wxString &msg) const; + std::string test_auth() const; + + bool upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const override; + bool has_auto_discovery() const override { return false; } + bool can_test() const override { return true; } + PrintHostPostUploadActions get_post_upload_actions() const override { return PrintHostPostUploadAction::StartPrint; } + std::string get_host() const override { return host; } + const std::string& get_api_user() const { return m_api_username; } + const std::string& get_api_username() const { return m_api_username; } + const std::string& get_api_password() const { return m_api_password; } + + int getPrintTime(std::string filepath) const; + +protected: + std::string m_host; + + // username and password for HTTP Digest Authentization (RFC RFC2617) + std::string m_api_username; + std::string m_api_password; + + bool m_ssl_revoke_best_effort; + + bool makeGriffinCompatible(std::string filepath) const; + +private: + enum class ConnectionType { rrf, dsf, error }; + std::string host; + + std::string get_upload_url(const std::string &filename, ConnectionType connectionType) const; + std::string get_status_url() const; + std::string get_connect_url() const; + std::string get_base_url() const; + std::string timestamp_str() const; + ConnectionType connect(wxString &msg) const; + void set_auth(Http& http) const; + void disconnect(ConnectionType connectionType) const; + bool start_print(wxString &msg, const std::string &filename, ConnectionType connectionType) const; + int get_err_code_from_body(const std::string &body) const; +}; + +} + +#endif From abf76490e4c38b41e609b7099252f9fea068b839 Mon Sep 17 00:00:00 2001 From: Matias Alejandro Yocca <matiasyocca@protonmail.com> Date: Sun, 20 Sep 2026 23:40:08 -0300 Subject: [PATCH 53/76] feature: Add granular print time placeholders for days, hours, minutes, and seconds (#13063) --- .../Creality Ender-3 V3 SE 0.2 nozzle.json | 2 +- .../Creality Ender-3 V3 SE 0.4 nozzle.json | 2 +- .../Creality Ender-3 V3 SE 0.6 nozzle.json | 2 +- .../Creality Ender-3 V3 SE 0.8 nozzle.json | 2 +- .../machine/fdm_adventurer5m_common.json | 1 + src/libslic3r/GCode.cpp | 8 ++ src/libslic3r/GCode/GCodeProcessor.cpp | 78 +++++++++++++++++-- src/libslic3r/GCode/GCodeProcessor.hpp | 6 +- src/libslic3r/PrintConfig.cpp | 22 +++++- 9 files changed, 106 insertions(+), 17 deletions(-) diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json index dc04436c04..378dca3a2d 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.2 nozzle.json @@ -120,7 +120,7 @@ "default_filament_profile": [ "Generic PLA @Creality Ender-3V3-all" ], - "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", + "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_total_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", "machine_start_gcode": "M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nM190 S[bed_temperature_initial_layer_single] ;Set and wait for bed temp to stabilize \nG28 ;Home \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X-2.1 Y20 Z0.28 F5000.0 ;Move to start position \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X-2.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-2.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-2.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positionning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z10 ;Raise Z more \nG90 ;Absolute positionning \n \nG1 X0 Y220 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \n \nM84 X Y E ;Disable all steppers but Z", "scan_first_layer": "0", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.4 nozzle.json index 22df39dd1d..97ef822dc7 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.4 nozzle.json @@ -120,7 +120,7 @@ "default_filament_profile": [ "Generic PLA @Creality Ender-3V3-all" ], - "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", + "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_total_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", "machine_start_gcode": "M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nM190 S[bed_temperature_initial_layer_single] ;Set and wait for bed temp to stabilize \nG28 ;Home \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X-2.1 Y20 Z0.28 F5000.0 ;Move to start position \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X-2.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-2.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-2.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positionning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z10 ;Raise Z more \nG90 ;Absolute positionning \n \nG1 X0 Y220 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \n \nM84 X Y E ;Disable all steppers but Z", "scan_first_layer": "0", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json index 881a46fc3a..7023c5a95a 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.6 nozzle.json @@ -120,7 +120,7 @@ "default_filament_profile": [ "Generic PLA @Creality Ender-3V3-all" ], - "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", + "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_total_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", "machine_start_gcode": "M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nM190 S[bed_temperature_initial_layer_single] ;Set and wait for bed temp to stabilize \nG28 ;Home \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X-2.1 Y20 Z0.28 F5000.0 ;Move to start position \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X-2.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-2.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-2.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positionning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z10 ;Raise Z more \nG90 ;Absolute positionning \n \nG1 X0 Y220 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \n \nM84 X Y E ;Disable all steppers but Z", "scan_first_layer": "0", diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json index 44e9b97afb..acec590a1f 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V3 SE 0.8 nozzle.json @@ -120,7 +120,7 @@ "default_filament_profile": [ "Generic PLA @Creality Ender-3V3-all" ], - "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", + "file_start_gcode": ";FLAVOR:Marlin\\n;TIME:{print_time_total_sec}\\n;Filament used:{used_filament_length}m\\n;Layer height:{layer_height}", "machine_start_gcode": "M220 S100 ;Reset Feedrate \nM221 S100 ;Reset Flowrate \n \nM104 S[nozzle_temperature_initial_layer] ;Set final nozzle temp \nM190 S[bed_temperature_initial_layer_single] ;Set and wait for bed temp to stabilize \nG28 ;Home \nG92 E0 ;Reset Extruder \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 X-2.1 Y20 Z0.28 F5000.0 ;Move to start position \nM109 S[nozzle_temperature_initial_layer] ;Wait for nozzle temp to stabilize \nG1 X-2.1 Y145.0 Z0.28 F1500.0 E15 ;Draw the first line \nG1 X-2.4 Y145.0 Z0.28 F5000.0 ;Move to side a little \nG1 X-2.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line \nG92 E0 ;Reset Extruder \nG1 E-1.0000 F1800 ;Retract a bit \nG1 Z2.0 F3000 ;Move Z Axis up \nG1 E0.0000 F1800", "machine_end_gcode": "G91 ;Relative positionning \nG1 E-2 F2700 ;Retract a bit \nG1 E-2 Z0.2 F2400 ;Retract and raise Z \nG1 X5 Y5 F3000 ;Wipe out \nG1 Z10 ;Raise Z more \nG90 ;Absolute positionning \n \nG1 X0 Y220 ;Present print \nM106 S0 ;Turn-off fan \nM104 S0 ;Turn-off hotend \nM140 S0 ;Turn-off bed \n \nM84 X Y E ;Disable all steppers but Z", "scan_first_layer": "0", diff --git a/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json b/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json index 2808e866e3..1ab9ef81e8 100644 --- a/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json +++ b/resources/profiles/Flashforge/machine/fdm_adventurer5m_common.json @@ -96,6 +96,7 @@ "default_filament_profile": [ "Generic PLA @Flashforge" ], + "file_start_gcode": "; estimated printing time (normal mode) = {print_time_day}d {print_time_hour}h {print_time_minute}m {print_time_sec}s", "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM109 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F6000\nG1 E-0.2 F800\nG1 X110 Y-110 F6000\nG1 E2 F800\nG1 Y-110 X55 Z0.25 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG1 Y-110 X55 Z0.45 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG92 E0", "machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]", diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index e5d3e58554..3e8a6478c6 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -3032,6 +3032,10 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato // file_start_gcode runs before the parser copy that normally restores these, so set them here. PlaceholderParser::update_timestamp(top_config); PlaceholderParser::update_user_name(top_config); + top_config.set_key_value("print_time_total_sec", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Total_Sec_Placeholder))); + top_config.set_key_value("print_time_day", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Day_Placeholder))); + top_config.set_key_value("print_time_hour", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Hour_Placeholder))); + top_config.set_key_value("print_time_minute", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Minute_Placeholder))); top_config.set_key_value("print_time_sec", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Sec_Placeholder))); top_config.set_key_value("used_filament_length", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Used_Filament_Length_Placeholder))); std::string top_gcode = print.placeholder_parser().process(top_gcode_template, 0, &top_config); @@ -3661,6 +3665,10 @@ void GCode::_do_export(Print& print, GCodeOutputStream &file, ThumbnailsGenerato this->placeholder_parser().set("hold_chamber_temp_for_flat_print", new ConfigOptionBool(hold_chamber_temp_for_flat_print)); } + this->placeholder_parser().set("print_time_total_sec", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Total_Sec_Placeholder))); + this->placeholder_parser().set("print_time_day", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Day_Placeholder))); + this->placeholder_parser().set("print_time_hour", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Hour_Placeholder))); + this->placeholder_parser().set("print_time_minute", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Minute_Placeholder))); this->placeholder_parser().set("print_time_sec", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Print_Time_Sec_Placeholder))); this->placeholder_parser().set("used_filament_length", new ConfigOptionString(GCodeProcessor::reserved_tag(GCodeProcessor::ETags::Used_Filament_Length_Placeholder))); diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 7932bc11a6..e03be228d0 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -75,6 +75,10 @@ const std::vector<std::string> GCodeProcessor::Reserved_Tags = { " WIPE_TOWER_START", " WIPE_TOWER_END", " PA_CHANGE:", + "@PRINT_TIME_TOTAL_SEC@", + "@PRINT_TIME_DAY@", + "@PRINT_TIME_HOUR@", + "@PRINT_TIME_MINUTE@", "@PRINT_TIME_SEC@", "@USED_FILAMENT_LENGTH@" }; @@ -98,6 +102,10 @@ const std::vector<std::string> GCodeProcessor::Reserved_Tags_compatible = { " WIPE_TOWER_START", " WIPE_TOWER_END", " PA_CHANGE:", + "@PRINT_TIME_TOTAL_SEC@", + "@PRINT_TIME_DAY@", + "@PRINT_TIME_HOUR@", + "@PRINT_TIME_MINUTE@", "@PRINT_TIME_SEC@", "@USED_FILAMENT_LENGTH@" }; @@ -1215,22 +1223,76 @@ void GCodeProcessor::run_post_process() return ret; }; - // Process inline placeholders (print_time_sec and used_filament_length) + // Process inline placeholders (print_time_total_sec, print_time_day, print_time_hour, print_time_minute, print_time_sec and used_filament_length) auto process_inline_placeholders = [&](std::string& gcode_line) { bool processed = false; - const std::string& print_time_placeholder = reserved_tag(ETags::Print_Time_Sec_Placeholder); + const std::string& print_time_total_placeholder = reserved_tag(ETags::Print_Time_Total_Sec_Placeholder); + const std::string& print_time_day_placeholder = reserved_tag(ETags::Print_Time_Day_Placeholder); + const std::string& print_time_hour_placeholder = reserved_tag(ETags::Print_Time_Hour_Placeholder); + const std::string& print_time_minute_placeholder = reserved_tag(ETags::Print_Time_Minute_Placeholder); + const std::string& print_time_sec_placeholder = reserved_tag(ETags::Print_Time_Sec_Placeholder); const std::string& used_filament_placeholder = reserved_tag(ETags::Used_Filament_Length_Placeholder); - // Replace print_time_sec - size_t pos = gcode_line.find(print_time_placeholder); + double print_time_total_sec = m_time_processor.machines[static_cast<size_t>(PrintEstimatedStatistics::ETimeMode::Normal)].time; + if (print_time_total_sec < 0.0) + print_time_total_sec = 0.0; + + int total_seconds = static_cast<int>(print_time_total_sec); + int print_time_day = total_seconds / 86400; + int day_remainder_seconds = total_seconds % 86400; + int print_time_hour = day_remainder_seconds / 3600; + int print_time_minute = (day_remainder_seconds % 3600) / 60; + int print_time_sec = day_remainder_seconds % 60; + + // Replace print_time_total_sec + size_t pos = gcode_line.find(print_time_total_placeholder); while (pos != std::string::npos) { - double print_time_sec = m_time_processor.machines[static_cast<size_t>(PrintEstimatedStatistics::ETimeMode::Normal)].time; char buf[64]; - sprintf(buf, "%.2f", print_time_sec); - gcode_line.replace(pos, print_time_placeholder.length(), buf); + sprintf(buf, "%.2f", print_time_total_sec); + gcode_line.replace(pos, print_time_total_placeholder.length(), buf); processed = true; - pos = gcode_line.find(print_time_placeholder, pos + strlen(buf)); + pos = gcode_line.find(print_time_total_placeholder, pos + strlen(buf)); + } + + // Replace print_time_day + pos = gcode_line.find(print_time_day_placeholder); + while (pos != std::string::npos) { + char buf[64]; + sprintf(buf, "%d", print_time_day); + gcode_line.replace(pos, print_time_day_placeholder.length(), buf); + processed = true; + pos = gcode_line.find(print_time_day_placeholder, pos + strlen(buf)); + } + + // Replace print_time_hour + pos = gcode_line.find(print_time_hour_placeholder); + while (pos != std::string::npos) { + char buf[64]; + sprintf(buf, "%d", print_time_hour); + gcode_line.replace(pos, print_time_hour_placeholder.length(), buf); + processed = true; + pos = gcode_line.find(print_time_hour_placeholder, pos + strlen(buf)); + } + + // Replace print_time_minute + pos = gcode_line.find(print_time_minute_placeholder); + while (pos != std::string::npos) { + char buf[64]; + sprintf(buf, "%d", print_time_minute); + gcode_line.replace(pos, print_time_minute_placeholder.length(), buf); + processed = true; + pos = gcode_line.find(print_time_minute_placeholder, pos + strlen(buf)); + } + + // Replace print_time_sec + pos = gcode_line.find(print_time_sec_placeholder); + while (pos != std::string::npos) { + char buf[64]; + sprintf(buf, "%d", print_time_sec); + gcode_line.replace(pos, print_time_sec_placeholder.length(), buf); + processed = true; + pos = gcode_line.find(print_time_sec_placeholder, pos + strlen(buf)); } // Replace used_filament_length diff --git a/src/libslic3r/GCode/GCodeProcessor.hpp b/src/libslic3r/GCode/GCodeProcessor.hpp index a677912add..192a80a43d 100644 --- a/src/libslic3r/GCode/GCodeProcessor.hpp +++ b/src/libslic3r/GCode/GCodeProcessor.hpp @@ -512,6 +512,10 @@ class Print; Wipe_Tower_Start, Wipe_Tower_End, PA_Change, + Print_Time_Total_Sec_Placeholder, + Print_Time_Day_Placeholder, + Print_Time_Hour_Placeholder, + Print_Time_Minute_Placeholder, Print_Time_Sec_Placeholder, Used_Filament_Length_Placeholder, }; @@ -1543,5 +1547,3 @@ class Print; } /* namespace Slic3r */ #endif /* slic3r_GCodeProcessor_hpp_ */ - - diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 75df1a42a6..92e7067ae5 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -6610,7 +6610,7 @@ void PrintConfigDef::init_fff_params() def->tooltip = L("G-code written at the very top of the output file, before any other content. " "Useful for adding metadata that printer firmware reads from the first lines of the file " "(e.g. estimated print time, filament usage). " - "Supports placeholders like {print_time_sec} and {used_filament_length}."); + "Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}."); def->multiline = true; def->full_width = true; def->height = 8; @@ -12559,10 +12559,26 @@ PrintStatisticsConfigDef::PrintStatisticsConfigDef() def->label = L("Used filament"); def->tooltip = L("Total length of filament used in the print."); - def = this->add("print_time_sec", coString); - def->label = L("Print time (seconds)"); + def = this->add("print_time_total_sec", coString); + def->label = L("Print time (total seconds)"); def->tooltip = L("Total estimated print time in seconds. Replaced with actual value during post-processing."); + def = this->add("print_time_day", coString); + def->label = L("Print time (days component)"); + def->tooltip = L("Estimated print time day component (normal mode). Replaced with actual value during post-processing."); + + def = this->add("print_time_hour", coString); + def->label = L("Print time (hours component)"); + def->tooltip = L("Estimated print time hour component (normal mode). Replaced with actual value during post-processing."); + + def = this->add("print_time_minute", coString); + def->label = L("Print time (minutes component)"); + def->tooltip = L("Estimated print time minute component (normal mode). Replaced with actual value during post-processing."); + + def = this->add("print_time_sec", coString); + def->label = L("Print time (seconds component)"); + def->tooltip = L("Estimated print time second component (normal mode). Replaced with actual value during post-processing."); + def = this->add("used_filament_length", coString); def->label = L("Filament length (meters)"); def->tooltip = L("Total filament length used in meters. Replaced with actual value during post-processing."); From b8f4aa782e1af75b09b77e4fe423299da1c30571 Mon Sep 17 00:00:00 2001 From: Bilal7828 <60401317+Bilal7828@users.noreply.github.com> Date: Mon, 21 Sep 2026 07:41:24 +0500 Subject: [PATCH 54/76] Adds M3D D8500 Enabler Pro(Improved Profile + Printings Process Presets)+ Enabler D7500 Support + M3D Enabler PLA Profile (#11973) --- resources/profiles/M3D.json | 69 +++++++-- .../profiles/M3D/M3D Enabler D7500_cover.png | Bin 0 -> 31725 bytes .../M3D Enabler D8500 MM Model_bed_model.stl | Bin 11684 -> 0 bytes ...M3D Enabler D8500 MM Model_bed_texture.svg | 1 - .../M3D/M3D Enabler D8500 MM Model_cover.png | Bin 24286 -> 0 bytes .../profiles/M3D/M3D Enabler D8500_cover.png | Bin 0 -> 23616 bytes .../M3D/filament/Enabler PLA @M3D.json | 16 +++ .../M3D/filament/fdm_filament_pla.json | 82 +++++++++++ .../machine/M3D Enabler D7500 0.4 nozzle.json | 136 ++++++++++++++++++ .../M3D/machine/M3D Enabler D7500.json | 10 ++ ...json => M3D Enabler D8500 0.4 nozzle.json} | 14 +- .../machine/M3D Enabler D8500 MM Model.json | 12 -- .../M3D/machine/M3D Enabler D8500.json | 11 ++ .../M3D/machine/fdm_machine_common.json | 97 ++----------- .../profiles/M3D/model/M3D_bed_model.stl | Bin 0 -> 47384 bytes .../profiles/M3D/model/M3D_bed_texture.png | Bin 0 -> 71782 bytes ...> 0.15mm Standard @M3D Enabler D7500.json} | 9 +- .../0.15mm Standard @M3D Enabler D8500.json | 47 ++++++ ...> 0.20mm Standard @M3D Enabler D7500.json} | 9 +- .../0.20mm Standard @M3D Enabler D8500.json | 48 +++++++ .../Fuzzy Skin @M3D Enabler D8500.json | 50 +++++++ ...gh Detail (0.12mm) @M3D Enabler D8500.json | 47 ++++++ .../High Strength @M3D Enabler D8500.json | 50 +++++++ .../Mesh Design @M3D Enabler D8500.json | 49 +++++++ ...pid Draft (0.28mm) @M3D Enabler D8500.json | 53 +++++++ .../process/Vase Mode @M3D Enabler D8500.json | 51 +++++++ .../M3D/process/fdm_process_common.json | 1 + 27 files changed, 738 insertions(+), 124 deletions(-) create mode 100644 resources/profiles/M3D/M3D Enabler D7500_cover.png delete mode 100644 resources/profiles/M3D/M3D Enabler D8500 MM Model_bed_model.stl delete mode 100644 resources/profiles/M3D/M3D Enabler D8500 MM Model_bed_texture.svg delete mode 100644 resources/profiles/M3D/M3D Enabler D8500 MM Model_cover.png create mode 100644 resources/profiles/M3D/M3D Enabler D8500_cover.png create mode 100644 resources/profiles/M3D/filament/Enabler PLA @M3D.json create mode 100644 resources/profiles/M3D/filament/fdm_filament_pla.json create mode 100644 resources/profiles/M3D/machine/M3D Enabler D7500 0.4 nozzle.json create mode 100644 resources/profiles/M3D/machine/M3D Enabler D7500.json rename resources/profiles/M3D/machine/{M3D Enabler D8500 MM.json => M3D Enabler D8500 0.4 nozzle.json} (92%) delete mode 100644 resources/profiles/M3D/machine/M3D Enabler D8500 MM Model.json create mode 100644 resources/profiles/M3D/machine/M3D Enabler D8500.json create mode 100644 resources/profiles/M3D/model/M3D_bed_model.stl create mode 100644 resources/profiles/M3D/model/M3D_bed_texture.png rename resources/profiles/M3D/process/{0.15mm MM @D8500.json => 0.15mm Standard @M3D Enabler D7500.json} (86%) create mode 100644 resources/profiles/M3D/process/0.15mm Standard @M3D Enabler D8500.json rename resources/profiles/M3D/process/{0.20mm MM @D8500.json => 0.20mm Standard @M3D Enabler D7500.json} (87%) create mode 100644 resources/profiles/M3D/process/0.20mm Standard @M3D Enabler D8500.json create mode 100644 resources/profiles/M3D/process/Fuzzy Skin @M3D Enabler D8500.json create mode 100644 resources/profiles/M3D/process/High Detail (0.12mm) @M3D Enabler D8500.json create mode 100644 resources/profiles/M3D/process/High Strength @M3D Enabler D8500.json create mode 100644 resources/profiles/M3D/process/Mesh Design @M3D Enabler D8500.json create mode 100644 resources/profiles/M3D/process/Rapid Draft (0.28mm) @M3D Enabler D8500.json create mode 100644 resources/profiles/M3D/process/Vase Mode @M3D Enabler D8500.json diff --git a/resources/profiles/M3D.json b/resources/profiles/M3D.json index 17d760face..a4231e878e 100644 --- a/resources/profiles/M3D.json +++ b/resources/profiles/M3D.json @@ -1,12 +1,16 @@ { "name": "M3D", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "0", "description": "Configuration for M3D printers", "machine_model_list": [ { - "name": "M3D Enabler D8500 MM Model", - "sub_path": "machine/M3D Enabler D8500 MM Model.json" + "name": "M3D Enabler D7500", + "sub_path": "machine/M3D Enabler D7500.json" + }, + { + "name": "M3D Enabler D8500", + "sub_path": "machine/M3D Enabler D8500.json" } ], "machine_list": [ @@ -15,8 +19,12 @@ "sub_path": "machine/fdm_machine_common.json" }, { - "name": "M3D Enabler D8500 MM", - "sub_path": "machine/M3D Enabler D8500 MM.json" + "name": "M3D Enabler D7500 0.4 nozzle", + "sub_path": "machine/M3D Enabler D7500 0.4 nozzle.json" + }, + { + "name": "M3D Enabler D8500 0.4 nozzle", + "sub_path": "machine/M3D Enabler D8500 0.4 nozzle.json" } ], "process_list": [ @@ -25,13 +33,54 @@ "sub_path": "process/fdm_process_common.json" }, { - "name": "0.15mm MM @D8500", - "sub_path": "process/0.15mm MM @D8500.json" + "name": "0.15mm Standard @M3D Enabler D7500", + "sub_path": "process/0.15mm Standard @M3D Enabler D7500.json" }, { - "name": "0.20mm MM @D8500", - "sub_path": "process/0.20mm MM @D8500.json" + "name": "0.15mm Standard @M3D Enabler D8500", + "sub_path": "process/0.15mm Standard @M3D Enabler D8500.json" + }, + { + "name": "0.20mm Standard @M3D Enabler D7500", + "sub_path": "process/0.20mm Standard @M3D Enabler D7500.json" + }, + { + "name": "0.20mm Standard @M3D Enabler D8500", + "sub_path": "process/0.20mm Standard @M3D Enabler D8500.json" + }, + { + "name": "Fuzzy Skin @M3D Enabler D8500", + "sub_path": "process/Fuzzy Skin @M3D Enabler D8500.json" + }, + { + "name": "High Detail (0.12mm) @M3D Enabler D8500", + "sub_path": "process/High Detail (0.12mm) @M3D Enabler D8500.json" + }, + { + "name": "High Strength @M3D Enabler D8500", + "sub_path": "process/High Strength @M3D Enabler D8500.json" + }, + { + "name": "Mesh Design @M3D Enabler D8500", + "sub_path": "process/Mesh Design @M3D Enabler D8500.json" + }, + { + "name": "Rapid Draft (0.28mm) @M3D Enabler D8500", + "sub_path": "process/Rapid Draft (0.28mm) @M3D Enabler D8500.json" + }, + { + "name": "Vase Mode @M3D Enabler D8500", + "sub_path": "process/Vase Mode @M3D Enabler D8500.json" } ], - "filament_list": [] + "filament_list": [ + { + "name": "fdm_filament_pla", + "sub_path": "filament/fdm_filament_pla.json" + }, + { + "name": "Enabler PLA @M3D", + "sub_path": "filament/Enabler PLA @M3D.json" + } + ] } diff --git a/resources/profiles/M3D/M3D Enabler D7500_cover.png b/resources/profiles/M3D/M3D Enabler D7500_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..a5685815e32e49ffecb595f386d15a1582377c8e GIT binary patch literal 31725 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 A9smFU literal 0 HcmV?d00001 diff --git a/resources/profiles/M3D/M3D Enabler D8500 MM Model_bed_model.stl b/resources/profiles/M3D/M3D Enabler D8500 MM Model_bed_model.stl deleted file mode 100644 index 61bc03695b842015556cef15f80824d23b26fa0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11684 zcma)?&#Pot5yvmlQ3%E#D<gsM+$pF`hG<s(8XFblDTr~Sh-kuy6C|UPjf%q2_$!c* zs2G1_5FB-2W}&zdQM?^Hpqb>wagv4EWGk*l^bZifRp-<>pL4tKOy9+OMc?|?x2jH^ zI(2XNM?ZJw!L#?DK6mz^gVmV_KXdNO2lsyLLkDj=c;D&!5AHg7aO&i#yAR%e+pP!t zUANu(uVEODu6}KO?b3-+qOKP=!|>$hh2!G|<nhw;*EWwn_9OdTdUFVBL6)UqNNf9J zlG%O3OHZtVqsX#bx!o5>n0lHbiibpqqj+^_5MzJp)8BUv$c|`ya|rMeA&!S0{`~s4 z*Pn5Ydrn<b96xXl$eydhEi@1bS_^swSseGh<!Jr*Kkiss9Csf6ee=#Y{m?lekFX>T zAQH3|)PgJy*<TCg9K&#R^MMmjmi4Ie2utDsA`w9?$l_3*Mn&%&k3ROo=J!9#9FS$V z@pXs<E!m=0mG!yRtyZzbajf--II29tlKAEj)PgLId?n*ZKfZoT<$x@^jjuxt(2^}` zRau`OJ@Cc#Cq91p(6FC;{C|HQhV#B2kVjY&9}o#z3u-~0#396c!4dKZOXA3vM{Zt) z)`D7)a~#WvL+q<q56H$5mU0|{u<TX@wIEO8P(~{PvgIm1pTq$z%T?8aEDlx4VbqnX zVTIZaS#~S8<T*sIRT1K_J`(#w6~4kA4B2WId_W{3s0CRZ)<<HWYj>{DOG1|Km0L0p z)=NT5wy0HQeQx#*W!0iCqm0&`7_#+}up|y3tS5%nf?ANpVR?$at8TeMZx7jeVptLf z5QzwCK^BLtx2<BX`WI!Zo>3uNZ?Amw2x>tVhgyjD5fgOEtZ>$bEZ-})<bp6kSC42X zSw*xs9Bb_5+_n=ZWant7Xo-9a0X`zydN{(eI1E48*m(}wbJb>svL1%;H4g;6f-H_w zC2Nb@s^QMVpE?I*U-M!~mVxlv4FtV{ERIs`&S4dP -J1G3j{u_O*4612Q_Lkk{? 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 diff --git a/resources/profiles/M3D/M3D Enabler D8500 MM Model_bed_texture.svg b/resources/profiles/M3D/M3D Enabler D8500 MM Model_bed_texture.svg deleted file mode 100644 index 540f20952b..0000000000 --- a/resources/profiles/M3D/M3D Enabler D8500 MM Model_bed_texture.svg +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2100 1500"><path d="M34.69,1327.1s5.26,4.07,10.5,10.53c3.23,3.97,8.09,11.83,8.09,11.83v116.7h-18.59v-139.06M194.43,1327.1s-5.26,4.07-10.5,10.53c-3.23,3.97-8.09,11.83-8.09,11.83v116.7h18.59v-139.06M38.45,1266.04s4.43,8.32,5.01,16.59c.58,8.03-1.31,18.51-4.22,24.4-3.06,6.2-6.37,10.75-6.37,10.75,0,0,8.6-.42,15.64.58,7.09,1,14.48,3.22,14.48,3.22,0,0,1.22-5.07.74-12.56-.5-7.78-4.79-20.43-11.66-30.35-6.46-9.33-13.62-12.63-13.62-12.63M21.05,1237.81s1.69,10.46,8.84,16.21c6.46,5.18,15.31,6.45,22.06,14.12,5.81,6.58,8.38,15.65,8.38,15.65,0,0,3.96-14.02-2.32-24.64-5.52-9.32-15.73-12.96-25.48-15.87-6.49-1.96-11.49-5.46-11.49-5.46M190.68,1266.04s-7.16,3.29-13.61,12.63c-6.88,9.92-11.17,22.57-11.67,30.35-.47,7.5.75,12.56.75,12.56,0,0,7.39-2.22,14.48-3.22,7.02-1,15.62-.58,15.62-.58,0,0-3.31-4.56-6.37-10.75-2.9-5.89-4.8-16.37-4.22-24.4.6-8.27,5.01-16.59,5.01-16.59M208.07,1237.81s-5.01,3.51-11.5,5.46c-9.75,2.91-19.96,6.56-25.48,15.87-6.27,10.62-2.32,24.64-2.32,24.64,0,0,2.58-9.07,8.38-15.65,6.76-7.67,15.61-8.93,22.06-14.12,7.15-5.75,8.85-16.21,8.85-16.21M164.36,1325.43c22.33-6.13,31.34-4.14,31.34-4.14,0,0-11.07,8.25-16.7,16.21-4.22,5.95-7.31,11.88-11.75,17.2-3.53,4.25-14.02,9.61-18.61,12.69-2.42,1.62-5.24,3.57-7.19,5.92-1.12,1.34-1.63,3.61-1.63,3.61,0,0,3.32-3.05,6.26-5.02,4.26-2.84,8.19-4.13,8.19-4.13,0,0-3.48,4.42-6.78,9.68-1.44,2.29-1.95,6.89-2.64,13.15-.05.37.7,4.18-2.07,11.04-1.6,3.99-4.17,5.99-4.17,5.99,0,0,.66-1.96.66-2.65s-.37-1.31-.37-1.31c0,0-1.32,2.15-2.98,4.46-1.65,2.32-5.08,4.51-5.08,4.51,0,0,.74.22,1.7,0,.37-.09,1.73-.25,1.73-.25,0,0-.84,3.32-3.06,7.57-3.71,7.11-3.89,11.33-3.89,11.33,0,0-.73-.49-.82-1.57-.08-1.09-.65-1.54-.65-1.54,0,0-.34.35-1.17.31-.83-.05-1.28.11-1.28.11,0,0,3.32,3.17,3.21,13.4-.05,4.68-.78,7.42-2.34,11.43-2.19,5.63-6.52,5.78-9.19,5.78-2.93,0-6.89-.5-9.18-5.78-1.7-3.94-2.29-6.74-2.34-11.43-.11-10.23,3.21-13.4,3.21-13.4,0,0-.46-.15-1.28-.11-.83.04-1.18-.31-1.18-.31,0,0-.56.45-.64,1.55-.08,1.09-.83,1.57-.83,1.57,0,0-.17-4.22-3.89-11.33-2.22-4.24-3.06-7.57-3.06-7.57,0,0,1.37.16,1.74.25.95.22,1.69,0,1.69,0,0,0-3.42-2.19-5.08-4.51-1.65-2.32-2.98-4.46-2.98-4.46,0,0-.36.62-.36,1.31s.66,2.65.66,2.65c0,0-2.57-2.01-4.17-6-2.77-6.86-2.03-10.67-2.08-11.04-.7-6.26-1.21-10.86-2.64-13.15-3.3-5.27-6.78-9.68-6.78-9.68,0,0,3.92,1.29,8.18,4.13,2.95,1.97,6.26,5.02,6.26,5.02,0,0-.51-2.27-1.62-3.61-1.95-2.36-4.78-4.3-7.2-5.93-4.59-3.07-15.08-8.44-18.6-12.68-4.43-5.33-7.47-11.3-11.75-17.2-8.1-11.17-16.7-16.21-16.7-16.21,0,0,9.02-1.99,31.34,4.13,8.11,2.22,17.18,6.19,25.97,11.25,8.93,5.14,17.54,11.43,22.33,20.84,0,0,.54.93.99.93s.99-.93.99-.93c4.79-9.42,13.41-15.71,22.33-20.84,8.78-5.06,17.85-9.03,25.96-11.24M93.84,1401.62c2.26,2.97,6.24,2.15,6.24,2.15,0,0-2.75-1.97-4.57-3.8-1.71-1.71-3.42-3.65-3.42-3.65,0,0-.5,2.32,1.76,5.3M107.38,1444.77c.25,2.38,1.04,2.11,1.04,2.11,0,0-.19-1.05-.24-2.34-.04-1.28.11-2.03.02-3.84-.08-1.88-.66-2.84-.66-2.84,0,0-.28,1.49-.28,2.4s-.15,1.86.12,4.51M113.06,1455.11s-.28-2.21-.11-4.13c.18-1.93.53-3.53.33-5.43-.18-1.9-1.73-3.5-1.73-3.5,0,0-1.96,2.05-2.35,4.91-.47,3.42.94,5.24,1.82,6.45.88,1.22,2.04,1.71,2.04,1.71M114.36,1433.31c.16-2.56-.07-5.07-.07-5.07,0,0-1.65,1.65-1.77,4.78-.15,3.55,1.26,7.48,1.26,7.48,0,0,.41-4.63.58-7.19M114.75,1415.49s2.68-22.76,2.68-26.28c0-4.03-1.95-6.69-2.68-10.88-1.11,3.97-2.81,5.76-2.81,10.69s2.81,26.47,2.81,26.47M115.79,1433.31c.17,2.56.59,7.19.59,7.19,0,0,1.4-3.93,1.26-7.48-.13-3.12-1.78-4.77-1.78-4.77,0,0-.23,2.5-.07,5.06M119.13,1453.4c.88-1.21,2.29-3.03,1.81-6.45-.39-2.86-2.34-4.91-2.34-4.91,0,0-1.55,1.6-1.74,3.5-.19,1.9.17,3.5.33,5.43.16,1.93-.11,4.13-.11,4.13,0,0,1.17-.5,2.05-1.71M122.77,1444.77c.28-2.65.12-3.6.12-4.51s-.29-2.4-.29-2.4c0,0-.57.96-.66,2.84-.08,1.82.07,2.56.02,3.84-.04,1.28-.23,2.34-.23,2.34,0,0,.79.27,1.04-2.11M136.31,1401.62c2.25-2.97,1.76-5.29,1.76-5.29,0,0-1.7,1.93-3.42,3.64-1.83,1.83-4.57,3.8-4.57,3.8,0,0,3.97.83,6.23-2.15M259.06,1361.56c1.63-7.59,7.06-15.72,22.12-15.72s20.63,7.22,20.63,16.36c0,10.09-5.85,14.52-22.82,14.52h-8.86v26.87h12.05c16.99,0,25.33,6.17,25.33,18.94s-9.31,19.39-23.72,19.39c-16.99,0-24.99-7.41-27.6-17.99h-34.86c3.47,24.05,21.09,44.95,60.55,44.95s61.12-19.49,61.12-45.19c0-22.92-15.49-31.38-25.49-34.84v-.43c6.3-2.2,19.8-9.38,19.8-28.33,0-22.58-18.06-40.67-54.98-40.67-40.78,0-55.1,24.23-57.67,42.14h34.41ZM358.04,1466.17h64.37c41.93,0,75.84-28.43,75.84-74.54,0-38-26.56-69.51-75.1-69.51h-65.11v144.05ZM393,1349.03h25.25c29.03.36,42.96,16.89,42.96,43.54,0,30.62-15.23,46.5-43.41,46.5h-24.8v-90.04Z" style="fill:#bcbec0;"/></svg> \ No newline at end of file diff --git a/resources/profiles/M3D/M3D Enabler D8500 MM Model_cover.png b/resources/profiles/M3D/M3D Enabler D8500 MM Model_cover.png deleted file mode 100644 index 0a57d39546634d545aad070ede0a90ebcffa3a0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24286 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 diff --git a/resources/profiles/M3D/M3D Enabler D8500_cover.png b/resources/profiles/M3D/M3D Enabler D8500_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..61591134e6166715ea5c48c6d5782c69a0154df3 GIT binary patch literal 23616 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 U=TtTVlfeltYZ+)(V67wm2dy_=vj6}9 literal 0 HcmV?d00001 diff --git a/resources/profiles/M3D/filament/Enabler PLA @M3D.json b/resources/profiles/M3D/filament/Enabler PLA @M3D.json new file mode 100644 index 0000000000..0fe8f52c1a --- /dev/null +++ b/resources/profiles/M3D/filament/Enabler PLA @M3D.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Enabler PLA @M3D", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "9haPEn03qtDSXkKk", + "filament_id": "OFefnvF0", + "instantiation": "true", + "enable_pressure_advance": [ + "1" + ], + "compatible_printers": [ + "M3D Enabler D7500 0.4 nozzle", + "M3D Enabler D8500 0.4 nozzle" + ] +} diff --git a/resources/profiles/M3D/filament/fdm_filament_pla.json b/resources/profiles/M3D/filament/fdm_filament_pla.json new file mode 100644 index 0000000000..4a7ee1cb78 --- /dev/null +++ b/resources/profiles/M3D/filament/fdm_filament_pla.json @@ -0,0 +1,82 @@ +{ + "type": "filament", + "name": "fdm_filament_pla", + "inherits": "fdm_filament_common", + "from": "system", + "instantiation": "false", + "fan_cooling_layer_time": [ + "100" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "filament_density": [ + "1.24" + ], + "filament_cost": [ + "20" + ], + "cool_plate_temp": [ + "35" + ], + "eng_plate_temp": [ + "0" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "fan_min_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "50%" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "nozzle_temperature": [ + "220" + ], + "temperature_vitrification": [ + "45" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "4" + ], + "additional_cooling_fan_speed": [ + "70" + ], + "filament_start_gcode": [ + "; filament start gcode\n;{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n;{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n;{endif}\n\n;{if activate_air_filtration[current_extruder] && support_air_filtration}\n;M106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n;{endif}" + ] +} diff --git a/resources/profiles/M3D/machine/M3D Enabler D7500 0.4 nozzle.json b/resources/profiles/M3D/machine/M3D Enabler D7500 0.4 nozzle.json new file mode 100644 index 0000000000..9888c656b8 --- /dev/null +++ b/resources/profiles/M3D/machine/M3D Enabler D7500 0.4 nozzle.json @@ -0,0 +1,136 @@ +{ + "type": "machine", + "name": "M3D Enabler D7500 0.4 nozzle", + "inherits": "fdm_machine_common", + "from": "system", + "setting_id": "8bIf0UX18MlL4IsW", + "instantiation": "true", + "printer_model": "M3D Enabler D7500", + "printer_variant": "0.4", + "default_print_profile": "0.20mm Standard @M3D Enabler D7500", + "default_filament_profile": [ + "Enabler PLA @M3D" + ], + "auxiliary_fan": "0", + "change_filament_gcode": "M18 E", + "deretraction_speed": [ + "50" + ], + "extruder_clearance_height_to_rod": "19", + "extruder_clearance_radius": "100", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "fan_speedup_time": "1", + "host_type": "esp3d", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": "M104 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG1 X0 Y140\nG1 Y150 F4000\nM18 X Y E\nM18 S36000", + "machine_load_filament_time": "0.5", + "machine_max_acceleration_e": [ + "10000" + ], + "machine_max_acceleration_x": [ + "2000" + ], + "machine_max_acceleration_y": [ + "2000" + ], + "machine_max_acceleration_z": [ + "400" + ], + "machine_max_speed_e": [ + "30" + ], + "machine_max_speed_x": [ + "60" + ], + "machine_max_speed_y": [ + "60" + ], + "machine_max_speed_z": [ + "12" + ], + "machine_start_gcode": "M104 S{first_layer_temperature[0]} ; Begin Heating\n\nG91 ; Relative coordinates\nG1 Z10 ; Lift the head abit\nG90 ; Back to absolute coordinates\nG28 ; Home All\nG1 Z10 F500 ; Dont want to burn the bed while heating\nM109 S{first_layer_temperature[0]} ; Wait for pre-heat\n; Prime the extruder\nG92 E0 ; Set Extruder position to be 0\nG1 E5 F100 ; Extrude a bit in the air\nG1 X0 Y5 Z0.1 F500 ; Touch Down\nG92 E0 ; Set Extruder position to be 0\nG1 X100 Z0.3 E10 F500 ; Nozzle wipe\nG92 E0 ; Set Extruder position to be 0", + "machine_tool_change_time": "0.5", + "machine_unload_filament_time": "0.5", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "machine_pause_gcode": "M601", + "max_layer_height": [ + "0.32" + ], + "min_layer_height": [ + "0.1" + ], + "nozzle_diameter": [ + "0.4" + ], + "nozzle_type": "brass", + "print_host": "m3d-enabler.local", + "printable_area": [ + "0x0", + "150x0", + "150x150", + "0x150" + ], + "printable_height": "150", + "printer_settings_id": "M3D Enabler D7500 0.4 nozzle", + "retract_before_wipe": [ + "100%" + ], + "retract_length_toolchange": [ + "17" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "4.5" + ], + "retraction_minimum_travel": [ + "2.5" + ], + "retraction_speed": [ + "60" + ], + "single_extruder_multi_material": "0", + "thumbnails": "120x60/PNG", + "travel_slope": [ + "45" + ], + "wipe": [ + "1" + ], + "wipe_distance": [ + "2" + ], + "z_hop": [ + "0" + ], + "z_hop_types": [ + "Normal Lift" + ] +} diff --git a/resources/profiles/M3D/machine/M3D Enabler D7500.json b/resources/profiles/M3D/machine/M3D Enabler D7500.json new file mode 100644 index 0000000000..2657b13506 --- /dev/null +++ b/resources/profiles/M3D/machine/M3D Enabler D7500.json @@ -0,0 +1,10 @@ +{ + "type": "machine_model", + "name": "M3D Enabler D7500", + "model_id": "M3D_D7500", + "family": "M3D", + "machine_tech": "FFF", + "nozzle_diameter": "0.4", + "bed_texture": "model/M3D_bed_texture.png", + "default_materials": "Generic PLA @System" +} diff --git a/resources/profiles/M3D/machine/M3D Enabler D8500 MM.json b/resources/profiles/M3D/machine/M3D Enabler D8500 0.4 nozzle.json similarity index 92% rename from resources/profiles/M3D/machine/M3D Enabler D8500 MM.json rename to resources/profiles/M3D/machine/M3D Enabler D8500 0.4 nozzle.json index 6c9d35786c..e57e6aeb8e 100644 --- a/resources/profiles/M3D/machine/M3D Enabler D8500 MM.json +++ b/resources/profiles/M3D/machine/M3D Enabler D8500 0.4 nozzle.json @@ -1,12 +1,17 @@ { "type": "machine", - "name": "M3D Enabler D8500 MM", + "name": "M3D Enabler D8500 0.4 nozzle", "inherits": "fdm_machine_common", + "renamed_from": "M3D Enabler D8500 MM", "from": "system", - "setting_id": "AEagqO0H5lE3ndsg", + "setting_id": "xdGprcdFiVkG5vT2", "instantiation": "true", - "printer_model": "M3D Enabler D8500 MM Model", + "printer_model": "M3D Enabler D8500", "printer_variant": "0.4", + "default_print_profile": "0.20mm Standard @M3D Enabler D8500", + "default_filament_profile": [ + "Enabler PLA @M3D" + ], "auxiliary_fan": "1", "change_filament_gcode": "M18 E", "deretraction_speed": [ @@ -89,7 +94,8 @@ "210x150", "0x150" ], - "printer_settings_id": "M3D Enabler D8500 MM", + "printable_height": "150", + "printer_settings_id": "M3D Enabler D8500 0.4 nozzle", "retract_before_wipe": [ "100%", "100%" diff --git a/resources/profiles/M3D/machine/M3D Enabler D8500 MM Model.json b/resources/profiles/M3D/machine/M3D Enabler D8500 MM Model.json deleted file mode 100644 index d661bed3d1..0000000000 --- a/resources/profiles/M3D/machine/M3D Enabler D8500 MM Model.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "machine_model", - "name": "M3D Enabler D8500 MM Model", - "model_id": "M3D_D8500_MM", - "family": "M3D", - "machine_tech": "FFF", - "nozzle_diameter": "0.4", - "bed_model": "M3D Enabler D8500 MM Model_bed_model.stl", - "bed_texture": "M3D Enabler D8500 MM Model_bed_texture.svg", - "default_materials": "Generic PLA @System", - "scan_folder": "1" -} diff --git a/resources/profiles/M3D/machine/M3D Enabler D8500.json b/resources/profiles/M3D/machine/M3D Enabler D8500.json new file mode 100644 index 0000000000..979d62b62d --- /dev/null +++ b/resources/profiles/M3D/machine/M3D Enabler D8500.json @@ -0,0 +1,11 @@ +{ + "type": "machine_model", + "name": "M3D Enabler D8500", + "model_id": "M3D_D8500", + "family": "M3D", + "machine_tech": "FFF", + "nozzle_diameter": "0.4", + "bed_model": "model/M3D_bed_model.stl", + "bed_texture": "model/M3D_bed_texture.png", + "default_materials": "Generic PLA @System" +} diff --git a/resources/profiles/M3D/machine/fdm_machine_common.json b/resources/profiles/M3D/machine/fdm_machine_common.json index 59c44f10f2..6318efdf72 100644 --- a/resources/profiles/M3D/machine/fdm_machine_common.json +++ b/resources/profiles/M3D/machine/fdm_machine_common.json @@ -8,118 +8,37 @@ "nozzle_diameter": [ "0.4" ], - "printable_area": [ - "0x0", - "210x0", - "210x150", - "0x150" - ], "thumbnails": [ "16x16" ], - "auxiliary_fan": "1", - "change_filament_gcode": "M18 E", - "deretraction_speed": [ - "50" - ], - "extruder_clearance_height_to_rod": "19", - "extruder_clearance_radius": "100", - "extruder_colour": [ - "#FCE94F" - ], - "extruder_offset": [ - "0x0" - ], - "fan_speedup_time": "1", - "host_type": "esp3d", - "long_retractions_when_cut": [ - "0" - ], - "machine_end_gcode": "; ===== ORCA END GCODE =====\nM400\nM83\nG92 E0\nG1 E-17 F1800 ; retract BEFORE any moves or power changes\n\n; Now lift and park\nG91\nG1 Z2 F2000\nG90\nG1 X100 Y160 F3000 ; parking point\n\n; Power down in order\nM104 T0 S0\nM104 T1 S0\nM106 S50 ; keep fan at ~50% while cooling (adjust if desired)\n; (Leave steppers on by omitting M84)\n; ===== END ORCA END GCODE =====\n", - "machine_load_filament_time": "0.5", "machine_max_acceleration_e": [ - "10000" + "5000" ], "machine_max_acceleration_x": [ - "2000" + "1000" ], "machine_max_acceleration_y": [ - "2000" + "1000" ], "machine_max_acceleration_z": [ - "400" + "200" ], "machine_max_speed_e": [ - "30" + "25" ], "machine_max_speed_x": [ - "400" + "200" ], "machine_max_speed_y": [ - "300" + "200" ], "machine_max_speed_z": [ - "12" + "10" ], - "machine_start_gcode": "; ===== ORCA START GCODE =====\n; minx:{first_layer_print_min[0]}\n; miny:{first_layer_print_min[1]}\n; maxx:{first_layer_print_max[0]}\n; maxy:{first_layer_print_max[1]}\n; used_0:{is_extruder_used[0]}\n; used_1:{is_extruder_used[1]}\n\n; Heaters\n{if is_extruder_used[0]}M104 T0 S{first_layer_temperature[0]}{endif}\n{if !is_extruder_used[0]}M104 T0 S150{endif}\n{if is_extruder_used[1]}M104 T1 S{first_layer_temperature[1]}{endif}\n{if !is_extruder_used[1]}M104 T1 S150{endif}\nM140 S0\nM106 S50\n\n; Home and clearance\nG28 X Y\nG28 Z\nG91\nG1 Z10 F1200 ; lift 10mm\nG90\n\n; Bed wait (dummy)\nM190 S0\n\n; Wait for target temps\n{if is_extruder_used[0]}M109 T0 S{first_layer_temperature[0]}{endif}\n{if is_extruder_used[1]}M109 T1 S{first_layer_temperature[1]}{endif}\n\n; Absolute XYZ / Relative E\nG90\nM83\n\n; ===== Dynamic Bed Leveling ====\nT0\nG1 Z3 F3000\nG1 X15 Y15 F6000\nG1 Z0.25 F1000; Otherwise Orca displays with a 3mm height\n; Single probe touch\nG30\nM420 S1\n; Bias the contact as -0.25 and fix Z-zero\nG92 Z-0.25 ; probed contact now treated as Z = -0.25\nG1 Z0.3 F300\n\n; ===== PRIME / TWO-LINE WIPES (sparse, no air extrude) =====\n\n; --- Tool 0: lines at Y=5 and Y=6 ---\n{if is_extruder_used[0]}\nT0\nG92 E0\nG1 X20 Y5 F3000\nG1 Z0.30 F600\nG1 X180 E18 F700\nG1 Y6.0 F1200\nG1 X20 E18 F700\nG92 E0\n{endif}\n\n; --- Tool 1: lines at Y=7 and Y=8 ---\n{if is_extruder_used[1]}\nT1\nG92 E0\nG1 X20 Y7 F3000\nG1 Z0.30 F600\nG1 X180 E18 F700\nG1 Y8.0 F1200\nG1 X20 E18 F700\nG92 E0\n{endif}\n\n; Activate initial tool (no retracts; Orca starts immediately)\nT{initial_extruder}\nG92 E0\n; ===== END ORCA START GCODE =====\n", - "machine_tool_change_time": "0.5", - "machine_unload_filament_time": "0.5", "max_layer_height": [ "0.32" ], "min_layer_height": [ "0.1" - ], - "retract_before_wipe": [ - "100%" - ], - "retract_length_toolchange": [ - "17" - ], - "retract_lift_above": [ - "0" - ], - "retract_lift_below": [ - "0" - ], - "retract_lift_enforce": [ - "All Surfaces" - ], - "retract_restart_extra": [ - "0" - ], - "retract_restart_extra_toolchange": [ - "0" - ], - "retract_when_changing_layer": [ - "1" - ], - "retraction_distances_when_cut": [ - "18" - ], - "retraction_length": [ - "4.5" - ], - "retraction_minimum_travel": [ - "2.5" - ], - "retraction_speed": [ - "60" - ], - "single_extruder_multi_material": "0", - "travel_slope": [ - "45" - ], - "wipe": [ - "1" - ], - "wipe_distance": [ - "2" - ], - "z_hop": [ - "0" - ], - "z_hop_types": [ - "Normal Lift" ] } diff --git a/resources/profiles/M3D/model/M3D_bed_model.stl b/resources/profiles/M3D/model/M3D_bed_model.stl new file mode 100644 index 0000000000000000000000000000000000000000..8ed24335ddbb48ce95b0fa63d3bd8bbd3515d124 GIT binary patch literal 47384 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 X<MZVg&YB<%9jdP%p<JY4ZI=CCNkZ#& literal 0 HcmV?d00001 diff --git a/resources/profiles/M3D/model/M3D_bed_texture.png b/resources/profiles/M3D/model/M3D_bed_texture.png new file mode 100644 index 0000000000000000000000000000000000000000..bd0e6b8b80fae8c7a842c7b49072596208567c31 GIT binary patch literal 71782 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 D%5_PB literal 0 HcmV?d00001 diff --git a/resources/profiles/M3D/process/0.15mm MM @D8500.json b/resources/profiles/M3D/process/0.15mm Standard @M3D Enabler D7500.json similarity index 86% rename from resources/profiles/M3D/process/0.15mm MM @D8500.json rename to resources/profiles/M3D/process/0.15mm Standard @M3D Enabler D7500.json index d7bcbadab8..9c9ee57b9e 100644 --- a/resources/profiles/M3D/process/0.15mm MM @D8500.json +++ b/resources/profiles/M3D/process/0.15mm Standard @M3D Enabler D7500.json @@ -1,12 +1,12 @@ { "type": "process", - "name": "0.15mm MM @D8500", + "name": "0.15mm Standard @M3D Enabler D7500", "inherits": "fdm_process_common", "from": "system", - "setting_id": "vVl13K18loFa1fgv", + "setting_id": "zphrnDkwB2KgrWyG", "instantiation": "true", "compatible_printers": [ - "M3D Enabler D8500 MM" + "M3D Enabler D7500 0.4 nozzle" ], "brim_type": "no_brim", "support_object_first_layer_gap": "1", @@ -41,5 +41,6 @@ "support_type": "normal(manual)", "travel_speed": "100", "wall_loops": "2", - "wipe_tower_extra_spacing": "200%" + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" } diff --git a/resources/profiles/M3D/process/0.15mm Standard @M3D Enabler D8500.json b/resources/profiles/M3D/process/0.15mm Standard @M3D Enabler D8500.json new file mode 100644 index 0000000000..10c103af8d --- /dev/null +++ b/resources/profiles/M3D/process/0.15mm Standard @M3D Enabler D8500.json @@ -0,0 +1,47 @@ +{ + "type": "process", + "name": "0.15mm Standard @M3D Enabler D8500", + "inherits": "fdm_process_common", + "renamed_from": "0.15mm MM @D8500", + "from": "system", + "setting_id": "69ArGbue7nQ5gO2r", + "instantiation": "true", + "compatible_printers": [ + "M3D Enabler D8500 0.4 nozzle" + ], + "brim_type": "no_brim", + "support_object_first_layer_gap": "1", + "support_object_xy_distance": "0.5", + "bridge_acceleration": "50%", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "inner_wall_acceleration": "1000", + "internal_solid_infill_acceleration": "100%", + "outer_wall_acceleration": "1000", + "sparse_infill_acceleration": "100%", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "1", + "filename_format": "{input_filename_base}_{print_time}.gcode", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "inner_wall_line_width": "0.4", + "inner_wall_speed": "90", + "internal_solid_infill_speed": "60", + "layer_height": "0.15", + "outer_wall_speed": "45", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "sparse_infill_density": "5%", + "sparse_infill_speed": "60", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "travel_speed": "100", + "wall_loops": "2", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" +} diff --git a/resources/profiles/M3D/process/0.20mm MM @D8500.json b/resources/profiles/M3D/process/0.20mm Standard @M3D Enabler D7500.json similarity index 87% rename from resources/profiles/M3D/process/0.20mm MM @D8500.json rename to resources/profiles/M3D/process/0.20mm Standard @M3D Enabler D7500.json index 8dab066799..23abc79f58 100644 --- a/resources/profiles/M3D/process/0.20mm MM @D8500.json +++ b/resources/profiles/M3D/process/0.20mm Standard @M3D Enabler D7500.json @@ -1,12 +1,12 @@ { "type": "process", - "name": "0.20mm MM @D8500", + "name": "0.20mm Standard @M3D Enabler D7500", "inherits": "fdm_process_common", "from": "system", - "setting_id": "sW4h3MpFpgMeE1pl", + "setting_id": "7vI60Hrdn6S3UyjQ", "instantiation": "true", "compatible_printers": [ - "M3D Enabler D8500 MM" + "M3D Enabler D7500 0.4 nozzle" ], "brim_type": "no_brim", "support_object_first_layer_gap": "1", @@ -42,5 +42,6 @@ "top_surface_speed": "40", "travel_speed": "100", "wall_loops": "2", - "wipe_tower_extra_spacing": "200%" + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" } diff --git a/resources/profiles/M3D/process/0.20mm Standard @M3D Enabler D8500.json b/resources/profiles/M3D/process/0.20mm Standard @M3D Enabler D8500.json new file mode 100644 index 0000000000..dabf8c2dd0 --- /dev/null +++ b/resources/profiles/M3D/process/0.20mm Standard @M3D Enabler D8500.json @@ -0,0 +1,48 @@ +{ + "type": "process", + "name": "0.20mm Standard @M3D Enabler D8500", + "inherits": "fdm_process_common", + "renamed_from": "0.20mm MM @D8500", + "from": "system", + "setting_id": "gg3RzTI5TgWRX2Hh", + "instantiation": "true", + "compatible_printers": [ + "M3D Enabler D8500 0.4 nozzle" + ], + "brim_type": "no_brim", + "support_object_first_layer_gap": "1", + "support_object_xy_distance": "0.5", + "bridge_acceleration": "50%", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "inner_wall_acceleration": "1000", + "internal_solid_infill_acceleration": "100%", + "outer_wall_acceleration": "1000", + "sparse_infill_acceleration": "100%", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "1", + "filename_format": "{input_filename_base}_{print_time}.gcode", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "inner_wall_line_width": "0.4", + "inner_wall_speed": "90", + "internal_solid_infill_speed": "60", + "layer_height": "0.2", + "outer_wall_speed": "45", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "sparse_infill_density": "5%", + "sparse_infill_speed": "60", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "top_surface_speed": "40", + "travel_speed": "100", + "wall_loops": "2", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" +} diff --git a/resources/profiles/M3D/process/Fuzzy Skin @M3D Enabler D8500.json b/resources/profiles/M3D/process/Fuzzy Skin @M3D Enabler D8500.json new file mode 100644 index 0000000000..b2fe83d8c0 --- /dev/null +++ b/resources/profiles/M3D/process/Fuzzy Skin @M3D Enabler D8500.json @@ -0,0 +1,50 @@ +{ + "type": "process", + "name": "Fuzzy Skin @M3D Enabler D8500", + "inherits": "fdm_process_common", + "from": "system", + "setting_id": "wSzFtN7itr21R1IU", + "instantiation": "true", + "compatible_printers": [ + "M3D Enabler D8500 0.4 nozzle" + ], + "layer_height": "0.20", + "fuzzy_skin": "allwalls", + "fuzzy_skin_point_distance": "0.8", + "fuzzy_skin_thickness": "0.3", + "wall_loops": "3", + "outer_wall_speed": "30", + "filename_format": "{input_filename_base}_Fuzzy_{print_time}.gcode", + "brim_type": "no_brim", + "support_object_first_layer_gap": "1", + "support_object_xy_distance": "0.5", + "bridge_acceleration": "50%", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "inner_wall_acceleration": "1000", + "internal_solid_infill_acceleration": "100%", + "outer_wall_acceleration": "1000", + "sparse_infill_acceleration": "100%", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "1", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "inner_wall_line_width": "0.4", + "inner_wall_speed": "90", + "internal_solid_infill_speed": "60", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "sparse_infill_density": "5%", + "sparse_infill_speed": "60", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "top_surface_speed": "40", + "travel_speed": "100", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" +} diff --git a/resources/profiles/M3D/process/High Detail (0.12mm) @M3D Enabler D8500.json b/resources/profiles/M3D/process/High Detail (0.12mm) @M3D Enabler D8500.json new file mode 100644 index 0000000000..5f9a59d0fd --- /dev/null +++ b/resources/profiles/M3D/process/High Detail (0.12mm) @M3D Enabler D8500.json @@ -0,0 +1,47 @@ +{ + "type": "process", + "name": "High Detail (0.12mm) @M3D Enabler D8500", + "inherits": "fdm_process_common", + "from": "system", + "setting_id": "wPciFcJ3DE0m8zXK", + "instantiation": "true", + "compatible_printers": [ + "M3D Enabler D8500 0.4 nozzle" + ], + "brim_type": "no_brim", + "layer_height": "0.12", + "wall_loops": "3", + "outer_wall_speed": "30", + "inner_wall_speed": "60", + "top_surface_speed": "30", + "sparse_infill_speed": "50", + "default_acceleration": "800", + "outer_wall_acceleration": "500", + "enable_support": "0", + "sparse_infill_density": "5%", + "filename_format": "{input_filename_base}_Detail_{print_time}.gcode", + "support_object_first_layer_gap": "1", + "support_object_xy_distance": "0.5", + "bridge_acceleration": "50%", + "initial_layer_acceleration": "500", + "inner_wall_acceleration": "1000", + "internal_solid_infill_acceleration": "100%", + "sparse_infill_acceleration": "100%", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "inner_wall_line_width": "0.4", + "internal_solid_infill_speed": "60", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "travel_speed": "100", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" +} diff --git a/resources/profiles/M3D/process/High Strength @M3D Enabler D8500.json b/resources/profiles/M3D/process/High Strength @M3D Enabler D8500.json new file mode 100644 index 0000000000..98c71fd935 --- /dev/null +++ b/resources/profiles/M3D/process/High Strength @M3D Enabler D8500.json @@ -0,0 +1,50 @@ +{ + "type": "process", + "name": "High Strength @M3D Enabler D8500", + "inherits": "fdm_process_common", + "from": "system", + "setting_id": "02c4AWge1ghZ365R", + "instantiation": "true", + "compatible_printers": [ + "M3D Enabler D8500 0.4 nozzle" + ], + "layer_height": "0.20", + "wall_loops": "4", + "bottom_shell_layers": "4", + "top_shell_layers": "4", + "sparse_infill_pattern": "gyroid", + "sparse_infill_density": "15%", + "outer_wall_speed": "40", + "inner_wall_speed": "80", + "enable_support": "1", + "filename_format": "{input_filename_base}_Strong_{print_time}.gcode", + "brim_type": "no_brim", + "support_object_first_layer_gap": "1", + "support_object_xy_distance": "0.5", + "bridge_acceleration": "50%", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "inner_wall_acceleration": "1000", + "internal_solid_infill_acceleration": "100%", + "outer_wall_acceleration": "1000", + "sparse_infill_acceleration": "100%", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "inner_wall_line_width": "0.4", + "internal_solid_infill_speed": "60", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "sparse_infill_speed": "60", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "top_surface_speed": "40", + "travel_speed": "100", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" +} diff --git a/resources/profiles/M3D/process/Mesh Design @M3D Enabler D8500.json b/resources/profiles/M3D/process/Mesh Design @M3D Enabler D8500.json new file mode 100644 index 0000000000..3047dc37be --- /dev/null +++ b/resources/profiles/M3D/process/Mesh Design @M3D Enabler D8500.json @@ -0,0 +1,49 @@ +{ + "type": "process", + "name": "Mesh Design @M3D Enabler D8500", + "inherits": "fdm_process_common", + "from": "system", + "setting_id": "M9spKPFSnHC6WCf2", + "instantiation": "true", + "compatible_printers": [ + "M3D Enabler D8500 0.4 nozzle" + ], + "brim_type": "no_brim", + "support_object_first_layer_gap": "1", + "support_object_xy_distance": "0.5", + "bridge_acceleration": "50%", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "inner_wall_acceleration": "1000", + "internal_solid_infill_acceleration": "100%", + "outer_wall_acceleration": "1000", + "sparse_infill_acceleration": "100%", + "top_surface_acceleration": "1000", + "top_shell_layers": "0", + "bottom_shell_layers": "0", + "sparse_infill_pattern": "honeycomb", + "travel_acceleration": "1000", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "enable_support": "1", + "filename_format": "{input_filename_base}_{print_time}.gcode", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "inner_wall_line_width": "0.4", + "inner_wall_speed": "90", + "internal_solid_infill_speed": "60", + "layer_height": "0.2", + "outer_wall_speed": "45", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "sparse_infill_density": "15%", + "sparse_infill_speed": "60", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "top_surface_speed": "40", + "travel_speed": "100", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" +} diff --git a/resources/profiles/M3D/process/Rapid Draft (0.28mm) @M3D Enabler D8500.json b/resources/profiles/M3D/process/Rapid Draft (0.28mm) @M3D Enabler D8500.json new file mode 100644 index 0000000000..5a4ee2ac7d --- /dev/null +++ b/resources/profiles/M3D/process/Rapid Draft (0.28mm) @M3D Enabler D8500.json @@ -0,0 +1,53 @@ +{ + "type": "process", + "name": "Rapid Draft (0.28mm) @M3D Enabler D8500", + "inherits": "fdm_process_common", + "from": "system", + "setting_id": "2Kk8hmQGrKUokCZQ", + "instantiation": "true", + "compatible_printers": [ + "M3D Enabler D8500 0.4 nozzle" + ], + "layer_height": "0.32", + "wall_loops": "2", + "sparse_infill_pattern": "lightning", + "sparse_infill_density": "15%", + "sparse_infill_speed": "80", + "top_surface_speed": "50", + "enable_support": "0", + "filename_format": "{input_filename_base}_Draft_{print_time}.gcode", + "brim_type": "no_brim", + "support_object_first_layer_gap": "1", + "support_object_xy_distance": "0.5", + "bridge_acceleration": "50%", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "inner_wall_acceleration": "1000", + "internal_solid_infill_acceleration": "100%", + "outer_wall_acceleration": "1000", + "sparse_infill_acceleration": "100%", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "enable_prime_tower": "1", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "travel_speed": "100", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2", + "top_shell_layers": "2", + "bottom_shell_layers": "2", + "enable_overhang_speed": "0", + "initial_layer_line_width": "0.4", + "inner_wall_line_width": "0.8", + "inner_wall_speed": "120", + "internal_solid_infill_speed": "75", + "line_width": "0.8", + "outer_wall_line_width": "0.8", + "outer_wall_speed": "90" +} diff --git a/resources/profiles/M3D/process/Vase Mode @M3D Enabler D8500.json b/resources/profiles/M3D/process/Vase Mode @M3D Enabler D8500.json new file mode 100644 index 0000000000..b074b6ddb3 --- /dev/null +++ b/resources/profiles/M3D/process/Vase Mode @M3D Enabler D8500.json @@ -0,0 +1,51 @@ +{ + "type": "process", + "name": "Vase Mode @M3D Enabler D8500", + "inherits": "fdm_process_common", + "from": "system", + "setting_id": "RN5U8MVSSjZuzqaG", + "instantiation": "true", + "compatible_printers": [ + "M3D Enabler D8500 0.4 nozzle" + ], + "spiral_mode": "1", + "layer_height": "0.20", + "wall_loops": "1", + "top_shell_layers": "0", + "bottom_shell_layers": "4", + "sparse_infill_density": "0%", + "enable_support": "0", + "outer_wall_speed": "40", + "slowdown_for_curled_perimeters": "0", + "filename_format": "{input_filename_base}_Vase_{print_time}.gcode", + "brim_type": "no_brim", + "support_object_first_layer_gap": "1", + "support_object_xy_distance": "0.5", + "bridge_acceleration": "50%", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "inner_wall_acceleration": "1000", + "internal_solid_infill_acceleration": "100%", + "outer_wall_acceleration": "1000", + "sparse_infill_acceleration": "100%", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "enable_overhang_speed": "1", + "enable_prime_tower": "1", + "gap_infill_speed": "60", + "initial_layer_speed": "35", + "inner_wall_line_width": "0.4", + "inner_wall_speed": "90", + "internal_solid_infill_speed": "60", + "prime_tower_brim_width": "1", + "prime_tower_width": "40", + "prime_volume": "30", + "slow_down_layers": "1", + "sparse_infill_speed": "60", + "support_interface_speed": "30", + "support_type": "normal(manual)", + "top_surface_speed": "40", + "travel_speed": "100", + "wipe_tower_extra_spacing": "200%", + "wipe_tower_filament": "2" +} diff --git a/resources/profiles/M3D/process/fdm_process_common.json b/resources/profiles/M3D/process/fdm_process_common.json index 9b4af74c6d..74b9f3d0aa 100644 --- a/resources/profiles/M3D/process/fdm_process_common.json +++ b/resources/profiles/M3D/process/fdm_process_common.json @@ -25,5 +25,6 @@ "top_surface_speed": "40", "travel_speed": "100", "wall_loops": "2", + "skirt_loops": "0", "wipe_tower_extra_spacing": "200%" } From a5d3aaefd3c362ca2bef54b1792d2a41fb81d5e0 Mon Sep 17 00:00:00 2001 From: Grant Harkness <64664463+grant0013@users.noreply.github.com> Date: Mon, 21 Sep 2026 04:37:50 +0100 Subject: [PATCH 55/76] =?UTF-8?q?Creality=20K1-family=20CFS=20support=20(K?= =?UTF-8?q?1=20SE)=20=E2=80=94=20follow-up=20to=20#13752=20(#14089)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/profiles/Creality.json | 2 +- .../machine/Creality K1 (0.4 nozzle).json | 3 +- .../machine/Creality K1 (0.6 nozzle).json | 3 +- .../machine/Creality K1 (0.8 nozzle).json | 3 +- .../machine/Creality K1 SE 0.4 nozzle.json | 3 +- .../machine/Creality K1 SE 0.6 nozzle.json | 3 +- .../machine/Creality K1 SE 0.8 nozzle.json | 3 +- .../machine/Creality K1C 0.4 nozzle.json | 3 +- .../machine/Creality K1C 0.6 nozzle.json | 3 +- .../machine/Creality K1C 0.8 nozzle.json | 3 +- .../machine/Creality K1_CFS-C 0.4 nozzle.json | 3 +- src/slic3r/Utils/CrealityHostDiscovery.cpp | 18 +--- src/slic3r/Utils/CrealityPrint.cpp | 102 +++++++++++++----- src/slic3r/Utils/CrealityPrint.hpp | 6 ++ 14 files changed, 107 insertions(+), 51 deletions(-) diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index a0a51e8267..2ba6a5aa62 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,6 +1,6 @@ { "name": "Creality", - "version": "02.03.02.81", + "version": "02.03.02.82", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ diff --git a/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json b/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json index 01a3bc7d5d..765e3b3125 100644 --- a/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json @@ -149,7 +149,8 @@ "fan_speedup_overhangs": "1", "fan_speedup_time": "0", "high_current_on_filament_swap": "0", - "host_type": "octoprint", + "host_type": "crealityprint", + "printer_agent": "crealityprint", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "machine_LED_light_exist": "1", "machine_load_filament_time": "119", diff --git a/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json b/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json index fdb83b032e..ac6c71187b 100644 --- a/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json @@ -151,7 +151,8 @@ "fan_speedup_overhangs": "1", "fan_speedup_time": "0", "high_current_on_filament_swap": "0", - "host_type": "octoprint", + "host_type": "crealityprint", + "printer_agent": "crealityprint", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "machine_LED_light_exist": "1", "machine_load_filament_time": "119", diff --git a/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json b/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json index 8cb8e6f169..e2df1ba34c 100644 --- a/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json @@ -151,7 +151,8 @@ "fan_speedup_overhangs": "1", "fan_speedup_time": "0", "high_current_on_filament_swap": "0", - "host_type": "octoprint", + "host_type": "crealityprint", + "printer_agent": "crealityprint", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "machine_LED_light_exist": "1", "machine_load_filament_time": "119", diff --git a/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json index f8aa68f3c0..a8aaadeadb 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json @@ -151,7 +151,8 @@ "fan_speedup_overhangs": "1", "fan_speedup_time": "0", "high_current_on_filament_swap": "0", - "host_type": "octoprint", + "host_type": "crealityprint", + "printer_agent": "crealityprint", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "machine_LED_light_exist": "1", "machine_load_filament_time": "119", diff --git a/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json index bbc97a8f5a..59435515f5 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json @@ -32,7 +32,8 @@ "fan_speedup_time": "0", "gcode_flavor": "klipper", "high_current_on_filament_swap": "0", - "host_type": "octoprint", + "host_type": "crealityprint", + "printer_agent": "crealityprint", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "machine_LED_light_exist": "1", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json index 00282be149..0db81bbdec 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json @@ -32,7 +32,8 @@ "fan_speedup_time": "0", "gcode_flavor": "klipper", "high_current_on_filament_swap": "0", - "host_type": "octoprint", + "host_type": "crealityprint", + "printer_agent": "crealityprint", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "machine_LED_light_exist": "1", "machine_end_gcode": "END_PRINT", diff --git a/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json index ac6fd03393..9f355f391a 100644 --- a/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json @@ -150,7 +150,8 @@ "fan_speedup_overhangs": "1", "fan_speedup_time": "0", "high_current_on_filament_swap": "0", - "host_type": "octoprint", + "host_type": "crealityprint", + "printer_agent": "crealityprint", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "machine_LED_light_exist": "1", "machine_load_filament_time": "119", diff --git a/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json index 58e7fa841f..44c5147f58 100644 --- a/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json @@ -152,7 +152,8 @@ "fan_speedup_overhangs": "1", "fan_speedup_time": "0", "high_current_on_filament_swap": "0", - "host_type": "octoprint", + "host_type": "crealityprint", + "printer_agent": "crealityprint", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "machine_LED_light_exist": "1", "machine_load_filament_time": "119", diff --git a/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json index 82edb57d82..9a271da17f 100644 --- a/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json @@ -152,7 +152,8 @@ "fan_speedup_overhangs": "1", "fan_speedup_time": "0", "high_current_on_filament_swap": "0", - "host_type": "octoprint", + "host_type": "crealityprint", + "printer_agent": "crealityprint", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "machine_LED_light_exist": "1", "machine_load_filament_time": "119", diff --git a/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json index 4da0be155c..375e0bc71b 100644 --- a/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json @@ -31,7 +31,8 @@ "fan_speedup_time": "0", "gcode_flavor": "klipper", "high_current_on_filament_swap": "0", - "host_type": "octoprint", + "host_type": "crealityprint", + "printer_agent": "crealityprint", "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", "machine_LED_light_exist": "1", "machine_end_gcode": "END_PRINT", diff --git a/src/slic3r/Utils/CrealityHostDiscovery.cpp b/src/slic3r/Utils/CrealityHostDiscovery.cpp index 8fcf16749d..a3256794e2 100644 --- a/src/slic3r/Utils/CrealityHostDiscovery.cpp +++ b/src/slic3r/Utils/CrealityHostDiscovery.cpp @@ -1,4 +1,5 @@ #include "CrealityHostDiscovery.hpp" +#include "CrealityPrint.hpp" #include "cxmdns.h" #include "Http.hpp" @@ -11,25 +12,16 @@ namespace Slic3r { namespace { -struct ModelEntry { const char* code; const char* name; }; -constexpr ModelEntry kCfsCapableModels[] = { - {"F008", "K2 Plus"}, - {"F012", "K2 Pro"}, - {"F021", "K2"}, -}; - +// Model capability/name lookups live in CrealityPrint (one table shared +// with the print host) so discovery can't drift out of sync again. bool is_cfs_capable(const std::string& code) { - for (const auto& m : kCfsCapableModels) - if (code == m.code) return true; - return false; + return CrealityPrint::model_supports_multi_color(code); } std::string model_name_for(const std::string& code) { - for (const auto& m : kCfsCapableModels) - if (code == m.code) return m.name; - return {}; + return CrealityPrint::model_display_name(code); } // Extract the device suffix from a service name like diff --git a/src/slic3r/Utils/CrealityPrint.cpp b/src/slic3r/Utils/CrealityPrint.cpp index ec980cee98..323db56ff6 100644 --- a/src/slic3r/Utils/CrealityPrint.cpp +++ b/src/slic3r/Utils/CrealityPrint.cpp @@ -2,6 +2,7 @@ #include <algorithm> #include <map> +#include <unordered_set> #include <sstream> #include <exception> #include <boost/format.hpp> @@ -217,29 +218,36 @@ static void ws_connect(net::io_context& ioc, websocket::stream<beast::tcp_stream std::string(BOOST_BEAST_VERSION_STRING) + " websocket-client-coro"); })); ws.handshake(host, "/"); - -#ifdef _WIN32 - DWORD recv_timeout = 3000; -#else - struct timeval recv_timeout = {3, 0}; -#endif - setsockopt(beast::get_lowest_layer(ws).socket().native_handle(), - SOL_SOCKET, SO_RCVTIMEO, reinterpret_cast<const char*>(&recv_timeout), sizeof(recv_timeout)); + // K1-family firmware requires TEXT-mode WebSocket frames; K2-family accepts both. + // SO_RCVTIMEO is a no-op with Boost.Asio on macOS/Linux (kqueue/epoll); use + // expires_after() on the tcp_stream layer instead (managed per-call by the caller). + ws.text(true); } static std::string ws_send_and_read(websocket::stream<beast::tcp_stream>& ws, const json& cmd, const std::string& expected_key, int max_reads = 20) { ws.write(net::buffer(to_string(cmd))); - for (int i = 0; i < max_reads; i++) { + // total caps the loop if the printer sends a continuous stream of heartbeats + for (int reads = 0, total = 0; reads < max_reads && total < max_reads * 3; ++total) { beast::flat_buffer buf; beast::error_code ec; ws.read(buf, ec); - if (ec == net::error::would_block) + // would_block = SO_RCVTIMEO fired (Windows/raw sockets) + // beast::error::timeout = expires_after() fired (Boost.Beast, macOS/Linux) + if (ec == net::error::would_block || ec == beast::error::timeout) break; if (ec) throw beast::system_error{ec}; std::string msg = beast::buffers_to_string(buf.data()); + // K1-family firmware sends periodic heartbeat pings; ack them so the + // printer does not close the connection, then keep reading. + if (msg.find("heart_beat") != std::string::npos) { + beast::error_code wr_ec; + ws.write(net::buffer(std::string("ok")), wr_ec); + continue; + } + ++reads; if (msg.find(expected_key) != std::string::npos) return msg; } @@ -247,6 +255,19 @@ static std::string ws_send_and_read(websocket::stream<beast::tcp_stream>& ws, co return {}; } +// K1-family firmware stores gcodes under /usr/data and uses a stricter WebSocket +// protocol (TEXT frames, heartbeat acks). Add verified K1-family model IDs here. +static bool is_k1_family(const std::string& model) +{ + static const std::unordered_set<std::string> k1_models = { + "K1", + "K1 SE", + "K1C", + "K1_CFS-C", + }; + return k1_models.count(model) > 0; +} + void CrealityPrint::query_model() const { if (!m_model.empty()) @@ -256,29 +277,48 @@ void CrealityPrint::query_model() const test(msg); } -bool CrealityPrint::supports_multi_color_print() const +// CFS-capable models. One table for capability checks, display names and +// LAN-discovery labelling -- keep additions here only. +static const std::map<std::string, std::string>& cfs_capable_models() { - query_model(); - // K2-platform printers with CFS support - return m_model == "F008" // K2 Plus - || m_model == "F012" // K2 Pro - || m_model == "F021" // K2 - || m_model == "F022"; // SPARKX i7 -} - -std::string CrealityPrint::model_name() const -{ - static const std::map<std::string, std::string> names = { + static const std::map<std::string, std::string> models = { {"F008", "K2 Plus"}, {"F012", "K2 Pro"}, {"F021", "K2"}, {"F022", "SPARKX i7"}, + {"K1", "K1"}, + {"K1 SE", "K1 SE"}, + {"K1C", "K1C"}, + {"K1_CFS-C", "K1_CFS-C"}, }; + return models; +} + +bool CrealityPrint::model_supports_multi_color(const std::string& model) +{ + return cfs_capable_models().count(model) > 0; +} + +std::string CrealityPrint::model_display_name(const std::string& model) +{ + auto& names = cfs_capable_models(); + auto it = names.find(model); + return it != names.end() ? it->second : std::string{}; +} + +bool CrealityPrint::supports_multi_color_print() const +{ + query_model(); + return model_supports_multi_color(m_model); +} + +std::string CrealityPrint::model_name() const +{ query_model(); if (m_model.empty()) return "unreachable"; - auto it = names.find(m_model); - return it != names.end() ? it->second : "unknown (" + m_model + ")"; + std::string name = model_display_name(m_model); + return !name.empty() ? name : "unknown (" + m_model + ")"; } std::string CrealityPrint::query_boxes_info() const @@ -288,9 +328,15 @@ std::string CrealityPrint::query_boxes_info() const websocket::stream<beast::tcp_stream> ws{ioc}; ws_connect(ioc, ws, m_host, "9999"); + beast::get_lowest_layer(ws).expires_after(std::chrono::seconds(10)); json boxs_query = {{"method", "get"}, {"params", {{"boxsInfo", 1}}}}; std::string result = ws_send_and_read(ws, boxs_query, "boxsInfo"); - ws.close(websocket::close_code::normal); + + // K1 SE closes its side after responding; use the error_code overload so + // the resulting EOF does not throw and discard the already-received result. + beast::error_code close_ec; + beast::get_lowest_layer(ws).expires_after(std::chrono::seconds(3)); + ws.close(websocket::close_code::normal, close_ec); return result; } catch (std::exception const& e) { BOOST_LOG_TRIVIAL(error) << "CrealityPrint: Failed to query boxsInfo: " << e.what(); @@ -301,7 +347,8 @@ std::string CrealityPrint::query_boxes_info() const bool CrealityPrint::start_print(wxString &msg, const std::string &filename, const std::map<std::string, std::string>& extended_info) const { try { - const std::string gcode_path = "/mnt/UDISK/printer_data/gcodes/" + filename; + const std::string data_root = is_k1_family(m_model) ? "/usr/data" : "/mnt/UDISK"; + const std::string gcode_path = data_root + "/printer_data/gcodes/" + filename; net::io_context ioc; websocket::stream<beast::tcp_stream> ws{ioc}; @@ -379,7 +426,7 @@ bool CrealityPrint::start_print(wxString &msg, const std::string &filename, cons json cmd = { {"method", "set"}, {"params", { - {"opGcodeFile", "printprt:/usr/data/printer_data/gcodes/" + filename} + {"opGcodeFile", "printprt:" + gcode_path} }} }; ws.write(net::buffer(to_string(cmd))); @@ -396,6 +443,7 @@ bool CrealityPrint::start_print(wxString &msg, const std::string &filename, cons // Same reason: the printer may have already closed the connection. A close // error here is not a failure — the start command was sent above. beast::error_code close_ec; + beast::get_lowest_layer(ws).expires_after(std::chrono::seconds(3)); ws.close(websocket::close_code::normal, close_ec); return true; } catch(std::exception const& e) { diff --git a/src/slic3r/Utils/CrealityPrint.hpp b/src/slic3r/Utils/CrealityPrint.hpp index 3b5287f382..2c3c554cf4 100644 --- a/src/slic3r/Utils/CrealityPrint.hpp +++ b/src/slic3r/Utils/CrealityPrint.hpp @@ -31,6 +31,12 @@ public: PrintHostPostUploadActions get_post_upload_actions() const override; bool upload(PrintHostUpload upload_data, ProgressFn prorgess_fn, ErrorFn error_fn, InfoFn info_fn) const override; bool supports_multi_color_print() const; + + // Single source of truth for the CFS-capable model table, shared with + // LAN discovery (CrealityHostDiscovery). Model is the /info "model" + // value: an F-code on the K2 platform, a literal name on K1-family. + static bool model_supports_multi_color(const std::string& model); + static std::string model_display_name(const std::string& model); std::string query_boxes_info() const; std::string model_name() const; From 454ef1571b30d49312a3f4c037f41882663531b6 Mon Sep 17 00:00:00 2001 From: Davide Garberi <dade.garberi@gmail.com> Date: Mon, 21 Sep 2026 10:01:14 +0200 Subject: [PATCH 56/76] Update generic filament profiles for Creality SPARKX i7 (#14388) --- resources/profiles/Creality.json | 2 +- .../filament/Generic PETG @SPARKX i7-all.json | 2 +- .../filament/Generic PLA @SPARKX i7-all.json | 17 ++++++++++------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index 2ba6a5aa62..ecb8ebe2b1 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,6 +1,6 @@ { "name": "Creality", - "version": "02.03.02.82", + "version": "02.03.02.83", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ diff --git a/resources/profiles/Creality/filament/Generic PETG @SPARKX i7-all.json b/resources/profiles/Creality/filament/Generic PETG @SPARKX i7-all.json index a7c58188b0..4005f5c8b4 100644 --- a/resources/profiles/Creality/filament/Generic PETG @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Generic PETG @SPARKX i7-all.json @@ -55,7 +55,7 @@ "0" ], "filament_max_volumetric_speed": [ - "12" + "8" ], "filament_retract_before_wipe": [ "100" diff --git a/resources/profiles/Creality/filament/Generic PLA @SPARKX i7-all.json b/resources/profiles/Creality/filament/Generic PLA @SPARKX i7-all.json index bfa143866e..3a8af3548a 100644 --- a/resources/profiles/Creality/filament/Generic PLA @SPARKX i7-all.json +++ b/resources/profiles/Creality/filament/Generic PLA @SPARKX i7-all.json @@ -43,19 +43,19 @@ "1.75" ], "filament_flow_ratio": [ - "0.98" + "0.95" ], "filament_is_support": [ "0" ], "filament_max_volumetric_speed": [ - "16" + "14" ], "filament_minimal_purge_on_wipe_tower": [ "15" ], "filament_retract_before_wipe": [ - "nil" + "100%" ], "filament_retract_restart_extra": [ "nil" @@ -67,7 +67,7 @@ "nil" ], "filament_retraction_minimum_travel": [ - "nil" + "2" ], "filament_retraction_speed": [ "nil" @@ -106,7 +106,10 @@ "0" ], "slow_down_layer_time": [ - "8" + "14" + ], + "slow_down_min_speed": [ + "20" ], "temperature_vitrification": [ "110" @@ -118,7 +121,7 @@ "55" ], "filament_start_gcode": [ - "; Filament gcode\n" + ";filament start gcode\n" ], "filament_end_gcode": [ "; filament end gcode \n" @@ -153,7 +156,7 @@ "filament_unloading_speed_start": "100", "material_flow_dependent_temperature": "0", "material_flow_temp_graph": "[[0.2,210],[0.6,220]]", - "pressure_advance": "0.12", + "pressure_advance": "0.032", "support_material_interface_fan_speed": "-1", "compatible_printers": [ "Creality SPARKX i7 0.2 nozzle", From 83eaf3bcfc2a33840f4b80f6ad908c501d23514d Mon Sep 17 00:00:00 2001 From: gyarros <gyarros@gmail.com> Date: Mon, 21 Sep 2026 05:07:49 -0300 Subject: [PATCH 57/76] FilAr PLA-mate: lower bed temperature to 50 C (#14489) --- .../filament/FilAr/FilAr PLA-mate @base.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate @base.json b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate @base.json index 729e9d7b9c..972f5a4220 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate @base.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/FilAr/FilAr PLA-mate @base.json @@ -33,15 +33,15 @@ "210" ], "hot_plate_temp": [ - "60" + "50" ], "hot_plate_temp_initial_layer": [ - "60" + "50" ], "textured_plate_temp": [ - "60" + "50" ], "textured_plate_temp_initial_layer": [ - "60" + "50" ] } \ No newline at end of file From 3eae4c69978d10eda341ead98f1370e7df20a218 Mon Sep 17 00:00:00 2001 From: Alexander Haibl <RodentVienna@users.noreply.github.com> Date: Mon, 21 Sep 2026 10:22:32 +0200 Subject: [PATCH 58/76] fix-start-gcode for many creality printers (#14652) --- resources/profiles/Creality.json | 2 +- .../Creality/machine/Creality Ender-3 V4 0.4 nozzle.json | 2 +- .../profiles/Creality/machine/Creality K1 (0.4 nozzle).json | 2 +- .../profiles/Creality/machine/Creality K1 (0.6 nozzle).json | 2 +- .../profiles/Creality/machine/Creality K1 (0.8 nozzle).json | 2 +- .../profiles/Creality/machine/Creality K1 Max (0.4 nozzle).json | 2 +- .../profiles/Creality/machine/Creality K1 Max (0.6 nozzle).json | 2 +- .../profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json | 2 +- .../Creality/machine/Creality K1 Max_CFS-C 0.4 nozzle.json | 2 +- .../profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json | 2 +- .../profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json | 2 +- .../profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json | 2 +- .../Creality/machine/Creality K1 SE_CFS-C 0.4 nozzle.json | 2 +- .../profiles/Creality/machine/Creality K1C 0.4 nozzle.json | 2 +- .../profiles/Creality/machine/Creality K1C 0.6 nozzle.json | 2 +- .../profiles/Creality/machine/Creality K1C 0.8 nozzle.json | 2 +- .../Creality/machine/Creality K1C_CFS-C 0.4 nozzle.json | 2 +- .../profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json | 2 +- .../Creality/machine/Creality SPARKX i7 0.2 nozzle.json | 2 +- .../Creality/machine/Creality SPARKX i7 0.4 nozzle.json | 2 +- .../Creality/machine/Creality SPARKX i7 0.6 nozzle.json | 2 +- .../Creality/machine/Creality SPARKX i7 0.8 nozzle.json | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/resources/profiles/Creality.json b/resources/profiles/Creality.json index ecb8ebe2b1..b5d5b420bd 100644 --- a/resources/profiles/Creality.json +++ b/resources/profiles/Creality.json @@ -1,6 +1,6 @@ { "name": "Creality", - "version": "02.03.02.83", + "version": "02.03.02.84", "force_update": "0", "description": "Creality configurations", "machine_model_list": [ diff --git a/resources/profiles/Creality/machine/Creality Ender-3 V4 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality Ender-3 V4 0.4 nozzle.json index 5829268d2e..ce5d13c8d9 100644 --- a/resources/profiles/Creality/machine/Creality Ender-3 V4 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality Ender-3 V4 0.4 nozzle.json @@ -54,7 +54,7 @@ "machine_min_travel_rate": "0,0", "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "0", - "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 X20 Y-1 F30000\nG1 Z0.3 F1200\nG1 X100 E10 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X120 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X125 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X1 Z-0.300\nG1 X4\nG92 E0\nG1 Z1 F1200", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 X20 Y-1 F30000\nG1 Z0.3 F1200\nG1 X100 E10 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X120 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X125 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X1 Z-0.300\nG1 X4\nG92 E0\nG1 Z1 F1200", "machine_unload_filament_time": "0", "manual_filament_change": "0", "nozzle_hrc": "0", diff --git a/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json b/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json index 765e3b3125..11edd6f072 100644 --- a/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 (0.4 nozzle).json @@ -123,7 +123,7 @@ "default_filament_profile": [ "Generic PLA HF @Creality" ], - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "scan_first_layer": "0", "thumbnails": [ diff --git a/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json b/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json index ac6c71187b..1c79748908 100644 --- a/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 (0.6 nozzle).json @@ -123,7 +123,7 @@ "default_filament_profile": [ "Generic PLA HF @Creality" ], - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "scan_first_layer": "0", "thumbnails": [ diff --git a/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json b/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json index e2df1ba34c..64744dd2d5 100644 --- a/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 (0.8 nozzle).json @@ -123,7 +123,7 @@ "default_filament_profile": [ "Generic PLA HF @Creality" ], - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "scan_first_layer": "0", "thumbnails": [ diff --git a/resources/profiles/Creality/machine/Creality K1 Max (0.4 nozzle).json b/resources/profiles/Creality/machine/Creality K1 Max (0.4 nozzle).json index 291affba77..037c48e64a 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max (0.4 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 Max (0.4 nozzle).json @@ -124,7 +124,7 @@ "default_filament_profile": [ "Generic PLA HF @Creality" ], - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "scan_first_layer": "0", "thumbnails": [ diff --git a/resources/profiles/Creality/machine/Creality K1 Max (0.6 nozzle).json b/resources/profiles/Creality/machine/Creality K1 Max (0.6 nozzle).json index 523abd4de4..097777db73 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max (0.6 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 Max (0.6 nozzle).json @@ -124,7 +124,7 @@ "default_filament_profile": [ "Generic PLA HF @Creality" ], - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "scan_first_layer": "0", "thumbnails": [ diff --git a/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json b/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json index c67622c90b..e2ae32cae4 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json +++ b/resources/profiles/Creality/machine/Creality K1 Max (0.8 nozzle).json @@ -124,7 +124,7 @@ "default_filament_profile": [ "Generic PLA HF @Creality" ], - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "scan_first_layer": "0", "thumbnails": [ diff --git a/resources/profiles/Creality/machine/Creality K1 Max_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1 Max_CFS-C 0.4 nozzle.json index 6d382f4c09..2e96b092ab 100644 --- a/resources/profiles/Creality/machine/Creality K1 Max_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 Max_CFS-C 0.4 nozzle.json @@ -56,7 +56,7 @@ "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "1", "machine_ptc_exist": "1", - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_unload_filament_time": "0", "manual_filament_change": "0", "nozzle_hrc": "0", diff --git a/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json index a8aaadeadb..71214d34a8 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE 0.4 nozzle.json @@ -123,7 +123,7 @@ "default_filament_profile": [ "Generic PLA @Creality K1-all" ], - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "scan_first_layer": "0", "thumbnails_format": "PNG", diff --git a/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json index 59435515f5..e1212431e2 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE 0.6 nozzle.json @@ -57,7 +57,7 @@ "machine_min_travel_rate": "0,0", "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "1", - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_unload_filament_time": "0", "manual_filament_change": "0", "nozzle_hrc": "0", diff --git a/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json index 0db81bbdec..e17cfbaee4 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE 0.8 nozzle.json @@ -57,7 +57,7 @@ "machine_min_travel_rate": "0,0", "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "1", - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_unload_filament_time": "0", "manual_filament_change": "0", "nozzle_hrc": "0", diff --git a/resources/profiles/Creality/machine/Creality K1 SE_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1 SE_CFS-C 0.4 nozzle.json index 8fda2c9f43..aff5f6df86 100644 --- a/resources/profiles/Creality/machine/Creality K1 SE_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1 SE_CFS-C 0.4 nozzle.json @@ -55,7 +55,7 @@ "machine_min_travel_rate": "0,0", "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "1", - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_unload_filament_time": "0", "manual_filament_change": "0", "nozzle_hrc": "0", diff --git a/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json index 9f355f391a..00e71f72c3 100644 --- a/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C 0.4 nozzle.json @@ -124,7 +124,7 @@ "default_filament_profile": [ "Generic PLA @Creality K1-all" ], - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "scan_first_layer": "0", "thumbnails": [ diff --git a/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json index 44c5147f58..755128ca67 100644 --- a/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C 0.6 nozzle.json @@ -124,7 +124,7 @@ "default_filament_profile": [ "Generic PLA @Creality K1-all" ], - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "scan_first_layer": "0", "thumbnails": [ diff --git a/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json index 9a271da17f..5aad49cdc1 100644 --- a/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C 0.8 nozzle.json @@ -124,7 +124,7 @@ "default_filament_profile": [ "Generic PLA @Creality K1-all" ], - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_end_gcode": "END_PRINT", "scan_first_layer": "0", "thumbnails": [ diff --git a/resources/profiles/Creality/machine/Creality K1C_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1C_CFS-C 0.4 nozzle.json index a49967f597..3c21fddd9e 100644 --- a/resources/profiles/Creality/machine/Creality K1C_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1C_CFS-C 0.4 nozzle.json @@ -56,7 +56,7 @@ "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "1", "machine_ptc_exist": "1", - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_unload_filament_time": "0", "manual_filament_change": "0", "nozzle_hrc": "0", diff --git a/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json index 375e0bc71b..c19ca981f8 100644 --- a/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality K1_CFS-C 0.4 nozzle.json @@ -57,7 +57,7 @@ "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "1", "machine_ptc_exist": "1", - "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", + "machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM109 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600", "machine_unload_filament_time": "0", "manual_filament_change": "0", "nozzle_hrc": "0", diff --git a/resources/profiles/Creality/machine/Creality SPARKX i7 0.2 nozzle.json b/resources/profiles/Creality/machine/Creality SPARKX i7 0.2 nozzle.json index 6a499942bf..146628aded 100644 --- a/resources/profiles/Creality/machine/Creality SPARKX i7 0.2 nozzle.json +++ b/resources/profiles/Creality/machine/Creality SPARKX i7 0.2 nozzle.json @@ -59,7 +59,7 @@ "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "0", "machine_ptc_exist": "0", - "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM104 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM109 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0", "machine_tool_change_time": "0", "machine_unload_filament_time": "30", "manual_filament_change": "0", diff --git a/resources/profiles/Creality/machine/Creality SPARKX i7 0.4 nozzle.json b/resources/profiles/Creality/machine/Creality SPARKX i7 0.4 nozzle.json index 68dedf568b..bf30a2ce49 100644 --- a/resources/profiles/Creality/machine/Creality SPARKX i7 0.4 nozzle.json +++ b/resources/profiles/Creality/machine/Creality SPARKX i7 0.4 nozzle.json @@ -59,7 +59,7 @@ "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "0", "machine_ptc_exist": "0", - "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM104 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM109 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0", "machine_tool_change_time": "0", "machine_unload_filament_time": "30", "manual_filament_change": "0", diff --git a/resources/profiles/Creality/machine/Creality SPARKX i7 0.6 nozzle.json b/resources/profiles/Creality/machine/Creality SPARKX i7 0.6 nozzle.json index f13761fa81..e327895da7 100644 --- a/resources/profiles/Creality/machine/Creality SPARKX i7 0.6 nozzle.json +++ b/resources/profiles/Creality/machine/Creality SPARKX i7 0.6 nozzle.json @@ -59,7 +59,7 @@ "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "0", "machine_ptc_exist": "0", - "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM104 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM109 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0", "machine_tool_change_time": "0", "machine_unload_filament_time": "30", "manual_filament_change": "0", diff --git a/resources/profiles/Creality/machine/Creality SPARKX i7 0.8 nozzle.json b/resources/profiles/Creality/machine/Creality SPARKX i7 0.8 nozzle.json index 053f23fd77..a3fad94bab 100644 --- a/resources/profiles/Creality/machine/Creality SPARKX i7 0.8 nozzle.json +++ b/resources/profiles/Creality/machine/Creality SPARKX i7 0.8 nozzle.json @@ -59,7 +59,7 @@ "machine_pause_gcode": "PAUSE", "machine_platform_motion_enable": "0", "machine_ptc_exist": "0", - "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM104 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0", + "machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nM83 \nM8200 P S[initial_no_support_extruder]\nM220 S100\n\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=5000\nG0 X267 F18000 \nG0 X278 F2400\nM109 S[nozzle_temperature_initial_layer]\nM106 S0\nT[initial_no_support_extruder]\n\nM8200 O\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y0 F12000\nG1 X150 F30000\nG1 Z0.2 F600\nG1 X120 Y0 E15 F{filament_max_volumetric_speed[initial_extruder]/0.3*60*0.1}\nG1 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG1 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)*60}\nG1 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4*60}\nG91\nG1 X-1 Z-0.3\nG1 X-4\nG92 E0", "machine_tool_change_time": "0", "machine_unload_filament_time": "30", "manual_filament_change": "0", From c8bfd2ad3e28ea557b6c7abe8248b7062ed33743 Mon Sep 17 00:00:00 2001 From: dremc <93659055+dremc@users.noreply.github.com> Date: Mon, 21 Sep 2026 18:53:16 +1000 Subject: [PATCH 59/76] Fix instantiation on DREMC Filament (#14659) --- resources/profiles/OrcaFilamentLibrary.json | 2 +- .../filament/DREMC/DREMC ABS @System.json | 3 ++- .../filament/DREMC/DREMC ABS+ @System.json | 3 ++- .../filament/DREMC/DREMC ASA @System.json | 3 ++- .../filament/DREMC/DREMC ASA CF @System.json | 3 ++- .../filament/DREMC/DREMC ASA GF @System.json | 3 ++- .../filament/DREMC/DREMC PA12-CF @System.json | 3 ++- .../filament/DREMC/DREMC PET-CF @System.json | 3 ++- .../filament/DREMC/DREMC PETG @System.json | 3 ++- .../filament/DREMC/DREMC PLA HS @System.json | 5 +++-- .../filament/DREMC/DREMC PLA+ @System.json | 3 ++- .../filament/DREMC/DREMC TPU 95A @System.json | 3 ++- 12 files changed, 24 insertions(+), 13 deletions(-) diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json index 68212a1d5e..58abbb2be0 100644 --- a/resources/profiles/OrcaFilamentLibrary.json +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -1,6 +1,6 @@ { "name": "OrcaFilamentLibrary", - "version": "02.04.00.08", + "version": "02.04.00.09", "force_update": "0", "description": "Orca Filament Library", "filament_list": [ diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS @System.json index 6f46fb74dd..5fac752fcf 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS @System.json @@ -3,6 +3,7 @@ "name": "DREMC ABS @System", "inherits": "DREMC ABS @base", "from": "system", - "instantiation": "false", + "setting_id": "gNjISMxTLwQzDrV9", + "instantiation": "true", "compatible_printers": [] } \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS+ @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS+ @System.json index e9279cc5ba..0d0345828e 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS+ @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ABS+ @System.json @@ -3,6 +3,7 @@ "name": "DREMC ABS+ @System", "inherits": "DREMC ABS+ @base", "from": "system", - "instantiation": "false", + "setting_id": "M73sIwcpWv6zpFrb", + "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA @System.json index 6a11bbe8ce..10d6626540 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA @System.json @@ -3,6 +3,7 @@ "name": "DREMC ASA @System", "inherits": "DREMC ASA @base", "from": "system", - "instantiation": "false", + "setting_id": "PMulSQ0tYbNyvOYw", + "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA CF @System.json index 6814312593..0e10750d78 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA CF @System.json @@ -3,6 +3,7 @@ "name": "DREMC ASA CF @System", "inherits": "DREMC ASA CF @base", "from": "system", - "instantiation": "false", + "setting_id": "ZcipEKAqtBcAm6vR", + "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA GF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA GF @System.json index e40cd71479..2d0f99fa1e 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA GF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC ASA GF @System.json @@ -3,6 +3,7 @@ "name": "DREMC ASA GF @System", "inherits": "DREMC ASA GF @base", "from": "system", - "instantiation": "false", + "setting_id": "8J3lt7KlQWcx0VUS", + "instantiation": "true", "compatible_printers": [] } \ No newline at end of file diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA12-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA12-CF @System.json index 0cecab4c3c..b126651441 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA12-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PA12-CF @System.json @@ -3,6 +3,7 @@ "name": "DREMC PA12-CF @System", "inherits": "DREMC PA12-CF @base", "from": "system", - "instantiation": "false", + "setting_id": "jVlZ1KPsA5i8RIED", + "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PET-CF @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PET-CF @System.json index 80100b072f..85efd31920 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PET-CF @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PET-CF @System.json @@ -3,6 +3,7 @@ "name": "DREMC PET-CF @System", "inherits": "DREMC PET-CF @base", "from": "system", - "instantiation": "false", + "setting_id": "hal1nPyBF13UL9qB", + "instantiation": "true", "compatible_printers": [] } diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PETG @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PETG @System.json index 04cfb22339..46f2cb9b20 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PETG @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PETG @System.json @@ -3,7 +3,8 @@ "name": "DREMC PETG @System", "inherits": "DREMC PETG @base", "from": "system", - "instantiation": "false", + "setting_id": "gTGiaBYfymmtlyfG", + "instantiation": "true", "filament_max_volumetric_speed": [ "20" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA HS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA HS @System.json index a2b96c1862..8e98be30b8 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA HS @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA HS @System.json @@ -1,9 +1,10 @@ { "type": "filament", "name": "DREMC PLA+ HS @System", - "inherits": "DREMC PLA+ @base", + "inherits": "DREMC PLA+ HS @base", "from": "system", - "instantiation": "false", + "setting_id": "I0HWhYAZ3ppq91Gx", + "instantiation": "true", "filament_max_volumetric_speed": [ "22" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA+ @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA+ @System.json index 71ff24bb1b..869633969a 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA+ @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC PLA+ @System.json @@ -3,7 +3,8 @@ "name": "DREMC PLA+ @System", "inherits": "DREMC PLA+ @base", "from": "system", - "instantiation": "false", + "setting_id": "fIjHIsFmdDWIM1bf", + "instantiation": "true", "filament_max_volumetric_speed": [ "18" ], diff --git a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC TPU 95A @System.json b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC TPU 95A @System.json index 3b58f57d25..86d5d02151 100644 --- a/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC TPU 95A @System.json +++ b/resources/profiles/OrcaFilamentLibrary/filament/DREMC/DREMC TPU 95A @System.json @@ -3,7 +3,8 @@ "name": "DREMC TPU 95A @System", "inherits": "DREMC TPU 95A @base", "from": "system", - "instantiation": "false", + "setting_id": "AfnFh14wKZsNEaZ1", + "instantiation": "true", "filament_max_volumetric_speed": [ "6" ], From 8b63628cf9dd1de4aebf9d1945025ec091c98226 Mon Sep 17 00:00:00 2001 From: HanifKoh <76276251+HanifKoh@users.noreply.github.com> Date: Mon, 21 Sep 2026 17:09:05 +0800 Subject: [PATCH 60/76] Restore Plugin HTML After a WebKit Reload (#15737) Plugin dialog content is injected with SetPage, so on the WebKit backends a reload (context menu, keyboard shortcut or location.reload()) re-fetches the SetPage base URL instead of the injected document, and the plugin UI is gone for good: load_plugin_content() returned early once m_content_loaded was set. Re-inject the plugin HTML when a main-frame load after the initial swap is neither that swap nor a page the plugin linked to. m_own_page_load marks the load our own SetPage caused, and the URL test recognises the reload: the injected document and the directory a reload re-fetches both report the base URL, so a load of any other URL is left alone. The test ignores a fragment the page navigated to, and undoes the escaping the web view applies to what the resources path holds. A load reaching the base URL is not enough on its own, because WebKitGTK reports a navigation that never committed against the document that stayed and then finishes that document again: a link to a missing file therefore arrives as a load of the base URL and reads exactly like a reload. So the re-injection also requires a navigation to the base URL to have committed, which a reload always does and a failure never does. A bootstrap page that cannot be loaded is still not recovered from: WebKitGTK substitutes a stock error page for it, and that load supersedes the swap whichever way the swap is ordered around it. The file ships, so this is a broken-install path; nothing here makes it worse than it already was. No separate MSW path is needed: wxWebViewEdge ignores the SetPage base URL, so its documents report about:blank and the test never matches there, and WebView2 reloads NavigateToString content from its own history entry anyway. --- src/slic3r/GUI/PluginWebDialog.cpp | 40 +++++++++++++++++++++++++----- src/slic3r/GUI/PluginWebDialog.hpp | 3 +++ 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/src/slic3r/GUI/PluginWebDialog.cpp b/src/slic3r/GUI/PluginWebDialog.cpp index d89aac7270..7d696dd8db 100644 --- a/src/slic3r/GUI/PluginWebDialog.cpp +++ b/src/slic3r/GUI/PluginWebDialog.cpp @@ -8,6 +8,7 @@ #include <boost/filesystem.hpp> #include <wx/event.h> +#include <wx/uri.h> #include <utility> @@ -55,6 +56,14 @@ wxString web_base_url() return wxString("file://") + from_u8(dir) + "/"; } +// Whether a loaded document is the plugin HTML's own base URL. The web view reports the URL it +// parsed, so any fragment the page navigated to is ignored and the escaping it applies to what the +// resources path holds (a space, a non-ASCII character) is undone first. +bool is_content_url(const wxString& url) +{ + return wxURI::Unescape(url.BeforeFirst('#')) == web_base_url(); +} + } // namespace PluginWebDialog::PluginWebDialog(wxWindow* parent, @@ -89,6 +98,7 @@ PluginWebDialog::PluginWebDialog(wxWindow* parent, // missing/blocked bootstrap resource (e.g. a packaged build) still triggers it. Bind(wxEVT_WEBVIEW_LOADED, &PluginWebDialog::on_bootstrap_event, this, wv->GetId()); Bind(wxEVT_WEBVIEW_ERROR, &PluginWebDialog::on_bootstrap_event, this, wv->GetId()); + Bind(wxEVT_WEBVIEW_NAVIGATED, &PluginWebDialog::on_navigated, this, wv->GetId()); } Bind(wxEVT_CLOSE_WINDOW, &PluginWebDialog::on_close_window, this); } @@ -139,19 +149,37 @@ void PluginWebDialog::destroy_for_plugin(PluginWebDialog* dialog) void PluginWebDialog::on_bootstrap_event(wxWebViewEvent& event) { - // The first bootstrap load (or its error) triggers the swap to plugin HTML; - // the resulting plugin-page load is ignored (guarded by m_content_loaded). - load_plugin_content(); + const bool loaded = event.GetEventType() == wxEVT_WEBVIEW_LOADED; + // The first bootstrap load (or its error) triggers the swap to plugin HTML. + if (!m_content_loaded) + load_plugin_content(); + // WebKit reloads the SetPage base URL, so a committed load of it that we did not start is a reload. + // A failed navigation is reported against the page that stayed but never commits. Edge ignores the + // base URL and restores SetPage content itself, so nothing matches there. + else if (is_content_url(event.GetURL())) { + if (m_own_page_load) + m_own_page_load = false; + else if (loaded && m_content_navigated) + load_plugin_content(); + } + if (loaded) + m_content_navigated = false; + event.Skip(); +} + +void PluginWebDialog::on_navigated(wxWebViewEvent& event) +{ + m_content_navigated = is_content_url(event.GetURL()); event.Skip(); } void PluginWebDialog::load_plugin_content() { - if (m_content_loaded) - return; m_content_loaded = true; - if (wxWebView* wv = browser()) + if (wxWebView* wv = browser()) { + m_own_page_load = true; wv->SetPage(wxString::FromUTF8(m_html), web_base_url()); + } } void PluginWebDialog::on_script_message(const nlohmann::json& payload) diff --git a/src/slic3r/GUI/PluginWebDialog.hpp b/src/slic3r/GUI/PluginWebDialog.hpp index 05f77f5148..a62e0b260c 100644 --- a/src/slic3r/GUI/PluginWebDialog.hpp +++ b/src/slic3r/GUI/PluginWebDialog.hpp @@ -64,6 +64,7 @@ protected: private: void on_bootstrap_event(wxWebViewEvent& event); + void on_navigated(wxWebViewEvent& event); void load_plugin_content(); void on_close_window(wxCloseEvent& event); void fire_submit(const nlohmann::json& data); @@ -72,6 +73,8 @@ private: std::string m_html; bool m_content_loaded{false}; + bool m_own_page_load{false}; // a SetPage of the plugin HTML is in flight + bool m_content_navigated{false}; // a navigation to the base URL has committed bool m_open{true}; bool m_close_fired{false}; std::optional<nlohmann::json> m_result; From 45940a573d1a9af2e2d1cc5ab182cd4a79b9e3a4 Mon Sep 17 00:00:00 2001 From: SoftFever <softfeverever@gmail.com> Date: Mon, 21 Sep 2026 17:11:56 +0800 Subject: [PATCH 61/76] Grant pull-requests write so profile PR labels and the partner notice actually post --- .github/workflows/pr-merge-bot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-merge-bot.yml b/.github/workflows/pr-merge-bot.yml index a2722f105e..75025daddf 100644 --- a/.github/workflows/pr-merge-bot.yml +++ b/.github/workflows/pr-merge-bot.yml @@ -529,7 +529,7 @@ jobs: && github.event_name == 'pull_request_target' permissions: contents: read - pull-requests: read + pull-requests: write issues: write runs-on: ubuntu-latest timeout-minutes: 5 @@ -636,7 +636,7 @@ jobs: && github.event_name == 'pull_request_target' permissions: contents: read # delegatable subtree, for file modes - pull-requests: read + pull-requests: write issues: write # label + comment runs-on: ubuntu-latest timeout-minutes: 10 From 64cad00569a31e31319e05798432fd0528eaf9e1 Mon Sep 17 00:00:00 2001 From: barmanr <rishov.barman@orcaslicer.com> Date: Mon, 21 Sep 2026 15:23:13 +0530 Subject: [PATCH 62/76] fix: update OrcaArena product URL (#15796) Merged by /bot merge on behalf of @barmanr (id 281100727). Grants: resources/profiles/OrcaArena, resources/profiles/OrcaArena.json Head: 794db5d30d4d05f648be970bef9125ba3b0ee58d --- resources/profiles/OrcaArena.json | 2 +- resources/profiles/OrcaArena/machine/Orca Arena X1 Carbon.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/profiles/OrcaArena.json b/resources/profiles/OrcaArena.json index dd5f307a95..d997b9eb73 100644 --- a/resources/profiles/OrcaArena.json +++ b/resources/profiles/OrcaArena.json @@ -1,7 +1,7 @@ { "name": "Orca Arena Printer", "url": "", - "version": "02.04.00.05", + "version": "02.04.00.06", "force_update": "0", "description": "Orca Arena configuration files", "machine_model_list": [ diff --git a/resources/profiles/OrcaArena/machine/Orca Arena X1 Carbon.json b/resources/profiles/OrcaArena/machine/Orca Arena X1 Carbon.json index aa166a4c90..8d543bac21 100644 --- a/resources/profiles/OrcaArena/machine/Orca Arena X1 Carbon.json +++ b/resources/profiles/OrcaArena/machine/Orca Arena X1 Carbon.json @@ -2,7 +2,7 @@ "type": "machine_model", "name": "Orca Arena X1 Carbon", "model_id": "orca_arena_x1c", - "url": "", + "url": "https://www.orcaslicer.com", "nozzle_diameter": "0.4;0.2;0.6;0.8", "machine_tech": "FFF", "family": "ARENA-3DP", From 09d67b1bb490b6d2239644b61c794e2a29e342aa Mon Sep 17 00:00:00 2001 From: peachismomo <iancrb00@gmail.com> Date: Mon, 21 Sep 2026 18:17:15 +0800 Subject: [PATCH 63/76] fix: remove some logging --- .github/workflows/post_merge_profiles.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/post_merge_profiles.yml b/.github/workflows/post_merge_profiles.yml index 469bb2a6c3..67780e37bd 100644 --- a/.github/workflows/post_merge_profiles.yml +++ b/.github/workflows/post_merge_profiles.yml @@ -75,8 +75,6 @@ jobs: if [ -z "$base" ] || [ "$base" = "0000000000000000000000000000000000000000" ] || ! git cat-file -e "$base^{commit}" 2>/dev/null; then base="$head^" fi - echo "Diffing $base..$head" - mapfile -t candidates < <( git diff --name-only "$base" "$head" -- resources/profiles \ | sed -nE 's#^resources/profiles/([^/]+)/.*#\1#p; s#^resources/profiles/([^/]+)\.json$#\1#p' \ @@ -95,7 +93,6 @@ jobs: done if [ "${#vendors[@]}" -eq 0 ]; then - echo "No changed vendor profiles in this push; nothing to publish." echo "vendors=" >> "$GITHUB_OUTPUT" exit 0 fi @@ -138,13 +135,10 @@ jobs: done if [ "${#unauthorized[@]}" -ne 0 ]; then - echo "Changed vendor profiles are not covered by FOLDER_MERGERS: ${unauthorized[*]}" - echo "No profile caches will be published for this push." echo "vendors=" >> "$GITHUB_OUTPUT" exit 0 fi - printf 'Changed vendors: %s\n' "${vendors[*]}" echo "vendors=${vendors[*]}" >> "$GITHUB_OUTPUT" - name: Resolve Orca version @@ -163,7 +157,6 @@ jobs: # OrcaCloud keys R2 on; orca_ver (X.Y.Z) is the asset-name prefix. echo "release_tag=$raw" >> "$GITHUB_OUTPUT" echo "orca_ver=$orca_ver" >> "$GITHUB_OUTPUT" - echo "Orca version: release_tag=$raw asset_prefix=$orca_ver" - name: Validate profile versions id: pver @@ -179,7 +172,6 @@ jobs: exit 1 fi printf '%s\t%s\n' "$v" "$pv" >> "$RUNNER_TEMP/pver.tsv" - echo "$v -> $pv" done - name: Download generate_system_cache @@ -214,7 +206,6 @@ jobs: pv="$(awk -F'\t' -v v="$v" '$1==v{print $2}' "$RUNNER_TEMP/pver.tsv")" name="${orca_ver}_${v}_${pv}_${ts}.zip" ( cd resources/profiles && zip -q -j "$out/$name" "$v.opc" ) - echo "packaged $name" done echo "dir=$out" >> "$GITHUB_OUTPUT" From 162cf7fd4c0756ae1d17b7b23472635153afb192 Mon Sep 17 00:00:00 2001 From: "Byeon Ho cheol." <hcbyeon@3dcubicon.com> Date: Mon, 21 Sep 2026 19:18:57 +0900 Subject: [PATCH 64/76] Update Cubicon profiles: filament/process tuning and xCeler-Mini compatibility (#14660) --- resources/profiles/Cubicon.json | 2 +- .../Cubicon/filament/Cubicon ABS @base.json | 23 ++++-- .../filament/Cubicon ABS-A100 @base.json | 45 +++++++++--- .../Cubicon/filament/Cubicon ABSk @base.json | 14 ++-- .../Cubicon/filament/Cubicon PC @base.json | 72 +++++++++++++++++++ .../Cubicon/filament/Cubicon PETG @base.json | 37 +++++++++- .../Cubicon/filament/Cubicon PLA @base.json | 33 +++++++++ .../Cubicon/filament/Cubicon PLA+ @base.json | 9 +++ .../Cubicon xCeler-Plus 0.4 nozzle.json | 8 +-- .../Cubicon/process/cubicon common @base.json | 45 ++++++------ .../Cubicon/process/fdm_process_common.json | 2 +- .../process/process template @base.json | 2 +- 12 files changed, 238 insertions(+), 54 deletions(-) diff --git a/resources/profiles/Cubicon.json b/resources/profiles/Cubicon.json index f70517a0b1..57f9da37d6 100644 --- a/resources/profiles/Cubicon.json +++ b/resources/profiles/Cubicon.json @@ -1,6 +1,6 @@ { "name": "Cubicon", - "version": "02.04.00.05", + "version": "02.04.00.06", "force_update": "0", "description": "Cubicon configurations", "machine_model_list": [ diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS @base.json b/resources/profiles/Cubicon/filament/Cubicon ABS @base.json index 31efe73b11..42e6db95e7 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS @base.json @@ -15,7 +15,7 @@ "115" ], "hot_plate_temp_initial_layer": [ - "115" + "120" ], "close_fan_the_first_x_layers": [ "3" @@ -24,13 +24,13 @@ "30" ], "filament_density": [ - "1.24" + "1.04" ], "filament_flow_ratio": [ "0.99" ], "filament_max_volumetric_speed": [ - "23" + "14" ], "nozzle_temperature_initial_layer": [ "240" @@ -39,19 +39,19 @@ "80" ], "fan_min_speed": [ - "70" + "15" ], "slow_down_min_speed": [ - "30" + "20" ], "slow_down_layer_time": [ - "3" + "10" ], "nozzle_temperature": [ "245" ], "temperature_vitrification": [ - "78" + "105" ], "nozzle_temperature_range_low": [ "220" @@ -61,5 +61,14 @@ ], "additional_cooling_fan_speed": [ "0" + ], + "activate_air_filtration": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "255" ] } diff --git a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json index 5c64ed0fa5..52b06dbb80 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABS-A100 @base.json @@ -12,10 +12,10 @@ "Cubicon" ], "hot_plate_temp": [ - "100" + "105" ], "hot_plate_temp_initial_layer": [ - "100" + "115" ], "close_fan_the_first_x_layers": [ "3" @@ -24,13 +24,13 @@ "30" ], "filament_density": [ - "1.24" + "1.04" ], "filament_flow_ratio": [ - "0.99" + "1.04" ], "filament_max_volumetric_speed": [ - "23" + "8" ], "nozzle_temperature_initial_layer": [ "225" @@ -39,19 +39,19 @@ "80" ], "fan_min_speed": [ - "70" + "15" ], "slow_down_min_speed": [ - "30" + "20" ], "slow_down_layer_time": [ - "3" + "10" ], "nozzle_temperature": [ "230" ], "temperature_vitrification": [ - "78" + "105" ], "nozzle_temperature_range_low": [ "220" @@ -61,5 +61,32 @@ ], "additional_cooling_fan_speed": [ "0" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.04" + ], + "filament_retraction_length": [ + "1.2" + ], + "filament_z_hop": [ + "0" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_deretraction_speed": [ + "25" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_retract_before_wipe": [ + "70%" ] } diff --git a/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json b/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json index 46a8f2d48c..584ce663ad 100644 --- a/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon ABSk @base.json @@ -15,7 +15,7 @@ "115" ], "hot_plate_temp_initial_layer": [ - "115" + "120" ], "close_fan_the_first_x_layers": [ "3" @@ -24,13 +24,13 @@ "30" ], "filament_density": [ - "1.24" + "1.04" ], "filament_flow_ratio": [ "0.99" ], "filament_max_volumetric_speed": [ - "23" + "14" ], "nozzle_temperature_initial_layer": [ "240" @@ -39,19 +39,19 @@ "80" ], "fan_min_speed": [ - "70" + "15" ], "slow_down_min_speed": [ - "30" + "20" ], "slow_down_layer_time": [ - "3" + "10" ], "nozzle_temperature": [ "240" ], "temperature_vitrification": [ - "85" + "105" ], "nozzle_temperature_range_low": [ "220" diff --git a/resources/profiles/Cubicon/filament/Cubicon PC @base.json b/resources/profiles/Cubicon/filament/Cubicon PC @base.json index 001434a2b1..e5f12e1503 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PC @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PC @base.json @@ -10,5 +10,77 @@ ], "filament_vendor": [ "Cubicon" + ], + "fan_max_speed": [ + "25" + ], + "fan_min_speed": [ + "0" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.01" + ], + "close_fan_the_first_x_layers": [ + "5" + ], + "overhang_fan_threshold": [ + "50%" + ], + "overhang_fan_speed": [ + "25" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_max_volumetric_speed": [ + "4" + ], + "filament_flow_ratio": [ + "0.94" + ], + "nozzle_temperature_initial_layer": [ + "245" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature_range_high": [ + "280" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_z_hop": [ + "0" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_deretraction_speed": [ + "25" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_retract_before_wipe": [ + "70%" + ], + "activate_air_filtration": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "0" + ], + "complete_print_exhaust_fan_speed": [ + "255" ] } diff --git a/resources/profiles/Cubicon/filament/Cubicon PETG @base.json b/resources/profiles/Cubicon/filament/Cubicon PETG @base.json index 61fc5c647a..a1e38584a7 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PETG @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PETG @base.json @@ -15,7 +15,7 @@ "80" ], "hot_plate_temp_initial_layer": [ - "80" + "85" ], "close_fan_the_first_x_layers": [ "3" @@ -54,12 +54,45 @@ "70" ], "nozzle_temperature_range_low": [ - "230" + "220" ], "nozzle_temperature_range_high": [ "250" ], "additional_cooling_fan_speed": [ "0" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.08" + ], + "filament_retraction_length": [ + "2.0" + ], + "filament_z_hop": [ + "0" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_deretraction_speed": [ + "25" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_retract_before_wipe": [ + "70%" + ], + "activate_air_filtration": [ + "1" + ], + "complete_print_exhaust_fan_speed": [ + "255" ] } diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA @base.json b/resources/profiles/Cubicon/filament/Cubicon PLA @base.json index 53df18afc5..dae8e34bee 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA @base.json @@ -53,5 +53,38 @@ ], "additional_cooling_fan_speed": [ "80" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "filament_retraction_length": [ + "2.0" + ], + "filament_z_hop": [ + "0" + ], + "filament_retraction_speed": [ + "40" + ], + "filament_deretraction_speed": [ + "25" + ], + "filament_wipe": [ + "1" + ], + "filament_wipe_distance": [ + "2" + ], + "filament_retract_before_wipe": [ + "70%" + ], + "activate_air_filtration": [ + "1" + ], + "during_print_exhaust_fan_speed": [ + "255" + ], + "complete_print_exhaust_fan_speed": [ + "255" ] } diff --git a/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json b/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json index 5e7c8dc10b..635f6483d1 100644 --- a/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json +++ b/resources/profiles/Cubicon/filament/Cubicon PLA+ @base.json @@ -18,5 +18,14 @@ ], "nozzle_temperature_range_high": [ "220" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.025" ] } diff --git a/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus 0.4 nozzle.json b/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus 0.4 nozzle.json index 398f4e3457..616fa60297 100644 --- a/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus 0.4 nozzle.json +++ b/resources/profiles/Cubicon/machine/Cubicon xCeler-Plus 0.4 nozzle.json @@ -73,12 +73,12 @@ "20000" ], "machine_max_acceleration_z": [ - "250", - "500" + "50", + "100" ], "machine_max_speed_z": [ - "25", - "12" + "5", + "10" ], "machine_max_acceleration_retracting": [ "5000", diff --git a/resources/profiles/Cubicon/process/cubicon common @base.json b/resources/profiles/Cubicon/process/cubicon common @base.json index 8de7c25078..a269d19529 100644 --- a/resources/profiles/Cubicon/process/cubicon common @base.json +++ b/resources/profiles/Cubicon/process/cubicon common @base.json @@ -5,7 +5,8 @@ "instantiation": "false", "compatible_printers": [ "Cubicon xCeler-I 0.4 nozzle", - "Cubicon xCeler-Plus 0.4 nozzle" + "Cubicon xCeler-Plus 0.4 nozzle", + "Cubicon xCeler-Mini 0.4 nozzle" ], "print_settings_id": "cubicon common @base", "accel_to_decel_enable": "1", @@ -14,26 +15,24 @@ "bridge_flow": "0.9", "internal_bridge_flow": "0.9", "brim_type": "no_brim", - "detect_overhang_wall": "1", + "detect_overhang_wall": "0", "resolution": "0.012", "elefant_foot_compensation": "0.15", - "percise_outer_wall": "1", - "percise_z_height": "0.2", "enable_overhang_speed": "1", - "enable_prime_tower": "1", + "enable_prime_tower": "0", "enable_support": "0", "exclude_object": "0", "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode", "gap_infill_speed": "250", - "infill_combination": "1", + "infill_combination": "0", "infill_direction": "45", "infill_wall_overlap": "15", "infill_anchor": "400%", "infill_anchor_max": "20", "initial_layer_line_width": "0.5", - "initial_layer_print_height": "0.25", - "initial_layer_speed": "60", - "initial_layer_infill_speed": "60", + "initial_layer_print_height": "0.2", + "initial_layer_speed": "50", + "initial_layer_infill_speed": "100", "initial_layer_travel_speed": "500", "slow_down_layers": "1", "only_one_wall_top": "1", @@ -47,9 +46,9 @@ "outer_wall_speed": "200", "print_sequence": "by layer", "raft_layers": "0", - "reduce_crossing_wall": "0", + "reduce_crossing_wall": "1", "reduce_infill_retraction": "1", - "seam_position": "back", + "seam_position": "aligned", "seam_gap": "10%", "enable_arc_fitting": "0", "staggered_inner_seams": "1", @@ -57,7 +56,7 @@ "skirt_distance": "2.5", "skirt_height": "1", "skirt_speed": "50", - "skirt_start_angle": "-45", + "skirt_start_angle": "-135", "sparse_infill_density": "15", "sparse_infill_speed": "270", "sparse_infill_pattern": "grid", @@ -84,7 +83,7 @@ "support_threshold_angle": "15", "wall_loops": "2", "thick_bridges": "0", - "extra_perimeters_on_overhangs": "1", + "extra_perimeters_on_overhangs": "0", "top_shell_layers": "5", "top_shell_thickness": "1", "slow_down_curled_perimeters": "0", @@ -93,18 +92,18 @@ "travel_jerk": "12", "infill_jerk": "12", "initial_layer_jerk": "9", - "inner_wall_jerk": "7", - "outer_wall_jerk": "7", - "default_acceleration": "13000", - "travel_acceleration": "13000", - "outer_wall_acceleration": "5000", - "inner_wall_acceleration": "5000", - "initial_layer_acceleration": "1000", + "inner_wall_jerk": "3.5", + "outer_wall_jerk": "3", + "default_acceleration": "10000", + "travel_acceleration": "10000", + "outer_wall_acceleration": "2000", + "inner_wall_acceleration": "6000", + "initial_layer_acceleration": "500", "top_surface_acceleration": "2000", "raft_first_layer_density": "90", "raft_first_layer_expansion": "2", "precise_outer_wall": "1", - "precise_z_height": "0", + "precise_z_height": "1", "slowdown_for_curled_perimeters": "0", "bridge_speed": "50", "internal_bridge_speed": "150%", @@ -112,5 +111,7 @@ "overhang_2_4_speed": "50", "overhang_3_4_speed": "30", "overhang_4_4_speed": "10", - "independent_support_layer_height": "1" + "independent_support_layer_height": "1", + "solid_infill_direction": "90", + "max_travel_detour_distance": "80%" } diff --git a/resources/profiles/Cubicon/process/fdm_process_common.json b/resources/profiles/Cubicon/process/fdm_process_common.json index d7da41458a..7308a806fa 100644 --- a/resources/profiles/Cubicon/process/fdm_process_common.json +++ b/resources/profiles/Cubicon/process/fdm_process_common.json @@ -62,7 +62,7 @@ "top_surface_line_width": "0.4", "top_surface_speed": "30", "travel_speed": "400", - "enable_prime_tower": "1", + "enable_prime_tower": "0", "prime_tower_width": "60", "xy_hole_compensation": "0", "xy_contour_compensation": "0" diff --git a/resources/profiles/Cubicon/process/process template @base.json b/resources/profiles/Cubicon/process/process template @base.json index 073bf4ea23..1b9b4d2288 100644 --- a/resources/profiles/Cubicon/process/process template @base.json +++ b/resources/profiles/Cubicon/process/process template @base.json @@ -42,7 +42,7 @@ "enable_arc_fitting": "1", "enable_extra_bridge_layer": "disabled", "enable_overhang_speed": "1", - "enable_prime_tower": "1", + "enable_prime_tower": "0", "enable_support": "0", "enforce_support_layers": "0", "ensure_vertical_shell_thickness": "ensure_all", From 8581df4a8a4e30f67c96ffb655dc9f7b34a6120a Mon Sep 17 00:00:00 2001 From: peachismomo <iancrb00@gmail.com> Date: Mon, 21 Sep 2026 18:30:25 +0800 Subject: [PATCH 65/76] fix: update pr-merge-bot.yml to run post_merge_profiles.yml after merge --- .github/workflows/pr-merge-bot.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.github/workflows/pr-merge-bot.yml b/.github/workflows/pr-merge-bot.yml index a2722f105e..102f9ae413 100644 --- a/.github/workflows/pr-merge-bot.yml +++ b/.github/workflows/pr-merge-bot.yml @@ -520,6 +520,28 @@ jobs: } catch (error) { core.warning(`Merged successfully, but dispatching build_all.yml failed: ${error.message}`); } + // ---- re-kick the profile publish ---- + // Same reason as above: post_merge_profiles.yml is push-triggered, so a + // GITHUB_TOKEN merge never starts it. workflow_dispatch skips the paths: + // filter, so only dispatch when the PR actually touched profiles. + const touchesProfiles = files.some((file) => + [file.filename, file.previous_filename] + .filter(Boolean) + .some((p) => p.startsWith('resources/profiles/')) + ); + if (touchesProfiles) { + try { + await github.rest.actions.createWorkflowDispatch({ + owner, + repo, + workflow_id: 'post_merge_profiles.yml', + ref: pr.base.ref + }); + core.info(`Dispatched post_merge_profiles.yml on ${pr.base.ref}.`); + } catch (error) { + core.warning(`Merged successfully, but dispatching post_merge_profiles.yml failed: ${error.message}`); + } + } label-profile: # Independent of the merge rules: any PR that changes only files inside From cdcef47e3db87956c4803ccf15fdb722b5256546 Mon Sep 17 00:00:00 2001 From: barmanr <rishov.barman@orcaslicer.com> Date: Mon, 21 Sep 2026 16:40:10 +0530 Subject: [PATCH 66/76] test: bump OrcaArena profile version for OTA retry (#15798) Merged by /bot merge on behalf of @barmanr (id 281100727). Grants: resources/profiles/OrcaArena, resources/profiles/OrcaArena.json Head: 32113de7fd96de0d4a84b4d10f7c5c75bbef1de9 --- resources/profiles/OrcaArena.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/profiles/OrcaArena.json b/resources/profiles/OrcaArena.json index d997b9eb73..9bb97fb232 100644 --- a/resources/profiles/OrcaArena.json +++ b/resources/profiles/OrcaArena.json @@ -1,7 +1,7 @@ { "name": "Orca Arena Printer", "url": "", - "version": "02.04.00.06", + "version": "02.04.00.07", "force_update": "0", "description": "Orca Arena configuration files", "machine_model_list": [ From 1e038bfc531c74ca42375be445372615e0f7b1b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0lker=20Kara?= <48905528+karailker@users.noreply.github.com> Date: Mon, 21 Sep 2026 15:36:55 +0300 Subject: [PATCH 67/76] fix(linux): build deps on older GCC and Ubuntu 22.04 (#15151) - GMP: name the parameters in the configure probe from 0001-GMP_GCC15.patch. Unnamed parameters are a hard error on GCC 10 and older, so configure failed there. - TBB: turn off the automatic hwloc search so a system libhwloc-dev is not picked up. - scripts/linux.d/debian: run apt update before checking which webkit2gtk package exists, and prefer webkit2gtk-4.1 since the build requires it. Add automake, which MPFR's autoreconf needs. --- deps/GMP/0001-GMP_GCC15.patch | 6 +++--- deps/TBB/TBB.cmake | 1 + scripts/linux.d/debian | 15 ++++++++++----- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/deps/GMP/0001-GMP_GCC15.patch b/deps/GMP/0001-GMP_GCC15.patch index e005120acd..fdabed26f7 100644 --- a/deps/GMP/0001-GMP_GCC15.patch +++ b/deps/GMP/0001-GMP_GCC15.patch @@ -5,7 +5,7 @@ #if defined (__GNUC__) && ! defined (__cplusplus) typedef unsigned long long t1;typedef t1*t2; -void g(){} -+void g(int,t1 const*,t1,t2,t1 const*,int){} ++void g(int a,t1 const*b,t1 c,t2 dd,t1 const*e,int ff){} void h(){} static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) {t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;} @@ -17,7 +17,7 @@ #if defined (__GNUC__) && ! defined (__cplusplus) typedef unsigned long long t1;typedef t1*t2; -void g(){} -+void g(int,t1 const*,t1,t2,t1 const*,int){} ++void g(int a,t1 const*b,t1 c,t2 dd,t1 const*e,int ff){} void h(){} static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) {t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;} @@ -26,7 +26,7 @@ #if defined (__GNUC__) && ! defined (__cplusplus) typedef unsigned long long t1;typedef t1*t2; -void g(){} -+void g(int,t1 const*,t1,t2,t1 const*,int){} ++void g(int a,t1 const*b,t1 c,t2 dd,t1 const*e,int ff){} void h(){} static __inline__ t1 e(t2 rp,t2 up,int n,t1 v0) {t1 c,x,r;int i;if(v0){c=1;for(i=1;i<n;i++){x=up[i];r=x+1;rp[i]=r;}}return c;} diff --git a/deps/TBB/TBB.cmake b/deps/TBB/TBB.cmake index dac2ed63e6..ce3bfd9377 100644 --- a/deps/TBB/TBB.cmake +++ b/deps/TBB/TBB.cmake @@ -15,6 +15,7 @@ orcaslicer_add_cmake_project( -DTBB_BUILD_SHARED=OFF -DTBB_BUILD_TESTS=OFF -DTBB_TEST=OFF + -DTBB_DISABLE_HWLOC_AUTOMATIC_SEARCH=ON -DTBB_ENABLE_IPO=OFF -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON diff --git a/scripts/linux.d/debian b/scripts/linux.d/debian index c33b24d2b7..e5816d345e 100644 --- a/scripts/linux.d/debian +++ b/scripts/linux.d/debian @@ -2,6 +2,7 @@ REQUIRED_DEV_PACKAGES=( autoconf + automake build-essential cmake eglexternalplatform-dev @@ -50,16 +51,20 @@ then REQUIRED_DEV_PACKAGES+=(libssl-dev libcurl4-openssl-dev) fi - # check which version of libwebkit2gtk is available - if [ "$(apt show --quiet libwebkit2gtk-4.0-dev 2>/dev/null)" != "" ] + # The package lists must be current before checking what is available. + sudo apt update + + # src/slic3r/CMakeLists.txt requires webkit2gtk-4.1 unconditionally (no + # 4.0 fallback), so prefer it; only fall back to 4.0-dev when 4.1 isn't + # packaged for this distro. + if [ "$(apt show --quiet libwebkit2gtk-4.1-dev 2>/dev/null)" != "" ] then - REQUIRED_DEV_PACKAGES+=(libwebkit2gtk-4.0-dev) - else REQUIRED_DEV_PACKAGES+=(libwebkit2gtk-4.1-dev) + else + REQUIRED_DEV_PACKAGES+=(libwebkit2gtk-4.0-dev) fi # install them all at once - sudo apt update sudo apt install -y "${REQUIRED_DEV_PACKAGES[@]}" echo -e "done\n" From 2adb631d6fe018df7d1e4b3ffaf9cd6350730df7 Mon Sep 17 00:00:00 2001 From: RH3D <127200179+RH3D@users.noreply.github.com> Date: Mon, 21 Sep 2026 16:02:31 +0200 Subject: [PATCH 68/76] RH3D new printer and print profiles update (#14707) * Update 0.25mm Standard @E3NG v1.2S.json * Create 0.20mm Fast @Virtu E3.json * Update 0.20mm Fast Virtu E3.json * Create 0.20mm SLOW Virtu E3.json * Update and rename 0.20mm Fast @Virtu E3.json to 0.20mm FAST @Virtu E3.json * Update and rename 0.20mm Fast @E3NG v1.2S.json to 0.20mm FAST @E3NG v1.2S.json * Update and rename 0.20mm Slow @E3NG v1.2S.json to 0.20mm SLOW @E3NG v1.2S.json * Update and rename 0.20mm Standard @E3NG v1.2S.json to 0.20mm STANDARD @E3NG v1.2S.json * Create 0.20mm STANDARD @VIRTU E3 * Update and rename 0.20mm FAST Virtu E3.json to 0.20mm FAST VIRTU E3.json * Rename 0.20mm SLOW Virtu E3.json to 0.20mm SLOW VIRTU E3.json * Update 0.20mm STANDARD @VIRTU E3 * Update 0.20mm STANDARD VIRTU E3 * Update and rename 0.25mm Fast @E3NG v1.2S.json to 0.25mm FAST @E3NG v1.2S.json * Create 0.25mm FAST VIRTU E3 * Update and rename 0.15mm Standard @E3NG v1.2S.json to 0.15mm STANDARD @E3NG v1.2S.json * Update and rename 0.10mm Standard @E3NG v1.2S.json to 0.10mm STANDARD @E3NG v1.2S.json * Create 0.15mm STANDARD VIRTU E3 * Create 0.10mm STANDARD VIRTU E3.json * Rename 0.15mm STANDARD @VIRTU E3 to 0.15mm STANDARD @VIRTU E3.json * Update 0.15mm STANDARD VIRTU E3.json * Update 0.20mm STANDARD VIRTU E3 * Update and rename 0.25mm FAST VIRTU E3 to 0.25mm FAST VIRTU E3.json * Rename 0.20mm STANDARD VIRTU E3 to 0.20mm STANDARD VIRTU E3.json * Update 0.15mm STANDARD VIRTU E3.json * Update and rename 0.25mm Standard @E3NG v1.2S.json to 0.25mm STANDARD @E3NG v1.2S.json * Create 0.25mm STANDARD VIRTU E3.json * Create process_common_VIRTU E3.json * Create process_FAST_VIRTU E3.json * Update 0.20mm FAST VIRTU E3.json * Update 0.25mm FAST VIRTU E3.json * Create process_SLOW_VIRTU E3.json * Update 0.20mm SLOW @VIRTU E3.json * Update 0.20mm SLOW VIRTU E3.json * Update and rename process_common_VIRTU E3.json to process_STANDARD_VIRTU E3.json * Update 0.10mm STANDARD VIRTU E3.json * Update 0.15mm STANDARD VIRTU E3.json * Update 0.20mm STANDARD VIRTU E3.json * Update 0.25mm STANDARD @VIRTU E3.json * Update process_STANDARD_VIRTU E3.json * Update 0.25mm STANDARD VIRTU E3.json * Update 0.20mm STANDARD VIRTU E3.json * Update 0.15mm STANDARD @VIRTU E3.json * Update 0.10mm STANDARD VIRTU E3.json * Update 0.15mm STANDARD VIRTU E3.json * Update 0.20mm SLOW VIRTU E3.json * Update RH3D.json * Update RH3D.json * Create VIRTU E3 - 0.2 nozzle.json * Create VIRTU E3 - 0.3 nozzle.json * Create VIRTU E3 - 0.4 nozzle.json * Create VIRTU E3 - 0.5 nozzle.json * Create VIRTU E3 - 0.6 nozzle.json * Create VIRTU E3,json * Update fdm_common_E3NG v1.2S.json * Update fdm_machine_common.json * Create fdm_common_VIRTU E3.json * Create Generic ABS VIRTU E3.json * Create Generic ASA @VIRTU E3.json * Update Generic ASA VIRTU E3.json * Create Generic PCCF VIRTU E3.json * Create Generic PETG @VIRTU E3.json * Create Generic PLA VIRTU E3.json * Create Generic TPU VIRTU E3.json * Update Generic ASA VIRTU E3.json * Update Generic PETG VIRTU E3.json * Update 0.20mm SLOW VIRTU E3.json * Update 0.15mm STANDARD VIRTU E3.json * Rename VIRTU E3,json to VIRTU E3.json * Add files via upload * Update VIRTU E3 - 0.2 nozzle.json * Update E3NG v1.2S - 0.2 nozzle.json * Update E3NG v1.2S - 0.3 nozzle.json * Update E3NG v1.2S - 0.4 nozzle.json * Update E3NG v1.2S - 0.5 nozzle.json * Update E3NG v1.2S - 0.6 nozzle.json * Update 0.10mm STANDARD @E3NG v1.2S.json * Update 0.15mm STANDARD @E3NG v1.2S.json * Update 0.20mm STANDARD @E3NG v1.2S.json * Update 0.25mm STANDARD @E3NG v1.2S.json * Delete resources/profiles/RH3D/VIRTU-bed.stl * Update fdm_common_VIRTU E3.json * Add files via upload * Delete resources/profiles/RH3D/E3NG-bed-texture.svg * Add files via upload * Delete resources/profiles/RH3D/VIRTU E3_cover.png * Add files via upload * Add files via upload * Create process_STANDARD_E3NG.json * Create process_SLOW_E3NG.json * Update and rename process_STANDARD_E3NG.json to process_STANDARD_E3NG v1.2S.json * Update and rename process_SLOW_E3NG.json to process_SLOW_E3NG v1.2S.json * Create process_FAST_E3NG v1.2S.json * Update 0.25mm STANDARD @E3NG v1.2S.json * Update 0.20mm STANDARD @E3NG v1.2S.json * Update 0.15mm STANDARD @E3NG v1.2S.json * Update 0.10mm STANDARD @E3NG v1.2S.json * Update 0.20mm SLOW @E3NG v1.2S.json * Update 0.20mm FAST @E3NG v1.2S.json * Update 0.25mm FAST @E3NG v1.2S.json * Update 0.20mm STANDARD @E3NG v1.2S.json * Update 0.20mm STANDARD VIRTU E3.json * Delete resources/profiles/RH3D/process/process_common_E3NG v1.2S.json * Update RH3D.json * Update fdm_process_common.json * Update fdm_filament_common.json * Update fdm_filament_abs.json * Update fdm_filament_abs.json * Update fdm_filament_asa.json * Update fdm_filament_pccf.json * Update fdm_filament_petg.json * Update fdm_filament_pla.json * Update fdm_process_common.json * Update fdm_common_VIRTU E3.json update speeds * Update fdm_common_E3NG v1.2S.json update speeds * Update fdm_process_common.json fix accel_to_decel * Update fdm_machine_common.json fix speed profile output * Create 0.10mm SLOW @E3NG v1.2S.json * Create 0.10mm FAST @E3NG v1.2S.json * Create 0.15mm FAST @E3NG v1.2S.json * Create 0.15mm SLOW @E3NG v1.2S.json * Create 0.25mm SLOW @E3NG v1.2S.json * Create 0.10mm SLOW VIRTU E3.json * Create 0.10mm FAST VIRTU E3.json * Create 0.15mm SLOW VIRTU E3.json * Create 0.15mm FAST VIRTU E3.json * Create 0.25mm SLOW VIRTU E3.json * Update RH3D.json add more slow and fast profiles * Update 0.20mm FAST @E3NG v1.2S.json * Update 0.20mm SLOW @E3NG v1.2S.json * Update 0.20mm FAST @VIRTU E3.json * Update 0.20mm SLOW @VIRTU E3.json * Update fdm_process_common.json * Update fdm_process_common.json * Update Generic ABS @VIRTU E3.json * Update Generic ABS VIRTU E3.json * Update Generic PCCF VIRTU E3.json * Update Generic PETG VIRTU E3.json * Update Generic PLA VIRTU E3.json * Update Generic ASA VIRTU E3.json * Update Generic TPU VIRTU E3.json * Update 0.20mm SLOW @E3NG v1.2S.json * Update 0.25mm SLOW @E3NG v1.2S.json * Update 0.15mm FAST @VIRTU E3.json * Update 0.20mm FAST VIRTU E3.json * Update 0.20mm STANDARD @E3NG v1.2S.json * Update 0.15mm SLOW @E3NG v1.2S.json * Update 0.25mm STANDARD @VIRTU E3.json * Update 0.20mm STANDARD VIRTU E3.json * Update 0.20mm FAST @E3NG v1.2S.json * Update 0.25mm FAST VIRTU E3.json * Update 0.10mm FAST VIRTU E3.json * Update 0.10mm SLOW VIRTU E3.json * Update 0.15mm SLOW VIRTU E3.json * Update 0.20mm SLOW VIRTU E3.json * Update 0.25mm FAST @E3NG v1.2S.json * Update 0.10mm SLOW @E3NG v1.2S.json * Update 0.10mm STANDARD @E3NG v1.2S.json * Update 0.15mm STANDARD @VIRTU E3.json * Update 0.25mm STANDARD @E3NG v1.2S.json * Update 0.15mm STANDARD @E3NG v1.2S.json * Update 0.25mm SLOW @VIRTU E3.json * Update 0.10mm STANDARD VIRTU E3.json * Update 0.15mm FAST @E3NG v1.2S.json * Update 0.10mm FAST @E3NG v1.2S.json * Update VIRTU E3 - 0.4 nozzle.json * Update VIRTU E3 - 0.5 nozzle.json * Update VIRTU E3 - 0.6 nozzle.json * Update VIRTU E3 - 0.3 nozzle.json * Update VIRTU E3 - 0.2 nozzle.json * Replace cover PNGs for edge to edge images * Update 0.10mm STANDARD @E3NG v1.2S.json added alias with previous name * Update 0.10mm STANDARD @E3NG v1.2S.json update aliases * Update and rename 0.10mm STANDARD @E3NG v1.2S.json to 0.10mm Standard @E3NG v1.2S.json * Update RH3D.json update naming * Update and rename 0.10mm FAST @E3NG v1.2S.json to 0.10mm Fast @E3NG v1.2S.json * Update and rename 0.10mm FAST VIRTU E3.json to 0.10mm Fast VIRTU E3.json * Update and rename 0.15mm FAST @E3NG v1.2S.json to 0.15mm Fast @E3NG v1.2S.json * Update and rename 0.15mm FAST VIRTU E3.json to 0.15mm Fast VIRTU E3.json * Update and rename 0.20mm FAST @E3NG v1.2S.json to 0.20mm Fast @E3NG v1.2S.json * Update and rename 0.20mm FAST VIRTU E3.json to 0.20mm Fast VIRTU E3.json * Update and rename 0.25mm FAST @E3NG v1.2S.json to 0.25mm Fast @E3NG v1.2S.json * Update and rename 0.25mm FAST @VIRTU E3.json to 0.25mm Fast @VIRTU E3.json * Update and rename process_FAST_E3NG v1.2S.json to process_Fast_E3NG v1.2S.json * Update and rename process_FAST_VIRTU E3.json to process_Fast_VIRTU E3.json * Update and rename 0.10mm SLOW @E3NG v1.2S.json to 0.10mm Slow @E3NG v1.2S.json * Update and rename 0.10mm SLOW @VIRTU E3.json to 0.10mm Slow @VIRTU E3.json * Update and rename 0.15mm SLOW @E3NG v1.2S.json to 0.15mm Slow @E3NG v1.2S.json * Update and rename 0.20mm SLOW @E3NG v1.2S.json to 0.20mm Slow @E3NG v1.2S.json * Update and rename 0.15mm SLOW VIRTU E3.json to 0.15mm Slow VIRTU E3.json * Update and rename 0.20mm SLOW @VIRTU E3.json to 0.20mm Slow @VIRTU E3.json * Update and rename 0.25mm SLOW @E3NG v1.2S.json to 0.25mm Slow @E3NG v1.2S.json * Update and rename 0.25mm SLOW @VIRTU E3.json to 0.25mm Slow @VIRTU E3.json * Update and rename process_SLOW_E3NG v1.2S.json to process_Slow_E3NG v1.2S.json * Update and rename process_SLOW_VIRTU E3.json to process_Slow_VIRTU E3.json * Update and rename 0.10mm STANDARD @VIRTU E3.json to 0.10mm Standard @VIRTU E3.json * Update and rename 0.15mm STANDARD @E3NG v1.2S.json to 0.15mm Standard @E3NG v1.2S.json * Update and rename 0.20mm STANDARD @E3NG v1.2S.json to 0.20mm Standard @E3NG v1.2S.json * Update and rename 0.15mm STANDARD @VIRTU E3.json to 0.15mm Standard @VIRTU E3.json * Update and rename 0.20mm STANDARD @VIRTU E3.json to 0.20mm Standard @VIRTU E3.json * Update and rename 0.25mm STANDARD @E3NG v1.2S.json to 0.25mm Standard @E3NG v1.2S.json * Update and rename 0.25mm STANDARD VIRTU E3.json to 0.25mm Standard VIRTU E3.json * Update and rename process_STANDARD_E3NG v1.2S.json to process_Standard_E3NG v1.2S.json * Update and rename process_STANDARD_VIRTU E3.json to process_Standard_VIRTU E3.json * Update E3NG v1.2S - 0.2 nozzle.json * Update E3NG v1.2S - 0.3 nozzle.json * Update E3NG v1.2S - 0.4 nozzle.json * Update E3NG v1.2S - 0.5 nozzle.json * Update E3NG v1.2S - 0.6 nozzle.json * Update VIRTU E3 - 0.2 nozzle.json * Update VIRTU E3 - 0.3 nozzle.json * Update VIRTU E3 - 0.4 nozzle.json * Update VIRTU E3 - 0.5 nozzle.json * Update VIRTU E3 - 0.6 nozzle.json * Update 0.15mm Slow @E3NG v1.2S.json * Update 0.10mm Fast VIRTU E3.json * Update 0.20mm Slow VIRTU E3.json * Update 0.10mm Standard @E3NG v1.2S.json * Update 0.10mm Fast @E3NG v1.2S.json * Update 0.25mm Standard @E3NG v1.2S.json * Update 0.15mm Standard @E3NG v1.2S.json * Update 0.15mm Standard VIRTU E3.json * Update 0.20mm Standard VIRTU E3.json * Update 0.20mm Standard @E3NG v1.2S.json * Update 0.25mm Slow VIRTU E3.json * Update 0.25mm Fast @E3NG v1.2S.json * Update 0.20mm Slow @E3NG v1.2S.json * Update 0.10mm Slow VIRTU E3.json * Update 0.25mm Slow @E3NG v1.2S.json * Update 0.25mm Standard VIRTU E3.json * Update 0.10mm Standard VIRTU E3.json * Update 0.20mm Fast @E3NG v1.2S.json * Update 0.10mm Slow @E3NG v1.2S.json * Update 0.15mm Fast @E3NG v1.2S.json * Update 0.15mm Fast VIRTU E3.json * Update 0.15mm Slow VIRTU E3.json * Update 0.20mm Fast VIRTU E3.json * Update 0.25mm Fast VIRTU E3.json * Update fdm_machine_common.json * Profile verification/fix Fixing profiles with orca_profile_tool.py * bump version --------- Co-authored-by: yw4z <ywsyildiz@gmail.com> Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com> Co-authored-by: SoftFever <softfeverever@gmail.com> --- resources/profiles/RH3D.json | 170 ++++++- resources/profiles/RH3D/E3NG v1.2S_cover.png | Bin 55770 -> 93293 bytes resources/profiles/RH3D/E3NG-bed-texture.svg | 444 ++++++++++++++++- resources/profiles/RH3D/VIRTU E3_cover.png | Bin 0 -> 89595 bytes resources/profiles/RH3D/VIRTU-bed-texture.svg | 460 ++++++++++++++++++ resources/profiles/RH3D/VIRTU-bed.stl | Bin 0 -> 440684 bytes .../RH3D/filament/Generic ABS @VIRTU E3.json | 16 + .../RH3D/filament/Generic ASA @VIRTU E3.json | 16 + .../RH3D/filament/Generic PCCF @VIRTU E3.json | 13 + .../RH3D/filament/Generic PETG @VIRTU E3.json | 16 + .../RH3D/filament/Generic PLA @VIRTU E3.json | 16 + .../RH3D/filament/Generic TPU @VIRTU E3.json | 14 + .../RH3D/filament/fdm_filament_abs.json | 8 +- .../RH3D/filament/fdm_filament_asa.json | 10 +- .../RH3D/filament/fdm_filament_common.json | 17 +- .../RH3D/filament/fdm_filament_pccf.json | 6 +- .../RH3D/filament/fdm_filament_petg.json | 8 +- .../RH3D/filament/fdm_filament_pla.json | 4 +- .../RH3D/machine/VIRTU E3 - 0.2 nozzle.json | 14 + .../RH3D/machine/VIRTU E3 - 0.3 nozzle.json | 14 + .../RH3D/machine/VIRTU E3 - 0.4 nozzle.json | 14 + .../RH3D/machine/VIRTU E3 - 0.5 nozzle.json | 14 + .../RH3D/machine/VIRTU E3 - 0.6 nozzle.json | 14 + resources/profiles/RH3D/machine/VIRTU E3.json | 12 + .../RH3D/machine/fdm_common_E3NG v1.2S.json | 9 +- .../RH3D/machine/fdm_common_VIRTU E3.json | 71 +++ .../RH3D/machine/fdm_machine_common.json | 5 +- .../RH3D/process/0.10mm Fast @E3NG v1.2S.json | 15 + .../RH3D/process/0.10mm Fast @VIRTU E3.json | 15 + .../RH3D/process/0.10mm Slow @E3NG v1.2S.json | 15 + .../RH3D/process/0.10mm Slow @VIRTU E3.json | 15 + .../process/0.10mm Standard @E3NG v1.2S.json | 2 +- .../process/0.10mm Standard @VIRTU E3.json | 15 + .../RH3D/process/0.15mm Fast @E3NG v1.2S.json | 16 + .../RH3D/process/0.15mm Fast @VIRTU E3.json | 16 + .../RH3D/process/0.15mm Slow @E3NG v1.2S.json | 16 + .../RH3D/process/0.15mm Slow @VIRTU E3.json | 16 + .../process/0.15mm Standard @E3NG v1.2S.json | 2 +- .../process/0.15mm Standard @VIRTU E3.json | 16 + .../RH3D/process/0.20mm Fast @E3NG v1.2S.json | 39 +- .../RH3D/process/0.20mm Fast @VIRTU E3.json | 16 + .../RH3D/process/0.20mm Slow @E3NG v1.2S.json | 39 +- .../RH3D/process/0.20mm Slow @VIRTU E3.json | 16 + .../process/0.20mm Standard @E3NG v1.2S.json | 4 +- .../process/0.20mm Standard @VIRTU E3.json | 16 + .../RH3D/process/0.25mm Fast @E3NG v1.2S.json | 38 +- .../RH3D/process/0.25mm Fast @VIRTU E3.json | 15 + .../RH3D/process/0.25mm Slow @E3NG v1.2S.json | 15 + .../RH3D/process/0.25mm Slow @VIRTU E3.json | 15 + .../process/0.25mm Standard @E3NG v1.2S.json | 2 +- .../process/0.25mm Standard @VIRTU E3.json | 15 + .../RH3D/process/fdm_process_common.json | 9 +- .../RH3D/process/process_Fast_E3NG v1.2S.json | 42 ++ .../RH3D/process/process_Fast_VIRTU E3.json | 42 ++ .../RH3D/process/process_Slow_E3NG v1.2S.json | 42 ++ .../RH3D/process/process_Slow_VIRTU E3.json | 42 ++ .../process/process_Standard_E3NG v1.2S.json | 33 ++ .../process/process_Standard_VIRTU E3.json | 33 ++ .../process/process_common_E3NG v1.2S.json | 7 - 59 files changed, 1854 insertions(+), 170 deletions(-) create mode 100644 resources/profiles/RH3D/VIRTU E3_cover.png create mode 100644 resources/profiles/RH3D/VIRTU-bed-texture.svg create mode 100644 resources/profiles/RH3D/VIRTU-bed.stl create mode 100644 resources/profiles/RH3D/filament/Generic ABS @VIRTU E3.json create mode 100644 resources/profiles/RH3D/filament/Generic ASA @VIRTU E3.json create mode 100644 resources/profiles/RH3D/filament/Generic PCCF @VIRTU E3.json create mode 100644 resources/profiles/RH3D/filament/Generic PETG @VIRTU E3.json create mode 100644 resources/profiles/RH3D/filament/Generic PLA @VIRTU E3.json create mode 100644 resources/profiles/RH3D/filament/Generic TPU @VIRTU E3.json create mode 100644 resources/profiles/RH3D/machine/VIRTU E3 - 0.2 nozzle.json create mode 100644 resources/profiles/RH3D/machine/VIRTU E3 - 0.3 nozzle.json create mode 100644 resources/profiles/RH3D/machine/VIRTU E3 - 0.4 nozzle.json create mode 100644 resources/profiles/RH3D/machine/VIRTU E3 - 0.5 nozzle.json create mode 100644 resources/profiles/RH3D/machine/VIRTU E3 - 0.6 nozzle.json create mode 100644 resources/profiles/RH3D/machine/VIRTU E3.json create mode 100644 resources/profiles/RH3D/machine/fdm_common_VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.10mm Fast @E3NG v1.2S.json create mode 100644 resources/profiles/RH3D/process/0.10mm Fast @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.10mm Slow @E3NG v1.2S.json create mode 100644 resources/profiles/RH3D/process/0.10mm Slow @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.10mm Standard @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.15mm Fast @E3NG v1.2S.json create mode 100644 resources/profiles/RH3D/process/0.15mm Fast @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.15mm Slow @E3NG v1.2S.json create mode 100644 resources/profiles/RH3D/process/0.15mm Slow @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.15mm Standard @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.20mm Fast @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.20mm Slow @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.20mm Standard @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.25mm Fast @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.25mm Slow @E3NG v1.2S.json create mode 100644 resources/profiles/RH3D/process/0.25mm Slow @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/0.25mm Standard @VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/process_Fast_E3NG v1.2S.json create mode 100644 resources/profiles/RH3D/process/process_Fast_VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/process_Slow_E3NG v1.2S.json create mode 100644 resources/profiles/RH3D/process/process_Slow_VIRTU E3.json create mode 100644 resources/profiles/RH3D/process/process_Standard_E3NG v1.2S.json create mode 100644 resources/profiles/RH3D/process/process_Standard_VIRTU E3.json delete mode 100644 resources/profiles/RH3D/process/process_common_E3NG v1.2S.json diff --git a/resources/profiles/RH3D.json b/resources/profiles/RH3D.json index dbf9500ca0..3e177c5efd 100644 --- a/resources/profiles/RH3D.json +++ b/resources/profiles/RH3D.json @@ -1,12 +1,16 @@ { "name": "RH3D", - "version": "02.04.00.03", + "version": "02.04.00.04", "force_update": "0", "description": "RH3D - printer profiles", "machine_model_list": [ { "name": "E3NG v1.2S", "sub_path": "machine/E3NG v1.2S.json" + }, + { + "name": "VIRTU E3", + "sub_path": "machine/VIRTU E3.json" } ], "machine_list": [ @@ -18,6 +22,10 @@ "name": "fdm_common_E3NG v1.2S", "sub_path": "machine/fdm_common_E3NG v1.2S.json" }, + { + "name": "fdm_common_VIRTU E3", + "sub_path": "machine/fdm_common_VIRTU E3.json" + }, { "name": "E3NG v1.2S - 0.2 nozzle", "sub_path": "machine/E3NG v1.2S - 0.2 nozzle.json" @@ -37,6 +45,26 @@ { "name": "E3NG v1.2S - 0.6 nozzle", "sub_path": "machine/E3NG v1.2S - 0.6 nozzle.json" + }, + { + "name": "VIRTU E3 - 0.2 nozzle", + "sub_path": "machine/VIRTU E3 - 0.2 nozzle.json" + }, + { + "name": "VIRTU E3 - 0.3 nozzle", + "sub_path": "machine/VIRTU E3 - 0.3 nozzle.json" + }, + { + "name": "VIRTU E3 - 0.4 nozzle", + "sub_path": "machine/VIRTU E3 - 0.4 nozzle.json" + }, + { + "name": "VIRTU E3 - 0.5 nozzle", + "sub_path": "machine/VIRTU E3 - 0.5 nozzle.json" + }, + { + "name": "VIRTU E3 - 0.6 nozzle", + "sub_path": "machine/VIRTU E3 - 0.6 nozzle.json" } ], "process_list": [ @@ -45,8 +73,92 @@ "sub_path": "process/fdm_process_common.json" }, { - "name": "process_common_E3NG v1.2S", - "sub_path": "process/process_common_E3NG v1.2S.json" + "name": "process_Fast_E3NG v1.2S", + "sub_path": "process/process_Fast_E3NG v1.2S.json" + }, + { + "name": "process_Fast_VIRTU E3", + "sub_path": "process/process_Fast_VIRTU E3.json" + }, + { + "name": "process_Slow_E3NG v1.2S", + "sub_path": "process/process_Slow_E3NG v1.2S.json" + }, + { + "name": "process_Slow_VIRTU E3", + "sub_path": "process/process_Slow_VIRTU E3.json" + }, + { + "name": "process_Standard_E3NG v1.2S", + "sub_path": "process/process_Standard_E3NG v1.2S.json" + }, + { + "name": "process_Standard_VIRTU E3", + "sub_path": "process/process_Standard_VIRTU E3.json" + }, + { + "name": "0.10mm Fast @E3NG v1.2S", + "sub_path": "process/0.10mm Fast @E3NG v1.2S.json" + }, + { + "name": "0.15mm Fast @E3NG v1.2S", + "sub_path": "process/0.15mm Fast @E3NG v1.2S.json" + }, + { + "name": "0.20mm Fast @E3NG v1.2S", + "sub_path": "process/0.20mm Fast @E3NG v1.2S.json" + }, + { + "name": "0.25mm Fast @E3NG v1.2S", + "sub_path": "process/0.25mm Fast @E3NG v1.2S.json" + }, + { + "name": "0.10mm Fast @VIRTU E3", + "sub_path": "process/0.10mm Fast @VIRTU E3.json" + }, + { + "name": "0.15mm Fast @VIRTU E3", + "sub_path": "process/0.15mm Fast @VIRTU E3.json" + }, + { + "name": "0.20mm Fast @VIRTU E3", + "sub_path": "process/0.20mm Fast @VIRTU E3.json" + }, + { + "name": "0.25mm Fast @VIRTU E3", + "sub_path": "process/0.25mm Fast @VIRTU E3.json" + }, + { + "name": "0.10mm Slow @E3NG v1.2S", + "sub_path": "process/0.10mm Slow @E3NG v1.2S.json" + }, + { + "name": "0.15mm Slow @E3NG v1.2S", + "sub_path": "process/0.15mm Slow @E3NG v1.2S.json" + }, + { + "name": "0.20mm Slow @E3NG v1.2S", + "sub_path": "process/0.20mm Slow @E3NG v1.2S.json" + }, + { + "name": "0.25mm Slow @E3NG v1.2S", + "sub_path": "process/0.25mm Slow @E3NG v1.2S.json" + }, + { + "name": "0.10mm Slow @VIRTU E3", + "sub_path": "process/0.10mm Slow @VIRTU E3.json" + }, + { + "name": "0.15mm Slow @VIRTU E3", + "sub_path": "process/0.15mm Slow @VIRTU E3.json" + }, + { + "name": "0.20mm Slow @VIRTU E3", + "sub_path": "process/0.20mm Slow @VIRTU E3.json" + }, + { + "name": "0.25mm Slow @VIRTU E3", + "sub_path": "process/0.25mm Slow @VIRTU E3.json" }, { "name": "0.10mm Standard @E3NG v1.2S", @@ -56,25 +168,29 @@ "name": "0.15mm Standard @E3NG v1.2S", "sub_path": "process/0.15mm Standard @E3NG v1.2S.json" }, - { - "name": "0.20mm Fast @E3NG v1.2S", - "sub_path": "process/0.20mm Fast @E3NG v1.2S.json" - }, - { - "name": "0.20mm Slow @E3NG v1.2S", - "sub_path": "process/0.20mm Slow @E3NG v1.2S.json" - }, { "name": "0.20mm Standard @E3NG v1.2S", "sub_path": "process/0.20mm Standard @E3NG v1.2S.json" }, - { - "name": "0.25mm Fast @E3NG v1.2S", - "sub_path": "process/0.25mm Fast @E3NG v1.2S.json" - }, { "name": "0.25mm Standard @E3NG v1.2S", "sub_path": "process/0.25mm Standard @E3NG v1.2S.json" + }, + { + "name": "0.10mm Standard @VIRTU E3", + "sub_path": "process/0.10mm Standard @VIRTU E3.json" + }, + { + "name": "0.15mm Standard @VIRTU E3", + "sub_path": "process/0.15mm Standard @VIRTU E3.json" + }, + { + "name": "0.20mm Standard @VIRTU E3", + "sub_path": "process/0.20mm Standard @VIRTU E3.json" + }, + { + "name": "0.25mm Standard @VIRTU E3", + "sub_path": "process/0.25mm Standard @VIRTU E3.json" } ], "filament_list": [ @@ -110,25 +226,49 @@ "name": "Generic ABS @E3NG v1.2S", "sub_path": "filament/Generic ABS @E3NG v1.2S.json" }, + { + "name": "Generic ABS @VIRTU E3", + "sub_path": "filament/Generic ABS @VIRTU E3.json" + }, { "name": "Generic ASA @E3NG v1.2S", "sub_path": "filament/Generic ASA @E3NG v1.2S.json" }, + { + "name": "Generic ASA @VIRTU E3", + "sub_path": "filament/Generic ASA @VIRTU E3.json" + }, { "name": "Generic PCCF @E3NG v1.2S", "sub_path": "filament/Generic PCCF @E3NG v1.2S.json" }, + { + "name": "Generic PCCF @VIRTU E3", + "sub_path": "filament/Generic PCCF @VIRTU E3.json" + }, { "name": "Generic PETG @E3NG v1.2S", "sub_path": "filament/Generic PETG @E3NG v1.2S.json" }, + { + "name": "Generic PETG @VIRTU E3", + "sub_path": "filament/Generic PETG @VIRTU E3.json" + }, { "name": "Generic PLA @E3NG v1.2S", "sub_path": "filament/Generic PLA @E3NG v1.2S.json" }, + { + "name": "Generic PLA @VIRTU E3", + "sub_path": "filament/Generic PLA @VIRTU E3.json" + }, { "name": "Generic TPU @E3NG v1.2S", "sub_path": "filament/Generic TPU @E3NG v1.2S.json" + }, + { + "name": "Generic TPU @VIRTU E3", + "sub_path": "filament/Generic TPU @VIRTU E3.json" } ] } diff --git a/resources/profiles/RH3D/E3NG v1.2S_cover.png b/resources/profiles/RH3D/E3NG v1.2S_cover.png index 03bb5a9e420d6ee748f14738c45fb07f3e39d0d6..f70e2ed35fb29a1f3f9ffebe306d9c85a7babe36 100644 GIT binary patch literal 93293 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 pGzjDXY^k#(?4Yan?gf|4^~Pd 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 literal 55770 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 diff --git a/resources/profiles/RH3D/E3NG-bed-texture.svg b/resources/profiles/RH3D/E3NG-bed-texture.svg index 2cc13e29ad..93e944d534 100644 --- a/resources/profiles/RH3D/E3NG-bed-texture.svg +++ b/resources/profiles/RH3D/E3NG-bed-texture.svg @@ -1 +1,443 @@ -<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 666.14 666.14"><path d="M333.14,144.81l-163.06,94.25v188.11l163.11,94.17,162.87-94.03v-188.44l-162.92-94.06h0ZM316.73,493.09l-85.58-49.41v-75.49l-15.93-9.2v75.29l-28.81-16.63v-150.18l85.27,49.28v75.32l16.47,9.51v-75.17l28.59,16.5v150.18h0ZM202.66,238.99l130.29-75.59,130.4,75.29-28.22,16.29-65.27-37.68-16.46,9.5,65.42,37.77-41.09,23.72-65.16-37.62-16.11,9.3,65.46,37.79-28.73,16.59-130.54-75.37h0ZM479.69,417.79l-130.17,75.16v-150.22l130.15-75.32v56.28l-64.97,37.51v37.82l16.19-9.35v-18.85l48.8-28.18v75.15Z" style="fill:#00bc00; opacity:.2;"/></svg> \ No newline at end of file +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + id="a" + viewBox="0 0 876.85037 876.85038" + version="1.1" + sodipodi:docname="E3NG-bed-texture.svg" + width="232mm" + height="232mm" + xml:space="preserve" + inkscape:version="1.4.3 (0d15f75, 2025-12-25)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><defs + id="defs1"><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect3" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect2" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2"><path + id="path2" + style="display:block;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect26" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect22" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath22"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="circle22" + cx="127.5" + cy="32.5" + r="12.5" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask23"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect23" + width="22.5" + height="45" + x="127.5" + y="10" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath26"><ellipse + style="display:none;fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="ellipse26" + cx="100" + cy="30.000002" + rx="9.9999962" + ry="9.999999" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask26"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect27" + width="19.999998" + height="39.999996" + x="100" + y="9.999999" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath31"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle31" + cx="87.5" + cy="27.499996" + r="7.5000005" /></clipPath><filter + id="mask-powermask-path-effect32_inverse" + inkscape:label="filtermask-powermask-path-effect32" + style="color-interpolation-filters:sRGB" + height="100" + width="100" + x="-50" + y="-50"><feColorMatrix + id="mask-powermask-path-effect32_primitive1" + values="1" + type="saturate" + result="fbSourceGraphic" /><feColorMatrix + id="mask-powermask-path-effect32_primitive2" + values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " + in="fbSourceGraphic" /></filter><mask + maskUnits="userSpaceOnUse" + id="mask32"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect32" + width="17.499998" + height="35" + x="87.5" + y="10" /></mask><mask + maskUnits="userSpaceOnUse" + id="mask33"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect34" + width="90.000641" + height="29.999998" + x="-0.0003171495" + y="45" + transform="rotate(30)" /></mask><mask + maskUnits="userSpaceOnUse" + id="mask33-5"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect34-5" + width="90.000641" + height="29.999998" + x="-0.0003171495" + y="45" + transform="rotate(30)" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath31-1"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle31-7" + cx="87.5" + cy="27.499996" + r="7.5000005" /><path + id="lpe_path-effect31-1" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 82.5,5 H 110 V 50 H 82.5 Z M 95,27.499996 a 7.5000005,7.5000005 0 0 0 -7.5,-7.5 7.5000005,7.5000005 0 0 0 -7.5,7.5 7.5000005,7.5000005 0 0 0 7.5,7.500001 7.5000005,7.5000005 0 0 0 7.5,-7.500001 z" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask32-1"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect32-5" + width="17.499998" + height="35" + x="87.5" + y="10" /></mask><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31-2" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-2"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle35" + cx="87.5" + cy="27.499996" + r="7.5000005" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask33-5-5"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect34-5-7" + width="90.000641" + height="29.999998" + x="-0.0003171495" + y="45" + transform="rotate(30)" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-2-6"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle35-1" + cx="87.5" + cy="27.499996" + r="7.5000005" /><path + id="lpe_path-effect31-2-8" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 82.5,5 H 110 V 50 H 82.5 Z M 95,27.499996 a 7.5000005,7.5000005 0 0 0 -7.5,-7.5 7.5000005,7.5000005 0 0 0 -7.5,7.5 7.5000005,7.5000005 0 0 0 7.5,7.500001 7.5000005,7.5000005 0 0 0 7.5,-7.500001 z" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask32-1-9"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect32-5-2" + width="17.499998" + height="35" + x="87.5" + y="10" /></mask><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31-2-7" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-2-7"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle36" + cx="87.5" + cy="27.499996" + r="7.5000005" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask33-5-5-8"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect34-5-7-7" + width="90.000641" + height="29.999998" + x="-0.0003171495" + y="45" + transform="rotate(30)" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-2-7-4"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle36-2" + cx="87.5" + cy="27.499996" + r="7.5000005" /><path + id="lpe_path-effect31-2-7-7" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 82.5,5 H 110 V 50 H 82.5 Z M 95,27.499996 a 7.5000005,7.5000005 0 0 0 -7.5,-7.5 7.5000005,7.5000005 0 0 0 -7.5,7.5 7.5000005,7.5000005 0 0 0 7.5,7.500001 7.5000005,7.5000005 0 0 0 7.5,-7.500001 z" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask32-1-9-7"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect32-5-2-9" + width="17.499998" + height="35" + x="87.5" + y="10" /></mask><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31-2-7-3" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-2-7-3"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle37" + cx="87.5" + cy="27.499996" + r="7.5000005" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask33-4"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect34-8" + width="90.000641" + height="29.999998" + x="-0.0003171495" + y="45" + transform="rotate(30)" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath31-6"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle31-5" + cx="87.5" + cy="27.499996" + r="7.5000005" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask32-9"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect32-0" + width="17.499998" + height="35" + x="87.5" + y="10" /></mask><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31-0" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath31-6-4"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle31-5-9" + cx="87.5" + cy="27.499996" + r="7.5000005" /><path + id="lpe_path-effect31-0-6" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 82.5,5 H 110 V 50 H 82.5 Z M 95,27.499996 a 7.5000005,7.5000005 0 0 0 -7.5,-7.5 7.5000005,7.5000005 0 0 0 -7.5,7.5 7.5000005,7.5000005 0 0 0 7.5,7.500001 7.5000005,7.5000005 0 0 0 7.5,-7.500001 z" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask32-9-3"><path + id="rect32-0-7" + d="M 87.5,10 H 105 V 45 H 87.5 Z" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" /></mask><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31-0-8" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-0-8"><path + id="lpe_path-effect31-0-8" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 82.5,5 H 110 V 50 H 82.5 Z M 95,27.499996 a 7.5000005,7.5000005 0 0 0 -7.5,-7.5 7.5000005,7.5000005 0 0 0 -7.5,7.5 7.5000005,7.5000005 0 0 0 7.5,7.500001 7.5000005,7.5000005 0 0 0 7.5,-7.500001 z" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath61"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect61" + width="90.000641" + height="29.999998" + x="-0.0003176317" + y="44.999981" + transform="rotate(30)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2-5"><path + id="path2-1" + style="display:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /><path + id="lpe_path-effect2-7" + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 43.140527,-4.5919906 H 92.503738 V 30.405494 H 43.140527 Z M 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect2-1" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><filter + id="mask-powermask-path-effect4_inverse" + inkscape:label="filtermask-powermask-path-effect4" + style="color-interpolation-filters:sRGB" + height="100" + width="100" + x="-50" + y="-50"><feColorMatrix + id="mask-powermask-path-effect4_primitive1" + values="1" + type="saturate" + result="fbSourceGraphic" /><feColorMatrix + id="mask-powermask-path-effect4_primitive2" + values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " + in="fbSourceGraphic" /></filter><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2-2"><path + id="path2-2" + style="display:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /><path + id="lpe_path-effect2-16" + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 43.140527,-4.5919906 H 92.503738 V 30.405494 H 43.140527 Z M 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect2-8" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect2-8"><path + id="path4" + style="display:block;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2-54"><path + id="path2-3" + style="display:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /><path + id="lpe_path-effect2-12" + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 43.140527,-4.5919906 H 92.503738 V 30.405494 H 43.140527 Z M 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect2-3" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect2-3"><path + id="path5" + style="display:block;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath></defs><sodipodi:namedview + id="namedview1" + pagecolor="#606060" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:zoom="0.87594198" + inkscape:cx="103.31735" + inkscape:cy="419.54834" + inkscape:window-width="2560" + inkscape:window-height="1369" + inkscape:window-x="1912" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="a" + inkscape:document-units="mm" /><g + inkscape:label="Vrstva 1" + id="layer1-8" + transform="matrix(0.75590545,0,0,0.75590545,18.897638,18.897638)"><rect + style="fill:#ffffff;fill-opacity:0.4;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect35-3-9" + width="100" + height="100.00001" + x="1.7763568e-15" + y="-2.8421709e-14" + inkscape:export-filename="rect35-3-9.png" + inkscape:export-xdpi="65.024002" + inkscape:export-ydpi="65.024002" + rx="5" + ry="5" /><path + id="path1-2" + clip-path="none" + style="fill:#000000;fill-opacity:0.5;stroke:none;stroke-width:1.606;stroke-dasharray:none;stroke-opacity:1" + d="m 19.999839,19.999839 v 59.998926 h 9.99939 V 55.000289 H 40.001203 L 54.429264,79.998765 H 65.978948 L 51.545719,55.000289 h 18.453656 v 24.998476 h 9.99939 V 19.999839 h -9.99939 v 25.00106 h -11.68921 c 0.497269,-1.023194 1.689819,-3.809822 1.689819,-7.500835 0,-9.650331 -7.830201,-17.500225 -17.500225,-17.500225 z m 9.99939,9.99939 h 12.50053 c 4.201491,0 7.500835,3.408985 7.500835,7.500835 0,4.084865 -3.301557,7.500835 -7.500835,7.500835 h -12.50053 z" /></g><path + d="M 438.53234,150.2948 188.97638,294.54018 V 582.43403 L 438.60885,726.55694 687.87402,582.64828 V 294.24938 Z M 413.41756,683.32158 282.44124,607.7018 V 492.16781 l -24.38013,-14.08019 v 115.22791 l -44.0924,-25.45145 v -229.8437 l 130.50188,75.42084 v 115.27383 l 25.20659,14.55465 V 428.22538 l 43.7557,25.25252 v 229.84368 0 z M 238.8386,294.43302 438.24154,178.74596 637.81285,293.9739 l -43.18944,24.9311 -99.89278,-57.66754 -25.19129,14.53932 100.12235,57.80528 -62.88638,36.3024 -99.72444,-57.57571 -24.65562,14.23322 100.18357,57.8359 -43.96997,25.39025 -199.78556,-115.35038 v 0 z M 662.82047,568.07835 463.60118,683.1073 V 453.20241 L 662.78986,337.92856 v 86.13399 l -99.43364,57.40737 v 57.8818 l 24.77806,-14.30976 v -28.84905 l 74.68619,-43.12824 z" + style="opacity:0.2;fill:#00bc00;stroke-width:1.53046" + id="path1-9" /></svg> diff --git a/resources/profiles/RH3D/VIRTU E3_cover.png b/resources/profiles/RH3D/VIRTU E3_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..085b853cc0e987698dff899750e36613a02cb7b9 GIT binary patch literal 89595 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 O0000<MNUMnLSTXusqZZS literal 0 HcmV?d00001 diff --git a/resources/profiles/RH3D/VIRTU-bed-texture.svg b/resources/profiles/RH3D/VIRTU-bed-texture.svg new file mode 100644 index 0000000000..802310f8d5 --- /dev/null +++ b/resources/profiles/RH3D/VIRTU-bed-texture.svg @@ -0,0 +1,460 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + id="a" + viewBox="0 0 869.29132 876.85038" + version="1.1" + sodipodi:docname="VIRTU-bed-texture.svg" + width="230mm" + height="232mm" + xml:space="preserve" + inkscape:version="1.4.3 (0d15f75, 2025-12-25)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><defs + id="defs1"><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect3" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect2" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2"><path + id="path2" + style="display:block;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect26" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect22" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath22"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="circle22" + cx="127.5" + cy="32.5" + r="12.5" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask23"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect23" + width="22.5" + height="45" + x="127.5" + y="10" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath26"><ellipse + style="display:none;fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="ellipse26" + cx="100" + cy="30.000002" + rx="9.9999962" + ry="9.999999" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask26"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect27" + width="19.999998" + height="39.999996" + x="100" + y="9.999999" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath31"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle31" + cx="87.5" + cy="27.499996" + r="7.5000005" /></clipPath><filter + id="mask-powermask-path-effect32_inverse" + inkscape:label="filtermask-powermask-path-effect32" + style="color-interpolation-filters:sRGB" + height="100" + width="100" + x="-50" + y="-50"><feColorMatrix + id="mask-powermask-path-effect32_primitive1" + values="1" + type="saturate" + result="fbSourceGraphic" /><feColorMatrix + id="mask-powermask-path-effect32_primitive2" + values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " + in="fbSourceGraphic" /></filter><mask + maskUnits="userSpaceOnUse" + id="mask32"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect32" + width="17.499998" + height="35" + x="87.5" + y="10" /></mask><mask + maskUnits="userSpaceOnUse" + id="mask33"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect34" + width="90.000641" + height="29.999998" + x="-0.0003171495" + y="45" + transform="rotate(30)" /></mask><mask + maskUnits="userSpaceOnUse" + id="mask33-5"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect34-5" + width="90.000641" + height="29.999998" + x="-0.0003171495" + y="45" + transform="rotate(30)" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath31-1"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle31-7" + cx="87.5" + cy="27.499996" + r="7.5000005" /><path + id="lpe_path-effect31-1" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 82.5,5 H 110 V 50 H 82.5 Z M 95,27.499996 a 7.5000005,7.5000005 0 0 0 -7.5,-7.5 7.5000005,7.5000005 0 0 0 -7.5,7.5 7.5000005,7.5000005 0 0 0 7.5,7.500001 7.5000005,7.5000005 0 0 0 7.5,-7.500001 z" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask32-1"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect32-5" + width="17.499998" + height="35" + x="87.5" + y="10" /></mask><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31-2" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-2"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle35" + cx="87.5" + cy="27.499996" + r="7.5000005" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask33-5-5"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect34-5-7" + width="90.000641" + height="29.999998" + x="-0.0003171495" + y="45" + transform="rotate(30)" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-2-6"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle35-1" + cx="87.5" + cy="27.499996" + r="7.5000005" /><path + id="lpe_path-effect31-2-8" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 82.5,5 H 110 V 50 H 82.5 Z M 95,27.499996 a 7.5000005,7.5000005 0 0 0 -7.5,-7.5 7.5000005,7.5000005 0 0 0 -7.5,7.5 7.5000005,7.5000005 0 0 0 7.5,7.500001 7.5000005,7.5000005 0 0 0 7.5,-7.500001 z" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask32-1-9"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect32-5-2" + width="17.499998" + height="35" + x="87.5" + y="10" /></mask><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31-2-7" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-2-7"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle36" + cx="87.5" + cy="27.499996" + r="7.5000005" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask33-5-5-8"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect34-5-7-7" + width="90.000641" + height="29.999998" + x="-0.0003171495" + y="45" + transform="rotate(30)" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-2-7-4"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle36-2" + cx="87.5" + cy="27.499996" + r="7.5000005" /><path + id="lpe_path-effect31-2-7-7" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 82.5,5 H 110 V 50 H 82.5 Z M 95,27.499996 a 7.5000005,7.5000005 0 0 0 -7.5,-7.5 7.5000005,7.5000005 0 0 0 -7.5,7.5 7.5000005,7.5000005 0 0 0 7.5,7.500001 7.5000005,7.5000005 0 0 0 7.5,-7.500001 z" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask32-1-9-7"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect32-5-2-9" + width="17.499998" + height="35" + x="87.5" + y="10" /></mask><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31-2-7-3" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-2-7-3"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle37" + cx="87.5" + cy="27.499996" + r="7.5000005" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask33-4"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect34-8" + width="90.000641" + height="29.999998" + x="-0.0003171495" + y="45" + transform="rotate(30)" /></mask><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath31-6"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle31-5" + cx="87.5" + cy="27.499996" + r="7.5000005" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask32-9"><rect + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect32-0" + width="17.499998" + height="35" + x="87.5" + y="10" /></mask><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31-0" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath31-6-4"><circle + style="display:none;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="circle31-5-9" + cx="87.5" + cy="27.499996" + r="7.5000005" /><path + id="lpe_path-effect31-0-6" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 82.5,5 H 110 V 50 H 82.5 Z M 95,27.499996 a 7.5000005,7.5000005 0 0 0 -7.5,-7.5 7.5000005,7.5000005 0 0 0 -7.5,7.5 7.5000005,7.5000005 0 0 0 7.5,7.500001 7.5000005,7.5000005 0 0 0 7.5,-7.500001 z" /></clipPath><mask + maskUnits="userSpaceOnUse" + id="mask32-9-3"><path + id="rect32-0-7" + d="M 87.5,10 H 105 V 45 H 87.5 Z" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" /></mask><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect31-0-8" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect31-0-8"><path + id="lpe_path-effect31-0-8" + style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 82.5,5 H 110 V 50 H 82.5 Z M 95,27.499996 a 7.5000005,7.5000005 0 0 0 -7.5,-7.5 7.5000005,7.5000005 0 0 0 -7.5,7.5 7.5000005,7.5000005 0 0 0 7.5,7.500001 7.5000005,7.5000005 0 0 0 7.5,-7.500001 z" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath61"><rect + style="fill:#ffffff;fill-opacity:1;stroke-width:0.264583" + id="rect61" + width="90.000641" + height="29.999998" + x="-0.0003176317" + y="44.999981" + transform="rotate(30)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2-5"><path + id="path2-1" + style="display:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /><path + id="lpe_path-effect2-7" + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 43.140527,-4.5919906 H 92.503738 V 30.405494 H 43.140527 Z M 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect2-1" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><filter + id="mask-powermask-path-effect4_inverse" + inkscape:label="filtermask-powermask-path-effect4" + style="color-interpolation-filters:sRGB" + height="100" + width="100" + x="-50" + y="-50"><feColorMatrix + id="mask-powermask-path-effect4_primitive1" + values="1" + type="saturate" + result="fbSourceGraphic" /><feColorMatrix + id="mask-powermask-path-effect4_primitive2" + values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " + in="fbSourceGraphic" /></filter><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2-2"><path + id="path2-2" + style="display:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /><path + id="lpe_path-effect2-16" + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 43.140527,-4.5919906 H 92.503738 V 30.405494 H 43.140527 Z M 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect2-8" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect2-8"><path + id="path4" + style="display:block;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2-54"><path + id="path2-3" + style="display:none;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /><path + id="lpe_path-effect2-12" + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + class="powerclip" + d="M 43.140527,-4.5919906 H 92.503738 V 30.405494 H 43.140527 Z M 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath><inkscape:path-effect + effect="powerclip" + message="" + id="path-effect2-3" + is_visible="true" + lpeversion="1" + inverse="true" + flatten="false" + hide_clip="false" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipath_lpe_path-effect2-3"><path + id="path5" + style="display:block;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.815999;stroke-dasharray:none;stroke-opacity:1" + d="m 68.797281,11.210407 c 2.164059,0.0167 4.301633,-1.203719 5.35894,-3.09688 -1.190429,0 -2.380861,0 -3.571296,0 -0.595881,1.0322912 -1.191763,2.064586 -1.787644,3.09688 z" /></clipPath></defs><sodipodi:namedview + id="namedview1" + pagecolor="#606060" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:zoom="0.87594198" + inkscape:cx="103.31735" + inkscape:cy="252.87063" + inkscape:window-width="2560" + inkscape:window-height="1369" + inkscape:window-x="1912" + inkscape:window-y="-8" + inkscape:window-maximized="1" + inkscape:current-layer="layer1-8" + inkscape:document-units="mm" /><g + inkscape:label="Vrstva 1" + id="layer1-2" + transform="matrix(4.5354318,0,0,4.5354318,125.67704,379.88183)" + style="fill:#ffffff;fill-opacity:0.1;stroke:none;stroke-opacity:0"><path + id="path89-7" + style="fill:#ffffff;fill-opacity:0.1;stroke:none;stroke-width:0.816;stroke-dasharray:none;stroke-opacity:0" + d="M 15.050016,0.56109929 C 10.268006,8.8411371 5.4872871,17.123909 0.70662408,25.405494 c 5.34166102,0 10.68332592,0 16.02498792,0 9.929676,-8.332692 19.859689,-16.6649759 29.789517,-24.99748461 -5.596021,0 -11.192034,0 -16.788049,0 -1.379497,1.15794241 -2.759364,2.31544821 -4.139004,3.47322331 0.668111,-1.1577751 1.336885,-2.3151704 2.004516,-3.47322331 -4.153623,0 -8.307245,0 -12.460866,0 -0.02923,0.051033 -0.05847,0.1020599 -0.08771,0.1530899 z" /><path + id="path90-6" + style="fill:#ffffff;fill-opacity:0.1;stroke:none;stroke-width:0.816;stroke-dasharray:none;stroke-opacity:0" + d="M 48.230631,0.56109929 C 43.448616,8.8411371 38.667896,17.123909 33.887233,25.405494 c 4.153624,0 8.307248,0 12.460872,0 4.810447,-8.332448 9.62134,-16.6646419 14.431102,-24.99748461 -4.153626,0 -8.307247,0 -12.460869,0 -0.02925,0.051033 -0.05848,0.1020599 -0.0877,0.1530899 z" /><path + id="path91-1" + clip-path="none" + style="fill:#ffffff;fill-opacity:0.1;stroke:none;stroke-width:0.816;stroke-dasharray:none;stroke-opacity:0" + d="M 62.571717 0.40802992 C 62.542517 0.45906292 62.513107 0.50987608 62.483867 0.56090608 C 57.701859 8.8409439 52.921304 17.124065 48.140639 25.40565 L 60.601553 25.40565 C 61.075156 24.585591 61.547966 23.765168 62.021363 22.94499 C 62.093433 23.765185 62.165078 24.585489 62.237543 25.40565 L 73.069357 25.40565 C 72.866738 23.077881 72.66278 20.750158 72.459575 18.422439 C 76.083252 17.449103 79.255809 14.931504 81.026668 11.623111 C 83.18675 7.8850019 85.346924 4.1480419 87.50388 0.40802992 L 62.571717 0.40802992 z M 70.585012 8.1134188 L 74.156285 8.1134188 C 73.098978 10.00658 70.961496 11.22726 68.797437 11.21056 C 69.393318 10.178266 69.989131 9.14571 70.585012 8.1134188 z " /><path + id="path93-4" + style="fill:#ffffff;fill-opacity:0.1;stroke:none;stroke-width:0.816;stroke-dasharray:none;stroke-opacity:0" + d="m 89.208458,0.56109929 c -1.45422,2.51603221 -2.906973,5.03487351 -4.359881,7.55242781 1.187246,0 2.374493,0 3.561731,0 -3.327204,5.7640459 -6.655229,11.5276229 -9.981921,17.2919669 4.15362,0 8.30724,0 12.460861,0 3.32777,-5.763878 6.65512,-11.527998 9.982732,-17.2919669 1.7818,0 3.5636,0 5.34539,0 1.48264,-2.5684378 2.96558,-5.1367037 4.44757,-7.70551771 -7.12292,0 -14.245852,0 -21.368782,0 -0.0292,0.051033 -0.0585,0.1020599 -0.0877,0.1530899 z" /><path + id="path94-2" + style="fill:#ffffff;fill-opacity:0.1;stroke:none;stroke-width:0.816;stroke-dasharray:none;stroke-opacity:0" + d="M 112.37046,0.56109929 C 107.58819,8.8411411 102.80717,17.123898 98.026268,25.405494 c 5.267082,-0.0066 10.534622,0.01843 15.801412,-0.01691 4.38858,-0.188645 8.62641,-2.602612 10.98053,-6.319575 0.84955,-1.35386 1.59965,-2.766837 2.41765,-4.139984 2.79401,-4.840404 5.58885,-9.6803302 8.38234,-14.52102501 -2.96584,0 -5.93168,0 -8.89754,0 -1.54625,2.67815601 -3.09206,5.35656611 -4.63814,8.03482011 -0.59748,0 -1.19495,0 -1.79242,0 1.54595,-2.678331 3.09271,-5.356186 4.63814,-8.03482011 -4.15336,0 -8.30672,0 -12.46008,0 -0.0292,0.051033 -0.0585,0.1020599 -0.0877,0.1530898 z" /></g><g + inkscape:label="Vrstva 1" + id="layer1-8" + transform="matrix(0.75590545,0,0,0.75590545,18.897638,18.897638)"><rect + style="fill:#ffffff;fill-opacity:0.40000001;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + id="rect35-3-9" + width="100" + height="100.00001" + x="1.7763568e-15" + y="-2.8421709e-14" + inkscape:export-filename="rect35-3-9.png" + inkscape:export-xdpi="65.024002" + inkscape:export-ydpi="65.024002" + rx="5" + ry="5" /><path + id="path1-2" + clip-path="none" + style="fill:#000000;fill-opacity:0.5;stroke:none;stroke-width:1.606;stroke-dasharray:none;stroke-opacity:1" + d="M 19.999839 19.999839 L 19.999839 79.998765 L 29.999229 79.998765 L 29.999229 55.000289 L 40.001203 55.000289 L 54.429264 79.998765 L 65.978948 79.998765 L 51.545719 55.000289 L 69.999375 55.000289 L 69.999375 79.998765 L 79.998765 79.998765 L 79.998765 19.999839 L 69.999375 19.999839 L 69.999375 45.000899 L 58.310165 45.000899 C 58.807434 43.977705 59.999984 41.191077 59.999984 37.500064 C 59.999984 27.849733 52.169783 19.999839 42.499759 19.999839 L 19.999839 19.999839 z M 29.999229 29.999229 L 42.499759 29.999229 C 46.70125 29.999229 50.000594 33.408214 50.000594 37.500064 C 50.000594 41.584929 46.699037 45.000899 42.499759 45.000899 L 29.999229 45.000899 L 29.999229 29.999229 z " /></g></svg> diff --git a/resources/profiles/RH3D/VIRTU-bed.stl b/resources/profiles/RH3D/VIRTU-bed.stl new file mode 100644 index 0000000000000000000000000000000000000000..c26e99e4194bd82335f03a0be31f64908430d85d GIT binary patch literal 440684 zcmb@vd;C^Y`v1Q>r!$fqCXpFuIv=R}X1^Um&Pjtvl9)yrrwDVSG5E}(p`i?h36pV( ziX6J{-nWh_icTXs5JQwCNm9SpYps3lb***px9>l{9`hdSabMSSz1G@m?X~t^ryWKA z|Na|xkcqF*Wc=;<zcyReD=O5j>fQMDa_gTqR5LuL{91X@f^F5EC)Y~DHU&*VeA9H< zbk7nHjH&lKwaS(d4NWkt_0q6GTCch)zc#-pr@a_HB==^yea{a}3bP5FkB~@dqw)3W zN8~r=a(V5=@R)c;x%bTZMkAY`hFC%(rH#hv-5$%09C@A55DSS(LuQp{>@~|?Y0>it zQwE78BvRTCXYamjdL5LB_F{P3?6=GP`_C~N*#tGj5)vtGG(On1tN8Kc0Y*bCB(AyP z-ExaV-!mHWy8$90s3De+NNIz-zTa7;{cdh$G{iz;`M=&PpZ)YFMnitL8bVM*EFqE7 z2KnO3TS`4Y>uc(jSV;V}{JyE}j7fgC8bWAGNTjquK841;pY<(jFG<ytKh!TXCXXlx zp)Dc7R2kZ6ti-k2II>kqdoj$bFn3yWqu~(+AtWD+D<o3dXe1?QG{i!JrTJvry^MzZ zZh(Ri)DTNZq_jbLwOlrR+qm0}hFD0jR&F_=mC=yjt%eZP5KBm;v_ZDw9=v$ubw)!h zBzQkQw|)<!A-@|S5`r3H35k?8NV`5q<V(4n(GUv>wh~ibXlyj(cdH=;HN+AUDQ%D+ zKDsLZ+v69RdL<STX<Lh!<aetf1U1AG5-DvE-L|I|rZDLZ7*qN?h(g{fF<7r^&gR$4 z-N!UVZtGP|xMf;-+{oG{{NN(A+CT27rmrCi4251>51p3WgY~K^2m_EvEeLC3Wqx{j z<cP1FMoMTerfS4Qc!92&NG(Y|gxJ4tsr-4vRZgQ|L;^2fh4wcuGa3~{nyS<SS`%l# zR4%uTmt<&YuksD0^3Wc$jYiExYJr9(#*}B{N-xUL&|Yhfn^iu0TG43KOr#cQXyTps z-}dvtoELcAwby+o&4*XD(WoE_=3;?JEeLC(PKS5=@<=tbSK*I~%7q~djYb7Q4U?+W z0u4=^c+#TEdSwXh)nK0`<xP#(8jT7f)krPS(8Rq{7Wwx_nh))D*u_iJ`=f$LHBt*S zH1XhX-YpLug5C%J{JU0rQE$b`4eec<MVOqYaV7Z>;<O11%45ei$<Wa8^16-LhwW~? zs!YOYq!xH-V$rg><$JcGhpWhk_G0<Jc|>cYkx3Yh)B+7nocY4c8Z@*Q>+!@9`xuQ( z!f2!xXlP=|+8H%mEA7SmvF#-Gwe_lMCQ=K$G;z;9#Tv?7d+AoYW+JsfLlbFx9Cf|B zbN=1Yo%8eNJT!e_pL*ysUQO$(^alL>=2p|nM@~S`5Pev?Q@+J9hvcWM8e3!z#fxFl z@QIgdb;>tse@OoG)nkjEB_KBa^Y!w$hRvYy7Kk&~Z^=C#H7x0P8J4TSm>lsKh>;+Q zAUsPzjEPI-TQ9>iO0)&U>s<!r&TM+L(U5qlA*IQf9I*<-0uYyj@GJpwWQSShzCHJa zh9Me_pFXu#SEC{EQbTGbV{*hXbvoq-Hyl6x+Ni71NG$<z%oX#?qc`GSiH-%aIC{1C z$6MPN4T+Z;a(7X~5eq@I1+fPR&k_*z7c45zd<pk_^aY64O<R`!ec*Ca<`OS8q?KSy zj<^i9<hRXQmiBG8+?08035W-7Tv9&xVYFS*Eg*K*>QpLpY;80oUTR2dM-4~x1cATO zSP-5iApTlT+TiHegm|T6>zs~P^1<GKF*$;%+J#gN1mRhdd<el*^}k{bdgp;4&Oy$v zX}8>HFdx#(@Vc>Alhj&b1&Hmqx^oU%ZZy)kprHv~!?s-)KqCfmK<!tH`P<s$nRfAF znB~vjnHrAhgc2ND>(%1rx3<Z9mVjU_8S`cd8b^Zou)+B0*GFBAhQvz^)?+?pFeXQQ zj{D<L5UA}&Beets>-4s^)1k2(#H(Eg<@z-}+Gt3;)ZqQdrzL7Q;svDY;ZB2cFE>8g zXrz{a;9Wa$*-U8sgll!}=UZ|scQr5?5-&C6>5LkVs79(zLtFAx)X-?8mVjXEGvc15 z(0Cri0chc#T0Pd3xx`Bid3vRWBbFmob<v9cv}&v=^VAX$Y<GK~$0y|OXsPF-rOwTJ z2;)93UWVmqnHr9`^ADZ#{2Ms;p<bRPAksEJD!`k6E9N~kUB@eWd^a%HN_q+Q=Oy;) z_*dAqYkSO|WyE7!su^bQvuMFO6Hc!P9fgSKC6<s#%SjVPL&wWrv@l|Y(a0o>hFGYf ziL}0HjfzxB36hrl0SNM;y`(&To{+fcr3t>tj2+9qHq_8w((jV4APQu)g<(zbP3Gdc zyJcu-FP0784N2Ebh=pF7;G4|MXW5^J`Osc08$K<Ou9*-Ey)?l$nV~~kWN2tF>32!j zOo)YEn&6vEMLtYT)Lzo>lFlSdd5DExn&6vEMR^zv?Iry#>6!_#&`T41lc}gzMnii^ zze~DiLM-&s1m9$M|9fR_G_;rW=cH>U#6mAk@J)v8N~%#{DD;wkm%mpK2GtgZHNiI- zwkyVw?Nx!H&`bJV{+>ygoQs8Cn&6wvxaSsUXlO6#cS&awMnf$0(nR{E&n$TP&|cCG zlCGH$3%xYKw<Rwhyj12|X)oRGdPLs1^Z(E<*_L5|d3Ulc(YYqfwsPEUXWILmM1g?o zm#i1t$Du>|WD^D;k;awugF>(s?b-cgr;!pmUZ$#hUwDD8nMf`0(gfSe>+9y7M!|># zUc3t9dLCyqDu^^ysRgtq*j6?<@YoCu?Zx(S(*B){M$JTOfrch*TiHEBLwm9O554#p zqfs-FTA-l`wv}E!nDYX!yY^x|ZuvxeqftQ=%*6tcS`gL*+e)uIQVs3J`|<e6U5!Qs zK@F3t)B+7nu&u19SBB7DY<;%<;drA_L8Ka~1sa-QTj|{&X+E?UTT!X)6-26$TA-l` zJA%~Dl{qz#ci)S8D^Bij@{viHoTru~A41p>q>D2&biBN7WA+(jG%^XJky@ak3AUA^ zw_ci|p}koCGmaQ)G%^XJky@ak3AS+A8rqBXc;bkwj7BD5G*SyRG+{@OvaXf(;{CY) zq$`X@%|vQ}h9>L?QdXI3FWqX_Or#cQXd-QoGe@JOzDjQ(Z!$+tK$~B~Xq4>@M8hYt zN24kUJGOKQG~U45U2D7#&hkd1Y#$|8ff|nZ0dIFN;hnR3SA&vgQCFA0+p(n~(0CQ^ zwbyqZlpEjJjYdhSNoo2-_GlF1QniGH9YMMp8lNB^>oK<Ek4D+rC$-Wi4nwNO*B?Lq zHg7ZvaX~{9eAB;YBkq-`Gl&itXSi04M#)_ycNaArQH5)DF2*vBy3LJ7nYf^#365pV zcnSA>#CPX!FkbTUL3%XGwg%ElP{R=eKwN||ne)|Xl!*%(ny_O_XuE0{jk2wpw29Pk zMD}P@CBd;JQ>QaWqolSoRqPF@;fSo!s4Rl1dafh-lFZR4>1B9z*{exDEb%{-U^iUd z3l4OnQO1&#hY-BFP4+{d7`+Q3kMYEY7+Ye^ka(q*uy>a7utW~T^C14DMx%@cH0zZR ztR;O`;rYSTtEsz<pFUKLMoF*F`-4vz)NsVdsO{H*(4$c%E@)_i_s6Ycj)umEAeLi% zcd#0blBXBm=X_eCh9fqEm;&N#5S|4Zn&5rj_ctA(@d$`J(3ZT3u_ay~@nTq>&KQ#; zvPPp!Tmiw>r~6Dk^<|Al$<w4fi&Dc8`{Vw21*1_{V*JXpKtmH8Tbg(npOAOMXw>%@ zjk-dOM#)pLJS{UON8EvNCH_^b(I^uaG&I4{D0_cojYdgr*S&!w_%u=*t7?9?`?7Sz ziyG#NCh>Nf%$ae~-~&uu5MQ=fHeFjng88sL4hhlF1jCYBKj$Q5ZIt$6SjwPgLR&&Y zXewZY5bGJ9#o8$C#jw;R#*|HHOGpT9H4ekNjN7m_N_#OZ_XK0gCbT6agti(h_gFUl zr*XF%4Y81rdz&%I?>?a|AtAIS?!wxr9atNsy%?5OjWJ~t+7c2%C#k}EpRY%@G8$qb zA+0lGlHYwoTS7u;ORU4XrI)ZaN_#OZeFkI7CbT6ag!VLw+Dr5fez?E6yF8+hq^d{_ zv4jLuMcQhVaIIS1+^VF#80Ph1Pc5lUiGmQ?5)wjNjh<0dnlgES(GUv>mNTC?7?b>N zh=LH>5)wjNjdRhC)E|Gl(GUv>*4Ms0uQnR;yVVea8e$0vp{+)84;l@zkl=lH>t#cX zhWzdm)DTNZ2yKa^EioEmA;I=zT*FI@hWzdm)DTNZ2yKbRSTA}2)<$VBhNZ1#Oxc9C zgoMymL$~c>F)2)X0EXpvbRK``Typatb(6Vmz8lm{`zY$U{sTQ)NqRNU5)jl#d(M*U zIbFQekiJ&(WQjJI<9r>xb00Ii<h)48GlNgOfEmlyn2#!g@GJr0dIQY3my#KGJeRn5 z8J1@h#^i{{KqNEndCw9MtPA$p2Q%)aWX9cSNW9dLCo;z52)yHzk{NfSky-+Rb=p3| z8N$xE8x4t<8uDaG4M$+cy_C$j8;#Tw5WF|-vnXcVOUaD8(U5qlA<w?la0F)DOUaD8 z(MT-;!Pdt<A!Ek9l+3teM$yH~u)G^k!x5NqFC{bXrp!}IK)BujZxf}RxWbrmHyRQz zHRK(K8jj#>dots0G*U}INSlw<2?>E2_o9wh^1*Q*YB++aN@m<m%aB@<d<fzC56rli zk{NfSA#ZflkT*!lhwVQw<6cT;+>J&WS3tPl05k5TWX8Ru<7HUhgrz*}TPkMUOUaCT z$+HB6wE1Sny_C$j8x4t<8mz}0DPl~Hz>Iq-nQ=E7sU;w!%{MddrDVq4Xh^)&;Qh!k z2WmJ1Gw!8i#@%S7mVl5p-^{p|k{NfSA@Nc}#$>4B2)yHzk{NfSky--6^#*vyDJ3)R zrpzT?YRJ0*H5`FagHkf%Zpu8h1cd7iy4>Blv?y5{6~-$)05u$e9)xo&_8;Qq3S9ff z;<xi$jeFud=a^?7pO7~pt;cZ9L~2p_Ai=f6(_XkJLqo0)z4UdfnMf@GVb?%&OeV~^ zj#rm|%|vQ}h9<a{d(#OVBMUXOm#)V(6R8Cnny_oqF-EF23cNnrOW%)~1QICg+d1Cq zS_X#g+WKVFS!#*V(D6!pRU=_E(zp<>Cb)ZG;t$Dat*4>Abo*E{ky@ak3GRZh@8?Jg zH45f0@RI(6`KTZOaK=Pg5Y_~>4}JdxS02;=<9q4;s)8{7BvK2)n&35T*s@24hW6rh zvok-o1U(|vNaKQrCRj_3d=7JLOuSqxlMn61^0#AIw)RvI=31q3K|>R)(;wc)v87N$ zd$Atdu`IhgBAZC#f`%q|Zyx+{7pFlnlMn61`_axQvTYBDf)J?%8k%4mvwxdj85-J) z?TQ`CvMroPq#9{l(9i_i%6oQl{3^LtCQ+;<+Do3o`FjPCYNQr;X(Da&D>Ss1Zs#=- z6_VW?>E1q*UTBCH_ku{+CO_G!m+tM89!I=n_lWd3Q6w5VF7Xn*G=D}U*_D#+?V}e7 zeWkMreHB9@rHw|iyC$!_7}hl=o1lhRLL#M&MzTxDXo!V`uKDu2y}CkBLo6YY(gsO( zI~fhJkkEIq{BAXbpoUmNBBc!?JN2{|!@4EPCa58nkVt8xAv^W77sI+m%_gWJmXJtk zqai!>v=_r^pMjXN32KNXBvM*yq<i~#e~6yxEfJGP6p~b#Crhz}1hu8FjiTgQnZ0CU zA;GIKcN%*AB(*6~5JFo*BBgbi8x66LU}-+t);@8_?*_=&+jptSxhB%EL6Uu`Mnf#r zV68MyVaSL4ZZ(8pKEx6dDQ%Esf349F3klv`&#mV?p1lj?sV|Cz(3X%$X`_+s6E+%R zA;DI{JQYJjem6iQ1U1AG5-DwvWK2KZ+sAlGupKmQEn><hs3De+NNJ;?+xFDL6sk9i z^!I4`U7btuA3Nt4oAtZ3s(v^8_41?%c+V)*!uZwe=DCe}DILuKaWaV4=RDNQvjhY+ zY|r`l=+33fF#FTe%>1}`sX@KAhn<pM1xqZ#yIO?NsJqPgmGdI8bIhCNTOaHd5MS=< zSo(X1L-O~o9qaWtA;D{Cp8&RjxbLeixgE7Qujb-qxO@ZF2tUx(XgFdyi044Gs@*Wp zoTrw6U|q1!K1W2IO0BvN%584O)#@%@h6i6etNf>aos5Pf<{{_1bsLns1oMOD>PlPz zA#HvX@r`~dW-Xt`8hRZs!{`0`?edmuIvWi~Tm@nYM!XKG-PLHMmVn^BX`d{w0kHxz z?%$i;11?@_eBS=ua?j^_7!5}>#Jlr;APOLukJJ(nY<=t#^1&cRVaELpvkSt-OO4Y{ zdape4SFzD>#8XJsdJsn+yxf#|Y6%Ew^P^}F5Eo!{;xC;ze&yn2_^^xZTMAR_i0e^; z--4J5!m|W~wE0o=I}n>dwCK$7D;KZm^?$mb$%iAFBUP7z=-R2ZX&F*Wl0qS*mx!V# zL99W}&pMdv8Eii2#W2fbY+KuEJK`W*-FrYhf%OcM58IRZgzF6&fyko-ufr+}9WTSI zS04@-oR){_ucB*_suw}jy1h+_8fjbsA#HvX4FQoyO+2DDcRRUw8Rq?Q;*D3N^~&^D z(f+u)3sKvDSEsAdNaG3!=_R7535c#e2IaOl<2o4^FT=dg`}7!OG#v36QneX#^cP^) z7W0u>0z%sSDC!8}E6mZis>R)BE?$P&UY*_5w)2j78drBJ*83cT6++ZVEde2IeiU5+ zjq}kaHeJJAbS_?orPXFkj@TW<Qy`85;aLL0^#<3Vr5=x#dOY^_h4D%cz?d9yFlIA8 z#2kGSwCzKN{D`%{cAlIoe&y|jzq{FtW09&qB2~54jLm5;hUJ~gC*DR0t^;vB2yF=o zH`A~h#HcT~<W51`uDuwRcSFYHh}S?o31Tn^Z3&5VJ|W^=`wn&@wL{yky%?5vT*l;x z?a){YqB{s}35j$*A=(Dw?#AP%KY*56doe8U>Ws+|r=wo|0{6$+=nb?bB+~hW=zI__ zVf|HawA9**VHtB^Opf>hL@f~SV=a!hghV=@5Y<ELwh$|XUc`Pi?ZvQ+oiHXxjKbAD zsCmm$TeR)k5)$crLi8XAj?y2CmRfr;EF(pX$q^TTXoZxW2|`;!BAri&&IhqKh~a3d zwU_8|rhzdzf~oodsoEcewuD4FpAg*wq8@U7J=%8d#W2f*t5_wqc5dQZ5HF%_e+O;5 zwuFS6n-~CMCtB(VEw%PynDvV5?--LK&O{!1gZL$S18oV3bUq<E1;j&GJ9r*;vT84e zd4F(jf-yOw4pP-01Zum{5KBm;^9j+nxIgCOY3T^G?b?fB-shZ~poSyfMyg)Ks>yqr z9Bnkj5)$crLev_>BVTOE70^;^FNWD(bssapXgK0Sr0OQLC8wh|pt@K>BAri&=7RVV zE!;(DskIlwY(>Y7JlAMAf@QuKGrTWjhcq?B5)y8vp&wf6XV6mrh$nsR#juPmF(ya+ z6TQJ8^alHb(3X&pHb06U1#u~ev2Q=rOM8hP*L#^OQn8xq3#@|B8rth0<9DR}ih0E` zE4Hr1iY;vk3D@J0;jBJ2G{LasR%;uLs8O=kKzlJPSGs0GTS7u;t08M9v=_rtV;EC5 zp)DaHwADD=uD>d2FNUS&Gp1}pTS7u;t8q@UhDCcZEO#(t$|kfWB!spay|5N%D%Rp? zFNUR!VoceDwuFSxR-=eDMSEjSk@jL(T4%<TO=wF<2yHb!!TPHgac-3MVp#eN#*|HH zOGpUqY2>t*=y7E(W6CD9B_x<CyW*EBA0%tlv=_s?K3tI?sjVcmB_xEl`H(et+KXY9 zGgnqHrffo6LPBV(@j<e7P<t`V`pOj|j47MYmXHwIY9#kyUVAaj`;IGJ7?Vd7gwU3d z5ZY?UT2Af7FxwBV@?}gOQ4m5~LPBV(!SSn)abBPHVp!T*#^ezNA+#kVgti)7DJyNe zSWF6&K7(QTJ&I1kNL2Bz&iPBQMtIk*9qBs<!_uo!&-GEKfWR15{<GN+dA&hMP{Xd@ z-3g)rh_~=oq`gFsy|d)W5>MCdl)veyL-M^pVt;N^MK6ZsnZYM+!TR>=jy@zm3TLEf zOGvohU^Ivs|J#xqi5(-_i(z^8VN8yA3#q#Bvn{zBb~Z3AoLEA_^#+A{IM<-#pxoEH z@%hTd%dkAdQNs}vk*WzeZQ*t7O3{{(aJ|8EAg;$55I^kdVl*UP67np{m>jVg`8cTF z`03R<yBH0zgoNu2egbjru2+g1ZsGH;i<e<}rly7?nu2%$`wjjxs*TYQOGvoh;0X}- zG-+8{(w5KdE?$QDj>C5YYB=IoAie={%7M#GnTsVPTyJn9h*R*a*rWsBKU};F%R3G= z98nL%-5?GCp)DcddV{(NaY6^aN4a=Kk9$EFlOvd_Q=#!y`_`sq5KBn7{^KwZ|3l6% z#f}l}#jw0{N@{KY@e*p{JB?eGPCH<^(U7=8!u1B@K>U8^E5*^b@V(Z>%dosVQ^OGr zL2Llga8#STwuFT14Op*ocw>2PXBVR(@sf}+0LJ8qXHnaCptf(@)x~ItB_v#L@Dzv_ z>>Xt^Bwi9SmO%|iyaD3>K>Qmgo@h%*xZdCj5Qk$lYB)|j(OwM8m<(fb#C;&XL+kTv z5ZV$Ft~a<5#NBA&df@yL?ZvQ+6fq`8d<NndAhv%r)|9zeLc;Y13(!*cL`%JVw%;3= z6ej%#!;ZkLe%|&wJdK34+KvJ<EO!*cZX{I^*s<<=$$efUVKgKzdTAmZFGYgVR2dEJ zCG8dIOu}f0g<hIS$4e_Tw3oEIq%#SlAr^XRA{{TS(9mAGov)b?3pF&6j+a(wXfNpp zN!Lt>g<hI)BdK9|XfNr{N!Lt>g<hI)BdMW=_L4CG(lrxep_e9P<QA7ooy!?|$<q>l zuONt;nkW`}X@c5z?k?2OUUHw4t{_qku}BIzYQQkBVY+&UcWr@4=q2q{CPBau5*NKR z!Mc#HTk<rtm$bX2D~MD>EcDU@>vX!B%G1zZx}C3?5DPUl!Fw}Z73Q^Y+DrFW6+}U< zl~|~u3AQom>NZb9dr5yzx`IeG#6mAku&qqj^?4fFi|r$yOGsA`)G+OpSm>n*Y4e%i zwB0p?_R_t9CNRT<H<rINTV~!3^gSr|%ECT+{+uGsKx}Tx9f!`sRB1x)0;bAoXo6v_ zCt*wMgLgHYt&Sa4&WmB)5@i!iiC98HXsaPBAhZ|5x<$<<s3De+5ZY?=!T8n9IM-Qw zF|2!rY{Fd8WQ9mb2yHdav1h9r4Y82WJ)HdR6Vwn(NC<6-mG*3PqahX&x~G=keS#Wd z2??PsAuEKm7sL9ABb%UxSVBT*t060$v=_s2PcWuzLR&&YXioz>i(R~;$JT%`WfR&G z5_120*9yC^-F!d8yb5g9B(>7|q${?}6SBk=5<**zq|A+mSV*um**a50e)kD&2??Ps zAu9p37sITT>}42JHlZycA+*)_9{1n??BUg34C@}wBML%LLo6X7wAGNcoZ5?Fwi4|1 z8Iwm8gwU3d5ZY?UnpEw@Fk3r5y)Y(^C<vh~AtAKY&~3X|ObV0rR}9PVQ6wiWUV!l{ znQ`ZOD28SI74@WNh@#P$!{Oh{7{Br?0YMGBewQcqa#u=qGOI7~iXPW{NuDgh^F?>V z?9ylE#9p_)fP}1P@Cly%ITP<{e*xiH0z%sSC>n`(=ch0l^(scAbi549x(vqTh+5Fd z;Vtz`b4H4?1cd7iUIFnoX8Z0pXQa4zsUho2sNsl@aN5F7to^vmoY<=@0l_+LR~xPY z@sT|>qGElCtdpUJBMwKZ`d|!Tq&Xu+S)ic_Y4f9~8;E@{<9@w4BgJ_!AF|$u8jg4m z#KjoD`U&G#o+TjI`q<Sw8$h(c9R2ecjneTl%=K4XU&NRkF&snz#DO?f#j^y2>kU3c zz4{ksF84Eg`&_)#ko8xL$q_ja_$wW6PV7~dfN;G5b{po81M#TYqv+z5d~h8ZH5|d( zJ`t&^#)y|^N%A3twE0o=Tjcyk<opDzXVCF7EbHMUAGZJa5=0vi_nR|PT#pkHt~Yp} zR~IGtHAbVf7sIlyj~b3R4#d|WZZl`3C`&-N-k?2*w=sTojX5L5#Y+uYpGXZyya?iZ z5Z_?@%CiK7wE0mq4#Z}RM!kj6C><}uvd)q*Ibu8Rs6|*O)4`mPqAUU7dIQv{{DoM5 zHQSt#;^L)-tQVz*BZ?r}gP3Yg>{XV4aJ|8EAlhP%{)uEws>DkTS;a~XM?8R>pN%&0 zadTp?vIK<d4K7DZ{VZDQduRE*fk}JPe=zI_^f`s}t>yUrs~#TzS$XhXb;?l^9(F2E zY~9cP{&-~eu~ZV;YuJ%I*}q1@vsf=f%-F|i+m0}Om#XwKdI90yydrH$!a_vRI-5Uc zT;2yGA+(ncn=2CiZr84yN!pYFd5=i)B>A9*p?yMoA#A*Ot&l>GD5e^k2+AX+so@Ci zg|LfP=`rUe{-5~^2wnb;P6z<_mk?4*=%vGH&LvePk4W+~m~|;hVS05*6rw2ukUCv| zY}zx4oJmng=<-jlw4rr*l%xcWdQt{9B}&gkk3^Z8a>v81%@wUXqG4IW3ofo3l%Pcn zQONSrdiGi=BHG^b7e-^rphoHSp;zbY?C<hz4l+so)#a?NXw8IYQG{skxT?0j&r=PZ zj|c18`Z{w0O3=G*Djx;yb>(bJjClXY>KX}i4@zC~2(JX0q%`M=h4-Bhtv|u(&)yxS zQWa@0Nnw-2!h6uuP;qHOt_bUbRghGP26KCDabHuKlg|7BXYSTeuL|00QML7&d+7F> z2?)BlJVKSGm#TvHdSQZX85;K7S?%A0mhtNq>#HUzYDqzIE*92ZAr`!V?>y-mN{N)v zUXsFL{4QCIgtmBustc5G8rn;)^vGZG{BC;<ZGWW+ZPA33tf^zsIe6-8g1>%Pr?2m* zc6a>(J=wbQ+|`ZB`iex+3(Z>Q4*}7x-SVRL+G9EU-F4;tA7~a3cskB^$5X%xJR$42 zG@-9y6wTW8N^TH{r}3n(z5euHwy5jMV?S)+mrYc+&Z{||Q29@+%+zsdLSMru8r)!f zuggI6#5zmub=52T8jWrJb}#$Hi;c(kx-aUKkFe@qTQs4sG)@-lHmKMP8v9{oruK>+ z=X1ika@!5f%RX@{2&_xZ&%~RTXHkS-g5AE@Qd|jQCr{Z_Uf0cTZ8RSFC}>xrk3Qd0 z{0mC3CkP#vCUh$iMca=)q*NE>aS`5Ywb!7ttj4+*8<u_IwPOw`{ST?S0Bbq5MH7DO zb8YQzrTHLO?X{PLzuLcU+F#lB>UWCJab*#vhl{>Is<uI+J)T~*m*i>as$JC*lO>)* z&i6vjuL7YhnvndNz9hN`S9dh7?p=7M)?QLJ14}<t`^5Vw!No|`Oc0(WDNPbmPNw&X zR&^az{56QBJaJKZNgbQ?<<@{$je6Ax#O_#iujA5$)HmDCH*7e**Mq3-yRhnBd&#{r za?STa&#<-8_+G=H(GG-;OA~V6*q-71TCe8b27wjWdF>_l{Lt%mRQtq9AV#4)_Q%_u zwrE1`f73HW>(Kff3StM|IklIxT@5$XO4|}k3`Prw_0IWrSaq-C(uA~Q_9^2wc;oDy z{E2wm)?U#J+lume$0zzCMZ0iyJ9KHC^DK(c?Qs-c4uWk-L#(0K@roW>YM&T>NZZ_L z4@~XZao(+_g^Qx~rscFf!+Pv$+`TL%%hoQ6ZW`ThI{T33PygOLy^;_whUw)Kw{&~V zJRy(3+ypJ+#ahWQTewW3AOzb%qpk?4)1;$l%;`rUHBoe8K4)4uiI;a5!))O)iGmQ) z)@nlTO+!Z=S6yW^ev7#x?ZsAt8f@V*iGmQ+U|gDzHik5F;NDn5FKV!b`+0&Ij7w-u zFpND|E+3|alXxXhY~e&Bo1g|Qnvk56_R7PwaMUoCqy*Vs{X9X9kdP82jdO%uy)rEv zHE5AK#uo1932KCd)I>u^Lz?4D(D=6-<{@>wY>BAH7VhT>YA`NM=yoiMuH9+hwok{~ zw)SF6WUd=pxSuDe!IWr1w_{QC{eEYeUUM$a%+y|N8K}V)?&k?p9!QBMq+KB$MH{cY z#c2HaX<yUANxW={Og_-U{X9Vp6PF@%JLYMa7EZ^@Fk85vCrmz)ln5cIGPJ%{CCM!< za^3j!`tt-eLPD-CX|K%9(<@U#i<Cc~UVomTMo364A&otwuI_qmyVO^<s6O%HhV{8p zhvIbXy~Es{{U%E9W!*8`Bj5Jvj(E4nEpMJ#zI83nr#=evE6-sK*+=-V_F|Z4>y!2g z_JL#Zq_hCDCfbW(o|NCSd(VLQJ$lZW7#SQ6LdO*n7oR?(T=!v~(tII^Dm*C-!EPk& z#jrgoKQ<bUxERC<AT9?%4Y7p8(&MJ1x8vzaCxK{;XRA*!Yofgv=BfML&pOR$IAR@$ z%bFaW?}S+sYKSEyb}W9QJY^q4gLoPv&i}(4i1uRGewPa8XCfv?ECjI##LF0Y)|QYM z)aT9ef{y2bUIgM@JSkm|SrhHWu>JbfuZ@NyA`s_b59G((7YB8*gv6@97t5R4@RYP! zDDzjbTm5V7z0+O{^D8Jbp5?ayw#SZWizk_bLEMFz0Bs40_NSK1h2IYZeJY5n@od!| z^Ap;OVfz&ndToy#@i6i+3o{vb2QeCA2?<N{B(}eS=#6J9o`k8r80J?{Bp;5bLaJ`V zisGt7Lo6Y&@woX(K5({S{tL`3twPSV7sK}JQ?@)Du>@E57VLq12v?Um6iY~)@bx=M zd3+Dzk9Z3{6(y*>80J?{#*Vf1$`Lms=Re|2`<SH6#S#*4c3+&-t6?CH!H&iYQ4_Tn z!~6=0+#ink2Z&vm>HBX|cf}GC2Tfj_+#i1h@doxM9*H|jdogUkf@1G;NBj%KvmiF( zuI057OGun{>Z0U6e*#2vyahK*+7gME1iykJ?Uf@w0kIh~uXkexmKtISiJ3hXChgT? z5F7B`%x}MHFNXOQ6lp~ru^WibLEvrGw25K~iAGK4B`r1IwE1}1zjimHq2qP!`S#cm z6YF)!=jwJLg@4<zj$|3G$<^jAvf(~S&#*lCT@eLGXfGXRO#F8ybjCx6X&+Nwj_;4X zX}&r5*YXO4r{PJjK4$gp@0CRARj7}d$}B?7X5jvi@pkkwGh`-)-;9!RM)p1)p}i2c zBex-e3!7Xgj>k!xh}k8C*{W@6gKyp=97X(!*8T{Gg!W=fbnEZghi4FopZ~PQwrWDy zHYU(8gpSvG?O`-3hyoR;;VcriM8l64l$UJX$K|77fRwOaY>6aQH51Na+b$ti@9|!_ zVS_z0G<3XdiR9{55H?Xrm9uP*H8JbHrRDxlC2wBl{*ZiVFWVB?(ySm-4QJUNYl8R6 zq6OPfkCQSlSj6{YOEk0-zwT%6G>@==XR&RUPrT_gQbNbemT1v}kCjFip}p9ywCK$5 zuu7`32%AG%w#S;N-+Y$2o0*vO{y^BjKioZGpJZ&F!fU0y7(V;*MMjU$KG}q`*n33? zK6lxx5T;6}o$cVZ@<O9gb3U{eThaeF;o`E-(L%U9g{ji<^0`#XBa<lb>N<;kk`=<` ze9Diziuc!w@)x7+J?Ym=<2~-5Ssu~kmg;BgER7qT!!HouRQ+(H<?*%)=9CA{8;Gkg z4YRNK%N+t@X1pT4@%rj=`%a^(AKSDveq{DrCcO3U|BZ*un^iu((?uX|z&_+Qc(?5X zLVIaFpZFXapFyKO2yM~C=F3;aBYvEnXf%YzYakj1`Os<iiJtejF0H)tw9)}5HqF&- z{#ATq`_<+4^{=j8^3Sj0Q>s^&#|#@$J#N)k@rJqh{oJdNkNL+RSn7FXRcZb5y>r^@ z<sKX2+fQCoj;_2mAf{}6t2p51fu)zWjLqq|G;zX78{+4_T3vqprlHVy=DSVBq0Rc0 zipP%0X|GorZ;Xp8*Oc4$zP{QgPJHi*;<`&NEiE{5RZd$pvFfP}aqe5>>6|N}(Qe6~ ziU&S7pj7yLX-<1xv}|Midb_pd5wowa_KBPO-adWq-1AHQH#E*`izeRKu^}G#;p%eR zFRy^cf#?3M=b+{1lyZODBd@*Y%=<e2uKn8b*$>}P?GtA#UfJuJBTg>e_UZw7ZP7&G z<c;yxiL1+JpF0>DQ=`eb;`jqgt&Z!E*Irv+*cA8OvBuP0pEzjF*xckJ+m~jxKRmB3 znz*2_G2V9J>hh!q2SFn~eP!;}HoKPw{;G3cdo`H2F&^^WDsxZx#A%a<n<s#NvnOMv zQyV-dY(XpYd9@9%H{mO9=ZMaha>J+yjm0ky&)@#d%x)jf6~cN=7*2Y9dB*VnRr|!5 ziN^8J&|VDRbm`|A#Hk<-tNLx1OA|u8IJ>yl+|Q7zX@SPxR--Uv&g7h@t_V9f$^7x@ zY*+o=^DXXNS^USLo%7dRxH|q<VPiQOJE$7hDQ-A%qq$b+?N}3Udtp;~Alj8E`d96$ z{P)8T&NtuuTrb>nG43jJ-`&)Hb&Pw`+>f}kV%!Pl?!p^nlT-5@j%uC%$JX{a?REFO z)$s?bzbZ#(UsdfB?e6QBUw`|K+?}<C=d?u=xU*v13FhvKqSHoSlpp-+tlW-0UdU;$ zrW;nrElxp7t{YnI6TKT<n(zASKj*G|``w(jXyVd?*T%#CyRqD2?)Av|Ut0{wHynCp zuFHF$<+Rss->!~ZP25m^{M0L}ed5X{XXOVke&x*(ziXA(7EOHCer-JH?XS!2|8WB} z2Hn>`-{GoUujUOK=C#-4m8;|SJ2#Zuue+k!Ck}7eI=^PZ<l^JM?vd9PP532v#8ao| z7wo%#aa6ljdF^%7#MSZXr)(^@J!5dSPn`AnG5OrJe=i<)?%{cD(S)u&cuc^*zfB%q zS~HXPN1duUr*Ahk?xLkzVhQv22j*^1?x^qMJGz_<;<u>np;yoAqqmOli?L~sKwpb@ z0`m|1Slq}B!!lCDu<U7~XG&myl(U3{>`?LuqoL!K5iio2gwYTSy)+>^lst`!RJpxm zE`ODT_HsMXevXh)E~ZKoZe%LFR@%$$yVGM?2~lAB7_Y>|uqNEdRH&i7SZX|Vh;+?_ zSm>n*H!>A!XfKuxPfsFUGa(jwX~Mo=abzmg&|WNOo&rU>W<o6V(u5nCQW~ZvYA?6r zRF7pT!jy-^MGZ~3ktszO4ejN2&g!wOkdU~jp$RuK6%yLZ?EuzeSs@{DQ9~1MWGW=I zm)qf{$Ff2~;-ZEoWCSTK^8!Pmm)lXN$Ff2ViA(Zf_x9<Lsf0*1bi8h7U=4&RK^f(u zh9=wyQmCQ5+zv-QmZb=zA#qVd6Shus4nYy-T4^t72T9jVh=pF7aPt(22E~kq_R{UH zCd~RP_8|p+XL9m1?uzH=NBuPXt7`lElW%iG$NrN(#CZuZ_^{^X3Zmdrwl|&)>%L{5 zAZ>WT0)A(f&y4arG=#u^E4?a-4)5%l-)-TZ`5PAO>5aqb_kLbCH^O!vyh-rC+AE5F zFe8P0HuMRk3jgdlfGsJG>1{J!ZhTM1`s{c~N|;(w>BTVzO?+Foi|NntU!<x&u1PZ9 zhO)8YHl}QBUEmm*M`$mEtyf6QN8I<^epr4%uiG*I@k1OHiYW78hzsF}r+S`<@b-9U zhZ4dZ<@^rBAP{#5p}d%?F}sDt77+Y1mn@C<NE5Hk2g6!V5d|3o7&^oeRznkNwAR#i zdv$r;WvnMG8%=007q%m}uAF{2p;P|;<FStHpUuozxQvDA@+a-a&enjK2x1rr?Zxn^ zH!UmozKZMgHL)JVLtFRGU%KafqaksHgc}1K4&qY~2ezDVG$dXU>*l;yZgFi(qv43Y zAlksY;rDx++AfxmaATQ$KrsGhAhZ|5(TNMoE8gADXgK095G#@E3-Mp(P%I(g>h8nv zZ1Q-s-2ZUBv=_s!?n;=o{S1tguuhFb-7<u^KUl+&s^nhr>4Yed&|VBnN_^t!sh5?g zao>aA<l3}Y9PhJmF7EUC<+hJ4itp<`ue|8ShGqVK;h+9%evhK36rsHse*JGBWDt`< zoIa|$%SDNX#HER^PF@^uJMRPJtv>!<N;ED95qizM!+QC|X0#>vGuJD^?1H_wc@=fL zVt=3XC`Ss}me`hu`Bz>^*o;6XF<F9sa^m8U<h-sUC)BoQkl`E_wvTcqi;M{4gnO(; z!5NL|sgAUe=Gk3B@Z^@>=Y54#X$>8hobMuf_8c!+5np+#V{LPqkv$8mnMq+bq4Plv zO-R_Ls`6CFW=6xFlGVy+WE0d7i^-GuKBpywwi=bEI<_(z_AIP@)6?E=y{r{Vmj8q> zS2T&28k&%>C6bfzO4^HIo>??{V{4<4O;AHDAtAKYNKW`O8e$>AQ<-MIw1?4<-+h7_ zVhIVMlYH2d3XO(XNZ3=d8X67x-6yCamXHwI5|yVqHcU^+l6ss?P(v)#;OSXHNZ8Xz z&)AZCf^`2Y)|h)Go1lhRBp*TuZ8ee;FwL1xVj;n+(6;LWqanZhgye(qhJ?_TNKW!J z8e$>A(j4<<$!N&$J|X47l!S!PmPk${H5y_e!CJYk?R29dzxxC=#1axhTSCrg)Lsnp zPMx@HrqS?-ic=k#l8_MEYRDOl+KXYf5+m+eYBW5e;#5bbBqW5k8cCa&p0UMvNl07E zE8-CaA+#kVgti*GZ5In^Y1<i=-=k;&dYpUlWcj9fvaDa_o;hvrW1jlh<D}21e+01r zM7<oJUVX21zkap6;3Ry*%OjFrt<>w<OS-+5TNWQVaGn{h)pH^Dy}K;lv1y(exlQ}Q z($jqgb<<vYzQrewUASine|i4#J<9gAZIKf7+@AEDcK*DQ;FG?6R+lFkzt_I~{+Uy% zFgke0?8(@-U8jm8f>RDUwLC7aRkiymyUHt;@M|u1Jkh)%MSq%jZ`VE`&H|ymo*Z4v zj7FNLevd#I7LqYbqrtIB#uXAAzqIcRw$%Cmd^2i{obOCVGx^?T!`?W&00m1pFL~4B zyJ04gXxR5b^9HHj8fzvziy~x}!@i43vP`OQP2Afk^OU@qCf6#1Fgcg^S9KL?COnHz zxH%SP*{00Dx_+LRTA7vUaC^s65Bzl+b$IUXy*I`OVg78<f_thzYO*Z8<?}fveAMI( z@humuDbL;bcRXL60`ENjM&EpRPJ7)wacTTspSi}%Cq_(ZQ@RR&v#Yk|v_%sq|Lv=I z(9LVh4Ig;|8W+Qxe{E0Pn$up7-Mu7!{hE2k%O^%Zxw*){WjlN2wM7$~7q5?B>HbOi z(0l&_jehVRh`(<@Xs=V}ycah+dcN`UiJ2SU$}PO%(pRpzYglQY5B90*wA-iU!sA=3 z^?cO6_?@#^Bk_9_O##93xDJH&Vp!(9d?M@IkK@nXh;e*-?g#sJ+4aqE6#W5fQTZ3E zb3cqFAh<WY_d8s<d<AxsKY`uk536%Ogs@)>sg<7lVTp&aO7BYSSZ|FrShBBu(gef> z4eodE+qH2(OsR$aC0MPsKXyCG&U6!3KyX+5loz;Ks0^YLcHU3ot}W%oFwX-xyT=|z z!x2w_xB$f4AgGaA0>Yl+!BML3Ky1Y7xl^&1OvlTxJ@;cTqu~hd)n9|vb5n6rh`H|O z+$h8q5Im(|%L#m@ei_6-tm)f?b8EF1!}b)9mPW%79YI`*lR|!@&iycP1%y4tV=riA zpZkHgco6p7kLE_h5!vT{Ag+M0r+9FWN%pxPuz;}Ve$+P_j=<Nm^ZagjYwUyMwMs1k z!Sgbn{DE(&qd;JNZ3!z`O}&zMsljtUq_#VPr+DD6G*X@WVd4r1p5kHekF0Y)q_$IU zQ=fI_j&elSxgS{sQ+4*!pWq(MI`@O|%GDj&|9zw3h^%uzOkBtZOHc@2!xo3W2aT+A zKj=jb)~nAynrk#1k#+8ei7OyjOZxYp1C6Y6KNv4Hcz?8hezwtY#HYBU`k}VJg73<( z%u`E1u(r?GYZf$?foO(rbDYDSddiDo-scSuS!gsI!Lvo?;iQlka8d|0QcFPauI)W@ zJ~Vcqmi!&-QQyWXv^rjf*<M9Qtuz{r7>-kiF2SioYj-v<8mT29*v7Q)`2jSJMylRK zoA?CQ>g#wJW-H28o2hlgN~EeO+QfI&xgRF3fM84A`lk)h=!}+nIa=xiu;(C*mnT2T z{o#m>b-U!h#~*tgz1HA}f%9TK%~q^CFi)>}j^g0y^;PZl)24Ybo?6W_u3m$HmKxsI z_qsjz4?I`P7@1vdX2)CYSkLy@t^L{?<8X(9IK>d!>xX#!nwiK4S5|1kKJ6t>GZpJg zlBXB_bcXz@HFpUybVy&cSGKR!;hB#dgVsk81#d<niPy~=Y%x!@DN$gE#K7NtUN&(h z;U?{|Ml{i@&`1gGrNh|-pVf3qTt4LaQRTyEkZ@k>(-fx9rA)jX=S%XDT6Ee?I9b(` zLFjnbmt8(;Cj1pbj<D;1qG;Q(&GK!Z_+;wuKIrQ`U+E{L&1>xL!+}e1=0r3b1hX(U zAhZ|5OU}d2H$yD{psyh=JGNO#d);`fjdu~AkbGiUKuBDgV0gj@pOi^s#a7EvMq~8s zQ;OOvimV3rzWzMn;&KG(y(WEvl4Z}SH1LG!yhJbB*$7@gM@U?nkW^V(<vg#w<hnin zakDfZmQYvM5X=WHnvknY+Lk#>5M`d%UQ*^`Z{0mD4@;C#=6(P5$<%QP!SbL*6Y_LE z26Pnl#TSky;R*R}oTaD77C4U2^%El|er3i>+&BYv#FsuoOMNwVZfP%uxf-JV&C3E} z0nWMqFHV7aOnr-v<Iy4E#!HrgsKVEvextrc$9PF_HN?;!vyFx$TH?9qBkao<%DrA{ z>?I`JxDR$(l>Uh4-D|K9OM5ZQ+1|6K6@!tYtZ&hAq$niZ_|;D2<0(A7j#b~HW4t6d zYuz@kHX4q=Ub0eO?D4u-eT$AGULhf)ZBcX<h!)t3(@}kkj`5P<?0aFzLZjh`OHqOy z>)@0$5WH4m2?;lz$S-I88&9w6u@6goG0as2n;Ne*8jctVVt0IzZGid~9Y-KT!i|e& zeT$CqlHi&N_UBBkBeK3l$C1>KkWt(y^ILR`S5md&WIM9$h^%kXWf4r(!4GryK=!xj z8k!Y5ERQk!*b#b1)WO&BzQP`_OK{?e<dAVORhr<{<@kOSeTgz}i(PteV;`3GVwm;n z%_HnggCl+o;?E$?RNtawTp_`_z<CPn#Q`xK-x)nweT$CqlHmO@al}5sOv6v8?MH#o z-=bq&A;H?-x97gl_#VWUIJK^a_bs}848i-n?WDbe8Iz`{S93x93Iwl}#6=BF@IJTm zIMbl<9NLmW__Cb#V%V<UYHBnbk^L>YRwh-NVCyrkAzSL~Z_zb1gk6PZ=kXko{Vlp? z6$IN|&dOm-Ci7c#wGF}5baH<<BKuo(m4u8ZXMc-MYP;?Y9MP`D!TDR8ADq8qz>1<? zTdUW=7VcdW@BDg0dD2HW;<;qk?g!_eZFX?}q6>XOd+De1D5?dG+R(W8(iKJRwY}?_ z_=Wd3lm`yKx!NaAh4<O`8$WPGQCl>jpXaed0p9$30vg)u+#~14_2(@$8a{D8ysPnd z00?c-#96cF#&^E9G+DXa1K$6`Uo8;Yt9FaIapA_L=KA<VJ$PS;+~+S@QPdVqoVI07 z93Q+iS-Ct6qvi+MKU3T7==q_hme{fI!%>&)TZUZ|LV|xQ7VMc296hI(tOL;NOBntz z8M(Xqu3>nCv`_kcV)dRZlBZ?!BpXcx@y;oizH$Qy?WLbf<lVp$ch;Sn<6k|TgrMKB z^qZGnRUSn>znzl1Z~K(o1FsFp>-E%n{kD!NiuSEHHFpsHW=$TDAO7R)7`sEvUXo^y zd=!tV`?U%GaKW4yJ4j^b3%p;#-@PETmrjXK%tRih<L@gF+M<a|em^I^|EXnWr98?D z-jndR8HD!IIroXbB1KR9FeTUEl>vEe(ZtkgbK>_dSY}pZM^U>vQ*%q9(F<2sYv@(i z{<Zq^k5h72L+3wJ2Y4&{^_p#;__)#3+->!z=FWZDFF{S{a*Co~A^vj1sk!>dx%Sel z%6(!f%KNCsQ*#rL4{gzeUiThFCnH63ko!f@(AVdXw)5g!x}prQd%(X|-`AR&JEhgs z-1<oa^4ja0X>;Rm_W*&t06tMd9u7fX>On(WG_knW-1v-xF@k^<_*jtw;z|%ZaILi0 z`U~d9-#1xi_5%1s@|IfQ`+>|A*_kRe|B=k3*x$YPT5onq&B}NLMkY!>_PjlJni-j> zUzLtoVD`<8OxSrtJH{~!Gl~ymEaL$Z+AEo_v!frHK&nbM5B&dd25V<BwxH&z;8jW3 z99l0OcC$;Tts9m9{*|s6Nv&Vy&25_XcX4@e=f>`Llc3W<Y)c5+ipJ#|+w)p+U0+E2 z=gG}E{uMD}f_an}vm<7f1hXaaX;??bd6mm=UK?ZnC7H*$4c>pm-*OPz3v)Oz=3I=I zPxPPCCVwgZIP;?|nizG#n)v9+8<P2`VesbP0?aOHFU&>7f0($`c=<%n+dJm@H{h1T zbK0VbcG#hU`7k_j+=IG{Ij=nCyz+m*oR{_*_4%9_b702HCz28@uqZk2tXIm)`aAiZ zYhYO%rp)1O3GL<9D%zMlf++r}x{EN^sx4Zu0BM)?qRCEHRTF(L?lOM-VeT@mfhf?z z(=Qr!{?d4H5BH3VR+=#TU3-5d`7miB;Vkv5G?CtE@YJ>4_u?LINmb2+v(&HBgu4pr z>Y8h%^PyA7U9{bY{DeG(snT8y+j;r=RW%dNVy}V__9T=Bewmw8$qGYWH|~S&`z6OO zG#%zcdvUkyf{uJv&mc^Od`tZ*O;n_c1pd{p(lvwo#HGyLy4UbpX)o>#ml{(u;Vkv5 zDhazf+OH+ri@UyUsY%_<BJ^FP3ErF8ca-+B=UTATGVZ~Gxm2E|ew8L<1ugyjd}uH3 z$d(eUAW{uysb8fDSwUN=p}n|=Tk2H>k!m<g{VGkk8XD%K(#!4($Rwa+TOYY6td}KR zoo@U<n^NmLPt13@^U&PY-_3~^RWC-XHl@1jmviE}3l^7KOhkC}-1wzGEH2+OcM|T} zx_`s@sH0EJ|94bCD6jjTm=_Ni%CiBcfY`KoM)CAN^~pE?{Og>KYh3?%@r*|nV?6)) zYM*%R+Zn}UKrH;<*Ewy`#9^1tkB@oq-9+Q%M;@L2pAlX1&HvCTuf6K`emj1lDZZg_ z=Cjp4alylnPJa}{!639n6T{aph)?{DXiVGhpxnog?Vi8!ku&q!qKWtKT^K+9kPyc$ z7@GTRQIvmg`1yJ5rF&|hXtnQSxn;Y5nj5vMUtU`@(V@XR@gW;U19h>0aqyfOuU2~u zI5J_&9BY`k>M30#&e|)4_F_2o3W>rSJ(}fDUWu`NWeEwl)}0zcXfK9SFT|9F2^5CK zJ@f5vIm&2=B_v!w|IR@d_dIo3-~6AuHp^=-hSR<s8jheyeCvhzc~{pn8e;K?q>Zt= zZb-a=*@mxYo#O2tuy>c+Z<6W}C<vjw7#1&Ik4P0#^)^!FTO2`JQtO>3qt4Sm2`#6b z_}^Qd<;~yK2{f2FQC`V8HN%b!iL1Bo%6(Kj%72EZ@yR#87yq%>oO16kYL_o=zc@Z{ zid}*K`aX-}!lO1EMgO;ceePF1iqpq+bEmzHdv38A7iCRcw7{OQ;m)7<5_1N>ng39) zX8132E?x|CPZVj6AUNU~%<wkBoIxkd9cV9xxudEuVnsmw5kwV;(?ICBLc*Pd!BrNm zFat0}o%Y6fNpP?2q6JuYfK)l6ABY1%yrE8e;~5zt;m*s*I_-_|lHfkr5s%rETO5&f z+8a+D2?=#d2~riF_QrTg*nO}Z5!7d-WS#cLvrt09p3uhgYqC#!t8GS#>^@k#yT%bb zOK)Gy8Jv`y{3RA@Xu_RebOng(FlTUzciP)-MuYocXFkg(GJP)6PON}<6vX7@1T%?? z8k%tD7rhVSG@SN^`c=|i4BJ-Jo}T202au{=An+9;Jn_2|lS0DM?03h5_!?)oeFj2% zG0c6ik`G7ln@I2De7Jj&Dr$%&B;5H$J3v%pb<i`(wUT&A*nP0JJRETeQq>5=jmfnV zOGvo$i_Qbl9WwwMk`w+UUJ`a6tgTm$;912@Kzs^<`4CG;xKoa@PkXcViu+*Y{%}P0 zX>WB*EzyKKzbNapH@QE!4_5ATM`WG$CijOX+=)kzAm{vQmYf_ZUd%c7!Ag7Oh|fXH z2l1{t?M?1;O}Mj#vQB%G_KN#pr4@C=vrH9M8um!qM6obcnsBEPG3V^r9<SBSw7c5N zwa)gmH+upRdo=*0qVN<_Ii1uWt)*u|6!iK{@#5(xa%L(|>9+o&p)I1vGi<$>62woH zoVm+X@nqc!q97XDqEGLY5oo(6m6;Gid-3dGYVd^M3WAWiR-Q!>GIwuRS!fL%uRcM! zf=D&AMH8|H!LG8<8rn;r1YJRhMnPLNq1RHtSzRmbC1HDtwOf5*2tuYd>bNu^+IG!^ z(kN&z$rDe|t{_As(iTm~HMDCcw1)PQvf-)X6-27xS&}j*A$5UkG~jIhB{^4KQpb4y zZjD5wEt-(K%g&f6jmYyd&x!VA_L>RbVo$W@S?+Q_+H-`phTOG0d03x~?8l@D&r6@{ z?9CNv!iy_|FsCY6Kvr!jFVQpSNGBR8QINY<G-%O;<j=NOcnU}Vhkux9@SehP781W7 zHSART3~#<4#V7I_zEK6Q^gAyh!Ig&GVMCcAQ`W=-$9{vJY+7|y)kpDN^}Z_)T={r) zo80PnVxw=%BQ{J$D_Rqwy(Fd)H!lwe?Iq!H<2O{-OlXTH-rf9h{Qdb~m)rK{8m}G5 z$9m+W*|~ST(jm7l{(B>i6;DayWuEX`+&;I?{EoA{L2LtY+^Bza6AgMj)9Bk6I_4_) zM9(^1^3T-oQrhkN!fV>1iMLyBjCXWeXGTJzXe~5wnw+`1+DpQ`qCT-lgD&}{wY!wQ z|6=%SIv+oES{K99#H&+_^}En$4vj`X{-uldx^d&$`0NXD=2g>YysJ=i32H)@zfWkd zzu&MX?(qIM<$<fmdo{)<bX-})#AokBEx}&0{JzM?1rMyBikcULD${b`|80qTPXEZ9 z@OOES&GDe-YfLzbzD`Q;jQLx-YRi-7Z#Mg8rrmN^wT{V8mG+V_XBTQFv?Yt+y^^iL zcyXO#<lbB>iOCW_A|GF(CO$RdlP=n#30-5Nr~%gRt^x7jv9-HuuX8Tk6r+4hnfnB5 zBB;`FGox3uMH7Ba)b}~Ac|5qsW^>(97BR}iggM7D;rz{IUTLgyg$DjiZP#8>{wz(O z&>Gs3McA1iO=vG&uOuc*teSC7Y37YL^m^pG-H|dG$G;41hKzU)G9zAmMjgHNQv80h zd4GxuKh)}0;`mi+L73wV)=S590f^VJiu_T0y@y2Vg)qk%#*V$%=-H7}YTtpkx|Ud* z*tI<fovMJ~sKMNhmn6hmj2hgrehX$4RlEq>Grjs54M*VnoTb4aI+B1!Y6%EC({KUk zFF*{$K7jMO3^E#NydXHvFz&W9jfNxcLC#;nYQ`r>KqIvT1jiZnpG^9nAa>%6_)hqG z5A%`6i!jF-dUnSSP{ibjYe5`_wTVBG(3XJU*g)Nf*~8rc;ujb-cn9C&p+*`n!W=cY zzAjHtwzFrJz!*U3N)V6L2B9qh!Lfl4pYH{_5j0j})ZnkpTAI<pG+q!KHE41mzXf1t z&n)pIG#X%S;*TV>B_KFz(Dw|UI&>3=u^2Vr7nPZhG+u=5+daMP9GfM&Ayub#YMsM> zjYb+*Kv=pf=sbvHv3m#qH5zHWAUGZ%`EbOYNL3qrjcskBky-+RV*@r-*cnzj9B0IT zlU%DbUJx7)kn(Uu9i-}dj58FIYn568f@1^r>iz(YyD@6en<c2d5au|8)GJ3E1dU&V z$R%Z-S^|Qj2DX;$0pcF4P5gIKchh)5aMVEV4@aCp4G_QF&DP!25)d3Uu=htN5G}AD z?&0JfOydP%&)c&1xg$(_1!7=w52luYurph{&q<tvU3$OAcfHI#i1CY|Ll7?rjv7dN z<%s4Wu+F)(o&;)KY6%FA4cPYTEtE%x)nkhXv4zuK2&XM7VsgaU(C7@}KDMIT5)gJ~ zi>>GwtWSJt{zKD;;=k0;@!DF6wjD7!g3q};E49Dbg^hVx*_mE&Yc#GKjTIO2I{}Z7 zl^lBYhEM!{W#7_Z%zu#Nj@*m?^Oor$CCq+l(2%9^A0}|84c9Z&L})Jw+rD;s%Tc9O zm}Q`bSQyt=M=UjGAZv}930gEEVM}0+sB|~>Oi)8C67RWRbA;aMRS*RsXkiM4kgz3s z;#$4kqZ!KE=0m*nPUaekg0^Tv!d4@F>*DCa40Y;$5;pHq2)ncO6`{UajGiU&sw7^= zyBhxv#xs^a$LHEXi{smd+w*;1`{LdB^SwSSfB1L4vHTKeNAs_QCno(~)Bn42{BiZN zGT(~)cbr!6Zj8SVL1-@>uTQi?iuT0c-;pY9(L~ErK8ath^>uk<SB}H3#mU@bYDFb{ z6~W7gCj8Tr_C|_Y<L^DBN_*)P`ow<l-iB0t!knv<m^6WTq8Rf<sAJq+!*h_*vyhUN zq_V5ctpkx2raU7lc~0a#Sl}44^Ri((&#ej8z@*#@vOnLf>oRZgdIy*6K7$6&TQYU` zw(T?G>2IzuZ!8k#)4hI1HK`J!kmXfL$SG|0zj{ZWzf;ehfzO;XBlf@A%bkqJE8+-~ z@pKi0UJu8WXa0E*vaZiuE0c3s324{7S;DP{lht%@KX6>B&e*#7RgFH*`R5Dj)f@Gz z+**paPU~Kp*ra~`yQ(iLh|~*hzMJQaPv}&dgA>f~Ut9rsx<_q*m+cMOpk~ysa%(9T z9gn>-k2lLrB%!?!PUp5gVl#+)aIV?~<|H;1S3smGjJARJJ&3*}v=_oMYt2+S;>vG2 zm$n~SFTZ{Gcjj3%wP*rimvff2l)Jn^@@-4PtXHU=G3uPDq2B!wWqDN+Eb(L=fSQlO znr)=SUfsj(if^nO*tUafwl$%><SNjMa|pcBj<_2==hf&HJPS0$i@)=_y?IgRL_-K2 zFT>(hNwli!nIC!cQRbOJyhzw9+SQ~g{XIJMfQx%xhLr<Xb!}!+m0ALV^Y!;!&NmDG z<H`Zd(Hjkkmm1>5R7uzpZ(`-Zrdg*HJxf4v&D78#eG&~Jbi53U7h{re6t(%}mi)Gd zPbp3~>cHuHE?E<g?YhZ4m%RD(nt0=HzcF86cx?Qdc+|z;ByaR5oN#9T$yR%p-u?K@ z>Do(=2l&LF-|d_Ku|u=c!;e4nrnYE8-p_6CJpQTP`RRw$&cFGOSBf3>S`**&9nK+- zZ>!cjA|9KLT^C<%EU%ezE1s6xKY2|4jfHjd&);9Wq`mY$4WF2B%Z>T-zCED$aq+UE zKK=XApVq{Un{Fz%KX6oVCi&6-y(WLo75n6_x#!<S?WN<@XO&0Mdy{{Y|Lt+F_BwM^ zxu`9g&?l(lq>!EG<bQS0+T4*RzERX(Iv+l9%uPM=&p+^w+!vR(DQSx)^ez~TGfW(u zf4<#a#hu4a_j0aFQ|B*=KInT>zTF+8it(l=yfW7{#wX6Gdvku?0Vn64Zd}K^R+`ZH zi=xXxyw&F9-1tUyik=s0-wQ3iHnq<u-n-`9eEuIz@|#-jTV%ZwFV-cl3uayNiQ@+J z$xnM}@BFX+_ThBx)u-;7_~QCFb-!*QApSG$%=~qSHq4KB@J_EhG@)y#y=yz;d#uN= zx(cThG^v`jU`}~b&rhpAs@0@w!^`u^k3aS~&Kz)IOLW9nVkew_L|%JcyL*$WJ@%fD z=N+C>kVX6pgtml)&{kszzII#e_E=7PO=#Vu>Q8TARq@oVMkAY`hFC&EXsgj0-{Aez zE&Y0FuWz6+rp$csTpXu|N4^hE%bow{n@d-|w|Kg?gv9#0=9jl^---Kt!68G74Q^dD zef{@0nVhqi;Vk=^OB+`WpEk=}X~ra1-KNU^e<82E9{Q?r>QzZ}L<#1D64Zn)Clh<& z7yrGr)V4$0qE36~R!yoT?bML4P0t&X2b7M%MbKV<ZPcV{-py~92ku=5C$|Jd;mw55 zmXHwIYJ5MkRcR^CP}E+pec!n1==pQYE$^*oG(4iP6~qz{)DTNZ2yHd4`Mhs&{*||s zwAZ(58YfQxJb|W3s%Nj&@PyEokg(4WeA4H?fB&y<ZW%PR*HLdbuG;k4%rqa_1U1AG z5<**z4mY>TKZ~4euYRvKuIktLt+YI{32KNXB!spaDD(W$D0A)g^0SSry3{J08qSz} zVmb)c5^V_yp{>Rb<8IHN&~n*y?N#+m<Es1TRj2p4Pi#vFYKSEygti)2jJz(-wnTf~ zFsX4>lWWRpdzDR4Lo6X7wAJ`7m&<>K7EXKZHluM>$M@b!TT!3b3gUlBn<$o$5ZY?s z+oZW1?sM&>TM4GNl8}}`EFmE+k=1D1Y+0|SI3G9klD3N)j_93yQD+cGqmnP&@LWEw z9O1WeHnlw8gt-ocVeD2)2z(#M5cX`5VP=MxU(_M(y}g>TtDUv3>vB<shQwP*)S1(} z3%(^()D~IKVp5{tip{r#n16grs95R6bpUeiOY$CVF4n^17ZpGG$n~84AB)S<*7iN? zMAMeA7iHL9-I=*usZAf(bJ8L`+|VJX{0zbCE^&nfdppurBkVb8ksfZ*g{K>hY=RnM z2?_R`q^(BSbJ8Mx37_s6lOtmEoCDBvPFU=E&MbmGPT{t*ppn&ca{rjrN?vJdu;*mh zrpo@m>p5wWelVMO2PL>JC_zo=(loIbeu<v5UwhYcGPlwvGVM&2%LkdT=cJePaD(?g zuac<fIkO1%cBE~d!=95C>ET-6d%n@|h>D&wi(t=5+G>>6^)2pHJtr-$hwEoFJfbio zA$U#15)!tz<BS0R{qRZO+-^g4&)KgmJ)GpjC$@oT0D>A~2?_RgE+1jfNsIJwQXbg^ zHN+AU><3+WggqxM(!)tD@rkhK%p%y^k+#=r2l~Mq_H;cbEz-lueeM%Kg18<8^C6ay zU~lK{^RVZnMS3`Cud)ehh$ST0+qw4YkLU+4Lz}3*q=%DMG@GD?SVDrmoojb-pXb<8 zYp<{^$tI{FmXKgS=vtq!=ad%5)=Jx6IpPF-9d8=Gk~a)r$ZPP_viO<b<IM}-&eLCB z)L)Z~qUUN?m1Yh<xYYc|=X&XLg!M_lI5#0abN1Zi?1aHT^e#PkY3tIf|2!tAz4q+3 zEFO9wP8-Je8GYi?`}&oZ{&`1n@6t6nZP7%0@X{FPCnRSlJUil|(vzReF7`O!`JDFZ zyXUgF^!i-$eMX<Sc-JMR8K?fGSnK?EbK0VblRjJ$KY7?3^G(Gly79mPrPd!`UHtLI zPjlMqEzC_Fc;Q_0eMX;X(C@6$`VEit?AfwaURyM=<((z*q1|SeqwzQ3U9J1F{-p^` z&zS!F%?<L}>!0nG#V6I7YrfCu6Q}Oix^&QilXHK&sz+X1G~t)vnY;BVwO_MOuG@^g z^4e>+3zo%&*XEe-Gy23Ne0A|)e0`B$Uep#%=-LxS{GN<_TgIJP!5IZNZ@^JCyCWMX zL`RQ;;FoClSLtO>h4u+`b~Hu@xi^%%yE$Si`$Q4OD4zZOQ2g!@6<*2N86GkGkhZzg z9+=v*<Gfo-ZapQ(4P~9>8D*~6e0co2^0t0w;P;zG_nVHEvCtfE^`RG^6Y1p>w{&~V z%ngpfSc6;riMSrOE0^1DI6a#v2$8BQf;4|8jTzq4k1(?gCt}P*$Lm(jV%=jFQ4m7n z(gef&{gIEjYO>?1tBl5PF%F=;-0I&G%b7$$2#HG*4D<JOFWRS9x0^il;?@0X|KrO) zPe@!sYl2}fA35zMdFuT2aj8Z&K@D0oAvq`Ql}BECN!d(V-95cl*#tF=B`I?fQi3KN zsd|;y@k$+AaYMKN2SE+Sr3tCKhK`0bUxu|rQM4Q0)wGw~D?K-LOY3enK@D0o!7zU( z9YxpT>%-JI9qV_sm#p%g(&Jb|*Gz~-6Abfr(m2g(zq8Ql;54X_t@7H-tt#$S{&_;; z(gef&z2OF~blQ03Ek@(VPy6PySCp=Mj?HT9nu*k+2-5tW?<Jl_F^re@$K2Ie751}) z#3d;tA^9-0zE&meCD(2L2TuEc5Y%8?nvknY+AH&t_LA}+`(dB7JhBOD(4q;cSER8{ z+tppKZI>F(mf9y+L-4PF|9La+dX}9t@$#)C@itINd+9x#H51yR3B4QC&W2L~GnZzT z%%0-FQ=t5Q&^`h3cjGC9_CnZt*`Cu8jNkr4`)kH5>b~V>r*&9ns>Pqz$`bm#S4-$o zk<`E7h{|{~3800NZ?UuQcHM#fE`XkKrxyDW<&~VO^Zy|5wSx5A+JKO6L@;joM-4rb z&v25b<hutMsq!p7k<vy$W~=p6kqz6YCHL&Z=PUm63GJoBe2Pklg1t_t@k!3j*DlO1 z2#!Dv!}FECB1XhqSrE$0D;tk^3@Zli#9D(dF}u&FKB;}ohpT<t%~#ZREIk_eI1<FA zSZi=LRw-yNlk;>2ToY%2Xor;pO~2pUXmH&E;|d9`512cv3pDsGx+Cx%x@WfT?aiN) zNN25)T1PAa@t>`G=WpI~KAz>AB_#M&yOD?RDT5kgLHq`U_F~x0XWK92S%Tlx`wzYm zch*0f84ZamB)B5Q&TVf4!SD9{8ie*@*v)6#H7ss69A%z2C7Fy(a(9iCpjn-g{BBpO z?9;VQzT@JHNEBwyX<l{Sl#ei)J*`^8tR;^g-mI$ioR#MHC{jd}<yA>+Z+&{c)r$R$ zhK@_ZBqrBuS~X$*ibO*ZQI=OF@#v{H=J$W;|M;X)&~Zta#IQS?R4qA*=b28!yP6`R zEU!x9qU8sa_}Aj>O+{JJ#1$fX4U?>4v%7?Z*b9XAk~LoR@(Ftn^8X8YTh6ml8?a)> ztY@%c{%(5-{BB&$|Fhhcmu)|6%aBE|b;Cb%Kf5o(xHihRUFkVq1-OzZ2w~ek)xw#! z(w+WoB4?RLcRb9!i0jIAN1Rxe@PdnR7tOG%4ebstdLnvLOR~HM--R_LH4)MFp1&{} zO9tTyN$vCMe4YK>K3^$~NP9_`8Z{H1CD9-u+B>ew+47Klq&a79AFOM0J99$MG#@5U zHc?5=wbzxiEivtj9yJqYWu~mz^oZn?iouUVkN*nE)kTnRzw638ze0%CpWwNz#;dEn zB!x{5!&_rWI1Oddgp@4n0uo~W+4f2_nA>ZM`<fK?|2J3m+tjA{0Ap*3_F7b(c(uf} zs)+#U;_?Vpnl??Mp}k(1u)nRxZSW3Q6Oq;{maQf#YDq!LLoBSjLM(XU)KnwAKT<+_ zNeYKe!$^Uu`6eGJp)DSv>Vi*bFS*hqe<@=pw)XghTwT^HO-RX_I%bgMNhW#T<r53W zcg)BQ+pA;+of!|p?-_*l(%~eg=yvROdgi7Zdi`>%-tA;hEwj%hI9mdGTq%FgR-SYB ze^{pvp~9rv-At-d3%t0G$$H6dC&n}Z#D_Q|<rm4y{?rSE-R;x_UYcl!mHj-2r8-&J zZ}&kVu7KbUC41i1E@<41y-TZ-9SUi@AndNB`bNVMwV*K?#D~cah13!dc83zr4a?r` zgm^)4S5o^Qd1`>{X(Exm+X<F{a3{@W?RGNpg5a*Ckt6txRDEh))@~<rmRdk?x05}` zEo--vi5CQSC4Js-mC<m-Q@Fa1VYkz<b=+<z6IVdE^8v2{aRBx%b!+Z+JDGSva92{> zc!|+)#7vaOpRhk_ep9#G$(&Rd5Zs|;PZZn;Vk&k!-CN79#!ce|!MbZt1kxu89uH!7 z5cn^8Ph|-ROY`)_E+Fp587cU0`pjVB1;JfOk`G7VgpJZ%oWt@DrV1LVB_Oy%$>w7@ zh;t8GUi_8X?PTHw!QD<$9**G2^`BsW)GD>x$;1^9+@WMo`+Ee$QtVy&m)h+l<-uJ^ zQm-7*2B|s~#64=alaz-hxI@X-tE}BlQm?oxN$w9vWbJm6dZh{OP_pL(X6<&8`@`;b zviG?ovUWSk{h<lFLy327_HHM8pWEF|w!Lx$@AEF$?X>H2z1zv&=bGT&CEH%{9_)g> zOP3`(KvOT2VA`Uh_Bi5slwf-hJ(3-usU;xXIes6E?p*4<;GyaJ-|cogN$bp7Y0n^& z-A>6F5C!Sa^=OowKfrYvdYs90I6?q)U+U4TIw}ZuAAEX^L_<b4IdW&lLX()}i#qhR zgv2G|tt8BNYe*D?kW?`)J#s52R`fiZW3LntLVM})<O+h2$%kio+|FijJXucOXuqD% zT67me$E(N1D+oeHLt8W<Cx|S1hhwjF7eagK@%;*d5H-}PD!t6eKd-JG`Ij?NlC>YH zhK^Ulb_OFLQVn;iN}OttkW@uGPxkYnPF1n<Dohn;Vk!vHP^YS#oX$;<kZbt(#~gd5 zyX0K1m6_p5N{};36$Bx#JWO1Qkh(DDR?d>yfA;E1naeyE^TDy#8j18&6~-mCl7zmy zJPmcK3f1`x&(%~vNBD6$Lhdv>hOF|D-nBCRO${?*uI_(7ReJPXkJih*Y1Vrsh`qX= zMb83+_c^G9P+p>E<|9I)kP^zG3Ee6&QOVmp0(>_}Pf|(3=FK#Cn@C0s2xoXz5;9&% z0DJjjjCzy{CoHU%Fh@Vuc32x<aK*x8OlA{y@O+2AojqTEMSJP98hj!-zr@_<+M)>w z+i@SB%^>^9_#|UTQjWyaE5rUAwE1$g8E<D^m=Dh@CD?x0m@HvDt-Bq8G$%7->>j<E zjPJYA9ggX{f4IuZi(%WV*|#DIi@&WUHm>EkC$2W*qUq?Mq3!P;QE&v_=u$5oz8a}& z(0FRG-fmNivtAmI*J~#98V$WB1iM%3O)c{8KUl+yFFC~cR)hJP1HSMOkN9!62{)Ly zF~+wK+?O4S__9NhUv|)5dJT(DTvK~$@k;!y#f+l1XySsx#(3L>tIcYdD7y6hDaE^g zIkkA!s{_0>6MBt?UJVgN3tLYuw%$3V*d968UivEdM0K61#lH2Y7T-ZWv_%vCDvOuv z!W%h%4TSd6SJWr&`)NwCKQ#8hw;;4d6Z$IP&?IQ^?;B`nFZ~s8pSS}l8i>EAKxm65 z{Hr?(-p}FhK@i$&+^VnQ4RcqU6+%8yr@_=>b*-tzJyC+%>x7dw#Ls=T+N}5SiCYo> zaO7h-G_*w%g_AeNTPLnID`2qm3^im@lc~i;__BlcTJ_Y1IEU{^k2&YcYM=OK->Jn; zYo`>S!q+^sMH6rA*boo=aJ5;<WA3N|zZL&wi)FnQ_NiAT-)du6zSPrca@{m+@4<wa zt}P+qz9mFPG&I4m)|0T+Xp9x!2VlLL_F`DR+on_N6WS6ILR+Fc*4sUcb$8l}VfoS< zW6CD9B_xEl8i!%U{cTuzue}(S@3t|fY(iT?LTIaTZi{8p>!TF47sK*(HpY}qXiG>4 zZ8dsgKf@H%UG2rNe7B7;WfR&G5<**z5_WR5!j2B@#jt$0jWJ~t+7c2%Ta9&CyZh2- zeNDX*3kmsd8)K5+eL`D8LTHaDYA;C@zs|;(Jfe`K3g35jmXKho?04d*vJ%(oYwY{c zUJT23+a$FqQ4m5~LPBVpkGrtDe+Tw2X)lK5OK*(HBML%jOGpT9HCFDiZ2C{*ZZ{fY zAt7I9V@&e9AqqlhOGpT9HIjSKXo!Ub?>m0!jWNmZKA|lkA+#luw!~<Ng@k;!jWNmZ zKA|lkA+#luHqq28v5=6qmNCiiKA|lkA+#lQ+b$N9!t$$l#^r86+e_Fl%e}L3&k|NO z=KqZ^fVrnIK6%wg4d*;C!gxCSYk392!|;2!2GV&60WXh0x(fK8eR>U^+ta6hyi+lp z&aqSwb`HWn1HA^qi%Suh5i$hl@sfW@suDuZQ%_Un5$YVslK1|h^^!Lh^DZLiKo)Rv zWQlK$F1>CRNajT>!DO9LuS<R$-Vwh4J7?DIb$3t8VR?|iDIxjsAVM$u6dn>;-xEF_ zqc!rr%#j;;Ker<+S>F>Tp}iR9H)k!OzIdB{PnZ@NTi~dQPpGfz8badI1jF_lz#NlN z-}+VG6Q;$Dk^DU2;&KFO`wd{eQz;G1>^m<>l^s?2IYQ#ngrv&SD(C8Z!Y8L!mm?uQ zp{}m_p0H2I)wN?X_^z|L|42%y(IREekr1C47!dY*!ahN|({7)ZWlToyCR9nx>ZdE3 z5T0}TcH4e<t9Q~?ft5JJ%d|KiaSrASn&7V=&OOt!;T&g>Re^doGm2ioSpFd(+Tj#4 z?ZwduS>xvu1<aIm$4PH1Fn6FWn$Yu~Q8a7UE4e`+p2jy>wHL>FsKK!wpQwu&pO-L` z@lVVIXp1KF{AUymZZN*rWgvRi?rK&WO1yftp-;Tnczmz>BFvW5=~~hjP3T!t>>lVg zsMrh|`{4_#+KVG>)Z+-7PuvP(0En45_sp{>!k>NZhIzr2Aa-J0U&qUlLTYfN&?i2^ z=>K0(f;~ZKizf68Kh{qjeMqS;%HtxOmae@xl1dGZi~7WCm@oJrQgy+au|;jsguim& z+S=Vp^FgrcYA*?MeAg#_rwDDyBFyTP=nJF@-`vh)e!{FIXWC_5IKy1OEiqZ*IplmV z<oqfS+9Fqhgyhex1Boue)g6tidl%+xwU?9)$J>44eU#v0q-rJz&ytim2`MMDawJ;S zbx`rwAeQ1xOC7J&G0rsj#A?*5Mj&=?c644_G$HlPuF+_Svj87NZQq6OZEG*Nqd2qS z6I&aN?==h>?LcUYCgi>uY*uxgk8>>F1`*xf#;hb~88BYC=Q-cv6DNTfh4R?{);4)< z(S+Rpb-Ah|T8Gx>P!Kx~T%OZj(sps|)h7m{g=>uxY=?PaZPA3ZV|IlQzwCgS{rriT zv(;XDWw%fCMT&Oe>UQYTI_Fu`T5#PS<7^QSY)cwqmRH9sdK}sIiKnkRxb*OzC*;p) z+63zp)o7+3<wRIc{<G_lWn5H`)=HRTz4$g(jBjM&*_U6nf;Uh8GIy=^(rc@I0_UBT z<jgZ|(S)p~<5_Wd&BmE+ha?&|bXp$IysKR1DQOaJxW|@s1ez&~BAy$)0>u8ejP9bn z^cQ?|YHQAiCUgpYLVM|T;WZPILynm1uZ+p>Hs|{4YA^kbvYH8P(S*M0em=AX-#v?= zX-?*rYh~9!>hX5%b>Hqw;z>`<GN&~AgwBVyXhP2M;`&Q`*&4M3-(1R{w0cNa?KSMa zrSZE*&NQb@`$UVR%-MfvOBP{I=9W}l@tg0uKDKFT{K)LL%<0cF;}!9Z*H@dcoNZ~( zbb1e|YKeD)`y0*bqP;|q@m3Ohfnch%C5zy>lXyagMn@1oojm6i?WOY}F<C<LK@C}x z%9J1vF;Z#rfxN}YqY3+Et}O%p^OpI}D08c0@(JxFVWy;JLR+#3Tjn|++6(0!{|4){ zc^bRKR7q%yCgd)#bysU>FVx!@^~}^=pU|~kTQs5XP5Zvdvfw+X+c}w>2`BSLYHhtw z@SQVzMoCuSABkS=)m^)CN8*s<4Mqc}As)#&A&w`=>hY_~`h6Ftq}7V@Z9ue4QYGUI z`W@FN8h`zkS$#e5u3>roW}@G5I4dhBdPGqZOGH9&#`XVW>`dUdnzsLc8YEOgQn;0| zOi9zt&G$Jxk&uMUQ{r|rWu`JcDD#jjl1qjRxr8PqeV^0!X`WOxA#Rx^sbrS^pU>WB zoxS#X&e!kX>wd5Ode(Zcb@o2z?7hz(*5<d2p1bu4^~Hi2tUvI5{=OMiVfuh`xw88g zoV)c$e#P_em0tK2Yg_QoeHEp(wr#q!w6bem%$QX}7$0JbTAJv8{i4#G$?+Mv=8dJd zv{vEn#igN5cQ!sU3FAW~q&4x&ta+suTI`yU53P0IG4o4P4{Bn3WD>@QNa#ZoZ}y#8 z+I&>w3?Eu+b?2F-(N{G!KB^}~LLZtKnx9sBZ7t99O5YEyRk}VZwRm$^<D+^)B=n() zmbs~=39s*v;X`Z9-ZZ7uX=r`pqk2Ll^r4AvJ4`8cdzW!*)A`U^qXtbbJu#rB@lib? z68g}@(9+xHIZk{Om`ZE?)M|3_w3iVC3?UNInxO9{Ti9EQ^HE?bt;MUlYV<nuMwJl+ z3?UM^LLpd&ZI1Xb!-uxZa%(eix$#j(BtAq!ADZB^&~3*23?EvH_rKravy6{2BJm*- z`p^WQ>1n&p%<!SL_#F3~Tr@taCqzOYn&7*6=9#md4_;Lvt;P4TMZU`TC?g6)NQi`K zO|Xt>*y_CuA6kp`N}=yU<D-m7e29cTG{L&E=S!bu_|RIcMK|oQ#`q{B=)>e(B=n&P zsq>-d>UKkDE!`Suf@9%!JRB<%@>ro@RwP{c`>Z_H9+>oYm##7~L62;Aj>!l8SVC)E zHg{(Jr^i0XAYNH-+QH!ZJ1@tWzFj-WReI76nw5F@z4v8bm+VTwDIlgEd%;`RfY4e^ z<MBO?_0p0f*e~H_;lF5kxEhzIs^Tnle4la5+OBlbXRotgLIVHAieIIL^oZ4rz|K8U znt*cQ_*vs~Cm`0=4Q;s3XOj7jk`*xgruumP4vMDz6F{8E=v=U?3GtC8T<g4WfyCbF zRbsl~-iV7b5s{6O-@B*kT}rMQI<M62e?5%WeecXI&6#%c|3PT29WR>m*FFl`JJaO^ zVtTQta39P+LtMA#+|mQz9b>NKg2U&buhp&kt1^Vv+B_At!BE85%F1~GUdpaY6H+3) z8go@70@@n=-ON&}M-fphv8&Um(p5gJ)(yjFr)WhaKJ5A=#O{I*O-PCGTKuazcupzF z?X(l7S6^0%53TiTzZpqMi|@n-6DH>(;Z<ouN~E07Pv5Y))Biu7E3NhV=2G%hitlnC zBH>kOLP{hEa4tY7=K|<>!II{8l*AXdUw73JT1(RQEA=bHTYj`;&o>YWZAnC0?W1~v z5=}_j690pb&eM<O_dy^MvC9~?+F$hqCA>l*ByEW}=jJ^W3GGVMTkWrUf)Y(g+7h+? z_C~Jw@Kxc$X&WZWoRB^DQRblPlw?n=tx?Ye@j8fY79ZC^6Ix4Ve(Wigw}5yV1j|Y! zGIu94W@5>n)z}ThSP-8by?#9BGZ_Jq-sRhA+Ld1=`+4nE9R*@Mh#NjQexlZr7N_v+ zPbuO>5YK_=djB;Y^|fn4uGZ#bGKi-@w7vNFj&4@3j+#r`K2=sZ5EDQk<7Uk^bITk` zZaHhIeFs5BoDY_jmShq3dski6TUyIqVLtI;33bmqhz~1~d!A3O(9S5Hg{vBaeC*s| z{CFu{6D=~nH>C9!au6H`VjPH7bMK!ZcaU1zpHCbQg7^IX>Gw>~5>3ecuyc@SgW!|+ z=CboAYAq=RUb{~m0Admd-VeFYLwTxZ+!ryYUwZu#_3V0g(AjN}_^>n8>)_*2>mzyE zc{-@}C$uAm#aE>znvk^VIR&j;J_3>Ge6SZLzgq%l>P0`rJtmHx4f>iR*!NT+#<n?A zk7@bc)(na$Xe~)o%P08EqF^KQAG2;@v+ae&Gp>A7y?y&eF(H(e-I2Yy#J$>S!u3l; z%hUkzY_Fsl6+?D<`vhl>MT;}aMl1GhiD&EF7OuKwoQWeO{Y37zmNff`5+9H;w}W6L zh?j32S8>ZD%O`4yCM1p@BY`6pGKhXRjjK4ITf2!mW}-fENJmDrJ|2XR^L9O>gVxgL z75T)|@bNW>8(R06s3n?^tF^HW9|key&T$o^=6>^*#1`ONtK)L&sGf*90OEJ}_}dYa zlAP0)_8~d9u??RB(do8v6(<xAo}{&;tXR@M@f?UdaX+S<HL|0YXhKIY#7Wa2Rt_Fl zG3)FZ9d+sI2$;GIgW!1(4dG+d+NN)5EghHBCz$ia$oYVG3+=T;6S@q8fcbbAKJK00 zxue$75lMaG84$a`$I_P?b<`3~=z9|cV?p$|aa_fLpEUlvzEe61t+o^dT|gZA%(#jR z?%r*(*3yw~eS%kY60VA`ua;yH=1mKp1ks@|uA;~0{X1wa9kEv|S%PKt63VLETVvYl zFD!{Q$!Pp?|M@-!0pHr&K@7X2eFv>2PX=T5`@|>^RX2~TXg1`Z9koOg^1Ru%me1}< zcy^z^Vq}sJ)&P<ZYWew~kE!r6^q2$Q(pnNhmsjNz{{itZeB>@~pWJhni6(T31i{@P z@^_7^xV3q!x3rc->@_DBc;B^;fOzMQaTQ~}IclP|r3qbz*c%RFZ<OvWQ$L#^bp~@T z^$H{VOBve86fc4J6gAxTYoAYQA8N__$msY!!8<q>J_bGWSvxJ!gxnh&!}Kl?t?wRJ z@nG)F30h0uU`EIH3Fc!z`1s`dD<*1*CM4%JhUudqrlPEV{O^kswU(3>wS0m;mf)WE zsaG1W3HQ#|@!~Jrnqd&Gs`;25Cul8s&zTSHF9_~~kKsecRUEo>PJ1oUgggtjtoTMf z2p?M-o!dccN&Uh5;S-}ltR6J3qF2Yx9kfIf@=V*h{T2`h+&8Y`-TocgYb~jXc>jHZ zbx8-*C0`9$HC{_J;lCd@fN1dGxQeQu??`Gm+LgMCGbTRqHHZf;9#>K8mMxRCL=#dg z+4lUTzr9g><Ke4JPv)FuoAc6V=(PQs{4KlvVEPY|UOAg1!Yx6dXKDLB=uI4PT`>K~ zUR$d)&Hf61pRhL~VFV|DKz}z{I&tX)t>xMEh{hnMfarGlBOSCYO+1mW(PgJ&x0Y5e zJsCcVe?K_t)8NqP=~ssqw|uuTf9s9km|3zH2G>Yd(D_6JqA!RCKwPun-TdEPUsak@ zqgF}N-yQT>{%?<OD9!k9E%=xL;zAG)rhI6-J~17{MIi15p(UDF^~>t~p>sEthBo;a zrF#~LUqOud@6e*w(mD5uq*uvCs=)m!@f-xwGH<}&WzNE=*}E4LT1#d#{+dW^!LBA` z?xoy^){^-a`ly~rB+$}?%psNg&{{HYWJ*NOV0k%DY{7>nWG<}Sht`t$FZ!sSNF>nG zgv{xAJ_@v@wPYTTzh@HWo+lD$X+q{E%YA4qnUAE8Ov3m`B+$}?%(0gH&{{J4N*~n| zi3D1j(6az)?`uj+<_+khj4+qyNuZ?(nX^dpQDBOM){=P&$wx9{BF~k%gNd#93OQp! zLgrqKVG;$VDA9Ihz9o||`kn-|CS(rDD0)7$mdqQ`QYK;Ykw~DW37HEk_o209mW)2C zClU#?G$C_(i4P`BS!peq$D@xjq98;fftDs@ZqgW*J7|1pEt!v`k1`_hkw~DW37KOp z_o209UX?z|h{Q)CftDtcIv-BdPVbbKuIC*Quahyk*Q;J6&Gl)1oI6Dnvb4$x<{eiS z+W*L2ZJulCW}2iQY`<}grV#OYsW!s+uX(%Edr!>KbNvi=eM_XN*hfLfJ$G6yswXh} z>TJ0*VsT<WPPUJ1tqcNJBjYl1?TnxHLwxN_%kKvxZT|_OwQSm!PxXYBWD$%6uY45b zO0->_w&%=xL{cWqt-hPpm6g`=?sH<P><%i4Pl&&`tZ@CdthAP-&G%Vyg{jglxT`wY z|2|6y?qgY6t3$MNoetqe?dJbopEP_^qtEikxBtF$-TgI7`eb5TQk;F|T<Yl3k9nCt z<$ZQ(eQ&^+`P%O0Y$UB^@20&Uns|HXFLJA!jLZ%A<n-{voxaR3`sFM1)hATF)#<bR zrX_1jt?vDARquXZ<`22yYx8>$e7QIXJ1^*$d+*BALalYmrqA-fP5QQUW{+1>MDJ&I z3ZHGdckUlg^$4{sO}sPg%lyz?zlnV;y{bca-hZC1{AO^wP-`7|(dYSoFR#PXGN#HW zjsX!o{&eMoL)wK}qKPG!e3@VI?AqAJ?hkYiD>h9lcKPP}oYv|&==1!%o4zaEGw01J zpV$iGUq4POj{WTWoR(<f`QcyWZ#aKl>|@B_qr;Iyn?(Z#w#sR(E$!f=(R#B|)+fdc zIXWyo(kv>S(kiDVnm8=?dH%8O*T+8gX}E86^N#yQx1YDNs88C^Ct?(CSeCEZa8BvX zk8i-Y!PcGjjb3fAZ*<PtKB2YrxgbGM13qfP$GI1*ENZPfb8(tErYd`1Ik3tndO(|h zkMv$y)DlfBeP&($*edM8zx*m()qc=E2!8`FTv^mwZ@m9q9%q{xA3o6?dDstmsek^; zqLyf4+~MElZ|%A|KF8#6*#8QDHINUjwe|b&@;Euvl#fr`0PS<|_dN(L(ZpLjtk2`D z(fAyb!!K+S-Zk?0u)%H(a$7dc%_HJMsZE_rs}AZtH;<Aqxoz2EZhlb5<)xtKCCK^o zHhYCX9nd9wde^2ot##6@IeFYsbL~E{(|=33I&bz4cevoOoR(-}<K#K{A9jY1Yx}{+ zj2AcL&e-nsaKXnzb6N}MujKKhm}~cm=YPF0H|vrM!sc5($!Uou)}ApZ|8u?NrDu=( z7kr$#;{Mz-ubdYSd}4V{YdyCA?ELc|EiE;ib6u5BG@f*2MWg#p3*YQpFVqrEEU7Uk zf8xF<!_WT-AH80Cb?WYSog7yDxpSzs-e^B7f7qg>rJ+w<U*!{%epp?3$EU}H_y5>D z)DlfhoIE@K-WkhFEl#``K6bl(eDR%rdxggxdswKowm*4h{<T`mu*U1gDxWy$+Q*8y zuMQ2rKIOnrOEhu*ZL{<Lei8R$SReRUcgIJ?qwDMxu5Z;o)LOruF*}cl8zwG_Pps+? zM!#M2aBlATyGK<6zRvG<V^o?@r)O#Je}11I9KBO&_4avY%%Sew8D_*H2)+jK8Hfmk z)_UN$&H12EG+G>`a75|o?V^{*^$1_Dd2_DC$i?|7k9=5Kd_&#R{&U~WKk>|}(&s<d zEUoLhBtPT!57DA=ZS6D=qd~k4LTkPK&7%C*yRIs&daOo@*!$S+qN!thgmr$qDW`2| z;_5z2^0!<mKG>?+*02z23F%)>wOZN|W;1pjU#uEdEH-R>Zm7p(^w^1RcZ1-R#^Z}m zJytBfz3aK5mgtsRTfzurqw&QzA1xMdf)A~w^WhV>?J~Z27kr$Ox++cRGDL`_8mF25 z^s=CVchB`*)8kBzSPFu7@V+zWnmeeU7=33gF?p}A#*xrk+OAI=j;p%p^NNn2#6ILH z(S)Cm5X8{l|7p7%gx1pK;}g8!XQLNW2PZE!J9=Y&)uc(KpmR4oaklr;udnX!GR=R- zfVhsQJF+JnKjHdmcRgewj*bbfrQa2wD2#u+!;v5!5+CNP;b`w2^sn}p%3jec`!xu^ ze!otI-h-j{X7uU1EI(uv*WYnB$B7_D@82NYx~xux*1G=trTJ@ipIPd6-V;?m@!szP zqqD!n8PZ*%3N6vZx`USGFP}Rz_E7@y;8$I9TR~{8>BXg3_c*K6rt$D9pLpnn0nt~> zjw!Z1r$J6jG(q2|e9!2l%*Wjz?p=ONu|5c`HErwC{N~eUm+tBOxXFhj4%~WjG^%I4 z=(Xco=CmzM$o#qWQ6I#6AT9x+weA|dEdO5jIi)%4A4_K3Eph+*J)?g$+&P>#x8#+s z-Z7+01ot0AX~&(zgXfnjwARPN-_LJ<&8$+V_AgcW#HKa<qlPD4n;W~|eK{@Bgf5XF zsQ+pIXuA`y%`E|;wffxoe*UMcXP27H8&%~Kr#0&rZ9BDAas3Mmz0%c$E|DO(0z})l zYZZS6p|v`#ct3yht#e8Z4|%@IC+>bU7tNi&vAFq_jb7<$LYH(9v<A_3;l|=95L#>G zT}$&*`p+%Zed@U?pLpQP<Dz!gH4Qs<Yn;=it9Oa%5($EHK->=E)MFdxwAR=m*nKt_ zv7FIw_le8DIV-w!_^90F2QKqUR};EK(8~aE-xH&9>kn9#(^}C}OY%>kM&<X1PyFx8 zZc*JEK6+>R%gsV9(S$CMAeal{&B~A7`51)OdcFR8`8wUO`V-$#KC%7hO{4z(M;Bkd z`X8Z|XhN5C5F7$x;T5BcZ-CHR$IX5(-=Ot;^L6JF_deSy<loV)rxek%&!Z=9dfw=P z=U;#SJCnX=`#JeVYnPRt&EJCe`~zsO#^0KQrWCc7J|EsE>dkK*?u@@nS_~;_i6&n7 zb#{Kj@93A}Y<lc)o7XzzUz2@@6t$K<kKQMq-PkVV-=%9msnilp-1PPAWbaxK{2SW$ z<L`uxpHylsz5355R$)igYl!dD414dUzO*{O{)&yItLhD^I`xm$`Cne&Q0k3-B4XU- z>yBO@$GLk31pbO0K^#%}asIyhH=F%+eRf=(zxeP?Chf01-vj%vKKOHM@i-7#OZ)SQ z%iyC0w!rQTLQ6EE*S!b9_VB@|Lrqip(AVx0jV`Sp?LO+%X!5iVE6=I3K9BM;cS^5x z!V1ki)?k+G+Nh%+=@1<|WB2IZm)`ciyl(vQyFBiwd6x7yRS<k~+Rw$4`yUlex#QEK z)*7>JeST!+>eA{7H&^+@y|bF<UN77bHN5`9;!m${$oKkVwdt$Rp8I|N$2Mz9J)gY3 zYKQt8@*}t4YWKPc&(-YU^~x`vy(YS&-_u2{b<Xnj`6>IXF{eiQ#3%3WP&~iwrP0#I zOGPcwgucQc=)BEq#r40P8~yA1X+^E2zZ!kwgvqs|-Ig61z1X*Aq$Qg0b3UwXgYbYw zy`q*+yfXEL(>9s)X)O1P4&Ri=Q)8a1o6p^-?#Jjx&BL)nkBv@x`q@gYwa1$q^Z&hd zb*aU(gQ|RDj|1vPV<z{Ao_X{R?|$g}udg-;-X5|`G;zd<(FegEMXjZu44=4R@2<sz zYY&VD?@+6#C7RHs9t3~x)wS3L#0n5vYgoq(`9@3a)8`Wnetfdxr=M<#R{pTCQcE<U zpPnFS)1qtcsagZ0gIm-pYAszpK5^$slXANb?jK$B>Yz$3(M0!_8}ke1tuAfoHV{u@ z*Qr0``hV6ty6|5uE47xsA3pK+kW!9+Pkwzyh`Ky~{OtEkeXhsk4%_zKe9QHV;*p|f zp#2j6Kxi#J?&lK^p)T2inqg1W4EiZSy_HA(Wu7aR$o7}6GP_`cU~ioCcMfWwb3o|0 zoVpZrOi;WZwSsWLZ(EDEV^@mS(z*4CI;gMe!pAotv_upBRUNivE01M~`r)dymM&eN zsEeGp0nrMCmS{qki23~B{}u2*Z?rZmBCTDqWwk9KD}E`FmAOVsuL`Ao{wvUjrxmZp ztd<}Y_MNag-+S0bJPnhpWE}w0er#Miu>T67*3v63%7_98{1rkusmWXk#=m7Jl6SS% zd`xikT(q>^>Ip5;gtxj?eDK0Tt)=skNtk?SNt%$gEr|<Ds8RX!XgzmMn-USk5L!!L zA-_4Z2`$kC=a8ffjSJZ4KR@TXq{|4SPC~D4BOx;ldL584o)B6~`>3AqB<lXl8C+gj znS5xw`Wf?yhu05`Ha&M9zW)(PNv%A}dh+cmq=yutwIqGjz!k~6Vu_(3=E29ev;H$t zd{CkZe`U?rr9sj4gYG_}Pu~-ZTA~R(GKKS4K%57nHwdkz=ZAcv&h$aiq)YBT;<$@X z^i~LILXT?&0ppP&?wJ{1l0E~!ktNOkgKmkcC$yHN?bmk4naAd4HoD395DD$FMwQlC zey^UOL=%#>#9gzFEh0vo@gWlW$m$JLPf(%>Nm~MC6-il%gg&zRyVVnvXhPDK;4^Fg z6++DJ<lE#vH|;iNlk%g6e__)8%#Y~vt<_p9pIw{B{8Tnk5Fgr>CiJY6^FSY33v+dO z%(EFEWkllRx#5fQOYdc5_X$<UT(&5G)!GFn{r<fR^Un^Keo5>FR3X$_SFT-<Kl(DO zl}P|BggQ>meb3F!pVx1(@u4Hr#2(Cl3Zd3I;DY)2Lm#(3G6{24TA~T~%EOxR=ljrF zIv<&Y@u4M}z}4kjT`)hxht|^NmPr^N2jB2@9y74UmYyZmcQeU{A+(mB^UNfG7D6r2 zMA=h9N5+SKO7wk3&oz(!XhzPpmhQ1;62^y?Xae)ydGvoXd}uA*L(U|O4=vGzE_LKN z`B(5}-1W?OCQ)GNYKbQFeZsiUbFHEd_#1e@6z^+W&#UTh>L6J4Y^#WWt1*hBwJ^?; zzjymN=KI_ycAVcj;@{;M#nBQ?=&wF}56){Hjm2M6jN)i5jPv9%Mq@@0eB!!|?V`)^ z_wtrcym1CiNG;0x7-zUa8zVW<@fgL?S~6~&uC;^UU+bqA??Aj7dt2P>f<KP0*GwR0 zO_A|xdY|2=z1Grk!(^VquDIAPCbSPqG$CnA{Ql{n=$Mhm<}TTHuSywj=d~Ym*0TK0 z|DIvSnPjZr=KQUrdPEHy?-q{!ut%lV(s8PM;(d%5JaJfqu<7HkOw|%i$ee}sG2+E; zQDw`T(bWIE<=sL3#PrEy7GRgzW_$+U&MzDqy|b`(H0IwmBdw)Z5%|PS_uddaeN*$? zk2_vie6`lHJZ4ADC{CZ6%kn>MnrTLEHov<x-|FwPO2LThanBnS`$yv&H7#!2VRTVz zX}do0`>e~N1<^Z|hka00)Dle`vubJng#%`rF`yuL?B0{3BbKcx4!&_}QETaZ_{39J z9v(Hh_^IO6hc}C~L=$?AMi9LA^2JeczdLioD=NL5>$|D*7X-t5-59+v<fhz&@1FDS zxqf1NVmFMH4Bw|~@wR%kyt48L?+$hXQ3vBPpKf2P=xN2XJ$y2Bi3GuW{ZEO)|I~{% zG}^r=^ElMf@1Rd~KCgQ;dF*b{{*SDx)LQxt_KE*uB<k8$b)%~uzr(v9n$UF&O82Sl zireh^Qf?6D?<AreWB=*zbN?OuW;lr5Udr_Vp|$jPn@@ZRqCN<&*wPYB_%#FTbZHP= zOorMfc7lyRP%DYmz<nCj^$Es$xTm<KinNVuQRDw0w3dx!@fSXl7!W3MIeesvetm13 z+1KQ%48d3r4L|zUTovP5EMBm|q#5s^EFXr@T8w2ey2a1gM1e&hWhGao2`Q1JtVjeT z80(?u{@*COU#oPgbd?XQ#aI?Tt%$^j<dFU}Atl0VF=dqyjP)S7Wn7DD%PJwX7GqgR zNsI5q2NNdeBH>kOLQ15Z&`+O@Yw>?QS6Yj)Eaa&a-{n3;!mHARlt>Vauk01p-@ie$ zaz&jA&cuv5Z4=7po~p;LU!6bf{f#EVA0s{7bS}rWIPd%>h=w5k2SRJz-*8R-p)WR= z`E#H6<@bT%PM>ux-gR_Tp(UEo5i5cK^XFmnueugLI3}vlS`|mF$zL}2dozFT6JuT& z5RQEBnA}0<Hppp-Cg>YqmvKJs0&&aoV{*q}{#<Jv8LY|g@Za@j{@f?_-FkBPOwW4Z zNyoR$X^AFeHp`aP0U(|LaW)98b<-KE^R35!XXej+V%_^a!=*d!9M#5bxGvor*00I; zJR5Uf^<SydB@zS=g1E5Z&e2lLxNEI_`+b`K>A~;K{JBqjwx)kLq{p?z6ZXF^rzM)u zB@zV9KkXlOKK|O`BOtWa$eTaSZ~xGGGk@+AXEy5>Hk?{3w+gf2TA~SEB0+Exh{lz* zavy-uTC-bynjdoecV_<FCzd~&3n$Irn5&D~a4pe<E@`ZR9F_|Q%-fjj1ww0GG;mG6 z>m%#T{JBr$t~@RrdtK9Le%Ho1UAlU`s4fvRe;#7~JmUPh*3#=!ed4lj&I-FcKB{=~ zLCd_-)r2mQAh;UDy2nNpuLq&E^g3IgnDJ$|aLN3SI)8@Qa4pe<E)hg&260-Sk2+5U zp|$jSVV`*Y^QPf$mygc9gxPQ{(S$B(M5hE%<I2&w!63Ajo;~pi)^YY<A(C;*bQBLe zmdTSnF1PEJ3PNygl&r?nE0WAAq<B43Y#xmW{)gydF0#MgqbTFoo)1H4Exi^ilYp~= zS+ONorLV-Jlglz!rPg1OkXWOCO^B9`DOyG#5Bz7ZN_J;zqAVX40O4z?6IJ5blk&3C zcTnFo8FfyG#D~n|7)d;L!?es<ctpXJmD1AJUOnMS^tGFjboE@htMasT&N=szO<;dS z{KV;44Z0L!^X5N=NNdUXzR7L+s*r2`<Fo6$Yr-$xGgdSY&&OY*o*RnNZ)ap)iFC}k zzA_hLBlcbdZT@|E(uShex^tT!^If`pTq-AcJq>XB*QWZ*D;aB0_N6i{JDe7Fui^H@ znhewf@lXSv`sO5QBH3w0BJrUKrnNsw8zA`g<4eLTj$DjWt(+Fqva3~Jtxsr4nh@F& z```?>D3^=07Spn;m6oyzElCqXTOU8;47c+JTx)!YgoNyBr6u{@C$uC@2yKaqM$0RI z!8ur3i)q=_N=w;<mZS-xt&fi|8~!QI^U_*O%dS>h$|kfVO$cp$tcuSi(^^c+u2x#g zCbT3?2yK0Qfiv9h{j!&Nu0%pY_Pf%O{O%K4k|u<<#5eG91kQ=mT5?s~?@CMAgqEZU zUX|>Y4T32st37buoz`MncF4-rmJ?c%CWN;6i0`@aArca@tCg1Icc0LbG$FJlPTpyG zWi8YvT8nAf)k;g*gqEZUp{<YZcn1gK97V0gG~YW$(4{4hC<vh?X+mi0<NFg13fJR2 zNUg=R>}sVYk0=PCC22xv>!T^owOkV}HqVtvNJw2vOY*xR3PNZ}nh@Ih&~>{=%oWB_ z5tx?WNx0Du##3M4d48#ITW|F4Tx@lw`Muk(Zy$fW1hlW!?=ZwF=BaOgNjO`-<u%df zIGnI-e8*Q+;PufKW5nCDiEY~MgZ(YPtaBy&9hGraPV!s+k0tMvCNw?XT$Qtw&bij= z(|u}bLEBTSC(5o$6E086hat4qCyy0N8=9SCe3TIdsN<hsKANb$tn?i`>ic&S9})wf zcHJlreQ2$zot7jyFC&QJpMTHGiSF)x6bt}DYwbOLNpe4|4@FoY@j=ONc}>j3=?DW_ z9_f4}gw{I#xW)04@ms!n!byJ1YvO-9zgL<wvqOdttu^EDg{9h0{=-~h^@NlBme)kx zPZyN_Sk^kjht}G@-rUm7YdRVq)e}zgTV50PO*=Tlht_H|a7N;zdcsM5%WJ}(-;m`) zYn^+-w4|&u2|OwOyR8ZLHg`ksn146-+>k>AYqK+iv97s(Le}!>(@KKiSZMR_HV|4% zuLSf7>4krH(uSOtXhM4D_H>mCVV{4SKxi%Lw^Pd}ZXMD-ymZ#^iU;xEh214~bl!}A zOI%<6e&uAukw(-hMEJzHOAo9bmK$(r%TPvyB_47T71$%r1o1zd<#i4TC6SR-6XO}b zw|#GV$;OT94q{K7%(dp5%{fnNLA@?X++vS73dErx{zpPdNNb{A{}SHEW08*v5c}XP zuV(H07$1oi2#%hb*wL`$h$;}b)@vO;*a3u+(1#}eJ-4c4V;kNNVy7A%!w2e)sPwcz zaJ1IM+=eAbTmzydh)cHvp(La=(V+&~s9R1#KCT1N<d$aPXEi1jJuMJPG-X(F#MvO4 zgE*ij2qht{iPLwOUb=WUwmwgRSiSd(T;~RjB2NoM65|<`9I+6@?;w7x4?;;uYhuIO zGfGYFJq<qAgP4G`yzZ&d&iF{QK-hO45zS%A5yydeqD_+={%d@Qgg!K3)2G8n2M{md zEHC`m_(-%sBr(b1!x0NWRJLhSoWZM768g|Y>-lryd<+B86X!HGjms+00+B>bhb2cW z1@RotY21;7lF)}H<_??}-;b#v2H~8>FL(#F7Sa;AoR%EX9K^{ur}3iro{NOECf44G zewTT!b^&pBjgHax@w1y~fk+~y!-peQ;H0!!AlhtepIwpAhbA6)2WxQ<uM<(M;o~5j zy10gKl-5EziRBI-j`#sSav<*NXx~ARkk-V`yUmZ^^It)n71WJRT5Ic)L<@w(Q)gK@ z;%Hpe86XD4b%{vmLlfVPn;X|x=YXh#Qx{K)>%>G0L=wLpJ{-{%#QOgYD_$1Yi6Ws7 zO}x2ac3kh?gBrTi?BSKHu{|vi_IX8wdH8U|U}$chHN2Al)e_R0uxZxqcR_Q>%;6RM zucrk<w+4=2Ty@3_XXi(sA0=tdT4QHs9<$i-K9=eTttDwY#}cnkG(JQ^yF5Jt^XbN} z{9Zjli6$g%iFlo*@gWlWIQ9Ek$+gSxWkf+sG$CnAAm^c!l}PAA?}?J%%ZP%OXhPDK z$ZF3QFZkTd(aKCEp9Qw(jM0gePIwaQp>>|5+H;wsP3Ad0q8o_WpA5^rs@ikf;uE6@ zw&#pBiU|B5?nCRmhicDd#x<FVg%3xZ0OC3j%~g9&TlAp`w$3(AD&N|=XwRF(bxEQH zLS{pmb4T0_Vm#XO_f&gMTlAp`w$3(2<1-+(1|7p&RC_M-&dKa6d^qBI5c{A#|6R4` zv_&79VC&3?l0k4Ah-1(?@2=W&nFmhhhvCB!TTsJY31Wz9&uNQ3G{M%H5jTUNHhes^ z&x+hQuRXW3)5)wgd^n;bh*v;d9=A~<p$|>44QAxfARuvEyCymOSGDJEodj1s@P0U= z6NuwM;J-<GPFwV0YaC11bRGD}ZqM!7k7Shvd^n;Ne0+f(KrZ$n68g{tTW6b(KT*1W zqCJ1aYtL;yl64^P;fT)g(F4R?sy&x{Xo799y&tE7*a5BcLtcAs?}x0#U|BgLt39VJ z=0g)~gY9#b)t<|9m8|`M4@ay;&c~xYpQze%d9F0UHrT!&?}0c4t#jMIyY^h(k7RWU zd^jSjJ(u@G6KsR+dtMi1H5RRN@3<~Ww2*UIA;Pk91fQ!nKz#VM{WcH@%Ssb$gKd3v z42YL;?(%rmo=bg|tVn?mN1Op-3W%pwdoJ~rCfGXLdN->*mwJ~^<>CdX?cl=^S?#&h zyPB}+&rz3Twdckza;{qgM?7~){c!xKQ?ZZiLvPowv@+>7F$e}c)FJ$N=I-G~ufFZ= zch>uo5jiQ3ReN#tq)w;(oZEE8QQ^eFpL)BOvF0(4HEL$vqfZ=iM2q4lSKknxwl7Xp zRxxCBY?&W7&CFw^Uc4`L(95GMmM*&{9C+(fMXjYH-uOiK;XCBk{_WDRd9CS1EzyL& z!XRkT=G9!QW6ukZIB8l@Yw5^6K5^uv+F_&RhlUqmU#ga9!q55dhc$>ET+}Ok^4V9W z>OPe|K~(xayf=u8vrF?ReB{{hkCD$-YOOC$nvp;K_GM;Ys!w2FYKVQQA@`-~yQX)2 z>#N0Czjy5tJ~!gT@Z2rC7qyo3QFtXjaoRpza|hNQ81}^)NG;KXF7+UI1A9g*KvZCz zrPh+Z7Jc}{yPKb^{N<-x!hzVAswJAxPfrlsyjR!a{j~;$4Y4m(Yw7awiCHI3D)t%N zKRj*1ph_*##Q2pn^6fh;i}$7etMZ59?w|DzpXlGRQfuk^;S=v-h75nX-LP{~-$8x0 zEU#8hP78vEwrnlFh&`R>g3$4g^cCuJ*Mi{2nnBdykFB{Uu>(|V=_~OG>=}))XEfxV zQ7zGge^vKl*ZpN64#8DvEuC|p_#F8d38D)KEzyK75$vd1(LCZGN4(@TT8?sImO777 zuM*QbP5|N*L7RU^V;oNJ?$`dZi4cU=()YtB^i^qzCiK<v>q$oot%XRJwWrG|A^OA+ ziShl{M51L@E!3XAV8JEmEv0>Ett3Wx7EvH;S60Nfprr|3q4lv-uzS>QW!LaO+lECQ z3rR;(YSwT`zUjg_XyMq0yMJrbXex-Sw+X#CMLLF%wiE>Sf_MkSlOSY`FwY~`I|=mZ z;6ZRt?Bns24{g^c`hoZeK01QX5>1@jW=Vdp36hW8pG~70A9f9Qt>Ncf=hi0%KiDjM z=I*1T<NCMC>HTVmYncC|-RCB@A>t_JPa5>OiOGT!jvi?iZo2d6sOg{-p|tcqwjlWD z57TldKhQmT`m67A+SVm6ughc2mx;sT6RkH-%XI{C76>iTgx<%7k?p6Ru6W_94pC!7 zj?`L+WtqpCFB6BwCuTnObVUKgDIl~&6M7dEqVF}?yEyonouUH~0aHsfp?CJ+?Bxah zik~bFqLqlUskIQ3Gmq70W~aYTyxeqTaoe50C=Ny>Pc6}e-l2qOS$DS&i+8pU&!02A zg7cXY37Bb#@%x_<Tmdr)PdnE-9}8j{h%YfNqa|r#VB^W9gGbfG`|&4;Z9z=O*pJo{ ze>@|XmK^a??RMdfhqMg4eLSqFwV0O3>^?E5R=e=p)-A)E(1X>IG_m2CDWxasHo#Rq z2;!HoHs^Y6-8Rx%OiN^TT5`m{K<tGc_|+h^Buxy>N2QxDYz!ZjARcMgC-=e*t&I<{ zOM;Q7d6F_MIbt-3Q6Q#((2_K9@L@Acy^h!&K3)cK8otec+1kPQ5W6HKGCM6f;un<e zx;i5&C;ZvL_z+2&IP{<MOM}-pfsb0-U>0EOTg6&8H8VcME(wXuP9KgK4&uT;-zq*d zsG0F0k~C3g!Q#@4u{;raJc!qKXcUcTzQWvdu}ebYx6_9s4nRI?VRU}`y;hieE|N6y z=nYFt`#xD0K8^-)Y|t*McUTkSL+p}}$n5mth;2aJ1)@0!ElCp(m+YzIX!T;^sKc7% zw3b{I<G0h2BY0KE!N)qx1ZYW`;8mUZ&((Mbne(seHHt3SYlZP45#LEjWOlh)OFRc+ zD2OR7Ru~^*D^0KrTXb9iA3K2P9ZV{|b5pZWYcVa6+3CX(e}H%ePst~PnuS`DCipB2 zof^T%k0AQuNu2y=2jfHRl90&kwB(4fc-mWnz|(Ggh$Kz$nf|3kC44*w;vvkCjoG2K z@ga6eNMv^UaKr#SiB})iC%66ft&I<nqzS&YqnFQsk6Fma?q6=sJ@n_c#)sG?A(7eX z!x8u4s(wW6bJo^vjSrEe3D!PW-LninZUAu?YPiEOZmG4HmRg%W9Km~jIcm|N9}hG4 zTqJ3N^=`LQ*TKi{sHq#ErtXRP)U=kg0QBJqoQ@ab%sVsctiQ1L!9ES_$}}U}^1B`1 zRYXB+Nt#+daV1u&Uye2Ijj&q1<F~W(i1=oD7H_^dGmm(2X1@WVzU2|6E$(IHK->!A z5k!>JT8Pz`M_f3w-@qsKA3myhDORjMhxl+>q6tKO%TIf1iRp0!!TBJr193VCt%X>9 zc|?CR`we`e!HpkvuJcv5@ZVUit|gj4)VDmMw3!}95Nw(HQRk6Z<G#!2W}())>DD>< z!&kg-_8a&FV#DR;eAYDl7^~H_L=!qv5JtAI7@d0<Yus-Gp|udJFORrzX1{??%*5W0 zpRl9j6zu=drMu|h8Trewrlj}(MpWq%34-@Qd<WwFd8G=ig;<t(L`O9HaeU&`6R$09 z#U7Adu$x0mG@(lbpIq22LgG!tPt;nEb)1z)+(fe<$0vTo-jCz3qvH?k=Fk#N=n@Hn z13_E>VloJ=_2X%?^N5>h_T%`(f3f%DL+k<J{tqqDgf8hIm;hoKi25M37GhcEhm2lk z_T%`(PT1)*7CWBa#cn5Ex-#0rH%gZX)*yoz2jXiGT1&p}%ZY_wb}hd9`@nD@qJ?T( zn$RVJJ_Ghf%?EKj2(88MPtJMKhfn+qJDu*pj;B|#+eu3_p-Tj(J1#vY_Z*1-o!!8E z*NR;kZJ`gJ;NGZ1u;b}fL<`jtP3V%w8HXUaM`{8Ht)=TIpEwJVDepjp%9+@YqrZes zK6^tR`*TcvrN3l?peBgtL0orS<DAy|@xkx&*oR~4E1$Rou`F*zgv#cqeY8Xq`b#DV zb_H=Qh@l{~)(#ILmfp>un)=Eou0SlyZNKUkJ%aj5OEjUsOArV0osZsm7BMY%LVcyR z2H*Z&9=mN!edQDPB9`US&zeRHQ2S_!CiK@!5R5@A%Zm`x@*WUc3wxvTeFm;E^_5SI zMC8`(m-dW0FDzB)(#77vJoc}d`bw8b5Uc>P7BOFYpoY_0*gKfVZZuP0`9$aL*XDjj z%-1ofue3xHx<rDYdyi{#zkpbT`bukI?_eIg(M)~i6KxUe^(;hiU4+_4OEjTN1Opx* zP6n|Sgx0F}-}QOyMl<!5PqbLDv3L(6xITf}M@uxJOF9THn7^_36^H{tXstuWf0rM0 z#%fbv`9vc`Hhvuuj_0kc<CU&N9pYQ7OC$(h0&x<E2oaREmW~_b6Vnh2c@ZKUH$m;A zC7RGBg71$ny5>Fr(HJ{GwU)#a;#K)X;}ypgZ$^aU!KkmaL=(D15Yq|KlZS%Xg8E8p zNjxF?@QKS2+4v+xIDP@OkCtdcmo%a+oLn!O^5@A>lM`Czw3fukpbwvTYDlU00{$2i zP`^1kLaaY(upHWp@b@qXt)(NZ_{4D-l~{(+iAymup|v!vW5A$avLuLF&+k_pi_s6Q zrDNFo#LpvliWcp$cd;KvShPeFIz~<qJc$vUTZcbg(RK*FJypzI9gEi|E(I|TV?X}_ zp(UE|WA7Y?k*K;Dk?MreD6OSq3j4(QAbNoq^X2zBEzyLI6chw?2Ok~niIKG<ZffPl zD%P=)ec~jH!Sx;5EIj?uRyi%vgpPQGHKn_Cj%M8!gfkbdEAC&lO_%YL-!C0pvlDv5 zHr=l;*485ZIbu*wJ*Pdsw&y+CIjS|RcKFHmpCTGt9Yb6`>hO|B<9D~N_aCd;M;G6= zZ8-FS4P`!@T}=!-s$H~lm-)G+KkXLLM`Fvnk~&@7y566UY!|g}G(Xq>XAoKo>EP&v zrC<Kw3S3RR3u3Ql8|22pmnTUPoP)IM=|gCq0)qcFr#^{Y5LW9z<HHek8t)Z7`o<yQ zCCy5H&Q-b5w_9gD61LYK*)F`}nFgkGll9-m#|m5tSA1(?2(RX-cHuY@S_|ppZd_iv z=b|u0tU9oLH0p;v!}Cg$jE}^-BK*5~>(srYS4OuAyZ*k=_(<%6;1k2A#3u?v+DG^c zSI!+?$rH=?Ez1!>rey@O-FTiwDI<_~fWTka8)KH9Bt^Kd)Wh#;AI%xuKFrM>UZL%Z zzpF;CtD+@GtitMwhL{PTfUj+>#k73U`^4B97*}f3GW;4VkvvI?kgxC{cn3ritm&JH zRYKY>(=viUOOE&zS2Y$RkX0Bp@FXchMiX$_Sgm%^br}5^fzc0bmuVRZp(RIrf~#79 z^+Xq8C6Xse5i%+g1fPLei}geku}VnWWm-mbXvq-=;HpMo6z3MKMDiplLPmFjpgoAg zu%77Zo0}OQVwXN-#EX_3(FJ973Ra^Wf^|inBt^LKs}&$NVm$Fvtoqe<nU)bYT5`mB zAkM)WnbWYY$djZ98Ep%KK_IXmCn{i_u(r#zj6l+oBe3!;;@>b3o+L%M@x*_`#9M8f z;2m^!#ox-VbxXA52wv4zTvcxno+QqP5WFfolG+=@$;f$stP;|8nU;}Txmrtng**6n zl<pZAt@R`+f~9LmgcpGbF#=f^>x8vkrg{IT9@NC-!x1?UV?aCrf<6*Sir`aXN4EJ~ zO~mMVzo4V>A$I9QM$&1?5uc)*t_6Xo-S|i(DS}VC9id+ZVg=r)i?Oaq+htm21n9#N zn?Ote(G!FxNfCT&?M%Z{AZ|xpG8L<Yv|XlU#)Os}Q3c|75HEu8Bq@TmkDW0Y1EM)< zxEHbNSKDP;YHeC_1mCFIs71G6R>qU02-drHuBZcQ>cyz3=VGoXZC6?VT5?2>Z8}6F z;t@!;cgbEWv^YacYzMiEPJU;b=n+~gN!yk)X;Fj9JKINjjEycaZB&ge*IYTJ^ya7< zXrpSNjhbR+#@df}JHWBf00igO4niB{Nm7K{KX}#P_R-M0+J~J@8|CcM2mKv+%K9o= za>S0fAJ5}{oPxb9T8rsFhfXa8hkTSG`hYkO#BXS$JX<Nk?VNlackmCiIJHb0<?PZ& z>H2A<x-AzPACCAtd<?^L_4gWeL;6T0DZ=dl{SL%ttcI^Zi=*u_eeu;ZOHIbiGCmx! z3ua69?}QQh9a|e8i6lk1ove*PoU+4+%4=$|jdFIGKK12!rLRApV|+N`LR?h|ty+hg z9gUAfk|NxW-2Na|qQ&_cEsnO!^w(_`l?I&ozVYD*tOShq08s$JvPvW=!tE^H7sO4d zci%yaqwO+%!ZGiaHgx~o_;AFFxT>`vTJO8U-19_|BHW(pok5&|dhsEwWYu<=KH%K< zlc(Jg*P(QOU`+~w`A8%w!tM0F2E+ys4coJga(2bvnJ?8T(UK$H0KwkOJ6QYbN#cA6 zLEkU@%5@o!f_Qt!M$x_dv5m6jLoKFxKZdo~(fDx0-%z^GqpbdkR!#C@Y^4a6;hf1k z!pHU?LfpY?vG!HlWtz{`s`DBdAC9;hrTYem8n-r!=p&J&2tErhwAd9s`hp0zA5nQw zO}0_aF4KHJj=o`6<HHeOg6I$8b+l3Rkw{VmpXtp<ai)3^h&}NRUSZlOXO}+sp7%U_ zXXC>WhoN+T#yj|7gVx4JB1sW^H(y)J8Qu@JwvEQE+nn2_Cfg`ymuc2ly*ln-d^ln= zh`T`41i^eHk`%!@X2R<`z{jT`-af2lSZ@v6C})>xskLdz5%ZAqwP>U2WA}?ENfE4f zyS<A#KX?i?_2sCkYnnF7w=0oCXvq;g<(LbQ%zq2g7F`Zol13Ya-zC~gtcd|UODZi8 z$sT8q;QA)}SMW|N(0e=eNeR%k{|W#@t+nZ*mHDfFpJh&SNE68#FHm*5*gd>w`1!!^ z+&{eM_#XHjwwZHi^Uu$RYhN=60G4pJgto0S_d(Zw@)+lX1pe_%-^uZJxJ}#r?sd9w z&v+S8AmJo+x^Qp!sxcKNPtH=D4>~Y}*5VHGUMFHC#Ph8PK>k%}!i@o>iE=HBu)tFF zgp-JtCEVyo+J_~q7WcbLKB_02q)r!2BqJ{@BJ;E(fq%XhcgRcWR!=xdoi3W-2m(it zXxI0lwcL~8#+=FtXRA&ZO(bI++DC!;&|3Q0EhC`Ke|5TW-*&HWFEn?JyRhf9J>R60 zHyB#U`(X&JW%p{^x2uex1N>990n(b_vumIHbXjRF#%i!{s(x3}gtJwrizeKAlO}Y{ zz+L!~^Q3o<YxnP<*5aOeDYr7Bz<e|3PEx0fCaNzht!1D5KH2w!4hreg)r7mVsG&ou z+nQQObZ{}xxFg?P)#jMMfAOAZEq7w2PjEkx+E+B)UP&G9m6@*gE=_kkk+6d&!VaFC z*}<c=kXAdY6v3X%M<5<X{|CD^5(#~1LiSBzzcX6S2tC)A?LIH31w!o%o9>9K;G;f> zUC{rb50TJ^Cfv?25(i^kX_Vcs=CnYl9d6Sd@g#^pF|PEn-LIBN=tC23hugy-rehaf zWcSfKEfC2byzcd;I|94=qjezmuzPqD34Lh7?bPc5;#Pb^)v<eioE8YR<8Zno!kB1l z_YWo#`p|^8<1qRO<CP=1gGXy2t@g@Hcf?`v@d1d4ME81$gtR8yUQ6uyHFf*1HU4gV zBw8TUE}`kw5bz-q`p|^iC3F^ijKGM&3voUYEf8wA({x8*KWBvfoW*!QXCk2wO}O1o z98tr5&M4l`>9jy3`?0#$o9>7PAQpmX7~c<((1#{uZ&nceg!ki6^rvgvy<|=cgxY;J z-4V+`oCV^Q__-1ZeQ3h%KKla11oZNE<<qXUkXF0sraNLs<l|uwkJ~+QiG;K!+%CG^ zK^%eao7sG8wHDH9H{f(foCxAT5FO(8TqLA5;dTS&LA;5tu5(%YXf34GuEyz(zz)y| zJ3xzO2Wa<tiG;K!+^)v`=mTGm^yO)Rur;dLojKhR?V-7f-<u@hLnNd%A@#A@Ga9Kq zqfQHiuBjdI5p3^`m7kTklk{OFr>naCRPHi0^|6gJ@jeJdTgaJc3yEE5A#H2wlT*ZV zAX=ktZ=&jU+Da3wk8QjR>;{YuMNR#uSGU71e6XgD<9?VL+!9%JJ0)p?HMNb;kX5%E zyYRu9I*wmrYH&;3gR5dRk~3A^P6>Tzf;F{`&#(x@e^68R$C_$S3j}NGeto-{vT{UL z-A-GiHNl$N#$jPi-4b>CkE(7rc0sVFj-$hv8r%}}L1Kxj+bN+BO|Yi6@nkLlaVp07 zI;pzd*ag8l*u<~tZfkH$v;cu`+T25`Zl{DkG{O4V#>L61+vB)6rluAj)e!J568d1R zEd*<7>w~j0P4K0Cv8vm}2Wx66D@U9O0<m|BaqJyax6>AVXoB@|5_=~??42l%z2me% zu%?!K?ueT3aSw>as&1FE(gf>cdk5L~>5iIu2iDZuF4C;2<=J%v>)m}pT&(JLx#yZ- zO>LjuCGf#$B>Snl-PnZ>*3|M2I-(wYJPM+Ys@vt+)dcHf`$n-<Yk-=1Xf0Q_%R6Xm zYFn2$;#CkIVSeR9)(qY2nOa}oK~1oxwl%{CAZntf{)~}yaP5f}(zd3yHJl@!0<mWA z6-5)R2R=kXS`(~~ZJoFZ#2%=r|IJ!dYawlGR1<s0)ZmuD4(aGXtm@}~rEZrxQ4>-h zS68>gE_~R!-R8p)`WuH@Nk2Lv%zk%sg~^Es$+xq!>$FVFfjCdu1ii;6B6zKjw2Ayy zabI5ak@Q%RPI}0H=|gKJ{r0~k^i^p>N~HX%bgxhMGR0Ckp|z48a@JK9$TH_*i)l?r zi6lM}BI$*JNP2zBQaPculD=pbVbJtdX+laQ@sSX6Z%HTptH1Q2wUS<6bwpWNX+lcG zyDCE@eG%AA-jCRaU7eDC63eyh+r|5oO^8IwtzTbDNG(x*RY@C;D@pnce|c3}E9v|E zC84iM6H+4OSCzDuu$#2bf9XSOC4Gi0qCju1e7gI+3=mQx$yFsp(k?+OX$Sw(ht^73 z=PbfFOJ9{Hq(qXdN(i~P?rFFEQYrOvLbo_cJ6PRSm6eqyq(tZ=D8%u?xmTvd(f)h> z>{?=)vjBWv5nmQ{j7=LNh-1nkGM<y930gY(-IL8IXA&=*5ylf+OlyCVwm#x`;fV0( zw3z0c$DYk9%oS!6Iv;65XzL@67miT_XP0Tt(CqtZ2je4~pbwFx38AfzI9|B%Arcat zX<Bt(TU*kxKc6rq8cWiI(3Xhfg&Q9tA;B55gI{ZBe8}%UK_4PX6GB@;#g0zwlHkl= z-A0ESAK3(bh$Kx2ZGEU1*oj>doZD>m{!zw9HbEaENfSa_A1ao2VwVKxX!*3$QZ}I_ zX+mhv2YQyyu3XjVUr#qaJfaX^758(NM3N?WRiwSLLa)!34<$^q6y{96AjwBU6ynm2 zBp+FX(AI~F5uezl58lleTKqG)AM|I4f)Ml}w$g;q)<+yK+~h+fB=}TrII6GlA-`K6 zLePgu(uB~~M;!gz_z(#RI}_W-_>kXyf<8o&CWN*`9R1t)5D5v^5|dv)$M}%neS$tj zk|u<<L>&FwJXaziA$2V+$?ra)C22xvOX#{?B<2d^7JzB_okS8ZJitlZC9XDWb?%|a z?Qf+Xug@rTTi(f}xkBvCJ=>Y5#3!`Y(lygcM|3)(dZIwPVvA`_aD~_tM|95cp|$R5 zTEu&vH$E~6<3l9$p$V=K>(r}jh7Yav_~NOhPA462d}I>Fhe+r{6I?Hx^b^gj42wCf z^-)+^8aC_{<D+^)B&0QASGt|z=OekQCk9x%ny~Bd&dVUQ)}Fnh(z$caN=moWP(>8@ zyzolI7So#Go!#@ze`fg5T0O^>O4D9F-}opa5+5R=4^7zhkZ~LquXMGR?S=I=KFWy1 zhe+r{6I_2e?Vx@x9|@tg-o-{z$w&2sNa#Zoc6};m{^EBq@u9V99rkW=KgtNA=6;BT zJ~Uw?3!ItZLu(y<%;MxpEF%&hBB2jWaJ{hiv=`*6wAQ^77AJ318Ikx934LgSzJD2# zjuD^MdK@QoOU+O{ArjJ>U>P1co@)@&b)wcfe$;}bhO3?s34LgS&qAZ;+GP09T8o#@ zN$TC|36ao;CZq;0&xh8s&#|rBGYM0dh=e{gA$7jFafO;VE#&H*mRI!c`+JEiVn-j) zwZt@6%JRv;Ui~C(h@duzZyGLV<d#H|ChXc;Tf<>*YV1Q3OlyCVwmzERY>rQHHiy<? zn(Kl)&G?78!fZn4BTWcxeRRTkMX%zF5v|2E*EjdNtgZ2pP0)u((uB~~$ALI2<rbWk zqP3XjI_;Z>wzef5`|}A?qOl}R2yKZEcV1q(<%wI350Q}Is`Boi9BO>X?><2vB1scM zTjEYcWBX(LdB%rGNN{z0y*)Y_AM(3T(1%FUgwXL-+4G8w50Q}Ij)B+O9%+2Y?><2v zB1scMTjDdECG^IZz07kZ5)$0Uz^9#-<aeLYk~AT-M-;V|T-Cl$o@sn|L?OPaB7KM? zP4KEnTOUP~)oueDM_P+%mcq2LeUf}6L_rA22PJ7jXzQZ_OVB6cj4G|gH1Fm;>-#15 zgZ>Or5Q09$R+<pn`ZyW&NSzV48XqDd!Kbp<5tkYt^1JmR1bv7kO$cp$#P6W-ArcaH zA46Z`Lw@%O`VdK)5ZV%PU1EHQgam7eC+ePWe8}%UK_4PX6GB^Jd(?@|afX}LVp{52 zTFNH0BuxlyedxMfB<2d^)_`gGorIeONPnfczHjP_C7GKbp|zw}T=tFQ5%TpzElubz zFaN5vmh1ca-)cS~w&+6>@|{?obFJn2zI?{GayjlNdif9ueP}|ycguZfE!X#TU&!Tz z*rE?j$alL(pwHlIxxTOa()S4TUY&$#P009zM;ISk%k_QTh=oTOA7YC>G@-|2k~?U8 zXf4<GwPQ;%CgT%gi#{|V<3Y()6_7GMw3h4px)G#=FbUcfTTE+0k9e7@q7RdEt>yZ@ z{uo(#K4i2`6D&iH6q<|SlUQI%a?AcX)2{F9M)auX`w&}cg3lF4JQJe8R9egReci~U zN0`zTTckC?XPP6o9$|cFE!X#TBdq0w*rE?j@ZIDHbV4v;d}uAcj~rDYT}Bjy5DB$3 z!8(Q`>C{U~*Z9y{tXDXyLb{Ade29cvnqXbY`Gj>8s4~M^#9d5s43xP)iefZo<!p z*3$L7Be1(IiX%rds-st*3&HkEzC}#r$cT|6kDWcdLQ6<%f^8JPWUwm*K01Q<7KGLk zf6TeGiI(6l)4dQSZ8c(^X)UIu+<amnh}%G%f_0Euk|yMv!9<RX;>eMV_LkUXTJAqB zIRcR*qd0P8s3mEFeF=WOn8=Y)968eX5W6JgIi@8?AaZ0BM~*Z;M3N@hC*s$Oi5wZl zkt2-{u}ebUNBVFCB1cAX<VfQ~Bx!<uJAS>G$dOSTInwwLyCkH(q7O$Pa%2=ojx;_* zk|yMv!9<RX;>eNao{L=)Qj5}uBM?6^iX%swdoGeR;l3siqcMsjM;aeumxR>w^x+6Z zj*Q~Sk;aEe(u907n8=ZaK;%d>n;~}Ps#bQjy?#gVs^Z9zre`UVG~vEKnDaPtr18Og z&@KsScO@V8`vXw~qd0P;@gcU-gnToY$dOSTIWp2(O!NM8d{6F&{r*7Y$S95+8EHwH zkZ%SPIWmePM;aeumjs{V(N|q!d^iG;BcnKSr12q=G$G#%CURsHM~*Z;#4ZWGj~s91 z)j9%^BcnKSr12q=G$G#%CURsHM~*Z;#4ZWeR~!YV4@V$!WE4k^G(JR<CfwHqB1cAX z<VbVR#V!fyU(<&pc+ca=k>;L@Bu%)l2}F*J;>eL+YhbQjjYc`57b1APiNCw%46p3V z@2FUdBVKY<{M`}1;B1bMv2O5EtOnFtOiP}8VnNU@`~dr%M`FdHmZS;EUl1$@(dFCC zxyx$Q#r<%0nU;G)OO9xSb2C21y1{-}Kd2>XLhe%#ECF#hcK7$M$Ed*0F4OXi(UK#6 z!&R-py1`D^YpEq^LY_CoTn6zX)(sBBo>8sEw7e^{<OrS^(hKVb&&B#dElCsd-UPu( zAR1zYcU!C<)LKkST|!HaxBz#sEmj(S4?;`QgsV$<y2{H~wY(PV2elT{Qg_jkBL;xj z3A=vJ+joVz=ORfHQjZ0};~-XI72rRxeo$*MEp;$`IN}Ttjqz6X0HGymLh9onI1R*Z zAg;s?X{{yx*oUVjNARjX#8vGHLQB#FuZkmVh%EwQ8|3^t?DW=JOiP<6S8It{h$*`c zt1{2WYH}?}6D&iH6b8Y!xaTdf@^c>IuxKr&rERArM_@Nc_#lWLSWT`aX@XCQ?K5Dn zOn4=BFL%XCZ>`0&^igQZ5nJ%I9|Gc0?A6zjG{L9c_I-W^@h#q{!y7Ovu(Qjw^tEWo z5%p2Jb3p75LQB#F-&)&;n+zYXp)TozNC;YsY3Ym7k|S1uxDmt&AhaY+u=e3ddJxQE zK2XD*gO%P|i)rb@(~=_)pCP;h#GW9uBu%(pcuUmMEAY4XJodt!U8beqPD_q>1`#~^ zV2AWAh-INAX+rA!Ab1+Y1t5maV~lubSNw5am6jYKQJ~I1`+?ov)9vnVteQfaF*!IQ z%=vov#WDnOqwp8z5#896qzL(1!r23eM)Dl4>`8ooXuIOC#Q|8eAFm>?-)c|d9sd`; zCYqSIQTD2+MS^?WZ+^TYMNGho<v-A>@qT!=QiOab20;l#J4D!c)5hdT?9vDK>K7jE zXnZ*0IS^-nm<NJB5=n}X?_Kn-K&(d_b)1dKk=UgV#vFLy^mev%ldtVZk@MBqK{pYR zrcCLIBt^(~dk~BR(Hr~vHXxR_w#zhQCv5KD-uQ4tTM!qZRl5xP`{*N)qzD;*2!g+Z zXo}kBIukd_*`*K0fH>l{!;KF|ya(dkU{Y}l;-1q-B1sW4juHglfoO<YbPS@gYr9M{ zCdYvNv0DL_9C0Ox0*Jj(?|PCH;l`G@zWsUJlRZq_C})>G7?VSuc1Q4hIQ|_8f<6*S zijZ+FbH-uBeWOpCxKYlo<m1ej>^dn&u+<!mtE$2m3w<P#I3GgLw;j2=0y)0{IX?=k z`?X!BZA^{}Oj$YNTM*4a{Clqz#z!Ja5iDK1n(BR)F7Dv>IITe2W!lE%xH!2Vmgo%P zdl0u^UxVBaBS{f_7Pxu~Q8q!$!?WAp#Eo)x>BGk4_-FE5S%N$DP6zQ8`d9Rk*h&$6 zrn!0xeNhk%uy^oe>>AN_ndW=m{qR1<ha=v=Rn5gtr`K_M1brlu6v6l0j%@#dJNOvl z`^>|c7TPY;tgm`@JjeKO#Fh9qI3Ka@*ZjGy@sUVU1nU^C-U@=&xT>kB6Q9ElO>LKH zskM2vj^LiS`lu5Zf$$_Lf;F{WDcc@3^$OI~&2cJ8+OD(!wB!gqa))S$)1|d!T3R)x zxxVO$TU0Cy4#)xawd9NCuZhG~?2oM)3A+Nyu1|F1aFl4f@{RM?L}ClHCb*Jo*sybP zKhinZTJnuUAJr3y1X`Nl>V&~R*%ggRJ_@v@wd5Ozzh@GrbQ1}*G{LnL**>(EeB;nZ zCSiOe5@>0HYeLG(%H%_9$u|ytR8J%lXlcT(ZAsm8<3nr7Hx7MNPb3m(X@V<xyl1z- zn@?L>OTKaVdl_LK7f%8$O>nKz5uMaHHGRN~uSI`m9T9#nBaA+YM1r&?xMu3Q+Kf&L z!^!*y39TjHIQ%`6FgZ^o(9#6ge%0HHed@FittH<$^pQyzABhB7nvj(|<vz5QeB;nZ z^+Y0pmL|9s&&vm$AxplNeB<!<GNK?vB7v4BxTes%9|oW;ttH<${Jo4wd?XTRX@YAb zz2_?Np|y0aT|JRV;6oEheGJ?F+FF)q&&kCqet)ngdg8SuCe8fyJA4+-N=Xx1i}hpS zs+H9fm?g8{nY6{UCYZlA1D9v`&|0kLc`i2TOv3mO3AHrAQef2E@_cA5md{lqHya<B zgz+H~`p^Vh(PWQe$O7XZwM3F8XvxI>r6LLbGlaHlSIySMn6-=)*0gV}M~E$IX@Vuv zX=wcnLTlMov)dUTWki9OMY|$lS`&OqTD-~FZRvbyExuhdUTt7}lo188v?~&(HDO!3 zrWro8maQck8Xsju;zK0#p$XPXjIzpWG4~@Ov=(bS$w&2sNa#Zowzb<i!-v+gt7h%} zC?j}zrmRFlADXbO9ZvvD=R<3;^%*wIK38P~QR71-^q~p1iDgf_A+#3TS9zn#h{T6T z=tC3q&GW;kn7kjxht^_mKx&5S36ao;CRm1rz6&#aXf5_?q=u`W5D9%~g3m&Wd{u@I zt;OD%)VtLaBB2jWNDW?IR$7bC@!|!GO%0bx6lhl@Olv~w{2<7h&EV5OLTVxz3A2%I zvu88x(<k+cPh`(#loNJtf@d8552J%OVLb6zZ#JX8SL4u!Bi;t_0*H%2XbJNnH4%Te za}$l>15s$hcQG!y59TJc7SmF%_(b+>Mq{szB4Otyc*fx`xT?Dly%poT#)sIY52;st z;slH#{|zHWJ-ykC-Hi`Ta17Z-f<6tzSd0{PQ?nVY`{+aJ75Z?*Hy~<&cpsw%T9PI> z7H%V2Z-epng&50t1EU{Wi)pD>Xvq;bp>+4gn0^a2n?YM?!p=>whRdGKsA~wRSLnkL z*|Qnt1m`Af4VN{WAy2#1EA-)rtl5k#f>(8>IpZ*EHiLDalpE_P$%iF4SM&zvirz(} z8!br_EM0rX;dvnb#0*w&tDDWBT@q5S(2^rKH_;8merh&@w$cQj5_`tsu^@(H+~-s^ zo58w|gw!ka;fPwesxv|8*$moB6MR4H8HYdM{g{uDqJz|IhV)+f*0PsLAC8!Zt9k>Y zwf7)4j+W4eCitG)GY*@8cnb5J1&kqUEv8vtvByeFj>wwLpsh5)+Q*)8m^GV0yCkHS zNgs~jJzs*6qH&05ttDxKa})NA!_zSX@CyEZ$J~V0Vp{s8wB!hx&Dc}TX3$oe;M|0L zKeA>s<Z0Kffg{+U$Ln{K858<2B^uk6xpeD;?V4WkE4I=E^I=;YMI`I5Xp43ww|>q^ z#4DH08Wz!#)dIY0)e~BhCfpsQkMwR1+BLb2pFUd3CbT3?xF?Z5(z`kMB$AMKf|jxg zElCqX(?bx%>)S)E#k9QJw3JO~NtzJa`iR%*8y_MeA$1fj$?ra)C22xvOT_yPj1Q5J zklLA+<aeLYk~AT-CDOY&Scj94HiMS32`xzzLVG@vwNdi4(=Jb?pe2te+s%<h2yK0Q zXm`GtwKyW-Rk3{7Qp?raQ!v03gwT>SA++@o@8B^$L_&i1nY|ZUlHUzc5JF4RgwSz5 z>`o-(LnI{lyz(3iT9V(bk9hBr*Y`;iLR%l@yE%4OtD71dAK3)Gi-bP-rt;(q{w`_j zqkK0<W8;JM2hXvnp3oBd(1fI|kMi9d4U7+|YiTK)&=UI4gruzxUAK$GTw&ZAFfG5E zbKEml<MP|UuC0~lSXv3U8W-odd#yp5pby(};vDxVKF1v`r?V@o!Z@BJd9nn~agXA2 z+_5^rt~R3<)6!?~37q2|#pk$tEl!$X>DoTSU=Y)AlJWqYiKMldmY$5<O-oG2Rh^9) ztm|=FvzDX@*BTVCuJ8D^eRAJ#XU>pL?2?c^94$E_Yc;Oz`}hQ(Y1@Z;4f(hZ>#u&r zY`C_|wDd*k!x5X1kG;1UQCWr4v$Z5m@U69d(JdgZ#tGfu4KinXCw585w>m93qCSX6 zF*EvK%!X@8nqci?`_x=Jcn?k*Uy75)wHDLzZ9q$o*dN435XWNvTuah~YYnni<JxZn zyBb%Xc1L8b#$}5`AM#a1->x;NjjQ7NUA-EYcIB#gCX!ENt;WqFq?It|xM!@!<(HSN z#@*TYaKu<ViSO>vC_28mIrBdGic1r&HFyHVZGXO196X4t^qgI$<x5yf-F~Ik1@Rq- zx|l!Lk~HC313p(de6hUtX9wd$?2?dgby{-7t9aV~z|)R%+>H;BqzS3>gWyFFuVZd| z3g))87Sl2^K_8BI2gLm#UIw8hX~MN1{{(R$X2Y+<Y`E59TE=8($r0JBaXFUZ6RtJL zUX9B!8Ci{6(`&D=4jH9ez8aU~#y;U%gY4C~)~>Vw%!eb;E#bVH`A55)GnZ#qzKZxe z=g;ja7->Rl$v4hl6Jkr}gK4e<u%~&XeQ3LKKmM8!Th!8oU9}L8I(s?STJl_xuAUGH zwKT!i7xr|ObUw6}ydR{iCqzOmP1sc=@l1o{17nuHmVO^I35+4jZopm5bEOHpvWBPK zsC*b7T1&>rXepC0K14z-O>k9@J+&w8Lu<(x8R_Z?kx)w$T%E*cI>|?Y8A@wOYrx;j z2!m<~)0&{~o-cjo`!G4zTG9@ZE+Y~jBB7QhScVN-y_exbYe{=fx{OGCh=f|2;8Swu znX@x|Xf57<JC<dio-)FeuGpdvP4JnXw(HCcA6iTLSEQ>aL_#f1@ZIb-W4`mjoSXZh zwfH{TnOOUtdqhD9u|*%6U>(!uhz~P-Xf4(&b}Y-*a2}EP5L@)23D%WOwtSc2Lu<(x z8R;@2@gWjwX+r9J=GSixw3e>tH4zlz_*drJK>H9auD_BreI&6BlW2(2;)s^4*pe0} zkobwo`dt#D#qvq#JP6{*UuF%YTonmj((=2#Dj~G3G$FJl;s|D;)?!*eG1&xth$Kx2 zZGFU%*o+U6kkC)Q{O%L<A(Av9v?b#BaK?v7Na#0Me)kFb5J{R4+7jt#h^#Y6=$a^- zpbwFx38AfzbTmZPmLznInoZD$NYaGR)<-%TB5QpT(q_<7HlZbHLTKyb3q(A*_sd?% z+FE(qX_u`fEqO#i2rZF(2qCofu__+F(ppTj6nMs+T&=XuK|u&DNfSa_9}?S8Ycb8c z$usU~$s;nNA?~Qw(^^7k>m!cjY1X8Qgg*FGvKK}l^1C4lLTE{v5Zd~PBa#{)A|b)I zi)Y-?lKk!yT9PJ&wnQ9R)%Xwz3Dy$q71NUZ?h{&)CWN*`93eJYTT8nnSP!zUrKM~_ zOVWhU)<+y0*VOGIF;}R*Eadkf$llFiPFOX&IpoQgmLUiRV>bu>!f|Rh2er8RSI%UW zE3_?V$M|g7Dz%$K2svTZC%C?SJIpS9sdjVl99CJy%oA39;$VD1&cIsdhd_9ecy+W8 zQs)Q30DRrOh|#D?7>&|)nU)h)X~_{a;3J2x)Ne83<w;TmpAy@Xc?-lm%=Z1;oC5Cb z(ubU|N=uIT7;De}#Qu*9vH!!9qzFFkwhy-&1kYTur+_=V^dTp#(vl+%#8q|27{CCv zo5R>j5qxWH&oXN_2TyLL4>@6#J{*y?o5R>j5mM)8@8;mit@I%$tkQ=gvUYQr{&|XU ztwGjq4xZdfA9BJfeK;a(H;4JoND;0zI0DaZdN+qW?aT*HLZuH!3<SZGFuG#@hbM{i zA%tr`&V_al%(&mQkKWBu$Lw~J6ILZ3w*6pyhE7-kafaH>VI=UO3D+8A@8-bQC<r-W zl|CGiy_=()aIHc1ZjMIAhn%oVACBNoi=Q##wGrc2o&;B=3D+7t0b&zIqo!jtiq|e$ zOv?$YwB(52@J21h%9_Kl|HG4{2-g~LhtS#B=QRs^k+of><%CsQazqhC8xRvgc#;(1 zT7%a>w7~ws=gcYK&Mtk(39Gc^2<{B)i8}FFwVT6?@1zLV8eD{$`c>@axOb-B%~8Yd zM2XuE`f!B)V&QsY`C?&OzF3&%I?^`3|B?ERN^6le>rnraNNmOags?j>@D|{o`;L;U z5-k~L;_uZHi3D1jusbm7W%$rqGR{OF)f0&XTAJYMwtId`kNeP;){@aE{+>yo5R?RI zO>iw<whyf(<4m-aNf;lA1X`M~J1|mZRiG`cCF4x|y?P>%KuZ&L2S)0i8y{LrMx*GX zdLofPOA}n<={>szK47$^wPc)$zn2l_k@O_c(gfG44!9~_7tZlS`oRDDS~AYW-^&Q2 z?@6Gg39h;Qy6z|L9V`$bp|xb3iN9wOCg+I+TAJY6;THL&89ua@j5E<kCSiOe5@=~c zR)U&~_sU9Z$v6{zR8J%lXla6LxxIXtqM|LWCF4x|y^JUrL`#s?1lOc{_apJ4wPc)$ zKFWy1M<RiiCb+iVd#(~6T1(g3)f0&XJ~WZk#{ql#i_m_|MNfZWcb0p+GD{Ks-OX*Y zN7fKM{RyV0@7t9t^og-(2kW67{2D9IJc-IVe|Iz0?|^86wsxl3x9yjYl(bL$imMun zo_>|-=__0Cp$RwdJPB>>b?E7jFg<;zrJor3aKtCLss-rjUu1gvN&+A9jFE8j&Yyu; zi@uNT={qg@kSE_K4!~87s57GS7Sq#Lwo-(fcWw{jFs!Y;+U(nQcIiXjVES+bPnJ6c zD>Dzl%1lp^BHX<53J@F77yT5wu(e&Lr6!^!N1O-Z9Q1cj!wOSRk|Nx^^B@p^qPz-b z-?p<$A5!nqk|Wq}=ie~1Z(B)Hgqx}UM@+nB_H8@6k`K;Q(}yE?Ra<dYy-iPFN#cA6 z;pUxtgE$#E?{9kgHXqcIavR!oXXC>W?CJkK>FL{im^D!F!8<5~o2gy|BE(vQx>!%G z?J~{himS1u)a^`l4#XG`514)1_D&f|ijdjmAmDQ~5nrkO%)V`Bmp=HkkG`s@@!^P1 zQBK#|?^^Vb?GtBKjHd`U@4O1c3cOJln|<5PE`9K=<<1~la>OPO6F~GdJ$)rf5pLf3 zDG;}#E}3e2`pzzWu)g9BC;D(i6^P?Oyl8s*N|GYnO!XKL%~8X>XnOk2E`3N3nLZrB zH>x&j(JiK@uOunL%{zBOO+5!Sb#5+u`pz!X(r>2^N61J~Z^ZrZBq<`P^Me9Litrb% z#QI%rSNw5Bk|`@`B~07I^;h2_!m;+Dwc3rZ?b;O*X8kUR3N1+!uEilDJ~Y9!<W~Ep zK4PoIafG!N({c~0C$uC@2yK1H3OcRDv^-0+luc+!nh@IhIKakMkF*xk@=nlFHlZbH zLTKybqj*K5)?!-TZCc7Ev?NUkZGFf(ORdGU)M~VpO=wA)5IW9BJVLLvn3lShma+*g zNfSa_AD?5UVJv1Ev=-CSX3$bLp(SZTXwOGZYl%Ou#iFHbLQB#FugdQKpqB_`)p%gz zP-`*G^5Ob4x!Q6<OVWhUHXld8%>=~L*IG>TK69NNEoBp0k|u<<K2EW*)r}94kl^#m z^@6k{zx#xiqzR!d5x;}Rhe$~9z2jO%T9V%lQ4m5)(uB~~hpg<^T1>P4;A%`-@`!>E zT9PJ&wm#xI(L7foAt7}wEy?dTA3|tJnh@Ihh-+$7w~NGFVccdgEx)5FKx^Y#oZ9Lu zrFPP)(VuIh(5i*}W2@##3O+#}b~nf2h?eDAPN#)-C~2J~PnN(pP8fgVAP$SuVp{qP zK7ntXF#g6dHACV(MX+?awmJx=gXn=?#<Qkh;_T9g^nK{V5hFni08s?tNm7Js4K{<A zg5FXO)4y_d=|lQ(wB!hU<Am`yj`5L5QUsrNu5}LrLm;9YzH!hOb#|GSz9@Y-;!y1E zyBJ?ZSEFa?Nm2ygTD#-$A0U>X_j<SK?>f8mAw6VTa>POqEkNuH!jq&3*BX2Sq6vE8 zFJru2+hv;HIPAmIk|Qp}Q*s4*`n&J5!rb#jk|JDdfUgOh6K}q8j1RF(AM%YuACAEH zO&EXU7$1owMYz@g-#CWAHx9nloL$KWSO3z7BY0KuH;$<p5=op7Azb@`Z=5jx#xXwR z8<0Nan^W>(+YihShQFb7XX6XflcWgO8stGV$5(2IuT*W9Y58`hB}cTw9qflM;fwGk z>`79DYYi|58Lq;-+I9Ha)^?eeFM3*X#MgK~o(91$dQXxfTx+lb#3am3oNnU7IlJ^B zBNMdbh}UsdPh$RK97ZNQNs4f-!4{O&)foNw2%{g`F4Hn5LradpH%=IT;}{=_Bt^K^ z0N*%a{EcJox!9!-8C#+cN8lSLjK6WrJx?Sl!nFn+P*X3CN2Ahqr3Ii5N1z1>ZM(zq zT|U+E%0;B*jpFZaCQcDZ`da#Z%p{DDL;_k9ZeA_zLu*NWMc<i(@sUWNr3p8$miD2w zq~4{EOv3m`B+$}?n^#Nw&|1=d&`0$|B7v4B+`L-aht`sIkUpv>5(%_4;pWxSKD3s! z=k!rMkw~DW32$Cao<z9wwPXx{zgJHr5@>0{t>lRFQLue8UrWXSOj*S<f7DCf4|7$C zE%?v`eJ86XnU4Zl+R|F`o=ZMF!T_Em&WDMfgEY%9S<C79&~|mbQbr^`5((^Tg3m&- zCe`zywWQuPWtAopABipa&;+09WHqkmLu*O<K_Ar<i3D1j;JcZu5vC9RE6|qKl6H{4 zmk|ZaC<(MQ!8#^c9qswhTGF1=M;Vd$NF>nG1nbIVmAB_ZYw7+&89^T==ZOS9G?CQ# zRP=mkE!`SuA_(eZ{Ay$U<rq~{Zzt07uCyPIbpYy(vg>yrZm_(<lcWg!MmZmvU|PTP zNgDYG0$F*cwV2j5Q8uCTktPz__>dKJT8n92qh=HIA(Awa(8kA47{5Aqz_pRqVp_Kh z*#v!vBuyl=@geIIwHDL5h07-BLnLV;p^c9ZaW>$mI44ePF|AwbY=S;Sk|q+``1lB8 zGV2F4Ha<i`Liaf2cLM}M(1%FUL_!-x*1c*irjvI9ma+-@5J{RyXyZdx{Aw-nXV+q> zo|;F{huBIJ^euHs5Xj19t;IA;!LBK@S6fa<J}5~O32m+_zUQIVVw!i;u8s5S#2^qt z?gy_VO(eAO(Q~Kem9<a<X)UJtRN6Iuss{H6`Vd=bBB2d&0^Y#^IG<B%G0nHjw3e{s z5d|UWLnLV;p^Xn&*{`*jW-Vb_eOU5{f)Ml}k~ERf#s|+!U4!#dwHDJ!T?<PdQ4oSY zM3N>F+W6q!45`}_39nFE0Hl-OgG!val)t-uxWvqu*mYg9?p4;-(qBRcJlCl!h$*v& zS9%hx@zMl+*xek@;*01)d>J(|Ge1sCuOpK@Sz<B1)dI{%-5IYulhtN=b(>FoyR~ij z*kLWhd)EvrdJ?s|jlZ)D?T*7=K-{-(bM6nsztVP@mQ{K_u>!<vAR5=KYihW}R*K-W zz%}AQa1f&PH15<Vw+Rumv|XlURUmyhVlHyN9pd|(j}b3Vk|Ov_+Z~7eqF;tt%Q0sB z%Gsq4Sv5&Zj<^KGQjB=DM2sy@k|Lze4}$(6R$?sUXGF}>cA1v7oV4VKy7+e914IFY zCrJ@f=Lf;QAa25F)H@iB(sr4aRjjn+h~X&R6^NL%-+n91Jx?SlLhAe=7z<(|=7m4O zX&%}x)3O?uJ{)lkh)p2Yf$$_LLhAe=Ah7{N!}c7%a(2ZZSO3zIBN$ih0uUW>{)Z=t z^C5(5KVAT_8fA47&i~MMnU>Yja<#Vo*c+vL4~XZmp23r(2-kjW4<f`Jyw;3gIlJ^B ztGsE+5m)1?-T+YpF}6HOijX=#2>OBu@gyFE(>%0Yrulv}88gdoeS$qvx(o5NUsJ22 z@sZd{5mM)49~p>_hxf_-hKO0(F4MB=o>%LLFL70yFzS2;M!Y;pijX=#2-<>Jhmq~Z zIL$-bWtyvTxfg(z9PtuLcOpi-4#f%~Pm&^}&c_KA@NpXI#QHcrLfd6p_B7CvBX$Du zB8bi)JV}ahtwDd()FV(+kBIk8XuHw^(2^srL9fy@I}^@}f@w{sKRM#d(#3byLfyBA zO+Ooy_<In19{(N_g@A<CLfU9$5xK;NCXU?G^Ow*8d^kdDA?>c@{}Fa3@IF=R|KEmA zLWamtlFF|rLgqMo%RFXC>V`rRC6rPmeM`FKc5jM8NlJsd-4YJM`R>j-hGWQ34$5>w zg^Y!e_<x?Y_Oti1_W7Rv=XJkX_xn8W^{ln_`mVjkX9;^cdLDf}`@mINtLTVgio@&r z6je?@5AARX@@M|^crB4iOP4}Hgp-zCN!!>wpm<n56z?~$nC}M<GCNGkN-!o2N>N)E zC0a0HNd&>R&kZr&bR!!w9}oX&%4+#+JVC46WX`45^rnUw@!g+U1rm;wScH83I!R&9 z1If@@B^48u_F@gHz|xgkoWhbdu`f7IBtjcPA_*=LstYFHOt1~g?W?z$x-|FpGuVe( zK)p&xtvc=%`uXS7I9o6QgHc=-A)cm{s)W?KqmTLB6>EMz%l-`-#;#XXUnP;RmLxdm zETOu~#JbPnXIa)zG7%C|i&HohCk_iHq{JdbT_6*Y4XMQ?{nY=J(Jc}E=Bf7B1eY#J zB*9Ns*D(kFOT5*1hy0Ir(1~B?uCbNS`s`CVyNfGXB961Dba}4{+TQ!olaX3SYEb*Q zPgR**Dn{H@vb@)-Xnk)IyoJiRBq7VtacW;!=w3j|uEqMG)O!5-E3}O%JIdJ4#`&e_ zBA5J4evclRj7t)-3>|0O#naPUfar~WqSTt&f!g+c>U6KN$|fq6n4bO$%E~Fy$d?jH z$dZOXz{UfTrC{Sq^pK^N(~sKreX82w($=$aoUtIto9A-$kgd1`VL!pf2TmlngE&ts z)k5pvO|Q~6X6%f$D^6z+v?5*`V*?qNBxEb$I4$em;L}Q(hy8F;>z%pA#=b9#DVsP5 zVmp-;ZY-1%N!YE=`$ZbVLlX%6Ni7Z^s!}w3Uzzr5wjg9&sR;dsb1tuUgMSb<{>1KR zsl|C3yz4?1$7BfHXysFnsWx^;ONk^nfBIeG3`ObA2XQ5OOHzxUO+WukmQ9oeLF@D- zKv<ICX%fNDNxyxZU5y4L{{bSGRxO1V*Ri?3o{AB>QLl=FD2slgj7t(+-%LAStl0GQ zH&Ip>(0i3y{9Ab{?~mA<VQlf~>Fr^o9S9khB=~n@-VBEeEpqFCcmaKCsl~tf!6VOQ z*~BIgH=-@64L@E|A_@Ne>o<cl^3w8NMG%$X$4hE)+g0pvp|CA6#NJZny^=^(tLwMA zGA>DQJ7#(rBhXguLRn32Sjm-IP7BkDQh&!Lu*=({&(rlPxt2r_vOUJ_L(rzra}6-M z6IyJKT56l<_vv#PZRZd7A6Ypced;3F%^!ENTlBn;)jRiuTGa_&#@8*zNzEeJlXK3h zVop+@F>##NK;$i-@5Z%K6TcU2=+Vc#d(!aMUxYinYT;c(;l(DL;O|@F`xDTn4~T@N z6%dmyX{{WKfFk<R!5`9#IMljzL!f2Cg9i=OVakX89;*2X)}nlHSQ3tN)%Rn)YW1om zPtGZU@oSd$u`}<#C9)e9QtI^C^Vs86G7Ov4WMcPR9qgi$TD=yP$nI4lTlK401Ur{g z5p_XGNt|HX*r<nHfS+RKS!&f@QzHA=SIbrTmoL&bQWIo@C2@jjW8>prdb(S%b5d&k zo>v0%Vk=QrbiTG^XwN33Bu+4Gh!OjHCfCA-)cWd=64^Je%?a~i6T<_7Y_KFwFl}s{ z!tDHJl$F$awRp+w)uY#h&%-AE0FeuVY_KFwFl}rs!zu$kbE(y!Ldood<JX3@#3q&o z1leFooM776xM=z~e<XHJO0C(IN@l;Zbgi0|aZ1<3)CAdJNt|HX*cgOWpCo3UrPiZm zOJ-kIaV={85p5$iK{i+tCzv)iZt+}ycBh*>skO6E$?U`PR;yVv_iG#ZiT6Q}4VJ_S zrj3pI-o|7L%sfl2sfS8r&t11l&29dZwqX;ufbc+&4VJ_SrnQZPv6S$n*6q0^vWG8T z5!y&ikPVi^38qc#*jwXLs-)H>Uzf<f<=gDAtSlmdoV#w250=CUrj3nLuIv4R(v@0I z%q@{!a+nIAxkV&Sg7`Uj9xRCyOdA^yU?qd<mDFnWNr~*&S7(KF*CG;3P+74gPB3k3 z-15=0Ug<u)(xsMcwJD~EnEciAnWf8*^Pc@67pEX1Nu1zz9ybto+U`D6wXE0mdiYp> zc9kmj;TARb%>h|w?pmeZD!x_qTiq|KME4cyvm&{;UFk`@IX`~1y8mpUR^H|vpQYc_ zZ?*c$-J&K99g+3dvDIqghApaY+Cy1gSLUeazsgn4gO7r^{Ju*5lr!zU>u1+-rPknU zR;zN2LG&0BBWk~LF8TJvUf#!Qm@DIwM8^}WRLknQs&4zoVdI0nE0g~n(c5c!_5WO{ z<uA!mJ<DxTvz{EBWfNoD{U<r}!o6ObUK?B~k;DfzSE;r;HmeaU$;P|;A4;CRrmuJR zXFs`8>zaFVaDf*}q5FebHnCydjOIIgb@i&2tKdnAByMQDQk_`8Svk|6fQ^CMI%jU( ze79GB?8TncYEvXf&AM)js`l#xSvE2Ey7}&^%9Xsj4>k3qL=yHB?2=d6?S4sTukP2E zdr~X$)hbo|t}UutkAbmg-gea#cR{VX-dA;R^kiI;khKS6&SlqnpUkP@wf*y(<n>t> zWzS#yovKy133@LkJa`c9rbf8KlUvkF_tQOb4YytI-CN~)@266$^AV9&nvQAc?4}@Q z+*aQ^(4xNg?z^Ru6xSrR74PuQx<~e^+G4_%jqxA~<1>W_^uj_dgjY<=RZrc3Te&Tw z^PmRa<*!!t{?X`5Z9}FcBtTRCOscFNnNtFNxbs1u(}YdGjlxB<xi2dEZ~-B;WS9x~ zkDfo=dwk{m<SQLcAk9hB({s**;cFi_s$TGysv2MQMTyWK6WG%cYU!}<$+lKD(W&9I zj25u*AK0)ZpaY_6>*H$2qD9JS);_Rt4~R4nGG52|y#NBeW8L31|DI9PYta)#AJ;hx zFIn^iA3|8B7Cmqx66Rm2g}!b*_yo*HP|iDIT+jt6qqwH$E!X3LIqGB>=G4x8$K0ai zB#7t?!qzhRFj}S*O!(mn^W9-@B$LU@`*?#c-K%=7KBA^ID69_Ov{zmA<}tPW(<17t z0~^%-%Xg?9Z@@>A^LqLD?()gW<d_P5JgN2Ay7lU+&v&StLUCebx%uu3uyF?n8J8rk zU%g&Udv}N0_Xo`gpSi8R|2lpj&2??(vg!<9QFJE~|5nbbs2=Bmm;+)c2&qNksOC%J zAc(1_Dth;oTZ?BNN#exr%f3}PD;gqIn?Za8Vmt_`Md5v`zE#V5H-Oez6%ofkj4HR* zop`Duo_!>V6UFwdQ|EGT2HgY1CJ@#Cs0gpXQM?p(T7RQXpQCXb#)2VH6U6p+OS$*p zUnz+brgu*CThJ^ytCago3!Kaq@lx1m-KcFu#G0n1yyn|`q82)dzMp2Rop@&~9y30R z!yDJVlr>@Yay4KO-P-dK-UfnjSc?d$#bNs1ab8^6&dn(QG}&-iLUBF3dWAZ4lZltV zFPI>SBsgq{Ml0GSR|Ga#LN@L=x-v{Ve_t>`5=n5_5XiY7l$FC0vhno(Rl3}yy@Cmn zNP@$LSb?_Wt@Ls3<Z(4oUh?;hT7nUMxBEAuM57kNaVlQa(EqdfIJcuFq}ExLR(b`V z+Oily?Nm5xfEp*`rB>9mALjePgQ`IO8wh;#6SPys?Jj9a;$5uW(WlWx4ZQ)S^VGnm zzp1+QpU!HYxl>L2*9jfI<e?pEN~2?{Mg87LVR4M=JP>t23_7_>6`ONJ_w;(6%Tp&m zKc;(nrDp6@lZqY<h*IY+B%dnm_-`X+Qfuv+Jk{lf<LX%Z(OEVz7xCW)J3oSu5=q#p znh)(7e_cq9LaL<Jr{nU}m2;1)YO}^<*~If8z6Q}Bgp^1^mWbnY!4st4#xz~RQ7P(Q zu%5-Ks!P}WYN@0pA+@64d7PMumf?A{CBLF2r6<L4#R+PCHlL~t8?`{(hqj~}`X*9K z+e3S`ZNrs1RT0qz#C7G@x|jY@QQKfioS;^;*u~{Q_XKezh~glm7KN$ZE%PY6XCbu_ zF%-mKXsP$3C6$smLGO>dKcscFpFvCj@g4}NMPYh>v>!q%uI4Ra2zujuigN0T@{*D` zLA?R(3(YwVg5GNX03o#~Om8)#W!`osEPsQU%eJX!&VH@t{P+1R4)@zWD{K5kCsnIf zJN5VIuZUl5Dy{s4SU<<}Fl**RYoS+!wKQ5wAKIY}a&A@u_4l;4jW;I#7WDNjt#I`% zPK+vD-RoVtx_|V(ZOM5}536x)^YjR7VTmIuxjj#hgf1LCtP(Hhsku8x;def^RCRB1 z+3J4nJ~kn>HotpFwaePA$8e6b48%2Ms{89<Lu!5T-C=dMQJ(5Id~}vg+<;W!<0txW zOG=3(XpC43V?`P#I!*@=-9Sw5w=F5P(pKlH9<_3`4VxHLwz@Z@RCWIt@*yRXpz-GI z7<Za6=a;ZC7dBenyDcfT5~Ffe;W9b8d~D*nGS$7YAfE5LEh#0Epz$V+70sA)4%!ko zY^kFfm%1j>n?Vv%D+-eq$3)?yi2oF7BUKdYFO0$akKSG{Ry?Av{e8C%^Y`>lv<a!j zVbZb*M4gC6EoLk;uqJsCGvUF5E>k>)`(O>N#0mmrq!o?s;sm_|qxT@sn4^77@QgXN zwdQ;C-lcb7_#Tv6LD;-GC85)0c3J3Dnbu$#JWO-TKqZ={$BCw85ClAoM_N&se9y;- zM9Z=Fc&i_}2s?y$EK7R?MJXU0wRW(Pcp>POnRscY8Se}|Vl`p<p8BPxou^bWA+;#X zTKR~?QuHp{qIYRYVno!=lMN<hycA|FiiyLd?<5)^{#@9xBr(Fuxw91g#G@<Pp>2;! zk?5$Uj+Ye^Qj5Y-yfMOQh3Bz`o`)!Ri$Dr#d`|V)an{{BKC}PsX5OKywRJwictt*_ z6e5DM-VtNLyJ=jTNXy>$k40)-o3^Iz1|#o*4N64c6JQZMJ|Fo4#{C5n8l(D~s48X$ zD#pS*n_#qqeG{5EVdfbG{opv-$rF4Z0Q65P8z$a@30p#`3Q`iRO+_;k#t`jF5n6I4 zBo&b`sWR(aCN42|0>WOqqfBT*#;e1@tV+RzB@y#5I#tn}jN{ynUgdPOy<8J%ZsCtN zsCC|kx`bH@)Dkm}rdbO5LtoKD&(e=;r6&G$p|ZDZTU+nZi@apkQ~OoLCw;Xbt(!Fu zW6!W``m3_{`1ftSWN9y1wag|}`I{W{chXd~nH$x_yH~4?ql&3MbvLPN7MSmGpD=6; zf{mOsFDbR8J)0N|VmpXNNR^aGV*coF)j!i$srCnGp5dh+A8*F;A=7RXFN0VL8*hP- z5=lH!f2&$PUa4Z2oj@C$Y<-FM*}U7mw+oMT<?M%?@u+>rCiQmW2i4@;i;$`XApQp; z4}{dBQdsiZ54x;u;?{4<dHm6BB98~~oXw0^HN<P)IA*NI+Vrm>XiXSeXeA60z10j6 zya)aCNAGPcdrPucQ?&FUHLC7zJ(I5cqV(qUKk7W7vDBiu_H&qXr}=i9pqj|<TdKQe zb-Jpa_X+c%^F*uGG<v}w&8X=&v>`YjBIg#d7&|lRQv)@A=CNEgV`a7;XD)BKO^tdy zONURr@x2;~c?UD*EbTbn;`0~WJ|Jji;WSnlXmx>B7B0aG1FbIncK<dt;?I=<G5hQV zw`mc_dkra*S`8ZJs`=ZN>oKQIoI#3C;&Ybz4k9i|*s1D`R3(tAW=NIP>h)Z%`l;)3 zJ?6BDNg%%c>w?<@gp^1^mI!u|M?HP9x0dF-d2em=a0lJM@$`K_B<#Jl&<aKn181cm z@Q%eFjV4-{{j@yh(Blspi{N{`gHDe{U?U>rh((T4EMnl+t9^XDAG;n)@_30xLUM%k zN%7xRRd=@<aX16N+PgvY1#x+|V@avCCu@tk`=ruZHZk;@ay~xZwsrVLp(kwWF8zw4 z*$-K#9fyc(LC`0^mZ`@!A#(0p&mbr_^9*>$CY8EHNUflJ@)IB6nbW5}YRQpDj;m!K z<*5-R$7G$x?8+UOW$B07elccUX!eDE1&;F{X#a&z6%aIQL$fzDi*r9_b7&5O!Zd?Z z95XrQ7xgu?x8PF=gw&GuY+^mMH{gSLEKf=#L32JdUt?^1fBr)9PRz1Yi{(S6-6n#% zYieRxuS$xMFwFt*NEqL9Z8t<XUWQgU5{?t8#!>Wkrsr(l$ej_d8Aq8Ffz*W5l3{wE z-&LuZSNvJWYqs%_YmI);4u*Y0grgqvn#s+)B2$WbyNd78{aw<cag;^l{SnQuWN&Za zz47eD-ar3+ET4@iUP+w6%*XSX#koVz`v{4ZlC*4|55jyRhzTJ6L4?#om`4-zR*Q)B zAg;k|)I7{aS&|sR^IB*Sq1gij{j1-DJeC1rwCF8EBLEuj(68D2nVrkL+py?}*5SU# zb$zfBXSF_p5c~8aE&UrTh=6V0r;mPnSg+cMePpy_OW1Iv7Kh13wDT-ZSdzd75p4V1 z5I1Inb56O9_Cun@vDy`ps)W?y-HnS6G%c7A`}DnV*S#i!-=Kb%kcoupPg9V8o$W)S z(%z1t4f9?hJtjCMq{S&LSu_5|A$2A=hZL72xJ0NfQ2g{~Y6;t*wDX?JyFbQ?ay%bQ zg!}YKi+4~CERV7(hyWS2`W7LcCZ&k}bgIIA`V=qkpe$OoSy;!+n?Vp^y&{Pu^3{?A z=bR;*2eb`|b)R<#ZG_JwBsgBu;(QEU-05!!uHh7yMTokfa}nB*TKqho`afz#quOH= zQX&a{vbv6O&lPWG$DtWn>S@qyEr+ScK{L42pP=u<zOF?`Eg3e%9q2P$g8l;jMGJRE zuQlsEqGIli-X%0{GvC)+Z-^&?eu<fnw&#{?0#A=pl+Yj4pKum92<w^=)GL01Vjn;X zt^C9<MKfG{lDn`wQ;q@T*g(Fi9jC_G1@8UF7bJ@>>FbqgcUWC|c(-y!4$k^v_aXJ- zYJ|HDiH#<{xG2NLCpi%|WS?5T^<{tFaUKRS5X8qIq?SyHO}vGCOh!J=gOCzQOvcWn zd$B{wnKA&+JQKu15Jy2sEtzwhn001>I|->Owy>`!C6f3KyI(REuTs^z41^6z)s1Nx z$xmZ8-cKA+kKBW@LP}(*I}YM^-#fEF+mKqF+8t4~=j_(;+QgEy47Y9ZjO4(1_7jwZ zd`^y|ie<RhBOhr<mDH+x{;-<A9izs54`kUy?GhPo?%4&&*%%v0i6kn_Ijk<heDbUg z4<hG%3um~skn^iS$nqK8Xp6eO+G<@(?6Uf?QiglP$w*F}+t-s?zhAaR9b1f9dDJnR zDC%Um>yUG*B~l`ZF4ecFO@(rFo*bt;h$SFqfRI{$U|#&-UDzLmwA;k#TTA)X-rJk; z*bhCu%0E=ju7Al-YSP%U>I#G%=b)N`@Naq4GdQSb?ICZ7D?#8F>r9CeQj5Zy@7Na* zTYu=OiT<~i@}$<NTTQ&q`Qq9}L~Mx>ERh6-XaBHQ5$!lw(bqO;R#<8|j<G>Im;auK z;))2OFQ2;?J+d_0Mlv2RmCr`pGM18{*=<d5T%1B8I8}xgIrpU&ms`Khe`eW4P`U|} zt|llS6qh9Uc@XV5^vvlA;+gwWi=X*Zvrc8%gb$+U`+GB{1q3}0ic1n)dlH~2cF~gw zTWXw^4Z`MRDUa?Qlv^r7YME1Q1rm6t>JzzirZxy`0{uk&y*{a{tpvTLR9f1eMZ6Qd z2k|b{vz%tMeWREussVdE3a^DQy*cTv84)zXCM_PHla?g77o$r6J}c<FyxygUF!@5_ zFrA8@bEX$)K_F;r84q@MV}{LmRmn#rED5wEVLS`mm%@hBB9Bm$Di6>$QWDxmD1i-0 z7~csGq_82i$g|bgHx1S{QWDxmD1i-0&>8n*w+%{RLuwfhc0;s{f{9Q98<H@-EKmyh zo`=*TPh(Z)BDbImCPE3cBtd7~7k}P6g$=1?{M=y|Bj|#OPy#JU&>8pE>$|70A+?O3 zyB^v`!9*y54N1_Mdb9Hs71pByqf(>vN-gqW$F)5lp#fcr92aOwknNYwWAsW9TQ;N? z*=y1hTA=e0p^Z=yq>u?J!zxwNQ`nI4Qn^iQjxi4Cd_-s?lt4=oR2Qo6p`C#7d`K;N z{&TC;*EaGIp^Z=i8<L<py<_4nDQrkBs>e0@)X_EyCPE2pNP>QwwLU`%IUhPeWg@lc z_gMbDy4prQB0&fdp#)(`P#aTBk644U()vV5EoxU<%%}a-#tW21BnYu2(2@kTyEVSM zEk!=07PXJ3Ct$V(bUuP?BrFNEBoVgxq)2s_{xl)A<l7)3unW+q-GD?~haT$eJAcEN z?4>LY({6~F)AQ8ReU9th5RM}VhqZ{1S{yceCVoNxYO<nUjN`C`;w`s1Pw$$OHVP(4 zA_)!~VmE9w%Wj96LC0YU$NPDiqdM*UeZd4tD1}UL*bqU^bqTYCY)~oC{ts!dV1gu) z;IJW<9LY{L7~g;4W8;TfeQH{@?)UJ1RkChntAFh{pMaoTKLJ8&nRV`iDTtcC9!z#^ zl1zWB@c_L>Pq)-f`)pINlVc^GKkdvstBRLgtxhZ2v;8Y>4Eb~I)XWkS8fb!M8cB=B z<aEm%(Khi3Zaygqzf|>c`-#+|Fx?rK7_luzYy`0Z=fW$2ka5L{<xRg)Wg6syJ_O>+ z3m5z6;UPw9QJC(G+qe!lh$0^m@h%7l=iBQXIDwiHN#aDu4jV!50X-YUoRT;D<>Bc@ zYEhVOlN&LU)=!bAka!iuG7y)5kdioY?fgw@aDAfRp;W;yReg9%ms%92+vKK9DU9~x ztcr+7LEH%9JP0X?6U&-xQtNIZKQqsQC=Z_o%i%d&YEhW(jO&v_s{m(JMDzlIyQBP) z@Kq!wapJb4>(z;>B|zT~q7%G1+zk&(Qj5ZLXWa7t(irfpiikoW9tYurkdioYq}f_E z_F38+wYgAze-eC5d;n5vQP|9Xlh#=k5tE>K8~jr31SutP!qBvbWd?|kaGv@A2&qM3 zx=oJr5fOC5(Pa3gqGwMwSQ01dc2Ge+=q}U4@G|vwP*xl-5p-u9KaYr@8>ec67!;Hh zOX9??H<H2gxC2BJ_@%<>c>T;dULxquIIdR_u@=M<_*LHug7U$VI5D8}vY=iOkqf`- zrGvW5@e)Dz&++dgB2I(&5X8TOy33L{ac<Mn;P*kl^G8eG>{Y=%Zc>ZFbRQ`H&Lg4= zh$A2l1iwL+#EINynZfUzYI{|9nNnyOq!xwgK2UD2B7&aB6(If>v?VNw6MZ^;9kf>y zK-7f)hdY8ck>e$T+h8j7i1;`lZVuW+mc)tjqn8IQ_4^>`Z7{1)W8Ln`c%%0GtcnO) zt*n84`t4}feIhNJPw>!+Qn>3L-$(oD71sYB2l2Mvr!TZXggfvpBDHszmMZc&&^BDh zp?P@NO6eV@tzyp$RVH_g5vjey*o2(9FUUJgN5vi_rtIi!uLu<29j1dt$eH_syu)-> z><Qy^uP(6_fz;k%I$4CA-!I5JOc%u-J*pk<6t3x*HH6gOVX(T;kNwGXve%}Z)ZSq_ zDfUb<V`pqNs{rpX9W6qxO%>!FroCbhEBn4^ZLMZu-Ylhe7@M%yyi$9IX&u@)RHa3@ zN@`ZgQhSF<P3U#i0=&bt2y@=xXtU6UAyRvXu?a4#<+EweL@Mtv6fZx)xx1T$Wo3xe z-eC||@XU$ewIZ{EnaVp1X>r}%_C(_tk;*#^#U%-@yJmGUm3J75mw$uJk2MbKt|3x+ zharh1_%~?QBU5>Yp?JA1S<v*>@Hc3PRNi4oA_;Cw^m=4U?=TcEw{XP{r-yBcAyRpV zA&De-ZPKi5r}hqm`Ggki9j0a2CK@8OcNnab3&L7gFTgvD-BQ~`PwYU#$8Xy0m`mr< zXxA3)ZjmR3XwMq$U87w#I6nviAKwEZwd9E^o46kYKK|jZ$6P6qguQCn9|S)BZy=-= zuXEB$rA_RZRl~=}%e!ewlFnj$jx!l_9)r$I&>05`*SkDVJ$dr5n$_|d<l_YpuYhQC z^OB_0dZ~Dh+Hf#eYuUv7H8=Z9*4*rsuRb9uC6ee|G*9(OJEH0qO~6L!wKx0tc#l+@ zkd#^<oLQw7{E74V(6WhFkJtC{@xDE_D^p4&!DCJuu{zHCAl?SC`{1rjsU^?z*~FwH zqrEln^-cb|^6iWrr}I>u)xW7pm3C$gT7bP*Q;w?<qqk-?DgL8+rsD5v+o~U6<3AvN z13`Tgsl{Ph2eye<1tBG=2(yZeUF6jFN%Yb?$!VAO3Csxg#H<R159%=Qvo@!`H_aRF zk2}7+@s1qYdmd@c9&W<N%HOGM;`YEs3)qla6n^r){VG4v0YuGKk2Jh5AXtm`Xk4E2 zGg37)W}~99;S5?eKWSMPgxTRi`5TJ20p%M1^C(~uI#2B7NR$Wxx}Qh{`9G3gnW)@! ziCTNP<Al@-cfnhP*uM)~yt5Z87(w4q`*)&UPY%u8-iUlyL_V!xEyN-y`TqxhOTFqw z{+4JKm^~>ap6METPogmCV|^QIoYLPCN!Tyaz>0SiKuCW}sR;6sM6|IH_qRk6_KQ^M z<vT-vOZf@%Ey8id3G%l@w6Sq|Z%_B)!I8ful0<%ydWHU$BH|2)OF)nfjw?=>(W_Z2 za-6JvJ(K4xe@nd-`$gh>q$bD)OX39iNQzPw_qRk6_KU>N!zSYXmQoSqBPlA~xW6Tm zuwNvuB{mWFx0H$?A4yTYDh7W`AD52&Es=!%B5k~<lYSogiH|@~S+OKekdGvy%`=bt zTOtYjMH)P)owkvhAR8=+6XYX_Xk%lA>-tqXNB)*b!hVr@c5SU~<R`8IK{i+tC&)(< z(Z<F%EjA|i?u`5`k%avs-959VwqX<NLF@xTHdqoT$VU><+D5`yiu^5+g#9A1jno9$ zU`d=HA4#DN2dQ!?A5x3`B5_$+M1l#j!IC&ZK9ZucdJ*1}`lEEE7W+lwXKoRRe}Whg zJP(${3G$H?J#+S+B(>Nt64zae$mef~;))aGJt?ZYaeqrBVed)QYEy|s#BK1mbQ%0D z&7U3lTS`Tcza{e<eEXet$@6>0_!VkhlSw<U%VULs`Z#h2_E@ZB(CoeG`_!&j(cjbJ zcE8Hb+cTw>-0^J_Q*J5c*WA$4zhT-Z%cMjSA7B-Q&yQlSbB)5@j1SxUzfE75q~0U- z{HO;hPv`#c&=EB=Gf(9$7>nN0(Dg;V3$yF^-s^>ZsU^=0+eGh^S0{fNGs^#dasQ;; z1z+OQV`}DK*x!E5(^&)7992Kp{ZZ9@n|vW18(i7F_xoY~3om}0lv*-go4Bm`qV&A^ z5BnF!sHBug;*sx<sQaq_sLJG!Pp8~#e{|=a@9s})xil%YWIk-dfBkKD&8VjSjDb~s zDUpOck?lA?RUe=HcFsV5dXr2m=kjUF{9(KO_@|R!_I%R+*U|T^XD(}uO+0XITlc1- zqy4-RMXa)tgv_7g6b4Zr#264#i&mDn_SwYRw@Z5chV}60Rk$K4wfJN))mNLi;meBN z@V=e>RqyP`lv=$pdZ3;^jSXz#%9@z3TztF#?&RmK=OGDMLoNRddM-Tbt3|s|Xg1Qk z=cx}TJUXD)7imTF;<bX41hiY72>J`|V+n8P(t8T9&dDqJ+WSAR-4l=q?(+(7=ZdfW zvj=`&)sJk*xLAwrg?kXlh7;T?qwlm}2@!HP1b?rAkf8Nimc)sW)<|$ajxV(+EO&LJ zCddX$;zUSm8^Jw4+6GIAkh@d(dy@|)$OcQ|L`Z8SxZz0KU<na&mkob!Y%oDKSP~~f zS|j;y=XyX9A$JR<CddX$;zUSm8^MiJIv*?{BHTfRnD~2>4<^V4OX5UGYb3ZiOV=xw z5D~7+BPRad*kFQeup~}|w6vk`v|tIRO7BQOO#HoN!zCLmi4$a-_cP?bor@$yP$}qr z5<zP76P%A!L`dso@m*UoUJBFG)H_6ABQ?R#gHjSFLR#AhZkF?;7KN!+>YXmIk(wYI zEQu2#t!)H1<Y^l$A%cEgddCi8;_o$(V1jJ0Bu<31MuMCEv<;RJL9K+|d4!nwdt-wM zvcZx#5z-n7ZY&J%N}+g(pw>>ewTQ_g5=@W{mc)sW);46@9!e;M{02Zc{N8yMeiH`5 zZvvs@d!rA$f6;CV4%3^Hync~qF4OB1M1r-5kXjrz`!X`iKke<(o)#R3B@`EV{i0L2 z(ndZa!30Sp!C^y?XEAsf({p4j;dpz%`<Jv=FhLTs#{`EBL0-Rt{XRM$ti?V{q`iU( zl1PHXhA45=>`3W{9VxuachcA{df$rKBi=>Hxih?(V}#V=`7)c}^VIar6Yu1xC6zbf znWyQ0>Hkw$o_!C`vFKW|F>8~0=;SJBEy&{2vWeTi$tt>TlWO$qDph9A0`y*`4XMRp zI)!T!7h^4zJaSR0<OzEYlUEfxRSQ5g0I@r{zme2p8<Z-Wkg1XqNyri@I3KbU3MQmP z5_H0tY)+egI966tOP4ZAn@YN1LP}B*=Df4axzwU3M$dts8pmV^@()iRdLB}1?uRSX z#Il=Jze_)f5z>Z?OA@?pKqsH<(v?~pYAsg}!*^G|-P6OBhWvz#D-~g#!P5C4UjTFh zp4L+2T8Q*ui1}ENbE(DlC|;Y8IhT@Dg!!FILTbr;a7_6LKCw<Ik$w&A)BRhKkFxlU z6ghsrk(6+&P3@J8$#K2~aXAP)@~~|uEhZ=>HnAxp94Sdfm?wB0;?D;4&MU7klv+da zyeaqe%sD1Q6bG>bgg^D)4W&d9{0la9cQ>@DJsEv#;YL!6>MhkXs=GEJpShGs!fvnT zVDDgC>^8*SL7!Xd=G_{HD<;cl)KPpkqXm8MY&W|N6Ayvl6%*2;FzrvwPv9}=dP~oP zRxQF46+xKKO++`23BqAQYRT|GeKun?%Ie?Pjq-8&IPF7-y#UclL+DQkD-e+n+le4n zfvDsfLTb?%SKl6C5$%IjnE`YQMz9h?t0cVg^Y!pwbeL9}C=CBR(K?PM!W9!i^J<Op z$wMnx=L?N&*gJ&{jyFG1WL5iySo3nFgx{7rCBZ7t#&!FVDq8cR_7H1cZhkGCL?SJV zSdSAav@-MYx^j5t!YdELq3<1(Rpe9HUdItycpgTJR;@VvkeLHW;JNFRInvWm5Z3E; zSY48So%Na*5g?7HA*m(9rgXnNlI@N}pJeo+D;r5)IB3I>0$N>at@s^m{NfZpn(g+d zeYN^8(qe+%=QeQ(2<rC`U`q@w2@0E-!x}HkJqT0U<&!nUGV~RX!BZ^Fy^xPB^73uw zVYVV4*vS(<CxrDM6P5&8lIE}>$P*hpf9Yo)N<bL@42`tC@O!7j)qR%r-_p|?(x{Z4 zDGDVqf;=x6FT`Y}LaXN9Q=@BZ8yqjCkhLgJ95$(X5k38fuxs6t#E8fXF)>WYcqz<U z6cdMyjle&gnek$e#xWwA@gjx^883xd%RC#N@e1CYy0())mpSn3Lj5T2aZs4QxB5Ps zkXjrjEt}wekN#Kx?)bDd`-+3VK71eT_oGx%Ud+Ej3%^vk6EGs6oCtrly1uf1Fj{La znr&9urH?g1Bupz~Yo#K@d7QxKS)|4O+KdhJefVpFG22U;Oo=1{Ut~J>=Bd%Ih}tF5 zM(L*+{JPkCnIWWB7>@r2*G*9F<_Rh}Y5!eb2mA&~-Mm)Sc=^+;-!>go3!CiK;Tw)@ zQ1vceuY1dm^AU)5L3{*4YHc|Ei~6DL&sxhSD8HTdJ?))d*vPyGb*qNeutfA8995Uv zN^0$bRWhd|h(7{?--FWQo=qfh27o@>^j+BI3>Keo;<Hlq=hIl7Y*6d-JhbW4FK23| zCBZ0O5~C|DR<&m1l$g^Lx2xvhmQ`2Zg&k?p3<96|qL?CL2X3?~gI%%<aDqT;QJ7Dn z*#zBOR}%NW?x#}<GOieL>|LD4Dt0eYwG>1p++VxG!3}vri^6=Oj$(?4Gf35!IGvD% zQwo+OMoenytFiqD!Nwxo0QNZcIZrP^cVS2IQkYK$QcMv+H@>aIKIi*!)1M`Y5w+^A zP(7Pdo!$%LAa-A8=)16^c*zEzaHN<bq9#%`J#BjCGY(EENJ)&S^T1m5(h;1ybQ*xD zhh5~4;^sveFNOJ}CdCvHv{$VM&Kl5}14|Mk($;NMUw=6OHnxH|erb7s&$V0iGv|28 z2A?>km?EMth~C&ge<#iySdthqdDLcA{Vkk>b;f`=kG=W{oH>y3QkYLvQA`oh90Wf8 z6cCmqM!c$m)49&A0kQBFx(hpsm+jHXFp4Q6C{-7bs(v6WNstdFC{>@`f^%gKcB^~c zk@I0VK_KI$FrP%@)EeR!Ji*2&-Mg;Ys%?aE#Rw|hl2_t<oU;Lh=PXJV!wCWzFNOI; z9odKo7sUTSyaK|K#0aV-op)iBq3cx!Znhqb69h6|3iHW8iYX%Yptg?$f!eNZgpwFR zwSDX)y59h&IlQg-MGd4|5rr0o`Gh0ch=|`nECA6Bge8d)^sDXpFrA#70pdBdCChMv zK*md9KB-ADMMM^ejvzh+VM$^HwLVRj-wGT5193H4xDRpWK*md9K5<GhMMM?Ul7(nR z9|U1ZVg$9jb86B){fp63|Am&id(PDKc)a`upqL_}`|u9_E00(9$F!^9{#AdUT2uar zp1B!y<VV%*o@07k+ieWKfBLX`DQ7Nv$ZbK)0r5uL3a-?uK6sBh_3xvqNrR8FY~rB< z|M35MV|MbNH|4rgB8e9F?^A<6K7@DU|6t>B5RKlPopeD+t(jx@sN(-QqAIPKon;eg zzqI#DJ-NNv>mOJ3q(l-ue%q_gF8Wp7efxi5W9HB8{lAuNZ&q$jRZnWIs<B5+c<!(& zQ~Uiao5<N)*&jA+j=S^GTRka}1oa)LcR+m!$N6JlW&iD=bKK4#q}KhTe^hN>JEV%u zcrVK)-uteb-=)lD{wFyqU6$?}Pvoh3-yPR;8L~tiClAE#(wF%|)~R%<^{+BNs{j0S zObzZkEz2ef?HT5O-*IHJ(hU=>(v^fP5y!dk<1pX5ePnX(|4nqIR{Cu}s)tt}Rdp*& z&9aFORR{Ygmlbi(eejJdC6bUO;yCw#xDmu+5K^m!^P?*9=@Io(vp2JBqVW{he{aok z_rRRvu9QeZmNa(HO?LfP*B*Bt`{cMQwVu8!Pu)EKu*x~|MwU%{nc34XdwnT?{nj+A zbgvVqb7hG*&O8vMK<o!0wP>FKo!g}uFPm8Z=V<?%pW7x!xAN1aL=v(@;O7oRiM?%; z7ux#iQcIqxwTW>bJmojt(#CzRPbsT(B_T@$tBD{!`L>OF;GR;h)FOMdBZBf_6E|MK z-jZ%5y)GSZuu4}FvZNiSI*4~c+yg>tQMu6`3bJ7n)TcIoG&^CuCd=^$g?W6=;}1#D zIOBY9pJ+7ZNJ%8jSSr$zBczlB3?+O^5{$xhN`e^#D^<ouFq2{=_S}hmmnj)AsS;YU z6oMVUscl4YiE`7ngFVTJp5m7_Oj+4^GJdN=8z6!?#eU>-^`N3tDRdHv!uk}9&iO$- z8;RIW{Ccb=wdh<C5p?Fql(ZlSA|fFrsR+HpoNVCFq)KXWn9eS7O!<g})Z!G<iK>DL zDUk%v=+QoOlP1oG)S@##lyf>6Rxly8=mZZDbY87sLTVX*bhPXKZwSYZ%h(`-XQOG| z(8>q?Poza>ekfIRQm<e_N+iMli)QWV7_%X@=*$n<pc97$6H+1x_QT`^zC|c6rj|%8 zI`cy|a(1`XKAk9>pOA4$BJwB2BYL)BY2nNd#cRg>GE7Ng!iq}}Y<uH+<G&=z2c0G2 zc-bDEcFISDHl#!nT!wWIk{3zyXUa-yak<gys(eIfLrNsUbwRIkST>{<KYuzUmX8Q+ zNQor)x2e}fEE`gbe=Bs_tw16nB^DuCK4T)BQ>1xHK2f2=G!Iil&(?<DYs4m`mJIXR zj1SSn=!%|(gI)&jZ>6^-^%1ETNNZlaAC|ty*Z{<05Q}ot(xn#l5vkWf{Y0Bs@Kf95 zcJwp`qF*8<lHlEx#>V&P#jFF74MJ*BACdYa)K9dDpL5%|ub`(fq<1M-N+iMiFO7|x zx3+PqH&X?K)GCQSBK1e8pJ)?}yO;D<VBc$YhZ|fekp%D9G&cI7Ptp#3lhf#zNUhrF zBaT5|k@|@?u>(Euedvj&p%*Sow>!pA)Q_k2L0Ka3x(DL&&E5R>KuE2V7(-EioyJi% z@g#cSzn~|6^Ys&5DUpOM5y#oqX=Jh#di(zXA+<_i3`M<i8b{g0c=W(~q9?usy>Ka! zge(!qxfaA-Aa;U~S}$M>MZIzwN7+P6^uV{ECq53na4C_5ENRDSz3#X>6+{~lQj5k= z12C4Nag<H`I<m6A3?tPI?JKylbZLBh4&z+foghmDb4wW0-VfqdjD)2YjeNUe1Wcn} zn<zSUc5)m>s*m27Yn84fWQpLGLJ%~zy%mJi8iJ88jaq5+YZI@n+1_j=Myh)-u9Xr= z$P&StaR2Siegd%+gw&#uFO6Dh^lKB3J~GF>4I|YB7^O;yBxFfD&U%c3Phd3sJ_xBL z=f!QJU*M?_J`VLRB;HfRtv2;6_$^_20OSRc8pb#wwJ2;nN>ZO8wRg&n;k%FC;Wi<B zG-`jA92dV6iJ-9YC`mIcsl8K@Bzo`uJrTtf5kwo0lGJAqHn96F(&AK^w|)vD=AE)- zm~$dHRfZNh7v3q;!)HKmeVa(_ozf<_bWNWjm3K;#@H3~kzD=a^P8lcc9T57}ssDq% ziCz<;RXub6hgt1|H}>!yj4=Hr^ncOwi`D`8#*pBakT_ugS`iN=>^U-cBZszcG&Vv) zuV)55fXE)SQV?>*U9P2ZSd81k_)Wl!Yt72K9OFuYeo_3~xz9j*aX3uxKKY(^96=;l ziwLR3Vfr5Xy3Bp4`j^WRidVkd`TKlCLP{jTVM7G>zG@pRAsh1D&fgbIkVFz3HUx6+ zaapm1Y{<7he_t>`5=n5_5Wl_C(c9X;lK)=iQm*toEN{M%{)I80cw;N?xjNVQ9V%3I zrIx(I&n8yQ?dSFQNF{sS_l7Gal92v|9p|b`dU>-yI+k3pbCN5y<b8lP@zs#~yhVTZ zPi{Q7%asyINWaC{i}6WcZ}|8BO0Jo@#g$s`ZQrckxE?z`abC$LetG#$@B6QYXC56? z(vuQN*#3||o6sFMtNyq7x92bOq*lERo7EQ$R;o!eo``u+p8aDRZ`Xyq^m|TS?a8<# zA-y+ajb-pP-k`*McVN4Ep45^z_}E09U+Q?v9(%(rd&iBICum7XkKH&Kc5zv+;<MXb zRilA*Gm!KhZWE?OFk>~-%4|iO_)yT|P*~oJjqkZF31(P$Pm$D;VIr*E31OQ^?JJ)w z$ITaE3rF7vM8f<lv_P1aI!<JcZ{W53X9I7OUfV8|{n+p&s#;B)icJ*4O7#+*58AmN z?nB2}vIbro5I13M+mgfx+O2N<q>jL9$t0|rG}CL_QM_b>?9H9sJ={-kh|*Zcc^~UI zJ@RO6JJO=?`AN%Ew?@5V!~hU|L7c_fHt)1IC!B18cH<ilv7ck*=Nwk5i|DoONQ-Q! zC%#sln-0)6BBC*DOu>3o<3h#sS(#80Bj{AYX9sD$_ArPOjRv^sSgDrrQh4B_D^%-I z<}^=4lymBP*Ebp97B79Xwh>BV1f7mB9(yZ*=uu*N=3_+~X&W3b*|_85HEKuSfjS=% z(I2T&SPgGjxRJIIN@4_^^7x<{c^)1HVjEVf|G-MMjF-au>uyj}s@<n;L_{%^?v)@C zAn197k{H3KhcHhK;%ThcF1?P{wxf6{+^NmC>h6zvX&VvoAyRb^#Ld;W>SrEGVg#Qa za-7RR+*PE${~vhAlkrlxW*_56no=7PkE3*d2ay57lEer;Jp@1DAdZ13(}32tqj=fg zQ`fiD`G^Rr?e~Fb1b=#DBa{UBU?Mt+^Z|%G<h*NjTH7||Ls}H3=h6H#bN(kHu0`p- z1mZochI2mj8KoEzohvF1!ow3B34eMrUJ6saIx(z4_&kh<*hi77FF+I;SJfjMVO%kS zPY=N_3J9<G^vs(I)7o|vFNLWdztXFISg(w4+@C=V1MxZ5w#h~qSB&7(LwJ9HsDj_% zBYJH+ikEEA?>sTNk+u;L_3#A$z;Ez}Qa5WGp(IA|=^@AY{=zNZyhA74a)oJaJBpXW z)LxB!)0`NJh!Y@Q1W_0S<s+2D2tGaJID0^RRqqC`<d3wr9mPvwZnY_<h**Q1AH>@B zrFm2IGY=&(B05(z11<GXwA6)H(b~2hFTVlEMnrsEd8T{uWj`ff*wxFEyR_sewbrQp zs^4I<d&_aEtQ+j^+UWS-55Lpe<0Z$qHnF_YweAb=mi2F(al0oal9+V)0kw1r+c^H# zJDKZ8H1v<ZP~RFm%dxsmyz$06nJ$PoCe-(&L=xL(9aNi!u#Nxz{&lj>E1muAzZ`X? zmYj32iJm9EPTmXRe?K2}r9={=?meVtPyI>nbVFIaR@E=|LTkVI(>1KQ3^{jV6T@Dw z>fbw|wLkRs8m^Q`;*H|)wdC##Y+$#f&pRjW)64li@S8p2HX*e*Odc=HIcP%+9p1qk z{&;1tJm!7metfx4|H}zDiS$BFumfTo2p7a_m|K!sJEwl9ia)ke&)nI>&;$SQx=)+! zF0PsDN{J-=8JpBJ+-qufK->Z1)v2@HxtJ-ES_8&^r%pY(O3&Qc#Fsy}_a=U^ed(W= z_mL7we17S-Dy{t*Wp+TE1<^LKed+rkq*jxy->I?Va`eodO*GqA**o;eoa7A5`$&l- z<ZepG`Eze&ugkDG$)zBq*31_-t0lu$>zO;7`0=}L-p<mOd9PqzRF<whbs<Xxch`XE zUFI_HM(ml8T2CC^tRA~!g`U~A3G8R^?&vboEr)qgDUpOM5y$xp#L?SFx`VI-LTY6v zH^Xc8N<Fh}6VFy1>`na&{su5FDkYMTCE_?OKzzHjNV3<5-?&oi>kFIJi91*6nQfb> zJlXY}Z;mG`eR|xL5=qFCcAR%X9AA4p`3z=KrPhmca@Dt;bM(x%P28K=)0=#KDX++; zG^=#wNgG)rj&l;koc}B3-S~Z4y3~^AE^T7vpQF7eerfA=!n%Q!NJ5r~<7@<R_s?zJ zJ6rqdQj1S&(pcRl{`tXE-ncDolDA>qKuRPbOT=*|fjE%cCixe3Ku9flhSMfWUg+*^ z=vLC7kCg@~k%TO1@_O3c`w&Eb5K@cEZOnc;6Nxzo@ocaUc}R8dt#Y?{T`nz&eqywf zn8MLcVl%!nEu0(=^1AcjT^E9LCBYe!U<Iq6e+IKSlHfHjI*G#T!}=UcoJjDhrL@6o z>4&NmMayRVxS5kLun`hci^KcAD3+ffC>W(iait>2Gdq;^pCP0cr*Ov3lA(=!1WXwl zB(aEay}oqJMzls>T6@`~mDtn0$`))R!K;W`D_l$e8^TIewEAw}^JL{5|A*J;%WA)z zl&UE^%7pW<bTgDq@C+?Uc$Jh0nyn?;+#h8aGtVHkc<r{z<Whe_$haiIv)tx3C}~4# z@fvi_?&9GrcYZ>~C5dQOJuQ}VORELXy_1#<BUOo@CL$;#f?(U`HYk~oXpKHi`xm7W zEq2)4A4TDi2yMu?IE6%T8JgRmqz$RX<u-WaIei-x*$9cyhKx%RTo>prDPw_iF17gi zKb7}~b(fSTLK`wJNm%VlV8pIh6fgf)=KgxhZiyt3ka0<Zf16<o7p97Dvf?`j!`lmk z+ow|88XDex)dn@g+*dV}Zk;Zeuq1+L!DleNSWV=(bi9F<zB|z(#67%8zI(S;;U<VH zO`i-KI=iV3(>=U7E9fSg?2b*mIVID)ldTTqBSJ0A+=b`AoR+uM_g1}I%EiB!bLZK* zT4>dx6IJv*-Ku*om-cLLY*F9)a8@aI4iQod;pl9aB<SYemvD3MU4K;6Ho~}KM3_S7 zRix_Ga%<h+Pl1qH2uEks%&oyD=ev$K@UEzRk$2~?lUP?15=kH&<s3B~snLH4^EQy) zJA<=Q!M;A;N2UqXEwm6?BDLgstiT&8DUuCANI$8PFg{bE8>I?CbGA#b`~>eSJ^@U> zb1PMZ1_b#O<&&lIl&QI)M5}SmHNm%?kUc(GY;6A>AyXp5{H_g4H%L_wSH64%sinln z$|~3+n6DHHCS=ZK>7Gz#^^Edfbow~&*D~Y>@}lrm6NTj-dJdDmlPC=0v9epz^;v-6 ztW}(dcHI-gHYCA&^Xc4`v`zZh?Ye7-cQw2&N-YZW38#VyDTxzI8yijFrSQM-Hz~C! z%qN^ErqqO##0jR2jhc;Ty3af{Qrln&5q!dlV&d;@LQ3KU(}w7Qr<Vr*pHhp$e8P!h zN=-;foM776Xb$If3+DILHdsOgpKzj>_<Ng>k~qP%A^a=5`V~f3&^A~?1fOuCnD~2} zkdipTv?2DvpX`@E_tf=@B}DKECyI%`w+ShU6HHr#KF7imP8FSSqL}!5n~;(?L8&t5 zqlnp#vO4-y1y5>Gn97IFL~&~K6H*c<m^P^zf8j#%9Q+kaEeg|frZZ6#Q))s=;sn#i z#`ep$Wd1d6oVLLdBKU+8#l+v+gp|YyrVSDN2DJ^A5JA5?Iuk`P@%NfYFd-#zf@xzT zXiKyWmJq=woG2##-q>J5O5z05#zx>1&^jMQ1h=&mlSL$$kdipTw6P)Ec9!TAigupA zcbpGq-{DUka;aBn!4H<lcRtfVYyW)K!R!OLdc_s~u2&m+w|w%I<?CMhq))t@r_LWe ztmf_<g<g2~VYm6Kd;a0>AHT=)Tu(krKZoy9@>^;XPb5b9Tb5s)yk<=QWY2SX>g4Cg zRJX-XW}Sow(v{eq+3l?-vfhDbQu4G(-bo$j{#lRtt&4n~{@BCsB&F7p>wZ*ywj5C- zRz4mhM&I&~-*8<Ccio#RDdUoaOrhhH{j-lhw&-W>$fI8;rB-r#o+7`Zb=yClWfSGM z)bU#^D(c-gsIV_3lCX3BZ+M6OvtB9xty!Ne<MTLF?gL8asew&@Q{=gao=0@2p7&Zi z|4_NB{c|&CWlF72$K|Oj=N?zpW{rsvpDw=LA6cWAH{#9bt>+;<{>#)l&ZpD6_<JXm z^RBpXMbgp=PS@yKBAzDhX@LLI(^t237Zfj&lyS+rBum|KdV|QU+SdI~2@oP)KFvcm zY@*~J&-gtKzLj~!$!{{HL=v+0V6R${(f+@$YMZQgO_8M3k|k;r2gVQcpXjzIS$)o! zOevAX+BJEq%MHiXvG$`;6SMdB^DkNYdveE+8#1Mqd>%IO^O0=rw`~ag;?Q`Iyq3|N z74IFRn~mi-5%~b2+TFJh9!Y$uB}c3_(I0Prb^d~T^+gTQCq1hoe=BFy^jfsbVyN%| zLVG59fSBz#UK^}x&>h08^~W1TZ%aX#_9y5i2Pbv(T>uyZhW=}U@1x#p&`ZXIa-_v4 zc+5D#oZvCU&r>gPFRl2I+hzW6PkK_BqfRRJEy2E1jE|H9AT9!d+ZQ~k^<%vs)m;yK zgOSDJ&<~3tKAQpJ@{imxAY@#UU>`~3W6g2yx$2AL=dX_N=H}j;K{FF_XD08UT)wJw z_8kj$>T+|ObP)4FP?<>y&7BycxZ>}189IwW%m8uAz>bZi7R~7J{oXcF1Vj?VH(wvi zuq6?}F_~GM_8`6lvA6Y+`s}BOY6jOzIvK<<ncE|}gZKi()dTBhNG+;~yld7bIs`Vl zH%=^&5=qE1bR3b7hMZn=!iDqEGL|Y)Rtux@F*{7DbZJ+qwCy-9Qndj2DCl{}J*j5q z?immt2Lz{zv^ec@PpTp4nUjsX_e@{FWu@n)QS<3G4|>k>*X%e{R`WpAoqcoxKM&I4 zwC5*21~Ci7yk5f_$+#rJDKxWcqV6`7T2Y?N%pKpo?l?7JV^NUv_z0Uv-fY`={z^sA zsG7AVVdj>@hByQpQvw@O!eJsfA7=k95tCzt)S_8nn~+aXN;pgemjch$2J`t;P0*4x zf85D#(UaCDie%Gy#i+ds#_FU-bt<7hF(ULw6@0(o+74)U140KVUa3W4eUkBS2}+fY zE1;Q(PE@|rVU%Cx%YV6KWa#rHvp3hy)wPeq^xK|)(WTk5*RtQARD{%$Vbflnt<=e{ zu<c6yi;{71n22|7ER|hp)pl(gZ>1E3)RJLiqjIAn{w<q&Ya22y4ih2kwBw{Aq?QaD z8)EOEPxEl*9F&<)jLt-fc}CtlNdKC-K5?RoeL7h)lg@ka)Ps-vA-wg-6ZYiirz8CR z(D{7w+C%$7$QveB&OjtVyahsPkq031>qA;LaRjOP174c?H|e<Orhcmx?Z}-pbVOFW ztlet!yN7i6uVbqf?d`3b_7H4P`Z@Pf>&d#iRngLiw3bcGNPE`r_Uyd$KG)A|$hU-S zTz4dkZzY+PaVm@Jm?_<NLG&CqFTHr1%v+=u->!1{?D-T#XApOcntKat(G3n9FFiqy z$=n`6HoAh4wVkw>pp@9eTOb-G=A~CET(hB+NP_ccZowD~qU`JQ()&Jkd1JnPreDP( z)}0odTFR5-ybNORgn8+iU0XMjH($s*G;HF15NF5EOF#7O(hMn)giN91%mq>EDWs~) z%!N`*-UVV4WaBT`sC8;XhLlJ`-d2JYUJ!ep#uGgFeunh+#CIZ5De#R-Cg-n%So-|D z^g0)gHk5J6`&guH$9V;WgR;7HM(ajWOWqP=6O^hgNY%evK4;}a67~~(8^o)qyLTTM z+HmLE5}|K1wl}x=PqCW#8i*m|=cQ-&uHIN`v5i?X_s59YAeNzYC$*`$P^MQBoGSX= z;4W4W-#laLt}I<yqWrz-z5WZtn<%SSHr%&JYVlnu8`quAvWXlJ(}tt0o;luFN+iKG zlzzeRMgrm^{G#r^keeYTT*oNwGA75NoM$2DRVO^qNNRDtqO!7y_dtAtoKL#!SbZsx zgnUl8iw?xSAf~-IzP{ArIz~^>Cg=%LO}zWH+cKm?67tD9&Z{7n;F-@}ePAK~2C4Po z-#p#(#7~ym80=vIQ4VFb`J?iUq?WwZ$|l|cu>r*IM;kYk5=o4F0cT|r$zU`=Id6@e zmpggULa8Nh=gLo%0rA({l^04ad1shS&~I?t3-i)f-m|=s)Z*Vc<=iHy?p}&~{Nm1N zC?%4RzT&Vq3PcICyQ81ZUMRJ=9#cu%#G4=<dv0F(zRx;_wVkxM?$YT2o0tQl2wH|# z*ZtX8YH>ZLcZN+&2T>ELD(v2}NJ=EZHPoDtr`rB2YI}p924wIvr*@E^P5GBEvfd1i zL$&=OJddUi*U6At(X&a55mdT=fY|$5TKF5Jv`fNH71fe6NL8cRt23k)KTS%NP5c|g z1w8ZC8y7Z`5=roLqWsYtmioG84uD7Ty8juB?)7g%_e*Ur9>Gdk3a!*cNBFGmL~{TM zvyX_{K2D)-2k|}62k2Beoj}m6fz*<}d5TFAW<}qyY1-3i`yq7Cy;-RqJcw?4r(WMy z^tDc-O%(lhgl#Qaqa9e2_TT&+Vd8>kO=!_Q_h0wkuETU6{j9e(Mm7>;jkHYv6DLuE zaJTzOD=nMuEN?RCuZSS^L|lt*PcPQs*MbRcL#8T9iSX)4QR^N!0{BbImRi)`-MDU@ zwh{UPg_cc7ExMcD<o54uL~*5MOM*(oltSEw)S|oTxpY$!iFjE_A}TjwLlaTCr)ATf z?t=$i96p=DgXlTM38_Ulw6D9RRB8h8)1Up!B@v!Vf|gynQj6|x@A)h3pyClrELGY@ zel4!;bY4{u38>>w#>HVn(9Vd>r_Am)ovMTeLc(a#?ed(ef{93ymMsa|Wl`+na#87q zHl)__rr(66TQCtx(y}EH{epwi4Q)uRjvY3J&paPtGLD=_lC*3|6x^0bt!w9R3Vz%F z|F(qMrL^q)1hp~oS|YWUHQ5xl4AJjDPDGNlY)M3I7g=HdxOAGB=8b8zWlk1T%W3=w z^Y^6hBqSkigy95v*5#RrCtv85NmS{NFh;<>C9{vDi`da<!f#FAr#%qCcS7TtdcJ)G zR`q$$75OIOJy+z}h`!H9B$x;#{UTpTMAP>~V>fQ6n~)m#g792l#vAR-#Qv*PM1l#9 zOA-{O@3ns?=fzz^w2jm08<SEi+B@1hyf@w=5=?MhlAthsuf0xD!IF&xed1bF(&Yc@ z?+K2JX-R1BSu!84)Z#pmS1z`Znjjk_kp!2O_UR>`hbOi8*{~NdiYYY_N`hxj1V2F? zmi5Y$@p2v0-g<&(o|+&VB#{KyL`^$`N^jBg7?)rNkJRG*iR5+Y?+LO&aY=&0^gYpz z^C;Gd@VuQ)3;KFei+50x_oTlkI4((0n7$_(XZ5Re^~gpe?0}G3(N55G_4fqFB?$`C z_vAwg%U2JM(KdP<=;=zWXh&;wH+^a%j4RwJi<5x})Ay#QFKi^^@zU>uymI|L!Etd4 ziQs%_T9%bBwYc2KyV&0oWP{?81eY$+)-(5|7C(RTlJ@rm*`T;2!L@{F`0}n-P1mc+ z-;edBmTa|cV%5c4(vQ6NQu8yfj?)C$Fmc)KJbkZQaH>)X`Vao`CKWxZO3m1*TGa2I z_1pd1)QCS<>M(g*DE`n69X6`^zaXU6sW-mYw{sC~6M9}3h?yJ3%4ptl{Z^xO)u>;3 zMz67&Sx!3VMK;XoFsWr$V)c6vYpk>?YY0leNfq+bLhQN?!o0WE+<ano<A#J@OAYr0 zgCMQ^ME|W<`}lajbv@?ty)ty8&iIQ?s#dLbDhf~h*9p};bEn>S;5h9;;Ny+$c1-)f z;!>1lWfSc{;Nv|DLTbrddu&3cN=hUlQ|mb0p4*<h_2RPrNANlDe&UFF<euHinKB^j z;yFjupp&~)zt#P+<h{07aUEXW`>b#)zx1D<rPJIu&2H0NIL&I0!t6H9f6r@rSdD9& zr<?~LMQ>?y?MmK&k{$fBC+fOV>xbQk)QhWOuiKCqad6x@_qvI_{O1b|cV%3Xuy3Os zxM+pj@rB<0xywFxrB<1Cht;KrVPoXrESq@#?ti<t7r)P6y=H?eC6bUg;X2Nt2Oo52 zl<Di2{Pt&8YE_tXSX}}?rn5Rcm}L|0w+ojIDB0D2{ILq2lt@C}=<7K3hPdeiCf@Cr zE>_HwT6NDKR`a)`boV_FyH7Z8_Wb0H#VYx;{?XKvaY@2{g6poRlDz4|PX5!^Rq&)% zr*=nF?K!(uwJrl=&;0q3ZzS9QQpaE0<3>-$B?(!39H-Ctj{ZBZRr30@y400x9&#<@ zaL#TuZ5P%;dJI7=X<n<9zqZ9S-odREU8zO&i0S~<C7b9wx}U$`RJQx&i7Bp>NaC|Y zyVY%N4y##D4u*}vrF!|FoIK_xZ=K{yExD)2CidNXpWlAt18%q4yId)ego|gt`@_R( zQuha8quOVE{Rh5##Vvdw*Ogjw*ON_rn{%iCX|HkVZ4a05q(l<^cI;M5&mC6PetiHo z?%mqmf9Q_ambH5AGEZvB-CH*C*-dTz=QeH6d~(s%o|H)96rO#e?Ge?j$3WQFHvJlZ zfipkpG^^)HExD7&Cg#_w>$h1oCAqZjjh>W9;xyWqyU@<eeRBY8G`za3e`&|<$(q+U z@T3;CJjKug>DI?0(5@#;+n(?)!F!0_F7%dp7<WNZ8%be$Z_)dU!df>Zq}Fh}(deC( zpLpbwjO6~38E)4v`+EM89M!Yj7F~Y^U$a`3Ym5~>)K`1$F5{w%WadQ~?u*zjDy>T! zGEaDGgSZ?-4hX4r=B`zW{Jl`lZQ}7l8OcWqWw>oK`g&3#3A=QkteTO0YsUh2$HKl| zn<6=C)^%HS{ki6z9HnsTkm_sVt5vG_U0Z@@?m8LCZ_8%5wdVEpq?RlNn;46H3@@7D zZbd$%L=vAoyGj-Na7*yaJAqgUVgm@NB}>#Mrh(Y#WVru9pIS;JAxpt=78K1$;^Q8N z4XGttBAciM8?Ep>mV%HHN!X?PR9Z&zMi65`NG;hC*+dqeV3CV6+;Yf=)ROIrO`v3x zC}CZ?QX&cYOT#UEWiyg^iuwskE!nQv1ZqeUHAUAFDUpP1F&yWj($)QY%2fB<d$%RK zuFO&7JBnK8jwe<r^6^A_ISZG`QHfEx!7kPwAm*2@?)~FFn~+*^T^+q85P2XDz=qW7 zQ7cEKt;X$+!$)V?#N!~I1~DBrq(l<(y@J^l5cqhL`fW=}t+S1=xAwck+J;RGDqGzj zQmVRltk1Tjlt@CpR~+X{*q93&Es+nYC3mjc#C2t=`(r^o-*;P5N+coQE8N0y4_4lm zCOsi=7`rcmKb})G60-st-IhlC7R@PRGiOQdu5CjSbcb7k1V|ZIltSY%kG$SiGpUMf zV4jN4IP<E59yNyF$MWGwEe`W)hKVUo@cPH#LAAoQ8$*yMUrJRCyR1-dQQD(C)e3z4 zihMwm%ZhU@wQA%i!ko)8iNZ(;&a0VJ#mg$S*546UTw%OKaH$8+Jj#dAN?p47i72jA zgsD9{8hT!Zk*~U0_g>*&`@m84g1=PN_^PkUdTPI__@u8Eq;*rTbU1;O@p|nZ5W63H z)m;TbYW;QixGJ`KIiA|k7=cU#f0&O$K6nSN+>J~0xF-*2S}P|ElJKP#J#*g6n~xv> zRKm9<Ho+;>u|wMsGG1M;g51hH*@P`Y9SaD%tW5lY4Lz2n6Nf`Ft73Ld%Jo4VCL;;@ z59LE@@lLRmgjOfwgBJ>Auj+Kx*uY99hwT#4(R0p)mf5jqQkas^sj?)&YN$z7^kf4I z!UpZ3CM`Q31rw3PCiq@Dl%e=b_)<&mprc<@bn|9}Bz(E5uYY&J6O_9aB7OZl=-0`= z0}*e*ge4J#+(#JNNU#k~ugr%{TsG%eL%K8d&Xx0%(^?kFF5B*c+P1knYN6TJNjoU5 zy5MX*^Y+44Af5vuwJ6McD{X?(^%{u0<@1x4L=Z%C9dn$nSAF4PKee7MYEt}1^-RUz z)wWeXWO0~ghkECpP(+xSqShd=libg`@LYx^3GzYvQ<<iiFiHi1eaPAd=Yw~#^4?LK zr~qOah^M;0(a@3vHmIzuGIV~JRm1ynRt<mWO-qv0*P*@%^>@BNpM?4l6y9(!SG`;u zefpNqAXW9=tKs3}KT~r_QffVU^01<_MWkgD3)kH2;p11RJ|QV3l34I(uKM82Dpj{= z0yfI6z1b_V_GbT)Y7>%Dt9RNFMdw;b%O)ltukXEbyuQEX*se?|kpz1`G3TQm2Jsk( zYUg)lN-gP4)h2@4OLf=d`by81e~<b(>zdDNUIBrB5}u_Mw27Js+DcPPNYzlb4fESJ z@$&B@Kf%wOB!d><=}n=Vf#Nk$+K^hG;D%DVU-a(@S$8GDzmG6gCL73kTuYuYiGCk} zIwj6J|DoSk;moZ)_sR_VKe7~2+u4Ry>a4D9P<mNQrm$c_N+cnljW&@mhU}bE&na9D zEwGkIEz3r1);X#rQcIqEp>mV+)Fw?-x>6zudFqC>_4{1!-r?Ev_+FeaPmCnUhScIW zgRU9zoI{)bkSZaOgk9TvV~!dh|MG6flJZ_$zMGzIVz=+em4wuynRA*!&rf`q(H~{x zI1}GI?pB+*QB8#Zw2h;Rsj6i*smkBv;P;WH==&wF{h+_c-daN>h>%(ozUP(iQxGFS zES|Sz;ayXW4US6^weQ%Z-cJ0WntXc^dH|y?TyWpTr_DtTy|S+_SFQh%t45R@lU1Vo z3PpZ?>D;B9O@KdrXw#=6h*6JcDVmw5bBQxnW~-UUFm^^*&Qdwf*U;XAPbCmiOWLyu ziho03LrNqe=bRj;4puE^;k?@Qv3$t1+r%$wj5ln|Kb!X()FsL7)riqsvv!=$Q*~DV zrY2R|nYH1!J?f7;kE&|z3!$tIfanXNKM1LH_@=$;syC0R<)0Q&HZc!Gq3Qo@-u$61 zNhy)UpiB3vUaOC&X$=a)#xFD5xxeli<6T$xnoP<$`SPMSi_H0i*~=CA-!gBU%PLm% zer<8Pw_^Y8nNmxZv`yfIsfUxM9-T6k5=r#^G+WVo%GmhfhQfY@58HbmzOyj-65iSL zzNI&^oO9?=Zj~C)GFPAH#f`V$6!q(VP{;e<>xF%(WzB?G#PR2@cJF(6lz0E7{gblx zo&0Tu8c-PZ3MYMUXuMLLSif00)1ScmylMH$$*YpXyb}%PB&C*2iA}gGmu5Cz^|1Hp z)~uwINaBN<t5n+^oAsGt{604Sm@GfByLZc|Wl5<e^I;SB4w#YrY<N>|UDK+*lt@C( zGhtV8_3`fOpA7UGG|aSeE}y2%AMVE)|FoOz`K0&Ik@u`;E^CZU9KW`0^6H|ay%8mg zSY;&%nLo$LtkyQ!1w<{J;gwo<99<dKKAUL&c1b^PSP!pNxhs-V>uLCg<GN%MC%>%d zSMS@|TmG*dnNo}TY}DVP9+^#CS+kh`zs0wE?@oT+dLELHHI!Q1a1RT@XBF+`J5jX+ zersnH?d4l{3+-GrUN*zsZPYtX;DbL~i}v^pu73ixF9kvB30rbj#ffl#qUnJXgSgB) zm3C&?>%+8%?X;p(ra?Y*fV5=1w2yG(x;<g4^4UlbA+=~%V3`KF1rxAia%kc@t0WPv zbBk1ILTb@ILX&oxr#KPCbyi6tWzMyYNOD%u{yWY`REBXIQj2!eaak2iM3S>AKN0Ns zwVt5VqTO^{OH53Hz_Xw~e&!@Ot0b{vVy?RT!(ynF@q9=v+H=QsHy@E8mg0>hXO$$P zosMxEQj7NT@oyy`k<cb!Ba)m|l8AO}#%)L~+Aloz*)sY!n2!i;M3S>g64t&~>v`nY zqTQxvRX&1j;3Fj*Hbk_~I><+uDifE{q8-MZk9-77<Zl@y5w%J~&R$6FE$n!Euxq4G z-A(G61*UH}fAqKNpXsYq`vZm5lFFM@;vMt7LtZ>Qc=7Pbi-#Pg%5f(9>oo6kc=7Py z#lt5r9&&sx$I-O*LGP^4i-!j<9!c`zA+_j@Pc5|e;$ab69v$VCX;#gB@BaoQ<&6>Y z?g@IYpThgyc=0H;<uR|uyK^$9Ju@RIwd9Q$Hu3gV4|ylvEP<7>?4*=fgh-*|jBksT zt9t)UPV4q{Qfkqv551LX<wxepap1+ngBK5<ym&~7B<!;K4t=X>=wnrW^OI%t4Emri zMdePtW9nm351F0^^}WpVfEN!BUOYVV;vuzqJ(sI~>bhKe@vsSa@$lfq!zV8u@_EST zFH@_%czE#Q;gc5+OA9IKfp<Ek#3rb}kau0%WC{4>kP=y!WT`vOO(6cfrfu>b^fIIt zd!*GitY?1q)HB}2zrU6K+3(+E%D5yUYY%!$MMityRcq@ms#YW^wPg9&#MLhh^J;fp z<c^y+CR0iz(V$_jn!jy%;Kk#Lz5TogGk<rd4Z9&zYRTte6Lh}zG|t!34_%I(IXvQU zMwT2EJI*l>CqbNVK5wDaV&4+^33(z{#w7_38_yIKu9%tJQuZhJX?T^FXM^RL;qPAl zM$MXP&I~(Fvvq@$KW}urZ{by5YLO>y@}f=NxNTzbmDeWs%q;7Tf>(Jdk;L$W>s0H9 z*+!EY@1%b<qM=t9KH{Yoc@+N|p2f+lxJ|Tr>z(uoAksldi6m;?w^r48lWjEm{cE@8 zE1kXD_aAko7I{V|ujX_^o=xlqaTkc|;D=sHBr);5)vE7c>OasaY<QLT;8oruukuo> z(XXo%d1t44`)p#+q^e%m@vXgHlWVwAB8i7i!jp2=rohIeue*EQpL!zml2c{zcC$}D zgl`|L2;Khqa`n<FI%D)N+*UxfaBktodaWpwKx^X`_=VS6GN#!ecHq93tLomMiBJnf z$Jy)Dlqn?<uOuG9ofgw}O-cTz4hSiU5z*<0i6E-shL{@;oWSh4h!^2EQ8NY)O4BwX zq63KgL3ASmHbO~^h)zee197h8&Hi%@2WT5%ydYj)uu;|h^BkU<JathYL|NP^^CS^c z5+kD15iLR7U8s>iuGn<k>>%PrxOJP2>ZuWjw2g?k9K;JCI$Qz*HbO~^h|W-42Vwy3 zd%3FcBA0B0@giKL-g>pa*e-1&BHqIjoCl&%5fHEuN@7HGHe(2gKX5}#yVB(`M<(J$ zc>Q;4RJE3ywT*~ag;d=SV(X<KU?Y^oi0J&+F%V~Osg!)4YNXUcnCkAvb>_TUM5Kf0 z0fPP|8=)jd7@E$NHGyVF-1kENl8rE4gu8vI!hA%;Ptbg+UL|)Hr3yAeNsNe2jOBuO z_S&s(<x-}s!gxVc>FI~hBO=Bk?u-9#tGj^+*a#&tB05(#14J%vh<QJF=3%@bwtJaj zy^4s3k*ZT;t9nln0UMztMnvb;hJ&b$`(Ew|>TVb>h&MMb3x6LG@eYXdP9yJoB48tw z#E9tR+awSxOWy2FY!LhgIbIMiRi+hi^E;1-<H&g{+$nQcBl8;!B{3p8D_0mcUT}(e zKLl+_7%zy;KYksyR}tX^#Ll2C2_-QiIxBZ0h{twMaX+LMPHG_>wx}qPi1-Bg7!INi zwW3lIBcjuFKj4;_6>F!aSADU8wjtxCTFIwOBLdBOg4%W(hsd#k91qBuVxw#RoA9L; zjUMR#)2wsBgp|Yyo`J@8^Fnu`mSdN+Q_9-UAZNMlnQbO=LCAdo@!b&7eg-DKOJRd& zxvh0|rzui(p+<*By8;^=mrTiH>(;BQKHs5o3eg-;Ef5p_*}vg&5K`;<)$7%?cXz0L ze-u_W@k*mw-jvdH{PF*tWX%ZkiW#lA%DG<0S=P9gH@s9G|8WpfORk^V#3~T?fS3wG zYRMI4oA5yl1o1BrQcIRkeqs=aS3pRKB<!3AeNohO$B`=|a{Ys6)y>-7WfwQ}a|^=@ z&4J-x{e@eN=_VcOA=SeTI&_l`^{H&)9D2wH@k#%(??S01@7=M9pcn2pd;0ChQX&cN zYnxPUK>S$A(D_KEMZIvFC@AOB9+$|p>4))-l7!UaFs(WiOh}0&<a&Z_gP#GN;GokR zbdExgIfWNVn~<I(rQb;zlTAo14%7V~1rt(|il7y<)HWzyx+k9QDyO^RIi~!Clt_Zh z%{+7YJfs%geclaspws>5Hn9b@q%>+t@jw65P)Z~r>$Kx^1o0M#<!4{}O4ciRe-zg% zs$-7xBZ!MZG+XX0lv?seaGNLu?Vmu6em=9Ilt_ZsBB@kNS)GUW0eqUAuhK|r$y?xU zLY9@3q#~%kInFx7e+5!j?S}o0?uXA(s#{e1<Y^vxKd=4Fr54+xcnc<^Bo#rm$F?E0 zWIi}1LtKh`gy!RRplw^z(s?zEBpYfiR}W)`mTDreo*AMHh`AtkgOFNuuM^!AG`R1y z7*PoK2(7{GKo8+AAsLq>c<sg5Sc7|n)`Pekgw%Qi_d3x{L3Jxk)vK>GGh&FhHn&O6 z!0kW@+$ALAk_4~T7~*BzJVZATT?#^Koy5IPbW_kv&ECwiiP^Xn=tkTQ^cijjk`hVq z`i`+N69nBSv;c(EqI;bt;0~djBX4Bc#Ae*HbqKd-6<w>W(w+O^3PpEs(XUpPh~p>_ zXF${fA+_k<GrCEuNrR7KL|5FJbqcp<{eYXZWL%PvCE_?Wa5Goho?+f05K@coJ)@hn zDy^BFWfNtV6-nNW+p~7yt}Q8%ge(!qsgPMD*%ie1Af(pQxc96n?msJ2`~57NScF@% zw&3=xVz@a=N+cmm+HpPu@dJoUK}apS_l)k?DmLT2ESsp0TjgHC?Q)H9vz#nlIhP?z z#BrVj(Hq1axV=tl$+;7ocnG)3(S3A7akHG1NJ5r~<6I76B;7{`LTbr5Ae-2<cKg!h zxLs~9ZkCf0Nyrj$oI3|>U%C&(G7wTr&Slxe&qL=V`{6#iuW+-Rlt@CBG<I3w9=a2_ zkM4aCQcKRs*~G;dMV!NkqFc_?bm{S%MlZ9+ELKf=w$+}}Bk$i;3)lCT;9kql7_~?( z3a|QYiJI2DS&aC+P<_7=ZU;_+ARA#^F(UF}o(<x5-1R#P<24yCh1C<jnp>s5wh<9C zK|BQ_2}1fkj}wtM_7fnMG#udGu5Tud;w2)l*$P#okMVUM5xYRF193kHT~>i7`8W}I zmDdFBOU=OeS!z*uVw<(<{}FZ`@KRLQA0H3_6#*4HB6f`p1r-r?AE08FC>rcof|y{U zNla8M8+(e15d{nyY|+@FhS=ZkdruTJsF=S3iKu9ZCH4|y#Pa|B&Y3&&yR*A5?-M>w z_MY!KGq;@E&fMvD<DkMh^gH59v?t-~z^7yWOdFZ50+FANKMch4$%EBPF{@X-yslij zu%qQq{#}5acm~8k5Nm><jVz@=<fr_<4Pw33`_*pSWU-Zb&`TRV)_<Yn^Naoa203v& zYRRei;_U|b;w^1tDFq_`zQNfbzD5pLcIKCRbG^LY=I9qOuRXx>Dkp}6;J;}gXd_E0 z5cyXZhNZ*<SS?b$!QPU+$D56u;9Y%#yP5!kHnNoT4g*2kn_o8`^T7!qzKtjU0am?K zFRz(zQ`bKsdk!a-fcOHrJ8#p)W+T&8Aee`3_wmctSWm2NjBovxv3jR^dChv&w(TUd zkrRVaf|I&DSUvHa0ku#brmH}(E?oBhB+hF=EbTF~^(P6xY@O@nHQUGSr=4Opa^fxI z)Ab-w+s#InQXp8T#|`Is;fp~$h_3@5ZeQrm_0k60dH;LAYc_J?9^BP+gHI^kzuFFF zBTFd|Y_;bcKM^**LSCKz)~BVHzUg7l5%kgq{ngN^$C!<rXvbac2VZh4){&W4SxSMR z_nFc2SlGB5#K!P&w_-h9_41ltbjF$fwVRw+jJxUvFZvbM!)YT+DG>CP{8kRuEa9o= z!&8^+JMOt&+W2hihqCsO6Bk@Oq=tXx3HVk#ZDc70BLB`$1qA+;m)Q5{bG_j?LT`{0 zzq@qL+C`TSsO|fMtxG!F)_Kj?voUX<@?QFF*&pMJx=&6WP&@a`m{6&k@C{ymKi79m z+VIuhPd;p`Zh&1Gm1;Q=Cu-dGuI>E9#BdPz;d{SJ@U34>QG(wRUOby$hT^Ww9r*h2 z{j;ub?Ss7{l{)0(e{}Fm$K1h+iAzB2bnW%6`+?9DCHPHbe$Uu#Ou$!^XRp6$X&Cmr zG(`!1sd;;RvDpdisnxKzR^q;zO6hsOG4U|I2EA;(8%k$l?@m*ch|l=_3^T6}(mhBW zJ9D<p_;ZfD!|%TDtb|I1Yf8n$hKRBJ9N(4s2W)9nsjd!&2wGqL=!MA4mA?L_dPMhK zYPx2jagPtb{anXeYcK6sdJW?&w}1`&tJPpbb?HioYQhK^#A+axg3uJztD2HzT@Y)7 zcmae;X>@E%K)SpUh-V9TrG(}PPM*JD&+=+l4=C?)!PX`2=-JL5>ZpFXS--HHBx_<f zu^V<3|Ark!B~*(0kK8--dNm$9mTzL`azpG|s+4|JIVSc8G5XWC(wAsanxX{vQMbl^ zs@wQAc3wZ2e*K6N+J{Q%SCwO;0^*5lt{-s-2u)F9FYNlAhJ9hT@gM9UKZl*<NoY}; zqQs5ZrG5ds)lLk5J}K|`mr2$8(4tgIzt9{L`>y%V(u?cgQ2icSl%^=b)3do#?lum7 z|6kR&231Eqy6XvL#?W(xexF4{({E*Pg`Qt8{Gx*qY3IDQE3UVP-yJ@0dh1K@y(D}c z-wE!kl8y<ENv5H<S%5x-M3CY&cVCAO9bO=wLXR^Rz0C*^s;fwF$F$pZJZ}kmUbR=y zYyJ_vr%LhKcS&)w5uPI_ZUMpl+P{I&lp^7~uOmU<4B~d|zV^eoTBUf+-PfT9^Q0k< zrkga8#FZc(1F;GSO(_!GF`ctMY3xVU5{yX(V_dCLyyh<Hv}x>LJ(|vm(?NU-#MdA+ zrAT<x+o7P(2hk6svAGyysT8ld`+D^JBg{rle1#G`3B>If$I(VeDH7Z<{cylhpyz_P z0;9@rFuGJJUUT=g?M{wGJetmlO)*;f0;9?+FuK%~BEcQg%J~yO?+@Z$jCHq#EtTT6 z*GfuxG@TPO@#H;0ya7T}iiFb~y<QFC8;sePr8a_I65J&X&yf=&aaSemzV4ga2q{H^ zJEneDoJXyV-PeV9a+TsWcS%Ee<OIi}*KfYKbSZL|&k<6J1b0k5cmD(8QtZC&ixN~R zUUQc;)T^ApZg}l>%(^&sr;U(OBs{{H_3AGmUc_9mPg-|_UJ~4W4ecW*J_m6th|ANu z8&Zk{cTByuzYF4Y?7sFNlD5HAFA3iz^>&^U2ZDGX#M@~b3@JszcTCx8j{z|fbMq74 zc3%?olHl%Z@K-r;R7#u#f_W8EiUjvk-Ctb{VjHY69Gd#XpqE7O!PJx!-9T&s;+51V zhLj?~y;S$qZ(0pZlJQ-4Gry~PbARqJ$xgJKw{vaic{`UUoc*m*7$NDH%C5h&tYe2i zy=Uu}NirG){*^C0>szHTj-r&Vq)my4qvs5$;a|D`o}ZO8MTry7daYyctKPLWxg<FS z#AzU&8U0yFrF3;DCT_gt<LaHad|Yb#dPG@Ml+aNo&Ta#Nf2AcLR7zK)VuJgE{#S`c z02;leqmLlX|5l<HFO9`&PH2h}I*N*IsFcQHH77Jhi8x{_w^AwVJW6LTx+9d!^T}08 z=OWDsO;LiguA4FY@{vq#r4r3?boSDm&@r5j&a^Z$3l%<xO6gduj({{{8sainLSqUc zYtl~WtcY_nJ`0~#pD89(Y6)hH%&&%oVZ1BVr9@p`Rs7B>Q4FL$hsIx~>eDAzDII^- z5ww9n)GLfo!*^bki06YY?RlkA{EiGI`Q&v(g$8ItQ<TtLPc5W`N^OUkFC}TCj-U<v zRib&V5?W44@)2SnC;#k>)}Q}dV<3-5UldN8##jU^A@txEeRdpv-y6|8wD8|9yV*)n zmI5h`uU#rcG*Z)dKs<sm_4R4IPbLMzV<3+<d+Zs;y+h(@#QXdX<Mys;yib-=AULL; zzca^ky<lSs#?((oF_6#;!bjnUn~j{<6U1l`w@D17=_(LD3jYr1#xao43xcEY8Rs5k zHgckI3?y_F2#&)0|A};?7)a9#f}`-^L-#ftIngKv(sUIFj-0z)$M4iPih(q}AUF#D zNw>1u$cYswk0}_1e>aVX%TfviN8wBF<_WPqkh^m*3ZI?E^<{cNa1`Ea6V9DH($R_E z!^SHhdN68IQwjt};o}bEOz$iZFJVl*0=Af=nO<D`*q2fs>FC5Rko?u)^{V`Dlu{s^ z=A5$yk{@AA&HvIyrWe;7g@@<Ji3*<sQIl_^HnNlg!I87y)$c$YjxqIeiGeh|AUFyS z<&hIBL-%y-8T?UVAWc_+;K<o?_rI`l2}a@jNDQRu1;NpBs8>0`h{hfuc9a-M(^Vii za`t-FC<ZdrD~`fL`^bq#F_5MUHk9DV+1p2>7|75*e6;NCJSQ5(K!*0AgpZur&Kt)- zdOP<RNcUGcaVc{5L5$m<`j^L3XDN6NB{*_+fAv!kr(#U~-83#dlLC=>RMg#^z-+>z zCM#)Nc$QKiJfe|a^h&Ig?0^`^?_u49byxLzt>iqj`{Oxr4#uIEU_AOaj72|w{$Cv& zck&Bqx{AZm@d+3ubJrT*mIZ--)sH}^6!*0`nx#}sd>`X!{Hr~WF}0>Bu{}olXJhQn zNQERh4#ap68}Ip9Nu@49ECWa7l!}RAm>2Af`N1AjzE#o`CBms8oHJng5yTh}7h^V| zQsF%>O2q`CcdQ>|6c2Ne?;=i`i2a&MxaKK9-5;N{Q_X)*Pc`;<nMevmc5+WdG(LfU zjqDWj&ky%&Kc$)9o@jgmKT;-y^Yr^<r<jw@h{6f{F%eE<ANU^Mf@pjKf1m7(_*pOG zod($BT}4FU1pb%^r^*|xC)djf{Jre7dY=Bh{Et251b)6lk)GLKIDtPV!ddsEZIpzP z<A_X8;P08)c(;GI>~#Fb1fP&8`Puq8K{~su1m6Xa6ZpGjc{S;kZ`#9MH700-DdB8= z5+Sd69hFCR0>7oCWj>+y-~U0-Mv(|5NII(}3BJ>ioxsnOa8mxg@8IiYX_+@BXroAk z^Yo2wcmh9D!inZ*F8hz!qo&40NKqo3drmq!jXgVopDE#F_DMhf((F-FV<My|5zcQX z-S`B4ri2sbd%o8tJMq0SK^sLPoI_6<TO|!o;73Y!o__c2<od=0ZCHvB`FZ-?V;j|? zUO$0<RkLSzYwsS&T^SKl!jsQ`b=B;ycpc@HoWQ@ToTuOWe-N}mU7<YsU)?*)U0z3J zE+_E!mh<%c{ttpSs4LW~X-oTN-)Z1=vlIB463)|Kqd+u1fj=ff`*2UqSslF={wnNQ z{7vZXV8h=~@sXbYK6RBn@w*VXj-~QZSZ9Pv<zuQQgx!@&W#gdqZX4efpTkqax1Bf& z)1FhF!)&PDY#h{#uqV%FCORMJ{y5)#|MJBh8st@;5)(dhVy??wnT>pA66VgFL4@l9 zQHfK6loNT$7Hwp+3Fyt|16mh^FdMn9n8-)^MM85l9~*X79xA0H%Y5vU+Q1$0Pj!VS z_pxX;ih`8Y_6p_mymF~*Jph`T6DpO@`#U34DxbwSApE8x>*3u;ue*L%2Q;W9syCm- z2OEuuT$jJ$=rf`2kMsPAGq-AKU_<q0b9LNpb0SaiHynLN=U>#CeDm%NY^YvsUHk@D zV<Jz{d4KoEdB(;3Cw9qgR6KiQDQ%BA@gtmMWzsk`JABP!^1l3<Aipy8M#tpsdZCXB z-|67*5usA%sqr<BI)YL6zc_E3@?#^;v;C;NR{JR~?z{erk$*Ua7Vn<djt6m7O5`36 zQg(JQy|WUi?b%o~Y2){NaPNGM^!lU=@fH=X{d*&Pj+F4MY9RGL2<-6Wo<X0(Prva! zFS#q&(Uh2AFR@@}?!?JmRY>Gdj&onLnNT?QrxB6siixlb7}>!8(Vbk~arHA`Y(}Pc zWkkM{8}@7IR~ir%h~rOFVj_R0VqWEbFyAGmraFQKDsf6oG<<R+*w=bV<vV}Wl$UI= zJiO-|X-`W(?|Xtx2;7*a=$>H6g|t^=-A(^uDfSG$!`B&+_o=!k_(ezF=H)qHCzhh0 z4>p<;d5XrA_z63i_lcfE^|EIOd6j#g;$7t_8t>sJ1!bN(vY~ptXYjJg{c+Joo}%#{ zp@ydYM`T0wvS$c2Chu2L8x=1?)ur(s;diWY;LrS(11JyG%bvl#K?9=Vh^FLG9W2>A zlEWp_G4CO7wP6iwbk8I9?U-}m({{aZ!HAAipFP#CeT`HJO;O^Nt-2cFE4NCh)cFVf z!lafwIi#aGp(#q7ckaEv=iPb?liE<JXZPyhy4>igi+1d2N>o(p@NIsxJ&7TMJ0TL) zr3CJ_g>?Oss}$^UrQ7bRIiV>^AlJ=CU3u_1GQG$JlVa{RB@#_hV$8NPjP^Ba$=!-d zp)^g3wWK+rDN5Y1@$ZcGHEXq@Qpq82nG|bf9Z^Zbd`+b0eCrh>CQLr8o`4x2^QtZ- zPM-QpqbE(|DmTSbB2lT9nRlDi0UsXM(UhoYiW0}JJKX4L)40m5HdLxhkCI7^U+d(K zrbI<klxXRDvDF3ND^wdQ_3Mqjw$GY*N=I`-QwoH&uFM9_l=(m^1$%9*?R*Ysiit`f zG(`zKpV3)fWj0g_`DRiqk2)f=p(#qBoQ%%OJhP!vD1Vb;y=qQqiV~=AM%UGL)~ie} zYP(&hwY>=u=@J4h&4~I|t9sRI$HY}@EgG@-#xHMMG2^`Q@iXR?7aXwi=;6J0>}c)z zo9%f$Y2pqY8{Tu(_B;Qnn_c64__Y?bg4l|LrYHeTH4@Zh1kU0}k|IHSK}v079j?64 z<{ulsa*Ewmkh)}z%UgK8^(I3)Iw!(&D8Xy~P8z3$mP%G{w>)6mvP#Wd@|@Y2G;u^n z=S0w@1g|~cxL^B2uIu9OlHG17snn@|eBW%$9=&fz=S0w@1h4r!=_L6Q<v<&&pj=ey z?Uv<c<Mulb>*$;ax|HBGe<zK1W$?Wv+USC!QK{#Tyx(k$J8MEm=S0w@1h4r!=_J|w ztaZ%BoDC1Isnmi!Mw^Y(o;|svb0X+cg4g_=G$MZA7-#ir`N?P3RO*nsLJj|3M?LY} zQ$M^t5J8s`f9)FD3deA;QDt6{P$}qbW8LMQG$bk{G(`zs2iulcHQHcasTA_ZY%oU~ z5|uy%T}tqpzk7M0%*_VNT%}OXW`i}OAyElL(4_>g`McLE)LpZ|x~o#CuV#ZaydhBu zM9`%Kulc*T541tE!8WK;Xm@6V?Ywg$=u(2${GGJ<60<>HqEhf5W`iE5b0X+cg4g`r z{S|zo)hqf$l~P~ZIT3Uz!E64Wd1}O*yQfyEqHoU$N+;>8Wt*$6!Z@1!#LgW*yWFoi zroME=T^Ip$8@=>DJ0q|B&*wQR<s<TLHbQPrXo?c^F8T@j!EU2x9J5=&hD!N7q1$MV zked^lqQu6V&M_O4CNh#opF^d5zSC_qN65_yO;O^&rO%p;yY8WHR~stjeS0^Xw>2lC z6dN-*@zV28n2q5-9OpJFNtkzvl#fxmjpo>=j=+t132KTGU;O4ev$6StV+uA@%EwyW zMso~TM`SiMMTr*%Z(}w--}0n_4VCgSV>cU%HYYSiiCI^MI?eYvc}wY&S5&GkmExGX zDUoQ360qIEx|=-*&Cs7zR0{S?ieu_JBHUG?DM}y@jn2v=v!PPRH<L=sBPKE%s!Ivf z1tYS0mDx}!l)p)(^(rQUjf(100(IJmy7o~~DW5@R?V|}1>9X0R6KI=8)VFih>oeA@ zoi`>bs!Iv@7$fTal}h={JM&kKiHhn{0=^RS!A5>prF;b;^Sh0Sit18AeLjlY{@gRD zl=}IYIQHr3ts^fTQhW5mA!YT{O6V*jNuI)K5qp7X1)(WQpzq3N7D@6j-Y8z>vLUt4 zE*Mf)DZRs(*zDzLrM7N(M{4`6cvqGuTu;(`i;2@f{0ziRAT&h@^v*3|_L3y?zV1=} zA&8l8d|FZ|E&rG}9mEn4n}N_2B{0e`8$K?1Zq*&i*MQgpZ>_78*5jC1Wwjm3<3WrC z5v54`z-Y;A`1oq%H@lQi25}VLzE{249%JHU5F<g{3PMwqz^Kn`_&D*IDFez~LF}D8 zSXC+YD>1Pc#J}+#*5M#DMG1^v&4!P6AHw+(kAOH3Z*8fR`p1~q0>n7n)swyYMKcy9 zFbX#tKL7Z7(0ZlAKnzU=*HlXVd`zr^DA|=kTmnK<l+alQV(xZYui6d7#UNA)_S)zT z*nh;t;z8?G`5b$I&=e&&n+UTP#3668*ognbldBZ+&1|s$h>67@n7b{=T}@F!XBn7t zP8m@948$QQL6t)Jn+^6KF|hzd7d*#4AT&h@&L;RAUawFSYh@5qP!m-O_1J81O(rH< zK(Mx72qH=mg0l(Q@b=LYr$rnA;s<C^su%6iY}k5xL_ELh4mGyg9w1bg5}ZxYhPU&d ze%+(?3W%QY3@Qb`Vm6jwyc-j(AWjEyCkRbZg0l(Q@cGAaFHftU0pd1zIF(Yb9TS5= zw1YSngr+C~Unwg^+u*c_9`Mv(!BeZ0`uUjH@GsL_r{H9Y^Dh}v)>(?vzTQqEpRugK z8xY$ePWT#}nW0ktOe@>mASU)%Hm&-PWN`Tf5SpR{pD)a>l4L@cp0%YQ#=K*`9cAEp zy=+#txj{^<3Sw{E)k2*8p(#qRoM^+#eAC`L)VhNB*>2|B%?9g|*D>GIiHT!CJc+xy z8AOy~b=L{jH`?&J`$*SaYcGJ<2j>W>UT-Ta+uR@~UITGAh^s(oiV|!$wBc>=h4Ti~ zehA`;mCU!>bFgiDn_t=H1~Ksph!a690--5Nu>I49`}P;MSX|u-#3p^sx0?<6DED2y zP8}1YKy-k(u8;ZlOqUY$W3=JE{Y|_9LE>ikES1uA@tF7;#E(FH1VU4k(Dfjk-8N*s z5{VB%s1)qAg!T5AsNtQ7b`ZY@p(#qhc1!*oo8c5_61U;WRSLOlHd5a%#K$0*yZw;6 zs!Ivvt`S}yC_$W*j@phAR4LRFvyu9CA^r-2wPZdB)ujaLf)QS?mUZ2=%$hg}HBqHd zkIhEv+l4@FFTV)lbP$m)AyB7{@b+<3?;XnXK(wPpsa~{Nvyu9CA+`X)R(m7})uja5 zrV-xG`*!JBJ^;jn@C+&i?_)Mn-!8=AAYQ>;9R=^Bx|D#AF~WWOuFIyCUI(!R9!{m; zA2IfIFB%iQK<tRSnhHWwlz^|y_7iYk--78Q&V{Ew6P{Y7beA+H9>ZG}4`Y;HzH~^m zH=%_3{3JQ#ndz+$f*1iprPR;I#M@6!Z`}v8iFQ!`zWugZQt2{!ySBj{yL6q3wX81K z6CT`gS~3;;A6;x+3-8@wHZdB+V<0p|3C@;C_=?w)^QMm&k)EKWQm}{Ib$c;!@hj6x zYof(2+hHr-RVMZD*OO7^T}JP@(on9diH(II_`ZIByiKktN^qXYyYe~bjo<Vr?+zQI za9)N=4V!+C*;ufk%r!D04g&Ez5HGy>X-QL*;C$Efifd%YV>ZEY`#6kbRO+?!=9`Uv zbNA&MnGhR*H~_?!AT&h@&f96j*8mQ}Y=YyfdodzYsaqednT-#39M=&O+kiM9#EBp@ zMG3Ay(1x#N{QK+y<^O;<<C_PnDs{^9*O-m<Mjyj9G9gyR{NptcQ$c8o5?n{24PTQP zH*j%j_my!D-D>@6D%JCw&CJHK@1MvuG9d<H{=p~jz$jc(l;C<0ZTQ;KtLgk>cZ~E^ zs^h;`T5X>-^SidTloOwT=nfm4f2b}cmVbR^+CI2Owh87RVaB3Tu-C@A%jbxRKc(}J z5wM{tO2Bqoepg4Q^N&B_$yEyZW;R$JF|ozK#noMqyK95c6eW;{X2Z*)CuS2Y!C#>S zRSM;AHdwD>;*+y6V*xP*gr+Egx?ncEUZEz|Dj=q!CaM(bvDskzh>3$iu*@$2p(#qB zPMZyH9~)u*aUh5<cRrz{QfQB6gY7&fjs>w2hzi=ErYM27X*PU~>~NgaGaH`a5qJib zf?qKk^j9%49R$74ci??AMG5#Av*G@#hIgHxhKJh(9!{myYsbWN5dC1|@9?6Uq6B;; z<{!aR@4(e4c<RT{PpOpp`Is2rZ_$Xyj{4xX&#?<jzq{Z7*R|X0S7QI%`;7CyeZ}@T z3vd+oMR0mYzeTMewj!Y^O3(%g?>|UzVU0vlD%gvO7t+0=4Y60mlpw`i;5Bo!b0Sz* zg4g`r%j3RM$@aX4V9!gXSepLi)_-(D1YJt-n!kI!IwRe?I~IF)D#cn!8?51-6G4{} zyyoxTKE6u#ApgDQBK8KEUbZgUU`y?s2)dNuHGlVZ{#3e`x<2+&Rf=AMHt2CWCxR{| zc+KD4Ut#~;%7Z(+Dn)Nc8|(o(CxR{|c+KCv|M*e5xBUios#R+3mqTrzXnr>)=CAsL ztpgEKlsNi;&_39Iz=rM7lTazxYYETMoX`{{cpYrVu?8xI{4pEM(awpWO9@`{cP|f= zc{#x!%Uq>U&Srx(qjMtYQi9j~-Rl+VuGwJSRVmb0v%wnPIT3Uz!E65R?E`JlY_JWg z6xyBHU`uUCR00unDZy+0?(H1D#B9))s1*E)*`UX1NK^t5bSc4W{_g$?KGEtGeWFUi z4`yDwAyElL(4_>g`FrN6Ez+sj8>pX;iNyYV$HZn{$%;`+uv%v`BwTaX!D8`n?I-am zp;C`Ld^viV6{EQ0-ki{s0#PGfZ$qVQ9+lr!6T;&9Qe8?|EFOOM^R^1lVY<>imNwoA zbD=q*Daf~suvk3MlO~RWFY&)DcQYwlRf81g=gkRCQNm*JK>PV;YD1-Ly$n)WTwg;X z(#3VSl&~m0T>Ck0uu;MPkVp6vDO**86xU1Y2#7kNDN0yWAZS02j^cq(DO**86xV&4 z6Plug#d3r8bM@4QO4)iDq_{WHoX`{{EHWGPq=}3p6C1uqpX%-Qn70q^(KjVL$~)Di zghgiK_v|@nhUHOFDO)c~?bQ*Lkh_|q1oE(j<)4*DW<#ZHy$n)mdBjApQBhq=pe`7Z z)vL^gO4)iDY^3!nCNdkUO9|9zBkJ0R@6o4vZM_WFY5QnGM7p>Rml9~3c3t1jRj;j= zfk@kVW5Q#$Aw^wEz{eO-@2^x!y>?T=W42*~x|C3V?2)n>jXPuJm!lY&)n}J0w&yjY zaZmmG<=dY$k$21YYc(2IQ<UJI1&R6?ucB127ZVzJ#*`q%eF|Q44Y6|~SXYAA{M}a| z5sho!Ese&_^m3oVpWLExJ0XHDC3wx>eI->R0ac3o6tuxL-Oh=iO9@`{cV7|Kh(?v- zJ_T)XZMt(J=u(2${M}c!H8NABxPw6(Tx0K?2)dNuHGlUNdYw(E6!$4;gL@vG6G4{} zyyow|W1^9=Dz({;p|)EzZh=^3-Ve7<qj9qoC2m;~+D96VYok6ADg}Ej;W?TUnxX`+ z^XJgWWtBqym<{G==S0w@1g}FL#u3;mg>p6<tQnmXL6;J|=I>swG?HAUP+!dkYk22G z(4_>g`Mb9djfht%v^%rGmfDc0r186%E+u$P8{W<}vR|dRPr)*$$7x7Z()is>mlC|D z4fj|2hJs4L50+_zzP2GzN#l1jT}tqpHZo6bvx)F-M$oH%J|+_T^Y?Ld&T-vgKEqC< zam)FPMTm+@`OM-gn}0N%u|P+XXo?c?JW6e-l=p*Q*+{=Bk!Xq%@qAEisFe5AU)czt zDUoQ367jrNZK#xwIKHxxOmiYiv5|}u@%$V%D)^t}uIlyi)mJtmt0M@J@Tf`5M!7nm zM7++RHdM+-fM40jvX01XXo?c?dWqUlDIdvxWh4EjL`74S(A6DSki1f<h5LJL=SaUf zp(#qhb{pGA6pd@;p;EACQfV}9OjJS%sxBpvher5HQDT2y<|>7JGbxVr>xfFQp(#qB zmKg0TMP?$cS1N__Hz|(v>xj&TrYM0rZM3fxsSTAvJvJ$h^qUh=iV$d<M*B*U+EBe{ zk0!;Dese-olz@*h+E<FyhDyP&nADQ+_CU6_q=f2H0=}}=(C;QH<?AJx-)%yuE+y3G z`#q(##NT(u{c?px{d`Pd|9nK)KUYt!gw7f8bzsC_g*|#rQ38EbHfOLnfYuNPpi=rA zF;N$>l|F~&TTB!qwnERT1bXMTFdAqOu>~6}XD$DjC`N1rT}oh-VK#hRQWvoW8?3Kd zk7J@3u|*rEOWFrUOJ>8zS9K9vu)%hx?J*{b5nHrDT}oioXEuDCSQoJc8}uLQS7M?V zu|*ryr36N=X2a(nbrD;zK|iSeF(!%;TeLx4N?;UjHkw3i!3O=g`uUhBMr_drbt$2< zj5uOTrEpg*^aivS6B@ClDN5)p11Ap`Beqh#$X&C+e2a-<#8!9?C3KdNBy|y6X?dWQ zm<^VHOcW!wLU|~mvy3FEi`aq<>eX>jOcW!wXv6BLjIVT-fs<8>5nHff?Sm0pxMq8d ziDJYSZCLvdLT4FCQWvq6>V@|)8}utNQH<E44YqS7be54MbrD;zLA~m=W1<+bMH`&U zD8bnTfA{$ZVrxg7lg8Gnl=}IYK>Y5A?ug(08u7b2OL5wFGf3ofoVqtHutt`>X@P4# zQ%n@!v<SL9ubkkM=X15XH!V`V@YE;|Umc8z;+qyhml7;N{_eiL?oEqSuh(5)<&25q zn--ZaS><F+<nQj=>)y10jnuc>bFi(%MDb0Fpv&8!ukW%&@pt#_b#Ge0M(W$m27O6P z6yLN6y4;ueIyF55e|O(r_ofAGq`uv3&?m-3@lA`M%YCBn8_>h?clYgeZ(6_x_3CPU zOcdX=2)dNe^`Q7o3zhO7$L+<0zG<N;O5m>Ag6#%xTBOh6J*VeeOcdX=2)dL&?wSoR zkGeN4((>>TfR}$v6yLO<4eC+?wZv?Ay{dcD0ya|L-WJyMW1{$`1#P6hJtI)t&4#y+ zx;HIgBlYb@q`qB<;+qz<k^1(GK&v&v+j-ra7O+9RKC*Q06BETZEodY4?Ph}>4&KLX z_}Wt4n-;K<`gY6*+&{)d@l6ZbNPT-oz>CT*0N#mf4e!LkJ7-e5+Zz*j@2)kxcc&>z zsLxLlyxTV-yxXTz+8e~g-w|8OxLU;5MscqiHLDR&_-5FG>8%feV2rS)D8bnhBS(CX z{vpJ8-G}~Z|I3DyRZ8Q%V&d4>rd2E7>|9=RXN$(oVuUpcEhhc|Vkn3ML1>B+oG0?G ze9k$nYtP#6L45G8MdP-GC|`}Hi-|Yz#z-&3Y@ZK8Q<T^kb7$J{x$_*n|8W|K+Yo!M zQW_N)6F&g)Fo?53Xo?b?x6_8N0nEqyAAHAT7GmgCN~0TN;${%<ffx%yQ<UKP18w+P z#tM8h<0QnMe~K@esgy=(#ze342GkA$(Fbo2Xo?bCN1+X0lR0hk#nszD{1snhQz?x$ zjfvrSW8?`u$F+EGLQ|CBdJt{++R}Wy|M578TM?tEQW`ZI6EA`IF^G>rXo?aVGlf%O z(l<u<j)_XaUQ39^jfvmljS;@baytl3Q3AGG^5^(zI{&y7Pp(qPH?xsO;|ehn-{rUo zx%)P9S9K|YJT$_~qYvKyU<s~<5>zRazu8EmafSE-U)eYj#D7ssRF@K{3r2Xox(V-p zuqK{^ny6B!$7Umq#uefz5UlM#0HL~+K%F+i+sA2`e>?)>AhalzLVGkDX*8}7_k%bc z#9u+EE+x=5jqrB<0p9;u9mL7-3@QchV>Z%gTp<Q^?OCSx>GqyQ<7O#Jz{l9{?ysi5 zHm$T9h(qAvR0>`+ds`tUP6P3C5WPTXiW2aZSu9qPY>L&W2jHno@YE`$em*7`jeCbg z<A%52^__E#<@IP>5EhNADN4|T=P|;xk>HOpUP|yzf)uZV?Ih92GnHa4kYJ8>P6S;_ z@S4ASdEA>u(CzHexS3wo4BBAL=$r_;l;Aag_j(l~0gv-&+)OWPC2g>VcTNOdO7NP$ zd;8FcMwMdgq7Amx&WWH)310JeZ|C#V$jtRT8aLBRFF_mhIGqzgmlC|@@9wX{p75VN z8aLBRZ$}$xG;SwE(4_>g`Fj?Pn?=g1l)ghzPh7If4{lGRaWh>?=qV)@jay}HC!tc% z+ZLXqAyFZrDN67<e~u7qz`Rl^<fz$Tjy5DJfe5;k;C0BuBte;DjEgT^do*sQ7v*f% ztQif7N+5zRC3wx>y<TY~xk{nFnhn<QhD0Te-_3L>!E4&^_7NiD*#=b#?apklrFKpP zT}tqpzk54}FR{F$FHtG@53@m!(>W1zDZy+0?*2;OP*5rO!OYioP6S;_@S4A8(YUQF z^E4Va(_8fIIYH?pjqBU^*lt_->d?aWFngIavDzM@TW8$$e7no1M50n*PBrlES|^0+ zQX)jRR!&<|u%S|6&Ux?UPqjBEG)0LJ-MVnW@`4SO^4*LTqh`!}sl7R&DN2Os*3)kI zv|vM}eE(y`sJ{1q+}@msQqmY$5_xoM*Esq!i<G5QzA~}0M9QW_DDy;hDUnCF`Wf+! zB4t-jcQX(}{b3)8lr0jfE3C<o2+^%`@8s82cuS#PsZ_pFv~DMa>Qch=Vg+H+M1Bzk zf0fjRM9Qu!Yh>%YR3pN0wh!vcSHIThUA6G{>^UG=jFerUyD}y<el2^Bn5cv&S6xcv z(XDCjW;Rp``DS|4^04cp=NHODB4t-$31&nd-CC$66_r9QF=E1Gt5<eCZCarwR#cY~ zsMAK&wGWAuT{+$V$l6B}BGQ$vA+zR(NZI;!9@eI<eWYvQX*)L?bwm~^%apJdP9ns; z*83}!f?qMcslT%8IwFgdWr`9ZQnudjsucWVnYAzVyLMeiR8*G|>hqKI&tvFSO8tCH z=xHSXe(GvFL3iPT$J#-oUs`!I?}}?@JZ<63{#E$Iy1ngG%6u@cnO8AU+}jSil;G+h ze;+$)K5UG}O3^aR2hW$&NT}C*Fl?{{W8ys!oI##~8KkBt!BtM$Sh(QtuyHR|ig-T5 zYnY{~l=*hpU>%Ez;@)<qi@rT2xW3EZTQ2<=HtP1aQz`S*xMmxSiQ?XN(4_=do%#Fi zccP^wPn|cQb_$;3E37l9l=)!Tpf8DubwTiah7YmMpeagl^_(`wokhPp8EZ?ofLMgp z50x@c4IA`{F;U#x4!V@!E&zW&?b&r<qw#4Z>vqgtcD0>#KWpatazZSL;@)=9rNpXp zy-rV>xB&<~jYOr)2dB>w6S}vpDN1lxCfH6At}V5qJboRWMzXGZ>a;v!qKvhr8<D$j zA$K*!ymm?;cg=>EN6&O^X#mPxrOZ=<V7-co;@);B4<%3+%!b#iy1ngGulZnHvwg%w zac`S8Oc#B7N^rN2zkB;Q7Ar+hA+LUlHmG{d2ZLZckBPfL@I0AShUTY{P?r*DwPwTH z`O8>a;;QpBcm|a+9}FAxD=|^r+vfdJmlE(XX2bne-QISp*L*Op=|y9rxVKFk)TIQx zDAtyO-)(dn3H4s_FK-_l>BmH)(@5yUl~A7_pGKlmxT~x;h>1q0vD1c19s0wo?KF1w zEAjgunxX{z51!-YJq~TKYhzTg5`5Yq6+gMgI;#}RfCO{8b0Xxs5^)J?%(hCgF3|>S zOy@)>b0y-MsIliN#Wq13tofZ2w81-3B5qL{L$6Y7+qA(J+&MuTyb~p2&(QcZcK1=V zL9f<1K^wdidbL2r9xkk3#iz0NwKyUY>}5J9XoGh`9~=nv$IVV-U$^6zr+N)%FH=v{ zpT-^&+ONc?u^05Vg}Z7<*lFyVf;-6wUi109uMO*0;cWGw7x`mEnhW(r;WT#d^+}T; z9rDoL|FAWgE?B=(y(nk1k(OpXQ8<m=YDPwo4t2r4Bw#ke+3LKLw7wdV*2;RKa2mUh z!bp=qZ8w6~_C*A<p{KDk1?|pkq^+wHg7;e_Nb`5njZb4w{fF70zv`R_y5Mm#g4g`r z`zU=UPNm=nGhf>|5p*fRYyO^jYFocb-~Y(;7JYk8G&)U}z1klSVz0*ay=uGq{P;9o zO;Lirou%n_rKjntl=rpW!W>74x)?9q3Gd2B0NuhIM~GsKSFo-Ga<_%QdwJaPb&v9o zac0f)a++>B$H8a`tByX$5n>!pv*MXGtvItrb@`~q3HAoG;q~g6^faq0aW0NZ`B<x4 znBxdhjPc5J*%;0V?In_=F2)P@Zu9f()NJoRsL5MYF~%#T_*j(Zx36ry0e@#}PLhr( z1Il0G$<K>U)3x<0%d2#bW6$A4Ul2TB^fa7o#GWPS^3ifPn-#G);P3QZN%C!+X0;p6 zTk4AQmQ>0|`aFf!`;VL`#(0GkCD<GAclWz>F<!_k>ivAI*Y<RdBSbOAE9g=}dx<#4 zOQmpEn5DYCn9vw6O;JMok|a42r&*0f?mmRPQYqw{*<g9Z#O4DRSBIphS!s$A+DqWe zE$L}ize5SCl+SU!mc&Fc#w(PE659JDNnMN=@`tt0*8sd8$3!v4i#Dvr*&0CBKHB)Z z*Y?$LHq}wctIg2{RWI73<yAVz5n?<Do`?JZ2=+xmmlE3hB*~sQn~LY$y$R2tQt&=z zBc0=zrnJZTy8bj>rYNDkM3U6Scp<N-*XIWAA7i2z<HhHo?^8nik|b$#nlAmW`uUjf zB`;s`I{pxEMGF_qjrxzU$8zrnPoS?=qR<=IP7LieCp1N$BkcTa{phm=8!Dx_+nmr8 zCBhEY!UeAsY^ao$e{(`pln6U<<B$2IU_+&}9yceV6lot}M{(#6yTR|`uY&*C7)$kP ztF0pl8KEgk<U6CQ7i_4M`jt8&v!N+UgdN^bx9nH2p;GD}n-iK65oymbY2rGu4f&c! z+<&~#j7T&^dj{BUVb72~M|kpzO5v_div3j`k(HpPD1kgQdh-Qod1N+J3i)PI>_6&= z%!Z~Yfx2LHR<AM}DuwblDf;<3BG|~j=0RObpiUcI*FNNH9_juEa+Kqs=0ubt<14gH zvr*s9(LOB2##h|`fDQH^O^NJl9@K>voDuLbc3tnUR0@8@r0D0H64}>0s7nd>$};b; z-tVdu{G&;wez!4^ea(Zqlu)0K;<i88|A2MsRX-mS7x!K?V(Y^`xUJVrKMgV5uS(tC z&Tp-C!I*k3d?JWe5L=PZ6eZY8knks`4c=IhVEzQDIIkMTUr`s!fCO{8b0R#45^)K> zl*V6mllUv@WnJ>8eWg(5MS?bpL|hXa#b2=|vgXqUTT$l(Z4`;9-DF=A+zVf1Q@w24 zw80kKIYAq|6D4BL@LC#w_3Ag@WM|`2FFg@$(5rP$&_<C^KZbavGyQ9VuSfA$tDCQ- z4SMI!3EJSD&<6)X{c(~kebY}Wd;yV8D%HQuYdCwEdZPboKe#;*w81-xh^WVb4U4}b z5lN--SERKkvb!QtF&m-_chV-$(H3l5URm$YyizITj}d7u)Dx9J1YJt-I^<!Jpv=t% z%Uq>U&SoPm&3d8|h@eXeUh{X-`T7;>u1cZ4nvJwp))SRL1YJt-n!kG=)hPZdZFgoP zZC#xZK^IzTM(~=ylTH$N2Fok@5|x6-F(UO6oe)8n61?W`q%9`Z>Q#ESVWwAoZRbSL zr3A0}d*-Qa{VMGZG9O;_?K!a%-X?Fs+3I|wJiL!Fp)#*Myr(f~;*;&#OC-roPfQ=N zABediG(`#ecGi5qtG;;0<hfrAsqOUh{QVE=4H3q)7Zb0(G_5qL`{3Fe+vcaSQ!2zg zPwl?2KzwWIw9=*^HrXyejh)t&K<>8iuDm>6`l?6y517&S`DcC_JN1V6?b$P5jruF} zoLKQ%ih1n^AXJwU><wtc>(&3IUxWG#Cqb)Jh(q7{GVecfqS0yW)TIP_0}|do8lA>Y zy?H#n_a8a&9h}B~5T2u5PGhGoCD5A9hPU&lu^QDE#D-YEQmOD>K>yL+f6#^#%RqdJ z8GQ+a>QVw;$!z$T`u_B5PzU3CMJkoQ->_EHUnR*;HeFm=j`OKk#lExZQbK!)BpJ8! zdZk~3_@IlP#=cfZ{+`C#QSSo}hp$0>gXgHoY3%F)l+a$H*=g)+ci^tz4R{*+T2b$l zBwOGeli%R3Ucp_dE+w>=NRmHny14o}i2ow5R0{cKHdr1paUoW`=HNL_0--5NXfJ{O z1M62T!Cg^;Duwbl8z1gy<A*kuxtHKP5UeGef>2#bXfJ_x0dThZ!5|)rPGj%Zf!c01 zSdU`@wY|o#r9C32v9rc0p?wKX1IB99ejpCPYLrT$J(>-+^O#tSuR&c6;(4@MO;JL7 zi6r?kR-^cxxJ|GYu2S$mW`lkuCO-bENA36UK5s71Ph)30SAx9(bJzXVdP}EOH-?AX z5*|*a)N9AYM=wpQejmiE@S>Wcg!UzP|KsuLtxv*JkA<gJDfRO)(e3JO%bXj$`1OeL zH6Lu-mLyM)+WHrFwDbDwZ{D%%!&aJNzxSMVBl^LVs02c#culF87<Bpsv$4jWpOrL) z*MT^9lj&w-{`=R!MoLryp;El2R7`yD)N{<nptHYK(iC0?B1vYOjfD#?gN>A^1VW{F z?NSB8Mj0fatA%-$O0@(6_Uw0m4%mnYl?wJ^0#9xPpIlRT9SG!`+3@lx5-P>(v^<1B z37QR-pz7jvAW;5Bur64cM}$i8I;}B6y#K33BQ{=pN_p+`wk}P1;Fz`~`2cw}r+xHA z$Juq?+vl{eK5zfFUqA8wsLSTx3me0Kzi3215OaPS6DoDx;p-bgO-XY8k{P8}|2D2X z^Isp7RBDUW_Gs(9@%y8a%H8cT@$ljqrS<+ku6!^EO;MtEty&}PHm-kkd1>0P-sNr= z4=$_Jqf2*edt;0DMvXt{&i0u2&ST3<Yk(L8LQ|Bu;Hnd9q}|4@vsWtr@}_B}wPqbu z))Xbycw_h4qHEqwi4#V2D{ubjn9^%MJglrz+G=BB!RtNC+dMRX#CfkAUe**PuK3n= zHI}B|6^L3OkWvmQtQn!qp{bnT)$t>`)iz7-N~LgzEg`RB0#9BGPp&CSAV<o1Uafd^ zd6nhy#zlkq<e6TSO-m^Am{|X@<<+-#?_K^b%0p9>KslB3GGBYijOsGft5;D=R0?&h zCDhlLcxmyB>KN3k>2H5f(iA07-;DO$J>=F!ts9}Xe|g5%th<?Bv=6kR4@R+l#KdS2 zAFnl~{KZvUv+icPlt4=}+HL&b&10&&e|&cNiT~@4^`C`l%4O|`ojKR8C%ihd{n{H_ zQ%&@V3sd4r5Gr-efIpekq+@0jh_SO)uYK~)q2;aiu8mM#O03!E9xEI7mEQ*OF^DZe zs8sJ$ZZWAr>r8KtiR9@+YR50>RX*aV-X%>@;@I16wz}XpUVG}0+OI+U5`;>1x#l{P zx@?bY+hbz)KmV-uz}kD2ezV_JB~4L+KHpmb^J*UuPxjlZv^NNqQcoQdwV&@~<uP+^ zN0hr)ZGE$s$LfD**Bn8t8i+kmf)|2NsdsAAtUQJe`F(*H^4AsB70BJ0Tm7=6x|Gly z!8j4bToCtzP^m?iU1sI6-qSa?$Hd;>-=p>{a`(Dho{4f-3C)otnGWJ45LbgxsS}Q? zSb6l_{-*Yr*t~pnZSY!qm3I2WM^Wx75$E)Z($TfeQG$~|sFe0<F|q8v9@XK<-JM6T zQ_|ek7Nt3oB;7%b0ddEubxJCwEjT9b_<39PUgYlk+r1d&t`eFfNpdBKM?ky=LZ#Fb z#YD$meQKv5cmI0ZfU>42p*fNyM}YVo#C;%CN<C^!Tz$;eR@-Z*4=Zbm5}MPPd4c#t z-@Qt=flw*!8Db)_KR=ffXIr(=51#hkpQABD_<iAmhtLN7&k2-=5%ioo;%G_$b{o`H zAX<F9Qm~PzRP1Y)H6dUlOKC*#`EVol=jU0fl-9AJsh&_Nt;fv?O;KXv#O@>c<P%<+ zUAQZi(w?C?p(%}s+wZ&}wo!Su@=Ob@4;nnB{YPE9*q!h?^j!~~ePMx6sbJ6bdT&=x zsIEqY_a7*Z3jSASv8a?jN6?fJgaU#4`~YX~T)^kBYd!~_uPr<uHRm?sl!Ye6dxz~z zQ%t~mCKaxECv^nP@UALxiqlHem3c+=;>pb(#|%MJJ)tQ|puQPhS9dEag*xUo&<{2x z5=~J;+dtl3#(4MnN9MPliSaJSwLVvyWAoZD$K^QqTi<&s9q(fFT0Z@;G1X@<rsk+P zNWpitZSeQ`HqwuYblhI$xLs3};CP<2kH~(3xxrJr_pXh{SX8CpgWEn_HqT}(G4Tfw z13)bH(QBql3C=P|yNzGHIHUBFm&Vmzf5S$vnO^iIZ9g40&t_XOF&4z%LCpN8jb1Zd zN^rJB+HIV4*P;=B={KeJizzmG&GdR1%nPGeA;y9D-C9#>mrl3QYnGyfd)HuN^nE=_ z`=GDA$opEW8T9R1=Dfo&B2SY0L2$e~$@}xHE}=&@DUOz6V#d$gN)My2{hRl-nJy)m z(_v<jB)5RL2gK*zpJ#f}@0t`xOEGcLUVX}+qOZNe``S#G608ehhLj}Nf#7KA3-8Y} zz36vMile2Nc;J|=%a5S1{ipY}nJy(*r^CE0N&W_62}Z9K@6R*6=#fo|s|GP~-OqO_ z4MXmp=3~(;ceMp;z9q?{Aclgt-^aU7z<*#|YWc?5L`*#P*A=CC$lc{W7R_>33C*`8 zIS@qh?xE%5eY~6L#fa7NjkAfE`1$wuD4&en{kxAvv)ole^9`$<Af5+tkdJpWy%@1t zzHv4Y6Mf4^mp8;%bVDDDX1S|`<}^;g1hE6gyXX6OH`9v|tCa`WlValeo5xsfpX+nA zEO*swYrZ83=7UDe^ZB3=>;W)uvwY)qOkj3b=3I@lJ55nS^DRk8a6Y(&&j&NTn73KJ z(MC)xf9jC(uaLWY`&=!{T_rT%@ZKGW<3QZt^TA9n=53a5v=I|~{`qI+`KayJ`CKi_ zT_rT9u^I*9VU%FW=YyGEt|5jwU`&MGKe2w@rF{G`8#(>-sBj%<$fe_jK&TY2`5bDG zMEGN$zO1GD=8GZqP<!hizib)!{vx~P?;K@hBjk!Rm9k15e%OH{hYU`z&&4rrfk=%Q z(I$G^f<4gfIh~5*KXzA{6!f-*J84K%NbpXua-H5u-;sP%k9QT{VQRw&w3bZDuJQJA zQv#sd$nO_)N;H3R)e99M{`)_2x1dXjwvY?Z<bRd4>_sYR7aMI60qJb4C{lfK?N6>b z4cY9^%Ols76LsZLafn1NW!HImG%52~7ib~!lFe?)YDq4I-$8T_WsYYGbwLT*kQ60G z%I_J%=g9Tq8Z{=fQBPDtEfHNAVRa#WrX)G(jxnXzKRUZMWQnb+wIvBhEVim<*XgQS zI>KQKJ|4tBQo?)7d7~&rkIFGsx~e9`ikYjIfBoK}wJxJ=RV_<Vg8tD*eY8R1au5j! zm7=euRJy7r#6?dZQl7rJSM9#kiw0dv&_DX<l{QWS@i>Toq@FtHrLUz_x~e9`Ht?cd z*4?XmS?WcDE+y#Ua&I>j#2V}DRUMvs>Y$gtmQud2qQo_q?qubW{KZz)vNG^-B68YS z)v}z%j1I&<Q6BF+ZL4ZdK#F4#mPfj(CPd$7SCp<r?jE{@t*T`yN@%`e>;vLh5R*Zu z6vraWw{%r4D;p3PWprE8tG52FwyKt;C=usdugQCquS0pP1wy4b7Gb`nt7=)<B*{7$ zWt`V<uj(f0C?n*q5^+wyTROV@LzKt(bR-k>axB8~;5acR4tt=7<?d$t*s5BVyE@X> z97&RM|J<YW3Cd&E7+X~{BJ2-^8B0u5&TA{}kK8?V8(US&N=;`hnj@&YAjW|>4uneS zJSryo@7<?78@ap7?Y63xm6{ToZ%J|=#_c<x1lI<kQaaO%iOVnw?~C01Q#uL{xvPZc zbdr1o;?p(us{S?|>673dl+IXV0-g=C-|)ArZPu?}z}ZCap*^#Ao)=w*`FTcEC{-Ew zVkV_De_yzu4VqFLkY+zsZ^QMvrp83B%kL@>VZ;H=h3DYC2PyV&;ku5%9r15j-MAzW zdH+~^o17=R^Bul$emmbF59jaJzfG<wO7M*lo-bVgj$%<N*oz5$bCM}Rif_B{n(wr9 zP6X>p@S4B-+klO}Cdd@N=R+IeZP4aKNKt~<{N3OAY4kNgrtlpj+6eEcHYY-g61?W` z{<c%2uL&}RZ&A@kcssW_5mJ=kHGlVa`x<{u(B2I<8+@Oyb0X;C`(wPT@b)r)_qPG{ z4QZ9)yK5xUx5@3U8WTa661?W`{x)FauL-UzU)Qj=$qPjN*92oCKc$@~p1=lTC6Xlm znxMa>9-gB)p((icmO$`2e-3@~UZs$4MlgRmCxR{|cpdVv+1CX9)BxTUYewfp(1n^| zcSVBN{N3x7o`j%MsNqJW^|%uv=u(2${N3A!p6H-bXsKo+ZIAUt^ff{1Qi9jC;q6>c zrcfz(9J7)7m3kujnjm#4!E4%Zf2AjEs1*F5eUF2_wjmLHO^~{j;5BVzo*Mh+e(r}# zsh^LDYOfR6*H%70_`|BNg=74Qy%b#+5B;w9J}HspMA&^{KbZGwd2grvV9?8*hH#zR zn}>Skdn{Rh&fN_3*KWhF^$v4_&uw$4Bz*6RZ=Zy(Pw}mIM*Q;oFCHUI`IN}MibyGY zR|Znq+ck}d?5l{>r39mNX~QGv%!J<+zs_aWsn_1-q2BP8P$MGyDk60$!H8e~j*Yz4 z2;E6VrR=RF=*`}C!nMZ;%Uxw(MP!N+jQFJukN6d$qEhyD6{NDawi*(VF20YI5{%O2 zwa4$mMkSP>>a};tAeFs+rUW5-a@C~-qjYJ*<3-hmO4-|PkjmboQzEmWx|CqVFKsYN z7sB!!DrIl&K`MJ2uo01c6_L7>$iHMLZ#DAC6P3!pKDB;Fb3#*;V3cn39DEeBp;EAC zQt5NVL?sZaO9@8lM&*$NLZy&zCY6>)OjH7)x|Cr2E^TD>DhY&2q5MrMtyeKo354oW zf>FA(QP(~al|nr>skD7GAtGHuFn*Ud>RYYqMSC=<w4FC0RF@Kr(xr_$f0d{d{EA7X z{;CO~x|Cr2E^XBL-R!G~*<10DO8ssVLUqBTnv{9eZ~ON^{f)!K{@gRDl=cSNOC-r6 z?+25a2Y*-!Jx<<7c`xHT<5-!p9sV0qV)EDzF<xZf_m@#EgO5sQsqfhJ{~}Z>iz0xA zU_<Xpb@{audbf5SK;755($gu?lKsrgcmz;)a!V@ZeaQ;zqhg|Xa!VM0C=rij>P~Kf z4VJn0C4Ta7OcYOU3F9aw;xSy^$t|$KHsO7VpR5`a#gkiT!^VTwM>!FXMe9y(fem}J zSWbwIiQ>sEw862c_dYAESBuBgbtkvL27Q$GC4Ta7OcYOUp$(4Dm54|BbtkvL27Rsf zCH$(DpWH%CK36NA+!9ihh-WNyC%3=`_3AmoF;P6Zg*G_vQ$pug@yRVJ<$a0UiwQls zMN^c(U9|<<4Nh)JpTqkS&$pN;p4<|2DS`4Z8=kv$C%2^K;eCmhe@qllZVBa~1Zs)d z@VQ#u$t|$KdgXnI*W;Kdp4>tkrpx-MtbLdbpR3iK+yWcvoA>aK-X76DgeaceLL1gT ztXFdat=0&itJR&{lIryy$Nfr7H2OLhbtwVwV>W!QR(Em>Y~+2Ed(oIEp4`Icpf2xy zGQTUUYK^|m#hy%09){l)qS4p6IPX(JXL^ml&Xvz`{H|gG9cSgqZo8BRuDnZGW4yG- z@!rn+F2pUZf9->xg5bZIGw*AA^8R;5O?YZT`#re6W$OE*#y<43_S-(0i}DY|^S{6Q zp}U}e7zmZRbi;?+=5)M2>cf4`DiFA<WOER6L8vYz;=4NMrHh9CWu;xp8+PBNtWvjL z)X{dsd+(1LIQ#6Vr%sX&KV9q3^PqoY*il_dXpW$-z4ff}fwT86t@Oy>TW^|jgYB{p z>Q;f?d@nuh*ZW@jn}0pEeDxL6TW8(&aP{NlIwL0h@T~R|znW#&vqzoVe#394x1Dg% zyQA)X`KQn{W$1+Rf4;p}>CuZ`ud3ACGiTcl|FSvf6o_-)U!(lYwfmKq4LYH!x%=Ir zx3)dq@BL9zXPwc$<B4~8)WRl=RUCi)u=0>+`j=n6a8^~Nj_dc^wvQ*gH>&UapA?8! zcPo|Of2CKsb>+vas!IvI!z6k8tMTP)meoqnj%}-|)Pp-;(>8F{yQ2o}^ON?NShD?* z<!9dhWW+BfcCBfO5^-K#J!ed5Opht$b$|DV$3jdA^Ic0V#DREu?Edxg5pT^rx4h!| z*{v$2WgZiypZuu&(A8r~wW}|P%0tUv?>0%+z5lH8Cwp#Qn*YrPRh8135feQ&JhXgU z@72qPueMTEQ<TtLPm&ElTm_;B2$c#EDSX<P=<|;)${X!HvV7jh&$Mca5?Xtb<e@&; zuU-Gpa+i%)s;ZRcPfYZ@>$%cBXP#0X`HQn#HAM++o7lB}_^Q&BL1&a#`_5LaDy8KS z6PMM-lzQW>6ncnI<{pKTN1LjqBoU&bgi3{L*YwjpdY1>_T^U*kDa_GExll(`0>Km| z!nG5dy)>@;A>R3+jgUecjY_kQs04y3N`z}Cp6)lL{Fk|7Y;`-Ncsr=~S9L@s5T23~ z!Q1)o$la=xM+;Z(+(!O34|1f1F_4`TDiy9>6Uw6|<&o(^F0}YNQ5GR)zc(kCqC~iM z0_9PY^2qce7h3$?E-Ov@y*a@YCBn56D36+yN2V7!+7e=}{x{*eaw5?F`vDvGu6_Q; zapk+#*rZjT@P@y(wru&*`=d_lb$0fCloMa}>R<il?sLj>9zUp6rQjc}G&%c?%L9J5 z8vL%ND1nwHb>Wk@PpQ3m+?dj^>mHyNwWnp@hd$A+*(bvDS&p!WOOloij;uYp|HmVa zxVmdirO*Skgx)eHw%c^g+F=*(SH7U%@l}jVTEbWa-p)#G5c<B3^>1w%vKHREoOuRp zy!q<r+JD<uFQ32b?d;VuDb*VjkB;4~_R7ZVl&eeHtD2(3iqEfWIpo;)MxFNLPhjJ) zt|!$lz4fxvT0eV?zCC+FeU6y8=X=9yXWTKp^xV(^HBC_hePT=KMU$j@(;L<IdyOrB zKD;%0axG1Lz9c#4)ULI+jyS43_uU(#GS?at6TLP(w00|coNrcLDatD)^!X6U0b(kM z<IqQ`l-BT=_-N>vwTsT%t8~ZO8?aZiywcjv>zFv~i7B-+zUWta`r4(f+78g~TD{`v zEGE#O*Ft};DN1M!O_G}yzq{Kf7$@?d=BU;&UWaio9J-9DF^(QdpP0T~VQs?KlNiw$ zM#wupb;pC(K>r~=3eTj}9>%CbB=`$=r722a<SfL?mD#&>hyG;^o+I3QOkl-}{Zl1f z@e*CUlfQ%&uk87fBqfrZP$^&K(j2jMIJ3cZI8E_uC$QpWHhixLYh>1I=7dW5%3Vx^ zwOu}or>Io6yCgP*NZ+oBrP3WNA+Sqkcg0;YFAv`t3wJ`oe-AMsN~l!0!+PSY-z;in zA2Rzwd;c6|;BO)zZpp6Gh@_Sfk(49{+`Xu^4Mh2zm_U3{CdD^(N%(sc|9){smG5TE z!n+wNg=nD`MunwstP8Oth`T`?3PN=$!8eXQdT$PLVSBvq{50MeIRkHus1#y~T0*o? zOuPwV42YXRXo?beE2T`@pCf&5+unT96eajRcl35mExcW$QixkZ?)sS%F@ZODYT*qY zO;LjHrF-lkpIquyC9Vx@QCXx@OCH0N5|HK}r9#}aU#Ag5Em2I7)kKI_0uiM0J=#1n z8*=HMS|D;=epi9cBcS9t0L4=Iy)SENNK{DVDa+(({dbT3I_T^l)Obhxf9ny>om-fT z94F{#fS#Jab1ac0DUk$%W2$tvosBqRV%|<aGaF+!x!A@fL6`Ob>>2pG&-7Cw2?TA> zy7nJ2apu|QnT@qSdxfh8nJy*RchQFTb}5krf;Q51278XsC+5Uv&rTmP2d8E2A>UXp zp0O3au<JV}o8!yxRS@|4d-jcWrWDTD!pZgFjIEXMRrWnE8B(5eQQa9^I3KLb==6*& zAs&2XTJ^=QgUjpgn15qEJ!7klM0&=S5M5rKR=pC$At1Q(6RhiLG~9LK@4kcelcZ;D z9T1PboquCJJ!8vkq-Sgiu@Sz5wJ*LUH0xjaH`b|3Pu1b>8EyDZ+!pu_R#y=F;2S(D zrDy%bM5Ax4Q<oCl1*8q%QEc>$_4JG_dk&t36cc~NH`e(TrF-QY>**O=8NuC5+VGvx zh4`w~xgf5?H<9$jBt3g6Cf)!s0YobZO;Liovb5nl?$6?j>05!=tZ)8}b)FTaXGq1w zRa-8u9)fR3zXC#2l;G|%ZTOD+9=ohp{ru~l%SYmLBbCw<vtr^OL)NQK#$COG)21{< ziTu0h+;MOGjdeR?t0kPV6%(uPigUbhSNrk|_m{84cjEYk=5_ew83EfZ`Exw6<>J!8 zc=BiP<SK>SH6lG@ONiO{a@MAJj-en_mlDWBBfLD`!gsKa2k`((P^I*YwU~Go1Z&A` z5SpR{>VnzudWD);ehkDd(KpuZ#4LM`^o%VbP}}Vr>$k}_)~O5aBO_4Tjqvs{8DF(} zkT%c;RSNCVi1dstA+`m<R=XJp)ujYltr6bNd*M4+dx3Zko<XJHeauFB#+DGjN_v*p zg7>)w-bZyQ!3ZIix%;b+UYS<99K?8dIF-_q3S(kEh{Yh*0HG;Lz*m-O!*|@*dUE=R z-QlU9ho@F4?EzvU!5?-3YUwTj`XU{x`?dG;KAumK)vmtsfjJ-sV@AQ*&+r4$J7X7s z*GK<wUf2bIra*kM`_4m$t-MR^Zp=Sa>XHo~ZrN|dys!%(1a69RoEqmjJ~MG$O2l`i zgi2k1QAf*3Yt9S10Agc<qgOn5E^JKlU4Se_318O;xv;^lXVtE|aqsHCAGTcp5MgYP z_u-tqaxCgS^`gI?THEv5=_9W2T>vA(xP)}N3(zwAzNgY%fVo2_)Q&uKuj+vp+Ae?* zl;Vt)dedD1A&%^`X6@Kt?^m1pBVYXpWw7@aSn+rl<#C<u0@xUyD<Mg8$w$L#(|7D& zYd`t=s!DOq;hr1k+xi990PGzaBR2hZsW$iZUbT;=ci0+0NKr!X5GUiUbwq9HtJUh! zAGTFhit884PJAlt0%XsGZ`W*pWbLkhe$v|Ey8u~=5?l$%^9rX-RX^@NrFQ2nwhMr~ znrHd0rN&h%&T+gvzFzB}t+&oRw^o~Jy8uRTPOfDh6Wd|cVC8GZRR8R|09kqHcrJeO zUiY6>TXpZvs~x@zU<Ai-S~FteS6DB3dG*z6xA`tW_T);$<#9cTc_5DPT>vBagj{W5 z+3-3h4tsrzTF2faYcoEwU4X1?mC&|{9YyHh5O%KfU4Trl=1)xg^8V+ly?=H}?R#_1 zZq*bev~4EIM)zD*U47>>YNt-NU4X2lv^-+skY}ckco3u45g5H<#})G(k0a7}AANHn zN${n=R-Qmx2B9fRaQBsw(jHrjuL-uE3lDlGJgG|g4zJsbiMsE;rg!E0&K~_46UFbo z2J1?2-<iMrPIcXPUm0iRku`111xCQcMDe??L6^pRasQmZ`;L3vcVAPz8if`U#qYjm zx+J=daRB_?BM0if`wAOrWQ{!sBNbwz_}$l_OXKet&%ob30;2A_udtCu)|d@Oz{EuH zyRSi)M{;<)DC08tyGL@=efJeM(#RUKkw(@CQT*;}(B%;+9xuxH68`RQLDYTs6*j0> zqcmfp_}$l_ONq^PykdL)UjN-!mGXEWw-*!o-B(Rf0(aFCY&ZDsYx*1>x8(U26UFbo z23<-p(uu!&dDMOPH7yU1zw+{riQ;!(gDxddOU#DXtGe&L!bTcd)512$dK?qQ@4nJT z8d;MOj3eXk-ahKS`<m+YcsOt8F;V>PYtW?xTCLgec3$`0SJ<HcfcLSxqF;%L;&)$Z zBaN)d2zVc};r^=byRWd3M%H9rJ0^<XeWi^wvL++oMYDG(k_2Dq9&rvl_4)AB+8d~! zkBPT`+>(u6v0~n~WOJ;_VrOhFVpxvE=yd{OSkQO1g;8x{e_@1-wP}o>d_0IzMq9YX zSQOV`y!+m(2Qa>*#`qGIQhPB$BTs<X)W@QkE+sq~CfNA<xRZBn2eAbRmC}2UiRJx! zm(RX$Ty5JSwm;Yw#tBNJr*6wfOF!w}zqIi^=hU`*$My%aywYci37-2IMr4|zgzv<M z5!v#$Pbu$m{Fv&FzCVa3_fav{`s_O0A8ZR_-z1r}!I9<j$9~*8>o>MPm`P!5*cQfy z7+(o7V5K$7+fLoD*80ftRV`<XkSrHCDqgVNt!)e6LCOA>`-987?pgls6RX!Qzw|bX zdI{rQ)f*FwmhM{K`^<G}8=ccp)f6R8MwCtO-{IY7MA;<C-`75=e9Zh`R9_zbsKtJS zC)DSNiRZQ$R^DUGjOy@{2Gle~3C7HX@pY1%aPu3bQLB%wJwB{8dU7pu%>~;ZEMtGL zmhKN`WsY%TR%2pfDk4&rVyyUWj72p?3C#tZAq3({5cm21V5S%2T`M(?USs05p=XvC zp1)W1Cf^^-q_BEw<zG+i|HPE?k5}}ow)y^GCWUdkU8nnlQcEz>FNcx7T2}(A!$$k6 z^NHPe;recJ;Y$2(OWUw37Q!cX#~M-#q`0rry<@?G1KP$Nwr~{AXT<NTVitVSweRin zGFq-mxi|1#fSBk3f;O;sS7XX0FF$X(RO+a1*R{=AbK$7Udf%X4^#pOlThHtgh}=4T zl-r1j7ohu$tK0s(CdfD?C$8S|#kODm>G@HgAN(O~{KoI9GR~eOm*R7TU4WS2GbHId zCN`SHnH5>QD6ZN2ocipkZ9Jdjt)7Lqof1v4(Q8V)vQ<|j29A0GcjbTn9*auZm>L9o zpXP+7C}CPbFI=#&U_+&BZU8C9bv7mVW*An?T}r<p-jqlm$*n7ayT!^BG}S%1N?D(n z+G|c|iW10mvr$(b{)Sts*TxLEX6`m6Sb~`@CB|$!!+t;Ww0Gm&^*7v7y*84;HET(8 zLQ|BuVdLMKjX^8EEZ9&fdwT#jSS#y@N|M)I)0NIx?3yFMIszr<Z>4C8jVxh<#K}{C zY4oIt^b8bF3BFfkDd~*Gt~s-4N>nt(M#!*1;@EYE8$E4WuYwJgvT-{I&MfK(-dLHp zr)>~9-NxEyrN)^au9+j0%b!D~kP9YdWl$st(MCl*gA&LQqiw9MHYzHGTrer-XdRK+ z&=e(*BStgdXo7!!S1N`4F)8L~b3#*;u$f+(({3TyP^p%_7n_&3>@#~$!|btaB7$!N zW+_U{UB)kct~{FG%Z&+@+W6RRTTyD##J(NP2~AN#YfNlIrC_g28|ibj@Veo1WGPBC zs)@A4_k~+pq_1rWeJy*`{P%EQflw*E&WZj{jwwBYm<cBtRT@UAe$6PxFsk*4#%6>{ zg=>yc5WkDa&p#n%f;K`5b%oKA+GtKNMTv0j#2tt*-4Zbqv=LIMH;k{;UUPyeN`z}C zkWb|epBz)AjgUgUVMM0(niHNfyN#oMrTuq|GRoA?Q3gg6E&2E(jvQb)dE~$<DY4YX zB`qyd&QfER+3!wF?XgSw;WaNE`kk&eBFm&OzG{(?lMw&Go&;_x`2aRliq~OuhH;P( zeQ{TNY|&%aMJW-aFxG0x$8AbrL{>icr!^aqsV*hr96<zx-BlU^(H0^gbRNagYlvE~ zn2CsB8Kip?ZDAG`6NrE?B8`B^bm^#=qvbqmp-2S1I;M^ZL_nC0Gy)>ir3C93ZFnsy z610)VOxSaTI+hcsfAdWV1(+mrj)AR#BcDBB!_kws+ouCxq4ev0_rmqSk!Y>y?<rAn zLZy1SR2|XlgU4y3GU39><!f(T9a0;Oo_fxK9lRb;UCpk`7ktNl@44Awu-Ds(BoHdq zZ(xtnl!}RWUi`dt$>&{5iw-%a%#<LdHt^2J$e%t=KR*sOmfzmBTxs91bjw}i?XH52 z4;FSE`I8q`9X(|5{*Y2);?#A^Z~x_r(#BIqBCqn4BJuV4E012<l{U^kearHUH`+?) zytTCvA*D!6UfOMR%jJiF7(9GXd6f@eDcy5^zp_f*{oOBG-dbbT(I>TxvAfEN4Nlyp zynKx=<(;1X61hBnWJoCzZ=8rPGR__gx?|xU<=)3^Sf2j#Sw@7EBC+TCxT~=TfmnOc zi1N*2H!m;0{M#j!+G4<$Eq#Bt3UYLm-BnJU_v78mubs6+d6j?vAI|0&KQg2g34F6= z^g|CYr^jN?d1pi>Jc2KQ4IVtk>Js&Czw<sL7aXv`=$`M5=(zs5(f0e7r<6d<UcF!W z+aR{W_sLXhozq7cF=zK-1>*mD^((K2??-)xZ=k6zC6*2wW;VJF*aJ2W{^o(w1Q565 zJ8LTS#Ek9D#_$h!>xhZ=t`C-`;hSOioim`UDN6L(XgjlUQor3{<I3(cM_dSEV3%FX zDm7!`hGt{Q8M}4F#HXvw9I*snF?$SzrYN!Mn;V*q@wW|yjRm`$P<<c7p{wsuRw>NG z&Bnd24(*7Et#&=3`W@WWtG#w8$0<2+@<ea*553LjsJ-<m<CbdsARa*V{_NS$vG>2h z=pi5M(Ge3<LA(RvAK&ySYl;#_?VH$h%)NOyY`n0;R<*TJ=Jz2UK&AG7_ieNBZvU2! zn79wbejvty&=e(h9Q#QNJ=}t$TVP|8F1yt>1wpr{QsH{}ANTBNPH0LaqT6YE!p7~m ztG!|4mxvBisqjp*Ufw6O;lw{ctO4SD5WxmhlnBq)Ya4p-1ChILAa{ErI!vWP*$jMd z|17VZ==1ic)n9=47Km7vmpO@0PV4<+KiD`7_3GOo{?ls*<X0{g>e%OpA6OvnLcMwm zHF59Ncc`f@B|?2WbBhCDW6d5jM=S^NXqR1UDizwww511Rb=Qd#&_4M6!CoL#mlC1f zOn!*o=Re7Vr9XmL@7w`3l?rXX|JD0tZP1A~Kum#WSQ}sCQ(a1g_P^ksePLrA_^SlO zarj1{N(J9F|JA)SU*g0MK#W0|FT!^SRhJUMkG*ih-mpP0Is`=PPU}@w3Q^G3&goHO z;^35c7(|?s6Y7uQ6G04yjmO}rRd29IPaPB6wRb7^nYeLj^6E!qeeJY!*67H4IL<T2 zj~u#QkI}sbajy2}mtD$pzOzZ`&cBYAe$b_coxAerp<i<jsKo6zY*~Ktl=jjw*Lq(Y zq>47Ye`Iu9<G!{}N8ZD&W;Sx7abLSm9pODH&&6rn*Y>L;ynkF1MB~18wT`^!<Qhrn zQAsrJYuBtJysu>*@(qaBeC%E+>ZR16?Y?NIjhql0c*n$3C{?8S90ULRDQJ0)s!E02 zo&4)A*>gA{c~uQh$dn?%+<oXfTzi%BFe0QB36|i%^SP?VGVkf*tC~uMS~7I-3P|}V z$_c4g@Njubkzjorbp6|)C*ISgyv2PRmv&nFh?+`;vFMqzKQkLS@!|$u%g^n%Noj2R zc(V~wiUixoWxKx#8h;g^&11I=V-b$2&s_GOcKQ`wPx>*}_gGFFH6T=qt(H<f-}CZl zOvF+LxD8vaE7;(TS<e|;uP3~n^FeYVmkRdgzq+c`65drK!mTq!iST^=ukH=n|NO2r zCFI+*rF}cGp;GL9cqgA9zD6fRcyivA5-d&9^nCGMsT6xrN)3FkkIj%86S1zGU`r!0 z`}N|Jt6q)<C^hTlUgjkl6RJyz)`Q+OI{BJq<A0vJD#cL^^)CNo&yJ=<MN^dUnLg@q zSP_O9x1mzu`rZEgO8PRhS4UJdMTua0;j^sy{%1BSDixk-(ktJzHzg8HQ6l8wgcs;n z)P_ohvYCK4F`E)eoZ@9pBGd)<D{4dahB|idJD=4Pm5{rtONmgYGw%a4ULLU&R|+=5 z{*Ze(Ue^<`uAB%hjeg9ZBG^chA?a$wDkv$xKIy`ha2-}G(l!0;t{O?5G&|{(P+flQ zL|EgXZU6Hp57t%6@2VNG&iOBue?8{)QK#*L@%g3q+V!B{V%&D=y*2)B*ECTHPp-tl zKU!i^$z5YRetG`qMz@^JQMeK+wbA)k8F9{vLz)wndmsGLq{iKSV29GMVZUcKXokMM zqEdQ?%?V9W0@r54a)i%;KhIs2()?*k@UF_tMdlBl$*%cK$OXG*F1UqYL!~rFn-UdG zQDWYQ3re*8`EaiL_@6(AN@;mCCp4u%RC61z<Lj!l^K+chz*fukEA}j*1@oF7gTH%k zkP?+ZuyqD0UQ;S2cs>Jde1MgDP2qJQ==o^FdxMmy1VW{FO{tjp<+`VtjScU*ucRr# zqmnqieYx2<U=#K@)3Dw?=!jJwT@QN{Dy4qDp4h>OY9Q$KgVaTLc7@($_DtS??Dd>~ zr+SrbHmMe+__Qw7fT(~d#k!W+y^{!<{5hlqYoXNW!$WEEI^?wXA4P(95~O%dshE%w ztZ53b1ED#RBt=4{c+Gr^2`RxScPSN!@Z_G;jprY}hR8X`dh2jKiDSF4I>=fWS}oV6 zZ9N(*&ALjVs|haNh=`?hW!sq4!>L}irz<Zm-^fNFPP(vMSjABru`YimC44nXh$PI< zef@KY<pPO#whf|^-&HQfJ~8B59YKh`J&99tBG~qI28stlb5vJb;(Y_^PKk<2>Doyh zQ3*CQB_{GaGy|CpmD05n%>^UGMy^YVx+f1d@L#V#C(Rz7t#bKVXkMCTBO^jyQ7Y6i zU)gL%XkAhw)Sk|3Nq7!l&GzSGjfw9{r9!^>+H^A_<RW#&M4ltD4V4Pz?`zY|2+dt3 zG!K&mYfH6sZHZpAogQcS*xk6c)XsgJSu@R-v~%t}ch-)0a;z=Y(zPYd&m$?$yk|T+ zh~7sCtO3;0wI#HX@$EsXNOPTGYI$eSSZAoE`#6yetU0uCA7}EfN0^PAz*<Hv-N)ft zMtevp5?te0y6q6qSTCui`#45~lp?`3nW^XO3Ib~~wR9h+s#53;+GHQ6Jtwg4Q%m=8 zxbBms6p7qxH(Dv8KWC34Hf%>IyQ{FfBr8RuvNf_auY_o{Qbb*NCfg+oM97iGD@Dx3 zA`x=E*-FufY|S#QSGM2gW!`9|h$&$WC=j9cG+rs9R2TuU9wXOB=0u~FBG%U;k=OR$ zyl=a&$ypapwoyiCA0#*;3pR4%s+2f8B~*&n-imzf)vvK9j2ehP+eHp@HQzbTca(GQ znj|q1W?tO2&>mTd`>@*lPrLy-8#@8+S-!wq8z*#F#2!wnY`gQ=j=yi)rzJ_g7*#oc z0yO;y`-0Dc*rIp8no3#x9f+gnA5kFg*nDvb`pa`cs4gWo{mTVr<HG?*!NyJJ;;Ta- zzTfr1s!Cb>9c)aSc1TA|>;PgE?&>fQnxe$BC){Q>7VLZ|Y#f7Kz7Zh$uQIb$r7W5b zHijO&Uq?(F3t|rt>wwS{CAMGXk7i@e`kX<ofqlX4K)k)n2_==XXgb)io!E%z0b+L$ zb3v#sC2sjXA{tR1lO~RYjgzo1I1I#3@t&|sS#%R@3?DkYBPNamu@8tNL1>B+KY!yO zv(fFkVX$%NtJ6y3K%9^FgjLF-sbFKDMMFDc;$RRrq6Aw8ZB^D3CGI}<H<+V*G3uPx z=tc2Y`4xzJyY5z2DO{swx{W#_352E;2++aCn>Yhv25fAJyHY7UQyXnCub@eYdDs^` z08f4!o?KIu!1ICrVwC6Ak=W(i7sQFkU6ryJKiFWI$HXKM!$Eu>gr+EgaxxoU<||{D zZzzbrp_ZtW#VW!E>uyY-Cf2qE@jM7kQ3CbNY<S&04!eB3s{yF(DrGU3u)#JM6KGL2 zwy1s}G(`!t8?)hUa5VM>$AI{%%Y#*wvPe+apf8DuOF+DY5_|;hTvL=l`!^fzOO|c6 zxcVCq1N-!=sT6z{q};>B#IYdSa96Lc-mj)9O2Chq4flyJ?Yv&~JrI||i>lOl=id8! z+L$zP0)3(oyMZWyz(4xLEJcaL{@foY$!UYvEA0vb|7t3wJ~$>C^-*Ca%pQl=><9Dx zk4Ak|kRsu$j!L*ipW{6C=)Tam>F5OuPC<JfZ`U3b<k$YY5EaA}K?=Jh7N4}MU2`|w zX|7Wj*L{*CmwIBxXd}3*-<(jXmsZ)|2*w&TCsZn2GXkP1QPGq}g!kwA<SG^JkdYig zQ$|3y=dPy2gy#rjP25754~D#A$|*B9w<l-Ri)xCASZbgVlO{GG8r~H~85zMj154J& zL9il3E;an*HC+nvK6L~kcw$De=DL*NXqh$!{fl!E{8a*>QvbT5tJz@OQXN6aY-oxS zSZ!&ejfKy0W<l{lsMPO&`$3!4W9-q_5roW!rYM1REu+~pK-m7Ah^6@b54H(PH6!Ab zoCvm)uNlwae{Lg5a;adCF%!)RO;IA`;q2Gb)pMAMpM!cszA^TrIiV>^gu1{;$M`u^ zDwIECSeg@>qD1VKG_O=Dv=zqUG$kSrr$lI*?(MJw$r{2n<Y=}X?vSmBIl@_n*Y=d) zI<*n389|EIl!^(gK$;D#A#=?#(-m@>1WVS}7FpX<g6q^q1ihjB*(PFQrFBm;8z0_t zAJ;51T}oih(tfYp$!J5YI@i`b+E$&7pbc+pc@3{8(pBeD(92pKqz>4GH9V)21gp;0 z{<wx*l;YFYx2OYB;`psM!3<1wEwg(k5j6R8?B^wz{L}Xh%;TidxVCn}>yXplK8ghI zBuMd^QZXUr!F_`^=2egigyu+8f<~wmubFQ#fmLVAt90MMYy_!5geUi$4sG1qNw0R! zOnoiPuP0mNaxdh_2I=pO2$j-n*L3C%ca^&IyS947M&B*(wfnzYZu<O%QD?6DLHjzJ zzut0Ae|(>{uYJ)~PWwA!$Gb{x>s?ztv42dUG&8Apwt2H<!I<YqjlII&E8709($VW* zTdjdmDUE`UiJ$-T&Qj^YYpWysez&YCN(}h$jg|}ce16o>%V`5K+cu+5Be1iY5!yM+ zpS~o-SzF9@M6k?*6tB~mZ6V&h_;9Q#B}t#(pO5F@yx(_@bw`=kj2-2!b&?F-?FO?k z<;)*j6e|f&$#=s$Cvsgm!Ci9x&b@Tx=l<JTy;@N!;jVJ2;(mQ|BBUt6YyQqCf+Sh% zl~c^d7v+T(#meVkN-^%BIT2En;5C2uXb7#lMJd{2Tt??a&=qJUcpW{5MX?6G;mH|a z5^OXkXoD$AguEghm4`*K(uSva*)UF~bAmRCL@0C8QN2RB<a$F*^mv~T-P(wt4eC-N z)I_H*?Xw7x@OUSA=6M#y%I9E8h<acYQs)G16baJ&-D8-xPT%HOd(JTy#Y!7YDMmdt zCqjx6yyov7P4(1<2cuo!InG+Arc%ZDtL8*VQG(a}-Q&IfdGgt2W7ZqvEQ*!S;VB20 zm*8G%=R~e6C-PX;?kIDyQDO>h1iifWc(@P)D?|l%Wdv;$iEvj=OJ0@3(=sLG8>93Z z5*6gG5wuYxLV0+MpOm@1p<vGey`f%(s6e}0iwaDM3TjFAP6Kr*5$cu4;_SQAKs+(d z82Q^d_J#s&cuMZIW8z;u7LC~U#>*c2&z0w8?=%#NP}|*u$1B32M`p~;K<lX|Z%1$7 zz4PRK`Fl*L6z6SxU#Un`;~oc6-s6PvF7Jfb%qzdEa@ymZg&s$x!l;;iM(0GX%V)pd z%j{}4{Ca8H<9uyBPA(PZ&faHqM$iUzDZy(i^ST~KrSjQ*H+Z7Xh@eXeUi0_*9;Yb9 zoTi`eoCvxCtweqQp;F<Q=;wot#sqCJMTzj_-b+Y%z>9{J8`dQ+8~XXq3EFU7IYFAg zdygaa3O!CP73!Gx8J!V9mlB~S*7rCnmCp_P+G-0mH6}ue61?W`-sAL7dz=l><ET_V z$L-zGIT3Uz!E63r-{YuMKBHgN=IYIfkfH>y`Fnkjqf+^rL-&r(iCkA$rC^`&mf2u0 zQS5PYsbJ6hj0Qy7<K!tyguANmaa1bg8~uDk!g?G{Q6iLw_c&7KWt9r$Pe0#~sGyb@ z!Mvg_CH|kWGl9QrIRF0%k;Ik+DY3`C6A}_6_uSlAVy6T}>>>z7Y3*)N)t1_qsFK!N zTd5^}t=x0J-_lruw1_>H5=-n&iP-+1&&)jMeCFPB)Bk<-E7LR2d!E_OoO7O;dB%E) ze@cv%Cyq*)<&G;%V}ehdG(2(Q7;nWRVfTk0+xbMpTe5r8@Rr66#Ui}n=srmUPl#p{ zYYf752bg~bXE%<eIuf|YleHlA}#^iKd<oy}$)bdbQW7#WQA<BBKRSH!E7j*n(Z zZ6oR$Q%1C}-&H9K`zJt4Igqwl?ur;CEVsT!Sl&R?t>mm98@qg~6)8FKoQS20Hn;NS z<v`l)xzc`R-?)B0feH$uNLPDh8)3Q1Ey7Go3A2ji>%wy#Dy4T<8<FeK7$wYJlCN*i zb*Pk%5^Y4TLt~V{_gRyD*N<=z$1k>|+Nf4Ybt2-lit*8Ox9>M-9i6Fz<9TO7W2_t` ztPb1vO{kRB8=p&^35`+0dP)2K50$d^=kv8Qp)pEWZ*RNL6P2=i#Xt2sj3sqVD<+Cj zDM>IBN1IHYt3^l@>qvaMoF8ItX_NDFEST*h;Z~%W4wGUFQYt1+TqMa>txOsAmwU#g zL%+MK+8mGbCVn=dYvV<)sJ_(`=R*AOsIF@#U0U6-*9W!1y^h9cIt<&9sbk80<07xw zdbSV!@)o`ghqn=PYCPGRQg$*>Ox*CbU-h!$1LNAfe;YAz|2wLut@cFio~sT;t_J@1 z`^HhdAN#+r9~_q+_^%tPU%Wb}HfYWfUGxfl|DWg7F4^PAuG{vzx%$Y5b85T)@Nf`6 zUO35qIpW>nuiiT@RVl57nCOXe48DDZDKk-WjZuQRI&apTkgMfD+&A+N4?Y1xrL;z4 zqW8DoH;%t>(TDEG^IT(;(0WUfzlIe;bD%?|7=G}pCta(>#9qkNQ6H_k`K=%{Mv1s~ z9|iH`U*<k|M9^XBvX>0{8lEuFOJbrAa&_xN1Bb7Ia;Ow*p*jiP7tzOJg0*|~-75@x z9y&Be3D)|EWu6EvcsyG0hE3jm=w-B^O0hL}-2I8X%?pCPr1H(QEx$o8(X^Cc@9DF~ z6R!8PehJ(9EBEc}_szI3VOvdA^6e~A{GzvSXC-(y;WkhC-=&t?4SjQU_lC6h*j-$B z#`K4}a2>S2PC5QOp;8DtsdnPIMNdsX+UQs}I;iy=qXdYB@s!~#yARKp{v!0w1ThQ5 z0l&L!sKrn!rpJuBX41D<+b|LIOCYWX@#f#p*<7X6E}kSx{1e1#8z0+vX}fhF&=@7Q zIBW2zZEBwd9nXUJ96E0O*J7Jnu9#nzeCUt_`=cJ}Qr$`NJcu_ytbg9y_p8*@KYvpl z^zlr11ZpK72XQTO#X8os%7_`$o2V<y<G9ufGe4s^BGW>Tu@<%Kt@U_zRe3$1`5{p^ zLZuiEb2>uE?g7r@<S`5zfoHJ0?q_%d(XwM?M?S+H5$1G+ko^XnSIc9Rz|4=k?q`0= zcZ_U@-tdOg5oXC+h-He|J}1T5K1<inr4=+Rh+)SFXX09=SfgR?F4yN~`&{kDJ4W1` zxywm=u3Gnhutvkv(zRxoS9Ln_*;m)*VfHnWVy?pMs}RzHoJ-APtTn^ztGn*!KU)b) z*V-n`z6ycaSC^|W`<lln5!c~LJtt&?Hy*LYq6fd&*y7yFsspZ{Q%jCKp-azz<cSD& zDki+Qg80=smk&Gkz?e`eK1&8Z`$6rJiO1vq7!KmtIol4q^q?0TDy3&_#l-syPskGd z-a)Q3rj__$!zY6dB~*%G^E$<p3gSn|)qpV<PFV!G(ikOJBOe^{gsYJx*&f6qLsy=% z2MCp7nanG2Ot5xWxpnIYdxzS!w3N`ZC)^XK!jfafFKWQ=chnu3hr7L&wx@wRHDRq4 zLibntCr&#No*i|kCmHIkz;2G#hy9G}P_!JLSMIt!ZIn<c4SNDJqYaxG#SCcEW<W7B zn)`UgINvO0UwdqHXTxS+Rf=CP=I=EoFvHuh8QwUiATWYAZLT;;FpJ!<S!7KYv&c=G zMUIKMcCCKg4p~=kzIJ_G`F4s4Z$0-?{Kmx$xNAWrP^)MQ_jOmt3c69Ug03xGwjR!G z`dk;Tv+riP=h`^`v+whEDekl>W(3*^P0PweLVHiFqg~2+iCejD{fhT_-TyVKNwQ9` z2>EcZ``~(EDY7zvN!q2#2uivdPSt;&`qg{pzVpNrAI0rtAOz6{z3^u7aF+|$8GeXi z{N>kM36;`tP8|R3=<KC4|5CZ`=*6-prhL-e_sGRY&%Jyh?wbhvSbF3;ZM^S{u1ojH ze*4=+(?8Eor{b9r_LcPNes<z}&Ab1w*y!_i?%93G%y*iHKDb!08uUA7_iX#?`=@(P z=-p5qN@z;xop+7SHvGxT>E`KnvX7-lx6&PnipCi6>hQ(#G96x}-xtf(J`;LZEGIkH z`{X)EXiBK)qU0mBgi6Q6@J08`mb_t+#`Oy=nc>;j<dc)unlEafHz)ph@zG;G`HuTJ z-F0s%BC!~V8x~qJHG*~#lcN2?=ncm%iE`Y&>i3O9PkO8J?(B-Jtm&J7VbdBB6WNx7 zvcYFRF{0na+ou|1-{d50=hM(3oDKhSjnlH%25(wf^q6m_T4~wN9J~CxPp_6XzpwYH zS^dbtl@ZNV@Kh+I@YHt%cgSiTCdt){;mp@5%T><WWZ{a&C}FzUPDyg^4o7E$o;j#; z%)xibYASCXVy;+kF>&{UM`q{UdUR#6eWpZht~ISaCP@Zte^|C!&toea-2S9n<7Me; zy~V^~xT7ZEj(YCs#Zrw?!tO5L6aNfi1c;MCsFb!rOzd&klG)nl&l)-V>OJ#SdbB`V zFJWIY+TXR`Ju@WxQ*EP4^Si-(>&ttb>0?ifiQAB?Z_oHk<#LP+8l!}jk0XY!tJQs7 zHB`!Kmpwlwq&=dMK?!R?-`}Lo-6}o1qpX*3|8Yzlb_>p^I()Ut__bDTXp9otLz85o zS&vOUf32Y@|7Zg+ONv@47`C(5lVr&au;$~VJ4f#D$(<whJ&|FvS?OCXRuaE_YIgD| zi&p;c51Uj}N-bV7@#pW3&#t)X)XM6O<0=}XguX2&$sf)*B-`dMf2wT1%3T$eQX5cA z^!awT?EbEql}*P!Q_&bDXr(Ale!u9=ZL>4)d8hK*d*7+FN}0tgCXQRPUv~I1%cjc> zSk_s*EG<eIp{LH{*?!pS**{13PZvF{cVr_|3tLS5_Km@fCI7vC`o&ROrW&I}+=5fq z_@J@PX&a=on?HywcWPmaiQPZHxY5{f)AWtO>pT0E^#&!h_u$d&-!S+OzK-6g7N@8% z?5&Y{0w4tQpAjmh;U}FfGkOb$4%>I<)=799kXu=yHlXmH*y8V%HYERc@7H1|k!Q-i zD;AcN*ha$lm9K)mBqlVbKcu)Tg_fHlB`06UfAPonER{mo`SLCyhy_B^iV42edVLhf zub%73(?t&Pwq&_#BM2c^^sAMpr3Bu{^6S*#e)UZ2=gLO!Q7cXR(CVkXuIkjGQV4hb zZvv|Fv|0${s--<lN1iTn*i~4$_-0u~Kt~=E6a8`BS`$)8-`8#|HKwbu*0m4-^7fFl zT8N^ZL<ibK(j5cZ+5kE_5E`Qd%9po4v*drS%_Uv!B}(9qYB&N`XZsTJU!(f<Vk@2a zwG<O7H3<65Gjj`JU)#LT{kOBX0*CKtXB`eS@BjEdx9=rN4fRrfWDug<V{frCk28Pf zJK>w7_y$n!vDdGMvo!%RQSPyKA-96g2=iXhXT*2NU75#TTir&2>kDF{%wsRp(iLsy zz2LER=^3%iV=vRy6>Tw5=CPM)DPcYi?%9>=kjp&w`Wf(IwQ@|9dF=IR6@>XtIR07s zBP;XR%NciDPs@4vm?-nu%e0gzyi_D;^D>XUOxM;0bLBuxlzZ$=@|DCS3hx*E$|(2P z+cPJ)-m5dAF_tSOdLGZOiE@v<e&sUz71w20N}ee9*c%g8@+H>eJy`CsmodfK<CrM- z*c%hpf&>3epMd2ad;Q8~mV<M`F;VWZw{Nss*?QtBYtfftxyN3=)|omuw;dCQmU`^% z?^Z_}VRzKThuk-3smETw)|mw7=wqVXV{gBFEFobd!}PoP?Og7$w{NueI3|uO_1L>) zMA!)T+@bVlRqnBuF~!>Bm?-zy8xw^WAFezr_t+bc)G;CZYw`S0Kf9cL^S(GaZ^Z8_ zzn&rN;jP2Zgd<dnVM@isJ}*7>;Pl51%9g)nUIUh`{A{r0FTbIA%J^q$18-WWyX74P zkIiWy)(5fv3M(})-2UIS=|gwyR=b$m%aWw=!ZQ!f1995T^BSvtcUtzB6K2=;nl!fi z-?JXbZrN~ltvPwG5*?3$SQk3fM;~%kwOpw`I#@qyLx<f7;t~)lrMZfURag1flpc>C zl<k9DX^awcM|_@5{L@>t^S-9X|DgwLIeZuBc;i-ASGg5XYau2US!~*rZ9w$6ZC>N) z&sVN4J@)O|65sE_(&lfLpsQAgN%HE+uWruTWyw`a%M=q|y)|{pn;@P+IW$HI<SH%7 zvF##Pxw`sQOI>MA$He{zzWw00&@mo5wAD`7zISuXLGRQiOx>fU1wT3d{LLQ+u?}>o z6l$R<wUEEnCdnmRJuz%s5Z|D7wZ|!;HJv0M9e@4<>?LbKht@9iRV7z>O(zM;v4xdG zrBJ3+dZG~MyIWY_)%H*VeLA&1og`0>xp7Kw<mxrFxyGEaY?6+-Zg%au&GwGkKS>T* zsppilKnzC7RqCcmzuD-{+h^nZqm|&B>+>MKLVIYgS_rA#FE{Er%yg&}^ktGOAyAHC zRt{|sCG>7ik_&!x<3nfTj=JK;d5w4kD9%TUTae{=66II{Etn*Q6vFw*Nip%mlU99@ z#L6Jzn1ayU;>^j{hYUX-#ImSeO&2-LN4uC{t{wp~1UfWE2^}ll3_!|R0FwCOt&U%& zJ7dh~6TWL0w(CbD3~3=$%EFXVqHNbM?TNGqb8K(5Ehb6Xu3wWP5j+*<cE)@MDAxf* z7D!qnjZnK^PDHzYnJ%SB1W$!dhhGC3_KeoCXEd@7DiPcLxa&9gnskJvON$`GT=&>c zwD0<LJ}h&~w$hz;{qlKU*u^^%=vPHfl!$XB?U7omg(q^CJ;SZ0b8n%pPX%wGkravG zE!5S5C$J8{5yAIo9%J@oN?A?&wVbVlrEBd>shB9=^&8vtt>oUz=J|bRj@)wWC$}y! z>8$jZU*DNd-?_)=dp>!zYuH;CZ^ZD7>5p`sy~l4i;+fS9CkcqDAl4zFF-jmMloh8q zBPCBH_>pLpGJP@eTsi|ShaFY3j$*DdlbUwkN!T&aWAwUzd%A1EglSiTVO}SVQ*|p9 z*B(80-XK+}Rad{?>6kHnR@Z_FOG^ocd7X5UoP5epoQ?yBU0+eDU0!|K>DYJNf4UY- zSXxRj%<H6+<eO{GayqtIX696tdgY&wIvvA*+_QVZgr%hf!@N#9N#4AV>ll*cb=YQ9 zYW`){Ivs0HU$T3_gr%hf!@N#9NoM0rWa@Zx#oaQMdTz*iPRHD}2Xrr(u(Xt5nAb@s z$t&;f<@(jLN1m3c)DK?sy?w&?WxLynaZ4Pxt`U}&5(n(;?+?;WM}_4ep;Ab<%D&5- zbS5-L35HF#tE-ecSXU~A`f)l~qYEZ1EhQM{b>ALnbEkuCu2N`cr-MCX!Gxuy1jD@U z`xW}G)4{&0Qs}Qv2YdK}2}?@}hI!rJAGimd4&H+*h5OFw;GJ4Z)QzyTlwg?G{e6zH z#OdHzqEZ+?oDPmSr9|BbOG^ocdEJj!7!zH;;+UvX7zguFyOgLKVQDGBFt6t$wcCZ= z`ZUmSJ|<v7b|p{n!%SS$R%S75YsVP2)y9-_M4h2lDVyz!iS6L^Ya~w8c^p0tubuQ+ zlQvzxS#a+GZ5gzrPCIy>yY4Ni*TT-QABa`q<4~ozlYj&*o-r{qoPG8&&OXx^CDwd& z5sbIc=Paq)hqKS_z}aUi#hnDyL5pWhJc+Z<ezOqHaKqVW8l%MAx0Z1_ye0KgoPG9l z5Uayup-OST0d>&g85470DS8Rs%Xs#g#whXSz%`u?Z~c4`XH<Oz;)n29s8Y5glNQgI z*a&A-@l>mKaQ0aoQ|!XMcG3{1!&_3Hz*$@8fY=ir3pHKtaB}Sdi)Tzs0`WG8_rC9q z74bz{O5E~b>U2DEBQ2?~;RLWH(B}V#lgw0#JF2LIcF~x)1;jWI>w?f2CEnX-JEvp% z0elYj?J+Fd0tEZ6N?Dk8(U|BbgvOK+-Y$AIa<wmXoDPqLDrIG&CDl^$#OEM-gE$6+ z#wcOs^On>-P`j_AcKgF)p-NfXa2IY&tcJ7C&IB<8L>yD>!nJntmeeEBuXY0QjXV3S zkg`5TOKME0B~@dTu>RI=NmVJkS7=F%i34zd{2ICH2OozTqlDcz-jX^GmegB7tPYQb zDrNUP?V>TEmQ;;V!tVceOR7rQ*u_0qF>y3TxZTm_kK*hzjZwnJF>gubC^`bf{W!@? zrF0i=Oza9`2#BXZ#4*KQTOE&EEvbc+>ElQp6JcJhWu+`VaN8PKu1{QI6vth^@-QY; zYLJ(5Yao@t&06Oj%O}t2500z)vwrXIx_0m7t3Tap8lK_zcj0=|u2ZrgRH|>*NI!k! ze-WCN5=g0O`eGd_b<U-SrYpSsn9EgXVyW3%rZcbn&`FV)z1BxAjO&?QcRE5@;J{3z z5Y84zumV_DO`L9#=j6giKXzeXhyHr5!x7A{Nuf+x-&Get)Qk4;X(_>4x0GTXDy8Kp zC7ce8QG&H@IgE9v6vBD!mJ&_}+hhHsAGh|%tOZG1IM?9_>aZA=$@*0(0o1o(8NphQ z`V|#99okE@XZ&{k4O5<S%$`qS`_<DHsm!EGi8^zoF$hNl*X&0+j8G{&O}!LTvasdI zmqTNy!=$v<+X$7)tZhmOpswV33$hlB&~|b<>Xi1{npIir+?24p?pHB;$(&Fr7cSO1 zuM_svZ}rqNS@@$KjB2(*xewOKEK;(HIVM!fuigo3ok82W=kk@ym3);ieZ<?kMemti z*6+&7<(jM)tjd~H?$fa~!tu)GN<`55RrtLxU%5O|);(5aRWWt!gSF1@pSW^5t+Ji0 zT(0HBi^I3e%j8do{_5wuXFtMv>grLta(SDGh;t<+mzB#!$#<@A(~_(5mCGaZmBcsw zZ0meYvfqhRzH)iHT#9?iY*pxnV|PHw*I(uP#=Mi?s(ci!T;4HXxy-$5F>w-BE<gO^ zCr0cVtz6zABCO5*`QGI#m#ffjw%1xqo0qR#F1##q$62vHnJrkpayce!<tb}A>9BHn zJ7)`}jg))hVq!d2F5iCJ(Us-*)s@TJM1-xaWskueJytGnwaBrR*Z-s|m$!>*G$vO5 zZgln?R{VZ)RIzfIX=xi2>ySBXS-x_4hy1={8^lD}%H^=D%~{Xcm#hW-U0b$tnNpT3 z_QaSdTe-}%l(3S|y_~*3xyrkB<ucPXJ2iK>#YFka<w`_Y3!b+#``gQ7j?NbO*FlwK z4!cX{CftrgS90z+jEV7BxqJXtE<e1cu3WC>^ATZ>qNDxp!@CzbJ^j^keJdXh?8{Zf zO|?dtE#sR0S2Q>4h23?#AB899d-G3E?-<q`IcC}A9br;fVcfJmcrmf@eTSt(SG~V- z)`3@6G)9Si`(EALaRPMwWCC>bIc{Rw=lt_3@4b2nS1#x2Vuf*Y&~+cy29G(ZD<--> z-ZuT)VjosEnLn$dF-jaX;CIb6?}eX$9gc*KH8<Hcz4@w{75=qKeSYvqwf>Kt)D;u| zy==Ag{RvCBKaFA7h_gSqp?S`0@IUbO5v;5I`=@h0UoKtq`=wKrI%4?E%_jzYT)X7D zle=Q#xqhEkPI_k5^w2L?O*KY|UrfBYNq+!?b~zk6uKweWm7A{FH2uk#O;eS+d(yp4 zTVWg%eb>6U^4zdZ(`$EMKh+o|-Z}h^=6>)8kX%781@o_%HuA`Iho<}EPo=QFxoLh4 zVq($nMyLB@WJvv<hAMXnh3AqxkA=@A+=HWd9*-Y)@x)2PE}@Zl7Ud_ypodqvONiqj zM$xL@CB#t_PqlPEJk?S>)o`!nI+W0q+><l4CnrXkJSR%W1fI^R?JLq4BRCpZO8$%) zyaA-#yM$dr+&$p(&ih#jO$pPgMaidX36+isJUP>_ONe`Zs`doHcva;tAwDfh_}Q}^ zQCB3wE+OtKaxomEOe&0zj^;S#b_rF&E+Mz;muXSTR_t&LHhrGJE}=B+63R4232Spd zQsY^hhFwA<t+f7mXD8&jXRWmP|MfmKJr}!#uF6)ytVSV)89rAgj&NFsNpksOr>BcQ zv|Qz=O%`rwj1s0hA9qt5cU4O3EhaFwr(u^+)aFWP`@82y8g>bBY|q<6>n$d*ODGMy zgt+g{^>+3?CE}ilXKfmG2}SLpZ4eWULzhesJa5*>-LKh`bHZ*d7vHI@m++0uXn)t@ zS(}DkLflK1_c+THdtyxd6}h?!dzZ#wWY8ETtbF-<NxF4-FHtG0H@^GC1m1m8d-u^8 zC9DPW_p8))hN+abKi}bE0=tCLuuF(L!}2jo3GJc$Cej_CdS<Qq=NLN5+kLoGw~X++ zE4-A3^F6${FYvpcvzNM)HQqVvbU3RKY)e9@lwUpWEl_?{x!-Gh(aevh{;TR{VC(8< z!ou_|5qq~jVfx2Y=Ye?Q)FmHODb`PY(DV3SZY8!o@#CpG*8D7QoK`^?ea$3#(2ncM z%E4OnVP98PruN!xmue@<{8RIc39i}Z+7F&kVe7a3X%%JuseO$1Da`XN7EI8N-%8l( zUw>{!nSW}=a0NDV<<I8u>xIh+H?Pt{*!pcxm-(k=jCq3Q86yiOsH2szwblNF5^X_E z*TOvcWWj`=^Qh*zQo^5`BIOYO)Z65B#q(H9M>#<qjIr7!VI}vcxk!76e`@YbH$T!l z{SSgVd|CxzZSGH9kbZ^xypXb<$derwOi%~YQo?$or_23Q@8VWqvtRLqiUkwY!L-be zFbUg3!Elm@uVT!~Y~=1D#+W~3p0u%Gf;w6W^M_12NyO)}_@~~{t-xkEc(TWW3F=^4 z=CPTCd1+=i^5iN0sTs4gD-*xA7EDlwPpcq`72kZ{E%#6D(`7mO-~^XaqQyUTOjxcw zEp;XSsYmAR!INl8i5CCVF=4e!I%@OWKQ&{l{YT(Lol+w5Pu)sbFCm>IW&Wvs3};NZ zN^e-+ul)5g|J1F7^>#lV^O=J&i}uR8p0%ZCVj-@J=c`Q^?^aL}2t<n%uG?u@9SEW= zY2^gURHB0feqIXtsto&6zi44CBUB1ya)dvNtP`P9da@uCchI3R<%C<G3b9aEiAw3o zf<;QLgvKaw(77L0S@KiXp@qf&yq#L5^kl&{qHej;7$yGG^MNXLJof13Ejm<6PZn$= zavd6@#Im1^b~?U!e&ZG$Dy1h2wh_4wjZxzM`wm#w_mU004kPLsqXbfFlE`yqM50m% z<C*2pHS9>#HAV^4h|`hRuIk9s)w2lOh{WzejZp$E>vZJ3B-f!*dKO_Dk?YVHB_Pn{ zYqz!Us+68Z*pWc)inPj!*3n0$^en<6r4|AarsL@7TtglCaMB;X?t*t1`m%6eslk&< zu(m8N--Fz>CDsqI`#A3~;hU<De9`v;VHOt5vE+6i>L|X#`nWGvKgU8stT+|>;-x1I z%^|;DO9?rFxK~aDk2kJN6EEx`xr*&RJtHF4Ate{PPf>FEuZW3qyU${|4S@b#im!0) z?JKwY^vI>SI^Mpi>CvOy?n5cF2XM`POqAJun3fXurSE-<l-qr{r_wAs&O1!7`>+Ku z$C3u`Fk<&{EA5@lfnGcc>kbLbv82H}jM#l*!g@^ZDa335xxYT9YxV%{7>J2-yHC%E zus)W1JSnmJIR8G*_QraPiE_KoLV25$us-d3Vwv5CQrZSFfjO2mc!$aDKHLkSeaUF= z->2N}<2(%o3*?e5_c`WR(%>CN>^}YSa<K1O$$2+>8(ElRsaTJrl(h%<0>p&0M>H}h zVJ(<@1hO`-s8nIaiN}>BDYyId$^Ah3JqATT=D?ZTed?HF$^8p5ENe$|zb`paXQ)-m zR+aL)&DKQz0Pqa76+&DisCFj4`<frO*zTiJYJqAYD$J3$Ety9-w{9tTl=FVoy#0#T zTh=X!)F6yB%t;$D{o|2edD{|wm^u%5v<_LAC#PYQXqwds>l0u2c;pNaudcBQZA-b& zJoSth6Wg5l@kp~RX-pa6ZA)=onN^Lot9B+U6R*dFN~r}(i9Ih|6fKt|liu4Wz4DU{ zs$B1}?yqj|VwfvZ7}hl*IN7>|P$^x*Vk<|Ox~<9J8k1&|t2e@03>WsN-154eVjx6f zgi2}Hrxg6pxw2p;FJ8UTwyI+uS~Dj2)nIEsEKDg&iDB^<?)ENmZo>91Im-mbF6>cu zp2xl4^Wc*_flu;iw-cpEcqt{|pW5~I;Ga5Q&5ipmpC#q|SK%+b{{HusJr3Dz_}IUW zOUGe8^Zu*he-rbW*JA#3##abq{*<)c!OkanifXL~pX8|b+(Qq--b0VhvEg~1BqYp> zc_d{yiHSWtQU8<onw`(rY2M?xyYo@<E$fR9{W=hqu9iF|Hl6o<W#T_BcxZX}r`8xH zbfyuWSCFeq_gZht-7Pxa!@T2d@Q%)T$GEPJfQ}niJ9qe^(4kVl#%$<T@U6|+(3seL zp(I^#z;#o8{uk$AJg;{pw4LA~wnviw^O+&Tz5$_9=VMm)jMd>U9J9JH@pqKtvwJ@t zHXh~B7$uIx{P3(@;XB;TJKu!bopa8)Q$7cw^`kT6aa}#$Gf8jTeAe&*@E5L9I?o*w zJD?o*+;RDo6`(_7l+fAbBw;Vv^&cBOMBnNvrSse|an?_^%-%e8<8;ygK8yVmyo-8{ ze(1q|d}j!&oA?&CZ`U@<_Z(f_eQAV$FnDBk<L+ywZ(p>BtXt|O>pkdYQHkyuTW5X8 zt(ac@^XqUg7BP5xX}-7AVxzq`ynVZ7AJ%j9+{xVSw8CMVXKydnBi;0gZyaGUt;EDv zk*kZicWKCo!C9YAXI1V#dqApEc;D&rv(x-a*|)18Zo7W%>>o#URmNSlF7Cx5rj^+0 z%tb~I|86<Z<L~Z~t#$9Jl}&%}Bfk6O>EaDJ-$luk3gY<{7RsL4aka|sUHdv67Sl@b zYz04d^;%@}>`m<B<><h)*dBv7obNpR72h>QJ5efsFG1Me0QlUt`6zlCvbO<VFC)C4 zBAbtDCzOikSo~?Lg-2R{IveE+J^JL-=dSuMiV2NTLj4z&5r+rwwneVm3CkI4(fqpl zr)BXRG(WH`g#TkLlhD)UJsqDq&(!_T2-V@!Z6oSN#4-Na&RoTQd4mG{Lmh<_!c|+# z*+$eU9*A7Z6L~pC73G6;_&FWbqORyEqytg+NIi?S7X<3CT?eQ-ed9LIf9;<&yf@JA zN4}3<cgXv<4C>%scjq6@ttx#8?P6~h4<n4Vqwq)O*N*bNq##rZVJFo}Y}nN!>o<PY z%ETpql-Zri?`6B^{nxL5%kZZUz57j%?EZaLtK9LgeIuWlHX026{rkw35;FR@e#Mc2 zQmr~TUJW|?L(m-I7WE@sq{Bu#|JCTnF;B=S+MsqztCisB`p`a~LWhjhj<A?kf=`1% zU(E#}PlL!~Z`t$16Y|8tDZ&0}z?fFTM!qDu7kl+j8ogu#f6iy7y?Noen}2!H&!wFO zg1*q_jO^T(vZ;^1xSS*G`;7iG%?El+T(|Jy*<!E%rLo7{E1b_vOG^no<pUlzE}EEq zwD)<9&$n``+wyejKl6>l9(SwTV&a}lx63ZP<%7o9jb}NZnRXJ15_%R$lI-`ZU9;ET zd%l4`=a<vcrPSSjc&v8(KTdLI%-DG&*s*@h>e=7tEY3gYGt**}h|d^VdxNF2X;&|o zeRIjuj<9sMTkGcP&=058cE9%Iu9%oT?z6^1m#mt7^U$i!XQrK3qJ*Ar0)I;%@6;If z+fB1Iw%#;VDZIT_5BM>3JoGbnK2C8~%2D$!Zd|?LrdeZ?^`o;=l+bfplH|o(9-G>= z*3c|nd#LlvY3Y)%ci)&8ykEcU%zZb@j-2#PMZNW?znx{zekHqb`?qSxkKxSk?{{A} zJL$2_vy~S9c}1nvYe-DI`{(tt9!GDMt-j8M6^&8i*JsajI;yAb2p#LaJTyD8&*s^( zXMa3GrS6&Xjg#8zu3frgVw3&)r7Xu0z8op@JNS2)4L$o67iQjL-#dLSUOWB%xy`fN zF8vjAl}jOA7iLak;-|ybPbc2FSvGs<1uS{)`9}%lR=f_O9I2H<rBDv1gXM^cqpsW{ z{m*_wvWwojmnF~BQi48t=-G%Kk8q08A{(Snt~(^V;-sH9RBE>qUvxT>J9qDniS0oQ zSZ_!+{U<+n{(UShCFsS6*Xe->^R=HWoDK)kWB9iXm0J1iOP!80zW!l%OuPx=4diO! zEx)CoqC71n=<A0%=%)()6DM9=`4@;$TdbR@)U;2hSJ;~KM(jn;Rzmy}#8)8tg3uTx z==X;@=pBepz$BRqVx?EN$W#j9hUw@`XiN){6*|tIcyZ%9=vWcCQYn-PQg78*SM>E$ z5OYAx1hEkajZp&SbA+#}^*>!Wdmh9u&>kv<wsAVx<}q>mCktmAqXj2{&=@7qPEF>@ zxA~fjY>=%4Vt@22mC}1KCe8!#EOPY~`jy5gL9bKP;rlLndp0-pc9qh5J|@aeWb^MI zd@uFqOzQheWMOe{87jpv-)dqaws@HZ(%JV$`FCn(DI8VU{bC~i{wQpSW`Sf%uz2C! zEvW|^S<@_Du#q**UdFvrX8p<uv#Lc>W*3VIq>rE3$(mJrW3~5PZ{^bWQU`dVUMAH} z)J6?S@s~YwLtlKQCTIg%yyoHGK3#sd)4VP}Z`f<}zBhATWJ?e`fq2*vh18WhecdE6 z=BP!xV<P!-x%2=K%MW<6qA^PN`OjXX`}AH0IyME-AH-!KRH`->-wDvs|AYbEF>xs* zzo-t$b_1y~O89x)UZbD;VtMHJBZ!wkOa!4)y*J+7>3H#(6}w|%;N-rQM?m}yHJ~v{ z`1xphxmpQ2b^(#19QaFB>XWmMUYF&VFn*Qpn0V-hz74hq+eKrPfNt~!E61&q`!=Q_ zSNDKWDd?+GM<|C7_YQcn!IB?|l51K@pbj13+v7YC{{=A?gi4{_oQ}{QLR7z8F6)bO z9EV!gw3I+!aD?wy|NUaQY(EgAK&TYj-{}bbN(l7CY-jvEhMuTtDUswm_}HgI&1R2) zh^6eCic)Ipl{bB{E$t+>C9a1ud(f^3%h!b1mTF>K;_f3Q<cq~wioBg_*EYgikah<x zUqz0v82iTYd+p2~^g|Hkwk5aoA=rR+a=G%hB@(Bduy%IM>}KVR_tduZL(Zi|#CK;e zGWykp_y+J<vqyHvVXIc|T=GY`Eu3q%({uLe8ZfB$=ss(VZJ|#;?VHB9D;KJ~vdaOf zO0j-^`gh(Rd$kbbFIg^o>&f3%R=Z@B*spxvjUZj*YK^O>ja+x#q1naQF{0L5wK_in z>-m0ohd&ta@OXRO;H-4)`*%*oA5TPxysFrD8}|a)R~YtxJaTHf)s~AjHvR8lw-d>v z)ZQKwAJ02Jz2<MHHr`$6$8KMdrKJS-0@>FRo`Zu9NuU11?Tv$$y1SxMYU_=O)$Z9X zJ^8d38h?A-orsX9r35X)eQ$Wo?J-J{Pls)r{^Hr$jjNxVU1^mvyKzk1J+5#1)CtRG z^%Iv(HAXGX(>J`iIb+T=yw9JE+MR#FYUzag`e%RW-NzA@uG*<%;{Go;sl2rC2H9ml z+A`G`CE^y`fBJis^qLK_bj@W`l~PN3Oq@3G;>u5lZ<<~C!}U{*Q9^qU#@`Yv=fGvR zY#SN8HJUvXzdHVhx0s~vckz2)2AKJ)()$5t_(q?1kPG*}t=Jpx2tb9Dg^&N}fzCud zf#*o?Re|<zrK`>2IugdOT}Pb54n!R~nwC~fyy33fig>69I#debK(n+Rh`Pp<5v&EK z&z~>H`0>3)F;}<UaZcBX3-xf}!9z~(db<8pmDd?|;yIz|q79mq@@?RA)viOOE?xIV zM;yH5pO9_`qOLJYAh)0}`n)o^C08mn_LN7wj@Ku3btLK<Q%0~x68`E|S8<)ps4^!H zopvsDjAFQ*NRmRz!ZW5{&`wYddwUY6<!L3_ORnjn94=P}`;xm{wG*a;F-oA;9o^o7 zDutT%I(!RuAT%u{I^VUZ-6m_1Jq|q)b#J|IhP%$1PQuUEl}cG_`Znl9psw<?$_Uo9 zQ&A7?k@pg&tG&ch$_ZdLGAuEQUqal8qF&x(Z|oE=BVsB49o06+QrC3N>kRe9p6j6l zzxG@i!QDq4iFzF4%cO+&G^IMszq$8qW^+&rcgH@-nWZ9Eg_O-&u^eqgUXD1%(<Dr{ z_aUS@v_@lZ^_^;0rDEUnErgV#h>3|Jhscxrx%Q~5RP1}cg{ZgI6-%o`Tgjot+T7>r zaLkffEqFg?MQi#z8KF|v$Gq3FPK5R)C9L->xR+Qtyr(+t3qD`I94ck?=KaofBCId5 zzs5vSBXP-9%G%%io$Ew!#g?~=B>5=_B(x5x!&xQjUYpKN+FC5mr4GfY<425~@IW~6 zlI1Wd4YMx<!Mx3jwABBZ`YCfn-P+vJWm>V+AfGFD-i+7c`>v*|wEA@GoGT+(j*dh< zj`3wuqP<_4=Py6{EaCD_BKG5jd`Za*DXt2$HfSRVxu<g+QxK-Ree}^9RX=X%JsoOS zrPM218zJQ=(u#>9hbV&k`4&_u^~$ET;Ki-v8lyy8$$|O0viu&7(Z_1Rk3L0f`aBt- zQr5@(=+lYNzNCcpo(1<3D~BI_v@iI4`Esa~)teuEIuTY^?0qre+le(2mt3W+{ln<v zdPzH>wX1~IVXVXIifcctu9jGDOx`vF|IPU*{OZ;oN?5vH%K95;$^6gvD@|8vYmc7C z(=Uz?2-<k%R-yRPo}0?Z&_c+_z!>Wp1u^}AYKso*qu(4wFEG|>sf-M?OyO5AN?u4A z!Fnt1|3DCG85tPkX%eRUxkI;W(V;bJEqKaW+*i`6c2&xH%*2QIz1%`bIf|H=C~}A* zxSwx9m9m~c{ciekY9Z=Ya*a`<t>n<+>&o)WmBdyH552!7bQG=W^JIidSs#1k#@2Pn zo-rLoT1r??TyQV3a`aq<UNy8Ys1B8~dOLgo%h8F@n3(YG<kwcK4wbU@-}lzx(9wy| z7$vk0sln=ry?(M=t?a*LCRhC&%LTX>{dN2D@;!toV^oS^FV#Y%UK;;}Z%ls@H{V$F zq<Q~lX>T$%hf@$7MM=1KEeU%9^HH3Q;re#yvUOw}m+W1O<4SQC<m=n(o=_<riIiCO zo@pbq9tUOrIp&MX{ynd4-oNyWT7BU6U3zZ((M$ZXIs3q8YW@G+1NwHnbK1xcL7WLf zrSxq2m_VhL)D`n?b;X%Dt1Dg)1OxcBOL-p<F;R?gt^0O4Kj?S*a+Yl6(T`lWiPOQf zeY?Zz>|$t}hTYhOX?5nVUlM-bHpK&xSPawU{$on{9m_2`aw3-6Ip}cn1}@x|E2z`7 z+KI9g><cN==l5_IWkRy<XZJ`EqlA?&FF6=bXpGe~_q)e+s5(?iclUQDG)4)`@VdI< ze1g|txl$?hKhT+oV+xN2SiMzcYtpw&tV7dPZws9XjZuO-d#Hn+VqzUCrG6$l5_OGH z!dt1hv%K|ru2L5E9xvW-xoRWonwAo#o1UAZa@1AI%0zD)9f?F^l(0IaucugtN?F^` zpGZd{iDP`5ld!%(A5yUnP1pJuciXoSs3U)WXp9o^-R!k^B9`KpxAzConTTTw!tONh zCjdH_D~`SRag16Wy<s9sIHt?O@#<DDnG-7I!tLvKdtWgq{rzvY$UfV5a&)pBPKL_Q z3B%K%T0B4QyJ}GS%CEM_M(jN~I-N_;7LJLBLCgd(1cb&Yfu~RPoNfMD8-CH}$mzp7 z4oW}$+ZI{xKTd9_)SUI+txn(mpS9h8`*~MP$lBV>R^WOc3H{xUAzyEOM)}i$k47EF zgi0ZtpCQ~rxVG?Qf48zCq#MFa7uRzdl0x(mDTJL=E0JM^DO<7o(e3f>;I)U99IhM; zyE$*roJ+?EtE~i93*=G=Qz|9~hf|bZ-m-71F*=v-=I)_`YXXv_jR@)L41Y{a#Ti>H z$F{HR#dR4~mX>KL;npDFI@dNNNgDwjBy^=hOq}(P?Hkl_|A5o|dWMje65IB?YHeTB zt3U^d9S*o{t(<@kYS$GPZA1mc%_KBN3FvE5hc5?o@U5>-qD?C3iwTt6^%B;V#<*}G zP;X9$Z;wFKb3&yM4mB+VTF~iWn`>Gw90;_(BYeLKL_H@|3gOVNgg{SpI@otLEf)@i zTakpi@_jlG^_);CghS7F_lggTmuB`a+!J<6y57OKj+Hh3{*MWj!rcWO!IO#*4?WPk z@%d+`WhZaHY(?jUbgpR0X*)T;_ZK{N4|2EOgS{K?fY@)$vK5t@lU?DYh7Y}^D<&qM z)okqf(Vp2p>pfr57$w$PeCsMbnkV(UpyLz}V?dk?LZxP2aDkH=_{5D}F)?e~e%S^u zE|Gn9>nf?nDDk&fH>uJe`o6o~0UiGVaqSCBWaDmIB~__I52`z<{u}+VD<<w3w{F&R z>1`V?ov>A^F-qv}Q=A|PVvS|DZJY!`rN%CNdX?X5eXje1+oQ@b_o%`L#4k5>wfo`| z-6OSjb>>fNBuOp>@fO-+`6s(as??RM+~?Y3!nkX?V&bZ&ziu3Y+Wq}nzm95G39XSN zSsTPPAeINAQhkrQ$+gGeWv}jvi7$`YI=ddVyWh=ERWwEktr64}h~8+yXKs3`qEbDs zyw<hH1zTU$6%z}k2V_T}b{GHCXBCZ6LTfrnNSr!g+s5%ARO-ytu6FJ5*vD6P#l#`E zZ{PSgYIn02dquUYv%Oj)Npe^qwg910SN&nCYY%?i$Hdo@mdt*G+U+qq8>ul$XpLY+ z3W$q9d|%5(s?^f`?sn}#9Wim_6F<zFXpign?;F*w5?Uik@^cVZf%p=HN*#FXjjlbY zBPNDE@Uv`bw8zCet`pU+5?a$(9SWl7a@#hBf>0^7YsADJJ^a3+EBo+m<BjTd7e41! zp_KVK^eZ_qCZ;wnVid(aW}~IPqu_czy2gY`>3fh8<tI+n<ix3wxdqZ&Kg&;?8rf~9 zx$s-vEO(wLKXIxO5o!rblCl%0n68~l!#D4kC_8bAwl^iz5{A*I<ishaYp3h*`y(dG zPMo5(P6@S_VUJ14iBsN-m_H?mUqvxdcH)$`))ho-hbudAis{;ENBka)iLw)?XgyUz zEuQ5kPBC3OwTa)gF;RZv)QE_PEve-vPE~V)-WOw{{KTnp!p|F&pE$KmUUGV0G##EO zKXEE1tmK>v!Jg{U6Q>wsCqwO&*Oe#APn?PgYe7GIQhwspPI*tH_r;hfKXGcuh_IgM z=Ma|eJ!$0IJ+J~B=SNu&XS#Mr(Ha#K<tI+<91(U$`B{hZ6Q_30M+Vx(Vxs)SshuLi zMg~9Yuq@7xN_q~-4qEMnhK*57*G_7p<t`@5Pn_BzB5Z{7vohr;PSNUQCqvcpG0_v{ zCr-sgJXf?^4}V70!#EpI)3tKYE*cYsRe}}@wQ?5LNPnFc3$7{_0%1z!yO$BReaZfM zL?C_s7^70=Ph`P_Y4>!oZ(?<PS-gm+UVE<MbpJQORo<7Ju?0%F?<lU{eszPPE?n%R zZ`GkvT&I0Wy4n9AREoQEuX%d#{~%hWylr~lQKh-6Gw(%=4;w*SmiGq`$^mKqd}-%S z<~sI$N7-6;hLdFB4sA{yny!W;9bSb?%dGv{&J4HYDk6gK6-a6O`&~&C)Y**IbggH2 z9ez(!J7H;g+V>@2ZxP{?`8v^b7Y@Czgs2lC;aBj}pM=#k?J(5WsdgD-IVpBUd)n`* zF6)Ut#_RKYwY`q=`-8bMDcdJ*xhf|#S4yxiM0Hhn1xE>G{r{+9{eMZxb3&zjy>aJ5 z3E@>lF;>%_upJl_jC+ZX@onIH`_kn)@?6DI-j~V$f3D2?i4mP@SJU<WIsO+>^pav< zyT60|uK3oH>&U<s^d3k&;YYq!LZ!4Hvqs8^BF5Uo_k8A%tMT*pZ~>N3(=F}^ws|L_ zh|!+miH9EaEBnoIPBpQVZ%ytD>Oj<;Wy{%<xK6_CyCGcInR0tRpPVgHu#0(Xlzv}@ zFE97KRuHrs^SjM_?yA)}CRB>yub_i-2uiF3yXarN9T~YQR(4yM^XK+W?dQ^kKt>8e zr7Y~{?pJ_C_`YCywiu>m-_fe0Gr<@oEbNKfk^b7j@@z3o*S@1wUuS|bN?6zvtfv)& z<=JAGu6>`YzRrY?nOxP?2@Lz|_@Z}~)bK^$v@d#m-8)Zp{ECmg%i$iRJ(RyXdWl#z zbq2$(vsVTJ(t#*?AMPUdMAvsiN(={!LFkFJv0Cp_9lUOREGAS+=U9}G*$mkBHNQsh z>}NA@M_q6j*Bu0cHe^qPyt~;9gem31IWZ>m!YSw}8l!~GQ#`ys-{%5R&xw$(lR}tM zG4adL3y*>>jZp&j{VFZc^S;>-Is#G8iIA?7LYPu9A@d)Z#wg+DEZpd`K6Hfn56)(I zBBbl)DG;78e*Nw?g7Y7oG08MW3FvDU<p}d1oR!Jiq>6F~fs(u4&XQ|dE*uEdn<IRC zv=J(WaA*%9(1K0}TTs(-;Xt7M9pU>`8=+DNhkhl5%zrdAEf)@i8^K+B@Q!LDR0`p6 z55f+|c?uGzJTTmq;~&*cBX0}z?l9({cbwM%h6@h@OC9@TN36f~1I`D8Nzog{(qrFt zJ^*5(e<0Qigr%hf!-WTdTi!g|>3DaiuSTep`p$@n%kO!ta^33-O|2Ys481L+OpD$j zR{QR>^e-pOuI)8xY>S_X=hpg?^J>Y;Lk`YbrEb}9w)0=1{wIpMdbFjkC}o7!8&gk` zzh6A};V0iZJMsZ>)1=>Qbm#4}(H?u#Yeb&gBzf+;r(n@elAG^4D{GY+bKPuLrkFTr z{57r|KRe>2sN|F~Ld%yVsNIY@Si7x08LS0SyW-ISE$9fgIb%!;rEN<43(+qSY;#RZ z35KmNB+01{40k%%6IF_SEu?mZK;Lx)+e6b*f??|L9yZYC7}JwvRkXQEp?)&yB|@NI zHLPE0T1ud%9pSx^pgo)pwnwX!wMR^#&8H$$b+)<2Fl>bOg(PYGVs8>jzgu{p48psD zUm-&47sIsNnkCFzanoVfyIh@m%1=_2qOFev?XU|bc>af3gpDvuA?YM}b*Bwndwf@^ zAXi1YwAPZK9d^M4b(lri2(|SliJXs9(R69wB|-b{f(hy{i?9)D9cI1e?>>p9Yhl`V z7fetGb5cgMpW35RRwmkaO-DIF9gI=JO773*k@mpZHNFjejBgvBuCri*I$8;9L4VGV z^eeP|k*@VIe^O6jPlg-Mq9;0nI+&Ic))PIg=lrM??YnG2+IJUBP={HBjZo`wlB^Wg z)~;~>xJ=Wf9hL;`unQ)rgE>(`t+??yKPpALD0R@jyI_Jk%pz=rSylbIPC0|8q3O~N zOM+|p7EDlwPpcr*irae5Pa$Rc{JPh|o}3fmoSz~_3CmUcIX^08^~O22Qo^0{qcKWY z?UIh#JXI-cf6lR$5_R+vN3gDJwvV+-!g>kANiufRLGJ0i;!9_wny!x8F~M_w(m!1A z@Rt{#<p}EVX~p9_ulw;hj8}CIT(Bpgzvk9K7Y<fugv}b=POxX}h5VAvZKRIQt>+xu zsRO@ODNEPu?nJCEI%2|mCk?ssDx40L%B}S-SDlF58s&Uzn-8hNQrKGZ!fwdC7c^@j zw<org+$^T*t;Kx&(th1u4oz3vrn3%}(pu<DSPaV%6S*y%<p{rasbD<^Ew=C$!eU4l zy`-?{wU<1WG98_XBF6g^HKMQqw(20EQeiejd=<A6MOxmYu@STZ`q`5})O}_7o?-Wg zSZ>AVa;uKQ@~i%KG^JKTEY0Glri3WXmDsFvA34l@@g~E&wzv-ppQ-+CwjSC_Fjv7s z@4Q$C`@Y;Ot%Tl1tOX-z@ysp4QNJo;SlZm`yg(f)mD{WrNLUHI4tfH&l1Jl}Z*n*K z6zO_vt+UWO9T8F59!eBFM(PTbZ-X#j=V~|1_LcWtM=&juqK+_ExBx<XyAp-PyERuT zC06bQ^!6exU%TGMUeb4?+AXA5)81QCVS5j`Dy?1S$_QW6w4|FKFL<rvx6UZP3W-*Z z!tQ4t!TiZt^c5Do)`2LboaGKS653>90$%H~;I*!yF-n+cGk*fur|@8QGW2}D%#*a@ zRB3x*y3TTkFl|dQ@c|?+1Mx4A8l!}HX!9qT?Ez10v*3yC=g6H(Im;b%(AF0d@LJah zUh6WAQDU=AFTz@9uH>RU5nk&W!E0S)9aJk`Ou%bh#o9z;lz{Fgb@+0?Yh5LHt&6OK zYQ>8Qc&&5(`rx&W<;c@g0(I!F`}VkEnI|h3qITz^c2&w*?uzyh;=?bNOWA_oqFppC zCD0cf;rmrjc*Hvp#1d#1m2#H5(Ec$&|B1nC9s5<DmJ&(6vW|TkHS2sd!fRb*9gHo4 zoS|V0k{El`pzOV8x5!rc>kSRvorhfzP1^+#@6`L{RfDp**lBShc3P+u_E2<fQ~M0| ztBKt)@v|!iWrMN*W5pl2y&3sFK_!;I{D$T!<DaPwylEli3j04Y?*G^vI#dcfM!Hs- z_My`e6T6&uMmA{ML7N}C@45}_49mU9aUaVylfHEXN7rKJcXtq|z53=LTBV8+M~Tsa zIQK^+IFjibvVW7MZeI7h1gYbkyLP*OTc?ABm%@%37v>vlOzh@$BwL1ZSX!-wdC5Zy zf|&o!Q$wfhvu;DBbO%pdBYOlL8<y0S&*4P0fz})9iB;w5%a`20i!Qa)Zmt}~*Tm}K zY#vCbo^mrk&bmBf`ooa+^O1QNJ>RdoZzEuv&ZS&<o~MP#bA>>B{)2jNb^C5N<cc)^ zv-cnM-m1P|eRyICp)pF>-d?{im0C<kyOixq^}B%!g7w5YV=vKnbzh@#P5W{<JtRgI zM6())?X090BG(b8%l#jw8${hxE?3ZDZCmIAE!VwtUXGSr`JA*7xsEu7<;V%-)^rCQ z_=mYFq!4cYZ=$`lRzF&D?x?bzTQ+irK8l>Qdc9?zjtM`$#zg4(uJ1DJf7VM_qxsjJ z3-gYOYXoD7yQ9Kb;-td&2f}_Nig)T^yh`6#;m;3-@hX?XXyC#eqhbPMN&5Yly|)Ns ziPI6rsGPva;I8`_evBn9S79v4rKqDAqm;06tmntwJgruu7_~9Br!uxny1J5Q%&3Ae z9bs&j7$sQi_TA3*mNu6e>9Ti5u8fEYm9j9U?ETTLr9h(#)#abUE(YTxpU50{mB#<8 zM}$gg7`-y=F>-gU?^pf=+FqmgnsW%#&Gp^1MlHO<9m?wkQAaqJLKyYq)9p;O#N>oO zJ2%&j#Goc~|46$2+}~cKAKUD}?#_gk!=GjA38bdEb%}c&D&<e6WjXeVY9Zt$f2tK} zl@okh@;|RbrTodXy+*HeAHO*)r9jj}$?<OyqlCWOLB{=@j=D<u6K{Ks?s@IDx!3II ztY6k{UDHxR-%*2#P;!;>=i>Gn{pwvKbFbOanZ>RJH7zCdT|3sHQvM8a^o(7G=U%g; zvzMI?O-l*=W{7koD&=F?=38{P5q0Z{Z85I5Z_)BqgtT%()Ags0=jEvKUMVd{9-{>6 z&|Pn@U6n$;IjPVdF_Bm~G%Y327aY;nOA?hr`#Y)7uVNzCp=l`rfpE{a^!9N6x$m#& z$1dG)f5b$tL(?iJY!tPUs}$}>rz70w`ACFR-LHN0Q9?(eB>BaYSC72#7elj&_|p+i z$Ea%mU!?qQKkti!aL@nn^(!jdEHos$WRrC=mC|%$VpkB8dko2{gV)J4Mu`KL8&Rc> zE3P;IIxbE6r2hi3?FVxkDy8L!iNir`g<Spg{kaW|QR2u;e(iK{-9eJ{UUK7f7>Gx( z_eZ6)rek6$5F3JcAB4szas8?{I33rV$?@@^9$TbagII3SNh4KC`&CRF0AeJFl|X2W z65DTp_D5Zf7|wkN>6xpf+kseOp(z!W(w-j^dx97Oq8|v2QR3LAk99gu>d94MTd(m# zWqlAg_8pL_l-|KHvBR1#RIWh_ehNZkl$f>7LQcmLt8qSRk)Z=CXM=cWp&_YC`9AGO zxR_XOvw@Wqxx!x>$B^;FS!dpJ3+rmac+SzEFl1n33lR8AHC^aylHf=k6Ay1TuyHbS zl`K3Y)fgq9yGb3s951f%LW8}%f4>1NN1iU~&4oF_#l-JG3`VYghPu)iB~XV>hi{Kv z&s-(j9K_0KL6t)LI~^S1Vxk6Odl29Bm{QRgCD0d~4&SfFVLuUj;t$XhRSNys>EH+# z6X@;P2oS4)&=@7qr=1Ref8dVFHURNY+)*lp`_bv(2p1DQL2L<vJN7h23EZ1bhriEv zNcy<CdITebN?}}aI`~Ew6AyrR3N6?RqmRZYficGE@Z;6fuV2x)4aABV;Z#cB=VIa? zv#x0DgmT=9QB-4;z*w2FU-@wtBlXnZhLKvObkvTC1iwq(-ZuMq{OTNc^R!wB8Qbv& z&hNo+Z}1&1Uz3Wkt*5r@d=AEht-yBQ1A%Z)%aBrdavH_=AH>-DR!i4C`$oxihy^`? zuw3zptYJ$D()`A;as(-A$5%?e5>V-wP$>&ru1sIBK&HXo-sN-RbRg_k8~S(D`L*2M z&QoGioDu`8n$?wCf!ibz?Cl5}5l)FoaY{_Ei~1O67Y&4eN1b2G?d`PIrorBxr|ayn zAcDQ!>F@;X?G@PD(_nAUW0dgksPk*Ny}bf^dm8NRP6yL<_GIV?_I8(&C&DQ)DNczA zc50uN68>Zt*6xOAr*KM4N}Ib%=^EIW2&cq2tFXo>fpSz?yFORpl$aE!#I&xhg;ZV+ zA;Kv!X|T8FG00&~_;*xm57^rqu(zkd-kwXLc3rrb|1bjfcFvfj!QSq4u%(pn@2J*G zU~kW0Z%>20Jx|xow}f626XBGY6sN?5d7QjoIhs8&aqqiq5B6#Fc6a_xu(ykp-5->) zJIaNNui&~_2fU@o6L}aToVR`^#TTk4koR25g`I85Su8ve-?d(Qu%x>CJfw^8{E$*i zSWZH^xjsvYc36%h{6p#Z!xc-*?7Nh*>r5#oRLa7XQo?FCoH#W~bRg_&!CEjsaf)+y z97`%Ts<E!D&FN1jCc@ku$C8T1C}Dj!KXEF<iBoAfajMFkFkS13^otV{mtvg4iBoAf zaSFuz8q-q3?!o-TDW1EOh7+fpj@(ZX^c5#H&98YP%-wM;2`4rA7`q2a`0riz-EiU* z=k7R`q$=fR;-G^kPQ^r+yW?1rYK#&#Ci+~3xjT*}k!K?tyFxjdtPxLyxjT*}EJq%r zgpKX_iBlDvIF*JIr$G4nLG8M5Xb+c?Cvf6aiW8^OaN<-RqXhbbyPlsomEy#yG@Lk< zr)y7~(659Db9Wp|*st;!C6c_i^IowhXE<@n>0r9{O!W7>-5(@Q{&MB)-R(zbU%b0* z1?L7=<vii)USns}@b2CXf1OqH*O?@L`eNnm<}stQqi1hh!KuT!6z0;ZHv1M6YkakG zHgCJp*$!`ROW&V)T1u$DHLRol^R%gdgYVD9Cw@`U81<#5DPaxdoztd%31WA63sot2 z4z2$BzJJ!{?e=L`OdRm#%IV`M`Ra3AIik~(trp_>!GR$5L&<;nj;pKu>}8~z`!kIR zlsx?sB_D&5Ym5@{Jm*S1C#3y09`RuBgI{du8BTiE()GW)x;gpY$7}bz_EWUr86eJB z<MJuT9vBlUrRPfFOg#{9e7x<HOAmUnp;DhG*P_QfQ9Jm@r*_4}`wLHSqx3t-mBzFZ z1E2k%cFDx!kt-!siea8oXgUhwN66K}J6$-eCvrs{7NZ1fWWe=vYRQo&K*#nVcG!63 zVS9j3DVFKbT|ad76BDf6^wzDnSTxkGrKJRGdeC(ry3>epcj3|L{)@SyTmSP&GfAGT zRfp`~<->Dan7iHVx|fX!mC~?JDM@C%eA~!hKQ<)WW)VIM{m!`=)0-&a8_iy8zJTZJ zLtWc$`QPRr=RJooumAp?+eW?(qT4+^3#qAp{-!zT<C!JIKNmeUTW#ZG8!v6Q?gKg- zuCwp)eC<mhuHWd`#+!dXXLFUZoSd@QC&-D;@XiD=3&a7xyKJb&#KgX!Y{ukq5Z5AC zsIR(8S(v5OGGQMJh)<xy*Km=R5k6P`y5EaT;zJM*JT~)wm5S3<;&~9SgV=L}>gIkf z)vxhVV(+oLbPXMn;Qi_$lxNp48@}hh>*Ae(Y2`C<uC&ZaJa5QZ{Sj}UKV;*a@H#Zz znAkVy*ms|GD;lE&!(KOYWiwbCcpaly@4im<McC&M#Hgqo>80;nKO~eRm(p3pm_V-F z$iQ4_Oe<03YQihGO<no%A=#hNchMeI>(!{;s`Xv;{AzvB^P#tI@y=~ie~R8d823l3 zl-(aOAv=qaJAF6wyNP|P*>jNZj4{zF^_9D$(B~k@cU1S5>AIj_q2Mj4^K1QwKHudn zxASZBx}Soyz3&F1j*jl?OQpQc;eQdDRtpj5N_Aw+FLUB;Cq9QrsRN->-lD_OzQuCH z1TMI8Kvxk{PRt|ie!k=?<t<Zqn;bG%bhHq4z(M=GE+zDx$ZN1%sg$>{&96=0Y~e8H zHNWQH$UNiAp=l`*zb7i8Qr=QHzczQ3#lxJJe>;zIg|8Q`7xOVn=sRje)K$t`Jm=TW zIJ<wC^Ro9{$yK6hDWUJ$k&ZCu<<s>se7j$|<-J{Xw5R0>=&lxT;Yw(_$d!`{<>)|Y zT1v!UMXE!kP;V~X&>k-A-`kbYw3I+!a70@#33Fb)ozebID)g%kgr=ng@-fPfB`v)@ z%z63#ihk_U4fjU}LenZITE{Du!u{xUg!??`XdSN#9S?UYp(9_C^qB4}sp(O_7@Dqn zV9#~@7xs)UXCuWo)irniljCDPDq$W6_TAB#Gq`AzbyAgbmRk_@<6mqcwga&zh;u+_ zT1x0RmLwa)>byIMzq~)UqEgNR4IMM4zuhuEj`5c5v>Sw`rG$=Sm}7zUd^mKxwE3YG zm2#GJ=s5oRxvaOQZ*z{Q!9t(HLSNAsC3GBfb6%VUNHGgARi)gF0CZe&#X{XN5oQ|F z0U$I+2_46hWVD~nNWbkdrJ+)8W&=77cx=(`m<Tf_DP~L>8l!}cV@YzIpOr~Z={q1( zDK|p{9gp16w>u_Y@-si_QvC*G8l!}ccJR#YXO~jUE@di(evBV26aBkmBFtc=oW+V` z3c|q{!8txANth)|IaB6ie7ewAr4E)OCO8v!R*xYmX5s?j(^5jmu_WPa-y{&2?PEFe zbWv|E%=U<hFr%1aMv>)!lpoub(9sTO#rs*y6tk8Ml|uVF9qd;z5oShH%#1cPMu~W| zLr>)FYl_*|sVaqj>~!${h=~LJ3~#zD2#rxf$1!(DaTYnnEOJGqa6dX7yw78TGu4>$ zN-<Mi(HJFkwBw-NC&m0=`W!|EmBP5<ba1?ii7i0v2I7w(G)9Sd6x|cE`g?&m8zY=b zVSG&4uQ-avL|8eHV&y=pF-l;p1Z{7b7^z2M&dZI|Dy5@#OeFYy^3n?F!msSaaW_w^ zg+RYH9VEnJiziF|9<5IqjD`7iyuigo{<aM%4I3ezTaY8~t;N6Hs|A|R+H#^*D%T+d z%YlrcWJ!1<>ovN$|0`X7l;|~j^0hONJHDfGU8g*29nm5MK}t<;C+a~5BwEwT3FJz2 zC;`Yz`FlRkRR=<){2lDegk(ApD&_CTUZeXAox^g(1TMtuWLPKVM0oe98=+GEe(W`R z`1o%{hrBJZcKHk1-M2xNwLrqZcl8<_y~8;|)Ajcw*E96a_v5q^nwAp&{SmbQJG{#Y z{^LuoQvQDIHG2AHee?Y|?S!VKgntk2HQHOYy%w)SrTqQKm6A*4E6>^qO-l(sr^i~L zO<#4WR57=`ba!V$W0ZjICflYxS1JX4XrsIw<wRZ6QUZ18i1yl5Db$;j3hhx&U=%9S zQUZO!5$(N1rO^IPD)g&zB4208w3JBl`@glfs}%aNOE=sfxJP*Zx7<;6O{<(}9j{ah z_oLGh?(?8Sz76ai%wv?mh~a3Cl}U2vKdv763#_u>pL^n9cJhKR`gObK2f}<K)4q@- zmt$SV8Ib0m#wejJi?`QlS5KXB-q38z^M__C1$}Of2KB|nyZD;mYO1yU3c6g%eJ3DS zS6s0~3o#ArOLh+HOEfJdv@ayde)yW$0mNZ`1znRXPnfRzPH-jf)g2QPKyba!F(5QX z3GEB{_eX~B4_R5$D_`R?`0H=N_lF<t^6w9~LP*ncUlzy}3GEB{_lH}Bq*CrX0mLcC zf7n9UN+*1OaFw3x4eYN<XphOiKQerOa0Q*KE2itd6QJY0KC}2NkzRQ|zF1yC3;xxw z(#vC%h<oB2_?oy3#2~CAQz`eI03CyB&vnJbfgqY_kJsTzS!0xlpYyNa`{N@Jzr?${ zN+tY3$BgMSTHYUqfvAAMU%t96yjkRgquqVZ_lM($46H<J?n1imJ0X-KChmpjWPW>0 zMy@nQ34Jq2k`q^dq4G3{wfqXYD)Y|zao-6Dvpr(sc6_lQ{p=AC8lwd2u*&huj|_jr z_s2{S$DjpO%6%t52ird;HU?2cuEzRRdU;w(pqIGoe(Vb0A8z%hO1bX@=wNS;iSYfA z;roND^zyWnK%aKk{TQsPSXIh>CqT!9@xAzcE=2hLa4TgsMhV=Tj^MK-Ne-9QxGLqo z6QG0RN=zICVhrkPKfg*ZPfH1mG448_iTED$-ya#iKe&R<wK>z(Q9CAf1Mvs6AlD&l zj1m|t(dYcL9X?X<{qX`u>QymPtCWuOF%c~E8UJ-QeUvu5ZRbxP=PlG-e+buNB6_EG zdu9B00&M*`VXIO6znC}3b*PliCj`QMwZz(W4nc{JzdJ7Nedd%#g5PJmzFqsi`UdKJ za?`?-CmquD$nV~+%{t}vZiX>mJN~qE>^plke)aO4txbwVEcH$erxdu9u#@Y)z0;o_ zySRHg8^N?JO!|w@-l`q4-&;Y){wwU3u6W9_I8`Us0f`zUUAi$5zSEozjZwnFz8uI= zikvw@V=T;Ep*CvBWysZUzWcti%U{N2uRS+sYn4LX)KGettC&E|R#3xEhsG#jVV|oj zHyKpf@Flm8H_;diGgqit)b2YWSAXt5bL4JUpOwvde$Lh^_0f8-)*hSda}^V#4%mC@ zrnh+Scp9UGg?+B(oqJy6z3qO+a?~}(!pv2V>?NtIy|%c%@xo7kk}W)Q&ekfGBrnx& z_~_rRu43ZT<KJtnw*29)uHu-2Fxuy8%N1A4=6$}M%T*jx5R3JFLHgDAJ8qDjF|v~F zg1Rz-d0+jPGi#6E_omBLOuUHn4}l)u9~z^Cg?+B(4m>=&@r3tyN7XgP!qhk7@aN@@ zy8P9nvT>CejYnUav$aZfZTNic=|9bKxr&J;xBpr8(K+Y2yH;bAu&~e7x7VDN^;>49 z^T4Mu7WVz>dGxE-Lcf~-jqf3+9Julbm120ay<c&;N)jc0eDm4a<o)*^Ir*C3qjrlJ zC5A8ld=32}=wQhYtjwtV8}~U&K5XX~UAl)XJrg;3$w?`V{jlF3m%VlRlnUFUOp2wA zi9xuV9v$rcQ)!HaNyNDdy(B#gxneJY9+xZRu7+H?Txo8dT`6COTqZ>wF|i^>p3^Y` zu^bv>VG>%tBnfv^`a!s(kY|@Gv_%bN2{l^eHc3!V4b+#@Q6@zlTD~MfjxyxT5pj%9 zmxPutNy6xpo{KS&qYrwc%N6=<o-5w}mfIv*_Mp8-ZsI&T;-sz;De8y`v|a<P=yIho z7A6swFO1abmuNwb)VOn9u5gd%EvUIo65O#B+__FinG|)z1n$2I?n4rFjj=EZEnkv^ zr&_u)?sGo-Fv_`HVLYr^Z`a%=2}ZXRqnyiCnG|)z1jecqW0uR6##oqymJhq*QL}jJ zxUr<{8BPLE8|2WQ=XiFcc!rE*-?bP@;b|lHwi4l;q4Jr#qly?Mv_{~GZ@ZtRc<Q+O zyiAJvVgk>O6weS6b&atw39Uos-LC;)AW5)}D|r`xNi&4IC5-EQ?v@ZLg)pToB~Rp3 z9qB`YvD86bc{p5eAs`q@1%gtRk|(?k4&rsBiL^*D#)a|!^DwR_xDLUL|M7oqQXnX0 zDR~0da!abqRgiKyu`tpnMScEfIg6wqVN#Y7iT^&hS$e@v!<e&V$dI4ah76hCojkR3 zmWOfumG@4l{bbrV)Q4XuLZ$LBQc98|zIwYd=qvx0k;fpV9=jY<JNmfqT)O%7&IDqV z$it49JbC5H?9cr>Tpr`{dw4BLzIQtE>zxS~QxN#t^0d4DAauMFbR@||h(V3Im=K1( z`j389yXsQAUP`ExhFwY<qpmg%b){+LVGx%setzwu;U5LvrG!dp*y&hq%4X>iq0Kd| zJPhK<@#of_n*K@9QA((khMf+cDf^3XzHE|wfVx7jb1@-|-u~-H->=PH>pjG=w+n#_ z1))-T*rhZAp3<KP9@+C4q}6ZL_iKIe$8_`Soe9J!k%t{|@z#CQC0_O(+4C5r`!4c* zA@WZh`Ss2OVwA|kj@U8VzOvL0{E4)A4AS*u3Ts02btYU4?`==yw7Y)cBilEg4yWEC zrW<|NrCWq2H)s9wz3#q$A<dDY6QNQ?n7RGOR(-Q8LR}RxlbZvcd%t_>=U7*&qcf32 zL_w1{_~pH_rO_s+lcb25+(f>+-}oi_lIrVBBoR^2BwoRJ0GIyVosFCnF_RI)5tKEo z`Z^PgDTpG>>;C6gp7}OFy=x2lF!Wh#3V~o~XC-`(5dtk(kv2!Z+2$+<Y2W^6r<!kb z=1PcqA>~>vmnsORgf>s5&2uTVP0hD?!hRL5w-9xWQKATwK%1x1=6Slzw{LUTW5V?o zqONHvQG`jL%~NUfJY8Q;tS{GN!u1xS9;d~c^+Z9Fz<u7Z`y3M8u5DY|8TWs;jVqlA zmCC~|C5%^@jaPXL@{Td8+s4HFdS?PLO5|ZjVBF1Y+|6U417mHsjpzCG&IDqV$it4{ znH=Hyk>oM1hkt;2^R=5_?@YLuf<TRX+FeJR*2DW1{yiKqcu#OK`qU5CA#6W;zlx-4 z_Lh;SWa8o9dNy^%-I`C}Yl!#YTSuPO<d;ggAEDdsO^Db1UrhKOlS?(PcV95<SK(J@ zS?o)Q>Dsqie9s30(s}76EqgLdZZ5LS%m%*#JRNip!W&&7<=evNs*Ruy{OVa8W24XH z=4r#OPrG61Y}awa%`bGD)iLNm9nos^a<|$2eCkvXa)op_-m-))hvfvMJ%PKn8zWF4 z+(_-h7%{r}m*<KEek^$*HS3grcbomHGodj`P%ri8I=l+kf<?MX@@BVL?%IgDN6_X` zS_PrC5R!NQupEWdGBaQ6MmvX`6!q3h6fsJ)wMQKs{_0u3d!O&lzqZkuW)CnMP+sz! zV4Is1(>1$BDM2+EzcbBxZePVdT{i|7wVUfuDf>z-C6K=Lt0JuuqL!B<CsfL80HPx% zs3v2L7S@_KyUqF)`dduYN$7pI@~oq(3&9fXb=0fgzT7%8(8^`~Rqrm=E=Hp6s2na= zD#g~cnl2?=t~92VDD0O=Jp6nwv2<a-L@vC=qpi(zB918t?QfR8wO~;vtgB?y8#Q0r zVkC+Qm0EM>4XT{o=tuyK+e3-YBb>Ge?S6KjYpv(G3OWiYj_r2Wb|y4N2^~?Lj=I-W z&s2)fl47iNb%pk6e|{7(N?=stTVG7La;OyV4;$x83FOR;aCurvV05jOkJRx!QM5DL zhI0yeIefueT2P;yoe7Omf^E(jf_5D$rMBMAL>yCCn)yVf1-)Gd$95Y(_{1^$e(6{e z+M|$4pMAT#xKs7(B~+9nG_4Y%X!E>wRf^$a#3`PrPPp!o_*tujK1D<F9&C9U6r;BG zn3zC0P=kE3xi7jJpQH?TCNzd`{YJF)#Gt62F~+`rN!V9v=<U!iBQ>acrcxn?PO38z z$G9?ubc>#!m%Q%Bt3rxpvgfWoS8~GTN@JAJH_ld~=sz3@tmM37twuT%d_(381M7!x z&ciVi)LvKm9<79LRhCg|x6YEsQbi6s6LCyIu<hAak&aMTg_M@IjX;k4GfLlg^lc!1 z+IeYDsFdE1oryT6$f3=DEw~)o25p3tqnJ@tLPtB4BLDes9BJF;!EPRstyYY7PP~r) z;*TRk6q6J2nE3bUJEylyS{~A|Wm_$qYURdxdP1mF9@dnYZ1^!p{PAAH^Ui%ia!kp? z{<`~m^^!TEQa<dYLP|oAs~1*z=!h-m$JADu^i|MJQOf(eDsqMI{u;lTnZu`ddbc*< zH<m*$?THf)I<kB7o^zelEiWI{ef3&Cj9Ta}EW%2t)Z+_J?B3?l1rT+gtKw@LR{3r> z3xHfv_mf{sIf9ycrs)nn{n+lw)Bfvn*g01!l_bZZcE9`|M4VPZpqF&pyhu@QUyeeG z`VJmG&*^9*P-^~M3+8Dlf!6GHb1bg+cxg|l6l>w(t$h8o5p_@1*)#IAl+c<kG%!~x z#nwFPWv`=+$aQFp5}jKxNs2zIefPJMC)CQ@T&1AT&lRD5IujbB#C~gyuUVP$lA|p3 zVn)f;dtuQjC4knmIHn+meREjN+9ubL6LuF-%I*)$jCDtMZNTc8N<Derp*8F6ZA9H8 z98Ze0V&YJYKECIN<lR5@XavxaVU^1JHT=1L920Q~i;`2H_57Tuv##R#v*MobOvEt- zkt8MMFdewJz2z?MeVvISCMJqHbmc(${MB8LvoSHBiE};XnA+Rp{b=W9{eSD3O6Buv zWklTw-XE5h61ToQv3BJMKib7QR4RW)K}Q>r>(Ce_j-PdGZO?<hh}#@gTypk&>&IHY zJXelTDeaY=i8w~vAk3?}dds!AepN{QXsyG#kNLYFcjH;vK)76Kj1rfwc4+rqH<aBU zaSVN&n^Z}zf{sFpbWx)v1Tx3_qli(0IV^AU*n-WkYrJW=`r-TBJ8=sJ9U4;*eEL7N zlhF_jKjx~C;`;*U3#g+rp)pEu94Q}5wB+c=-8P?%zR+FFpCe0kpRKx^Kee|P%r4Y8 z!@yj%jaNCLQXp$qjyA%pKznG65-49Ss;gXwN}=9r)*fvHb%4V6V3bxt_%A(a!CZ$v zIe7<LZ_nRe?f%FKmEyf^J-m%TrhKk6MhP7yC~Uuarc!vnLdo;@D_J>U@+^6rRzY+g zed7Dzh;ADnwfE#2>eRsz$D}y6+o)Yi0FCcKCA3%OIvk-=C{zAc+?im%wcf{mD}A@a z{h?AMnL_C89SGiM{G*f-c+>CZ{mJWbIaJDj<9ex5qVDTT#}XH=`E)_@`^R)Znm^WV zA;nzqyQ7qF;+`ndQi3($W*6IZs1$2pCA`5<M`uD~lwhs9SyIy>xuPw>?#{NmHZFNR zlp`Mv!pIP$TuKGesw2cW9WIRW)rxw9IMVlbt)`1I`PDSYdmBL=`1#St(ozDoP_ugT zvJ@wwQm7xlvIaWZ2uOQErO?OxI+-#80DpemHSJ0;r^}-BdB1YvBvi`vJdVB4(V6fw zKj@8+($Rnfdr-R$mD1-@XF_9?2std#5ldZ!yU21_e7Czw3jg69r7;l!x}_Yhc2N#V z7k#+U(UDO5MM0o^?PE!u?V)#$-ccN5+<FFA>&y=R@N;dR->FR3+PO2KF-o9DSPs|z zK5_S7=!m6UIf7ItB2FtJYLO1F0y^BNKs&N4A=lYj*tJuft2#>_TCj~kZsXn_q*-Uh zdtzxn4!Pk!OrJlOlWxfs>WIIPk_*4~==PPVSZU$@Pt>nMAA<#ocN)h_$TTrK*MU%} zJnU+OD@C|sggWvVq{UH!y@u)L*E<u4Q6djJBCG^-I`SB#%drb-J01D;&IDqV$it36 zJ*6nUTeF?VxH@qowbPMb?@YLuf(RpcXeYE@%6h`D?)s5yMgHIL^kLA4^M2JvFefGz z($y!9?mp8wS_^Z{HfP>p*AM#}boZG_(N-Kw6*IB%?lU8pu7yc+#sTvPL5J=>Qz@On zj0xR+rZGxbn7Wfhcb{pDg_$d^Sit;!$d&FsQz>2b5EHulOk<R=u+Nq5KGPTrd#gNW z#mjb|sg$nE@bl<KwCq01(^A61K3BT?Ok*s}TyfsMs4Lxlrc%1rBqntCSsYWWPBGf& zD&BqOrF=|5a5lN<SMlz%LP}>5V?uYIX^avU_PTZVnZ{U{b;Wt~;*QeYXDX%hoH3!h z&oo8}3;SH@?lX<Cu<uuV!j<hlQz?dvIbkK@-DgFN5?rN#dGByX>FzU@+-9f!>Ic93 zOzC*{S(y||8xy+wOk*reBF<I3`>dEh=Xx2;b-BE2ZsXl&Wm41;6T16MV=PQU%NOrH z;~ixyggAGOxx7%LMQ-EWXJt~<q3Z)$cb{omK1@Q(7w<mf=wqw2*h4H=n%j8yS(y}d z#DwlX(-;erh|8zD&p1-sd^Y=+wV>uU-hEakMIAAryU#Sn!X&hO@$NG|)oeYSU!UQ7 zyXH3DeO4w#9WkN1&osuuB(!|-?z6III0;>gl_c@*GykNg6nkWGZ|fUCy!)((Q9^4Z z-hEakMSU@$yU#Sn!X&f~lLY&58nS~2V;`*({1snF`4^eHE=0Xl3h#3<f&DlQ*}>zj znMf;_0+CyaoDL!CrBZDK_Tyx-gU4G>kyf5Ah}<&ebO=!|m1-j#mVZrz`f(TCS5aHN zd3pK%klGCdbZ8wWN%fC!jy!YBij5O~dU}>#dPh3os+Vi~u6TFX6HjfO9(?~xE<Etp z{Wiig3O+jTL9e`J%e5=Jev(Z+zJ*Y!VVAy=-t^Whj>fy_zbloWoHP016G1G0?K|oD z2fyZGR7&Y2IrTSNR5q?2JMzaMrhGCj{p(Y+9HDefd~{>q$~wm-6_#V@eZNdsnDe?L zl#YpEYg{*S<$X7)FjsGUpH+7J<r|JrIwn}Z8-1Eqe&UIS5lY7dbWAlJNH?=wfyn8Y zKsg##4&*(vk}Dk(sH=w673wFm+EqFx&>jtI541sMEv0l!+`8r34QcbtdWq68fqpgB z`W5<8W_<~LET?1QKYv_x>WPi58|+t%x!`c$`;=}YMjFxDUyY85pZ&hp7&ZIwY{P4w zsoZtx{OskS&(#LcIlYTgGY)#zg>4OsAA>L2;JC)Gh98*y`0_U@8uNHMBkOzb^EFCo zN=Y*Kgc*%RF5EfW@`|@ADuvGD*2%OJmtMGNHspsRv$<Etxl-cWcMor_e(_9~LwJ>c ztbg|F$2ZF!yy6Y+{LRyyTB$TA-~58hRZR4quvzx%DgCqISH4wIDO(}LT*btQKkb;U zxbO#!yHHmeqr})#FKeFP>*bKEH^1IFd+*;f8lR)CRO*CNe!^V?E>|(}Xk%RV`0d9w z?m}Iul&uhBu3}=%zfH*2zUS{#_d~8UMv28YnAE(Y$E=X6)j_=f=f6)K4??9dPBuBJ zQAbR4SC7c<9Z?;5KXRo~c%N@BJ+q9MHucbK_|5$)-5^wo`tX)iq9eWd!0f5XmsIvZ zu2j1c&m8=V=D-<mhH~sNZSU-Ww{NO^f!bB67w#K}a=htu#KhSbRI|7H&ad2oT&Wb> zhPz-`@|bx0-Hoz0u3Rbo1U*q>lo++-=FQ6<e>>#rvpZMM_PcBK)Y{zA9eC=pO}tk- z9Wn7i-}#O6E~uuzMXpqe{g^vyn5&q$?0`mN)yKxBXQHm+n1UGhgL=02(X&IYPI>31 z#(vZGPJ5uPG~K6X@0C@becS1Xi6{Tqud!z1(Da_m->Rq-?|FQwln_WaIcede(=ODN zrqx2EMXv6iTpf8=<B0U@%luek=|W#Bxf0^q`;V<0(ioTC<a3ov*_w9N6?6;nn*$n^ zfvBrLpsqAV3DjY=Xu(I`no-&Oo1N2tp{`U4ZBvyN6r%f-{^{5Wo28R{3+7U`>OQof z5YN54QTi|Rt6hBy<}pg3zg3IgzUmX3rSDAZpMHc~sTBHgReHM+xBX`4bnO#oRQ}|9 zdoE==2|{ldVw;N(OlRO8tRh#cT?yQq)nY8!YxsfbVjCV;8H90HrEt$zWn>TnV@Yab ziArHyK@Rh=M2I#1HX&UDBitd#Rjj=rF!EK4akuwYho!UT_G`>{y}gjah+36#SBU%f z*gNg{o0}T9psrNP*6g#cVjWxmX~%SVJPjT|t~5poJSD2dGwPhrs_9~r<~L3Vb;bQL zOczg|syw5FcxbQH)1&uXJ=?`UqjD)*<xe`+an^;4rpx2W`77i~W0b(tIko3}k~}qO ze&yGnRkL$Kzrt6l%N3r~sXWhxSn^jlRfhg>?`#9ql}g#Z0Ol&zapv!9mF@AC(I2_e z7$x+L180WK?N=GN)nVDw;U2^{q080Xzu=p<568stt*TT1h3C{6ya(m&MG1XhNs=kc z>{VIl_*1i?pWHW6iMKE7QGM*)XKQ_~xUi)ho4@^o^tN4h&8i?&YU{?t>OFhUEFl&K z@f?WxAKo`oORj{rQ<CiQ;sNPn3w__1|IvLTRcggEudbf-;Y&_OOiTcA42XXqR~n;) z_E30uyY9^N&C364>`cJqDyltR67pm>kHr^65RtHjMG%M*rh8~)kySJV^Z|;7B`jfk zn1D!HiEILbgf$95l!QePBA~!@4-H}j1SETaBrr+fnXn|RVM*Tq)V;U*ccy#3=X_t1 zN}uzqs#|sI+&g{G{nw1HM?}!;ypcC`9>3PS*oG&Ti`bw%qidW9T1fb{`MrzIEUz`; zH>JfQ==G0fmvrv?;mffNPmC1t@{PYKZ7YHn5{ybAobt1d@)f_`u6)xQQ#$CiQRmRk z=hs~n+wjCmBCZs1p9oq=_^ZLaXFOZF?!6Ps-xWcxw?~gFzxc@F*oG&z6LGhQr{9{= zK?@09iFDai@Vk7qvE_Lp=%sSKXrqM)M$8vMOD_U<0C%48Z0#!bsyk~V)vIIbF2+hV zf!JBZ{UQ$2k<&s#$JgDwa%w*6HXrw7W0mUF+;kUn?g`CD{VEX?MbJV*^Mt#;V=p?h zzP8S*?R1vVOXpa3aqfEJ1QB*#Efqlv37v1aL)O_|e?{xV&USift#lV_&=YTou=UZE zox7<n5?VL--QeKaN7WzGs;!Bjm)3lD5lcLAiilAnmMJpOLPF~wzZHFT;YRhl6n$1I z`p`?UtGkGBo(LkI5pke;MGFbVvGjYQzOCJGSnY$;&Z!R-K`)D_XRe*1D2OQ=46A)2 z;vJodtcwKWaR{R~99DW;#OosH#Te{~)x*K1j?bS_U$E<?H4-DHzgFI3`t-{Ff4uQg z(%ONzXFz%M$@|r(iJ;eEQ-*ae=r^kk@f8tO5o_#rX^nM}U<40g`Iy7YhmU=)wnS~v z>-NuG+<E$*b7LExSR&$wB7)kWg#;sb2)`I~cKQCzpXqv1ZP07&Z(q@Q<eM+WHau~K zh;u~zMFcG*7{RrV$*7acD~`Cn)GdNu@68*nd*7F18?D4vM_ymLS_Ca57{T@C%Z@|J z=f1UN`DhXJS~PT<&QW_VjBR*gu80FfJRyP>5{%#>{PX8iOQ-I1Y<Z3ddVT!qQRP3? z7sWO_@!q(pr6)ynedW>`EhHGhV{8vU9Q&j4Z6fHUa=mDyZ-SOyM2g@cyz}#^wX4;u zKV)sBdUZ_Q#aQvmptqIAO|4B5VP^>~BpBy)x3uGs`so^7Bj}~M(eJg{oO@!Sh;NHH zRs=017{Nnmj5?|QiO#DlMbJy<Sa)&mdg1{QU($J16G00JMsR)CJLv5CgZbG`FRhjC zVhwuYG7)Esn5s5tA;Ac)9ZAL<UOy~fwe-@O?=E7ACteqEf{3MRgBB8u;M#+yXF&Z7 zMW1yP8R(_hRWBl(Cw3Qcp@`{fgBB8u;CfaR4z3MR6zvf~FN>&OUoS<`bS;qrvWUG! zOcBAlNH88ty;G68B;t=E=*1Z9iOn_~TpGUnH|jmd4vgQ67Cq_O=AQDAb7xj&|M0d) zNr&+C^UF$8Pu{A&SOmS+TYdA+W5&*IL+mqcS*cq@T?FeQ!3ZA0%0au7Kl;-@YR`+H z*F94Y>b!5s+}MUE{wd-s_y42zjtE*vFoK70?f8SrV^_bcYn2FkP1tgH=YT)G6x;B` zRU#&fSnUS`>$H$y1lKdjTlX$+zR&rkchv^HE<0zB&I68K5Zmy?%_8pn`uU|b)CMgi z7{T@X$Gm~%`M+DUyrBqsjoJK@@{MP_65H^^^CJHH_iL6PQ?F<t!3eIMbq=3Yx@+ms z@=YS>b;0`Dw`zP(Y{L_uKVnj8*^;5<-P9{uNHBtDvHgWV9bDdD1ie(Q7j5)S(9(-Y z5j=#e4xdyTqT~2R)<&vV$5b!IidTjZPCQ~#ZGRC{bmX*<U<40g%lQNA>uPlWoQ+kg zS98-{%(*A-nm172@2**1GaIXPl_9|h9>Vxr_pYz2^J*;-^wK%jU7Wj~xI@GvI<MZ( z<~&_xNHBuyS>yPF>Oa=mzPj3=m)1&mu?9UcUc{Xuf(TkjFoK7$c+f8O`C8{I)GK;v z&36~E#1jie?5A};O9U+>7{Qgv@%*w{kD|{*BIu>qRWBl(C$^cktag`(1tMr6!3ZA0 z@7Et(J5y0~wg`GztUYC)6h+guL@R28!L{u~d_iNyx=1jBYajRZ2baDkVp|dPVhr}g z)2H=xyxiTte)GvkI)YELNK3oFKC$#k=S#IoBIw0ux1M-a#9R><iJ*l9Be-_9p1rhG z>bkggz6g5pd95dw&01QzN5ljXw2)u~*WLpwKV6<QWklCiBIv~@yq@^7hzIT+(PhU$ z3kgQ>5PrVSYUQc@w=G>Sf?j+k?1_s+ED>>y2wF%mf`{;}j;Bf+tbCw!hX{J{DY7R9 ziFjDVuSC#7f)QMK8DowqJu-7e={F+i#plkR=qF<TSu0B8M9@Nl5j>0S{c3BJe<Ffj zd{W(>I8OvEy@(XSLnxhdOl?#3$_RS#**32X`sQ==F|`duT${C#>LS57uXDHKsoD`5 z-AhH#i%-Kn@!_6N)vgioTM@L7U<420(sfp=KbxN=^y2e#PmB}snuzPv1}!8Q!9&<( z<)`aUYkgcGf?j;$?uji$Ow{_gOav_?7{No>efH8?KdstZMbL}S=shu5#4{rDHJGk4 zBpAV!L06wxJ8`d<idd4K{qw25Cu$;YQoOoJy`qJL;#j&eNICL<db)n6D0+_wdReS3 z@&G)s+vz=BpL?`_eT)cNNHBuydVY3K#{dy0h@cl^uqS@0%$h@$S!4Mn4<9zSv2^78 zhGo_qckv62TMk?h%a-|Rf3nP)eU(|W<y-YG%V8lwuZORi(>P|+c{#m<GHW&)n`PEq zKXOjvoSR>a7VpJ2E>>pEWu;R)tc|@E%xQdmmlq;In(c*fj52F3RA!AG$5&pS+gQBe z+(?l2#Hm~Sy5sxGtg%dv(D`EH!7+0pLD~}*e}16M8Y5QKUrGdNPkeTZUw4ho+xW+3 z^HZ-J?MC-5W!4;&X9(54upk{dY2Sur)|``PA)R>bf;76MJ)!xi74xyrs0C@JNP9wa zUfU|4^L_4~pUx7}p3r&KRh(B7M$b#<5@}EDdP|mBV{>knF%z=0k8}$WGi!|KeZCg7 zCr0L(H9P5<*M9$6(Aes!MGecWF|RLATpY`mJ8D_K_QXt2;<g`E`<60m-qkZNT9}9K zYkK!|<(B;7pt|K{(2E)Bp14n$HLL6S-~lbYYG$r?ZoRPa(&;^UZ$JLqfcm;m?h<>& zdYOmriEWixvs{@qmSsUN%PO|KT{~J&9IDKkz4a`$L%pJf#5G$lZk)Sfe%`AOlv(qt zGHWJjtmwr&bWf~OX3e9MPpy4Ry`q<8U|Zg<^~w{LC$rDJk97@GuV^80@2?g&PFeXv z-m6VSY^NvH7mA=)_C8jY)9#77o>=a<M`y=h)hl{27u*vMDYNF%+dfk=f?mud_rz|> ztm)BH{j=07T1c!rd{N`Ioo469ajY_HwpC`$3mRQ|F&Equn<%qphXEg!E>o}QWpiVh zzBam^n4!#?*~)<UntDYGiIXP3(ipY-jJ#Ka|FA_}e_~z+y_gH`iJb;~Sld*YH9uFc z=w;`zW#L+{Jn@z?Yc^B1$TsSgw={{v!~DkW*G$WMwZp>S)lN`m&EGUute3gqp1At9 z&(xG3RlZccq8BsCJz-aa?<lioh<Zf}i91)#MXxr!t+Qj4GHYJRV~J%i+tD%?+!Oat zKDG3YGHWhWujs{0a!<Uk%$lt=R-aO@Xd!X!5wkFZFZMiFdi|q=$}`m~dNCK=6CWtE zW@lyA{8YW77c<E{@ob)1WBG8jka+v{={VchS7uF^I-opDy`mTMv_0{$GHX_y{#-oU z>BTH>PYh9J%|flg6V)qPNE~|VG{lkvlv(pvW!7w{Y!P}f58V@rCFLTP(5uLsxB2&k z;#Ik#2zR=A<t@#8`jcl*L)_g`nKk<;v*xCFwl}?)v+s$i%B=Z}GHVXk4ARSv$*x(} zD^DD#%$l;U1_!EFw2<hYJp<RM3CgV5PMJ0Dt5@{mJ9wVhNtreJQ~$ksMK7CwyJlIh zJn=_m)_h7=&Lh<;T1fn5qdB<FZ>`Ll8<bhoUo%KAzJuq9m6!gmbl+ja>-VZx^s=>L z*DULmCr-;VYc^1?Xd%Hnju1NX%$jHOHCWV}-MtiV=QZz9L@2Z7pLu4DudDe6An#W~ zxLuhw{ghd=x}FJ>82R?>##aX}Zdhgwd#jydl_&GGo;x>`2SBg&Zk*9L?Dn2E#10~E z7jdng39~K|oTm_uP@c@M_56G<5%k*e;%SY`Hdqkb@Wl5-oGs!l5wwut8LB67%9EMB z=Zvm3mrd!Q*T{{hHEw+Oh1f<bF|2b&*RFc1PYVgZHcwWb%rfOOJS>7<3%@_T@t6Ly zV;i1O21NN&%9&VGqe}}3Mx_wWP@c>s%FDP-1iivmvl=@rpB~%r#PK42CE`n(b7uj; zcpSnc<;h&5{F145mcZ+aZ_I6cY42&V4Nv?`!~_weH6OH);FZX(n^|U!<;l=%!GF$A zZL|<6vxXKDyatExyz*o&Qm=+-&gm8AzLLhu6Bmg1wTQ=c<jw-Z-+dgWJefN*y4%=T z!E4i-7o|D(#E3kz=Ic6gT1fD|OS)*vlUb_sYM=;uUB7s7I(I!`xi~9D{9V1Gg#_<7 zl>wnVnT9fJejtKg&yQZ5)}SZ;SHuBYAD`3c(n5lF=OG-fJeeD{YM1Ib=(YT~g(;SJ z;#d)*MGO@|3km*S62fZAlbNdMbA<?cUANB5DZ+W;%Xu!&pS7ZBA>n^l`>8T(-dEPk zx*98bSwy|!oh*ua;#OtWtQ7ICdgU!mg7G+npD43txd<C8*2@^|iFNYlwa@E$Es492 zn$vh<@S=ug)_8iL@??Ie=gxPFpx5!=o!Qvp<5$`cYlygA#4{pT7YRo25c-{SczK|n zpT8r5Uc=9y-ni<q`LPX8ST4>UA_nRCIV~g@!S$}b@??f?@l4mwBIxz(=cYF%4|p-Q z;fdQsT)o*dT|?9>T1YU0>pK8t)~v34h7J+*T4S#ndS`TYHdeTnWW@R+cCxX8g@lXX zVVd$}PElUQ{vzo0#o8>5)r{DNCwfGDL&SIyw2)u~*SCYplX+PAC3lIS*IQqDp>as( z^w@?co)&Sdh<8QMLV^)I#`ds-GHV8FKIk>z#d)cXz6n}LxCkCDRG!Qo>eY^FgI@FZ zdL@mOCstD~&TmCn1_Ui67{Nn$N_jHJX>@N8L9Y*L3)7r?;&BlpMNGD_!qtETBX|gP z<;i@c%$nOp&}-*Ki_*F4iHAjeTIbcDMbJWm5j=!TlqYkb*2kS9=yk_W7o|1miJyo# zNSQS@gS3!f1P|e3<;e`ts@+-yy>9${Pl_d;cwa=Pi1*YhT1YU0hp>_IWNuOPc}@hq zzIE$@6yZFvwurk$SPly<Bzy$lS9vl+mGxq|IP|iJ`pB{@ih5!_WY%~~lVCj7PECr` zWwmji+F-qm!Jb$v&#bXL84^eDJ-0D=P*1}$YdrlMW!5~S=g!MS&};sxS&iRTUv5J@ zA>v69i$t(45{%&57k8^&%9rVh`!gcw_3#Zd8;5K-Kepis%dB}*gk>ktLV^)Igd3D6 z)6?&+u20kky<R+IW@FibFUB@JF-pYz{&#ils5WRJ!3ZA0IOWNFM)?dwMbK;4?PoO} z`0bq7h9@o&F<!(V5wwtC1P@`B@?;h%v&Npd)9d`T=QK{ZVpeR!6OW4+qD&6U_o0OZ zBX|fyhEFPeNBJeoMbPVo8(wG(IC*Alqdj3~2`wZT!L!)D+5HEXmx`d*pyTJIHd={I zbAlEUjNtJ&YQ=HT>u2vQNMq%R-G@&~1T7>O!Id+iJehtP-8Xa`^m=;QD{0O>ai@sQ zL~NlMq=f_{xZVv{p3K(Dtg$(#*PwfQ(z)x22_h!zyjn*DEhHGhm4&1{nU}OaEXRvp z`yStu)}SZ;AY!BcxU0+ZOK2g%2p+<0<;fhSJem0-=(TxxCB+g?%oVXh>wKjMT1YU0 z>zgoT*4(M+(@)1iuUj9PpCX(m9ue_)9^q&q;UoAh%B(qESuZcDSM;)oI{u+7ih5$P zGHbTaGi$u1NiZIVaAuxavz?BE^)d!~;$3Cde57Z>m+N^g2|ms8^beIM^QN9VTMi4o z_$1a7Pl%W&!k)O(LV^)ozeg#v=2<;Ix2zX>@p-K$P84yuh@Xj|g#;tGu7k>x+2WoN zUFTREcv{RSyq@@~h-H7wat&x9!3ZA0eae%0a`kOvmIb}|OxP0-iTI^5AT0NT77~o$ zA$&o3GFz>BAQJTAQ)EwkS;SIha{OFv&_aR{T;E@fKBjc2@=Jayf?j;??1^)fS+i2P zI9G~r7Ch%>1kYmo!mc&SMzCH!sct2Da)K5TjNnq(P@c?&I*y5IgI;{L?TM?$WVtvt zR<w{{1P|dfW!5~X(Y3Ln7oUcEVxWlGBCZfY3kgQ>EVE{{|JXL>M$wDU&pn|Wulfce z#;XllNHBs+3rTr0Pu@ME>qZgu;uCjIY$2js>%(S{77~o$Aq-HS%uKCXi$3(?GkQ;~ zBVv=<#Wl<Kp@jq^cnA}eC)1(K8e38H;!}N3C=;-DyW*9N6)hxu1b^_%p02ryqA?#1 zxds+di#z~N?4rz?P4dhdZ)p;Y$2xb<>go8bh||<7*2@^|iPu+-DzE#K2X&V(8awY5 zWqWSGx0*xP_4sqk_beJ#TQqyg(89~q*SuHu=5(gYw&|4NWvLaaN6j{@UebJ%S>G*v z?$Gkm(VwkfInB3Gyo+r0dgAW>yOqDT`fjleT1XUSYg@n9p1OAVjr)d2f|jCeZSWoC z5YAh<s&v?WN7t`=VaZT>74IUq5|5qxVCm>pqhcGZi$qb*dNpCE%}d+Q$##CHr6^k) zd@nhK`v=VI_~v!z*Wa13WGKCgH<nw8J&zjRB@L|DE7nD#C}+Le^@4G=e*29!qDo6q z&W}8)xP<WJZa3B5_|aMQPi8F{N-x!rb~w_AfY{)S*J>MYJfavYSeisZXT5r8lP}h< zT)uDYmA5nroeN3DC4?gn99-X_qg22C`6WXO!uoES9L26po}hjrEsn_PtXFRi98rHr z$D;bHg_l{1vbCqRl2lwm_}Pmi>vxu(t9@HzMXy3(rIlE?@96sH$Bm1tmUWRR%2}@t zS((lEx70?Vcw+TRM<MC36oh@QH>7VKTmRm7hIe#UPu`PWIxJZ;wFOVetNz&fGrM%; z!CP91tXC6s<U>l&mA)}OJMv;bVJfV!w;^nz)wKC}50<Qrc3xJmCw9_mIz+3g=#^>6 z*bx?9M)>2q`+&jqCpt>y0dummq}ZF73M)2GMQ=m+vm(!qia^#zJ1=X)6IV_dUVq}0 zwIe}GQ8t3dr~HuJZ>n|w=&bUHdD)6G#S=RYDy*n^?0&qx;`(C6ck5L<FKfdS>QVhF zMQbDUgSwjPFg!kev%S&Gj`DTqm;b&fi$2Bv$JAl5^<VThgqcSU@7VRWu|=<v4ol%> zy(-GtnK*L$&1(nGIWH2l6lEj)@m>4Ls?zxTjxN8V8MH{P=kjr^sKa8hvgob$q&WSx z(%u`7h;6j<vNk+%+9l&kJMKH$h$<~bIqy|Ez7Y1)Rc*I1pDo|4v)!(J#m=qNVPS7W zSoiIH%U|5&i?LVjysQmRY%A~nqO4c66lEiLd?5_d$bR$7n-{Spshp^S&SISx<!nB7 z((JAEz2SQ5V?RwVt)isdQhc5fd+45F=S9Oxx9A#03ki-$2=8fRe|5pQxN6&Z*>QN{ z>4784d!PB55mj1>vJo7^5Z--Ym-@vA4yoHwq&?19mck!*A9F;N1iez(stw0UKXLOF z*;OrBR4;cNOP}{9s<e<u<w#7F4&>tH**!zDM0LXEj#KIL-bB?~nndrN->J+U6~A-M z?p*ylwwHgd$YIU25V?MLi(a_arV-;C`;}gmF1fL};(Ojku0yX+ld6350Z}DEuT+jb z{9upu%4f|T7TZV`)s^;tU>m)OY9eGIk;;)+q55}HJJ!WyQ912n!OwdW)kMfbB9$YN z>$k`Cku26=p{K4=`n)$$^_E;uopdBjA3oR9uVxvh#cmEw%}k9*wueHbLFoTYolJVA za%|)8Ut6zU=;<emSdBuq|BK4$^S%jLNThNkj*(vfb!x}Dm@F!56tX>|_<7%iEF@An z5)WzLft{bo^z@U(8q9W#X;>+J-Zv2~rs8U2XFqv4er|J7X!ggwG16{XagP}zY>$9! zZ=SfKKvYT4E0tp#HW%9CAdXeCs4nd{knQusHhL4)M94xSl_O#G7jvF0s@L{5uo~<* z(&xR2DlH^ZITAb*lSTFBJ7UB((&xR2s<-63hmelMWsmPydnVg&LZfS5Hd_<(Hmn@F z^F4B7IRp?gHVJw)%T`m5#%gfB-$c_Ax@{j``{Uc_o0#Z`CT)b(Z|$hA(6oeZ+vV8W zv^JWb_f5oIrxVenjj(aDqqjDimLQ9blZ^!1>zgo3lW3OhbIm#S|HyX?QN{U{AzpnH zORzsqUj)5UIo70jRW8omWYO86xKgp$Vmp+i&-*51A(6_FP`oN5UZr{!KhnN!{|2GD zNThOXL-DGNc$Mnah*o0s(Q*76M69bxBszYsJAimjW&g=zR9rc+oL}3UvCI5g2zse! zcE*s<IaSKnpp3T9OSbNs<%zZiD|XIhYqKwcUd^(#r?pYW8ccO*O;l`MSiS!a5m!+n znzXf{`pZ~@$xHoivnzYwL|jFQXwpV#oXS{($t#;RTZ3^0=b!gYn8oHiBbsIVTz6zO z+{39(^R%CMHxOr2>m%)t)Hgw|RE{<29<GjixKx*|zhd95e}hn6BvLuHp?kPG?%`6s zS`%s4w||3BT_jRDwvk_*i+i|Kuf|N{rudbu!R+(CiD+pOiH@H)|EiYLPJi*kd}qN} zZr)$V|5oGQx_?jmDC&c>-(fV4(yVHS#9lvk$DjWO5iR+yx+<q#N=a0+-w~R1rCk{1 z#kLa^33{cyA=?r1j(fPd;~=5muPSk$YB{E#s`ZLqX~#;rv=H*n+VGZqcW4>)`&G8r zv&!kGnjLx5EA90xmli_a_ERm>LL%)<oH@oGWdyx!FWb0pbo6S@P5f_Ff9p@ROs}*@ za&+lM#LtXi>m*v{T=m;ewM?(HN3tv}MD#bpjw9}V89&MQ7LMh3^~qyQ?yi5VS4}UQ z&A0>Y|3l=fNM30dc$NLCja9_Is%3g{b@ff8JwRg(`OeL;%=O4N(q7T}(8en6p8fw2 z&AL3%Yn|uKRLksD+PODc*~8pj|5VGpyc7wFXwZhJX7fSI4-&!oPc0Ng^0M~gzOQm= zA>?g8)iNz4TF$F#1X|9k=DB36Anp#GIjZu4$gXHMlG**0t~9aSLS%s2phag!w)>^5 zx_)H4ROX(|HneX>CGHy>EzMqOuZv3DTeu+X-)c6xO)sA9eG{~h@NvG`P!<!5Rg`wQ zl|x%1_KFq~X@}ir_4#r5nacOYj$XX3<XCLO_Q;L<&g(;4gHL_5LT8Qr^dhS9L(K;* zB>XpF@=gT3Y|R%@v~PkI68uIl_9wMLufO*@rSZrf*>Utu&_aUWO!_wHwd;>hZNz=< z<<de#%+4!XNN8rWoq}`E;-6}nUYh5$g8L@CrAefnU5d(6uUN0OSH#4=33}NmeEqN5 z=UzX36SR;>d)ly9RU0eb5Aq7&??szfwM;KwKl&zUA(8H{i|W-Q`{{kx$16a7N1i#R zzq2S>jHq3yi?NFLr0IS>0cwL@jCO5_s`ZK%5*AJ4-l@&%W64KRM$Wzo^RhXy3M}r% zJ<nrpF;?bLB7PA6s+N7+y}Xj$OPjG7U7P;danLJ{ZeDL2qM8x3v=D82m5)`l*wNZq zll7v_aj=aRf+N!VIO4reB&_~otZe*>G4ur21n+}d)`xnOU8Cs5-%|P}yrp?}miAq8 zUCKvS$B<o}^EUFa;+{`gkBTcNEzMC-Eh6pz{>RSUrk5X|UPM)-{=~CA)kVTqb8|Ll zo^Wn?(yPPbcVvuksjS}z8OQW2wH-k(mg8Y`Z*pjPqjNr6xBsxNR2IRR)fX=92zs#` z+qiqxs?wWNj*e}xu2dG`&xN)Gy;zQIT%_mD?<n8E{=>RbS%i;|Z3%j@9NYMtp15B= z=B(HT>q=!2cK5OH`0QE|0*Go`uNLB%g9g_xEtO&$zOKAp5xhH>hES8JCW2lp$K&|w zypi?8%Fo5~igl&32!B5hqT1H0g?LYM@&1Nc?g#5iWfA&KMysIsJpn|utyf<}{@j^$ z<>kCr#qSAvik$Vz6ZB%4V->%Xv0fE*rLqVck&_?$Add|BSb2h8EXOwT87$j>SXU~G z;9YH+b5GEV<=94kCPu>7mESFkursuIx7?PX7t67Yd_`Fs@oX>ZO7)7c^;q03hXA5^ zuTC$PV;gy7h;6X0R2E@zrMO!T0Yr=pv2}W}9NWkvTx^4NrLqW%kHy_`iivS_+j_MS zd8D?pq{_NdSwxESu~#5sq>ioAi{(hDYSj^cs_FU~z4Gf-vs}sjGD6;VooeyQ&+zzp zPAt(CXS2n{HOl=)FAuG4wc)>WXiLzG<=Cw&bj3L`zecgHR2IQI&JfxX^kO--!7C2y zN@WqeFHPrF9O1TJEd;MPtSgm8`0usa67*s@9tW;Cfpw*_2!0dhuTgEiS_oWm)MoQr zwNw_tZxB+vvazbR^=cv3*EQ<n{2Il&Qdxxm1_4C1tyc@N&JE|+C$E=XqgYoei_jX( z&f_?`AgXP>`Xcfx4(rOxd9RA=N(gxyo}d@Yu~+$#$19HYs;DcKMc9ZmuTgCYda)ea z;5CYMrLqW{+2Wg*H0Nc*+j_MS{))r8^0Ej!LyPN5I(K6msdaj>9FGH6oGR-|Wf8U> z+h3#FdbJR^;#65zDvPj)(f%6M)~kicBb*(1m35`E2!8vSVqzStwq7kn9;xFsigl&3 z2!0!_D@JxTh-YG3uNERsO8kw;A_KpHX!FfPq(P|YytGpF8*uc>Yl>y6h3ajNN}(32 zcQYzb3l-f?EtG`iKNenk_oUKZEmUv5R0_3F@71J3I9F<+=jIBSdLO4!sD+Ydd%EIC zE%XqnY?@lA-V&-5YN4b(Atld_vAL3`-d(B`YN4b(VWV59h3bu}M3DA`6iK@ZMN+-z zm3l?m6H+~`6{@Ft`z#%~qcPGUNLjUJ%BptcdM7T8E@|He)k5{AUYaS=o}gN&-XBb7 z329GIEmUvRq;rY1Cwi%cR*Lt0NVgD4EwuOfTF{=LTBy{lDo_ip6l$T`)x2VgkCp@L z)k0~JZdhg6AxSF?HBl{;UfK<&Vw#OsuWy@bq2AIYq>EMQOD(kNWxEO<``x6g27+p# z^xER0nUz8<)VD#kP+CYxNvqOcEtFoitKhsb^W%|wf@-1kdUX34l|n7l6I2VOg@m-X zD(%%m>1F#H>g<TU@`P6lZF))VuTt!J?+L1f(#zU2l}DR%Pf#tC7826;s<c-NrI(Zu zbsTeI8=jzAD7|cM3bjyAP%V@e5>f=Kv{wtIm+G(R|FKt|pjs%sY<-x@qm7j(s21ui zO+p%CmA=$Mn_ilWipDOs;R&jR(#zJosXSV*JYiRZLM@aQ5>g#Quc#JEFMG?T=#?j^ z7D_Lzri!UNTCY4owNP3}NT&=lNVQOUDJrBH^aRyH>7~e1F_lN_l_#hcN(%`oo8fGy zS}45~LDSjp395zCOHsOFDv#DHPf#tC7824zLoA_MD81~Bogy-Lf@-1k%I?mRRx#S3 zTBxtf?&mT>>S>6(UM;lgCC$kccRfM1P<q)h6>6cLpjs#`B&4^7D-P8{>1FR171t<F zP%V^RHvffMs3)ivN(%`owBhPZwNQHLsMGb_6I2VOm#vjT)zcGH3#EmG-Io-199}K7 zx0l`d+qv6|@M@u`%kHBy!eUJGPNtVyXd<L?R4LR#*;}s`N-t?IRSLCGPf#tC780B% zuNF!#X-HKHwNOt`EtD1#JVQfxU235<sUfZ}Z9{rV3#(G7g|-rhN)7QSX#&zh!mrKa zr2YANuF*&@X?j%(wNOudU&JRO{!5yGw2)v_3gJ*`e@>P<<(?wwC2g`wp%&^1s)afW z2*zXG6G{8?7t+jpQb*2urLk5i)IvQmR>bupj?n1RLV{N!yKXksLg^)~xYR}qk<>zI zA;D{~_Fa<p=hf=f|7fh}CC$4uR-T|*sI!3ZcOR!o`}5*li<R|CyD!bTCr%Jy>aCNd zPDu+1-gkv?lC(eH(pj=rrVyLzl?GutcRgYI@R|zkL(;9Kg#_<7Ls%v4&zGg9yHBQc zo9dO8Vp@Zqpjs#`BzSl3)k5hdO~@2WJVCWkT1fEs60a6YFKJt*2<Hi^h0;R8|3*f& zP<mN(F4RIjLA6kCX%arR_fiW@^)d!~qL*4|BBXLuDbzweO|?*ZNqebMsD*lhYN51{ zU<CJSq4bi5RHaZ0^#s*IX(7P~?$tu+B`vH<p%&_iUrH_XD5)WuULP$a7{Np6%J<>5 zoqOpeO)uRcXKJCXgsD2-A%YeXE`o=t(*FE`v?g=q$W*Vi$uw4(TBs-fD&nME&yp4r zjNo1^lwQ(Ut0c8hTp6TOB(+f6@pc>OK(a0pjNmc0C$&&|Nh>b3(KkU02^Yb`FQgWF zuX?pYqwBnCv(i|3Vy1{YMVN9VEmFx#1S7at3#FH|`_kNa;$Kn={if#QV6{OD3C8&l zo|X1zf1M>eilCP?2-CUiiKj&Tr-(g8&_aT7UTQtk{`{`gLbnq^FKH>JHRy>8Z698# z>6&6MEhHGhy;>-}qzRc~i6^KQN(%`_aIY3hFKJt*2<Hi^h0;R8M{ufz(#v9Pp%&^1 zs)c$>li-!1MJ+Vd%NXp5UTUF<kjhb|Pz&|+tJ3~_P+EF#X3BWUOWI47LM_x2e-!bs z2-}~N77~o$Av`MW&x%w8ZO2=BNkghqsD*lBiHLPY*nYyakYEH4;V;tuTq!lge~O@& zw6H3LTBs*}DdHokh1zk@LV^)oii^_z+*hiOx#D7~SDIdxLM_x2R12kr1mnC{3#FH| z$ts0fs3)ivN(%`_aIY3hFKMh*3boMogsFwnLV^)Ii|vJ4D7~Z=m)dA03bjyLNHBtX zwNQFV^Dd2*C#V)m3kgPWuNF!#Y4@c$_XO2KX(7P~9>O)!{v0IjPtzBrmox~|Ip&F< zi1?|9uZp0B1S7bV@udCPt@U9$Dbq_@ifIjc;xZ8{v_ATapoIh@xKuo({rMeff37cr zUebh2vBVS0Mf{i6`AnTxw2)u~*FGlF{+y}kW08Sg(zZ;o%M(-!rG<o#;8Y8xm&Mvb zEz}cK3-y*J!7D?HT4<`5k=hfz)It-%r&*q+S}48vB-RuCyC;^WOMTB2{%9e=2(CRq zrTzIYsR&j@(2LJ&J+VUj@D7lQ;3XnxA;Ab9!gkXBTp~5ZT&XZUgX9xlPYe|Cu+$K3 zPgYt;FwTc?p|n3gk@lzQ4$_Oyggs&V@NOhk$E!uqLV^)oIz`g{951a&Q&y!HpCWsL zYN51{U<40gjMPGZES1f%YJ*;U?(B)<q!#+B)Ix6%K??~+@GQ0$YN7Pvlj>HYPz!Yy zJQ-&M58*MXg>Ibhs>^!$Y}*r53#EkwBe=e^l=kOmq~3b5j+|b68t#cbMSQ3kw9%!7 z1S7cK4VU)k8&aViErMQre(s4oM4YcP@j?-_kYEJY9=X!~T&4A4JKoZZPux9G5wV)~ z;mwt9(^ZB9BX|g%(*9hob^c?u;k@{SAJ>u)_7`!k2wSzRi%<0#!L<gZ{rLr{h1z`3 zi%<1EaleSi6|Zd1Vp>S}2u`(7dReS3@&G(RwNP(q61+0BsD-9_8G}9X*wf1By<uZz z0r_{v_y$*cV=U(4kf2v8%gYn0x@z_7ALTCDyOpLFW!eH!-JvKqnxC6*_EQk{UQ8t9 z#d1-TtW^-G%QOu#!Zctm`|JPaHD%sL#Ws?cbRQa~vLJiZuW^LD?WbC1T_jA)X1y=8 zYlB{<F|oe1CRA0_#c@Q{8n8B47YS3;Sv=^qHpf9P)5lmKoeXQEg-C7CLL%4XXw!!G zvP|OmwrqFbgtxR1s=;P9|EXs4L9bZOz3e?Ho6%N+mL_4xXLIEU{m16K>1D@c^J89Z ziK-E_kVyJP>{V=oUN$%O$J%I1#5QOlk@SmN+Mri{j>R_G60r?hNMs{x<A~AKf2!qH zFB`jJJ@z7E8@{f%1`DE+oe#a+$cR+0yjbp|4b&B5No+&MSFyQjJr1>z>eVsjx-W5^ z_d&2O5}K!q%~fj~^wQkqx-W6g`yf~s2^~Yl=Bl*~dg&ZX`YwGFw2;tTXhg80G<)__ zEqgDEpoLd2A_L-zqNRmU4f&i`GbFA-)EkN1E7sH`dbg2VnuHyni;2D4h=d&zVxlKf z8?1|j%~MOH7L|=vQLoJnVtXG1>mp(2Tl*^xz4CJ`9#h{0EhMs4U?bdnK3ctOgyTBb HzXkDsxE8&z literal 0 HcmV?d00001 diff --git a/resources/profiles/RH3D/filament/Generic ABS @VIRTU E3.json b/resources/profiles/RH3D/filament/Generic ABS @VIRTU E3.json new file mode 100644 index 0000000000..be6f94b304 --- /dev/null +++ b/resources/profiles/RH3D/filament/Generic ABS @VIRTU E3.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic ABS @VIRTU E3", + "inherits": "fdm_filament_abs", + "from": "system", + "setting_id": "AULhQhVApTASqF2p", + "filament_id": "OFY9muEs", + "instantiation": "true", + "compatible_printers": [ + "VIRTU E3 - 0.2 nozzle", + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/filament/Generic ASA @VIRTU E3.json b/resources/profiles/RH3D/filament/Generic ASA @VIRTU E3.json new file mode 100644 index 0000000000..c2626f57c6 --- /dev/null +++ b/resources/profiles/RH3D/filament/Generic ASA @VIRTU E3.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic ASA @VIRTU E3", + "inherits": "fdm_filament_asa", + "from": "system", + "setting_id": "yJa8PC5f8c4uYgny", + "filament_id": "OFLPAxz3", + "instantiation": "true", + "compatible_printers": [ + "VIRTU E3 - 0.2 nozzle", + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/filament/Generic PCCF @VIRTU E3.json b/resources/profiles/RH3D/filament/Generic PCCF @VIRTU E3.json new file mode 100644 index 0000000000..c8a7f3f800 --- /dev/null +++ b/resources/profiles/RH3D/filament/Generic PCCF @VIRTU E3.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic PCCF @VIRTU E3", + "inherits": "fdm_filament_pccf", + "from": "system", + "setting_id": "5byL7KQPKyybDAgQ", + "filament_id": "OFC5f4Ay", + "instantiation": "true", + "compatible_printers": [ + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/filament/Generic PETG @VIRTU E3.json b/resources/profiles/RH3D/filament/Generic PETG @VIRTU E3.json new file mode 100644 index 0000000000..2e39f9e1d9 --- /dev/null +++ b/resources/profiles/RH3D/filament/Generic PETG @VIRTU E3.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PETG @VIRTU E3", + "inherits": "fdm_filament_petg", + "from": "system", + "setting_id": "OAN1Ozk75r0ODvVw", + "filament_id": "OFYPdQJh", + "instantiation": "true", + "compatible_printers": [ + "VIRTU E3 - 0.2 nozzle", + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/filament/Generic PLA @VIRTU E3.json b/resources/profiles/RH3D/filament/Generic PLA @VIRTU E3.json new file mode 100644 index 0000000000..394a92f0c8 --- /dev/null +++ b/resources/profiles/RH3D/filament/Generic PLA @VIRTU E3.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PLA @VIRTU E3", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "DgSFTqNWfJEp0w9f", + "filament_id": "OFDSrzZ8", + "instantiation": "true", + "compatible_printers": [ + "VIRTU E3 - 0.2 nozzle", + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/filament/Generic TPU @VIRTU E3.json b/resources/profiles/RH3D/filament/Generic TPU @VIRTU E3.json new file mode 100644 index 0000000000..ff816313da --- /dev/null +++ b/resources/profiles/RH3D/filament/Generic TPU @VIRTU E3.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Generic TPU @VIRTU E3", + "inherits": "fdm_filament_tpu", + "from": "system", + "setting_id": "ifG0f5hgJ7L9zw34", + "filament_id": "OFgbpcy9", + "instantiation": "true", + "compatible_printers": [ + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/filament/fdm_filament_abs.json b/resources/profiles/RH3D/filament/fdm_filament_abs.json index f4ab005733..2aab3d25ba 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_abs.json +++ b/resources/profiles/RH3D/filament/fdm_filament_abs.json @@ -26,10 +26,10 @@ "55" ], "fan_cooling_layer_time": [ - "10" + "12" ], "filament_max_volumetric_speed": [ - "32" + "24" ], "filament_type": [ "ABS" @@ -75,9 +75,9 @@ "275" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ - "2" + "4" ] } diff --git a/resources/profiles/RH3D/filament/fdm_filament_asa.json b/resources/profiles/RH3D/filament/fdm_filament_asa.json index ac03beef13..cbf4f5dc36 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_asa.json +++ b/resources/profiles/RH3D/filament/fdm_filament_asa.json @@ -26,10 +26,10 @@ "55" ], "fan_cooling_layer_time": [ - "10" + "12" ], "filament_max_volumetric_speed": [ - "32" + "24" ], "filament_type": [ "ASA" @@ -54,7 +54,7 @@ "50" ], "fan_min_speed": [ - "10" + "15" ], "overhang_fan_threshold": [ "25%" @@ -75,9 +75,9 @@ "275" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ - "2" + "4" ] } diff --git a/resources/profiles/RH3D/filament/fdm_filament_common.json b/resources/profiles/RH3D/filament/fdm_filament_common.json index 576ae24a48..fe143ce05b 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_common.json +++ b/resources/profiles/RH3D/filament/fdm_filament_common.json @@ -22,7 +22,7 @@ "60" ], "overhang_fan_threshold": [ - "95%" + "25%" ], "overhang_fan_speed": [ "100" @@ -40,10 +40,10 @@ "1" ], "reduce_fan_stop_start_freq": [ - "0" + "1" ], "fan_cooling_layer_time": [ - "15" + "20" ], "filament_cost": [ "0" @@ -51,6 +51,9 @@ "filament_density": [ "0" ], + "filament_change_length": [ + "0" + ], "filament_deretraction_speed": [ "nil" ], @@ -61,7 +64,7 @@ "10" ], "filament_minimal_purge_on_wipe_tower": [ - "40" + "50" ], "filament_retraction_minimum_travel": [ "nil" @@ -115,13 +118,13 @@ "100" ], "fan_min_speed": [ - "10" + "20" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ - "3" + "7" ], "filament_start_gcode": [ "; Filament gcode\n" diff --git a/resources/profiles/RH3D/filament/fdm_filament_pccf.json b/resources/profiles/RH3D/filament/fdm_filament_pccf.json index 4296da76c5..401ab2eb23 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_pccf.json +++ b/resources/profiles/RH3D/filament/fdm_filament_pccf.json @@ -26,7 +26,7 @@ "55" ], "fan_cooling_layer_time": [ - "10" + "12" ], "filament_max_volumetric_speed": [ "8" @@ -75,9 +75,9 @@ "330" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ - "2" + "4" ] } diff --git a/resources/profiles/RH3D/filament/fdm_filament_petg.json b/resources/profiles/RH3D/filament/fdm_filament_petg.json index aaa0f62357..8a69c94f7d 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_petg.json +++ b/resources/profiles/RH3D/filament/fdm_filament_petg.json @@ -23,10 +23,10 @@ "90" ], "fan_cooling_layer_time": [ - "10" + "15" ], "filament_max_volumetric_speed": [ - "26" + "18" ], "filament_type": [ "PETG" @@ -72,9 +72,9 @@ "260" ], "slow_down_min_speed": [ - "12" + "20" ], "slow_down_layer_time": [ - "3" + "6" ] } diff --git a/resources/profiles/RH3D/filament/fdm_filament_pla.json b/resources/profiles/RH3D/filament/fdm_filament_pla.json index 873a78461b..770af83296 100644 --- a/resources/profiles/RH3D/filament/fdm_filament_pla.json +++ b/resources/profiles/RH3D/filament/fdm_filament_pla.json @@ -72,9 +72,9 @@ "250" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ - "6" + "8" ] } diff --git a/resources/profiles/RH3D/machine/VIRTU E3 - 0.2 nozzle.json b/resources/profiles/RH3D/machine/VIRTU E3 - 0.2 nozzle.json new file mode 100644 index 0000000000..8814f25e0c --- /dev/null +++ b/resources/profiles/RH3D/machine/VIRTU E3 - 0.2 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "machine", + "name": "VIRTU E3 - 0.2 nozzle", + "printer_model": "VIRTU E3", + "inherits": "fdm_common_VIRTU E3", + "from": "system", + "setting_id": "NEqwtUJ9txtcf1vY", + "instantiation": "true", + "default_print_profile": "0.10mm Standard @VIRTU E3", + "nozzle_diameter": [ + "0.2" + ], + "printer_variant": "0.2" +} diff --git a/resources/profiles/RH3D/machine/VIRTU E3 - 0.3 nozzle.json b/resources/profiles/RH3D/machine/VIRTU E3 - 0.3 nozzle.json new file mode 100644 index 0000000000..4c27b80bb8 --- /dev/null +++ b/resources/profiles/RH3D/machine/VIRTU E3 - 0.3 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "machine", + "name": "VIRTU E3 - 0.3 nozzle", + "printer_model": "VIRTU E3", + "inherits": "fdm_common_VIRTU E3", + "from": "system", + "setting_id": "3PjlEiZxmdLJjoGw", + "instantiation": "true", + "default_print_profile": "0.15mm Standard @VIRTU E3", + "nozzle_diameter": [ + "0.3" + ], + "printer_variant": "0.3" +} diff --git a/resources/profiles/RH3D/machine/VIRTU E3 - 0.4 nozzle.json b/resources/profiles/RH3D/machine/VIRTU E3 - 0.4 nozzle.json new file mode 100644 index 0000000000..7b02993a2b --- /dev/null +++ b/resources/profiles/RH3D/machine/VIRTU E3 - 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "machine", + "name": "VIRTU E3 - 0.4 nozzle", + "printer_model": "VIRTU E3", + "inherits": "fdm_common_VIRTU E3", + "from": "system", + "setting_id": "mYCTx4ovF6z0STDL", + "instantiation": "true", + "default_print_profile": "0.20mm Standard @VIRTU E3", + "nozzle_diameter": [ + "0.4" + ], + "printer_variant": "0.4" +} diff --git a/resources/profiles/RH3D/machine/VIRTU E3 - 0.5 nozzle.json b/resources/profiles/RH3D/machine/VIRTU E3 - 0.5 nozzle.json new file mode 100644 index 0000000000..660dd35305 --- /dev/null +++ b/resources/profiles/RH3D/machine/VIRTU E3 - 0.5 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "machine", + "name": "VIRTU E3 - 0.5 nozzle", + "printer_model": "VIRTU E3", + "inherits": "fdm_common_VIRTU E3", + "from": "system", + "setting_id": "iMnENFt2zw6UTcbM", + "instantiation": "true", + "default_print_profile": "0.20mm Standard @VIRTU E3", + "nozzle_diameter": [ + "0.5" + ], + "printer_variant": "0.5" +} diff --git a/resources/profiles/RH3D/machine/VIRTU E3 - 0.6 nozzle.json b/resources/profiles/RH3D/machine/VIRTU E3 - 0.6 nozzle.json new file mode 100644 index 0000000000..bce4e91736 --- /dev/null +++ b/resources/profiles/RH3D/machine/VIRTU E3 - 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "machine", + "name": "VIRTU E3 - 0.6 nozzle", + "printer_model": "VIRTU E3", + "inherits": "fdm_common_VIRTU E3", + "from": "system", + "setting_id": "T1RuDWhyFkI1GH1h", + "instantiation": "true", + "default_print_profile": "0.25mm Standard @VIRTU E3", + "nozzle_diameter": [ + "0.6" + ], + "printer_variant": "0.6" +} diff --git a/resources/profiles/RH3D/machine/VIRTU E3.json b/resources/profiles/RH3D/machine/VIRTU E3.json new file mode 100644 index 0000000000..f34fa3aefe --- /dev/null +++ b/resources/profiles/RH3D/machine/VIRTU E3.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "VIRTU E3", + "nozzle_diameter": "0.2;0.3;0.4;0.5;0.6", + "bed_model": "VIRTU-bed.stl", + "bed_texture": "VIRTU-bed-texture.svg", + "model_id": "VIRTUE3", + "family": "RH3D", + "hotend_model": "", + "machine_tech": "FFF", + "default_materials": "Generic ABS @VIRTU E3;Generic ASA @VIRTU E3;Generic PCCF @VIRTU E3;Generic PETG @VIRTU E3;Generic PLA @VIRTU E3;Generic TPU @VIRTU E3" +} diff --git a/resources/profiles/RH3D/machine/fdm_common_E3NG v1.2S.json b/resources/profiles/RH3D/machine/fdm_common_E3NG v1.2S.json index 0b952c73f3..8479a4e451 100644 --- a/resources/profiles/RH3D/machine/fdm_common_E3NG v1.2S.json +++ b/resources/profiles/RH3D/machine/fdm_common_E3NG v1.2S.json @@ -7,6 +7,7 @@ "extruder_clearance_height_to_lid": "140", "extruder_clearance_height_to_rod": "36", "extruder_clearance_radius": "65", + "default_filament_profile": "Generic PLA @E3NG v1.2S", "machine_max_acceleration_e": [ "7500", "7500" @@ -40,12 +41,12 @@ "25" ], "machine_max_speed_x": [ - "400", - "400" + "600", + "600" ], "machine_max_speed_y": [ - "400", - "400" + "600", + "600" ], "machine_max_speed_z": [ "12", diff --git a/resources/profiles/RH3D/machine/fdm_common_VIRTU E3.json b/resources/profiles/RH3D/machine/fdm_common_VIRTU E3.json new file mode 100644 index 0000000000..e825838811 --- /dev/null +++ b/resources/profiles/RH3D/machine/fdm_common_VIRTU E3.json @@ -0,0 +1,71 @@ +{ + "type": "machine", + "name": "fdm_common_VIRTU E3", + "inherits": "fdm_machine_common", + "from": "system", + "instantiation": "false", + "extruder_clearance_height_to_lid": "140", + "extruder_clearance_height_to_rod": "36", + "extruder_clearance_radius": "65", + "default_filament_profile": "Generic PLA @VIRTU E3", + "machine_max_acceleration_e": [ + "7500", + "7500" + ], + "machine_max_acceleration_extruding": [ + "35000", + "35000" + ], + "machine_max_acceleration_retracting": [ + "35000", + "35000" + ], + "machine_max_acceleration_travel": [ + "10000", + "10000" + ], + "machine_max_acceleration_x": [ + "35000", + "35000" + ], + "machine_max_acceleration_y": [ + "35000", + "35000" + ], + "machine_max_acceleration_z": [ + "2000", + "2000" + ], + "machine_max_speed_e": [ + "25", + "25" + ], + "machine_max_speed_x": [ + "900", + "900" + ], + "machine_max_speed_y": [ + "900", + "900" + ], + "machine_max_speed_z": [ + "400", + "400" + ], + "printable_area": [ + "0x0", + "230x0", + "230x232", + "0x232" + ], + "printable_height": "232", + "printer_model": "VIRTU E3", + "printer_notes": [ + "Design by RH3D" + ], + "retract_before_wipe": "80%", + "retract_length_toolchange": "0", + "retract_lift_below": "230", + "retraction_minimum_travel": "1.5", + "travel_slope": "1" +} diff --git a/resources/profiles/RH3D/machine/fdm_machine_common.json b/resources/profiles/RH3D/machine/fdm_machine_common.json index 4a3245b701..0f23916d97 100644 --- a/resources/profiles/RH3D/machine/fdm_machine_common.json +++ b/resources/profiles/RH3D/machine/fdm_machine_common.json @@ -5,12 +5,11 @@ "instantiation": "false", "printer_structure": "corexy", "gcode_flavor": "klipper", - "machine_start_gcode": "M104 S0 ; Stops OrcaSlicer from sending temp waits separately\nM140 S0\nPRINT_START EXTRUDER=[first_layer_temperature] BED=[first_layer_bed_temperature]\n; Start of actual GCode for the print", + "machine_start_gcode": "M104 S0 ; Stops OrcaSlicer from sending temp waits separately\nM140 S0\nPRINT_START EXTRUDER=[first_layer_temperature] BED=[first_layer_bed_temperature] CHAMBER=[chamber_temperature] PROFILE=[notes]\n; Start of actual GCode for the print", "machine_end_gcode": "PRINT_END", "extruder_colour": "#02aba2", "extruder_offset": "0x0", "emit_machine_limits_to_gcode": "0", - "default_filament_profile": "Generic PLA @E3NG v1.2S", "machine_min_extruding_rate": [ "0", "0" @@ -47,7 +46,7 @@ "320x240/PNG", "640x480/PNG" ], - "change_filament_gcode": "PAUSE\nG1 E1.0 F300 ; prime after color change", + "change_filament_gcode": "G1 E1.0 F300 ; prime after color change", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0", "layer_change_gcode": ";AFTER_LAYER_CHANGE", "machine_pause_gcode": "PAUSE\n", diff --git a/resources/profiles/RH3D/process/0.10mm Fast @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.10mm Fast @E3NG v1.2S.json new file mode 100644 index 0000000000..f8103a4582 --- /dev/null +++ b/resources/profiles/RH3D/process/0.10mm Fast @E3NG v1.2S.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.10mm Fast @E3NG v1.2S", + "inherits": "process_Fast_E3NG v1.2S", + "from": "system", + "setting_id": "zaYFBkbfYXxSz5eU", + "instantiation": "true", + "layer_height": "0.1", + "initial_layer_print_height": "0.15", + "compatible_printers": [ + "E3NG v1.2S - 0.2 nozzle", + "E3NG v1.2S - 0.3 nozzle", + "E3NG v1.2S - 0.4 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.10mm Fast @VIRTU E3.json b/resources/profiles/RH3D/process/0.10mm Fast @VIRTU E3.json new file mode 100644 index 0000000000..a72467ecfd --- /dev/null +++ b/resources/profiles/RH3D/process/0.10mm Fast @VIRTU E3.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.10mm Fast @VIRTU E3", + "inherits": "process_Fast_VIRTU E3", + "from": "system", + "setting_id": "nWpKy9NYLGggsHlM", + "instantiation": "true", + "layer_height": "0.1", + "initial_layer_print_height": "0.15", + "compatible_printers": [ + "VIRTU E3 - 0.2 nozzle", + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.10mm Slow @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.10mm Slow @E3NG v1.2S.json new file mode 100644 index 0000000000..c853471ef9 --- /dev/null +++ b/resources/profiles/RH3D/process/0.10mm Slow @E3NG v1.2S.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.10mm Slow @E3NG v1.2S", + "inherits": "process_Slow_E3NG v1.2S", + "from": "system", + "setting_id": "W35S1kwfonBFrHAy", + "instantiation": "true", + "layer_height": "0.1", + "initial_layer_print_height": "0.15", + "compatible_printers": [ + "E3NG v1.2S - 0.2 nozzle", + "E3NG v1.2S - 0.3 nozzle", + "E3NG v1.2S - 0.4 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.10mm Slow @VIRTU E3.json b/resources/profiles/RH3D/process/0.10mm Slow @VIRTU E3.json new file mode 100644 index 0000000000..5c33e2e8f8 --- /dev/null +++ b/resources/profiles/RH3D/process/0.10mm Slow @VIRTU E3.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.10mm Slow @VIRTU E3", + "inherits": "process_Slow_VIRTU E3", + "from": "system", + "setting_id": "br9ISgiSBZTgKEqn", + "instantiation": "true", + "layer_height": "0.1", + "initial_layer_print_height": "0.15", + "compatible_printers": [ + "VIRTU E3 - 0.2 nozzle", + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.10mm Standard @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.10mm Standard @E3NG v1.2S.json index dcaecb6b0b..86e7415897 100644 --- a/resources/profiles/RH3D/process/0.10mm Standard @E3NG v1.2S.json +++ b/resources/profiles/RH3D/process/0.10mm Standard @E3NG v1.2S.json @@ -1,7 +1,7 @@ { "type": "process", "name": "0.10mm Standard @E3NG v1.2S", - "inherits": "process_common_E3NG v1.2S", + "inherits": "process_Standard_E3NG v1.2S", "from": "system", "setting_id": "YhKounYUzB4FB9Em", "instantiation": "true", diff --git a/resources/profiles/RH3D/process/0.10mm Standard @VIRTU E3.json b/resources/profiles/RH3D/process/0.10mm Standard @VIRTU E3.json new file mode 100644 index 0000000000..675d8b3646 --- /dev/null +++ b/resources/profiles/RH3D/process/0.10mm Standard @VIRTU E3.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.10mm Standard @VIRTU E3", + "inherits": "process_Standard_VIRTU E3", + "from": "system", + "setting_id": "qf2uqEsVBJLb87TW", + "instantiation": "true", + "layer_height": "0.1", + "initial_layer_print_height": "0.15", + "compatible_printers": [ + "VIRTU E3 - 0.2 nozzle", + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.15mm Fast @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.15mm Fast @E3NG v1.2S.json new file mode 100644 index 0000000000..8a301ed822 --- /dev/null +++ b/resources/profiles/RH3D/process/0.15mm Fast @E3NG v1.2S.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "name": "0.15mm Fast @E3NG v1.2S", + "inherits": "process_Fast_E3NG v1.2S", + "from": "system", + "setting_id": "O4zDtFKxom68L07o", + "instantiation": "true", + "layer_height": "0.15", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "E3NG v1.2S - 0.2 nozzle", + "E3NG v1.2S - 0.3 nozzle", + "E3NG v1.2S - 0.4 nozzle", + "E3NG v1.2S - 0.5 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.15mm Fast @VIRTU E3.json b/resources/profiles/RH3D/process/0.15mm Fast @VIRTU E3.json new file mode 100644 index 0000000000..8c4040d1bb --- /dev/null +++ b/resources/profiles/RH3D/process/0.15mm Fast @VIRTU E3.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "name": "0.15mm Fast @VIRTU E3", + "inherits": "process_Fast_VIRTU E3", + "from": "system", + "setting_id": "G0HkboSFDavmOAU4", + "instantiation": "true", + "layer_height": "0.15", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "VIRTU E3 - 0.2 nozzle", + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.15mm Slow @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.15mm Slow @E3NG v1.2S.json new file mode 100644 index 0000000000..f3693f8cbb --- /dev/null +++ b/resources/profiles/RH3D/process/0.15mm Slow @E3NG v1.2S.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "name": "0.15mm Slow @E3NG v1.2S", + "inherits": "process_Slow_E3NG v1.2S", + "from": "system", + "setting_id": "zfmqi9qahym79w71", + "instantiation": "true", + "layer_height": "0.15", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "E3NG v1.2S - 0.2 nozzle", + "E3NG v1.2S - 0.3 nozzle", + "E3NG v1.2S - 0.4 nozzle", + "E3NG v1.2S - 0.5 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.15mm Slow @VIRTU E3.json b/resources/profiles/RH3D/process/0.15mm Slow @VIRTU E3.json new file mode 100644 index 0000000000..bac33744bb --- /dev/null +++ b/resources/profiles/RH3D/process/0.15mm Slow @VIRTU E3.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "name": "0.15mm Slow @VIRTU E3", + "inherits": "process_Slow_VIRTU E3", + "from": "system", + "setting_id": "6RvsW4p0AVsAXYlf", + "instantiation": "true", + "layer_height": "0.15", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "VIRTU E3 - 0.2 nozzle", + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.15mm Standard @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.15mm Standard @E3NG v1.2S.json index deaded91ab..0c1a8367a8 100644 --- a/resources/profiles/RH3D/process/0.15mm Standard @E3NG v1.2S.json +++ b/resources/profiles/RH3D/process/0.15mm Standard @E3NG v1.2S.json @@ -1,7 +1,7 @@ { "type": "process", "name": "0.15mm Standard @E3NG v1.2S", - "inherits": "process_common_E3NG v1.2S", + "inherits": "process_Standard_E3NG v1.2S", "from": "system", "setting_id": "jYPd3BedSG1oG6S3", "instantiation": "true", diff --git a/resources/profiles/RH3D/process/0.15mm Standard @VIRTU E3.json b/resources/profiles/RH3D/process/0.15mm Standard @VIRTU E3.json new file mode 100644 index 0000000000..de6a3e1ddf --- /dev/null +++ b/resources/profiles/RH3D/process/0.15mm Standard @VIRTU E3.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "name": "0.15mm Standard @VIRTU E3", + "inherits": "process_Standard_VIRTU E3", + "from": "system", + "setting_id": "NFY8TFxasqh2wUvX", + "instantiation": "true", + "layer_height": "0.15", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "VIRTU E3 - 0.2 nozzle", + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.20mm Fast @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.20mm Fast @E3NG v1.2S.json index bca60006c4..61fd819a39 100644 --- a/resources/profiles/RH3D/process/0.20mm Fast @E3NG v1.2S.json +++ b/resources/profiles/RH3D/process/0.20mm Fast @E3NG v1.2S.json @@ -1,49 +1,16 @@ { "type": "process", "name": "0.20mm Fast @E3NG v1.2S", - "inherits": "process_common_E3NG v1.2S", + "inherits": "process_Fast_E3NG v1.2S", "from": "system", "setting_id": "S7z7EwSYYbjVWRK0", "instantiation": "true", "layer_height": "0.2", "initial_layer_print_height": "0.2", "compatible_printers": [ + "E3NG v1.2S - 0.3 nozzle", "E3NG v1.2S - 0.4 nozzle", "E3NG v1.2S - 0.5 nozzle", "E3NG v1.2S - 0.6 nozzle" - ], - "reduce_crossing_wall": "0", - "bridge_speed": "75", - "default_acceleration": "10000", - "initial_layer_acceleration": "7500", - "top_surface_acceleration": "7500", - "travel_acceleration": "10000", - "inner_wall_acceleration": "10000", - "outer_wall_acceleration": "7500", - "bridge_acceleration": "5000", - "sparse_infill_acceleration": "12500", - "internal_solid_infill_acceleration": "10000", - "infill_combination": "1", - "ironing_speed": "150", - "overhang_1_4_speed": "100", - "overhang_2_4_speed": "50", - "overhang_3_4_speed": "30", - "overhang_4_4_speed": "15", - "support_interface_speed": "120", - "top_surface_line_width": "100%", - "sparse_infill_line_width": "125%", - "internal_solid_infill_line_width": "125%", - "seam_position": "nearest", - "initial_layer_speed": "100", - "initial_layer_infill_speed": "150", - "outer_wall_speed": "300", - "inner_wall_speed": "340", - "small_perimeter_speed": "300", - "sparse_infill_speed": "400", - "internal_solid_infill_speed": "340", - "top_surface_speed": "300", - "gap_infill_speed": "300", - "travel_speed": "400", - "only_one_wall_top": "0", - "only_one_wall_first_layer": "0" + ] } diff --git a/resources/profiles/RH3D/process/0.20mm Fast @VIRTU E3.json b/resources/profiles/RH3D/process/0.20mm Fast @VIRTU E3.json new file mode 100644 index 0000000000..1c182fd117 --- /dev/null +++ b/resources/profiles/RH3D/process/0.20mm Fast @VIRTU E3.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "name": "0.20mm Fast @VIRTU E3", + "inherits": "process_Fast_VIRTU E3", + "from": "system", + "setting_id": "cSol8x6vF51GUloq", + "instantiation": "true", + "layer_height": "0.2", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.20mm Slow @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.20mm Slow @E3NG v1.2S.json index 45be150670..4894fc3637 100644 --- a/resources/profiles/RH3D/process/0.20mm Slow @E3NG v1.2S.json +++ b/resources/profiles/RH3D/process/0.20mm Slow @E3NG v1.2S.json @@ -1,49 +1,16 @@ { "type": "process", "name": "0.20mm Slow @E3NG v1.2S", - "inherits": "process_common_E3NG v1.2S", + "inherits": "process_Slow_E3NG v1.2S", "from": "system", "setting_id": "JH4jITLGT8tbtnu1", "instantiation": "true", "layer_height": "0.2", "initial_layer_print_height": "0.2", "compatible_printers": [ + "E3NG v1.2S - 0.3 nozzle", "E3NG v1.2S - 0.4 nozzle", "E3NG v1.2S - 0.5 nozzle", "E3NG v1.2S - 0.6 nozzle" - ], - "reduce_crossing_wall": "1", - "bridge_speed": "40", - "default_acceleration": "3000", - "initial_layer_acceleration": "3000", - "top_surface_acceleration": "2000", - "travel_acceleration": "3000", - "inner_wall_acceleration": "3000", - "outer_wall_acceleration": "3000", - "bridge_acceleration": "2000", - "sparse_infill_acceleration": "4000", - "internal_solid_infill_acceleration": "3000", - "infill_combination": "0", - "ironing_speed": "80", - "overhang_1_4_speed": "60", - "overhang_2_4_speed": "35", - "overhang_3_4_speed": "20", - "overhang_4_4_speed": "8", - "support_interface_speed": "60", - "top_surface_line_width": "100%", - "sparse_infill_line_width": "125%", - "internal_solid_infill_line_width": "125%", - "seam_position": "aligned", - "initial_layer_speed": "60", - "initial_layer_infill_speed": "75", - "outer_wall_speed": "140", - "inner_wall_speed": "140", - "small_perimeter_speed": "140", - "sparse_infill_speed": "140", - "internal_solid_infill_speed": "140", - "top_surface_speed": "140", - "gap_infill_speed": "140", - "travel_speed": "400", - "only_one_wall_top": "1", - "only_one_wall_first_layer": "1" + ] } diff --git a/resources/profiles/RH3D/process/0.20mm Slow @VIRTU E3.json b/resources/profiles/RH3D/process/0.20mm Slow @VIRTU E3.json new file mode 100644 index 0000000000..1ee87921aa --- /dev/null +++ b/resources/profiles/RH3D/process/0.20mm Slow @VIRTU E3.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "name": "0.20mm Slow @VIRTU E3", + "inherits": "process_Slow_VIRTU E3", + "from": "system", + "setting_id": "NlGjHdIRQnp9PCfc", + "instantiation": "true", + "layer_height": "0.2", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.20mm Standard @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.20mm Standard @E3NG v1.2S.json index 92ddcd9109..95b149cfba 100644 --- a/resources/profiles/RH3D/process/0.20mm Standard @E3NG v1.2S.json +++ b/resources/profiles/RH3D/process/0.20mm Standard @E3NG v1.2S.json @@ -1,10 +1,12 @@ { "type": "process", "name": "0.20mm Standard @E3NG v1.2S", - "inherits": "process_common_E3NG v1.2S", + "inherits": "process_Standard_E3NG v1.2S", "from": "system", "setting_id": "XgaEHNWBsBQoPjbP", "instantiation": "true", + "layer_height": "0.2", + "initial_layer_print_height": "0.2", "compatible_printers": [ "E3NG v1.2S - 0.3 nozzle", "E3NG v1.2S - 0.4 nozzle", diff --git a/resources/profiles/RH3D/process/0.20mm Standard @VIRTU E3.json b/resources/profiles/RH3D/process/0.20mm Standard @VIRTU E3.json new file mode 100644 index 0000000000..ad7ac64a0b --- /dev/null +++ b/resources/profiles/RH3D/process/0.20mm Standard @VIRTU E3.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "name": "0.20mm Standard @VIRTU E3", + "inherits": "process_Standard_VIRTU E3", + "from": "system", + "setting_id": "F0hx03mNji9yec5G", + "instantiation": "true", + "layer_height": "0.2", + "initial_layer_print_height": "0.2", + "compatible_printers": [ + "VIRTU E3 - 0.3 nozzle", + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.25mm Fast @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.25mm Fast @E3NG v1.2S.json index bf910f676a..f9442067d1 100644 --- a/resources/profiles/RH3D/process/0.25mm Fast @E3NG v1.2S.json +++ b/resources/profiles/RH3D/process/0.25mm Fast @E3NG v1.2S.json @@ -1,7 +1,7 @@ { "type": "process", "name": "0.25mm Fast @E3NG v1.2S", - "inherits": "process_common_E3NG v1.2S", + "inherits": "process_Fast_E3NG v1.2S", "from": "system", "setting_id": "QqkHiZPjk3QWyKKN", "instantiation": "true", @@ -11,39 +11,5 @@ "E3NG v1.2S - 0.4 nozzle", "E3NG v1.2S - 0.5 nozzle", "E3NG v1.2S - 0.6 nozzle" - ], - "reduce_crossing_wall": "0", - "bridge_speed": "75", - "default_acceleration": "10000", - "initial_layer_acceleration": "7500", - "top_surface_acceleration": "7500", - "travel_acceleration": "10000", - "inner_wall_acceleration": "10000", - "outer_wall_acceleration": "7500", - "bridge_acceleration": "5000", - "sparse_infill_acceleration": "12500", - "internal_solid_infill_acceleration": "10000", - "infill_combination": "1", - "ironing_speed": "150", - "overhang_1_4_speed": "100", - "overhang_2_4_speed": "50", - "overhang_3_4_speed": "30", - "overhang_4_4_speed": "15", - "support_interface_speed": "120", - "top_surface_line_width": "100%", - "sparse_infill_line_width": "125%", - "internal_solid_infill_line_width": "125%", - "seam_position": "nearest", - "initial_layer_speed": "100", - "initial_layer_infill_speed": "150", - "outer_wall_speed": "300", - "inner_wall_speed": "340", - "small_perimeter_speed": "300", - "sparse_infill_speed": "400", - "internal_solid_infill_speed": "340", - "top_surface_speed": "300", - "gap_infill_speed": "300", - "travel_speed": "400", - "only_one_wall_top": "0", - "only_one_wall_first_layer": "0" + ] } diff --git a/resources/profiles/RH3D/process/0.25mm Fast @VIRTU E3.json b/resources/profiles/RH3D/process/0.25mm Fast @VIRTU E3.json new file mode 100644 index 0000000000..0e6c3ef6eb --- /dev/null +++ b/resources/profiles/RH3D/process/0.25mm Fast @VIRTU E3.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.25mm Fast @VIRTU E3", + "inherits": "process_Fast_VIRTU E3", + "from": "system", + "setting_id": "MyqBOD8a6YOpgm8h", + "instantiation": "true", + "layer_height": "0.25", + "initial_layer_print_height": "0.25", + "compatible_printers": [ + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.25mm Slow @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.25mm Slow @E3NG v1.2S.json new file mode 100644 index 0000000000..65de472eec --- /dev/null +++ b/resources/profiles/RH3D/process/0.25mm Slow @E3NG v1.2S.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.25mm Slow @E3NG v1.2S", + "inherits": "process_Slow_E3NG v1.2S", + "from": "system", + "setting_id": "7sr967Tgq1J3qxTG", + "instantiation": "true", + "layer_height": "0.25", + "initial_layer_print_height": "0.25", + "compatible_printers": [ + "E3NG v1.2S - 0.4 nozzle", + "E3NG v1.2S - 0.5 nozzle", + "E3NG v1.2S - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.25mm Slow @VIRTU E3.json b/resources/profiles/RH3D/process/0.25mm Slow @VIRTU E3.json new file mode 100644 index 0000000000..36ef0d460f --- /dev/null +++ b/resources/profiles/RH3D/process/0.25mm Slow @VIRTU E3.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.25mm Slow @VIRTU E3", + "inherits": "process_Slow_VIRTU E3", + "from": "system", + "setting_id": "BqoOYOcFMFNbkpAb", + "instantiation": "true", + "layer_height": "0.25", + "initial_layer_print_height": "0.25", + "compatible_printers": [ + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/0.25mm Standard @E3NG v1.2S.json b/resources/profiles/RH3D/process/0.25mm Standard @E3NG v1.2S.json index 5ebe88f3fe..4234924db2 100644 --- a/resources/profiles/RH3D/process/0.25mm Standard @E3NG v1.2S.json +++ b/resources/profiles/RH3D/process/0.25mm Standard @E3NG v1.2S.json @@ -1,7 +1,7 @@ { "type": "process", "name": "0.25mm Standard @E3NG v1.2S", - "inherits": "process_common_E3NG v1.2S", + "inherits": "process_Standard_E3NG v1.2S", "from": "system", "setting_id": "2dPD9ljxZ8hknXZu", "instantiation": "true", diff --git a/resources/profiles/RH3D/process/0.25mm Standard @VIRTU E3.json b/resources/profiles/RH3D/process/0.25mm Standard @VIRTU E3.json new file mode 100644 index 0000000000..3aa8db5be4 --- /dev/null +++ b/resources/profiles/RH3D/process/0.25mm Standard @VIRTU E3.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.25mm Standard @VIRTU E3", + "inherits": "process_Standard_VIRTU E3", + "from": "system", + "setting_id": "uKXPx0hfphTLXfmI", + "instantiation": "true", + "layer_height": "0.25", + "initial_layer_print_height": "0.25", + "compatible_printers": [ + "VIRTU E3 - 0.4 nozzle", + "VIRTU E3 - 0.5 nozzle", + "VIRTU E3 - 0.6 nozzle" + ] +} diff --git a/resources/profiles/RH3D/process/fdm_process_common.json b/resources/profiles/RH3D/process/fdm_process_common.json index 4f02e37fa6..0f5087af8c 100644 --- a/resources/profiles/RH3D/process/fdm_process_common.json +++ b/resources/profiles/RH3D/process/fdm_process_common.json @@ -8,6 +8,7 @@ "bottom_surface_pattern": "monotonicline", "bottom_shell_thickness": "0", "bridge_speed": "50", + "brim_type": "no_brim", "brim_width": "0", "brim_object_gap": "0.1", "compatible_printers": [], @@ -22,6 +23,8 @@ "bridge_acceleration": "2500", "sparse_infill_acceleration": "8000", "internal_solid_infill_acceleration": "5000", + "accel_to_decel_enable": "0", + "accel_to_decel_factor": "100%", "bridge_no_support": "0", "draft_shield": "disabled", "elefant_foot_compensation": "0.1", @@ -41,8 +44,8 @@ "reduce_infill_retraction": "1", "filename_format": "{input_filename_base}_{filament_type[0]}_{print_time}_{printer_model}.gcode", "detect_overhang_wall": "1", - "slowdown_for_curled_perimeters": "1", - "overhang_1_4_speed": "70", + "slowdown_for_curled_perimeters": "0", + "overhang_1_4_speed": "0", "overhang_2_4_speed": "40", "overhang_3_4_speed": "25", "overhang_4_4_speed": "10", @@ -102,7 +105,7 @@ "initial_layer_infill_speed": "100", "outer_wall_speed": "220", "inner_wall_speed": "220", - "small_perimeter_speed": "220", + "small_perimeter_speed": "50%", "sparse_infill_speed": "300", "internal_solid_infill_speed": "220", "top_surface_speed": "180", diff --git a/resources/profiles/RH3D/process/process_Fast_E3NG v1.2S.json b/resources/profiles/RH3D/process/process_Fast_E3NG v1.2S.json new file mode 100644 index 0000000000..73d0ae5202 --- /dev/null +++ b/resources/profiles/RH3D/process/process_Fast_E3NG v1.2S.json @@ -0,0 +1,42 @@ +{ + "type": "process", + "name": "process_Fast_E3NG v1.2S", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "false", + "reduce_crossing_wall": "0", + "bridge_speed": "75", + "default_acceleration": "10000", + "initial_layer_acceleration": "7500", + "top_surface_acceleration": "7500", + "travel_acceleration": "10000", + "inner_wall_acceleration": "10000", + "outer_wall_acceleration": "7500", + "bridge_acceleration": "5000", + "sparse_infill_acceleration": "12500", + "internal_solid_infill_acceleration": "10000", + "infill_combination": "0", + "ironing_speed": "150", + "overhang_1_4_speed": "100", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "15", + "support_interface_speed": "120", + "top_surface_line_width": "100%", + "sparse_infill_line_width": "125%", + "internal_solid_infill_line_width": "125%", + "seam_position": "nearest", + "initial_layer_speed": "100", + "initial_layer_infill_speed": "150", + "outer_wall_speed": "300", + "inner_wall_speed": "340", + "small_perimeter_speed": "300", + "sparse_infill_speed": "400", + "internal_solid_infill_speed": "340", + "top_surface_speed": "300", + "gap_infill_speed": "300", + "travel_speed": "400", + "only_one_wall_top": "0", + "only_one_wall_first_layer": "0", + "notes": "fast" +} diff --git a/resources/profiles/RH3D/process/process_Fast_VIRTU E3.json b/resources/profiles/RH3D/process/process_Fast_VIRTU E3.json new file mode 100644 index 0000000000..b981150596 --- /dev/null +++ b/resources/profiles/RH3D/process/process_Fast_VIRTU E3.json @@ -0,0 +1,42 @@ +{ + "type": "process", + "name": "process_Fast_VIRTU E3", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "false", + "reduce_crossing_wall": "0", + "bridge_speed": "75", + "default_acceleration": "20000", + "initial_layer_acceleration": "15000", + "top_surface_acceleration": "15000", + "travel_acceleration": "15000", + "inner_wall_acceleration": "25000", + "outer_wall_acceleration": "15000", + "bridge_acceleration": "10000", + "sparse_infill_acceleration": "30000", + "internal_solid_infill_acceleration": "25000", + "infill_combination": "0", + "ironing_speed": "150", + "overhang_1_4_speed": "100", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "15", + "support_interface_speed": "120", + "top_surface_line_width": "90%", + "sparse_infill_line_width": "125%", + "internal_solid_infill_line_width": "125%", + "seam_position": "nearest", + "initial_layer_speed": "100", + "initial_layer_infill_speed": "150", + "outer_wall_speed": "300", + "inner_wall_speed": "600", + "small_perimeter_speed": "300", + "sparse_infill_speed": "600", + "internal_solid_infill_speed": "500", + "top_surface_speed": "300", + "gap_infill_speed": "300", + "travel_speed": "800", + "only_one_wall_top": "0", + "only_one_wall_first_layer": "0", + "notes": "fast" +} diff --git a/resources/profiles/RH3D/process/process_Slow_E3NG v1.2S.json b/resources/profiles/RH3D/process/process_Slow_E3NG v1.2S.json new file mode 100644 index 0000000000..5cf259e378 --- /dev/null +++ b/resources/profiles/RH3D/process/process_Slow_E3NG v1.2S.json @@ -0,0 +1,42 @@ +{ + "type": "process", + "name": "process_Slow_E3NG v1.2S", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "false", + "reduce_crossing_wall": "1", + "bridge_speed": "40", + "default_acceleration": "3000", + "initial_layer_acceleration": "3000", + "top_surface_acceleration": "2000", + "travel_acceleration": "3000", + "inner_wall_acceleration": "3000", + "outer_wall_acceleration": "3000", + "bridge_acceleration": "2000", + "sparse_infill_acceleration": "4000", + "internal_solid_infill_acceleration": "3000", + "infill_combination": "0", + "ironing_speed": "80", + "overhang_1_4_speed": "60", + "overhang_2_4_speed": "35", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "8", + "support_interface_speed": "60", + "top_surface_line_width": "90%", + "sparse_infill_line_width": "125%", + "internal_solid_infill_line_width": "125%", + "seam_position": "aligned", + "initial_layer_speed": "60", + "initial_layer_infill_speed": "75", + "outer_wall_speed": "120", + "inner_wall_speed": "120", + "small_perimeter_speed": "120", + "sparse_infill_speed": "160", + "internal_solid_infill_speed": "160", + "top_surface_speed": "120", + "gap_infill_speed": "120", + "travel_speed": "400", + "only_one_wall_top": "1", + "only_one_wall_first_layer": "1", + "notes": "quiet" +} diff --git a/resources/profiles/RH3D/process/process_Slow_VIRTU E3.json b/resources/profiles/RH3D/process/process_Slow_VIRTU E3.json new file mode 100644 index 0000000000..4f7f41e5eb --- /dev/null +++ b/resources/profiles/RH3D/process/process_Slow_VIRTU E3.json @@ -0,0 +1,42 @@ +{ + "type": "process", + "name": "process_Slow_VIRTU E3", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "false", + "reduce_crossing_wall": "1", + "bridge_speed": "40", + "default_acceleration": "3000", + "initial_layer_acceleration": "3000", + "top_surface_acceleration": "2000", + "travel_acceleration": "3000", + "inner_wall_acceleration": "3000", + "outer_wall_acceleration": "3000", + "bridge_acceleration": "2000", + "sparse_infill_acceleration": "4000", + "internal_solid_infill_acceleration": "3000", + "infill_combination": "0", + "ironing_speed": "80", + "overhang_1_4_speed": "60", + "overhang_2_4_speed": "35", + "overhang_3_4_speed": "20", + "overhang_4_4_speed": "8", + "support_interface_speed": "60", + "top_surface_line_width": "90%", + "sparse_infill_line_width": "125%", + "internal_solid_infill_line_width": "125%", + "seam_position": "aligned", + "initial_layer_speed": "60", + "initial_layer_infill_speed": "75", + "outer_wall_speed": "140", + "inner_wall_speed": "140", + "small_perimeter_speed": "140", + "sparse_infill_speed": "140", + "internal_solid_infill_speed": "140", + "top_surface_speed": "140", + "gap_infill_speed": "140", + "travel_speed": "400", + "only_one_wall_top": "1", + "only_one_wall_first_layer": "1", + "notes": "quiet" +} diff --git a/resources/profiles/RH3D/process/process_Standard_E3NG v1.2S.json b/resources/profiles/RH3D/process/process_Standard_E3NG v1.2S.json new file mode 100644 index 0000000000..55828f200a --- /dev/null +++ b/resources/profiles/RH3D/process/process_Standard_E3NG v1.2S.json @@ -0,0 +1,33 @@ +{ + "type": "process", + "name": "process_Standard_E3NG v1.2S", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "false", + "default_acceleration": "10000", + "initial_layer_acceleration": "5000", + "top_surface_acceleration": "5000", + "travel_acceleration": "7500", + "inner_wall_acceleration": "10000", + "outer_wall_acceleration": "10000", + "bridge_acceleration": "3500", + "sparse_infill_acceleration": "12500", + "internal_solid_infill_acceleration": "12500", + "overhang_1_4_speed": "70", + "overhang_2_4_speed": "40", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "10", + "support_interface_speed": "100", + "support_speed": "180", + "initial_layer_speed": "90", + "initial_layer_infill_speed": "120", + "outer_wall_speed": "180", + "inner_wall_speed": "220", + "small_perimeter_speed": "180", + "sparse_infill_speed": "220", + "internal_solid_infill_speed": "220", + "top_surface_speed": "180", + "gap_infill_speed": "180", + "travel_speed": "500", + "notes": "normal" +} diff --git a/resources/profiles/RH3D/process/process_Standard_VIRTU E3.json b/resources/profiles/RH3D/process/process_Standard_VIRTU E3.json new file mode 100644 index 0000000000..d312218844 --- /dev/null +++ b/resources/profiles/RH3D/process/process_Standard_VIRTU E3.json @@ -0,0 +1,33 @@ +{ + "type": "process", + "name": "process_Standard_VIRTU E3", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "false", + "default_acceleration": "15000", + "initial_layer_acceleration": "7500", + "top_surface_acceleration": "7500", + "travel_acceleration": "10000", + "inner_wall_acceleration": "15000", + "outer_wall_acceleration": "15000", + "bridge_acceleration": "5000", + "sparse_infill_acceleration": "20000", + "internal_solid_infill_acceleration": "20000", + "overhang_1_4_speed": "70", + "overhang_2_4_speed": "40", + "overhang_3_4_speed": "25", + "overhang_4_4_speed": "10", + "support_interface_speed": "100", + "support_speed": "250", + "initial_layer_speed": "100", + "initial_layer_infill_speed": "150", + "outer_wall_speed": "260", + "inner_wall_speed": "350", + "small_perimeter_speed": "260", + "sparse_infill_speed": "350", + "internal_solid_infill_speed": "350", + "top_surface_speed": "260", + "gap_infill_speed": "260", + "travel_speed": "600", + "notes": "normal" +} diff --git a/resources/profiles/RH3D/process/process_common_E3NG v1.2S.json b/resources/profiles/RH3D/process/process_common_E3NG v1.2S.json deleted file mode 100644 index b43952fb89..0000000000 --- a/resources/profiles/RH3D/process/process_common_E3NG v1.2S.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "type": "process", - "name": "process_common_E3NG v1.2S", - "inherits": "fdm_process_common", - "from": "system", - "instantiation": "false" -} From 61dbe5572f5d8199401b9bd8d823b9520c0eef2e Mon Sep 17 00:00:00 2001 From: Jordan Hubbard <jordanhubbard@gmail.com> Date: Mon, 21 Sep 2026 08:19:41 -0700 Subject: [PATCH 69/76] Add Flashforge Adventurer A5 printer profiles (#14733) * Add Flashforge Adventurer A5 printer profiles Adds system profiles for the Flashforge Adventurer A5 to the existing Flashforge vendor: the machine model with 0.25/0.4/0.6/0.8 mm nozzle variants, 14 process presets, and 43 filament presets, plus the printer cover image. All presets inherit from existing Flashforge bases already in-tree (Adventurer 5M Pro nozzle profiles, AD5M Pro process/filament presets, Flashforge generics); no new base assets are introduced (the A5 reuses the existing 5M-series bed/hotend models and buildplate texture). Every inherits reference and sub_path was validated to resolve. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Assign setting_id to Adventurer A5 presets (fix profile check) The new A5 filament and process presets were missing the deterministic setting_id required by OrcaSlicer's profile validator. Generated via scripts/assign_vendor_setting_ids.py (61 instantiated presets). Verified with scripts/orca_extra_profile_check.py: 0 errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Fix Flashforge Adventurer A5 profiles so the bundle loads and validates The new A5 presets were not in canonical form, several filaments resolved no or the wrong filament_id, and the model and machines pointed at non-existent or AD5M Pro defaults. Run the standard profile tooling (normalize, update-index, generate-id), give the branded filaments the ids of their existing Flashforge products, and repoint the defaults at A5-compatible filaments and processes. Bump the Flashforge bundle version. --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: yw4z <ywsyildiz@gmail.com> Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com> Co-authored-by: SoftFever <softfeverever@gmail.com> --- resources/profiles/Flashforge.json | 250 +++++++++++++++++- .../Flashforge Adventurer A5_cover.png | Bin 0 -> 11981 bytes ...S Basic @FF Adventurer A5 0.25 nozzle.json | 44 +++ ...lashforge ABS Basic @FF Adventurer A5.json | 50 ++++ ...A Basic @FF Adventurer A5 0.25 nozzle.json | 44 +++ ...lashforge ASA Basic @FF Adventurer A5.json | 50 ++++ ...HS PETG @FF Adventurer A5 0.25 nozzle.json | 44 +++ .../Flashforge HS PETG @FF Adventurer A5.json | 59 +++++ ... HS PLA @FF Adventurer A5 0.25 nozzle.json | 26 ++ .../Flashforge HS PLA @FF Adventurer A5.json | 47 ++++ ...HS PLA+ @FF Adventurer A5 0.25 nozzle.json | 36 +++ .../Flashforge HS PLA+ @FF Adventurer A5.json | 50 ++++ ...G Basic @FF Adventurer A5 0.25 nozzle.json | 44 +++ ...ETG Pro @FF Adventurer A5 0.25 nozzle.json | 44 +++ ...Flashforge PETG Pro @FF Adventurer A5.json | 92 +++++++ ...sparent @FF Adventurer A5 0.25 nozzle.json | 44 +++ ...ge PETG Transparent @FF Adventurer A5.json | 92 +++++++ .../Flashforge PETG-CF @FF Adventurer A5.json | 53 ++++ ...A Basic @FF Adventurer A5 0.25 nozzle.json | 32 +++ ...lashforge PLA Basic @FF Adventurer A5.json | 47 ++++ ... Change @FF Adventurer A5 0.25 nozzle.json | 32 +++ ...ge PLA Color Change @FF Adventurer A5.json | 47 ++++ ... Galaxy @FF Adventurer A5 0.25 nozzle.json | 32 +++ ...ashforge PLA Galaxy @FF Adventurer A5.json | 47 ++++ ...LA LITE @FF Adventurer A5 0.25 nozzle.json | 36 +++ ...Flashforge PLA LITE @FF Adventurer A5.json | 50 ++++ ...uminous @FF Adventurer A5 0.25 nozzle.json | 32 +++ ...hforge PLA Luminous @FF Adventurer A5.json | 47 ++++ ...A Matte @FF Adventurer A5 0.25 nozzle.json | 32 +++ ...lashforge PLA Matte @FF Adventurer A5.json | 47 ++++ ...A Metal @FF Adventurer A5 0.25 nozzle.json | 32 +++ ...lashforge PLA Metal @FF Adventurer A5.json | 47 ++++ ...PLA Pro @FF Adventurer A5 0.25 nozzle.json | 32 +++ .../Flashforge PLA Pro @FF Adventurer A5.json | 47 ++++ ...LA Silk @FF Adventurer A5 0.25 nozzle.json | 35 +++ ...Flashforge PLA Silk @FF Adventurer A5.json | 47 ++++ ...Sparkle @FF Adventurer A5 0.25 nozzle.json | 32 +++ ...shforge PLA Sparkle @FF Adventurer A5.json | 47 ++++ .../Flashforge PLA-CF @FF Adventurer A5.json | 56 ++++ ...e R PLA @FF Adventurer A5 0.25 nozzle.json | 33 +++ .../Flashforge R PLA @FF Adventurer A5.json | 50 ++++ .../Flashforge TPU 95A @FF Adventurer A5.json | 38 +++ ...ic PETG @FF Adventurer A5 0.25 nozzle.json | 17 ++ ...ric PLA @FF Adventurer A5 0.25 nozzle.json | 35 +++ .../Kexcelled TPU 64D @FF Adventurer A5.json | 38 +++ .../Flashforge Adventurer A5 0.25 nozzle.json | 233 ++++++++++++++++ .../Flashforge Adventurer A5 0.4 nozzle.json | 233 ++++++++++++++++ .../Flashforge Adventurer A5 0.6 nozzle.json | 233 ++++++++++++++++ .../Flashforge Adventurer A5 0.8 nozzle.json | 233 ++++++++++++++++ .../machine/Flashforge Adventurer A5.json | 12 + ...tandard @FF Adventurer A5 0.25 nozzle.json | 23 ++ ...tandard @FF Adventurer A5 0.25 nozzle.json | 23 ++ ...tandard @FF Adventurer A5 0.25 nozzle.json | 23 ++ ...2mm Fine @FF Adventurer A5 0.4 nozzle.json | 24 ++ ...tandard @FF Adventurer A5 0.25 nozzle.json | 17 ++ ...tandard @FF Adventurer A5 0.25 nozzle.json | 23 ++ ...8mm Fine @FF Adventurer A5 0.6 nozzle.json | 24 ++ ...Standard @FF Adventurer A5 0.4 nozzle.json | 21 ++ ...mm Draft @FF Adventurer A5 0.4 nozzle.json | 23 ++ ...4mm Fine @FF Adventurer A5 0.8 nozzle.json | 19 ++ ...Standard @FF Adventurer A5 0.6 nozzle.json | 22 ++ ...Standard @FF Adventurer A5 0.8 nozzle.json | 18 ++ ...mm Draft @FF Adventurer A5 0.6 nozzle.json | 23 ++ ...mm Draft @FF Adventurer A5 0.8 nozzle.json | 16 ++ 64 files changed, 3378 insertions(+), 1 deletion(-) create mode 100644 resources/profiles/Flashforge/Flashforge Adventurer A5_cover.png create mode 100644 resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge HS PETG @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge HS PETG @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge HS PLA @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge HS PLA @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge HS PLA+ @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA LITE @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge R PLA @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge R PLA @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/filament/Generic PETG @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Generic PLA @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/filament/Kexcelled TPU 64D @FF Adventurer A5.json create mode 100644 resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.4 nozzle.json create mode 100644 resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.6 nozzle.json create mode 100644 resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.8 nozzle.json create mode 100644 resources/profiles/Flashforge/machine/Flashforge Adventurer A5.json create mode 100644 resources/profiles/Flashforge/process/0.06mm Standard @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.08mm Standard @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.10mm Standard @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.12mm Fine @FF Adventurer A5 0.4 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.12mm Standard @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.14mm Standard @FF Adventurer A5 0.25 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.18mm Fine @FF Adventurer A5 0.6 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.20mm Standard @FF Adventurer A5 0.4 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.24mm Draft @FF Adventurer A5 0.4 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.24mm Fine @FF Adventurer A5 0.8 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.30mm Standard @FF Adventurer A5 0.6 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.40mm Standard @FF Adventurer A5 0.8 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.42mm Draft @FF Adventurer A5 0.6 nozzle.json create mode 100644 resources/profiles/Flashforge/process/0.56mm Draft @FF Adventurer A5 0.8 nozzle.json diff --git a/resources/profiles/Flashforge.json b/resources/profiles/Flashforge.json index 5bccaf9dfb..cda2215a33 100644 --- a/resources/profiles/Flashforge.json +++ b/resources/profiles/Flashforge.json @@ -1,7 +1,7 @@ { "name": "Flashforge", "url": "", - "version": "02.04.00.08", + "version": "02.04.00.09", "force_update": "0", "description": "Flashforge configurations", "machine_model_list": [ @@ -25,6 +25,10 @@ "name": "Flashforge Adventurer 5M Pro", "sub_path": "machine/Flashforge Adventurer 5M Pro.json" }, + { + "name": "Flashforge Adventurer A5", + "sub_path": "machine/Flashforge Adventurer A5.json" + }, { "name": "Flashforge Artemis", "sub_path": "machine/Flashforge Artemis.json" @@ -199,6 +203,10 @@ "name": "0.20mm Standard @FF AD5X", "sub_path": "process/0.20mm Standard @FF AD5X.json" }, + { + "name": "0.20mm Standard @FF Adventurer A5 0.4 nozzle", + "sub_path": "process/0.20mm Standard @FF Adventurer A5 0.4 nozzle.json" + }, { "name": "0.20mm Standard @FF C5", "sub_path": "process/0.20mm Standard @FF C5.json" @@ -311,6 +319,10 @@ "name": "0.30mm Standard @FF AD5X 0.6 nozzle", "sub_path": "process/0.30mm Standard @FF AD5X 0.6 nozzle.json" }, + { + "name": "0.30mm Standard @FF Adventurer A5 0.6 nozzle", + "sub_path": "process/0.30mm Standard @FF Adventurer A5 0.6 nozzle.json" + }, { "name": "0.40mm Standard @Flashforge AD5M Pro 0.8 Nozzle", "sub_path": "process/0.40mm Standard @Flashforge AD5M Pro 0.8 Nozzle.json" @@ -443,6 +455,10 @@ "name": "0.14mm Standard @Flashforge AD5M 0.25 Nozzle", "sub_path": "process/0.14mm Standard @Flashforge AD5M 0.25 Nozzle.json" }, + { + "name": "0.12mm Fine @FF Adventurer A5 0.4 nozzle", + "sub_path": "process/0.12mm Fine @FF Adventurer A5 0.4 nozzle.json" + }, { "name": "0.06mm Standard @Flashforge AD5M Pro 0.25 Nozzle", "sub_path": "process/0.06mm Standard @Flashforge AD5M Pro 0.25 Nozzle.json" @@ -463,6 +479,10 @@ "name": "0.10mm Standard @Flashforge AD5M Pro 0.25 Nozzle", "sub_path": "process/0.10mm Standard @Flashforge AD5M Pro 0.25 Nozzle.json" }, + { + "name": "0.12mm Standard @FF Adventurer A5 0.25 nozzle", + "sub_path": "process/0.12mm Standard @FF Adventurer A5 0.25 nozzle.json" + }, { "name": "0.12mm Standard @FF G4 0.25 nozzle", "sub_path": "process/0.12mm Standard @FF G4 0.25 nozzle.json" @@ -483,6 +503,10 @@ "name": "0.14mm Standard @Flashforge AD5M Pro 0.25 Nozzle", "sub_path": "process/0.14mm Standard @Flashforge AD5M Pro 0.25 Nozzle.json" }, + { + "name": "0.24mm Draft @FF Adventurer A5 0.4 nozzle", + "sub_path": "process/0.24mm Draft @FF Adventurer A5 0.4 nozzle.json" + }, { "name": "0.24mm Fine @Flashforge AD5M 0.8 Nozzle", "sub_path": "process/0.24mm Fine @Flashforge AD5M 0.8 Nozzle.json" @@ -495,6 +519,10 @@ "name": "0.18mm Fine @FF AD5X 0.6 nozzle", "sub_path": "process/0.18mm Fine @FF AD5X 0.6 nozzle.json" }, + { + "name": "0.18mm Fine @FF Adventurer A5 0.6 nozzle", + "sub_path": "process/0.18mm Fine @FF Adventurer A5 0.6 nozzle.json" + }, { "name": "0.24mm Fine @Flashforge AD5M Pro 0.8 Nozzle", "sub_path": "process/0.24mm Fine @Flashforge AD5M Pro 0.8 Nozzle.json" @@ -503,6 +531,10 @@ "name": "0.40mm Standard @FF AD5X 0.8 nozzle", "sub_path": "process/0.40mm Standard @FF AD5X 0.8 nozzle.json" }, + { + "name": "0.40mm Standard @FF Adventurer A5 0.8 nozzle", + "sub_path": "process/0.40mm Standard @FF Adventurer A5 0.8 nozzle.json" + }, { "name": "0.56mm Draft @Flashforge AD5M Pro 0.8 Nozzle", "sub_path": "process/0.56mm Draft @Flashforge AD5M Pro 0.8 Nozzle.json" @@ -511,6 +543,10 @@ "name": "0.42mm Draft @FF AD5X 0.6 nozzle", "sub_path": "process/0.42mm Draft @FF AD5X 0.6 nozzle.json" }, + { + "name": "0.42mm Draft @FF Adventurer A5 0.6 nozzle", + "sub_path": "process/0.42mm Draft @FF Adventurer A5 0.6 nozzle.json" + }, { "name": "0.08mm Standard @FF C5 0.25 nozzle", "sub_path": "process/0.08mm Standard @FF C5 0.25 nozzle.json" @@ -527,13 +563,37 @@ "name": "0.14mm Standard @FF C5 0.25 nozzle", "sub_path": "process/0.14mm Standard @FF C5 0.25 nozzle.json" }, + { + "name": "0.06mm Standard @FF Adventurer A5 0.25 nozzle", + "sub_path": "process/0.06mm Standard @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "0.08mm Standard @FF Adventurer A5 0.25 nozzle", + "sub_path": "process/0.08mm Standard @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "0.10mm Standard @FF Adventurer A5 0.25 nozzle", + "sub_path": "process/0.10mm Standard @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "0.14mm Standard @FF Adventurer A5 0.25 nozzle", + "sub_path": "process/0.14mm Standard @FF Adventurer A5 0.25 nozzle.json" + }, { "name": "0.24mm Fine @FF AD5X 0.8 nozzle", "sub_path": "process/0.24mm Fine @FF AD5X 0.8 nozzle.json" }, + { + "name": "0.24mm Fine @FF Adventurer A5 0.8 nozzle", + "sub_path": "process/0.24mm Fine @FF Adventurer A5 0.8 nozzle.json" + }, { "name": "0.56mm Draft @FF AD5X 0.8 nozzle", "sub_path": "process/0.56mm Draft @FF AD5X 0.8 nozzle.json" + }, + { + "name": "0.56mm Draft @FF Adventurer A5 0.8 nozzle", + "sub_path": "process/0.56mm Draft @FF Adventurer A5 0.8 nozzle.json" } ], "filament_list": [ @@ -661,6 +721,10 @@ "name": "Flashforge ABS Basic @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge ABS Basic @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge ABS Basic @FF Adventurer A5", + "sub_path": "filament/Flashforge ABS Basic @FF Adventurer A5.json" + }, { "name": "Flashforge ABS Basic @FF G4", "sub_path": "filament/Flashforge ABS Basic @FF G4.json" @@ -741,6 +805,10 @@ "name": "Flashforge ASA Basic", "sub_path": "filament/Flashforge ASA Basic.json" }, + { + "name": "Flashforge ASA Basic @FF Adventurer A5", + "sub_path": "filament/Flashforge ASA Basic @FF Adventurer A5.json" + }, { "name": "Generic ASA @FF AD5M 0.25 Nozzle", "sub_path": "filament/Generic ASA @FF AD5M 0.25 Nozzle.json" @@ -769,6 +837,10 @@ "name": "Flashforge HS PETG @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge HS PETG @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge HS PETG @FF Adventurer A5", + "sub_path": "filament/Flashforge HS PETG @FF Adventurer A5.json" + }, { "name": "Flashforge HS PETG @FF G4", "sub_path": "filament/Flashforge HS PETG @FF G4.json" @@ -801,6 +873,10 @@ "name": "Flashforge PETG Pro @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PETG Pro @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PETG Pro @FF Adventurer A5", + "sub_path": "filament/Flashforge PETG Pro @FF Adventurer A5.json" + }, { "name": "Flashforge PETG Pro @FF G4", "sub_path": "filament/Flashforge PETG Pro @FF G4.json" @@ -825,6 +901,10 @@ "name": "Flashforge PETG Transparent @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PETG Transparent @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PETG Transparent @FF Adventurer A5", + "sub_path": "filament/Flashforge PETG Transparent @FF Adventurer A5.json" + }, { "name": "Flashforge PETG Transparent @FF G4", "sub_path": "filament/Flashforge PETG Transparent @FF G4.json" @@ -925,6 +1005,10 @@ "name": "Flashforge PETG-CF @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PETG-CF @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PETG-CF @FF Adventurer A5", + "sub_path": "filament/Flashforge PETG-CF @FF Adventurer A5.json" + }, { "name": "Generic PETG-CF10 @Flashforge AD4", "sub_path": "filament/Generic PETG-CF10 @Flashforge AD4.json" @@ -1069,6 +1153,14 @@ "name": "Flashforge HS PLA @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge HS PLA @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge HS PLA @FF Adventurer A5", + "sub_path": "filament/Flashforge HS PLA @FF Adventurer A5.json" + }, + { + "name": "Flashforge HS PLA+ @FF Adventurer A5", + "sub_path": "filament/Flashforge HS PLA+ @FF Adventurer A5.json" + }, { "name": "Flashforge PLA @FF AD5M 0.25 Nozzle", "sub_path": "filament/Flashforge PLA @FF AD5M 0.25 Nozzle.json" @@ -1089,6 +1181,10 @@ "name": "Flashforge PLA Basic @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PLA Basic @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PLA Basic @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA Basic @FF Adventurer A5.json" + }, { "name": "Flashforge PLA Color Change", "sub_path": "filament/Flashforge PLA Color Change.json" @@ -1105,6 +1201,10 @@ "name": "Flashforge PLA Color Change @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PLA Color Change @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PLA Color Change @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA Color Change @FF Adventurer A5.json" + }, { "name": "Flashforge PLA Galaxy", "sub_path": "filament/Flashforge PLA Galaxy.json" @@ -1121,6 +1221,14 @@ "name": "Flashforge PLA Galaxy @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PLA Galaxy @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PLA Galaxy @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA Galaxy @FF Adventurer A5.json" + }, + { + "name": "Flashforge PLA LITE @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA LITE @FF Adventurer A5.json" + }, { "name": "Flashforge PLA Luminous", "sub_path": "filament/Flashforge PLA Luminous.json" @@ -1137,6 +1245,10 @@ "name": "Flashforge PLA Luminous @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PLA Luminous @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PLA Luminous @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA Luminous @FF Adventurer A5.json" + }, { "name": "Flashforge PLA Matte", "sub_path": "filament/Flashforge PLA Matte.json" @@ -1153,6 +1265,10 @@ "name": "Flashforge PLA Matte @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PLA Matte @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PLA Matte @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA Matte @FF Adventurer A5.json" + }, { "name": "Flashforge PLA Metal", "sub_path": "filament/Flashforge PLA Metal.json" @@ -1169,6 +1285,10 @@ "name": "Flashforge PLA Metal @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PLA Metal @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PLA Metal @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA Metal @FF Adventurer A5.json" + }, { "name": "Flashforge PLA Pro", "sub_path": "filament/Flashforge PLA Pro.json" @@ -1185,6 +1305,10 @@ "name": "Flashforge PLA Pro @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PLA Pro @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PLA Pro @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA Pro @FF Adventurer A5.json" + }, { "name": "Flashforge PLA Sparkle", "sub_path": "filament/Flashforge PLA Sparkle.json" @@ -1201,6 +1325,14 @@ "name": "Flashforge PLA Sparkle @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PLA Sparkle @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PLA Sparkle @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA Sparkle @FF Adventurer A5.json" + }, + { + "name": "Flashforge R PLA @FF Adventurer A5", + "sub_path": "filament/Flashforge R PLA @FF Adventurer A5.json" + }, { "name": "Generic PLA @FF AD5M 0.25 Nozzle", "sub_path": "filament/Generic PLA @FF AD5M 0.25 Nozzle.json" @@ -1269,6 +1401,10 @@ "name": "Flashforge PLA-CF @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PLA-CF @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PLA-CF @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA-CF @FF Adventurer A5.json" + }, { "name": "Flashforge PPS @FF G4", "sub_path": "filament/Flashforge PPS @FF G4.json" @@ -1313,6 +1449,10 @@ "name": "Flashforge PLA Silk @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge PLA Silk @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge PLA Silk @FF Adventurer A5", + "sub_path": "filament/Flashforge PLA Silk @FF Adventurer A5.json" + }, { "name": "Flashforge PLA-SILK @FF AD5M 0.25 Nozzle", "sub_path": "filament/Flashforge PLA-SILK @FF AD5M 0.25 Nozzle.json" @@ -1413,6 +1553,10 @@ "name": "Flashforge TPU 95A @FF AD5X 0.8 nozzle", "sub_path": "filament/Flashforge TPU 95A @FF AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge TPU 95A @FF Adventurer A5", + "sub_path": "filament/Flashforge TPU 95A @FF Adventurer A5.json" + }, { "name": "Flashforge TPU 95A @FF G4", "sub_path": "filament/Flashforge TPU 95A @FF G4.json" @@ -1453,6 +1597,10 @@ "name": "Generic TPU @Flashforge AD4", "sub_path": "filament/Generic TPU @Flashforge AD4.json" }, + { + "name": "Kexcelled TPU 64D @FF Adventurer A5", + "sub_path": "filament/Kexcelled TPU 64D @FF Adventurer A5.json" + }, { "name": "Flashforge ABS Basic @FF AD5M 0.25 nozzle", "sub_path": "filament/Flashforge ABS Basic @FF AD5M 0.25 nozzle.json" @@ -1949,6 +2097,10 @@ "name": "Polymaker CoPA @FF G4P 0.8 HF nozzle", "sub_path": "filament/Polymaker CoPA @FF G4P 0.8 HF nozzle.json" }, + { + "name": "Generic PETG @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Generic PETG @FF Adventurer A5 0.25 nozzle.json" + }, { "name": "Flashforge HS PETG @FF G4 0.6 HF nozzle", "sub_path": "filament/Flashforge HS PETG @FF G4 0.6 HF nozzle.json" @@ -2045,6 +2197,10 @@ "name": "Flashforge PETG-CF @FF G4P 0.6 nozzle", "sub_path": "filament/Flashforge PETG-CF @FF G4P 0.6 nozzle.json" }, + { + "name": "Flashforge HS PLA @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge HS PLA @FF Adventurer A5 0.25 nozzle.json" + }, { "name": "Flashforge HS PLA @FF AD5X 0.25 nozzle", "sub_path": "filament/Flashforge HS PLA @FF AD5X 0.25 nozzle.json" @@ -2057,6 +2213,10 @@ "name": "Flashforge HS PLA @FF G4P 0.25 nozzle", "sub_path": "filament/Flashforge HS PLA @FF G4P 0.25 nozzle.json" }, + { + "name": "Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle.json" + }, { "name": "Flashforge PLA Basic @FF AD5M 0.25 nozzle", "sub_path": "filament/Flashforge PLA Basic @FF AD5M 0.25 nozzle.json" @@ -2105,6 +2265,10 @@ "name": "Flashforge PLA Galaxy @FF G4P 0.25 nozzle", "sub_path": "filament/Flashforge PLA Galaxy @FF G4P 0.25 nozzle.json" }, + { + "name": "Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle.json" + }, { "name": "Flashforge PLA Luminous @FF AD5M 0.25 nozzle", "sub_path": "filament/Flashforge PLA Luminous @FF AD5M 0.25 nozzle.json" @@ -2197,6 +2361,14 @@ "name": "Flashforge PLA Sparkle @FF G4P 0.25 nozzle", "sub_path": "filament/Flashforge PLA Sparkle @FF G4P 0.25 nozzle.json" }, + { + "name": "Flashforge R PLA @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge R PLA @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Generic PLA @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Generic PLA @FF Adventurer A5 0.25 nozzle.json" + }, { "name": "Flashforge HS PLA @FF G4 0.6 HF nozzle", "sub_path": "filament/Flashforge HS PLA @FF G4 0.6 HF nozzle.json" @@ -2497,6 +2669,66 @@ "name": "Flashforge PLA Silk @FF AD5M 0.25 nozzle", "sub_path": "filament/Flashforge PLA Silk @FF AD5M 0.25 nozzle.json" }, + { + "name": "Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge HS PETG @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge HS PETG @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle.json" + }, + { + "name": "Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle", + "sub_path": "filament/Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle.json" + }, { "name": "Flashforge ABS Basic @FF C5", "sub_path": "filament/Flashforge ABS Basic @FF C5.json" @@ -2907,6 +3139,10 @@ "name": "Flashforge AD5X 0.25 nozzle", "sub_path": "machine/FlashForge AD5X 0.25 nozzle.json" }, + { + "name": "Flashforge Adventurer A5 0.25 nozzle", + "sub_path": "machine/Flashforge Adventurer A5 0.25 nozzle.json" + }, { "name": "Flashforge Guider4 0.25 nozzle", "sub_path": "machine/Flashforge Guider4 0.25 nozzle.json" @@ -2919,6 +3155,10 @@ "name": "Flashforge AD5X 0.4 nozzle", "sub_path": "machine/Flashforge AD5X 0.4 nozzle.json" }, + { + "name": "Flashforge Adventurer A5 0.4 nozzle", + "sub_path": "machine/Flashforge Adventurer A5 0.4 nozzle.json" + }, { "name": "Flashforge Creator 5 0.25 nozzle", "sub_path": "machine/Flashforge Creator 5 0.25 nozzle.json" @@ -2963,10 +3203,18 @@ "name": "Flashforge AD5X 0.6 nozzle", "sub_path": "machine/Flashforge AD5X 0.6 nozzle.json" }, + { + "name": "Flashforge Adventurer A5 0.6 nozzle", + "sub_path": "machine/Flashforge Adventurer A5 0.6 nozzle.json" + }, { "name": "Flashforge AD5X 0.8 nozzle", "sub_path": "machine/Flashforge AD5X 0.8 nozzle.json" }, + { + "name": "Flashforge Adventurer A5 0.8 nozzle", + "sub_path": "machine/Flashforge Adventurer A5 0.8 nozzle.json" + }, { "name": "Flashforge Guider4 0.4 HF nozzle", "sub_path": "machine/Flashforge Guider4 0.4 HF nozzle.json" diff --git a/resources/profiles/Flashforge/Flashforge Adventurer A5_cover.png b/resources/profiles/Flashforge/Flashforge Adventurer A5_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..70966ac6856d4a4c678b166cfa9e0656ee865d17 GIT binary patch literal 11981 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 S;r%bB4k0hCB2_D468t}qAyz;D literal 0 HcmV?d00001 diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..08b228c11a --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge ABS Basic @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "jRIJ0cO4GhaMg2By", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "filament_settings_id": [ + "Flashforge ABS Basic @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "textured_cool_plate_temp": [ + "0" + ], + "textured_cool_plate_temp_initial_layer": [ + "0" + ], + "textured_plate_temp": [ + "105" + ], + "textured_plate_temp_initial_layer": [ + "105" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF Adventurer A5.json new file mode 100644 index 0000000000..0ea70e0bf4 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge ABS Basic @FF Adventurer A5.json @@ -0,0 +1,50 @@ +{ + "type": "filament", + "name": "Flashforge ABS Basic @FF Adventurer A5", + "inherits": "Generic ABS @Flashforge", + "from": "system", + "setting_id": "rDW4AwKc7SD7WIxN", + "filament_id": "OFibWuBd", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "filament_settings_id": [ + "Flashforge ABS Basic @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "textured_cool_plate_temp": [ + "0" + ], + "textured_cool_plate_temp_initial_layer": [ + "0" + ], + "textured_plate_temp": [ + "105" + ], + "textured_plate_temp_initial_layer": [ + "105" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..7d65841413 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge ASA Basic @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "OIUW8rw2VhNpeVpF", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "filament_settings_id": [ + "Flashforge ASA Basic @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "textured_cool_plate_temp": [ + "0" + ], + "textured_cool_plate_temp_initial_layer": [ + "0" + ], + "textured_plate_temp": [ + "105" + ], + "textured_plate_temp_initial_layer": [ + "105" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF Adventurer A5.json new file mode 100644 index 0000000000..80943c015a --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge ASA Basic @FF Adventurer A5.json @@ -0,0 +1,50 @@ +{ + "type": "filament", + "name": "Flashforge ASA Basic @FF Adventurer A5", + "inherits": "Generic ASA @Flashforge", + "from": "system", + "setting_id": "FY9mcqOyuu1Gqq1m", + "filament_id": "OFFFg2Pf", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "105" + ], + "eng_plate_temp_initial_layer": [ + "105" + ], + "filament_settings_id": [ + "Flashforge ASA Basic @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "supertack_plate_temp": [ + "0" + ], + "supertack_plate_temp_initial_layer": [ + "0" + ], + "textured_cool_plate_temp": [ + "0" + ], + "textured_cool_plate_temp_initial_layer": [ + "0" + ], + "textured_plate_temp": [ + "105" + ], + "textured_plate_temp_initial_layer": [ + "105" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..609de4b870 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Flashforge HS PETG @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge HS PETG @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "UFal5gkMUJpoiOWP", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "filament_settings_id": [ + "Flashforge HS PETG @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "textured_cool_plate_temp": [ + "70" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF Adventurer A5.json new file mode 100644 index 0000000000..5825f17141 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge HS PETG @FF Adventurer A5.json @@ -0,0 +1,59 @@ +{ + "type": "filament", + "name": "Flashforge HS PETG @FF Adventurer A5", + "inherits": "Generic PETG @Flashforge", + "from": "system", + "setting_id": "ZpNEEHTtvhMJS8Kv", + "filament_id": "OFDxxTpW", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "close_fan_the_first_x_layers": [ + "2" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "21" + ], + "filament_settings_id": [ + "Flashforge HS PETG @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "textured_cool_plate_temp": [ + "70" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..797c72be19 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "filament", + "name": "Flashforge HS PLA @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge HS PLA @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "Ewx6vNp0sDLDczPc", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "filament_settings_id": [ + "Flashforge HS PLA @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF Adventurer A5.json new file mode 100644 index 0000000000..9f34aa44af --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA @FF Adventurer A5.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Flashforge HS PLA @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "2L7FS5JeAyPb3y0s", + "filament_id": "OFIK2H3G", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge HS PLA @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..1d6ac25b9f --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,36 @@ +{ + "type": "filament", + "name": "Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", + "from": "system", + "setting_id": "DeiDOP4VfKSyMtjw", + "filament_id": "OFXB8ZI7", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_flow_ratio": [ + "0.95" + ], + "filament_settings_id": [ + "Flashforge HS PLA+ @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge HS PLA+ @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge HS PLA+ @FF Adventurer A5.json new file mode 100644 index 0000000000..22c1c9870f --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge HS PLA+ @FF Adventurer A5.json @@ -0,0 +1,50 @@ +{ + "type": "filament", + "name": "Flashforge HS PLA+ @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "V4jIUQzxoZkK50mn", + "filament_id": "OFXB8ZI7", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_flow_ratio": [ + "0.94" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge HS PLA+ @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..ec9f63af46 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PETG Basic @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "0sotIYsGkpQpcq6Y", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "filament_settings_id": [ + "Flashforge PETG Basic @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "textured_cool_plate_temp": [ + "70" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..7ebc60dc50 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PETG Pro @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "SZmG7gbmfOCGc8Fa", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "filament_settings_id": [ + "Flashforge PETG Pro @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "textured_cool_plate_temp": [ + "70" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF Adventurer A5.json new file mode 100644 index 0000000000..b1a6a9f7e5 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Pro @FF Adventurer A5.json @@ -0,0 +1,92 @@ +{ + "type": "filament", + "name": "Flashforge PETG Pro @FF Adventurer A5", + "inherits": "Generic PETG @Flashforge", + "from": "system", + "setting_id": "rPy6e6kaIt2tI34j", + "filament_id": "OFXiArjA", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "additional_cooling_fan_speed": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "2" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "75" + ], + "eng_plate_temp_initial_layer": [ + "75" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "10" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_settings_id": [ + "Flashforge PETG Pro @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "75" + ], + "hot_plate_temp_initial_layer": [ + "75" + ], + "nozzle_temperature": [ + "265" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "75" + ], + "supertack_plate_temp_initial_layer": [ + "75" + ], + "support_material_interface_fan_speed": [ + "100" + ], + "textured_cool_plate_temp": [ + "75" + ], + "textured_cool_plate_temp_initial_layer": [ + "75" + ], + "textured_plate_temp": [ + "75" + ], + "textured_plate_temp_initial_layer": [ + "75" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..1c116250c6 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "name": "Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PETG Transparent @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "PJ1sXWRB5uQa7TAJ", + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "filament_settings_id": [ + "Flashforge PETG Transparent @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "textured_cool_plate_temp": [ + "70" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF Adventurer A5.json new file mode 100644 index 0000000000..15ccd1d0ac --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PETG Transparent @FF Adventurer A5.json @@ -0,0 +1,92 @@ +{ + "type": "filament", + "name": "Flashforge PETG Transparent @FF Adventurer A5", + "inherits": "Generic PETG @Flashforge", + "from": "system", + "setting_id": "axOWrjnN5lofH9qM", + "filament_id": "OFwjMiKL", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "additional_cooling_fan_speed": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "2" + ], + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "75" + ], + "eng_plate_temp_initial_layer": [ + "75" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "10" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "filament_settings_id": [ + "Flashforge PETG Transparent @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "75" + ], + "hot_plate_temp_initial_layer": [ + "75" + ], + "nozzle_temperature": [ + "265" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_layer_time": [ + "12" + ], + "slow_down_min_speed": [ + "20" + ], + "supertack_plate_temp": [ + "75" + ], + "supertack_plate_temp_initial_layer": [ + "75" + ], + "support_material_interface_fan_speed": [ + "100" + ], + "textured_cool_plate_temp": [ + "75" + ], + "textured_cool_plate_temp_initial_layer": [ + "75" + ], + "textured_plate_temp": [ + "75" + ], + "textured_plate_temp_initial_layer": [ + "75" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF Adventurer A5.json new file mode 100644 index 0000000000..c4001061f2 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PETG-CF @FF Adventurer A5.json @@ -0,0 +1,53 @@ +{ + "type": "filament", + "name": "Flashforge PETG-CF @FF Adventurer A5", + "inherits": "Generic PETG-CF10 @Flashforge", + "from": "system", + "setting_id": "aDSOS4PWssYHk8Fh", + "filament_id": "OFuFEtKX", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "0" + ], + "eng_plate_temp": [ + "70" + ], + "eng_plate_temp_initial_layer": [ + "70" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_settings_id": [ + "Flashforge PETG-CF @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "supertack_plate_temp": [ + "70" + ], + "supertack_plate_temp_initial_layer": [ + "70" + ], + "textured_cool_plate_temp": [ + "70" + ], + "textured_cool_plate_temp_initial_layer": [ + "70" + ], + "textured_plate_temp": [ + "70" + ], + "textured_plate_temp_initial_layer": [ + "70" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..f94dbbd8c4 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA Basic @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "e8JkrQPgHO1ekM7Q", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_settings_id": [ + "Flashforge PLA Basic @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF Adventurer A5.json new file mode 100644 index 0000000000..6fdc1bdb17 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Basic @FF Adventurer A5.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Flashforge PLA Basic @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "HCpI817HAWckXBtk", + "filament_id": "OFJ3F2jm", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge PLA Basic @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..7cd3bae5bd --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA Color Change @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "8ifsgreK3DQhMfeh", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_settings_id": [ + "Flashforge PLA Color Change @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF Adventurer A5.json new file mode 100644 index 0000000000..2eeb85526c --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Color Change @FF Adventurer A5.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Flashforge PLA Color Change @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "o1Fl6t8nFCKZoj3Q", + "filament_id": "OFMkAW6r", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge PLA Color Change @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.035" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..c75415adf9 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA Galaxy @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "WViVLfSsNolVB55w", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_settings_id": [ + "Flashforge PLA Galaxy @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF Adventurer A5.json new file mode 100644 index 0000000000..a833b55331 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Galaxy @FF Adventurer A5.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Flashforge PLA Galaxy @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "4rpfTTgZrsVDwxI9", + "filament_id": "OFJJ0Ar3", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge PLA Galaxy @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..85f661e98f --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,36 @@ +{ + "type": "filament", + "name": "Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", + "from": "system", + "setting_id": "FpqRF3Gw0ftvpvay", + "filament_id": "OFDDdgHM", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_flow_ratio": [ + "1.04" + ], + "filament_settings_id": [ + "Flashforge PLA LITE @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA LITE @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA LITE @FF Adventurer A5.json new file mode 100644 index 0000000000..36e0a64d69 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA LITE @FF Adventurer A5.json @@ -0,0 +1,50 @@ +{ + "type": "filament", + "name": "Flashforge PLA LITE @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "2QZaQyg66IJPbsSc", + "filament_id": "OFDDdgHM", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_flow_ratio": [ + "1.02" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge PLA LITE @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..53a0749e1d --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA Luminous @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "e3Yir3COUY9MyFdE", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_settings_id": [ + "Flashforge PLA Luminous @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF Adventurer A5.json new file mode 100644 index 0000000000..0be02b85f5 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Luminous @FF Adventurer A5.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Flashforge PLA Luminous @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "GqNeJoH4M1IVAXrZ", + "filament_id": "OFdqkWtz", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge PLA Luminous @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..cc011b9336 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA Matte @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "o2Ttw4qaxOTgEWtp", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_settings_id": [ + "Flashforge PLA Matte @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF Adventurer A5.json new file mode 100644 index 0000000000..33a2228f8d --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Matte @FF Adventurer A5.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Flashforge PLA Matte @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "Jk7PRQkF2lFEtI8Q", + "filament_id": "OF6qAuyi", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge PLA Matte @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..92a8d1c8db --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA Metal @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "eg4osx9bpk61uXvT", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_settings_id": [ + "Flashforge PLA Metal @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF Adventurer A5.json new file mode 100644 index 0000000000..1ef06a756b --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Metal @FF Adventurer A5.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Flashforge PLA Metal @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "Gs8hS5CpV3W62pjs", + "filament_id": "OFAebKg8", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge PLA Metal @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..15f7813b78 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA Pro @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "sD9IWFJxvKTDfpXm", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_settings_id": [ + "Flashforge PLA Pro @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF Adventurer A5.json new file mode 100644 index 0000000000..416c8bf207 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Pro @FF Adventurer A5.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Flashforge PLA Pro @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "vTVCr1id0cTtMzuE", + "filament_id": "OFm4SivL", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge PLA Pro @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..0a63c055a3 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "name": "Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA Silk @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "ipe3qzXePPZ9pMmY", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_settings_id": [ + "Flashforge PLA Silk @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "220" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF Adventurer A5.json new file mode 100644 index 0000000000..e157b16c6d --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Silk @FF Adventurer A5.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Flashforge PLA Silk @FF Adventurer A5", + "inherits": "Generic PLA-Silk @Flashforge", + "from": "system", + "setting_id": "XXmeUWaLyVCTDS6G", + "filament_id": "OFgjgN35", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_settings_id": [ + "Flashforge PLA Silk @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.035" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..ebf72e7fb1 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "name": "Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA Sparkle @FF AD5M 0.25 nozzle", + "from": "system", + "setting_id": "VV75FchmjnPjnDE8", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_settings_id": [ + "Flashforge PLA Sparkle @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF Adventurer A5.json new file mode 100644 index 0000000000..b7954c6677 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA Sparkle @FF Adventurer A5.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Flashforge PLA Sparkle @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "dscnwSfbrGWiS4Um", + "filament_id": "OFV5c8hG", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge PLA Sparkle @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF Adventurer A5.json new file mode 100644 index 0000000000..542045cdeb --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge PLA-CF @FF Adventurer A5.json @@ -0,0 +1,56 @@ +{ + "type": "filament", + "name": "Flashforge PLA-CF @FF Adventurer A5", + "inherits": "Generic PLA-CF10 @Flashforge", + "from": "system", + "setting_id": "EpC2ItdGUxFV7x1y", + "filament_id": "OF9cAwMK", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "eng_plate_temp_initial_layer": [ + "55" + ], + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_settings_id": [ + "Flashforge PLA-CF @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ], + "textured_plate_temp_initial_layer": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge R PLA @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Flashforge R PLA @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..e898843db9 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge R PLA @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,33 @@ +{ + "type": "filament", + "name": "Flashforge R PLA @FF Adventurer A5 0.25 nozzle", + "inherits": "Flashforge PLA @FF AD5M 0.25 Nozzle", + "from": "system", + "setting_id": "G0qAKoO8Dyo0hO6G", + "filament_id": "OFT02Lz9", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_settings_id": [ + "Flashforge R PLA @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge R PLA @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge R PLA @FF Adventurer A5.json new file mode 100644 index 0000000000..e5511d5622 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge R PLA @FF Adventurer A5.json @@ -0,0 +1,50 @@ +{ + "type": "filament", + "name": "Flashforge R PLA @FF Adventurer A5", + "inherits": "Generic PLA @Flashforge", + "from": "system", + "setting_id": "sN7eGcbuGZxGrbR5", + "filament_id": "OFT02Lz9", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "45" + ], + "cool_plate_temp_initial_layer": [ + "45" + ], + "eng_plate_temp": [ + "55" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_settings_id": [ + "Flashforge R PLA @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "hot_plate_temp": [ + "55" + ], + "pressure_advance": [ + "0.0325" + ], + "slow_down_layer_time": [ + "8" + ], + "textured_cool_plate_temp": [ + "45" + ], + "textured_cool_plate_temp_initial_layer": [ + "45" + ], + "textured_plate_temp": [ + "55" + ] +} diff --git a/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF Adventurer A5.json new file mode 100644 index 0000000000..19b0981798 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Flashforge TPU 95A @FF Adventurer A5.json @@ -0,0 +1,38 @@ +{ + "type": "filament", + "name": "Flashforge TPU 95A @FF Adventurer A5", + "inherits": "Generic TPU @Flashforge", + "from": "system", + "setting_id": "2MT9C2rvvQ3uU1lG", + "filament_id": "OFSqIcJC", + "filament_vendor": [ + "Flashforge" + ], + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_settings_id": [ + "Flashforge TPU 95A @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "textured_plate_temp": [ + "45" + ], + "textured_plate_temp_initial_layer": [ + "45" + ] +} diff --git a/resources/profiles/Flashforge/filament/Generic PETG @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Generic PETG @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..764b31e9c4 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Generic PETG @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "name": "Generic PETG @FF Adventurer A5 0.25 nozzle", + "inherits": "Generic PETG @FF AD5M 0.25 Nozzle", + "from": "system", + "setting_id": "KSKX6BHNQgmOEShO", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "1.2" + ], + "filament_settings_id": [ + "Generic PETG @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ] +} diff --git a/resources/profiles/Flashforge/filament/Generic PLA @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/filament/Generic PLA @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..416e42006f --- /dev/null +++ b/resources/profiles/Flashforge/filament/Generic PLA @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "name": "Generic PLA @FF Adventurer A5 0.25 nozzle", + "inherits": "Generic PLA @FF AD5M 0.25 Nozzle", + "from": "system", + "setting_id": "kHdLzX8Auwz9tFvw", + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2.2" + ], + "filament_settings_id": [ + "Generic PLA @FF Adventurer A5 0.25 nozzle" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/Flashforge/filament/Kexcelled TPU 64D @FF Adventurer A5.json b/resources/profiles/Flashforge/filament/Kexcelled TPU 64D @FF Adventurer A5.json new file mode 100644 index 0000000000..285af63564 --- /dev/null +++ b/resources/profiles/Flashforge/filament/Kexcelled TPU 64D @FF Adventurer A5.json @@ -0,0 +1,38 @@ +{ + "type": "filament", + "name": "Kexcelled TPU 64D @FF Adventurer A5", + "inherits": "Generic TPU @Flashforge", + "from": "system", + "setting_id": "OB4I8nwZn8sCcCcF", + "filament_id": "OF20zavY", + "filament_vendor": [ + "Kexcelled" + ], + "instantiation": "true", + "cool_plate_temp": [ + "40" + ], + "cool_plate_temp_initial_layer": [ + "40" + ], + "eng_plate_temp": [ + "45" + ], + "eng_plate_temp_initial_layer": [ + "45" + ], + "filament_settings_id": [ + "Kexcelled TPU 64D @FF Adventurer A5" + ], + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle", + "Flashforge Adventurer A5 0.6 nozzle", + "Flashforge Adventurer A5 0.8 nozzle" + ], + "textured_plate_temp": [ + "45" + ], + "textured_plate_temp_initial_layer": [ + "45" + ] +} diff --git a/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..d9665ff0bb --- /dev/null +++ b/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.25 nozzle.json @@ -0,0 +1,233 @@ +{ + "type": "machine", + "name": "Flashforge Adventurer A5 0.25 nozzle", + "inherits": "Flashforge Adventurer 5M Pro 0.25 Nozzle", + "from": "system", + "setting_id": "TZyRxvTiJNKNJWCD", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "1", + "bbl_use_printhost": "0", + "bed_custom_model": "", + "bed_custom_texture": "", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "default_filament_profile": [ + "Generic PLA @Flashforge" + ], + "default_print_profile": "0.12mm Standard @FF Adventurer A5 0.25 nozzle", + "deretraction_speed": [ + "35" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "150", + "extruder_clearance_height_to_rod": "27", + "extruder_clearance_radius": "76", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "20000", + "20000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "20000", + "20000" + ], + "machine_max_acceleration_x": [ + "20000", + "20000" + ], + "machine_max_acceleration_y": [ + "20000", + "20000" + ], + "machine_max_acceleration_z": [ + "500", + "500" + ], + "machine_max_jerk_e": [ + "2.5", + "2.5" + ], + "machine_max_jerk_x": [ + "9", + "9" + ], + "machine_max_jerk_y": [ + "9", + "9" + ], + "machine_max_jerk_z": [ + "3", + "3" + ], + "machine_max_speed_e": [ + "30", + "30" + ], + "machine_max_speed_x": [ + "600", + "600" + ], + "machine_max_speed_y": [ + "600", + "600" + ], + "machine_max_speed_z": [ + "20", + "20" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "PAUSE", + "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG1 Z5 F6000\nG90 E0\nM83\nG1 E-1 F600\nG1 E8 F300\nG1 X85 Y110 Z0.2 F1200\nG1 X-110 E15 F2400\nG1 Y0 E4 F2400\nG1 X-109.6 F2400\nG1 Y110 E5 F2400\nG92 E0", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "max_layer_height": [ + "0.14" + ], + "min_layer_height": [ + "0.08" + ], + "nozzle_diameter": [ + "0.25" + ], + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": "stainless_steel", + "nozzle_volume": "0", + "parking_pos_retraction": "0", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "printable_area": [ + "-110x-110", + "110x-110", + "110x110", + "-110x110" + ], + "printable_height": "220", + "printer_model": "Flashforge Adventurer A5", + "printer_notes": "", + "printer_settings_id": "Flashforge Adventurer A5 0.25 nozzle", + "printer_structure": "undefine", + "printer_technology": "FFF", + "printer_variant": "0.25", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "1", + "retract_before_wipe": [ + "100%" + ], + "retract_length_toolchange": [ + "2" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_on_top_layer": [ + "1" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "1" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "35" + ], + "scan_first_layer": "0", + "single_extruder_multi_material": "0", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "1", + "template_custom_gcode": "", + "thumbnails": "140x110/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "2" + ], + "z_hop": [ + "0.3" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0" +} diff --git a/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.4 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.4 nozzle.json new file mode 100644 index 0000000000..04de9fb9ec --- /dev/null +++ b/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.4 nozzle.json @@ -0,0 +1,233 @@ +{ + "type": "machine", + "name": "Flashforge Adventurer A5 0.4 nozzle", + "inherits": "Flashforge Adventurer 5M Pro 0.4 Nozzle", + "from": "system", + "setting_id": "EOhWyVbRzFtAc33v", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "1", + "bbl_use_printhost": "0", + "bed_custom_model": "", + "bed_custom_texture": "", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "default_filament_profile": [ + "Generic PLA @Flashforge" + ], + "default_print_profile": "0.20mm Standard @FF Adventurer A5 0.4 nozzle", + "deretraction_speed": [ + "35" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "150", + "extruder_clearance_height_to_rod": "27", + "extruder_clearance_radius": "76", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "20000", + "20000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "20000", + "20000" + ], + "machine_max_acceleration_x": [ + "20000", + "20000" + ], + "machine_max_acceleration_y": [ + "20000", + "20000" + ], + "machine_max_acceleration_z": [ + "500", + "500" + ], + "machine_max_jerk_e": [ + "2.5", + "2.5" + ], + "machine_max_jerk_x": [ + "9", + "9" + ], + "machine_max_jerk_y": [ + "9", + "9" + ], + "machine_max_jerk_z": [ + "3", + "3" + ], + "machine_max_speed_e": [ + "30", + "30" + ], + "machine_max_speed_x": [ + "600", + "600" + ], + "machine_max_speed_y": [ + "600", + "600" + ], + "machine_max_speed_z": [ + "20", + "20" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "PAUSE", + "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F6000\nG1 E-0.2 F800\nG1 X110 Y-110 F6000\nG1 E2 F800\nG1 Y-110 X55 Z0.25 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG1 Y-110 X55 Z0.45 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG92 E0", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "max_layer_height": [ + "0.28" + ], + "min_layer_height": [ + "0.08" + ], + "nozzle_diameter": [ + "0.4" + ], + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": "hardened_steel", + "nozzle_volume": "0", + "parking_pos_retraction": "0", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "printable_area": [ + "-110x-110", + "110x-110", + "110x110", + "-110x110" + ], + "printable_height": "220", + "printer_model": "Flashforge Adventurer A5", + "printer_notes": "", + "printer_settings_id": "Flashforge Adventurer A5 0.4 nozzle", + "printer_structure": "undefine", + "printer_technology": "FFF", + "printer_variant": "0.4", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "1", + "retract_before_wipe": [ + "100%" + ], + "retract_length_toolchange": [ + "2" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_on_top_layer": [ + "1" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "0.8" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "35" + ], + "scan_first_layer": "0", + "single_extruder_multi_material": "0", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "1", + "template_custom_gcode": "", + "thumbnails": "140x110/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "2" + ], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0" +} diff --git a/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.6 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.6 nozzle.json new file mode 100644 index 0000000000..0ac8ffe783 --- /dev/null +++ b/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.6 nozzle.json @@ -0,0 +1,233 @@ +{ + "type": "machine", + "name": "Flashforge Adventurer A5 0.6 nozzle", + "inherits": "Flashforge Adventurer 5M Pro 0.6 Nozzle", + "from": "system", + "setting_id": "gu3ZxlImr6zK3yb6", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "1", + "bbl_use_printhost": "0", + "bed_custom_model": "", + "bed_custom_texture": "", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "default_filament_profile": [ + "Generic PLA @Flashforge" + ], + "default_print_profile": "0.30mm Standard @FF Adventurer A5 0.6 nozzle", + "deretraction_speed": [ + "35" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "150", + "extruder_clearance_height_to_rod": "27", + "extruder_clearance_radius": "76", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "20000", + "20000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "20000", + "20000" + ], + "machine_max_acceleration_x": [ + "20000", + "20000" + ], + "machine_max_acceleration_y": [ + "20000", + "20000" + ], + "machine_max_acceleration_z": [ + "500", + "500" + ], + "machine_max_jerk_e": [ + "2.5", + "2.5" + ], + "machine_max_jerk_x": [ + "9", + "9" + ], + "machine_max_jerk_y": [ + "9", + "9" + ], + "machine_max_jerk_z": [ + "3", + "3" + ], + "machine_max_speed_e": [ + "30", + "30" + ], + "machine_max_speed_x": [ + "600", + "600" + ], + "machine_max_speed_y": [ + "600", + "600" + ], + "machine_max_speed_z": [ + "20", + "20" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "PAUSE", + "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG90\nM83\nG1 Z5 F6000\nG1 E-0.2 F800\nG1 X110 Y-110 F6000\nG1 E2 F800\nG1 Y-110 X55 Z0.25 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG1 Y-110 X55 Z0.45 F4800\nG1 X-55 E8 F2400\nG1 Y-109.6 F2400\nG1 X55 E5 F2400\nG92 E0", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "max_layer_height": [ + "0.42" + ], + "min_layer_height": [ + "0.15" + ], + "nozzle_diameter": [ + "0.6" + ], + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": "hardened_steel", + "nozzle_volume": "0", + "parking_pos_retraction": "0", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "printable_area": [ + "-110x-110", + "110x-110", + "110x110", + "-110x110" + ], + "printable_height": "220", + "printer_model": "Flashforge Adventurer A5", + "printer_notes": "", + "printer_settings_id": "Flashforge Adventurer A5 0.6 nozzle", + "printer_structure": "undefine", + "printer_technology": "FFF", + "printer_variant": "0.6", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "1", + "retract_before_wipe": [ + "100%" + ], + "retract_length_toolchange": [ + "2" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_on_top_layer": [ + "1" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "1.2" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "35" + ], + "scan_first_layer": "0", + "single_extruder_multi_material": "0", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "1", + "template_custom_gcode": "", + "thumbnails": "140x110/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "2" + ], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0" +} diff --git a/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.8 nozzle.json b/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.8 nozzle.json new file mode 100644 index 0000000000..e982ec00a9 --- /dev/null +++ b/resources/profiles/Flashforge/machine/Flashforge Adventurer A5 0.8 nozzle.json @@ -0,0 +1,233 @@ +{ + "type": "machine", + "name": "Flashforge Adventurer A5 0.8 nozzle", + "inherits": "Flashforge Adventurer 5M Pro 0.8 Nozzle", + "from": "system", + "setting_id": "tKE8SP6KOhIupWbU", + "instantiation": "true", + "adaptive_bed_mesh_margin": "0", + "auxiliary_fan": "1", + "bbl_use_printhost": "0", + "bed_custom_model": "", + "bed_custom_texture": "", + "bed_exclude_area": [ + "0x0" + ], + "bed_mesh_max": "99999,99999", + "bed_mesh_min": "-99999,-99999", + "bed_mesh_probe_distance": "50,50", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]", + "best_object_pos": "0.5,0.5", + "change_extrusion_role_gcode": "", + "change_filament_gcode": "", + "cooling_tube_length": "0", + "cooling_tube_retraction": "0", + "default_filament_profile": [ + "Generic PLA @Flashforge" + ], + "default_print_profile": "0.40mm Standard @FF Adventurer A5 0.8 nozzle", + "deretraction_speed": [ + "35" + ], + "disable_m73": "0", + "emit_machine_limits_to_gcode": "1", + "enable_filament_ramming": "0", + "enable_long_retraction_when_cut": "0", + "extra_loading_move": "0", + "extruder_clearance_height_to_lid": "150", + "extruder_clearance_height_to_rod": "27", + "extruder_clearance_radius": "76", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "fan_kickstart": "0", + "fan_speedup_overhangs": "1", + "fan_speedup_time": "0", + "gcode_flavor": "klipper", + "head_wrap_detect_zone": [], + "high_current_on_filament_swap": "0", + "host_type": "octoprint", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "long_retractions_when_cut": [ + "0" + ], + "machine_end_gcode": "G1 E-3 F3600\nG0 X50 Y50 F30000\nM104 S0 ; turn off temperature", + "machine_load_filament_time": "0", + "machine_max_acceleration_e": [ + "5000", + "5000" + ], + "machine_max_acceleration_extruding": [ + "20000", + "20000" + ], + "machine_max_acceleration_retracting": [ + "5000", + "5000" + ], + "machine_max_acceleration_travel": [ + "20000", + "20000" + ], + "machine_max_acceleration_x": [ + "20000", + "20000" + ], + "machine_max_acceleration_y": [ + "20000", + "20000" + ], + "machine_max_acceleration_z": [ + "500", + "500" + ], + "machine_max_jerk_e": [ + "2.5", + "2.5" + ], + "machine_max_jerk_x": [ + "9", + "9" + ], + "machine_max_jerk_y": [ + "9", + "9" + ], + "machine_max_jerk_z": [ + "3", + "3" + ], + "machine_max_speed_e": [ + "30", + "30" + ], + "machine_max_speed_x": [ + "600", + "600" + ], + "machine_max_speed_y": [ + "600", + "600" + ], + "machine_max_speed_z": [ + "20", + "20" + ], + "machine_min_extruding_rate": [ + "0", + "0" + ], + "machine_min_travel_rate": [ + "0", + "0" + ], + "machine_pause_gcode": "PAUSE", + "machine_start_gcode": "M190 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nG1 Z5 F6000\nG1 E-1.5 F600\nG1 E12 F800\nG1 X85 Y110 Z0.3 F1200\nG1 X-110 E30 F2400\nG1 Y0 E8 F2400\nG1 X-109.6 F2400\nG1 Y110 E10 F2400\nG92 E0", + "machine_tool_change_time": "0", + "machine_unload_filament_time": "0", + "manual_filament_change": "0", + "max_layer_height": [ + "0.56" + ], + "min_layer_height": [ + "0.24" + ], + "nozzle_diameter": [ + "0.8" + ], + "nozzle_height": "2.5", + "nozzle_hrc": "0", + "nozzle_type": "hardened_steel", + "nozzle_volume": "0", + "parking_pos_retraction": "0", + "pellet_modded_printer": "0", + "preferred_orientation": "0", + "printable_area": [ + "-110x-110", + "110x-110", + "110x110", + "-110x110" + ], + "printable_height": "220", + "printer_model": "Flashforge Adventurer A5", + "printer_notes": "", + "printer_settings_id": "Flashforge Adventurer A5 0.8 nozzle", + "printer_structure": "undefine", + "printer_technology": "FFF", + "printer_variant": "0.8", + "printhost_authorization_type": "key", + "printhost_ssl_ignore_revoke": "0", + "printing_by_object_gcode": "", + "purge_in_prime_tower": "1", + "retract_before_wipe": [ + "100%" + ], + "retract_length_toolchange": [ + "2" + ], + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "0" + ], + "retract_lift_enforce": [ + "All Surfaces" + ], + "retract_on_top_layer": [ + "1" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_distances_when_cut": [ + "18" + ], + "retraction_length": [ + "1.5" + ], + "retraction_minimum_travel": [ + "1" + ], + "retraction_speed": [ + "35" + ], + "scan_first_layer": "0", + "single_extruder_multi_material": "0", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "support_multi_bed_types": "1", + "template_custom_gcode": "", + "thumbnails": "140x110/PNG", + "thumbnails_format": "PNG", + "time_cost": "0", + "time_lapse_gcode": "", + "travel_slope": [ + "3" + ], + "upward_compatible_machine": [], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "wipe": [ + "1" + ], + "wipe_distance": [ + "2" + ], + "z_hop": [ + "0" + ], + "z_hop_types": [ + "Auto Lift" + ], + "z_offset": "0" +} diff --git a/resources/profiles/Flashforge/machine/Flashforge Adventurer A5.json b/resources/profiles/Flashforge/machine/Flashforge Adventurer A5.json new file mode 100644 index 0000000000..8b7c579ca4 --- /dev/null +++ b/resources/profiles/Flashforge/machine/Flashforge Adventurer A5.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Flashforge Adventurer A5", + "model_id": "Flashforge-Adventurer-A5", + "nozzle_diameter": "0.25;0.4;0.6;0.8", + "machine_tech": "FFF", + "family": "Flashforge", + "bed_model": "flashforge_adventurer5m_series_buildplate_model.STL", + "bed_texture": "flashforge_adventurer5m_buildplate_texture.svg", + "hotend_model": "flashforge_adventurer_5m_series_hotend.STL", + "default_materials": "Generic ABS @Flashforge;Generic PETG @Flashforge;Generic PLA @Flashforge;Flashforge PLA Basic @FF Adventurer A5;Generic PLA @FF Adventurer A5 0.25 nozzle" +} diff --git a/resources/profiles/Flashforge/process/0.06mm Standard @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/process/0.06mm Standard @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..62a2cbd3d1 --- /dev/null +++ b/resources/profiles/Flashforge/process/0.06mm Standard @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "name": "0.06mm Standard @FF Adventurer A5 0.25 nozzle", + "inherits": "0.06mm Standard @Flashforge AD5M Pro 0.25 Nozzle", + "from": "system", + "setting_id": "426xS3MFF3smfdDE", + "instantiation": "true", + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "infill_wall_overlap": "15%", + "only_one_wall_top": "1", + "print_settings_id": "0.06mm Standard @FF Adventurer A5 0.25 nozzle", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "25", + "sparse_infill_pattern": "grid", + "wipe_speed": "200" +} diff --git a/resources/profiles/Flashforge/process/0.08mm Standard @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/process/0.08mm Standard @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..21c8dd069b --- /dev/null +++ b/resources/profiles/Flashforge/process/0.08mm Standard @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "name": "0.08mm Standard @FF Adventurer A5 0.25 nozzle", + "inherits": "0.08mm Standard @Flashforge AD5M Pro 0.25 Nozzle", + "from": "system", + "setting_id": "2N8NG8IpxxCPXZlq", + "instantiation": "true", + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "infill_wall_overlap": "15%", + "only_one_wall_top": "1", + "print_settings_id": "0.08mm Standard @FF Adventurer A5 0.25 nozzle", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "25", + "sparse_infill_pattern": "grid", + "wipe_speed": "200" +} diff --git a/resources/profiles/Flashforge/process/0.10mm Standard @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/process/0.10mm Standard @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..a53d6c235f --- /dev/null +++ b/resources/profiles/Flashforge/process/0.10mm Standard @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "name": "0.10mm Standard @FF Adventurer A5 0.25 nozzle", + "inherits": "0.10mm Standard @Flashforge AD5M Pro 0.25 Nozzle", + "from": "system", + "setting_id": "H74U0yaiNgyQpdbc", + "instantiation": "true", + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "infill_wall_overlap": "15%", + "only_one_wall_top": "1", + "print_settings_id": "0.10mm Standard @FF Adventurer A5 0.25 nozzle", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "25", + "sparse_infill_pattern": "grid", + "wipe_speed": "200" +} diff --git a/resources/profiles/Flashforge/process/0.12mm Fine @FF Adventurer A5 0.4 nozzle.json b/resources/profiles/Flashforge/process/0.12mm Fine @FF Adventurer A5 0.4 nozzle.json new file mode 100644 index 0000000000..58b5bc5c5d --- /dev/null +++ b/resources/profiles/Flashforge/process/0.12mm Fine @FF Adventurer A5 0.4 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "name": "0.12mm Fine @FF Adventurer A5 0.4 nozzle", + "inherits": "0.12mm Fine @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "setting_id": "G5AhxHk95GfXw6ec", + "instantiation": "true", + "bridge_flow": "1", + "enable_arc_fitting": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle" + ], + "infill_wall_overlap": "15%", + "initial_layer_print_height": "0.2", + "only_one_wall_top": "1", + "print_settings_id": "0.12mm Fine @FF Adventurer A5 0.4 nozzle", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "25", + "sparse_infill_pattern": "grid", + "support_line_width": "0.42" +} diff --git a/resources/profiles/Flashforge/process/0.12mm Standard @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/process/0.12mm Standard @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..ddd5449889 --- /dev/null +++ b/resources/profiles/Flashforge/process/0.12mm Standard @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "process", + "name": "0.12mm Standard @FF Adventurer A5 0.25 nozzle", + "inherits": "0.12mm Standard @Flashforge AD5M Pro 0.25 Nozzle", + "from": "system", + "setting_id": "x28lWqpQxkirzYXm", + "instantiation": "true", + "enable_arc_fitting": "1", + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "infill_wall_overlap": "15%", + "only_one_wall_top": "1", + "slowdown_for_curled_perimeters": "0", + "print_settings_id": "0.12mm Standard @FF Adventurer A5 0.25 nozzle", + "sparse_infill_pattern": "grid" +} diff --git a/resources/profiles/Flashforge/process/0.14mm Standard @FF Adventurer A5 0.25 nozzle.json b/resources/profiles/Flashforge/process/0.14mm Standard @FF Adventurer A5 0.25 nozzle.json new file mode 100644 index 0000000000..09cf76fb60 --- /dev/null +++ b/resources/profiles/Flashforge/process/0.14mm Standard @FF Adventurer A5 0.25 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "name": "0.14mm Standard @FF Adventurer A5 0.25 nozzle", + "inherits": "0.14mm Standard @Flashforge AD5M Pro 0.25 Nozzle", + "from": "system", + "setting_id": "Xx4fcIZ3esI4IXbl", + "instantiation": "true", + "elefant_foot_compensation": "0.15", + "enable_arc_fitting": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "compatible_printers": [ + "Flashforge Adventurer A5 0.25 nozzle" + ], + "infill_wall_overlap": "15%", + "only_one_wall_top": "1", + "print_settings_id": "0.14mm Standard @FF Adventurer A5 0.25 nozzle", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "25", + "sparse_infill_pattern": "grid", + "wipe_speed": "200" +} diff --git a/resources/profiles/Flashforge/process/0.18mm Fine @FF Adventurer A5 0.6 nozzle.json b/resources/profiles/Flashforge/process/0.18mm Fine @FF Adventurer A5 0.6 nozzle.json new file mode 100644 index 0000000000..6213e93574 --- /dev/null +++ b/resources/profiles/Flashforge/process/0.18mm Fine @FF Adventurer A5 0.6 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "name": "0.18mm Fine @FF Adventurer A5 0.6 nozzle", + "inherits": "0.18mm Fine @Flashforge AD5M Pro 0.6 Nozzle", + "from": "system", + "setting_id": "USICCgjHQ4aHkqMM", + "instantiation": "true", + "enable_arc_fitting": "1", + "enable_support": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "compatible_printers": [ + "Flashforge Adventurer A5 0.6 nozzle" + ], + "infill_wall_overlap": "15%", + "initial_layer_print_height": "0.25", + "only_one_wall_top": "1", + "print_settings_id": "0.18mm Fine @FF Adventurer A5 0.6 nozzle", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "25", + "support_bottom_z_distance": "0.2", + "support_top_z_distance": "0.2" +} diff --git a/resources/profiles/Flashforge/process/0.20mm Standard @FF Adventurer A5 0.4 nozzle.json b/resources/profiles/Flashforge/process/0.20mm Standard @FF Adventurer A5 0.4 nozzle.json new file mode 100644 index 0000000000..4f1e8cba7c --- /dev/null +++ b/resources/profiles/Flashforge/process/0.20mm Standard @FF Adventurer A5 0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "process", + "name": "0.20mm Standard @FF Adventurer A5 0.4 nozzle", + "inherits": "0.20mm Standard @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "setting_id": "ZrWC7sW8I5eH0nI0", + "instantiation": "true", + "enable_arc_fitting": "1", + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle" + ], + "infill_wall_overlap": "15%", + "only_one_wall_top": "1", + "print_settings_id": "0.20mm Standard @FF Adventurer A5 0.4 nozzle", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "25", + "support_bottom_z_distance": "0.2", + "support_top_z_distance": "0.2" +} diff --git a/resources/profiles/Flashforge/process/0.24mm Draft @FF Adventurer A5 0.4 nozzle.json b/resources/profiles/Flashforge/process/0.24mm Draft @FF Adventurer A5 0.4 nozzle.json new file mode 100644 index 0000000000..7cbac2a836 --- /dev/null +++ b/resources/profiles/Flashforge/process/0.24mm Draft @FF Adventurer A5 0.4 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "name": "0.24mm Draft @FF Adventurer A5 0.4 nozzle", + "inherits": "0.24mm Draft @Flashforge AD5M Pro 0.4 Nozzle", + "from": "system", + "setting_id": "nniAHPVQxmVlEZqp", + "instantiation": "true", + "enable_arc_fitting": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "compatible_printers": [ + "Flashforge Adventurer A5 0.4 nozzle" + ], + "infill_wall_overlap": "15%", + "initial_layer_print_height": "0.25", + "only_one_wall_top": "1", + "print_settings_id": "0.24mm Draft @FF Adventurer A5 0.4 nozzle", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "25", + "support_bottom_z_distance": "0.2", + "support_top_z_distance": "0.2" +} diff --git a/resources/profiles/Flashforge/process/0.24mm Fine @FF Adventurer A5 0.8 nozzle.json b/resources/profiles/Flashforge/process/0.24mm Fine @FF Adventurer A5 0.8 nozzle.json new file mode 100644 index 0000000000..8ff452ef10 --- /dev/null +++ b/resources/profiles/Flashforge/process/0.24mm Fine @FF Adventurer A5 0.8 nozzle.json @@ -0,0 +1,19 @@ +{ + "type": "process", + "name": "0.24mm Fine @FF Adventurer A5 0.8 nozzle", + "inherits": "0.24mm Fine @Flashforge AD5M Pro 0.8 Nozzle", + "from": "system", + "setting_id": "INfUgOlQBMZLYrfu", + "instantiation": "true", + "bridge_flow": "1", + "enable_arc_fitting": "1", + "compatible_printers": [ + "Flashforge Adventurer A5 0.8 nozzle" + ], + "infill_wall_overlap": "15%", + "initial_layer_print_height": "0.3", + "only_one_wall_top": "1", + "print_settings_id": "0.24mm Fine @FF Adventurer A5 0.8 nozzle", + "slowdown_for_curled_perimeters": "0", + "sparse_infill_pattern": "grid" +} diff --git a/resources/profiles/Flashforge/process/0.30mm Standard @FF Adventurer A5 0.6 nozzle.json b/resources/profiles/Flashforge/process/0.30mm Standard @FF Adventurer A5 0.6 nozzle.json new file mode 100644 index 0000000000..d8376dad80 --- /dev/null +++ b/resources/profiles/Flashforge/process/0.30mm Standard @FF Adventurer A5 0.6 nozzle.json @@ -0,0 +1,22 @@ +{ + "type": "process", + "name": "0.30mm Standard @FF Adventurer A5 0.6 nozzle", + "inherits": "0.30mm Standard @Flashforge AD5M Pro 0.6 Nozzle", + "from": "system", + "setting_id": "zNxUHo9HvYPlL2KP", + "instantiation": "true", + "enable_arc_fitting": "1", + "compatible_printers": [ + "Flashforge Adventurer A5 0.6 nozzle" + ], + "infill_wall_overlap": "15%", + "only_one_wall_top": "1", + "print_settings_id": "0.30mm Standard @FF Adventurer A5 0.6 nozzle", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "25", + "sparse_infill_pattern": "grid", + "support_bottom_z_distance": "0.2", + "support_top_z_distance": "0.2" +} diff --git a/resources/profiles/Flashforge/process/0.40mm Standard @FF Adventurer A5 0.8 nozzle.json b/resources/profiles/Flashforge/process/0.40mm Standard @FF Adventurer A5 0.8 nozzle.json new file mode 100644 index 0000000000..4a0300bccc --- /dev/null +++ b/resources/profiles/Flashforge/process/0.40mm Standard @FF Adventurer A5 0.8 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "process", + "name": "0.40mm Standard @FF Adventurer A5 0.8 nozzle", + "inherits": "0.40mm Standard @Flashforge AD5M Pro 0.8 Nozzle", + "from": "system", + "setting_id": "Davfy2YyV2b7ofhd", + "instantiation": "true", + "enable_arc_fitting": "1", + "compatible_printers": [ + "Flashforge Adventurer A5 0.8 nozzle" + ], + "infill_wall_overlap": "15%", + "print_settings_id": "0.40mm Standard @FF Adventurer A5 0.8 nozzle", + "slowdown_for_curled_perimeters": "0", + "sparse_infill_pattern": "grid", + "support_bottom_z_distance": "0.25", + "support_top_z_distance": "0.25" +} diff --git a/resources/profiles/Flashforge/process/0.42mm Draft @FF Adventurer A5 0.6 nozzle.json b/resources/profiles/Flashforge/process/0.42mm Draft @FF Adventurer A5 0.6 nozzle.json new file mode 100644 index 0000000000..de9c64ea11 --- /dev/null +++ b/resources/profiles/Flashforge/process/0.42mm Draft @FF Adventurer A5 0.6 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "process", + "name": "0.42mm Draft @FF Adventurer A5 0.6 nozzle", + "inherits": "0.42mm Draft @Flashforge AD5M Pro 0.6 Nozzle", + "from": "system", + "setting_id": "k35K2zIeyVhqNVC1", + "instantiation": "true", + "bridge_flow": "1", + "enable_arc_fitting": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "compatible_printers": [ + "Flashforge Adventurer A5 0.6 nozzle" + ], + "infill_wall_overlap": "15%", + "initial_layer_print_height": "0.3", + "only_one_wall_top": "1", + "print_settings_id": "0.42mm Draft @FF Adventurer A5 0.6 nozzle", + "seam_slope_conditional": "1", + "seam_slope_inner_walls": "1", + "slowdown_for_curled_perimeters": "0", + "small_perimeter_speed": "25", + "sparse_infill_pattern": "grid" +} diff --git a/resources/profiles/Flashforge/process/0.56mm Draft @FF Adventurer A5 0.8 nozzle.json b/resources/profiles/Flashforge/process/0.56mm Draft @FF Adventurer A5 0.8 nozzle.json new file mode 100644 index 0000000000..b95c9c1895 --- /dev/null +++ b/resources/profiles/Flashforge/process/0.56mm Draft @FF Adventurer A5 0.8 nozzle.json @@ -0,0 +1,16 @@ +{ + "type": "process", + "name": "0.56mm Draft @FF Adventurer A5 0.8 nozzle", + "inherits": "0.56mm Draft @Flashforge AD5M Pro 0.8 Nozzle", + "from": "system", + "setting_id": "AMe67pwFNPpsDJ9B", + "instantiation": "true", + "enable_arc_fitting": "1", + "compatible_printers": [ + "Flashforge Adventurer A5 0.8 nozzle" + ], + "infill_wall_overlap": "25%", + "print_settings_id": "0.56mm Draft @FF Adventurer A5 0.8 nozzle", + "slowdown_for_curled_perimeters": "0", + "sparse_infill_pattern": "grid" +} From b6bb1b92c941c1f7f0eeb5f980fd949e3a9f2430 Mon Sep 17 00:00:00 2001 From: Tim Schneider <tim@schneider.engineering> Date: Mon, 21 Sep 2026 18:14:33 +0200 Subject: [PATCH 70/76] Add Meltingplot vendor profiles (CHX 350 + MBL series) (#14756) * Add Meltingplot vendor profiles (CHX 350 + MBL series) Adds the Meltingplot vendor bundle with 5 printer models: - CHX 350 (880x422x943, RepRapFirmware/Duet) - MBL 133/136/308/480 (RepRapFirmware/Duet) Each model ships 0.4/0.6/0.8/1.0/1.2 nozzle variants. Layer height presets span 40-60% of the nozzle diameter and deliberately avoid heights that divide the Z screw lead evenly (CHX: 1204 ball screw, 4 mm lead; MBL: TR4x2 trapezoidal screw, 8 mm lead) so periodic screw error does not repeat as banding. All printers use 2.85 mm filament, so the bundle carries its own filament library (PLA, StoneFil, ABS, TitanX, ASA, PETG, PA6 CF HT, STYX 12, PP 9-2, PET-CF15, Extrudr PLA NX2 Matt, Igus iglidur J260) with the 2.85 mm diameter pinned once in the vendor-local fdm_filament_common base. Machine limits mirror the printers' firmware configuration; machine limit emission is disabled so the values only feed the time estimator. * Add per-nozzle volumetric flow limits and nozzle size in filename Cap filament volumetric speed per nozzle (0.4: 14, 0.6: 20, 0.8: 26, 1.0: 30, 1.2: 40 mm3/s). Filaments whose limit exceeds a nozzle's capability get a nozzle-scoped child profile that only lowers filament_max_volumetric_speed; filament_id is inherited so all nozzle variants remain the same material. Also include layer height and nozzle diameter in the g-code filename. * Set CHX 350 machine time cost to 5 EUR/h * Inherit Meltingplot filaments from OrcaFilamentLibrary generics Per the profile creation guide, vendor filament profiles now inherit from Generic * @System instead of vendor-local fdm_filament_* copies. Each profile carries only Meltingplot-specific deviations plus the 2.85 mm filament diameter; the seven local fdm_filament_* base files are removed. Deliberate pins where the library default would change tuned behavior: - PLA/ABS/TitanX keep filament_max_volumetric_speed 20 (0.6 nozzle cap) - ABS/PET-CF15 keep close_fan_the_first_x_layers 1 - STYX 12 sets required_nozzle_HRC 0 (unfilled PA12, density 1.02) * Remove Meltingplot StoneFil filament profile * Meltingplot ABS: use library fan settings * Meltingplot TitanX/ABS: use library fan and nozzle temperature settings * Remove STYX 12, PP 9-2 and Igus iglidur J260 filament profiles * Meltingplot ASA: use library fan_max_speed * Derive per-nozzle volumetric speed caps from physical limit formula Caps now follow V = 34*d * m / S: the 34*d limit line calibrated on Micro Swiss Volcano plated copper at 2.85 mm, material factor m from the OrcaFilamentLibrary generic ratios (PLA/ABS/ASA 1.0, PETG 10/12, PETG-CF 11.5/12, PA-CF 8/12, PLA Matte 11/12), safety factor S = 1.25 covering batch/moisture/wear/diameter tolerances. Each material base now serves the 1.2 nozzle at its maximum cap; children @0.4-@1.0 lower the cap per nozzle. Machine variant default_filament_profile entries point at the matching preset. * Scale slow_down_layer_time per nozzle from bead cross-section Minimum layer time follows the derived cooling rule: heat per layer scales with bead cross-section (layer height x line width), so the 0.8-nozzle-tuned values are scaled by q(d)/q(0.8) using each nozzle's standard preset geometry. Bases carry the 1.2 value, children @0.4-@1.0 their nozzle-specific value. * Meltingplot: lift Z above the print before the end macro Add a G90 / G1 Z{min(max_layer_z + 5, printable_height)} F600 move at the start of machine_end_gcode, before M98 print_end shuts the printer down and parks it. Besides clearing the part, the explicit Z coordinate lets the Duet file-info parser pick up the object height. * Meltingplot: cap default layer height at 40% of outer wall width A 45 deg slope shifts each bead outward by exactly one layer height. With the Slic3r bead model (rectangle (w-h) x h plus half-circles of diameter h) the flat contact band to the layer below is w - 2h, so the maximum self-supporting angle is atan((w-h)/h). Support cannot compensate: the stair tread at 45 deg is only h wide, far below one support line width, so no support line ever fits underneath a single step. All ten machine variants defaulted to h/w = 0.455..0.524, i.e. at or past the h/w = 0.5 point where the flat contact vanishes. The 0.8 nozzle default (0.44 mm at w = 0.84) reached atan(0.4/0.44) = 42.3 deg and failed on 45 deg slopes even with support. Default presets now satisfy h <= 0.40 * outer_wall_line_width, which leaves one third of the bead's flat underside in contact at 45 deg and puts the geometric limit at 56.3 deg. To keep the defaults on sensible ladder rungs, outer wall width is widened where it was the binding constraint: chx_small 110 -> 115%, chx_large 105 -> 110%, mbl_04 105 -> 115%. Ladders are unchanged; the thicker rungs stay available for parts without steep overhangs. * Meltingplot PLA: raise slow_down_layer_time by calibration factor 1.5 Print feedback on CHX 350 with a 0.8 nozzle at 0.44 mm layer height showed curling at the retraction points with the derived value of 25 s. There is no cooling headroom left to trade: fdm_filament_pla pins fan_min_speed = fan_max_speed = 100, and additional_cooling_fan_speed is inert because no Meltingplot machine enables auxiliary_fan. Minimum layer time is the only remaining lever; 35 s prints cleanly at that geometry. The cross-section rule only fixes the ratios between nozzle sizes, so this is a calibration of the PLA anchor itself: both PLA ladders are scaled by 1.5 (Extrudr 9/20/38/56/83 s, Meltingplot PLA 8/17/30/45/66 s for 0.4/0.6/0.8/1.0/1.2). The Extrudr base fan_cooling_layer_time goes 60 -> 100 so the 1.2-nozzle value stays below it. Other materials are left unchanged - only the PLA anchor has a real counter-example so far. * Meltingplot: drop layer heights that cannot print 45 degree walls A preset whose layer height exceeds ~45% of the outer wall line width has less than ~6 degrees of reserve on a 45 degree wall (max self-supporting angle atan((w-h)/h)), and support cannot compensate because the 45 degree stair tread is only h wide - far below one support line. Those presets are not usable in practice, so shipping them only invites failed prints. Removes the 22 rungs above h/w = 0.45 and prunes them from the vendor index. What remains per nozzle (default first): CHX 350 0.4: 0.18 | 0.6: 0.24 0.28 | 0.8: 0.32 0.36 1.0: 0.44 0.48 | 1.2: 0.48 0.56 MBL 0.4: 0.18 | 0.6: 0.24 0.28 | 0.8: 0.36 0.34 1.0: 0.44 0.48 | 1.2: 0.48 0.56 The 0.4 nozzle keeps a single rung: 0.20 mm would qualify (h/w = 0.435) but divides both screw leads evenly (4/0.20, 8/0.20) and stays excluded by the Z-artifact rule, and 0.22 is already at 0.478. Also corrects the MBL 0.8 default to 0.36 mm, which at w = 0.92 sits at h/w = 0.391 and therefore still satisfies the stricter 40% default rule. * Meltingplot: require 5 degrees of reserve on 45 degree walls Replaces the two separate thresholds (h <= 0.40 * outer wall width for defaults, 0.45 for ladder rungs) with a single requirement stated on the design constraint itself: every shipped preset must reach a_max = atan((w - h) / h) >= 50 deg i.e. 5 degrees of reserve on a 45 degree wall, equivalent to h <= 0.456 * outer_wall_line_width. The default is simply the thickest rung that passes. The 11 degrees the 40% rule produced were more margin than the failure mode warrants, and cost throughput for no return. For calibration: across 940 machine defaults from 60 vendor bundles in this repo, the median reserve is +1.8 deg, 71% ship less than 5 deg, and 8% cannot geometrically produce a 45 deg wall at all. Adds the rungs the relaxed threshold makes available - 0.30 (0.6 nozzle, both series) and 0.38 (0.8 nozzle, both series) - and restores the 0.30 mm MBL preset removed in 5b4862b3 with its original setting_id. 0.20 mm on the 0.4 nozzle and 0.50 mm on the 1.0 nozzle would also qualify but stay excluded because they divide both screw leads evenly. Defaults are now (0.4/0.6/0.8/1.0/1.2) 0.18/0.30/0.38/0.48/0.56 for both series, at 50.2 to 57.3 deg. The 1.2 nozzle deliberately keeps 0.56 rather than the 0.60 the rule would allow: solidification time scales with h^2 and bead weight with h*w, so the largest nozzle is the one that should not sit on the minimum. * Meltingplot: disable precise wall by default Precise wall was inheriting OrcaSlicer's global default of true. Disable it bundle-wide in the vendor process root so it applies to CHX 350 and all MBL models. Note it was already ignored on the CHX small-nozzle branch, which uses the inner-outer-inner wall sequence. * Meltingplot CHX: raise max extruding acceleration to 6000 The 4000 limit silently clamped the profiles' 6000 values for default and inner wall acceleration, since GCodeWriter caps print acceleration against machine_max_acceleration_extruding regardless of emit_machine_limits_to_gcode. Raising it to 6000 matches the X/Y limits so the configured values are emitted as-is. The firmware's own M201 still governs what is actually driven. * Meltingplot PA6 CF HT: raise part cooling floor to 40% Sharp 90 degree corners were washing out layer by layer while straight walls and overhangs printed cleanly. Overhangs are fine because overhang_fan_speed forces 100% regardless of layer time; everything else fell back to fan_min_speed, since at the layer times seen in practice neither branch of the layer-time fan interpolation applies. Raise fan_min_speed to 40% and set reduce_fan_stop_start_freq so that floor is actually applied instead of dropping to zero. Also lower the auxiliary fan to 40% and raise the overhang cooling threshold to 95%, matching the values validated on the print. * Meltingplot: re-mint filament ids with orca_id_tool Upstream now requires every filament_id to be a minted "OF" id derived from the (filament_vendor, filament_type, name) triple and recorded in scripts/filament_id_snapshot.json. The hand-made ids this bundle shipped with (MPFPLA0, EXTNX2M, ...) were rejected by orca_extra_profile_check. Regenerate them with "orca_id_tool.py --generate --vendor Meltingplot" and record the result with --update-snapshot. No setting_id changed, and the ids were never released, so no existing project file refers to them. * Meltingplot: normalize bundle for updated profile checks Drop obsolete keys (silent_mode, adaptive_layer_height, tree_support_with_infill) and rebuild the vendor index in canonical order, as orca_profile_tool.py normalize / update-index write them. * Meltingplot: list per-nozzle filaments in default_materials The unsuffixed filament presets only cover the 1.2 mm variants, so the 0.4-1.0 mm printer presets had no compatible entry in their model's default_materials. The validator's check_printer_default_materials rejects that, and load_installed_filaments would auto-install no filament for those variants on first run. Name the @0.4/0.6/0.8/1.0 nozzle presets alongside the base ones for PLA, PETG, ABS and ASA. --------- Co-authored-by: yw4z <ywsyildiz@gmail.com> --- resources/profiles/Meltingplot.json | 434 ++++++++++++++++++ .../Meltingplot/Meltingplot CHX 350_cover.png | Bin 0 -> 147766 bytes .../Meltingplot/Meltingplot MBL 133_cover.png | Bin 0 -> 42858 bytes .../Meltingplot/Meltingplot MBL 136_cover.png | Bin 0 -> 32398 bytes .../Meltingplot/Meltingplot MBL 308_cover.png | Bin 0 -> 36673 bytes .../Meltingplot/Meltingplot MBL 480_cover.png | Bin 0 -> 36570 bytes .../profiles/Meltingplot/chx350-printbed.stl | Bin 0 -> 183284 bytes .../profiles/Meltingplot/chx350-texture.svg | 5 + .../Extrudr PLA NX2 Matt @0.4 nozzle.json | 21 + .../Extrudr PLA NX2 Matt @0.6 nozzle.json | 21 + .../Extrudr PLA NX2 Matt @0.8 nozzle.json | 21 + .../Extrudr PLA NX2 Matt @1.0 nozzle.json | 21 + .../filament/Extrudr PLA NX2 Matt.json | 79 ++++ .../filament/Meltingplot ABS @0.4 nozzle.json | 21 + .../filament/Meltingplot ABS @0.6 nozzle.json | 21 + .../filament/Meltingplot ABS @0.8 nozzle.json | 21 + .../filament/Meltingplot ABS @1.0 nozzle.json | 21 + .../Meltingplot/filament/Meltingplot ABS.json | 70 +++ .../filament/Meltingplot ASA @0.4 nozzle.json | 21 + .../filament/Meltingplot ASA @0.6 nozzle.json | 21 + .../filament/Meltingplot ASA @0.8 nozzle.json | 21 + .../filament/Meltingplot ASA @1.0 nozzle.json | 21 + .../Meltingplot/filament/Meltingplot ASA.json | 70 +++ .../Meltingplot PA6 CF HT @0.4 nozzle.json | 21 + .../Meltingplot PA6 CF HT @0.6 nozzle.json | 21 + .../Meltingplot PA6 CF HT @0.8 nozzle.json | 21 + .../Meltingplot PA6 CF HT @1.0 nozzle.json | 21 + .../filament/Meltingplot PA6 CF HT.json | 94 ++++ .../Meltingplot PET-CF15 @0.4 nozzle.json | 21 + .../Meltingplot PET-CF15 @0.6 nozzle.json | 21 + .../Meltingplot PET-CF15 @0.8 nozzle.json | 21 + .../Meltingplot PET-CF15 @1.0 nozzle.json | 21 + .../filament/Meltingplot PET-CF15.json | 91 ++++ .../Meltingplot PETG @0.4 nozzle.json | 21 + .../Meltingplot PETG @0.6 nozzle.json | 21 + .../Meltingplot PETG @0.8 nozzle.json | 21 + .../Meltingplot PETG @1.0 nozzle.json | 21 + .../filament/Meltingplot PETG.json | 70 +++ .../filament/Meltingplot PLA @0.4 nozzle.json | 21 + .../filament/Meltingplot PLA @0.6 nozzle.json | 21 + .../filament/Meltingplot PLA @0.8 nozzle.json | 21 + .../filament/Meltingplot PLA @1.0 nozzle.json | 21 + .../Meltingplot/filament/Meltingplot PLA.json | 67 +++ .../Meltingplot TitanX @0.4 nozzle.json | 21 + .../Meltingplot TitanX @0.6 nozzle.json | 21 + .../Meltingplot TitanX @0.8 nozzle.json | 21 + .../Meltingplot TitanX @1.0 nozzle.json | 21 + .../filament/Meltingplot TitanX.json | 61 +++ .../Meltingplot CHX 350 0.4 nozzle.json | 30 ++ .../Meltingplot CHX 350 0.6 nozzle.json | 30 ++ .../Meltingplot CHX 350 0.8 nozzle.json | 32 ++ .../Meltingplot CHX 350 1.0 nozzle.json | 33 ++ .../Meltingplot CHX 350 1.2 nozzle.json | 33 ++ .../machine/Meltingplot CHX 350.json | 12 + .../Meltingplot MBL 133 0.4 nozzle.json | 30 ++ .../Meltingplot MBL 133 0.6 nozzle.json | 30 ++ .../Meltingplot MBL 133 0.8 nozzle.json | 30 ++ .../Meltingplot MBL 133 1.0 nozzle.json | 30 ++ .../Meltingplot MBL 133 1.2 nozzle.json | 30 ++ .../machine/Meltingplot MBL 133.json | 12 + .../Meltingplot MBL 136 0.4 nozzle.json | 30 ++ .../Meltingplot MBL 136 0.6 nozzle.json | 30 ++ .../Meltingplot MBL 136 0.8 nozzle.json | 30 ++ .../Meltingplot MBL 136 1.0 nozzle.json | 30 ++ .../Meltingplot MBL 136 1.2 nozzle.json | 30 ++ .../machine/Meltingplot MBL 136.json | 12 + .../Meltingplot MBL 308 0.4 nozzle.json | 30 ++ .../Meltingplot MBL 308 0.6 nozzle.json | 30 ++ .../Meltingplot MBL 308 0.8 nozzle.json | 30 ++ .../Meltingplot MBL 308 1.0 nozzle.json | 30 ++ .../Meltingplot MBL 308 1.2 nozzle.json | 30 ++ .../machine/Meltingplot MBL 308.json | 12 + .../Meltingplot MBL 480 0.4 nozzle.json | 30 ++ .../Meltingplot MBL 480 0.6 nozzle.json | 30 ++ .../Meltingplot MBL 480 0.8 nozzle.json | 30 ++ .../Meltingplot MBL 480 1.0 nozzle.json | 30 ++ .../Meltingplot MBL 480 1.2 nozzle.json | 30 ++ .../machine/Meltingplot MBL 480.json | 12 + .../machine/fdm_machine_common.json | 68 +++ .../machine/fdm_machine_meltingplot_chx.json | 71 +++ .../machine/fdm_machine_meltingplot_mbl.json | 69 +++ .../profiles/Meltingplot/mbl-133-texture.svg | 158 +++++++ .../profiles/Meltingplot/mbl-136-texture.svg | 158 +++++++ .../profiles/Meltingplot/mbl-308-texture.svg | 158 +++++++ .../profiles/Meltingplot/mbl-480-texture.svg | 158 +++++++ .../profiles/Meltingplot/mbl133-printbed.stl | Bin 0 -> 222284 bytes .../profiles/Meltingplot/mbl136-printbed.stl | Bin 0 -> 160484 bytes .../profiles/Meltingplot/mbl308-printbed.stl | Bin 0 -> 160484 bytes .../profiles/Meltingplot/mbl480-printbed.stl | Bin 0 -> 160484 bytes ... Fine 0.4 nozzle @Meltingplot CHX 350.json | 12 + ...18mm Fine 0.4 nozzle @Meltingplot MBL.json | 15 + ... Fine 0.6 nozzle @Meltingplot CHX 350.json | 12 + ...24mm Fine 0.6 nozzle @Meltingplot MBL.json | 15 + ...timal 0.6 nozzle @Meltingplot CHX 350.json | 12 + ...m Optimal 0.6 nozzle @Meltingplot MBL.json | 15 + ...ndard 0.6 nozzle @Meltingplot CHX 350.json | 12 + ... Standard 0.6 nozzle @Meltingplot MBL.json | 15 + ... Fine 0.8 nozzle @Meltingplot CHX 350.json | 12 + ...34mm Fine 0.8 nozzle @Meltingplot MBL.json | 15 + ...timal 0.8 nozzle @Meltingplot CHX 350.json | 12 + ...m Optimal 0.8 nozzle @Meltingplot MBL.json | 15 + ...ndard 0.8 nozzle @Meltingplot CHX 350.json | 12 + ... Standard 0.8 nozzle @Meltingplot MBL.json | 15 + ... Fine 1.0 nozzle @Meltingplot CHX 350.json | 12 + ...44mm Fine 1.0 nozzle @Meltingplot MBL.json | 15 + ... Fine 1.2 nozzle @Meltingplot CHX 350.json | 12 + ...48mm Fine 1.2 nozzle @Meltingplot MBL.json | 15 + ...timal 1.0 nozzle @Meltingplot CHX 350.json | 12 + ...m Optimal 1.0 nozzle @Meltingplot MBL.json | 15 + ...timal 1.2 nozzle @Meltingplot CHX 350.json | 12 + ...m Optimal 1.2 nozzle @Meltingplot MBL.json | 15 + .../process/fdm_process_common.json | 107 +++++ .../fdm_process_meltingplot_chx_common.json | 39 ++ ..._process_meltingplot_chx_large_nozzle.json | 26 ++ ..._process_meltingplot_chx_small_nozzle.json | 24 + ...fdm_process_meltingplot_mbl_04_nozzle.json | 14 + ...fdm_process_meltingplot_mbl_06_nozzle.json | 14 + ...fdm_process_meltingplot_mbl_08_nozzle.json | 14 + ...fdm_process_meltingplot_mbl_10_nozzle.json | 15 + ...fdm_process_meltingplot_mbl_12_nozzle.json | 15 + .../fdm_process_meltingplot_mbl_common.json | 60 +++ 121 files changed, 3996 insertions(+) create mode 100644 resources/profiles/Meltingplot.json create mode 100644 resources/profiles/Meltingplot/Meltingplot CHX 350_cover.png create mode 100644 resources/profiles/Meltingplot/Meltingplot MBL 133_cover.png create mode 100644 resources/profiles/Meltingplot/Meltingplot MBL 136_cover.png create mode 100644 resources/profiles/Meltingplot/Meltingplot MBL 308_cover.png create mode 100644 resources/profiles/Meltingplot/Meltingplot MBL 480_cover.png create mode 100644 resources/profiles/Meltingplot/chx350-printbed.stl create mode 100644 resources/profiles/Meltingplot/chx350-texture.svg create mode 100644 resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot ABS @0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot ABS @0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot ABS @0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot ABS @1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot ABS.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot ASA @0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot ASA @0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot ASA @0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot ASA @1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot ASA.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PET-CF15.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PETG @0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PETG @0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PETG @0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PETG @1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PETG.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PLA @0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PLA @0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PLA @0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PLA @1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot PLA.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot TitanX @1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/filament/Meltingplot TitanX.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot CHX 350 1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot CHX 350 1.2 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 133 1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 133 1.2 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 133.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 136 1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 136 1.2 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 136.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 308 1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 308 1.2 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 308.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.4 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.6 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.8 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 480 1.0 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 480 1.2 nozzle.json create mode 100644 resources/profiles/Meltingplot/machine/Meltingplot MBL 480.json create mode 100644 resources/profiles/Meltingplot/machine/fdm_machine_common.json create mode 100644 resources/profiles/Meltingplot/machine/fdm_machine_meltingplot_chx.json create mode 100644 resources/profiles/Meltingplot/machine/fdm_machine_meltingplot_mbl.json create mode 100644 resources/profiles/Meltingplot/mbl-133-texture.svg create mode 100644 resources/profiles/Meltingplot/mbl-136-texture.svg create mode 100644 resources/profiles/Meltingplot/mbl-308-texture.svg create mode 100644 resources/profiles/Meltingplot/mbl-480-texture.svg create mode 100644 resources/profiles/Meltingplot/mbl133-printbed.stl create mode 100644 resources/profiles/Meltingplot/mbl136-printbed.stl create mode 100644 resources/profiles/Meltingplot/mbl308-printbed.stl create mode 100644 resources/profiles/Meltingplot/mbl480-printbed.stl create mode 100644 resources/profiles/Meltingplot/process/0.18mm Fine 0.4 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.18mm Fine 0.4 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/0.24mm Fine 0.6 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.24mm Fine 0.6 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/0.28mm Optimal 0.6 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.28mm Optimal 0.6 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/0.30mm Standard 0.6 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.30mm Standard 0.6 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/0.32mm Fine 0.8 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.34mm Fine 0.8 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/0.36mm Optimal 0.8 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.36mm Optimal 0.8 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/0.38mm Standard 0.8 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.38mm Standard 0.8 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/0.44mm Fine 1.0 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.44mm Fine 1.0 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/0.48mm Fine 1.2 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.48mm Fine 1.2 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/0.48mm Optimal 1.0 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.48mm Optimal 1.0 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/0.56mm Optimal 1.2 nozzle @Meltingplot CHX 350.json create mode 100644 resources/profiles/Meltingplot/process/0.56mm Optimal 1.2 nozzle @Meltingplot MBL.json create mode 100644 resources/profiles/Meltingplot/process/fdm_process_common.json create mode 100644 resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_common.json create mode 100644 resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_large_nozzle.json create mode 100644 resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_small_nozzle.json create mode 100644 resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_04_nozzle.json create mode 100644 resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_06_nozzle.json create mode 100644 resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_08_nozzle.json create mode 100644 resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_10_nozzle.json create mode 100644 resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_12_nozzle.json create mode 100644 resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_common.json diff --git a/resources/profiles/Meltingplot.json b/resources/profiles/Meltingplot.json new file mode 100644 index 0000000000..654d955380 --- /dev/null +++ b/resources/profiles/Meltingplot.json @@ -0,0 +1,434 @@ +{ + "name": "Meltingplot", + "version": "02.04.00.00", + "force_update": "0", + "description": "Meltingplot configurations", + "machine_model_list": [ + { + "name": "Meltingplot CHX 350", + "sub_path": "machine/Meltingplot CHX 350.json" + }, + { + "name": "Meltingplot MBL 133", + "sub_path": "machine/Meltingplot MBL 133.json" + }, + { + "name": "Meltingplot MBL 136", + "sub_path": "machine/Meltingplot MBL 136.json" + }, + { + "name": "Meltingplot MBL 308", + "sub_path": "machine/Meltingplot MBL 308.json" + }, + { + "name": "Meltingplot MBL 480", + "sub_path": "machine/Meltingplot MBL 480.json" + } + ], + "process_list": [ + { + "name": "fdm_process_common", + "sub_path": "process/fdm_process_common.json" + }, + { + "name": "fdm_process_meltingplot_chx_common", + "sub_path": "process/fdm_process_meltingplot_chx_common.json" + }, + { + "name": "fdm_process_meltingplot_mbl_common", + "sub_path": "process/fdm_process_meltingplot_mbl_common.json" + }, + { + "name": "fdm_process_meltingplot_chx_large_nozzle", + "sub_path": "process/fdm_process_meltingplot_chx_large_nozzle.json" + }, + { + "name": "fdm_process_meltingplot_chx_small_nozzle", + "sub_path": "process/fdm_process_meltingplot_chx_small_nozzle.json" + }, + { + "name": "fdm_process_meltingplot_mbl_04_nozzle", + "sub_path": "process/fdm_process_meltingplot_mbl_04_nozzle.json" + }, + { + "name": "fdm_process_meltingplot_mbl_06_nozzle", + "sub_path": "process/fdm_process_meltingplot_mbl_06_nozzle.json" + }, + { + "name": "fdm_process_meltingplot_mbl_08_nozzle", + "sub_path": "process/fdm_process_meltingplot_mbl_08_nozzle.json" + }, + { + "name": "fdm_process_meltingplot_mbl_10_nozzle", + "sub_path": "process/fdm_process_meltingplot_mbl_10_nozzle.json" + }, + { + "name": "fdm_process_meltingplot_mbl_12_nozzle", + "sub_path": "process/fdm_process_meltingplot_mbl_12_nozzle.json" + }, + { + "name": "0.32mm Fine 0.8 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.32mm Fine 0.8 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.36mm Optimal 0.8 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.36mm Optimal 0.8 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.38mm Standard 0.8 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.38mm Standard 0.8 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.44mm Fine 1.0 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.44mm Fine 1.0 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.48mm Fine 1.2 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.48mm Fine 1.2 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.48mm Optimal 1.0 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.48mm Optimal 1.0 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.56mm Optimal 1.2 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.56mm Optimal 1.2 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.18mm Fine 0.4 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.18mm Fine 0.4 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.24mm Fine 0.6 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.24mm Fine 0.6 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.28mm Optimal 0.6 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.28mm Optimal 0.6 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.30mm Standard 0.6 nozzle @Meltingplot CHX 350", + "sub_path": "process/0.30mm Standard 0.6 nozzle @Meltingplot CHX 350.json" + }, + { + "name": "0.18mm Fine 0.4 nozzle @Meltingplot MBL", + "sub_path": "process/0.18mm Fine 0.4 nozzle @Meltingplot MBL.json" + }, + { + "name": "0.24mm Fine 0.6 nozzle @Meltingplot MBL", + "sub_path": "process/0.24mm Fine 0.6 nozzle @Meltingplot MBL.json" + }, + { + "name": "0.28mm Optimal 0.6 nozzle @Meltingplot MBL", + "sub_path": "process/0.28mm Optimal 0.6 nozzle @Meltingplot MBL.json" + }, + { + "name": "0.30mm Standard 0.6 nozzle @Meltingplot MBL", + "sub_path": "process/0.30mm Standard 0.6 nozzle @Meltingplot MBL.json" + }, + { + "name": "0.34mm Fine 0.8 nozzle @Meltingplot MBL", + "sub_path": "process/0.34mm Fine 0.8 nozzle @Meltingplot MBL.json" + }, + { + "name": "0.36mm Optimal 0.8 nozzle @Meltingplot MBL", + "sub_path": "process/0.36mm Optimal 0.8 nozzle @Meltingplot MBL.json" + }, + { + "name": "0.38mm Standard 0.8 nozzle @Meltingplot MBL", + "sub_path": "process/0.38mm Standard 0.8 nozzle @Meltingplot MBL.json" + }, + { + "name": "0.44mm Fine 1.0 nozzle @Meltingplot MBL", + "sub_path": "process/0.44mm Fine 1.0 nozzle @Meltingplot MBL.json" + }, + { + "name": "0.48mm Optimal 1.0 nozzle @Meltingplot MBL", + "sub_path": "process/0.48mm Optimal 1.0 nozzle @Meltingplot MBL.json" + }, + { + "name": "0.48mm Fine 1.2 nozzle @Meltingplot MBL", + "sub_path": "process/0.48mm Fine 1.2 nozzle @Meltingplot MBL.json" + }, + { + "name": "0.56mm Optimal 1.2 nozzle @Meltingplot MBL", + "sub_path": "process/0.56mm Optimal 1.2 nozzle @Meltingplot MBL.json" + } + ], + "filament_list": [ + { + "name": "Extrudr PLA NX2 Matt", + "sub_path": "filament/Extrudr PLA NX2 Matt.json" + }, + { + "name": "Meltingplot ABS", + "sub_path": "filament/Meltingplot ABS.json" + }, + { + "name": "Meltingplot ASA", + "sub_path": "filament/Meltingplot ASA.json" + }, + { + "name": "Meltingplot PA6 CF HT", + "sub_path": "filament/Meltingplot PA6 CF HT.json" + }, + { + "name": "Meltingplot PET-CF15", + "sub_path": "filament/Meltingplot PET-CF15.json" + }, + { + "name": "Meltingplot PETG", + "sub_path": "filament/Meltingplot PETG.json" + }, + { + "name": "Meltingplot PLA", + "sub_path": "filament/Meltingplot PLA.json" + }, + { + "name": "Meltingplot TitanX", + "sub_path": "filament/Meltingplot TitanX.json" + }, + { + "name": "Extrudr PLA NX2 Matt @0.4 nozzle", + "sub_path": "filament/Extrudr PLA NX2 Matt @0.4 nozzle.json" + }, + { + "name": "Extrudr PLA NX2 Matt @0.6 nozzle", + "sub_path": "filament/Extrudr PLA NX2 Matt @0.6 nozzle.json" + }, + { + "name": "Extrudr PLA NX2 Matt @0.8 nozzle", + "sub_path": "filament/Extrudr PLA NX2 Matt @0.8 nozzle.json" + }, + { + "name": "Extrudr PLA NX2 Matt @1.0 nozzle", + "sub_path": "filament/Extrudr PLA NX2 Matt @1.0 nozzle.json" + }, + { + "name": "Meltingplot ABS @0.4 nozzle", + "sub_path": "filament/Meltingplot ABS @0.4 nozzle.json" + }, + { + "name": "Meltingplot ABS @0.6 nozzle", + "sub_path": "filament/Meltingplot ABS @0.6 nozzle.json" + }, + { + "name": "Meltingplot ABS @0.8 nozzle", + "sub_path": "filament/Meltingplot ABS @0.8 nozzle.json" + }, + { + "name": "Meltingplot ABS @1.0 nozzle", + "sub_path": "filament/Meltingplot ABS @1.0 nozzle.json" + }, + { + "name": "Meltingplot ASA @0.4 nozzle", + "sub_path": "filament/Meltingplot ASA @0.4 nozzle.json" + }, + { + "name": "Meltingplot ASA @0.6 nozzle", + "sub_path": "filament/Meltingplot ASA @0.6 nozzle.json" + }, + { + "name": "Meltingplot ASA @0.8 nozzle", + "sub_path": "filament/Meltingplot ASA @0.8 nozzle.json" + }, + { + "name": "Meltingplot ASA @1.0 nozzle", + "sub_path": "filament/Meltingplot ASA @1.0 nozzle.json" + }, + { + "name": "Meltingplot PA6 CF HT @0.4 nozzle", + "sub_path": "filament/Meltingplot PA6 CF HT @0.4 nozzle.json" + }, + { + "name": "Meltingplot PA6 CF HT @0.6 nozzle", + "sub_path": "filament/Meltingplot PA6 CF HT @0.6 nozzle.json" + }, + { + "name": "Meltingplot PA6 CF HT @0.8 nozzle", + "sub_path": "filament/Meltingplot PA6 CF HT @0.8 nozzle.json" + }, + { + "name": "Meltingplot PA6 CF HT @1.0 nozzle", + "sub_path": "filament/Meltingplot PA6 CF HT @1.0 nozzle.json" + }, + { + "name": "Meltingplot PET-CF15 @0.4 nozzle", + "sub_path": "filament/Meltingplot PET-CF15 @0.4 nozzle.json" + }, + { + "name": "Meltingplot PET-CF15 @0.6 nozzle", + "sub_path": "filament/Meltingplot PET-CF15 @0.6 nozzle.json" + }, + { + "name": "Meltingplot PET-CF15 @0.8 nozzle", + "sub_path": "filament/Meltingplot PET-CF15 @0.8 nozzle.json" + }, + { + "name": "Meltingplot PET-CF15 @1.0 nozzle", + "sub_path": "filament/Meltingplot PET-CF15 @1.0 nozzle.json" + }, + { + "name": "Meltingplot PETG @0.4 nozzle", + "sub_path": "filament/Meltingplot PETG @0.4 nozzle.json" + }, + { + "name": "Meltingplot PETG @0.6 nozzle", + "sub_path": "filament/Meltingplot PETG @0.6 nozzle.json" + }, + { + "name": "Meltingplot PETG @0.8 nozzle", + "sub_path": "filament/Meltingplot PETG @0.8 nozzle.json" + }, + { + "name": "Meltingplot PETG @1.0 nozzle", + "sub_path": "filament/Meltingplot PETG @1.0 nozzle.json" + }, + { + "name": "Meltingplot PLA @0.4 nozzle", + "sub_path": "filament/Meltingplot PLA @0.4 nozzle.json" + }, + { + "name": "Meltingplot PLA @0.6 nozzle", + "sub_path": "filament/Meltingplot PLA @0.6 nozzle.json" + }, + { + "name": "Meltingplot PLA @0.8 nozzle", + "sub_path": "filament/Meltingplot PLA @0.8 nozzle.json" + }, + { + "name": "Meltingplot PLA @1.0 nozzle", + "sub_path": "filament/Meltingplot PLA @1.0 nozzle.json" + }, + { + "name": "Meltingplot TitanX @0.4 nozzle", + "sub_path": "filament/Meltingplot TitanX @0.4 nozzle.json" + }, + { + "name": "Meltingplot TitanX @0.6 nozzle", + "sub_path": "filament/Meltingplot TitanX @0.6 nozzle.json" + }, + { + "name": "Meltingplot TitanX @0.8 nozzle", + "sub_path": "filament/Meltingplot TitanX @0.8 nozzle.json" + }, + { + "name": "Meltingplot TitanX @1.0 nozzle", + "sub_path": "filament/Meltingplot TitanX @1.0 nozzle.json" + } + ], + "machine_list": [ + { + "name": "fdm_machine_common", + "sub_path": "machine/fdm_machine_common.json" + }, + { + "name": "fdm_machine_meltingplot_chx", + "sub_path": "machine/fdm_machine_meltingplot_chx.json" + }, + { + "name": "fdm_machine_meltingplot_mbl", + "sub_path": "machine/fdm_machine_meltingplot_mbl.json" + }, + { + "name": "Meltingplot CHX 350 0.4 nozzle", + "sub_path": "machine/Meltingplot CHX 350 0.4 nozzle.json" + }, + { + "name": "Meltingplot CHX 350 0.6 nozzle", + "sub_path": "machine/Meltingplot CHX 350 0.6 nozzle.json" + }, + { + "name": "Meltingplot CHX 350 0.8 nozzle", + "sub_path": "machine/Meltingplot CHX 350 0.8 nozzle.json" + }, + { + "name": "Meltingplot CHX 350 1.0 nozzle", + "sub_path": "machine/Meltingplot CHX 350 1.0 nozzle.json" + }, + { + "name": "Meltingplot CHX 350 1.2 nozzle", + "sub_path": "machine/Meltingplot CHX 350 1.2 nozzle.json" + }, + { + "name": "Meltingplot MBL 133 0.4 nozzle", + "sub_path": "machine/Meltingplot MBL 133 0.4 nozzle.json" + }, + { + "name": "Meltingplot MBL 133 0.6 nozzle", + "sub_path": "machine/Meltingplot MBL 133 0.6 nozzle.json" + }, + { + "name": "Meltingplot MBL 133 0.8 nozzle", + "sub_path": "machine/Meltingplot MBL 133 0.8 nozzle.json" + }, + { + "name": "Meltingplot MBL 133 1.0 nozzle", + "sub_path": "machine/Meltingplot MBL 133 1.0 nozzle.json" + }, + { + "name": "Meltingplot MBL 133 1.2 nozzle", + "sub_path": "machine/Meltingplot MBL 133 1.2 nozzle.json" + }, + { + "name": "Meltingplot MBL 136 0.4 nozzle", + "sub_path": "machine/Meltingplot MBL 136 0.4 nozzle.json" + }, + { + "name": "Meltingplot MBL 136 0.6 nozzle", + "sub_path": "machine/Meltingplot MBL 136 0.6 nozzle.json" + }, + { + "name": "Meltingplot MBL 136 0.8 nozzle", + "sub_path": "machine/Meltingplot MBL 136 0.8 nozzle.json" + }, + { + "name": "Meltingplot MBL 136 1.0 nozzle", + "sub_path": "machine/Meltingplot MBL 136 1.0 nozzle.json" + }, + { + "name": "Meltingplot MBL 136 1.2 nozzle", + "sub_path": "machine/Meltingplot MBL 136 1.2 nozzle.json" + }, + { + "name": "Meltingplot MBL 308 0.4 nozzle", + "sub_path": "machine/Meltingplot MBL 308 0.4 nozzle.json" + }, + { + "name": "Meltingplot MBL 308 0.6 nozzle", + "sub_path": "machine/Meltingplot MBL 308 0.6 nozzle.json" + }, + { + "name": "Meltingplot MBL 308 0.8 nozzle", + "sub_path": "machine/Meltingplot MBL 308 0.8 nozzle.json" + }, + { + "name": "Meltingplot MBL 308 1.0 nozzle", + "sub_path": "machine/Meltingplot MBL 308 1.0 nozzle.json" + }, + { + "name": "Meltingplot MBL 308 1.2 nozzle", + "sub_path": "machine/Meltingplot MBL 308 1.2 nozzle.json" + }, + { + "name": "Meltingplot MBL 480 0.4 nozzle", + "sub_path": "machine/Meltingplot MBL 480 0.4 nozzle.json" + }, + { + "name": "Meltingplot MBL 480 0.6 nozzle", + "sub_path": "machine/Meltingplot MBL 480 0.6 nozzle.json" + }, + { + "name": "Meltingplot MBL 480 0.8 nozzle", + "sub_path": "machine/Meltingplot MBL 480 0.8 nozzle.json" + }, + { + "name": "Meltingplot MBL 480 1.0 nozzle", + "sub_path": "machine/Meltingplot MBL 480 1.0 nozzle.json" + }, + { + "name": "Meltingplot MBL 480 1.2 nozzle", + "sub_path": "machine/Meltingplot MBL 480 1.2 nozzle.json" + } + ] +} diff --git a/resources/profiles/Meltingplot/Meltingplot CHX 350_cover.png b/resources/profiles/Meltingplot/Meltingplot CHX 350_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..2f625aedc4d78a5f2888a506ff483caae0e5e041 GIT binary patch literal 147766 zcmeFYcT`i|);F2}Lg=9ghzOw<X`u$BcaRPuAUz<x_uhMNQlu*)BA^1&q)JDs0!r@) zNbe=&Zl33y^PV&AH^v?B829_{Fv3W(_gZtWHT(R{l~_%6MM6AkJP-&(sH`NX4FX{R zA2C1>Y~bzK=f@@R*6F9K@1bq(4RdjGes1ev1@rKAv4UCo*ggk=e5M^WpAmKP5?t-E zBV=-qQ)$bPvdh>sbl%Eic>3>FSkjIlz1tU%dT<i^YooeaZHN+=;4V}pD#-1%$03%# zSAVodXez1P$1sX`*Y&d0-k-&X-Aa2VKPP1#&zrO*yyxoAw)s7mn0p`h8GVy<ecfAu z%Bj1b!}Z>_@Um@+o{qFF`}r%-nM*L?h04bf!d5b24@$ybnX$P<MTz-VMTB2Bf0y&Y z{B>#oWi2u+0D-`fwz9IC%CfTm+zqgYyuj3!$6uwWdJ5mD$Q#mdvMr|+Z&^^@b>)1* z85TLNXEV{UI?iJ=p7Oc@fmd}0N0Op~h<mt6v;i+{5ho@%1i{{<6uZY9NdcdColV}D z-&ooem$K2zu{-SoJ*i3XVBlUqtgu+T3y!cMGMBM<Q}B)R`I1QM?$XMYafY?;6iP%! zrNc5rgDD9<_aR0&##)#w|470$JCix`JkMvm2%l8a&DiTA(Y@b1)H*8B!LI<J%K4&6 zf7e1!NO$?(a!iR`2G6RI9>UpGuflV(l{MJ>Ls6w=gStIAE+>5~xm@4dS798Sa<)@S z@YFX)4bj0}2W5TC=@l3XNq2q}$+%rF2Jbi5KX>&TP{Zp9ou{0+p~A#ymZ~tHS?K*d zCknnEY0sQIn96ORW!+3nq7cEr{u~;=oy4*S&U)0opU!<Rjq$=3x0_)<NMRuZ2irOH zMzG#_$30I1WUw`HNa*4MNyuXJpIey=oD00Fe>2xc_u;NvTlf<cDWG;<wt#x+tEq}2 zogKN&EuAf_xP2U50KEfX%O%#rq19xw|lYg;FAhP~!C2AHj-IKxvxHC{CrSt}b` zB|kSS9Y1wlq@O)f#F9Z$0#D3G6d>Se<zWu<addEU7xfWm_=~P6@cH&K4+HG4As+VP z4Ek!CFj;3eE0_Sc05>m}ypOFHAA<xQOw7&lxu~|B!aqm=-^3YgJUm=Pd3e0Ny}7;l zxt-mtdEg=<B0Ri&JbZjyzz8mPUndW9A1)_%##<79(~z@rN4nX%c-T5S!ER}qTR3}q zh%+z%_hJ8BpQDSK+P}y<x&MO;06%zq%w2fk+`K%Fjy(T9!`(yP3n2231^pjqxa$H| z%A;-N?(FG?w37F-a`IsOcM_J!f6aICbaVJ?JC;ZuD+en_V5mFrRQP{9Qc+n=^ItP= zSzvAJ=<?SrfZ6{s(!=)o|1j%6)^>a6ukHN%LV)T2qWd4C|GD?S1_Pti)I{Z+k)F59 zQ<f8FxP88;r8CmjQuMEnNQ9LYucZ}&%fb>a!X;oXWWi-_$uGbKe{N;Lhd}TPTAEw^ z8!2TccMo$Xq}44cfH=1;KnE^tVFgDZdATe_ko;T%a4UW;a{&uWE<qs+K@lr~=Ysst z1^<nNhMO&*mF5orzN%YNmH;VX3w}!hxFE0^UVw@KuMjVnIa~zJ#V7n+(864R*GfP@ z=r2;1NKpl6H%D_ooVJeU)>b?&PS$_jxMjGgw5GB+10Of<|6I{@F!y*4OaN@a*2&V@ z+x>rT>DoG4>3Epm@)ItM;1>}P5ftPX;1z_62>;I@Ju5eNKo@VR!g;y*|6atcU_^oK z0IW5?)l`7MUo(K+h|0QInR__9={h?*h%?+S3U)j5U$@l&gR(UDFqbp;umXtk@(GFZ z3X8(|b>V`d{CuMP{118gM0x*hytAe4bKn23(YNLU6Z>1}O1AF6^L_ui^tVmvSh@cF z?eDJ+wtpED4EC2<h?*n+-h#WimzCvT>jY^1eG6%0?qqER_>X@m>_4yD{vVXV+?<b} z&m1AZg|LDPaS8BS0utmC=H(I=5J3nF3m^q~g%STr-QD@Qhqt+#m9#a$M}Sv=g8s!T z7~4NY#r~h;y=|;+<p8jZi&vQI-&n@L^N-E)+<J_E?pBQF|HTinzXtr9ivi~SeGPD3 zfG6bnmn-}Sziyq*|HZ$5$l?Fu69CfxeaQcczyD>|f7$iF;=uoE@PD=IzwG*7ao~S7 z_`llq{~NpT{->C-aso0SZ=h6?`ku52lv&soj}_(qD!4!wvdzK3CtMdL19uPzpX~M@ z49d-;0xsfsD67fiY~c_R!sxd=;4B~z45Tb4t?M)Wr^O(}@|OY2dA|E@ORF=<E^URP zoZj6u!#Pp{p%Q6FPV7(8ThcM$^oY>S(2gQ2zUL9V$oG+>m__D3q#Bsvb#<UIV~!%~ z%F-9Ar6fO<WV9(b*q<1@dq2z2iChp9GTk-USZY%A@wue-mn&HK_MMS&w%W99@S-*N zDhOk-5=7fMEq~9}?+u6s#2o?+frL<n_@GF@ixZ|i+r$$~jTd`E#B;~IYHj>nZO&pZ zFE<1w>#vND+-q`l5DGmeER*jIYP{ZgeJu}1S9qniXf7%~xW11C!-5gOZt&ao@neYt z7BQ78JxQf%bvb-Z&pRnWQdOKh@go7JHJ|S6GlRwsIh#{LCeihzSl_Xaap=Ki%6NYS z?S^s%?aLx0vD)pyvmbj`#(mHxnAe4VTji^B&E7gazcaKs6ha_UMm^c!1c9Euy}&*H zPEZ(>1AViHHo4hZxT#!i<*BI4)qnPk>~$<8TTwY=OA135hctxybrBiv2dsAB0h8Q? zEt8}ngWwx1kSz3)m=SVS)_OTnP1JTVB>Cduo)aM#4@LTt3xYJUTbzeHbh{}IuBh3A zpw|t9O2;xL!oxr%h7|`B6Hji|cqDnATU%eW_@8xoI|pif@jH7`o?(|o{rfJv4JfFY zTw3yV5uJsLQA&N+UytSlH>52t{6Q&#nS$4?gPxze7hcWAY=8LJjZ?2Eak#WF^uD^f z>xgm1#C#p6?>up;qSI13DJePLft%-5>f8O<50*q^8QQ}%(f2C@W!PCW+(0yjM?;Bf zH-+d!q_zq>=&f_W_Dc&}Tji?C%2<n!eXatIurUew(IgrVMy$Cl$TaxeR-TX({^2>m z?8hK(E^raod@zmF`pC_nk;7Y#_MUk^j$97kOQzhL9jL0V>WV+ADYkGe$W&o&sW*LL z#IYHLv~%0S6$xBn_g#rC>*`v~$j;4OkJXKORM0EV^G8QT1ev69Z!JPoT8ar0A)tat zVnk5h)VH2+-E`vfoP*A{wm8t~k{4v5r;!ow*3R<BvGaq35GGp1%-FZ8^&Gdo?&L-% zN0p`d(<i=l#IU97X-5WWW~>}Xx;qW4bjSyI?!>9Lnk`bTnv-(kYjgG6<?Ht*Y}{`F zPBhjuGaB)5rj;l3B__q+*O2Hgvo2UAOaC6=Py*B5tlgI(*+e9Pke!}J>Qoi%r2)*D zba>GLrFG7=>oB>1C4AGAhYuf;h6L<3ZgdR{#GOypw@w(j{7iy+_#czOKm1dWK3~3| zlY@?5F}B@oqqkpw?fZec^2Y0z3lLk4toi1e)&s+8hZlj0*y*F7Hd)%0nWI5<C3;y| zKL!p<IEP32GuN0!&h|rR*&XBTDp^D*8B$gHV`E)KJXe%O1dlSZ^KzFMkz_%9IS1lA ztB(pc_<PH>1`zHvU`#MZc_u{yysDP8!ruP+q3H!4dR@4U{>6(I2q-jCrF5L#qR0;# zA#F!6Tys8}hG7rz6vJ%iPYas0Fo5rB;9+$FzXBdUe$Dr*wVi%_1m9NE5`B+;i8_c1 z!U!TL$7F!>!VJkUWpT$cpz;u{4ARO>-7Ej*PqlTWlX@?HTwe!zqB|bi`TA<@>^cn2 z&5291uk;^7dB~m4b##Q!<;<rGv-2n}QsJpeuOlh(9#0)%S#g(TTtq;Jjn*GBi$K;4 z?RF!@s%l^Gv>c}eoc^+2`}5~L7K~ORfX#XS3%kh1PAz_}4g@>@85s`!oflO4HGsA< zgR-Wt%53beFjFoTaU>C!y}{SLWUZz-t=?yuG7Pl2Af<WFueLq<$048)tiZeuoqQ0L ztf~}V0vxAZ88QYEpqJB<5h&FSx8W)sT{|q8p4HE)7>su_H&>^KC+=Qe##rEXjJK=f zNEBkoQK|U&5f{#ndYzZs*wNd=>dP%Wu+nc%OB5YAMd;d@z1Kj?nxRx#SCk<%ju|FG z6nws4oXtbg?cH`|?0R+T2$l*uOfMvFZf+hwLzxI-qkh~YP$3$QqtbUX`^)m)*WC#g z2$htDU6S2N`Qo~wa60kS^nrDPx?@$fYIP+S<?_LAHt;<!V;*UCM>a4mG~`tXa+DCO zAFPxn3P&7&*dD{UBc;r2RcG|#*~|NOwjbZV$cnQoMpWy)$XXp9{`@{;P=<X7dGMNw zw*RQCz=yCfH%R8&H?e+xSy?`c#8@Q(jt9MD-%b!#M658H3^$dSq6jxrmnC2B!k0X8 z`E$k>zeWNSoSYo{vrK~w<{RA=^(vlx{QP;cI$NuH7;8@Pbvr5MKXmI`3)(9XodcLc z8?En%|2%(rW_BYW7WNS&8PO}>kk`gj@meZhA==pQBQ<L=bDX56E=MDvb1~Ec4A>y@ zazz42f{<akO6mL0LQ`wYGFn5!^I7=#@*kT%an=h7M=ly6GWtC@i+g%|R=a*Au&JuW z$958E5L?SL<SZ?@Wa#wX%@CP&HJ%@Z7iHke!lYwDLVwQ9td(lV25&w#C9Q6~<Ol`~ z8Vhu=RblK&&?HYVof`U`1-ti-?_+|$T@F$Pl<STr0rh)`=I7@JB3`JJzEOEu@qKXc zvCe^yM?$+LIM>BkScd&%YwwjYM2b}tE)J0?OKD<>p!)G0F9J%4#IR_8%fPE*%Z##< zudJ>vU;c_?SBEI0Sl^gf@5!B=nNO8D*S2FU8OsLDn?&b3zlFsmJDg9VJ31;#o-;Kg zX(djRiJ^Q2((BqN6!j=+`(Y`<3NY42cvO}O^G#iKuyO10_!$%EBGEZOhntHlwkb*4 zzDw#9hLx2=rLX<BW>uA+?FsmzHw&*C3kQQwYYKCI7^=>-`CCuB>W9MlWI_m}EULC6 z*-Huc+UPJwapjsw!c9`cyqK1hAO+eb>{ir0HW;t$Ge1omnx<Dgj<++vDbDlvF$E%c zMgEQ>Jt9lxevVS9Wss$+#7XW{e}88!)xCV^*G3ZBc-F?1hP=jtJs(<cn%=T+ODgut zR3zVA!}>ynjFdVgZw``=P^duH?Mbeny?Jrhjo}Bk8pR#yLef>VaAY1E3dCn1NcPN2 z+8^GK6>Jc;T^|l2H6(mreW<AsG0uDWQiW-GB_f*!oCZo1O<IBX<hBI6g`qa@$e|SQ zr_;g|x<Jt<cXF|eai?9g`LwqNZmOn@o@D~tc&DHD^fA7C3-C5G!)!3WKp6o|RVnQT z^a&8ha%B1a01LM`VnS<qu^du$HjbQayk30V9vXG_HJ)Jf)s4N$5vGySX737aYjg8g z0Mfk}SWfdf@UQR6f8@QoGgB{Lu4^|5NAOsT?q1X?h5jAOuom%r(B#o8K}e9cv;WM@ z;fVOzYy{lG&g=9>ptit+MpPw)9^@Jl^`O`F9y0$+u$uyGT!Y#?<*hU*Be4pLN=;gz zSdL$%R!`;WpjBPt$Kn?h@t@8YLyevpq}f+gxVa;Z|Lp8NmH{LZz4}v5T76_TCH*_U zn}bCf@y4MT#bcKqqlFWhS;EMG^@hB#^8`L~HpGTe1cUj_{t_mfpZ{xN(53AGpir`$ zTwKZ_F;7i=<-Y)2FH<IPXfF9n9v`rZD$nS=X{^uv7p~@i1Dwc}DgDHcayjkL<)FQf zqnZR_2Wf>w(DZszAuH$6t|g!{5;xk~R?vfzJC4Csl=K`u*$g2<D&>ZyoWhfO6XO<I zcda*cU4!&0t1I8_j7M=k^?JQRm3ohQIdYS=>t~k$4|&02W2$Qb-My7D8|{XI-UlOh ztF~RY5E4it)(qUr4(S*eERUBZ0e)S0vsu{HD{=ZUJawSXP)+RWPfaf~cKGLq)BSO` z=>*ndu0L7}v<W02m5u0|1xd-`I?iuH3xyP6lrl;DDv)~&p+ZtvFeh=)=oTtnXLhQF z30rFKi|<B^G|JkLQm7=tP9<hid&|yO!_n#eTMJh`Ztmg1#$VBHzP{4CJAdK~D;bP> z$@)DM)Kyhu4>}38*u?r3dsw?%gho~lUPB@oXI;fRXtID1j!z>Z^LR)agAkKG;(YpP z+W>AU;R8%usskV~ifQ)V>u+gk(Q{?|#jG+~&R<-(8TXm71ISrlfQ(%CBne<(v)?(^ z1@{6s9tD?cR{l|w3~(t+QDS0+q+q5nM0ABskxjW84NyHQKMSTc8zrXlWWbgx^u#7u zRl;Wklb7m(N3~Tprv~i&?R6;PYwUbKvSq!9v$L{Nc5=>I-QBI){{m3cb_=kS`KCGt zO^>`+K=*)bbBQyVHN6u*x?v?UVkHXUZX}ugRtXE_R7;uxSHDLFIN603Z_|L~&9+SM z-B}WzHkue3M<8yXP$=n{yLX38zWy^(xJb{pMf>fd>#74CcQc=w<Y>lG(n|PvPE(oe z&$=+46~ZDSwy{D4NkWb=(D5)}@wO2x7^Bp11i3KA7;H2{^A3hug5JbdD~F>~-^q!U zpzxU{*T_(RUF02u>Di2ub$lqpxGa0l5OMs+{;=%qptR&9jW|_64zURk`Q<!Bfr}9! zhm)KY7bGl!0Rt<*+54#reZzK>g|oAU82b9?@FDvA?#Xief`}5USYF`Ia$~LK00Dx_ z#6^7zz`rtsCe{0|ytPJ9m{d2v6(vOvZ_udVhktgQHAck0m@1W#k%8Pm%3rhD=$XjB zL~HiC_A@hp$_TMBr|zZPXhV8vyqImMeoLV~&?h=%$i_xZzB6R67@vG&WMHT}h+kt@ zey&-?!!w|5`}ndh4n)sTpgOR09g&@V1J=q0Qo@yVhW!3R8wO^EC91Nd`#-1~xUCah z7dASNWYR!knjDE^0al(*0{-ww_OKUUujBLVTYO{#?cauQ-HHiyGK!H3#*W*#%?bYC zg+1RE{&hBZ%d^_wc=vQ?hAd;N^KiWLcz)N5o*Flq8W{zBjgxB?d>?C(FC1MS8Vc_i z+-?sni3!~_4){6y&IcAxpdwJKRidXg^YW#euemzckhmuP5%JpeKpK$Q4j5LlKuQ@> zRr|+c!`J|gT1n?;5Eku-{^U!N$Qt%>P`bIq^4n5|h{Q(go-ciCL+u|8jS-hh!RiUS zoBB4C<88eVlQ=|pv#Akm_~m%~afzD8V(lYRzfz=n`riSM8I)Xkwm@~sf4mWVv+?S- zf?@To6bnS(ROo!vw+w4vCDFa<-LmW;oY&~P%L+;ciHXoynPK}lwwYPx2K_EO|G))@ zMf~=|k``v+)W#sJ%rGr~yEEk3_^F{N&Yk#&jH_N%CFkJIPTG6DcNj3foO@|2>EGQ- zco}<HSXTS=L(AM(#3(dercQj=Xbv7sofuD@;Fh++dvFNKGTe}h4@<E?yH~B(U91xH zt>@i5ach}Y2P5d~5!Owm-xOTGCu2vQpN9PvEim?fhD*92jyL-H7950L8k?9Dm?hku ze46!KNO%elNJ7XJh$XjBbWo5$DX0qn-23?ErF8Mkwm&#_v-<o4kA)e80In#VNm`=Z zaz0A+is@`(vM1Nj*ibXxy~fUUx7g6cMEBYK``Rwtxbzl2KH15MiSc9o7=>)J`--e@ ze4exQ0{Nnb@rXA~a&vLY9-vzpZZbKV3ho#X6<lEuPR#iR5GTZrzVW*OCFX3ix5jLf zXT^Q^Z(+kxjbqRU>f8Da!>qF6Ok>&yog<0*F8Lr3eYGHIz@1fQO*fmb!c>wTku4Ug zJf$o%I9j-^2r?{ehK5eIy>#j-_I$Q(X^e|0Pe4S=6hqCcB3LSSpWU<aQ?-|n@Q?BF zG$SLU40rb$H&0)!T?a=9JC-#OS<W%<NOIy)Y(Kk%1bnFGLaShyAYNarV@^}wrx@xj zYhDQN$yteATeB({*@)bmYM{i6)nw};gh^ce8i}(m4Ai4Wc3oe830R7xl&jR!G2Het z#%<}7ZmW#*`UFJ37a;w8=gY>4D~;zhzy1up6z+|Vj>g~K-sb<J$1V42o+@<svkzMB zQyZ2Vdx*|KEe}4f4gPd~N88Fab;xKGhyahFOr9X=dI764E?2VzRKiAYXwQsNdE)rK zy1#DXZey)xM)!rm$4|AeQ}6mn(+b=XS4&ZTCIy9F`JjNf<OH>tu`$=%P1$gE$S!?| zkweaUiWfE#3HLyHJpoX{!O0<R=?^b!L`?9-X}!E}8>eu+&>Cgy{+-6ACXUwAx@zTx zvzML(({=1ZWSEcKe%+S+?+JgSqPOOQFX#4x&icM<NQxU&OuX4!XcoSk+?Y=E6%yis z5=@+xd^9_}h*gBINu)|J9H#1ld0}#8pRn05aAv?W8s3~Q3jaM_6?6I1N+zZxf(=>w zUXR1Btd{v{7UjhCAKAuQ1kcpdr>m3eQTu_W5i%q>s-<0heGOEFocpOjag|25B%70< zRH`jTo`}011w<F0B0r@&rK%uZY8&oS@+wNwXQgQk{%2J_>p9k2qS!o-K^B1gi;<&M zY6nb=Sy!1dpKr_Y$Dk@su#e@cGaET|(8<Kp-k#oG{K3INe*Z_MGGgmVWMP~kmf|X- z&sX;jaHS;YJ=#DE)z(3zGUJ!^ULa?`FICBb{Nj*yTX}*IBpa=e)JX`r<~!V?gtUR` ziB&IKoytni3IJg+(q|i}%e>q8@guhYWtc5vdjIRb<b;@mSY^0~;1Ce-<@^v2Ne?n0 z-4<cK=F$(cnv;5^b9j3oDsPL3)_~L`LdLxH$uw!b^8$tG^)h8QQ1$v8bW?Ws^hD{K zn$qdE6&2ca6!G=xE%yBd&a|8bTdwZ$pvHOD3Ik7n#Tr%$d7^JxHf>_mMTzd+Nh$Y7 zFDbU5LE~G3AWX0a53l$MrY6oj7!Q@yQoWviHK~ZTSS$5<!K>S3<po_Vb&6jFL$Mqg zv@}!K$fdEq=G6;I%8BvL_ePu&DfWX$Ze_Jx*M@4^2tM+pzJu5>s{4f*>FLs<^e^e| z9_SiIFv5uju-s|X#gp&%;^IN2vF<DlK8_coO?Dl=gZ^oHlbND@_)^$84v09r^DPg( zyuER3pX&Z@GyeE2W9@wj_6u_T8m#u|*cNouz6L{jKfywazqf;p&D#&HpM_dJH|Z;} zFpzofNlx@!l@0BC-i1iD75P(NS*bS=_r`$o?!c)mn=H;czsibZ%Ck>oK&@)^!k$i? zu16V~<Yhg^KeF?+m9DJf931a?Ll6-SD9o!B3yV)M7M3!3QOV8~Sy>>M9@uaWw`l4| zw504cRcYX^jYfn+)!7bk>A&bzxH=}>ien9*=L^hfu8G+Rz#>fiHcQo0!<<%&ti|sn z32Tl09Xk<}du^Vp&X;P=emc9)7B1H#$Zvjx<D9*@H<n(ok+f{Kx<|5CNIS;@MiSBV zittN`YiPTWV6{^fJ)(qJw>(6VhU;u8@v6l|>ylxpL7|vbrFW{!wQY5(syHhmm){#2 z>T5oH{MZeNR693P(&QkG&7gX4pArd#e@W5)BgR)^S%XKq94r3C5aQ^sv#t*oPQ=t9 zOWGVuP28+78TRhR#aUMx*Nus%-BWEho)_IbLDB&mj~4C{(~2RoYk!6UXcmokiA7si z`x}zK;32vB;G@0;IlzSc)-s>=^z<sQoSl6xd#XoKMtblQu_YS}_zQ@lI~r$3AgbM! zhNd2}e;~nM`%rl+^BqFE@~f@JQ!zpdGsBWQI9t&P+Kvg@L6z@53)Qb49)2=3GR%04 zkMCBDV0~Q5Rs0$nfndl{jT;+-175qMm!<cjtBYwQIU(MXZ>U96slh2*M<sB8sw@K! z*?woE^FU0U;Cy(OTch;*7k$pSTXcE$Ebw5~eWY%Sl3={*=k}w*sP<GKh5}iQP|6wI zos^)fnT3L@<1$IX;s{B=Xez!Z$+C!_#hlS?{y|~B0OjR@2xKt)>ex?>PG$ns+XkYo zr3n(?Z@4RFpH_nD<#be@<kPSr6W-}^*x9@5RB`k4cSn}odVsaelAkjMWSJ@kngf;` z`6RCZEemjqqhu-bE#_r(yC5l0CBhvcbYJ(&gKqKnE=9l>sJ=GtxvwK=K;ATpD(q_; zl4xJwqjfcrM~@zEY;1Jj>RV|>n)|%+qD{)%j-nIn@I3rmSOUYW1^snalHT$+-OUo6 z!YyRn)Na4FnVDHC!$2ZVbrCQ7YvJ>J8#9QN|GTwK+cQ>~Hmsr?UV@)+*B2*uhOj`6 z40nE$u-o)8R9wPJ{RSB_CROwvTGc(7PTRJB2!KToDJeGA2DaXDIy%M<1Q}?m$T1Y8 zt-K;D;Wb#~7cMv~d*ie}+sBsNL)uD-=Q==BsM*6_ng->7FrOTQNO*Idt19E(=`MFu znvw%Z_689Pd(ia?T~?i8<<lQUnM`c8)vta}e1iP+lE00l+e;{6Vw7?lP;Gu|IbV)n zQ5h(|XuSH~^H!!0Nw_B&3On2LJiOroBkp62R#6l;#+z#b*}vfLyH++qBO+v&$Dq$n zn-O{+#Kx<XAdc7SPb!`?wzO1EPU@|WcYZN^NU_#)SfX!WKv8Fysna7TK(fL3YUK;B zr>yFTSO+V<jvL|;CuwX1L1bqbf|m8$Qc>uKRCpAbOhktEx&NatwWbuMI}fBGsep&p z3qBGKW;6}Du+plSSl!yP;~@-p!cc6{B?ea@&4x%pk3ph7=q1qx;=nDPLTc0*P~BUW zev&lK3+ByKVqszPAPU{rU_9IN`fEdlkoF?2FzMKKc6|2y=RbW@JY*Jj;u0^zLa3l> zgj%C2mx87{yBVv~1D}kH^r3(^bF=j|0D^l=%Rnm=j3YB<aO|TNTu_`5PlrFi?h-eZ zdLT|8uof5nhNMAuBu#{iN)CvAoQe@QX4DXup4rsEfCSVPe5rvhH|Uj`^dvBRL^?e| zN5dLv=6S1H``P|z9NAzK^ySos(?YBGaHC|MW?ue_5^YGdEE4PWP~XDot!8CKgN`xR z^JUOw%q1SKT_K-i$!*MvyyQ#3WO9U{HO+Sdutc~Dr0Uem>&M|?T5e&!&f|D|AV*Vn za&#IvylDl&zHio2(G@~(@h-o0Y`Xkx@?Q=nUFq!ilH{0>Nw5eP%}!}H)(97@O$;Ka zR=Msu`iL^PqhjJ6ETS(esRM|P*)Ly`olM11$n3}1F=B74fYe!H9b!Z4_!&V-;@D*h z*tz&1aZsvv>rp<OUamy1f@Lt%jqe_@Al}V%AIh-VYxR|^z+yvpBxcIEbbAQFhdDAY z=4{Ll0wFI9=|bMEG>G!&P00SryAgK2rdMO12+^v`<?*if{&6^7V#r3Z)_I+GJ$&ZW zzky!h!Ee*c1f`bi-WL1sa&m0p;)2XQtUbQmS(N>{agUY|)(N<pJ&a2q(2v?sGc+)a z*U|*-ktx@k8e%&Dibn@(^W3IDSF~L|G*8&nHFePw#m-OS=~&#vvQQ4K3vzO}4@Ufw znSt(@dzvM~*meh1*n8PZb@1`KbKHEJp|~I6GJU+@P2S@&RH8j2C`%Y)G_QB>1zJ-5 z{&FKtL2Ke?-{jr3ZZ9>)l;QFSugwTpCa5F<9_MZfba3jLn%>179oacKsdI60_T}e0 zHnz3#u)$VhBd7}V$ocs-V(tqUET%`Yrw*?9a*|Lkxx|nSVA20z&A7mNt+&!i>|4O| zdOs1K2MXim*qilz5`@||&AKi7Z?l>aN%R+8mHZb;9Yq+5We?yVUN6FvK>8Rid>Ern ztIh;c>#}s0qkXsDOr09}X1DbcwW%4Ss%>|O#VJel5IrLg2GGA%tfKpHD!J9)pVaLg zi1BKN20eISoA3OTF4N_AIb&60-bC1t%Hh|JDd5xV+WJ4Ms(k;>!qsGWWMt6)Y`1@C zNRZu14QM*?$;!GpIH-ypbdi;4W*?T}eHSadU*5f<yx=Nc$XliWS&4vxW$u`(QWHu; z5TK68MIf)gZK%YZud+(^gJXDtF9zMLtv4D(vBM!W53;DTSMt68a%2i1Lw9s+fJC9O zkr53tfgFIXt@WP1!29T9L&N(Oi&I&Y2xXhB2jDh@7%sDHofEv%*sx<)aJPW*pWYoM zn`iE$Mgc#mN?zCM)fqm?{46waTi@vGYXWKOCw<O=x)VXI`Gu8Y%^2%(_Fy-+v=P;X z{jxXKT|dtw`qmWX`Et?{8arK$)Y*@4>1iU)u@)g)1PHb@(CS$mI`G0f_{{rozQvz3 zBttvSy1@61adEL+Foq&3=6?R^PpijRw{f!QY#{|TbUj9g(z>Z%KtCf({qP92*nzU` zHBV0%BXL6<3eQ%b0mWufp#dl`d>QvScAmiOT=_}mGm~qkbTl_37{PvC|0v2D{^`P! zBs|pA*-wu6GCNDES>1psgaMYTT|!u7R@4Bsb9Xm(aCGbgg!FA><R~(-<mWs`zg;B< zBqpwR#lpeCNWygm*MyDye07y+WbKn!s?ue#O9p_`;9BK{D9OgaLVg(H4`gc^9#seK zY<EC5T=Z{YzHuN4$N`!Z87j=1S3#^6qZRTWpL%0lGGT{PFc|{5CMl?v?&9UXm~(^f zG<Cefm(JnS$!~|_GV~PjNtlWXH&HJ77aB7TS3j|ejMbYS=;tvv5UQ|=s^R>R7ougw z7_Ep}48v`=O$jR?3FnraDzudp#jYHQOIhq-(*mU$KJ0JQ1Ufu+j*d^bI62>4T=+KD zHn7#JJhQO2j@FR@q_q0#g0rxo0N0Ly1)neLK1IK!w(3xv{XfqFM19qgW?PA9%F`V1 z_BxXjO~=)Sw2oZdB>m)g>SOEw6e`mN0LyDxZP!)@*GD6Rz!Lzcq383H%WYKSN74P% zEjgmwG@+v{@o&uE^di%=A3cRWG-XLx*CD2xe_4!mD@=e5GyK;JFi_>!kS5>pd`kzO zmC+(6*aC5mPadvRnMK!Q(z^&Xi&5(zA*VVakXkN*h$#38y^5z<<rGy2R1H*`s1;Pn z0>IuAJ?n37LzMf`(I<o?kC5=Byl=3nwu~-cP6i|6D+@b2!&yiPHbdcHyd_7!@d#Pf zh8uL9OaWnr)sB$D+K`Emp)KU0h@4dTVb^-S^%O06agdBooc;OJW)l9J$?b=8V(6}P zN&++ZHe=X9(cQZwBZ`ieKwpd`qkbl%Y@{zUH!qfFbs1=F2~f7DH;)ExPGvz&CmG&p zuUcwxYKeJ*Q`kBgdslK5LF!F&+wuf9)o-QCM8hw?(%3$co2iOuV&bEZTZCB@)sos- zTPs#pzkjzJ0Q8)O1|~9}G=6RcGT*aEZ54%AT5vd=z98UGIcTMa5H2Lrp{S@J2S_zl zQ%-YgEka8jvVyH^;~24m7`K5y_f<+6);BhMU+sS=M!MYgHrm=G`})?@r?GcRa9?2Q zW0(;J5}<sin&&gG;@i&SV=WmZp5z51xJo5A8<YEPh*nX;H>!}x?Iv+%YaH;m3K>%D zL<kMN^i&AwI32^5S!!oX%unHQRX|tB=~1hC*CNvc+_*HDTRTKN`-2jj*6i8Z>1mRo zfpIE+_Z>lDN!Ix85+hSn$~89wP|AUguBxhP+<gsk_BU^ClU3$JMkJ7i<Bi}emsJHQ zLCI;{hEV`Gg3D~A+}{YjZeD0%Zaqj0egPt>cbX#=cAh5(8n)V!Zhb>`F(qnp9ce%k z^!{Z3W(5?rH`gY4*+r(IsyDE<xjfrat}h@!l&$w`A@mEnr;y#sg=Rwq<4hjo&x!&_ zl%&Pp?hQVeDngTn(Qq`DoJyAH6$FP^#TMxl#uuWkJ+QOmSoi5u2?Yg(<wyODnwlE7 zz(AnQv7=l`|GhjTkCS{=M?-?$X|@4q&G!0AWNq|YhDCoRQGd|GPA^fMVQ&Q}T4{#8 z6jY`$BQ1E14*jv%jqU98v@5IinEBR{;(^8)=CLnoX^O5SmO!7>3^$}Z!(<-)<A<)3 zmy^@1jd)!xLUPF7KfP*Oz#pBu;){;PTI8GtRX@x@fE4n?W`m|detPU7CSxg&|Ev|J zjUnX-MM=Yhu-WS9ao#vTzy#&O-<YWeHkIhfV0A}VR8-iRn@bN34-fqMWzhKP6GPwv zB@9|_8ApkC#}!a634Z<|R@Sm}r666VbX?j)hA>eg)*lDbkg^0J&<*H!X2xG&F5t_f zDC6bnq;>%Bp82fa=?O@H_Dd|*&s;zhoM4+36deKT;+wSu|K;9IFI_%CS;_bA#%7%{ zB^w$k+E5NNQ`z9AKrti{TdDOGb2aWgL?xu%Ak?bN(QA8=>b2()lMZ1uE|{w8N>aJD zs4xaRiqyjh9eZOEpd^)BOR&|19rA9{4k(KH>*@q=w_$B<ZN=MbW}Gp27c6TjMoXEV zeg`ft{<Y9&8COC=f?MH`Q7lz8MicQ3w{+Iks8F*r5iVi%{!Lxgi@`NFF^Yx2lij&| z^f{em1FBpj(2iKDP94LN%>3i6^WH|S*sKL_?KlVf?{1bA7R1QEid<V;_Ne=!voGdd zl-h=Zf_i?IV|X+-o=kC3n@Q1@`!?9X#Ht}u)kpKhB#qCp78zosS@}j2sRU9nZBo9P zt3+TKVn;yB6ZL|Ip8EUyyEz7`adC0=H#Yh<YH|)F4ykEz@8Kh179X=|?%i9`iDbW( zPO#m(#SKM;YfA<#LPdtVy{_Ku?m~%h`-$8(2|hl<cX}09AUh#EmloWR2iO9Ldp5LJ z+u)e%%WAZr7;QXr#RTdWQ|BW+&5gc6IEJA0K`zsav$je@o;A;<n*X$WMTLi5vd~XS zYLBL_o;}7>ieAVesunqgGGkI@f91Y|Od@!qUA3{f<e+EmE^<<hK4}9&O0Av|q_L*v zm5`9o>iBp`ZXwSA&^iy;UKhT&3CgjrMEQuBJfNeSd6}Eb-EuL6CXzgK4z8t6?mlHN zwGuO|u#`qq0}Txn55a3fFa$kHjM6-|4nDOen|^C)YcIaZ%Y-XU5PcU-h#|%6@_S+0 zASFcFB$#4;e+_S_(92NSwAUZa)KxTNe@TwmG6}Fr80(?o67!%@Bqk=VSXweiHBGgs zlZ;c9bamg{wEq10bDxre;@#2FQR=b`36L`W3jY4`#xbLz)>i?yZaV{Lt%z2jBNtG+ z-o0QZrn7W^|402wUG~C<XI;YM$lsa9R3tVakL@Fa{OBX1#xv4X(O<15{?-QqvC>B! z491@)oCBr#*%2_Tlft{8ou;Y*OFj!5o4(+=Z4*j{kjb7u`1Fi0$0^Qn7CbXXj29rW z7fg#v=aMgn6o7OoSXiB1&FMWCGni>BJcwE(xNIoVgL4mE(s?vhZWjRE50=wdOh^tc z^Y~^<bLDjvoOX11ewVV~9{l%ltNLaHGSS$H1;;bi+&00rb}|Y|iVd|$5LA5l3_p|Z zzLzy_NS&8SF#kE74|)&iCcnxUZy;y**wT^-iEg2idUl1<U{3JT!devN+}&AC@gGwB zt$;PWlAX71?a|~FX8N)~?yU~_YOXy&9^TlN>mFUjaM6uOi#BdPB=lXiGIfZ3f@@e^ z9HJ*%y`b$D;5|$JdJ{}6wR#q`ceWe>`&eI}`NNQf4Y%8c>T<8^P4y2#&j%D2Cbag# zZk}56yBBhF1dw9I&kKI7j{?!_$1%*{UY5;X71rZ(nsH{CQB^$sbe*ptSzIX~1K|Aq z48siE)_vtXjA{mTwjJDWBf(TP+BXE?DlQT{UwB9!(Bmr+KM0aM;{Z#SDTlYLljeDH zwO<q-oythhG0;|`>lcIHY-_Z2g&couQBVUp8hqc9B(oq;;-s#TA4pEs@`qfW-rR3Q zLqqzaC9jtn^f-Wyy_#J&Sw@<|TCn{tT6;mYY|U7xeVKz0W`}BA2z^w!CsMH&FyH$r z%g)SR>viVq)|9%p3;O}hO|P6J$&emx5uLe-ATh6bG#Kmy#NfO4@7+^|%A`Fj)#jtY z?RM4Osn($%iuC|-cMcMacjX_gqtuTcIqzLG^nNPbbJe?ADA(WnBhgD^lvZgQGKsQf zk=SWsa$s8QjN!C(ugoSQ3Gvz<OC{^2c~1O35y)K@QU1U&!pqjP7M@*%`X{4b8WYzl zVWbq!c<92o{Shk|UJni4=BW<Bq>sRt<;khfej}7iYoCvnHQW+L_!(U0r<5MD|304M zJTFYJEL;`yLh#_U&+l2!=-4oVCZ}tV<8q+RJpk5wC3%r9nKP=wA}pkrUYzn03l66m z=e&03s0{8kkW+X6xOsP3oUo`FvX6KiBEe;0zH|9gzF-P0IYR-OhJ@5nj5^icG>+K_ zT)%9)cnN2gFERWDv>)v{&DCk5<ofQ_-WV$ozo84cFHr3SKHS2b{Z(*(eB-MjW%Qfv zJ>ucQmR<({*X>Xn2f5>foH0rsGNuXxrzznW`9EikG@`^<rKPAlC6hD%I9K0k(>Y#z zeX)ErK2R_8(^p)qem%iS-rjm~R?MPxWQXJvNl0%2SA7)v0jQWb@V6|9is~0bZq|XT zE7x9E3y5WKi_l`QZHKQWY;Qw6+$VHyKKO|!F71Ymobchq=7*oZhbDM?97u`){xgiy zfXzU&`kd>iMdBMXx%+qLW)0&T3ufM5ZeTPCUI)_yCl$p1NY77I9<~`z_((>S%-BqS zzb=>@&ZQwxr@l?Bhk%2k3K&UppijRXl<Xh82vdBR=_WuLTl@XGZGRSBgui3^?Ts@b zzBdD;B}P`bBWDo8GG$EG_N<|8Zh@$+?c}u5pc(JE4roqU%AGLek(d~{wu(FzlB7KX zyaMh4e=DWR|23N>ZqrxiuU{W%)B4QbOfuwWRb&+zJC$7O{wHWy1;O=PjA6a~QWI@@ z4QxDop2xa{2LL*K@;X|-?`<3YasjVs$;cFJL_!i2&5STspxKk7=$uG2k4$A%y0wH2 zmsH!;nBniK%UQ?!UI&j%N4MXU?;}cWll+70$jn5C0yj&2UC)IrzS{u_x9rso19m&T zbZPL)80Wcr)jYb$L|<6Og~o04F~OTB6b*OTrZ<PZG0-N}%?@Vgi11&&sUNqgo*)M8 z%VtE!F6*^z2N~LtmY=bU{FxTt((uy1XJ>Gsf5rc7%|PSR&%8HhWBas*p>1=YaW*Mz zo>2awNNwO;^v(bB*6ZW}>w%ZX%1<Ljo)ZB^kCx9fH#K1k%%sZk7(zf#k??~~57iwd zlq;NrX{gBO*O%8d=ik)Z7p{G?Iv4|tj&arT-_pk4S*1}_EY!Ptk8B3=p%0Vnd{U6& z2+}ZY64*v%$(+VVlQJ}&b*QNF(+*e4*XnoIS(TsZ+xOb`gEl(Embqvj@GpqE&F8i# zR2pEo<m;(nmb`u+pAY?k3j+C-8@=?JIO;ti^;<j8@F)55ZelfSp;^2<z=>B~Lh}-z z936J>k>a}g(9=Br=C;Bf<+Fj9O;;9Bda<5hoH{+ZU^NgJwrE;-a=6R$)$(inz8RNI ztt88a$j&D+ddb-AEb(eU1drsMPsPqk=a#=$3(t)tE+p&jDO0AHI9kokyWg{;tvbU{ zQC|x%6;At6^{VuHi_a{ZVg1N<Y3A5wklnKsWe|O&@oz3*>%$q^FiOsog$h{J1G6*3 zn5zkj-zSZ%v23;64&iU8xTyoG-CKnbl4WJozeY}c@8*YjJs`_BG<if4v0`LB*XJvl z+VRTskym~_*5Uyl-}z9GtGBZKV<X{ehfx<Z$%Pi3)uq>DH`8}{O$2%N-}!%Jy>LSP z7OB0Oc_QJ}(&xf+_<hs6mma%JUR`{oCI(2cneXfbZ8kZfg7|hg3Wf<kUK)^NSMImH z$3K8wd1}$Fc^+AeSTv)~UYU0PRyrH?FZ*HC_Ac8xFfVLp<{G_XliUo|Y<n8WI)$E< z#n|awL9O33`<{ezUvJd;oKcH;j1~CU`!7F9#-_<4sBOlck@u{suvm6Iy4Z;_GbTv= zXl8>Oa_7c`X;H?%z>kZl_fAnoE$ob1I$-PydGe!r-P4nVsbwK!3Puth&k<7xoI`$s zb0J*<&iZt5(SX1E#ICuf(ssi=VCO*W%HL*mWsbO^Foub$-A+UwW52=obZC$9L68Ji zkPLwoH`evbukVsqFdW5S*03gLjf68jJ=HI`W4ouP>r34e>4;g2wdfZrd2b)};Og4T z>+@3M>g<tK^3%49{^V3~iC+6BI|Z-mPdc;GVT1(?zfX<Dro6yn>Ru0ax4cZQmay7} zso(AhXw9@xf<81f#7s;Gwj1TK`px+dRf?O)?T8vzu#%jK46aPs5_ligw46BrxrGmE zr~S(Y>c={YJo;4-G3~2YuRQ$xa-ob;kZ$?)0nt(r_hb13dCYLGu16QXzpbZNJ$Vp2 ztEjW@^HcUVPn&m6+?|iF?p4k>-wE~))^FazDx#}yyQrHpJkPD4fPvJH!r=<C#n3fD z>4Y)LdAH|7X(2VOtxchkmC_<Np2BZ$6slJi9`78zZ;A%ItBXN<;pc<dM~PzFdL0X@ zATdz!<=09{Dysyo0k#B*r)rB%e1&sjX%&3(djh9N0`(^iWN&)VGbaa<PVHmFU{U;$ z%P&<c;a5Fgw-}>*$3l7d=b2-EdwOtUMKk=Xt~U%kgayNZ83xNW>_xLh%0jZ?j*NsG zpCBhMoxi-7`e{p=b7!~aYzwE+#1MSriiP&-Ej328Jnch&!gH)^Qph}PZLtLqNw>wl zNpa8Wex$ddk`(6ked38wtduv73ScG>)5iKbX}1MjRGgp0Ne**39dz8xE9mc(byv69 zH?vGR<$XSv`G>Kz8)cui#+w?6o4I;tXl(Z%+|O8xD$vm9`^1<rz`-=<#K8S<w4$8t z-FfaEKUrDX-R~N~VM6jC>P4QXPoGYdNuq3@uwuL!`aI`{1)KweNMTEnO1;1F9byV8 zz#*}j05|m6t=2H{mDLeG#+s(gJ9$K3Md#Vn%SG)%W41^6W5h6iso~_dL)P#OXyi#9 z_p=tN23~$IRPil%Ngmcq(@Tiib9F$6#(kbpECX5bEtoWX*z5WlDid%qX!-()M8-i& z?$aH{Y6M^aNWkl}-8p-QN7yhz*yDTmqol{F<X$omR+dLeH$l}O>{l6P?ip};d68@r z>6blF-mK3>iOMM^`6m;(C18svqUIk7$vofTAPezY9La@9{aK+y`@}(0tMx8M<9UKu z*L>9l3Sy#34{GnncD>#39W{KYQa)~ouTt(a_-vj5tfXQa4$4jrSY_;@lBGhbvajLM zGo&gpnJ4tOXVWuR*n$pTu(dbJfw0TR8ad2oYet3ZpA2Qu(a>2lc%>n&)^aPwt4Kh# zDIp5QCWx0qJ@dzJgi9e~zv@nwe-{QFqp1yp^b-`b$-HFgg~{VT>I%g#ExjM!aOcY! z94t06As{3iRAqUk)Bl=Cv9rfhe5DB}s3Wk~8;FixlWWN+<w0LVn3ZLq-wh+dJ`qry z<j=GP{rLt{3{LJ+mq)vQWc;~`DZMhb*H{(8XJ4XTn_@p8b5Q<RSD^x$KDiS95=<#| z{$S5XF;6>}G|bxT^W(<bo@b+*?W4x0(@73aP7U|Bw>{kL(;X@)PUf;&D*<d{;wH!d zkDVE`gQ!w3O=HPaM>=>AFf#gDx{Krvt=n)*E)%V}6<hM%P3kGp8gWN*Gn2^9rogAi zdNiqIb2)H#jJ<kjpI3)UQ7T7NHH{|LeHZ8638~M=S*R-YPN7ct&ex__!#YbE@>mU< zdI=3=;m1#dPoA!1r2W|4RnO(i&GB9Cf$}Tqgz-ulso?U%BA`?%<$BticBSvVK6@W; zZM~bHnc;u-?Adc$TU_AHhgUe>`DRe<Q(c`r&^^l09>22~C0nfNXVZ6ocwJWKyUuW* zO;X~jyN9J^M8c|~5?{WI07dv$BdAPKMwk$`;U>}86>YbyqCnhxL7ulLA0;6US0UPW zbsZyDu(mxfC(%UeU15vS?MwW~&eI6M-;}qY8L<{wgO*uKBu{iCGgHD?>s4N|_qwJT zZZgpe6caLF^*ostSo@txAMsn0>5XEEE5E3OxrfVHcF&Lu`<>DZo5~o|lYTGTcrI>k z(Tc%`!&}quY8o0=-&ei=^lafuXzr&zOHids#Nwzn*+?Qo;r)*Db1asgUbv`G+>!%D zV*u?hBce?Y>H|59s+BNJJS0KJBrn2`>^sYVlvG$T;m$FE1};{W%#4}vhbFv8n=H?T z;m7xHT=8Yk+$BAAO#i%29}A$l+L``+HxO~&b|QS+E{OoDShRQ0hPQ=Exm;;eA$b_9 zOx68p7A;;mXzhWZ+wt+fA2ETVAc$y}w)6*hvxtcCmqU_ejfhGRGy~enhRh(9iCmS# zD}>_x+1pDW@1f9}ngq^eM`f<veP30z)V(*`x!!{<G&uz{=Zb2hwwwB1fA3rSMD^f7 zM_(W0@YO4-d$>WvmV7ZiWcy;o(Iw#s1%f3XkjsQvxpZszP^83`aRKw9aPZ_4@!ei= zh49)ppC9gSV_o*P2v<?VfjBGma8fX277T3yeg|=UtN7n+a(>QFD>WrBCroOA%&AB* z7IQ<`YV|fHF)nR*@CiVpo_tauJi?M%hKLX<*%%=rn&lKZz62k>=+5+N+<7IUyPa&s zn%X6Xl@`cA%<XOapVQNw(*t-fUQoEAmpEH*5}nPxor#-go`E1VQ_>7Mo%=3O@$+!W zYlu;g8N}r{NP=#3S1-Wlp4iq(t*rR)<gQP?(7guk-b>Eaz-Qn#WAdUxC7F8vMST+S zmw2DB7D>T3p{(;5H{2nkj}|V5-@-+QeYpTIsmFLK(KZo+Yllf49?(>`dE#03^3q=o znkdQH%z~8*EqO@^(OLN2AxVg$Z^u{UHDNRRqWQKhKWx-2Juw$N9QbGF4;GfW<AeBk ze0>wcuCF-6Dffo4H!-IiU$Z9#R7yV#9|<G(kjN=(Gp*EqFO(d}=Tfu!+k+8=BK_gC zI3J)vEV@%eH$J+ad>Zi#!-c(H%Kdx+6MBJKK%?HmSxh)GNkOp>OJ8M->aj1b?@Nkc zgJH%o%5*$?LE+S%9+XB?Up0lIiyeqGTGs1eSZt0Ci<H3!luMCcsi=o7EG@Bs*wANH z)3@fPWX-2k_MK|LGDVeT$(NR<7i>k4k-{i^(or(1uUp0b)_~9Di&DrAzhnzUs@VV> z{(44q2!^PtU%2vz>Yna!0w5-L;TbySe8d?w=`6o|;G^my+1gTb*E*pm0lp+EVv~<4 z<rmVpNp_8+ctOVbttZ=WH?)H)%&s(!t0i`*jxYdSI-|%GdJpMBgHyH5KpKk`VP*qq zG$OhPkbvQB3XE@(lg2VFA0T9kp)|d|OjAFb`l$G%8dlRnTJBV@VCFGvTKhZToJ`N; zC#$DZYh?7$OEKA5gMs`)1XsG|j4lWWK%{q|3p{&F5ywbccLq>rh%Gc^{bPHJ)JuX7 zbQ{~nU`V74@M3#9u-{0m!k#f10*56Ege>u{ON~)=FJrL1DvH29ft*la$n=4=`YieS zHjaQ7U{3PfS+YVe<wf%qI5K58DP$2e*zPphLireP21`5(;_a(H)=m1Q4@rj(Os~br z<emD~l+6JZD&%J9BA6$=UvB>NbA5Nl^1)pGPK2xhL600H1}A0m3tG8!e3<Td2E<WH z4kMR&2z@0D2^FGF!IO@fqw&DimXX2@O}i|rgugY!f-r05echnBTH^!I_pNwrk!&2N z+Ncd*U_&w87F5IQyrM!;9}nQGN4^Ba#7G+(2;j~>>Jt>ZP!S=)P#n`mNGR@&#_%G- zQ$h_Vn32+ZcNj-*$g0tS?qQe*>8M2FS;4){&!KdHsKJYvJF;l*ko{YT=k3Y|#Mxl~ z;f>R*t3E+b1bDpvs*Ud<vR6~A_(W4I6b@-$ScJIPKe)EEarsSs5sc}knf$iYiGe&Z zG79_K0%)2FDntJ|EaR>&$CLNfj*DwE^~Bm>LU&{0B_*m@IgGDgzXCcc{TL~}mNN7l z_~{3&vM|=wyOAJxb4k1F;ghR#F8j$NNn@Dg!uBFLH={pr5T&7OKG?>_hV9V4?bO~? zM#;juIRh5al?c}w4?<`F$6SZ)LJ|H@eqL;xc|XikHDfN`xA!1o*F|I<QsH6QU$3TJ zX}TCvVaOuF+DYCXDf>IM9#AS|Q6jFA+#FT0BFKn6Ql&8rcuh=9giqN%_;ZgLD`}g7 zCJB}r!<es*^g+Z2NW=#OVF4-(YydDXB_>ip7G?<(&G)A{zhL87ZiuFZ41&m$?Jrl~ z+bLsDY&)aAIcay6J#ghywA8xIvk&HjS6oLg&%Of(a>p$B?ooDXIK2=8ewpQpRK-$^ zM^F2rtv|oZ7d)q{#mI?z%`5Jp`d)DgmmXGoAioW(WJ&;w@gyWB68`zK8>)>L{r}K( zj!~VxUmFkKY};<~WZRl1+Y=`@*|wYPrY76AZM!Dh^_<_c)_<*Do?g_s&%QUV>$6$8 ze=5Ulw<2brlA+&hxBi?K>CWsHt4ajhC}Cuo*h&Up1(k+MG6`x1Z*NyyDLV!Kr7ft{ z7+k%<hizHIT!78SGl3254IA16jy^6iv7}(C7*kH)mHk656B+PV6UKlbWRi&WuA<xv zsmU}ak<EUu(ZOYNEF;yvkAbzvT7z;mGB#y`{a#iinRA7#2NaEA<bb~t4!GSbd@lk2 z+3w)){>@EA6`6Q@T`trQ_xcx-r30&<ZjYplkz#!ml?a%>Uq0z7Qs3|(3y_i$Xf^0z zHe1N?wWVR{{A(+hU<f_lqT)T8iS0FoG24}4vvJ};Lk=-+|BwP^!)V#VWWJ)#wVu^1 zzQDS1`CtbWsIH1yS|dDOZiOzkZi0XFB{BhS!FUT$sVO{=$PX{Bk=CvFQ378JMVdT0 zet7pizw#g${yf#4ifUbO-~)H&!}YOR^47%Or6loWMEC04Pq=Qgs}CItFqjHoC4qa> zecz8qA%Z}(@T~KSpd)VJtzr6K#YR3<_-bUp{+9GHpg<+(AAjLm1x2$?yVQ`$9)myO zW3*RkR|s<;QL?cJcLa62WP)WjKzxOcLTk=mtM{{fYL7@aK!TMFi~`F|nhyu#BZZo= zz|B5_vJIavo#KNPY`7-EM^Ff4z_les(Z)a7k+Ghqn}1w=^tRs`a<wF=b3y@kk|xEc z>~qlz>NBEDlqsC0L;O*Pi%;BpJUr}gF3J`!Oo=bi{4G`Zq#!<s`o=K<4N(J5S!q{G zdzZycyeM&KtKzdOBU_k;+-NGYp$rq;;$btk{=<8p;`7J&qeNyeCH+B%8#iVIU6FQ& zug9jJuR2+aqP`y+nDbop*6{06-#sRX1vGBt$Eqyr&jN-H3yp)3t4IX~0S_%2hzC3F zAZ%I3FM8!6dIj4AZ-saQE)uWOTcswf1=fG<MyNthTNF?t-Vx%b0zYI#8bs{pN|B#? zZ{%<2q+=3jZ!sqw5EsZEwum3aYGGkNvUBNhc6OfMtjRBYDVY@T4gQe(N|YGAhI=** zv37;w=9ynoQj&$AKT4h&qh3U^KqNG9&u<}ouqFa0wgxuCsnci8e^gD*K==MwnydSQ zLnCja9@*Bv{C`>iA%u^`N^)=u(uw#hU+Tp0_WO#@@8h=?#@@CZJKT!8^jIeaPnX*3 z;NX7H1HSX1<d2@;Mvw(4Xn_zcB15F|S(Fwg5a(behl~)UaVkA5kfG4s<%JMt`_k72 zx2J*LJp2+!c_I)Hl7V1|PPqKcLH68^)t6xYNA51@sO<)@;G$q#kKZcPA?>N6FIVJo z?QzX=%N5;_tuc{t+FEJskelY7&djCNWDB%Q^R!EiU2Ktn8IHRtnhPP!jy)_8U`thB zNH?Y}0>|eUaQ3db$>U-9hrp@sNbxb|72=9}Cx&pAD<Q8?L>(2K+>}p`9y2&`uWoH` zwt$ji@4kuX^%d}hC(fwS6CL^Re51Fe)LjavE7FPlWZD-MEF<qO;9_;}=R>Rq`#0c> zWdF5?)(8S#3=t8WwjdNE`d=W@><QW1+tepSV^b55rz)?kNi=8=K70_59(d2c(Fa}j zm2~f!jn9K8FQ9Pz%k~ve?Ze*_KM~0$$#qdi0@IX*Q(r;=3#bHDV4;VblIrQg*o@*z zcL*!P!c|}usscra?j`~`zQSh0X|ug9jAU8hx{%o&DHM7kUcgJxp)Co+yn@iz!2n*k zif@&w%B3J8<f?V|gRAXCQWpr&?c81sF58HzFnX=lz7w9QlNRM1Ug4}I<#$W*{BO-M z1kNh+GHI+tAvg0%O+C*Od=^Bk)^I%|`2<5eAsbfTTjS$g12jAGVZ9UZJ<)({#Ax%= z{|d!#nB=X8L_C`H8ZcXd41ofGRyf_|(^3w!t*ze;<EM=hn?c=e!O!7WwIM?468js$ z|N0uj=WWOreyi0TBhMc6n(Td+`j}S;7KNM-CMkA>|93&)X@UN4GQO*;Yju|a^byCr z6^BK|4)@RPhOgaun4%y$f5|*jlk#l%T&ezWc|BcW*_CY+drYW2aOJO(B6QpC#D1`B zY3yJS6#?@BB}!V(L@?>-_7{Op;1w>@o0>updCIVZzXL^Nksyrgp^ez5m8bEwODieJ zMIiEu{4`Nj%haA4@MTXkes}y5A|;RnyEm2xvll>_aU&d2#qa9_N?P}QNB8~P77uo# z{|+8-zat}9v9XsfX|uyKtOdDEB@Aop`Q1_>b~L&q*k+4*7IeTefO9)tk}z(5ikxnt zd|shQZC-_N^*5-8&pxOJu;GXDu-#W>Tuos~y%l^eMF0Eb+$><_wKym(dtndr|M?aR zk_dnXh4294e%!3g?)gD#pNAt~WCrZu6o>?;v!8Zi&m3oGHYP@uu%X|^1=>--Xl;K6 z`1$c7C$X}q<Y|8?P}!7f(G`R}BB)TVP$w%4V#bPEjFSvh@#CRXMkz#G#bpuAh217~ zE1ou_rv1eZmQ)Fu3oqP}XOi0>Iefbv%#S*X8ap72(taS!LPv@qqNxw-uU!F6cK}Xi z>C7x%P!sqwSW?d9l-E5s-6Fs{H%Y|OC09u}U0S^_@+hE>Ik{SGbs%tsT=`R<MI?`+ zbV**E91X|@5Y5<z4;_b1LjwGjp801>G0{g%<9?PjiRAB$H0Z<paTFuIDA4<;YV4ba zdx~Za;>R~{PoYz_P8EU>)+PswzVdxa^?gn?(LR0hap(G0p|;CJ#p?X?y{(b!(tq8q z<D=qR>|#lRkQa3{Tt65UstPA~T0jV75y#K1uF$o|A7n-SO$Hx=v}V$O&~X)i<Q9oD z5R37nNpa&3VQ`rPFX;p2cP4IM)8_%yThotE0%=;1CE{<D|B4T1V+c>r*Ai8F5i~<~ zv~e^R-mB{9kV~g|tA=hTY{FMhPgE7dt*QWv2-G~%K@=-ILKyAv)<Kbuz})O9oB%Ov zBDcFjOYL}Mc%tM4shFHT2t_={z}+s2@95F~Q&0d>A%4U(_g_3@fUw{*EI4EUzifw2 zt_ZC2`!7src^JL|0@<jb9`>+QG8R}X%=#J9K|c$mJ|3^Fp@&H(bCO9SagTr>-pUMk z;o_)D{j5oNyeg@2M8t#koSxG=+btJ8?88!bXfLu9^}0$lEisHinJ?+~+Oz%lCFmz$ zA03O<W%#CW-KB|s6fK{5d3nRHn~$BiMU*vdby<d(4h0H9sOY@~$)8KvEu5aY@0-3! zHGb^VeSK$6B)<$g0@tO%UteGSYjcvWba4QMjVF^ZBH>{7KSrM@RPHEIIyh#`kYZ4= ze)CbQQTxZeou4Xvyfmoj-1coOa?3vnT$z*pU5`1$f;(mzHF&QTj7$@br}?_-0}Fex zNm+L#<e|)--V^tJO!-x(M6Kyt#bT~$oH~nk!J$(($SSCEuN&;D9TgWL;u_O*NkWyY z{jD{)U0LAMw|?{!EnZJH@3dF0o@vr~IvNa;9J3yd96kaa^-rb5G^i74KvGmwAYCjM zUlc_$FrXLAK2uWeM+c+`9nhdKvGXMv8~f6;OQecNtV<BhIV?^dqe}0cn>ro$gBTwl zz8*b)22w8++Mn&1LBgBpJNU-@CsP5x%O9uNGPi0NBa4_;;!s$?i?XfS{;{~;g+O|D z@vDmuA3k`ua|*-LvkfkE_V?fc?FS!8wa}T1T?shH#cA$rS8`k;MSE`i5Dj$h{jPv0 zBBA8AO2Fq8i4P>8m$kXDF|zf92?BfU{De0|1Xvbf=M6waIO}%V*v9ym=N*uX;jau2 z5t!8>P;OIBfgMRfEJqqIyMqKsj+KX?gh@|(#TKlv)*pAA!qY*c>xPU%(T|_Ip8-S_ zR|;FXqJ9lTBt@UELVGSP=(I?)P=oeY+IW&sd0sh7q}-vXgbT8GFP}dyCkiOr{_#ys zbv$;s)tK*RYrR&YCrrbO8l#m}*TnmAPX8Qt;~7uGixCL)<_~Sm=&?ms*b5%~iPE?R zX*<{Vd!jjGfX$GC3>7vgh*FhQ^=}7T8U2?pOT)`sZI6>AmmOg^@n~sUk=SxrDw*RE zVSr^O<@NQwv+MHm6^Z@cDmYg?G^|~^K3YY5!CpK7F_4`R$uGqtpVfNmr%oh>+O;S= zDmEDdd&ZePCG#3<PxeHHGAy?27q82CM4{izGxoR5@F41c)BWf%l&XjYrO~jiR}IKA z8S%>Bha@mO$7$jbyHOzCXl1yGsNh&*g(Kn&Ws>5|oOqxk2U6l@pO$g=F!m5pV(a+{ zXHVEGPwTy@cF(IH47{G3;=7;aZRWH=ozc{60-H1mh;Uzg2omgevHi{*E|U?L$7s6` zK-;DA(5*i{zy4Q8I1V27j*gD{&G>ARC-w?W5!@IMF7;j4R)2oU*RM@FcLftq=<Z-r zgVL0M&Eo<}nf=fA{XZp3rzOCb<VcH*%%)9f>gW}q(Yec+z5t)|vDP)<l9j@iqX2uf zERDQutf{GMY~)Z%rJ*}~AR-N7BiwT$0&>X{=X7Ukxk~QtMSr7md-u0(hx7r$x<cAN z-!*BX6%I;Ou^obAF$JSNlGp5fk)Ca0D5PRkN>%9?nZK8*v8wOo0x*D;Iy+{$x+Bfs zIX^7j!v_W=uv1e@x$vJPzav0A7`Rgb?bUhwd*p9Ln%{GC&aB>k*ONwz<e{~WBx|KE zMInDJhWHDEGF_rB4OvB;zP);C(ETHae^A%ZAvm9^4)v9r(kC{sEF41^t(4Cd@_GcS zt73efFC3Fx{v91WZ^dT!Rj}y5Ofj2(Wj3xmq#cG1DrPTX!ki9U>|mgIgN2iGaQKR4 zpdYvJw6%niIZtWYqp<+)h!4(zZY1Ho-+NJ3wN)m7Km;y-t1Yq;*Imtfao$Jd(-GaC z2fUeb;gkO9bCU0J{9?;jV$-6lx}96co`~y5^yGBu+v7UrXGP~~AN^({j#r?BWDP|x zy!zz^F+z<Be9->mN7dHBs&!S-j0HLfT&@Tmh$Q3kImPM~4sY`gidlkvA02I4`uc_S z^--5xGt}rX3AMHy4151($tiF*?^V9p67ix#iwKvh=Bv{CS3gNd+1Fg4=D6R%{T-EP zBW6parb)N?J7H37F%+Q8O&3dpLR1tt^_@urkC@o_H71K&w#NOIQpo+xsNE@Y{W^t< zjGs$hzJ8D$9~4bp<QV)<Hat)&=C*dt?&wnR7Ekaott<M0Y9`Fkx2S<-f=rf^VN{!+ zs9FJD|5Vh~EX7Pn99Ctv2L<BqcPTv0%smZPy%7T;hu?o?{q4h#*w)My!zJ325$l)K zt;M`UFTUzgzU!dx52*c7+RbE%7YquU_WylHBeBm)wwj1{ea*|mk$hDc_93W<&V~mK z1A`YKo-8RPg-by418@riq?KN>#F4lg71{&JL6!o$wXfabKaSbzD&ohYL2ul`kKZ@> za)SPBZP`-N$^85!RF_K(t|u<uU3eJLdcUZ1zy+vDqw~Q=0$q5}nlr(4?b)hjA3p(a z+P6uoF6D|OX#9Iw!DL4#$+#Hx>5J{pOd9Y(r?+rz5^a63tTJy$w7TM75Zk;=*#%db z%GE!bHT`V6IW!vet&N+Pw5{%`CnOVtfkEbEmWiutiqp~IZywK-w7NP#o0uXumZbjI zNJ!7R5Rv0eqVVnrc0m*^39$+C8#S{j?v59f{{SwDbGPH1R4Y0alx#0XC`!EJy7Izh zGvWex!H8dd(istx<J}cmZ7^Z5zev*2wmIlTH0I6%8CU8MhD9`vZeJ`S15*<%pH6f% zyG#?|s*%^m(lCBC&Q5*#TytGALbAWWz5@~3pMo;**-JVilXsLckz(D`96Tc;0fQg` z1_}b>1hResZ|#twhRAu!$rOv8RGW3(wR{}Hy8mw%(jQUYEjjU#qGK@X-gipvBeO6} z3lq&!Rp940FGq9(wR|Fj1%{$l^JtHpCnhvBF1|cHbIeyZw$&cFFe0)&(?$Hci2f%V z38VzL9?7A{7pVJa!AAe17m>#e35`>q367-_TJYm!P_<+=j&)Xcs$D9EpAU^J`o}N- z`Tl<KL%>;YK)i<oD4gNxo!?KPJ|9P|aspw&Dxg>iDb|*WvC+UQUhiY}P(dH9BwzL- zRA6sb*iGjUQIM*CJ;vyhLM;Nd1@D4Y^1y(Z`Q&76eS3e}+>bN^O;aO>cpyO0NBgO` z2dj>X!P*ny(5aP(mSBp82w3m%0xd~dN$vn~Yl4XT+=8KAU!4Q{<8eYMp^p(%VwH#h zRLls=+C2)y;yOh0Th;P0Tf0sSI?*LDDmCl!$~6ccN$uSlF**iKg}N2tRJnEw$Dr|1 zh*b?(I)|i4WQao58Pcr&Ykr%SeuNvSPUc+v27C*sEpZG|o?c6nH_Fu(0nfg3y11*) z#(pOnBGWwqPZKc(5Se%+*Ng{>bvPEOjxJ{W8IYCIQ-<)`CjRx9P_ANhbTucoMhUe= zHqoX}&bu*A_Yxesx?-WA=!=Spsi!6i2@(BrqRX^oL_id4pS=~-H>m8Vul6Yk@$y^` z&E&#YxU_7L^R2s6rn}>DvrKaWj>S8I!ISuu|LFNK)o#iGl$&}Ii%@vkemhytK~2K` z?k`)E{wwK>`2Cdc^;6e~;W7A?b5tdU(!*ACj>L#uR2RB{d86Tnr6=V6t=7#m!`@!O z*;dz|J&rtSw5L_&O109IFAR)KPXF!@iyX5&F9f<(N)_oTN~$s?X1kXZ3X=*2P+;%h zfKnK}9Yh7CE}gF8r#xQ+Yh40A(vnOa-GV_2v<e|(w#|OEqZxehGU*P%K$hh(V%ELW z>=Bn9oagPfV~72R)QHVL=wx{pF!;zJ`fpkdE!<gt86!2%HZUXMsR1kEggv=CDESvd zB;h%K4gJ%yD-|)$lRD+tO`J$|#5p6UVCU9B)AakmS|T`SeBiP=fr#wPVNSi_yXlN2 z-wpOmLM*oQABE2PMU^Vf619Kh*;$ZA)#@~N*uDMJ3Pr<5j)=&}lE*!$1qCMZii+Yl z<3I-i^J?})*_~DPY<ItiD0eAFsK&#ry(0DIrQ>&@DTS?{e#fW&Cb+=hCnYHg5ijM* zK7{n@yM$AC;L8E!j{7ErCe&wJWrjPzImqD}1X7uzfQDi)HtPz7$I_1+gM6%0DBt*F z1$cr7R}8~yOeX&vsngpPJ=Y1ncJNlr#Q;0TXxK%CqguBWL`aIgDBHEZm0)@lfi#ID zMo-sh$1x;{%5^?JcEO@qc!Wr~|K1T0-2lCEN@|K09Z*ZA0B=s3inUeXYgJ)4tbJj( z)HXqIcQC22j+kKvXfXsw#PRx!qOIJ8R%*RuDc;`*$Vh^N-9reF(&<uFN0Dam$fj4( zEl9plq5G=^2<!0E)qwKSa~ol)bY750l%jS%aZ$p)fvvIqs3j`MW&KtSMYQbpA?RSb zKj?ApU^TNzB3>EeP{l_^XT5vJCJQSrt-)SFYFYpy`yiN8ls#XisX-+(07DxjG-0^+ zC=ul8s_vdC7}D-xNb$lZ7suddzH<m0i5&6#HP+*>%0|9nA<9f{(FOLY%6oOc7NV~* zvyro5q9aZ&a-0ncTiV$dKz<QnOTBCrpG?Jd<B@U8rUpBW|D3IIpRle4B=Hlcq_hl7 zO#4JbBP$QbIb%**&vq2mg6D$g|7ds@PFJaU@=c65{6k4_oyi*v5Vq>{o<nPlK9^7+ z@H>?_u4eq9O<?PbRqPA{p+&amgvpZRMqOA{f(x9~9qy9$$3E{U8ZTG-5gwvg+2aO& zIVHVOA!liCw-Nvy1U+)8WE-ZblnTC;U%{cL^tw_K6fxKZ9MO`2k_9rB?rFelll}4~ zljrN$c#Hew1mi3_ReBL`B_^(Jd9snWt-N(1BQbasq^e^N(i>^5I`R<iH6$=b14Rpe zfAm(-kB}@-lnr+5lhm$X*jY9-geye;qEjIDQf$vMNM6`2u2y->?{==wmSyh~d1RDW z4&H{}s0lT9cR^jAk||rCRSl<gP!gd;ijrT(LFh=g>bM{}h&ad@Fnwub-GIg0WgFm$ z>Kl6OWc*@19v?@36J4ULPv>-amzL7u#Fqv+^vz8_U6)D9fhFA$7iox;W{?J#7|*;~ zlQI?IkGgT2b$%gD%MvfgLn2SBx2&nZ1`V`z6YC2lWySrH_LpE(MF@Wdv_|bYzhcjo z@BxV>MbH^<k2^(w&zMZ_Z7$S*$-sY;MJM4--BQeeZf07U+83pmzx;c*pGrk&%FO77 z85>mOa@)tmjDD=+#08!^#zc%UyqvvgxbeIDUV&{w&)%-l=I*DbRn&<ppg|Q|PPzrJ zNye1Y`G4g}Ul>wTuLG(5tI*hjGj5c#Bkd_mlf;a2yM@W7sxt;}L5YEZg?iy}(<}kW z+QJQJ_CG6oWH(q`DiKEyaC}dS#wWPAz3vbz9k^Kq6k4p(v=F)ZxJDP4*G5cTlS1sY zN;$dty257CwZC?|U_z#`2WLvrpDT|evas>@U+D4ayq-DNDUwo3<o)Jr?KMGBsIh(o z<AhZfZBS>Uqguo*+^Y|eYnu-bs7I#wBav5exGtJDW9)xYS{Dbuyz^?Bg{e&dLEu+I zOOphzE?axNq=or&?6Z527Yw@acxCJ#Y;`RkRyF6!DH%0lL`;L4Gm~!$XA268fU^H& zq!q`n?tcFcr0uFfdG!<Q-)cGNUx-|xCyzTY>dJSX8FVVb_8W{aUd3S1g3Ep<k?O$d zB?wqo3~I_%=ohG$v2h6v#fwSxPQ`c;@0wOq&G2&%D~qaH8XE`9%zO(84dJCs&!Ux) zre;^-peZdFAa6yu>zsqy7%n4#dK*XLT9135{MDHlN$<0EziJ9Godvrr2<xv$fm)SJ zYvbHMoh{Ygl8MS62-n@(`nja{OYb4;((6YL?$_#iZmwKRcWe2Cw<Wu~O9OuV>P=B2 z`T8e`G5t(P=eYitxPj@v9ZVUhABs3mnF1HLQ(J<gdr~Pt`4jeR1vylfFjctB&)F}{ zIyD(CB6-8-kSq=#PVv3u_$wkRt_8aneKP%lW7<g(da^c=0Zh`E+H4CyQnE<VSIk?w zkVd40G}?q~%HV*pO+6lcms`~P1faCG$?W@n#BJZ)KT~IheaX{%IASDu6QBS|7ZFSr z5=opeO=n+I-&-?)A3DjD&=@e$=gt|6ecjG}g2@09#A6NwO7sV8G~VsHoDbg151~zI z`UCOCz8&q{Xv<eZNra~4dYjO`Zq&&!0_&%fdAdsPXCwwk+@@6!Xs@!*kSXx;73h!t z932=l<qqzPt<Pm*D52ek3lzyGx7?oevE^%~v073L@nM^m3hG&W4bvQKo_ZGklx-)l zTs}@VThbgF_)AHC@vZ(KCeaqgT0vu*Ej-t1?a15Mg3TYxnGC)WQUVnsigTtxe8?vv z)?Z}@-K4%)m#$7le`kMQb?B9#fMP%rMv7<Ok!Nsl5SNI+#MrAnnE}XbTw%ZP#LTf3 zMyw$o$q~1Q-HYF8dVUuk6h+2$n~Bs{{r_Wt_yKPr3Fog!34Tfi`M@6s(bm(SOOkF+ zCf$4M<8_^u4IyowLPzSf7tM8;loSk5Pk`D0zLLW6!9Dl2>tcW)v6dW%w=QCZgmotv zHrU+eGkFb{BxrZj6Gd6!67o;CKx_(b+W75c)4K2^(#jS(>Y#Cbp0>4prLI{EI*ZfK z@PPyLv1IxmN2&HnVq{0GyqQ02O1clj(Ol1$MMs?qC`GE#g%_3z*X`ewv8mLBEA;ym zJf+D14dKz#;1aRnWenNF<<@AUfSBe|LA~n1$X7FDLPssF^t`xW+eCLxh5co=c;g?e zvB?oN{_Ot2uf#fsp|OG^i|3X<Jtvr;`N5I;HVoe3bbcw;dS0prp}J*9qT6=!RI->1 z32nrG4`0MLi;~polP{fADn7zp=N*}kpHoG%P@22Sz;x1L3ntfwRn)NJF9p$j=Sf#= z>hgo*fc3yU-N14)79>UcXOoZI6wj^N2GR6Qtl+U_dJj_K2RQSKA6!Lac=Wc<>QSb` z8}W!#qru!CZ0W|*UdnE989yr}Ny^ES-;gsk0c-kh5^IHYJ!+JtC3pm81F6v**yLQJ zi?8@=FH&EmhvraMcdc^<2GJ32BLR1Hk831(9%q`YyXn`o>H`+`@%>^MYHDg+0wNPr z=ODlc6fq#;xMEY%iTkd{z&If}4Vuxqml_F1C3B!qhtyqgg{swzFf0Sqs6M-4ZNk*D zU~jbG(whpqf6iYlIsMRW*tImP8tglzd(BuWvfasY_ho*kXJ(Fjotcn~<p??z=N96j z9=A8p6J+I1dEVsYo<ld|XGYU&q1B!RTdd7gPBI}<U#-+y#u+>ZpFUr1rSDzX5$$Y} z$lrc#(i_TqhKf;`V)eF)Fa1vScL91d*m=-sOx)i#k(lpS^v&)y8MI@t@}EtMbZw~~ zwx~?>VP5!B%$2BIb987)^m@Opr!&OXldo}g$L1kPZK;7$a{LZY?9|*N*<V7I8!3je z&&A}=NQ_(B$5){G_P&qt`;^O~a$8`wI47Szn6K11B_xg8@9q<-ojQ2FK+!@J{#kDK zOnUu1p&4gV%DcbUB>0CK7Uo}-6cG>+X81F50q%=FUBQ5^Ap>qv^J6!fe(MheE90bs zBkVLJh5|a6sVWLRIW=kQBC&-D3~3aDda+ttK28_$<(LoKp@@aL?_1Q{GZM5>JC~i- zIy$_ogYQ;r7X~JMLA4uZ$NlLV1LS1gqcNbNL69&7mvSbRJI;oQw;ojfhNk86D^E?j zw6)1ZWVM93i|L<@gdOaTJjpigq#0@g%J5itcX}l3)D&)?HxU1<<b!dL7`zN;hMA$E zU;NBBKn91Wv@Rtni5rE9D=>vXRl6s=H7m~&f1RYKW*2@uCO%gQcWi(e#i~$_^s#aI zQTZ<9``Q$YI*X;Uk4((3+4cGHnju_WUylipUj*=B0rYmD6tO$yaU!C#(BhZjUo;4u zX@BnB&x?f7)x{*H<|w<})AuyEK*^c!k0Bu;fQN(gh_}}MZ8@)9l^(||=QQR+;7H8Z zhIB5u&b0_E%jw`9UWme8cjRKDzy@Esrsy|ynJ%*8!gJ2&##Ws-|A3n3(2DN>sLJbp z0TIc3_<%BuT48JV72*p-xxZtbe}QP4!ITpntn`TDuXs18ryYMhb8G@clxE$Ax-h#s zLhkC}2gZUZ<e1uO-5+lKeYcG&rA&tPJ7+8KQi{x1-F;*1_hb=}3Epj?%Pmg7i87qn zzu3P$X~ihYTzE_0-oFz6a8q`?1+vR}ick^|Elno$viAn{gZ|eM6Csa;;*#%{NkDrt z%nPTt)0UQ-XNFp$#H&R0_p~NK3;}2GPFra4vhH|12|e3)YsbIpeW;|m3dP)EiHv^E zHMs2g8|KZ!$SKEQJ!=-i1X!BPLfCLg2G!}mw|rvt+3d;l@RwISWQS4UYJRR6amY-# zl2V>83KIltA<XG9#?0&SL}ufON}<ocY&@jy>fLuRmunH}FP+!rYgYk7p)?++5Ry4; zv4|!ySsD6dD+QkZksiSA4|HpzqGQ;&RZZ>f0ofQvv?zIb!y@h)`G=OZ&hQshkiXr( z`&JhsC2rXk(Xe)5)heGJwP@?g&Q$;s=#NV7cImlwDs>LFg}X<><4EbY?GJO;69{v^ z7b{e`r`{8YB8V%mpy1Mkl+e?zQERv)jFAv)3z9faCA{;TxUHnRlBWP;gpg%QmGcES zE~EG+Hw&^Y(>C)rm8W;7??P37eaXm0NJNqRa8>%nRVqa#lcj8klg?;DdA^ri5?@wV zpFf6A5$#rWGSOBsIKA3t07lDmESpW${yvk^pJ}$LX||l2x;AmzGl=`Orh1{q)WJs{ znA-TaGlw8-D$($j>Mnf2yz2RX1IBRq|I-3oJu^?DmVjH`Lt|vH6{;XrcDd5r(#R2d z+2G3w^Ck}7V^wDKtkSDnM{xh<-JgR>zjYzbNZacU96MV-y&dbiarA<ApD7C|RriV^ zCeBsC+Gf5j#<8<f=p3Mt$px(#qnR-J^wsa-V3%U@!sefNt_m1~uWARW7Pcc!m<xBT z^jk$^1++SI*XxQgEhwY&AH*?Z4)5Qx^TSkRT2Rh3n#LF8bu>zL9aH-JEW}}GMHkBO zYtwOiXzk^ASLdH`2p*u7k#gC*7i5fU5gX;6X_t<|cJ6%{A@+^+;&2qe%x@}L&<5ue z3~{Cb^A?GJXqxv<!IAqRCwf=j=y|#Dv(?nPm270oa>P{}HXu$Wn;A^O_P37i?s_je z3<`;*Li|%F36Cs3+X^DkEBE*JcMU+LMgTw(^2mVo)VSvO@Ya2gyYl_m_hky#1ebu| z``+H($;`~m?(nd*iM@Sw+SC!`)Gfr2gL9qwV^KmU>MRaG0Qz-#{dm4f0PW)+qYVYF zNkSI*bgfcq>T}xUGsd2wkO=!G(xH#ic@@m;+=P|zs2^JuN@)XfI36-^+sp-@qJ$yk z`SmX*CZ^b~^`zJa^{HhbcqLPXE#xDy<MYVqehbnpT3|Q$U$oOoqk31^-#>*)QE1?! zyyFw9ZhZuUZVMG$`Gq?<ml?afwd0H&?l;rl^j}-Q;L;<r{8rqNxuR@_&?Wdt($hS? zc0%gBKTkYcO)zpC--{sXGo3{Sx8K(cH2>~6$C$zG-5TMnhZtgImX_5<R4!A;Vld=_ zzyOQ~N|RRFekF~}Kz#jkc;!vPoS0wB7K)x=UeQyg?*kbbDX6WjZiVl^-vcvQ`(q2X zNtXlvAqrjD!_TZV|9M@5_+V?@okNy4{KFUbcQmX-h<N)dJemiygvc=dRXbv5RZVNi zA~-bpA0hvQ6nQ2o-V6zPyoYKNccU-px6h45$FzGb-tIm}0aUEWRt4Xhhu>>B`V>_X z9w3;B<jSbfo6>CvbJ5Rf37*x$)M^JB3lK;E+}&&?j&-9sBf<BUQ=OtJjgYy>zr*Q* zP%<Qb(H!LY(sS0H<f4HK;gplE`77#G9ZdC6<@x5ybr%KR6SAe_ck^`R4ZT4G459;a zbjb<y02KUL*IzWR`#%P!+}7iU6p1%G*VnJ#4Yajw)XN&Wwae;O%8BvtW`Hx()8F4L zBq+EO8ygElK|%4+-R(CCXb5?;7AsF*Wa$j(4&>;($;?QDrdQ+_z22%mNK8abDzHT@ zN>#UCJ3k2kZ)_(AHLA+LDc_G<YS;jEQTwyyn(cTgVmNFZoQB0#ob)((bmyGzpC0wJ z0mLH%w|}X&`J=(R2tF=RKU;1m`Q`?H+tlfgXwZM*S#tUB9JOD3O4<$9ALStBMcHx_ z34b9UVsd<cNWp@)h4A?}dboC~T9NF)R<?y#oaEX6V;vP`F5?LqwJ!i~`DY<d5q+{X z)zx-K?vZdWV@u1BCH0Ty6)s)op-YqP&MFSF!{d9M%}Q;WlrKy0LW1L5we1p1i>`m# zGnAr&QoIX)k}mmyd!g<?%L@F_WcGjy(JWo6RYyS5&i%h)G7Vb${U>shwGbZn)<KII zqoeE!`5ax!$6o%Qa^G{LFNLp`dw7tE4SKh?x%E++Jza8byzS6x`}8#8$IRl;(~(GQ zAqthr0E-Zy&g|7>CZF^}Wi5`QEq_g9UlN1R=7pN^1o?D#dcSgeJ+Ulm0}~1@U0u`L z!-=QPso7a{-s#~KugaLhur+956=#i_#vfFS`Ta%bs>>G~!OD$@7zEbGgc6AYWWLtt zP*rsVL{&Ojpx-VjsBMSWC*ohu2JGsNaa<?2D!F}_!p^D{_Vv(c{8UJ7N&?8hN*jvQ zZI!DyxSbB8+<;ae^RLUzb6K)l;kkfC?Ng7ApRz>>TEBCa{wU@we*OCOWk!kw$=uvL zpy;3|SH0qd6xNwDb&jI14=@BYcUjI+`x+aQ1Kjaxiav@~W!ht1U^iq-`8Qe1As0w2 zGB{@6lQFLXms~;`w}CPJN;9uKG2kY=EY$rBr^$v*pD2dDdw<-r%LXV5CQ&m6A2+Fc zhQz=<XNeJ^ekY0^P}!!Gv5rfr7;~gRu$?9jrv3ie(<5@Z<omw#br7_2Q1o1mN{%t{ z{`mJ}K!QUt2htfVJnC>(0oNkI%1qQbzRfmvSIPvATcD|*t5c{?;E~vL>yW?8dFcLa zA{F_zmFvvRc#IoG$T3A@v$aUAp+8Z_p(h_>wz{GCU<cAkI(hKgkwJ~U6Yt2$K<Chg zVxmtd%WUdHfIS1L9F3N&B$*>J5-X~q{pDWc_Ppvn$ctBD+Ge{D^T3gaIjgsa{GB=g zA3n#iC5mu;GUs!GEU3mNy}ZsW)zr}~VCEX)KA6YVcC=|wVz;eoM`w#CC~%+w{U8Vf z-kPzP8f`ma+-*sXRFq(S8R;7=p3Gv%pT9}yUnEplA~~#{8WQ~$e6cuDjYl=8GY%k0 zp1=T1S6B36I*QL#VEd84<xT;~J1xK*dAkZlak|-ugAax<cplYget%fQBO)>bny*77 zzJw--PPa}Kw}2^_UYZt<?##a+vk|*9Y*neoi`8~TmltF&E-JZ9*_rXr0_qOMBGm$^ zu~EryOPWF?bE&2U)wzgjvVXOw>-8%iR9Gv9<jVCWQ)qW1n9E)7F)LY6+@iLI4grh| zMG#Ax{Gd4--d7$T%c{;pd<tQTARxS0SHJ}bFIjVZ*VbZna&qcP`}*Uq^!uNHP+||3 z-)TH$si~<775ZG7)@*4}z~pf;F)`6&u2{zR^?~T)_}GGlg#{HeQX*^W$OQ;xrK<GG zvd^;gLKf`r-kuN8qG5n%w#uUifn5~0py5Nw_bt8~C4e+b@pbM`vA2ml*m2us=Nh4a zhpJT9sY>ZS<U}A03V_2v%FS-(LT^)loCsp30ZV0gY6AIfempe&;Z#s8u0Up!8<WE; zQZ<L{`83!+H$L(ziZkkposMXdP?wE)w;+Jd)1S?&P&CbYUyFz`+d<j#M(}JbjIYdp z`FHNM7y4tl%{H^NPB3x|3FxtaLs*KeTp1pV+v#cc#FxS&jD=(#8P*TlaVkTK?MFZo z0<EBY96PDM)IEo2_zF1_Yf{{f<w2Nq<?#%RPwj7wI4s`AWTrz1Bf?}ufE*${+41<} z&zEftI4cFo#;ANYvEP!(Cw(+-6LODi+RkZwYUV@OFdE@%G#m3L=roGsd;h?UkVesl ze>S>{f=U`7>YZN-w!cX1OT@t!*_qJtIYf!7<V9qjzYG;M6cV&fWyG{R(VpR3;}YSK zrH)-^KeodRIV{&(VgM3hP3z}foUUP$Sb@P)gHI1?Y8u!8zmt>i?EomTaK$EJ>gahT z=Uoff(DM<MVb__a^wFerGpl0|arw&sQXu7iU#1_O`tV=stEsIG|BhZSVjUfB_%^+O zR*v@VgN|HZ_R?iuQq7XN#Mec}D}E`1RcVF8OU78tShjn0Q)aByHU>dXGNBk9U6}r) zzT7|9#Z%;DQQNu~g<aDqAJhXuoi(y7&uL9fLo<O;)dFDGfRj;;@6Vx~Az5GvoVD?m z7M`yH92H90{H0wVN(KnBMJm<x&4tztt(=3$Hk{S~kvDK;WW;bRg^?_Qg%vF-Dhd=B z7+B20k}JSmL^L!L;|L)ov!%Ufw^F~7DhrKE@U~j@7Lg)rDeQYJMsgFqs9<gD?ch-J zasGNyCI}GS4qh+2y1am1;Yj5;%X3!FoJ@BeIJh#`hI3-Zlo`Mvbh50l)#mLj@V)%h z$^qRaY_?Nk1={BP5kb9w?aj+pPbPkNrD#zhdpTo_RFPY6-q>@gT3@VL?>uP*2O9c$ zDzli5iC(vBbL;Ly7jcG^x!6?TquRP;_GWHHUYDUxrqR?nD)Xmiln@$=T3S~;d}@Oh zBwLU1Dn`MkmMsxCY?@!_4xI=+9kb0{f+Z_LR3VrT?5TfKAJ9`GMOm`>{tS7$`Z@S3 zI*~Ezo3&Lv({1hPT>DG9!kcMl?|!w>T;tBdgBf<`OLSnNs62)STp=rHbz3q{Qb=n7 z1nU>J{8=Ltb=q1+&q`-@`ZKY%<IcQ)O`Jp%m3}5zrS*Nvb?q-9Bap#laytZ=*M*<9 zs?uWtO)I55<?TTNJ8`<;J?_GFOfaGMlRe<_?0EEv9728z`_;Zj1k8@z<}x<Li&TJN zzhT8e5wkZPWH2}~kzhY_$6o5w@{nK%R*1iGd{fu?xnI$Wh2zf)!lT1URw1sToxUMa z0iOl;Qv5YMm%^~FwsY1A<0%Blu)ua{biG#3TRrqKZ-3vmM)Pq=ci5DBMn2x2FkCY> zoQ~mvbKbS1XdAvgOg3`Epc^t#(kO9U%e9U)<YKQvF>{G=vuGF^j4mnJoxu=v9Q80) zi1-^_K2AY%00DKTrqLlRN2k!BJ#!*2DMuI0Iyi6b@>NL4ZZa!l;rsWwm;Ug?o<yY& zc0dxK&dkL0&#J*(cZv1cOC&Zr=Hz_s*Kx_lwvxO&$fUreN7zC5$dQK#4F{60h&k8- zmd;u%P%OD={rM2<+Pnr6_gvroAo*c9o`Q8ZuPr5J47QsJ_Q9GQ?8JFhB2HUV_bMrY zShGp#{<A#rlgk+0QG}0CU(=&IRRzAjCU2`1{=jA}h#unvto%TV_`yejxxp&57}S3H z0I>LQ6nBb3H8n?XmiK<F)D#IjutY{%bV>%*U1^J%QEi6`Wdd$fl^9dAB1NWDDNPGi z>t>Yz`JEQJC=QT_ABN=s0?=V@UFlYX=gNU8V--oPKP88)Zj`BLl{Un>m`1)aS-T1Z zLsK1Y#oD|+JpBeCc|*KVM6WX>sR4fW{VNvn(@vsk9n?RIbRR#N>I;UvKf<1WE51Wb zJsgMsy4*tu3|W)$tG4}?K3zJ~xQbArVI8PkD~3y-_3%48`w%1N38W$`c$bI5%FZ5y z8UWzxij}gAf&9!Z`@iWo0s=zCc`7-(qO2z|jZ*eLuvmqsMK|U@W`8?SRPD!pKE=|d zj_uz*W50dA0;@Wlw!49I$J^hw_5Sms?NYF^?Sj|!Y`JH4m+kXm>*M0Z_NUyG!&`&; z`j2`{jBxP+NXM?>(^nN7ID#;3J$Ew%IB9OiFxSx(#E)zDPC!$1^jnXOPWr4gW(n6M zY5>=|o+A&tPT|j-IS`m!PZui=fp3G2+=`=rEC#t=i!OCyWu@-02Zopp5V(Fy5SY|A zaK@>CV)p*UnQR}&?|kbp8#^=ve($4LAp;-y+7_;_uaj$PYKrvueif^%MEQ)!=>x#D zed#R4hQ1#YrH{IzU>>sIm&-L`WQ7z#&OxY5%aH*eIacTA2uKe&3AmIx0i2yL@}lsI zgC@S$PU32`-<Un_!R;|&7rIb*FM2;;zGA$s2u-Tc#$2y_UXm{98sXw=ZDUof_6zrr zUF~e|@S?nLbHk7bNp;vr|KWctj;-FN4@Q1V>1+)f@~M!NiQJ+ssF$MF$ko=D#Ki!| z2Iz9>&@l-Xdyq^a;I(^+Zh<<}qaqY6<yS)QZ>|yUIDtjSGFB^KQoY6)e<%EAqVm6S zygf31fE8hiOp6=B2ADUKnAE0YaaTqfl>MUAkH0c*RtmO>UA>2Usqx5Abu_u4tg%;- zJLJ+0FN#>)sl4vy#tVz&ro(#NcqHn4-MAz#61AQHEMP|T$?%KXz(k?>X7n9MX0IbO z+5`UEvG%rk`A!@y32EZ|TY98g&nRjq_TxAfFl#;m!%-tMv*3=`2Z!A!ht1pU$E*L= zKmfT(5>Vk8ye}B+a7X;N_~mWD;Eig~BB|i1<MC6l%5%fI<u$vlZ&5h*Zlv;ixPi2? zC;gJ&G8*ee#jh8fWrT>y3J1y8yGku@LIj=s1ijdX#%gO|fLvJzzhvm$L;NN9jHeN2 z!z1SDz>%lz$0PAv2}i{quQt3TgSw7My-JMCpE+ojNV!N4*9V)cZ7~#R*}ts~jaGT} z)=QQ12A}u7_o1_!qX2AlbQbXTpA;@eZQo#ae~$t6$I4h&u&>h6nGrrE>d)_bCHl$P z4m>;4z;|E=DNbDVKP8b8Ud8I3i^{DZH>?_Z-sc9#qB1RlyqjDu!^XNiMo<l2e4<Y) zS0*|>y@WK*wgzKS_{Trq*Lbd$@lsOr;_gv7Lr>?GWmQVmMU99Mqa_)WRvXfVU!{#^ zL=uyZRLWBOw#x+GB(aPTRf1=fV2~&UXS>IN-H$6G)QtvW$q<F>)fl@vl67+H_6spA z4J;|i2WHSPHz3%~kA8?>LLMPHjmWpt8(RhKs)G)MQP(w#vo<g1?^ePkl_r=RM-pR3 ztS1md=_yqeY3?&W(sN(Gtqp3(K!-4~wJPABi^Ju_1tg_f(U8ird0XN8G5a2jSyWJj z2zlLRY>7+vJlL*1hx$IjC}wi^tgjR1JU!7oUB~)HB_*V#;rV<%`sN6DK3sJ}qFe#0 z-VCdTQQ#pZVt(n-TWxcm!5{)`iyRy3$V(W0;2E2>R;&UST4Av!x42{bLr>Z1W|zPd zNmV$$)bf;;lx7gPPPHJ)wWa8nHWp+8D(?K-IJmY!?Vn34@zxX4A+*ABOpblM0wbUv z&Wwr46`!r9dyfs;A_h@hDLTN2&zuXFPY$X~sMRW4OgWAIiYHo;RygjpF5)%0m2HVE z9O+J97#E)FE8^evD&B?Jxn4G`q2#~x=zgFy0$h=`i^Uv}QJBNSnnlqKu3KJlf<Dt{ zpO%Y`Yn=>Ew~<~)J8T*T-jFKvlZptP0$gHDT;1Doa;!%Vhx^}xkgC;ZZRTZuIKq-y zES44O!juo7kzwe<1@;fIpW>cOmjs6kGw4&!z+xB%QZHyjnQ;sww!~Lx7L>dQj?$jp zuy<W85*6x-G^h{Bw8%3vI4)FXfwdowg3AwFMKcRXds7MXaPBe$`>R?Lu@%|sC`>iZ z+gP+P+y_}Msf5ar!sJ<9{i6gs&Va3_XUCv+8YwKuU~JxO!M#P@ox*_d650l4yfl!I zkbn;7CO+0HsHy#c@xR9Yy7%LTuJ`>y`-Mx@-q{KsP?nKg{r3Q{1k~y7ct$y-b&oFu zS|-@b-<diPEPVp{#JM#TTlkXH*%I%bz>|bxY1`v2_>?cP;dY49!)x;Eve|{prlz$- z;gn(9@Tf85$@nuRY}V9Dr?hAnc3(&WsG<S9967)ZR4roBHdC%jzhYjOw%OvT(KIA4 z<oeGE9W8Du;T)CRR3JP>Vp-zuY3ah(U_E$N=WVaFOLI?iL8XobnuxDJqC=*FgL=9m zzM~<%G-eJ<*TburVml@ywAreS?4UUQ0!%}%F2k!c%uzr^KgOd7u9Ny)Hb4?<2-;Lv z0u^NFRV}#4UIX}ba?I;wE40a{UFzXr1E2>%nq^`ST?-aO%8z+?g}AsI5{=D)MMY+W zD}|c&BeXdLzZTqgHp#q9wEl8wT3LDJBC0YV7Gr)ME`IyjW`s(R6qh%Ku!zskj5S*7 zLFZ*M6W?agPNI{~fVRITVz)|~U$=Q%#tlUY<&a<4?~LEQynG(p&utzRI~Wt(h=l5_ zlHPaJum}?A?n4n8@9l*ED9c5f47;t!!J__;0N#v{$1zC7GI;AbYs+Y^SfL%zv~PD@ zdNTvCUTZ$xv-PAgF%*IRP{BL0pFY=-fKJ*Rs6+Ge^A`z%AkN)ILMpo0id}p?DtqLX z^s686bWE3cnEPgS#f=(gpj68pF4d-8glG!78IVf$HyRs^ciYxnlm>o5W@Gi%iMmO~ zaV|&o6uTU4e8pw1rZ$6$nepgwy>;@KUw01?5~}I5JsVq`c<_}(5$5W9O)L4(fm6`! zp@hU5IhXzT$)`0lLiE#Y=y+SZDJsC%`xSKX!uAKJmc6`hvty0N@eZ+9#wf#OGLu)4 zEJqBU7PB`;p)01}(8Z4x9|ZD`O_lvd&m2U~&ZgT9g>DU*<R{q>wRdn0pAkPQMvp>4 zSP!fko7^EyqfK!;U3<(0W$Ib_sq(v<r}@XT(&IxIDXZM{*Jxd|zKZD55HPmx_*lOv z6smB?M6!~v=7h73(mu&j=@j@94M(D8ts->L-$V~z)oPb2)lY{tY7;k}Lt4lm?;4{M zGSXorf_hykG0P@3!0$b>fDmYZvCh-^JYjd!*wlekfh5)^1{kY8hHyS%D)$_Rh<;rG zxYjEGyz(0ek$S&22ClB8xr<PvKfMpX<`}uVr{#F}P1Ts)n#+!T;eR=fU99rqLPg9$ zI!HM`p|X$HNwGMk+@Q{x%+FtHnUP{pDG%gaxz#*f@+kfhyy1ei;sTa@@%;<1OE6sd zSiGSMjH*!88$Ic0V8VUTCft?=TuB1kl`i0Mpr(U)A=sLCaG@2ac=1v9Yj>!C2OZ}F zQOIn<uMVR)q1RnPrv<b^)w7khaEhVB;U6$9|ETPQ;l!rP9sc$2ar@M%&4fC(DVM3+ zZ?GI!CXFFtLTh(|qvjSWb+ii?s8Hk(_@9B)n=MR64hg-^=PWpL1;<>Lig1bKO&C<a zsD(&IW^&sn5H#t_81}7v6iIe}zHfDgP^os+h0Ctmu`8?Wa{t8$mxtYJiZ(nZwF(y$ zF<Mxrk+FTdPxLE6S-l~J71F09e6cB%BF*3QEyuLp`zf)O*b{)B1@FenECMUiqI)PM z^n&*2bxS;}k6*#jwC;!yiYy>gx3WL_uAx%4aK#_%*fI-9&1F@96`PA}{QToLH*BJ? z|E-Ivt*z~~ZQ2+#5#sGWoY3KWM4Do|RI_GwlxcxI6FgCvVTHQByGRyf^g|G-?;q^E zmY{|U&zd)RxAhc%v?Gz`#j>Cx9gwgzHBba&+F>m3HIA-}gnLV6<IcGZzHtVl7LfYm zp_)$(>v>Al=sMFtT7LYyNuLXD7-93emF(kmNzOv6Uq<FZk99Df!c0X!Ti7CMuiE7j z;dhQ;L>ap%97DRSdzvoO)XEB8NGJ>*9znr3yIkd<+HFC91EZf8h}m4i1DYx=B2mFM zi+T0BdFu3u*C4SKDxaMn`cU1n4H079Em$PXdk&vUILka*hPTy21+nr@yY|8IgCbn) zvbefZjSv2;)H6=0S^vW0hrHP=xk*@4IN|IISjl9NF>SAe>u0j3{aLI8(tfJ;Hrhn# zz)3KmWOY|XH_(<o&HoX^5`C(STug7fXpMY-eJp4=Ow4(sy!2RV1OD$*-XBh?Wmx#p z(4ChiNb{$_s<G40{+zdwoGaj|APgEs(xB}azKiXzInV6(ty3IJx)=$dsXtSlJ<<*{ zBaiN_kHLk_a<pj7yjX79uJB5I3A1uM)vwe=9`x81(d|}!(!Ka^8Q4ZOQUTL-NJjP8 zWi!WPaNTnrx84Tj<>mZEe4i>Jk5jr=u_D_IWvSQ@L{NU5NrV~%4kXIiO9Mas1rm{e zZSGzdh0+(U6Y8tiIw@sSNLg*uwmTCupU=z>#i{QVV;0>&ST32ZHCAM13CN*pChf5* zU$OXL4aKXTVnrbj7r~TpP-)qrW~fNhX_kX5C>(ABmk$El?+wn$a^M<Jkd-Fv?>n=+ zPU7hrf2M6G`fBvZs5PGt`W0*mNj2orsmV%%R~CpuL0S)oDJKm-W{gixsxbXgj>)aB z6*bD8Cf^D78Cl>xN<+oj>_8_E`D_E$^a-Lif{V{y*T9S>W0FP$W}`yni4RYOeb`1F z*5$n0)IWvJcEt+5Se$xt$MgXKNCMSjU6mH*t%%t-Jcs`S16W8mG<}6yKvD1pph^S` z-v2GpVu!jdd@&e!dg3lhPQGP~$_ZY|IY;YYCWos&_p{@>3IFrq>GC9Vw?O9R@o3j( zwm27g(ykcK)NAZ`Nv&cOpCpYwH5guVqzAFx%Jl5zAN;)X0}M&Gi{omX^^@;Q{5}0g zGY2Y#(IR|YV-Y5<T)nJn5Lo8cFZAxn%3*uQqQO3?zlADV5q$~XiXnSLkcEw!Qrqry z^tW~6%!?MB>a>{9u*f828n}g}j058=+fEPTMwIE!ywR$3wPFRBFpWlzi56c<xDXdS zAg$RgOWk{1`xv<{`XQVS@Ygt%lo#!fuka!YFyynWSd{OcHpRech<O7_)#4SGDYzB` z77BGGEFHql=Z0_<inK*Cpcl2hwtm>#(*`U`tTj|E2^tiPhbJ#`!m~H=y|I3>?1)>e zg+Z~tk)+&qY(VYKC})IypP72{mPjHEsU4)3#g<^_sOA-B_&)$|L6E*LuXJ!sEP}&_ zkMiWfLs9EOM5>4>D&-0v_`nBR+5#=a{emj>3kCuEI{vmoT#p#Oc5)$m9QgHpW4Z&a z5V7DB9ahwBmqmL~YuQD=#wL*{!KGRD#M<kc745?0!Z@M*E=k)J^y4I;^<Gjbp3k>u zO$*@Jnut9cf`1Yr3t9iY325yFCy@k1mN6EK6e?WclN9pvP1Xe5c|(Tz<pma+9zrR` zh6EVJsWU#(OEIzch0F+nV+6y)LkI+}mqJJ)S2_o!6g#dQLkCR)ZE>75)=ANnX|zmH zuNt&52&u3_W6DQ)`#bjGNYK`DdalIg(E*Om)Y&|i<H5&j6f*^E(~=b)OLJ!#bR}9x zj(J++I)Xs^RBL5?Kio5#s1;!78bVpk)b9==$qKyRIbzQf3lPborI(3KOg<!r{MY!< zt_-9#^<mqBHkfD;?jRNdQ42)Ser<;mUi7%5I+qZsLdV37mTop86eb4j+fucrt;5h0 z#$T^3(>25uJ30#6mdLj22=R0}B(9yp_5OaShJQ2w03ZNKL_t)xqb6-1UE2<LLae)^ z`d#lEt+F@%deK4(FBHW(zxdro<i#5MaRc9Bm2lCjk<+Ap%H>-!t$kLc08cwHDB0iL zh{a}4&2Rg3LuPUV<2-cCElVk)dwWT~(Crq4lL2pk`4FC6A*fYJIk0n!WbY0KKL~KL zIW}GS62^C4h02W}vx8VC2Qr6r@)%MCcr;W2KQ%&-8X<6t_##K$I5dMMwOX0L4`qZ? zL6uit?XhS35CDti2J?%{<nkH5_rv4t+_{;b9-L=5mtr*Uks=`H8C>O)b^|aqBms_q zYI%i`p#cyU<*KL}Hm$L>e$vk8E8A+jOocX%5O<C_+t#&VThF&-iZ3+NmI<S%IQZJm zc7xSA9J7m0rliPDPl@W)Pq*~&*ECpIjb?Rg9dtZzE=((5kd$ujPL3`;^qr(%wD(Cu z^eHlPYE1+5*n;GD-$?L}*M(j()qSD&=kTq|Lc1T_f0+dMtf;hk`bS{a8spmNg5S&Z z=Yk}EHyn^{Pclz$vSOR$CK9<`%s4maF+<(`?jxSy&9@Hlh40qzq(P$CI^mE`Sswjy zmBC^jt1=L|!Wk1CVI|u3xk`oWu(9|S>c$|2q*^QE2!V^h348|Z6u<a}>yX0I1dg9u zX8+z@oGn?7O)YZO3-{9WD-;LQNF_+wd5Rg$_+Ty~z6q3+l*=VXiUYW|LCQ;!^|DNk zPLRpEXdO^4mkEL<PRdI#=)?URP7<{DefPh6o);bNeX)z~>es6-qZ%vPLP5!@$adig z@yOyv&$o_kN+toxpc@)Vgkzdf1nb}$#DABJY(1`lR$Dt#L=rtt&Q&9}JxaM=qpWKd z%gODrz1JAK5oqFq*OnyW5E~zfRc#>=xq8x}{%HGFsOM9;_Bt=SNvi+Ss^Ih3-e^$A z_RPmNej;5)0G^Y#^{W2!75V9vKwQYhwUI@<-w0YP2Gr|keD4-AQA(k8aDmBMc-u3i z_?a6#6m{IlJal~6;fg&TrSb}yjDvJjAQe_Q80BD<!YGAR3M&OdN~Dq~CmhRbH0nrW zkU@hqO=NwBH@<Y3iNVmgXt^5j<k2(avku>X><qiM7kT9ICDNG!Sf7+K1l1*mb1ub9 z8ry8*7-&{&C?Mx~_<ju}xG4`M75Pkt;y{61F1Kb<)Lmi4N_#@eRnLijL2<n!9QWG0 z_O?j;*Ddq2(bLV^(D2AcQogO=6T|z7;29?iwpYcUKn!d*G7vp4glH!dy(D@?c<hCg zEnY*n#M`Ri-;cq+7JAn~r0f+;?1rxGja(BQa@}!m6pwg{KB&j4ZR$)Mdle*Wtrh(W zf?nt4bG7X4+q&z4%GIm2%L%~q`F5$Hu#L7AE@peBR4wV;_G7a3vpX>`F_fEl565xv z{on#m8XFC4!nK=S_KZrZ<xp0*;lqw?E}J$vl&TFJPm<20aZ_&S5ujvfbR(kxBLr4T zgpky06$AlkSK**ZJA$!nncH8!3k3uSj!m88XJ2^@O#}CR|0GvlwUtB1s-(Rf7>mSG zo;!=Q0j1?7(vCv=4Rp{XllBOFjZy+BERJ$;T(@OgCY5T7D7D;9JC9|2z9jdzloBaI zlp+2-6kM{2dzc^z1Hy=oyEOug1S7CUVnfd)j0O`uZ>@~%9z+Blw|`<RCNTI7AHV4n zG=r98q>X+G8>&ZIYca9FP*l-(AOms0iB<NJK|KoA$*F>lz#JzO#$daY0Q*&?Hrl3+ z_vx3M$3ZJ5LiTD!B#^z>z^PXv(AlQA_|{&F2hswRL-HvCq>yd?L1I70#!l_PEY=L( zz1FS1`*j2B&~vu<wQH>PUC*Vnndf!<bDr%7?NUJf8|m*~s^HumC^p&>Sa&-_q7Q6M zUx+XHxYinDOqdk(c>89vaY2X4AkdN0%}Tw&^}7^Pb5&|uB3*}u4|{fHXy^uWvo%tV ziz6k<aR?G~?b?Kuk&+Izav9xdAY>?bQ}A4>3n%#Be|Z-<Phx=iYQPT;OtWwI1XHI2 zmX^!l<*E5q^0^d2pz&Obt*(SdN6KQ+G@3OE`5aBZiE=`}g1~R$Dv7Zsf|>=$xHoH8 zosw-NWqn`xR{yn^EJ?>ma{S&pp$r!$Mail<=83f?L2Rd1fz|=VVv*ZlcRQn_qnti{ zim!h4YxqIHwyj$^b^0_Sa{G&+c1?J0IIbI_K|z4*N+7$d?rw3PR>IKL>PRLM{c!S* zUVj1tXN|vawF<g}T6YVjS2bwCiuP!vwcP|idr8-Xm?(+u+K!f-XK#X`wWjOecFiIq z9OX0}=Vq_9r)OK?JPMkB>70R9QrI<b`1~FMd=?=9PsItAlx$rOqP-N`y%C{}i~5|_ z9RCInZq%pl)@2t0ip3(kckMp!?JyRO%~ts@pMQi;fBh7H{+ZL<^Su+i{^kO;<}&rB zq3%PeY}qpDF*@YYs5WWTYT^7jVNX<8!U|j}bVT}77*g8c7>o9++`Ql8rmH8zWCb`j zy~rJ}y%yJ1eCvB>xbFH*{P^GsnSl`kVZjlk(onB0hlQ9F)Ef<khlcR|2EqpDpoZ@^ z@B<$cIpu+E>Fyh2TCJ8<;y(T4psl4^tD&55PJX3a?xBSrYVo&q{kwu`(qt&XxNiqo z(c&Zs(Y6J~S~8go|KWrGfj7VT&0Kx;)x7CVZ{}Bj^;a1l8sbm?^iR3|+H0}akjrNI zgAae0@$oTkz4cap?bm({YeLt)>#w_xd_Lc?-9~F_^*WVGg&+vpCO|gfL9qrQuzMeg z?&`k#=LS4Hl5Mbf-}HKYtiqTi|E(s~CGVFe_{&5)Bl#Iph}J#!_GqJYwzIp@Bk1-b z_VruGk}az4@3iJ9>vM@PDEd9z`9$P>a2Wx3E<yksRdKuIS>}1T5pEPANWOQ-?3e43 z_}bgi6~v8Y{}os8!fUTRk2y6<xncP7caCyqrOeGYZ((*$^3(6GaBiu=j)`Nu`MS+~ z{`+&7+&Df06TtXn3T>OrpR1x9O<XsHP!2L=#9^^iD<zBxh-{8<bU><cf?vM#6(|V- zmiemT$)mGewR?nS9UeSzf?xe#ZsPC0zKl!_VwDJ`g{7uiTcPMm%9RRZqodSn6|e!q zHfh$%WL*dC2LwuDrNoGcXCGAvae%Wus{3B&RW6s~!~gL=a?33*VRm+wg9o4F;~)Px z$B!Q;l}fGZZ?CSZL_!v>3q@ERM-!Zmu=>08mRp&anBZ?d`8WLIKmH?w#X+vT@=7w9 zOz6xfCFOF3!NDPR?b^lI*f>+u)BNUd{wAeTiLG0=@{*Ulg!jGgeU!`PFmbBYx#^~x zc-On$MYUSx3t#vGKX~v5SYx^V`s;BVhvnsEPEAi!Z!}u|0D<r0Winx6)m5eU3phRd z+X<AQ<FS}m(0!iU)vk#$Ld{yo&vwgsU;6c@Ma)c~k5a@s6m+OO_GoS(WNgy4G1Rhq z{pj|oNFrC=`@5xBNjx?zE|?eeY;OZ>l*D~G0eGg4mwozmurI}DZe$$nlDHCfEOZ-Z zeGAbWF*tJcC|~)?SJ*VUnZiJUTs{{GGUag`C+ugdh@=$(|Bi&i$4>M1fBjO@j%Clb z6hA#&;YC-B^P+2p(Ax6K7Ygn=u!2zqgbrK%6BBtPg1Ol;eo#Y-6xvFJfO@lm4(eFz zBSOzQe80*sylMxV#<F2612}%FM6r-TDZwL;mvOQJ+%)q`CB`SiVB<<c2SO82tyUQy z9Scc?0(>3dH_Et<#cC5mUy)c&Y{p_tXq0q56CjO7ga7cs4|3y;H*)OQaSj|f!0_-e zfB1)g$Ok^~0Um$+aXc^8wj=3Li6kpx(FJMu^SHMW5~Q_e^XAP6A-M0p`$(lc%9RR_ zJn{(R<KqY+c-!0F#!GI#8HB)fUEEZPW5<s1z5k!RHxITfyUII%d+#&dd*6L?&Y4vz zl~kq424p5dA)*P|0@QZ2+t5weL=)H$Gzy5o7{WAy0Nfb=g+u%y2eb(rcY|yJZ5cO% zEHhXV2wQ4OC94M2lvS0LnQxx%c&5E~|FO?G_uTvLd--10dzo3PJP}!$^@elrJ?HGb z*80}BzV9#og1`N@|29z+@tMzjhL>J?i69Is^ys_4`@6Y$^CnrA@gqO-BmD3W|1e4_ zKKQ{87Iw;l|Mx%q2mbAE{T4s^qd&?ck37Qm_BQ|QpZzm-cD7MdlqRcWs4kRL;}z^{ z1(X4G1Zy1)aS(NJCC3FA`7PKnB<)1Eo??2!)|4B^zAbBQ0ZTz3Ew~z$dLt7pid&B& zPfj%*L>d%__=89(D$c~6jn(!<<H&IkSfSq7G&t{#_JL0;<2x+SpNtWaESAd1?GMU@ zKSBfQ$<3%YD94gwYvIKgU*rdW@PA`|agj!&$;`|QK@iexHfc2?8jU9H_AJZG%lKi0 zA2rbgeC{u=5!eCe&n>aK)!{$=$rt(S@A@uoysG$%&ppF;{Ee?=b7;A`VMw(k&A>{_ znTr8fkM3R!B6GI229zu~@77?j4ALQw%y08Izx69zfCKuu<;KP?-~81NAgtiipWWt> zw=eL_i#?*oECM%5=ZOp(?-B+cORcjc@c?U5@;oL@dnloiLZXY!L3v&Qc?Vcq!h!Yj zZ2#Eb<nhjTzJuA>S)P6NS>FBbuVQa+k01zm=9y>szz06S4}IW=DouuZ2pkJ)g#w&B zVC3x}_Inv*I-NbjFyz983%v0B3$7A3BYWeE7cX-5>{)!@M@lE&6Zk$K{pd$|?|a`% zk|g}vul*Xz^QzA&q~zy+{^v=Ogzx_D@8+w%>Z`EU^1y=+Af@D|fBL5x4u^DmUB2lX zALFsd9^+Sj<yZLjZ~t~a_)|Z{kNv}cNVT^X1VURUquL3c#bMF-pb3hD#DI#VRg76F zSCq*K10D`h;5(8x&D7tRPUNeNf!1W2O%eP{5@Fq@ds@{#8Q|;B&0*xg$*+&U$Kq@9 z&Q`>griD16b5*<K;o8C_iC5=2Z{*{iNC1qv^L?1pKpc)jHoP5M;W}@@IwzR%uhk*F z+IdSU)^Y}a^zPjC-tBbh4HHzse)od_qb&*nLRJiSgg^tvO7hg>Gk^HISYwdNA_@7f zKm9j|pp8`Ud%yb??8Y81-qbW&7ii8eFn{q33rq8yZO@`KSm|SxKwA%?0wSqNe2X!H zG~4C}zVjV4LWOohbv*IZ4ni1OzGQtz^Ww`ZeAj>fc0Trr4zqI?kkX<gG(5wZW`mop zkTluB*n}+Yp|d_x=2&Zxo)6Z;^Au4tBG(#=AWahX_V#Er8Y4N>niOyeao6u<p69&z z%@32LDI05R{Ng|Tr(|hHtJUNOfA9yHpP%Q^M;_(s)vLuOZ4sy{c{BC<IOQ1<lS#lt zpcFzNJ&#X+`p@_~f9LP=4}SC?@Zk@C7;qeq=bw8Xr4+yVtG~*h|M{PB>C$CB{NWFy zlq5}4-u>6!4LB+8GiT1w9}LD`KaOLrT)D!xfBU!d@sEF;&CN}|<y*c5DJ38L;0IY> zU*~6k_GkIZulh=^UcJi4KmLcTtgP@0zwiqzFE6vVw>NtGwd;4JHFy-$o&(SkCd7g! zrFf?k3}ww}(@rGb2cZPwNG*hYA4N?10Jtx@gzn%<{xAe!UrULD$$M3jH|0{^iGpcz z|0_TDN$trK(!U3OCLu<0)%O#CyLh<G@%Y;G#|faP*<!dI-GJMAKVvGf_E0iVeOxWi zvjY;ZoGcS$I!7Q#(i8!BO4fR$PBPbGz^E!XDj^V=MH`Q9EI=tNmjC#B&jJ#G!qUV_ z#lqsen`;9s9vVq*4cht$uSsqs#t7Q&d9GYs;@VY(N_I$+A#)37c=3fEZ+*)Q$uQ<i zR}-#W3~7ZkWW$7+wm|uAtZy;OdG!nb4Uz3(Y>L$hd6wWQh1EGqDx{F4d5-7#L}7?E zhHiJj-p&qbniEA6?&D(oo=sNi%gf6=`skx<ZEWBxMRTsf#>NI48ylQGdzLfHXSjOx z>Y>lWn9$B-wL3XoU`#b1U&fHFtt~$Ep%3wa4}5^1`?;S(O39!8>7Vl4bI;e37wH`R ziqCNN>{-6&?|u)T`qZbmeEBjz@B=@<kN?Dv6NOPVb?`M`{WU!P_~-f1hd#uQ{n(H3 z$xnWgPkiDNeDaf@<kF?f{NgYE6Ta{7eIHR25yvssST;5`@H~&%+1arK;6RA>us}a$ z#IGR0OpRD}LL&GeFMw$Q`&PNgLE!bF>%8P4*cvwgF!i@tw&=!Md-e8&J<|R*9$2UI zkoF}L2Nd2XwO`(<AQDF)ecsMKKaTo{+b+EBCjfW0B<D1UfG44>^;!e}tvCnAGx4xf zN6@Chk|h&32z-(x9jjuiO2ARyv4w506@ok;xek^;uC1x*mRqy|VKtCBL_&|$<7B0| zzC)wgMCAjNa_)no#!R->LBpNFfZd%vb~k-?Uy}UH%YRP0J%{i4SQNd?qt%KzGv8)q zE5H!)=YMpL-XNvDbe`7SGR@g#qBqa8`O4#%co$&}zD{X`*69uq0tO*LhEDp|_XBo! zI(SMs7e1r0R%5MO7FO)P*7a+sl;V&7_>Xz}+up`Q4?V<>|HMxqgkX7jnf3K``u#pz z+gtnYpAZMDo|npgrD~w4vFGbbarOJ?`9A;Uzx)@Tc;X2jc<=#~R6PIu^9UjM@P|Ll z^Dn%BREju`dG5LA*xcOYZ~d*m#opc?zxkWL$zT1ef0ZBlp&#NK-t!H7_OqWwDMce{ z@PQ9}fEQnUk>{R!j%Kq-6otI+eedJ?_3I=_LZ0U=EiUoW%P;ZG@BL<kl3coU31bY~ z+uQrsTS4F(Bl6Yf;>+*V1Np>A<k-Kb5e-jRqWN}$e;pk#1qpCuq*Sb7BMvx^J$8|B z(Ec_V5Rbaw+|KupyPuv`AReho9_{@1rvUDi_<syVv)h52P9yuf)%gxufVYj3R4nHD zc|{de+|QNYr-C$<@@Thb==TR?SysC?+RfsRy^ca4YnH*KS&Vxr$w=_T1<Jxqr)W*M zX*w6=Jq4bp3h^1&=ND!?^LH&rgRvT6ia<bu&O3#5up*Qa6KghZtfORv6oTyL^Z3?~ z>?#H*wDoxLj}oMfu{OtAi4wS=UdYj^ARzEVl<)D}m!4&HWyP5jNr}lbrwMS(d-c*w zFY$l>#&7V=-}Fs<&DVSlS(b6(!Ugg?=kdoM=h<hU#q+!=LFnKFaSRbSWHLZ7A~8wn zk?WinUwF|aDN=$l{NC^Xe${{O_Imu}PyQsvTCTqI62JcI{~E1xKK02@v9`8Gzdxwn zSHIuqmwxG&_}=gRUf%!y_w%{WevX%4xyE;V$NTxd@B2PH&m&D!{^*bXh-=rb@i+g* z-{hzM_n+dCM;_soS6*Rzdy6oP_6Lo6E3E$PS*QQNK_h}kf&P(W$?xgP-`ZQO{X>X= zV-pdD^|UNh18=h(I<3+_NHTnkbSmVb$<DO%9;K){ieAQ@tuLofX5DuKyhjdkitN+Z zBGG%)MR(Xjc<rxSkf`=0NhRDjdcaHNzww}BQA*NmHY*w6atkwc!<PcCH2FwISnC{P zG}c(OHiZ*mS%hh4FDwh2;lgRK%)X^iWO;^=;2DMTJp3Ri)beEUew|IPL{qY$wTUss zlz`FNB@R*`mB7l3Qp!dc4Hg2WDt1?{GlUXAv9P^juH9;|Lu{_;_7i^gXMYCI^N`At zWibLn5C)9t?pu4vJhA)9D2jOE^PfiotE;OlEiLiNE3eS&_4tk7_>KL2?`eU<vQMIQ z3<=oZ0jjE9tL>P&+}Nfz)@OADFNs7l;@v1up{?f0r=P+Y_neffh)+KCBtQ1!|F8;7 zN=ZKS%OB$3ee7dgIDej%l@+eO^b(%u@lSs77kS_N{yJZJ_DlTcZ+-;N4{BBXXwstm znyDijN5SE50b2tYF}iM3@kAjwZT-8kjz&$msQ$e=ox|u6DbQGRr19RPqKwn_p|Jp6 zXp0<0ENz<J$x(miFcrg-EXr=@eD)1)25|4R0L1HWCUX*5IF57IajOkaDHl+)7%2;g zy4Wy;*e^(=wH^}!5klho{+Mc*z%k)RkbLo8m0yD+^{7(Wx4>Ld;3f{7vRs~PtaV99 zoaYR8hK>MMyJk`-l;>IkN=b~im^`lrq?6&0(DU$pAEhXg1_x=H5^ZoAt0NH|YF~E_ zLnB#QONE5&?(VX^vx88Ic$k98kpkxCW@$7dx}6R}S_chIvlJDg+R$ZjEgDh86Hh$B z7ryWX+U+)tMuY9`?WrUq!~V@(GOpBkSkJafX0;xZy&a1@2N2yr?0fY(3tuY1m=i3b zN+vwd5k<Auyn5q0*RH?nB&7o%Yb~Gu!V~=E=O3?HBcA6~7Q;^6(7nGBa+ShWzU7?! zq&`C3ILV5mqHkhUdGGuF@nG;<0LQmN{zv9M)Y$)%Isk=JrwjN+l7E{%BK6N)CJ+Y| zKF1<s-bR&uC!qe5I+8fPp8(t&J%CfN<eXsB-f8&h#8|Dx2D!PpMW!90%LUp|pI#|d z!2c9RKdxd6!>~YCG*V7s-yXU^r;Ch?{$2NecTj($A*b(&){Qs0Q7~spLlID<5=iTQ zPixES$||cXH%7lN6-v2e!Sj54-zN+`f*^3CZAzh}B=mzZUj$KeVaxN3)zwwvVTx3e zEKLyzJWsK-w8ZROn_jOwR(;uN2tdt&uYUc)Vtzi36OtsE$}T>voos8@+SHTELtxA* zA(*K4v5vS|3yZI5Bc7B&ma>?sw~YBAOrlSdm8{P7==Y65*81d!wMgs{*7tr??6l;+ z?Jd7;MeR8$r#%oLi~DEnh)+{p*NK+MZ3O>mf<M#tz1xxZz1?dzSs)!vli;=Qmq%?s z1VL~=0l53Ie>AiHdI-n|J>;h)0W74X5jBxga^dWGqNqs_1{E}$Wf{g8w9ZM=lq}6i z)08~VNs^3qyN$KB>i=u4E1!VLpf07V+A-zE?t;8MbOBHM>?Hyrii*!kp30hxEmJ0` zL?z)`8p>PB_CqNYl#?V0+U%lpQ{;~B`^JKjMNm=-uV@cwt<ky0^E`xb!8wW=EG{n6 zY&OxkW^Z>7<tf*eps3CcA#P6Vc}jV(m;EFxf2+;%uw<|@<hcbbemj#jw<4?Nc|MkC zIpk+FPhEchAQ;$UkLZp#u?}i_?)3y?6#R})cst1iplYofJA(Kvl_DXQvE<PjJI40E zo&DpmpPvT3+kGvUJ6E9}gghL?m3Xb^KbpeoeIcN`erT;p)AYnifOnc~a$2t^grL!k z(8d%MW>!`D<*1R65~UQ)MiZ~?s$(Gpd7iVqz0J(bj1z&WiM^<rK}?#aMG~Pg1_pxx z#u$<$Cd-^esFb4G+{=w$7Oz`Yyyf4MBZ`%vj*>M$l+i4*k_ug8?<%Rr0;2Cv2Gqjl zZi>}+DK4U|DI|v7UYBJVI@e@6Ls&tQ?72}j;RK1IM#$pQVvSE>@3>pYtxy?TA91Vy z?1Vmk<%B0r?irj+P)aqxX}#aW0<qQh;DqIXAUK&!S*EGvnJJTl;tsCU@n^=?(4F!T z6~+HcDXaEboy&8(MZ~SzkJIkc-RORwCJJynysQ159rqJ}JO3s;kEqc&g#}rwrcOoo z^Uft3&1PfYrdL*7<>JnTASret!MG{N_V#vB{f;!p#RMZs6~SCe#r*ty1-rW+an5~4 zyP%(@&i=RjdpI0otz|eIR#jlh6qiC^^#~dsS?MaIl7%{*K`L(_Tv)eE9fLJXA1hHO zR@sWTCxk#5gAl=#O-AekAS@O?P{*#A_kkEEKx{htImF0`x0sEuOX*r+M@Y(KrHMV( zXFV*i9|X1DZbf^Lz~4dF;9fGe6=Gb3rpC3aH~>}hD@OOQ{GnS({@yyki9>&XTm{kI zk?V1%_s%1qPl&>O@qPmEWphlu`4e`f;toIHCvlV_HbNX+)f|@b`@YX`I3x^1x5-XO z2ZNK{J!){O|4~ZOXf#l2lsMGCU$z@csJIlQNz;@p%Se)R1f6OszxuKV?*-l%<UDFk zsOsO<=PlX?QmUF4`xFqjW;8Rh?-dn9TWyg>kBR?SY80^AxSqU41v@%{fMaZm`!yaW z+b*U+E6ns~(oQ54rAGcKqQ3_Pv3<Sh37$fQZCEjp>`q&2b*H<dx!6rltR_WwCIh1> zUdtTmg6&IQCWF5aHCAIy3&4&ib)awA%isU3x#xcLEQo#AaDTE;^C!Lo!T-RomD3?d zJhwc7=Tl0F@89PD+&^9i$4EfuR#xi=Pap(AKpe+a5^&Tc=2npGQDC%5`As1NK@d3O zq2m9ou_&R?x!e5GG(||kFdZU<U^pBWZHc66S2!qj1VwwEho=-?!DSGF>NUWT7Nw9? z{BshpZbZ%kO2}I9u~oo4DV56O#@)m2Q(gJ3ewcEk)7WaXZ2v@ot;HUDM@(Ssw3fw` zWWaK;W$ox!?Jci#IsG!8B-n{SZKt>b+I<!E_`8|B=5{~aKM{B<xm#mvrxLZ-9}#-% zPLK6ue$w4<e==|qvg&t{wSPS5=b*bjmQ+rDZ}MyXe(!z)aBr0EcMhVPwgKHOfr?wd zPxqf7@R5k4|K5~}M@lypkfv$Hem!d6Y+7P*pn1(Ls=~uIsrmvfc>rabV0LyE-}lE_ z8|C{hQHDIv(Rq&5nl#VJQ%#Z#F-DVRd9i`&kxqh;C?W9!H?}6FB#NSf%;#Raj%bv( zWD*sylh>)P**|e_O7i7sQ$H$H>PUtbJ7E}eI8sxo7Z&J<kTuzD!Kq1bABt?;M#eOH z1`i_KPD@nH0Rg#wa(jziepx6003ZNKL_t&lXbuT8W#AX%g?#xeTf4u=KlJ^UNy&b5 zuY;5I5(&Cft*6&P!8GMsO#51^)w-Vm-0dUFGSVcuBiqoV3C3Yn?orNl>PALIHK3GN z%)K8SKAyIqoiuPjnx<7So#rooC&^O>9oiKB0r|K=&0z_TQp)KYD35j+A!i*yQ3^NH zUiO%cc7t+hnnFPkG)6NV#`Jpw@;t+$G1es(C9gtCSy|?~>*>z#`<~-8NC(5#$(FJp zYEG->_65dUjAfR@ODpWHC(>%?uO|W6kztCPxxYJ`emz&3%$ug<==-YsgDdj-*Tn5E zy5pf@c5;t7+>mBJk|%1{K^$t^yWc0kzP9~P+}Fy#p8(wDYWGgtP@d>}KV|e_v?i^i z5l?v!M}hR~m3t5b<au6Iw?_%^CvDzwk`-l@G-zFH{SFN<2Z+dwk3KpzLtptc8x2Q@ zRI2b0a8<X~PIn>8^D1$0BbX^#8+yHgdp%>SK<!!(0^d`G7lK5o0HIVhIpHaVC=dWo zc{OQ#F&d++_zguH$k=1;`IGmpg!{!^gnO&jg`J)h93vKUxb4qjNy4<>wa0z&{m<b< z-eD({04EcjQoLxS=Ohkn^-Y^}IEh4T<dXRMSH?TebDiI}1HK2|gy#{45m6%|&EgY& zxb2ZhSGT)~ovh^V;n%1PES~2bNo{c2oO&Gz@O_^=&-X$3w~{wL)qs8i8;}JwcHe$J zEzv342ZgN>ahC2&?!*L%l%jf9%A?ha_K_0n1jbVNE=dz~uF3P9JkJ>xW0rZIJ2R$2 zd9X~#RH0v>gu?UPWQOz<NQv)xZi)lfCh==YoKq@vv*#lvUe{PQ#ceh<So|Q7pz=PP zdXi8Jh|{FN#DRTbdmB$hc}`ht4TvKo3CGJn4j<#(za5RL{?W;*L_ta?nl-TwkD9a} zXP=Z60r7N`_0udQj{Us8v6X=D9S(ponlwpICrE#}+%4<i<!MmeVM)MYNP*{h6^U;0 z=cg^$dx<A;r_hCiX4;K0)fnVq=un-r5QHH?6fswD5QGrU%fO0SCFpv<xi;i^MxN!Q zY07XoL>IaZ7205Jfgs32DbcIi4^l~#Q22rGNP$wg<e_K<xbaKxz}f7R4F1!SWyxq9 z(K4=RSiknuNtm}ExW{<`w?A_~mMk4Jcc{iUMV$z^U%iwmEyhz@hj#!F5{EOG?|cCC z-`G6(d+O7ldO!WpisFrN?3=SMl7PB?cs+O>YXQHGgZx3C?IbLt$IelpEp_NIF$Z5? zsf3e0jzS7+#*x;3rHMc#=%lr-MlH40WI87qq$F{I!Kp#kC4H^6gkgwMrE8<XQ(i?9 zt&d%nzZV2S^&aZxQj>Pm2YsfI@>?y?iE*!kqgQqHUjK3L)$RRm)m$)B+68tBj$&&g zjuUatnDL6g-Y%%G)06iXIXDBj9jV~g68!IGQ8DNb?k52E$WDC6HvH2HVW(api;>99 zNd~4mTYT&~9RSsRS+RxhH2JBX5LjEdJdOg#WJ03zqPo<&a=SZd>mE%;KoEx2|Cf9N zQAi})%9zGh+=e7c$nzXO@cEYi?pyfyfBZPjhI5bfeV-_b5JC{gG2L#r5`N0^995jN zoagpbNsRQX<Y7`VQV3DgPLLyOTCqP-t;grlvp*TQZ)ZJB)uKLH@V65>1$Np#Fv)0i zQh*~j&3bY;*_JqZVRUkyBOItRa%y|=#B|M_J{qm&{RH4{A6jd&T)!@%`a88)PLiK9 zxuIBVs|rtRJw^;XXwiN-q9S)>(<`riP5i`~!)PjE9O*tJFj;GB{bD^?o7Rk*Mu#c{ zlY|s_zQ^*?GH-g*o5<3P&A}F}X0vKPxN|6iAfVN1RX!E6Hq}rf3~8EH2}AkyI!Ymh zKxdh2L-;<PQf|DmXkR!dNLBGFO3CYy7?k70)JFsNr$lCdg??a2KW3p~j~<Z6Nr1NM z`IiYyDd;q=>u|cr)c(LPYVYgx5x0X7#yeklzM<p)y^#Rqc}~CIKQ(V=!Q}k0IKeXu z?u4wSBkCPaXuKU{U{WU_%QAL$cB&D<y4qe<$$4J28BaS;y+?i$8%CL++)Kx})$%ct zrFsj>T5M^RJMq1-Kv2m19_P6gQ^H<3`UoQ{V{J83Nzx>BTmjrjq?D2{2<Z3w&Mc`2 z-m++2BuO$#B9s~vgDQ~+V+=tMAf=?)Y*yTa@@Gmfin^IlmSt74Fc=J+Vr1q<HA}6B z^7#r2l%v#iC{d4cx<VEsp$>iUCf=VaMk?L<o!%Kdgv@uy2xU#JV9KqZAl#xV(<@OX z2}j8IOTI|;qqmVDh%w=zk<rsh2m4zk+0{CEjY-Yz5F_(EyPp8u?IR3B=4NNv*<OF$ zUBEllzZz-Zi$e`lZWTyxwFpZu`=hG+)%(d6`K<U;*Z!AkG>?B+!eZ-HGDj6cIUeNr zTG4?MF*BJqJ#vtd%R#&RWRiP?@Fk|8L0O*dvyrU_=u$mWNa<?o2`ampd{&Aozk0pm z-${)yDGs@IzV8x|nVA{)OcjB=o_LjLRT;2K#39df(j=i<Bq+{gY-C*II17G-ayfqt zryJq85MJfz=z0D=G)&awsH-(#$EQQADG810$ccH?iaO<hckr|P<zEU<y$|+{4FP!f z(A_yTNa(1G@6;Z$6FM)IN|=4kQ2arGRVl@L-t!&?g8`k+9&wz|@Arx0q_FcXXOT@U zsjx*Arx}M{#i5YnWM9~Ax*p2&P*Q@B2&qt|tgj0<h)KTH#6J#`ioKI&J)%DJEhez1 zn(~d1(j`5URnTozMdFzFR^8fnTGHnS0X9i0E9nyQm)_B~4tq$lGR<mPGA=EBP(?bq z&dSz6>4Mp6wJP(gNnZ*fWPv=C3X&ypG9}9r(ljrmrcL!;%AUTvR-$NAc!0q36w34Q zD}=)qN$^OHx~R87Ivs{Ff3g}fIZ^^VXe7@bYkl7;37s5E{Br2-9j8E&>i!hKy>Zhx zy<Y6CGUbyD*r#SSDo4s<)8O{wT!Vw=;jOiN=XZW5zw}GLR8?16YX*ZMaU8R~wM&-e zY;3Hvx7TH5b(Mav$JWjc>sz~QZ+E%5)@8f1OEMggCqvSt??&0u7-KZn<XEe*Hpk?; zNE(i^v5hugx2ei%BUZ{A5#4HuMV+}m3Oj`o;1Syshdnd0PJTN=wLiJjT4Sb;d5!&^ z5Lm6NM1e!9`r|f9%AhXG1Z;}9T}c8gD`_Q!Yg=gT-p>)&?6j7IIKg!`Z33bEd`CgC zeBZ<OUBb|A`(yqIo~LSTe5x@`fF#MV)(JwTX-*sui$vKa5H8Uuc{LI#y(+JBEe!De zpvG+|pI^U7$h}H&v`mywY>%lN2uC+xh<mHmc9MJWw8S8ehxZeJd*rsA>H{%8%YJt< z(AR#2?9|UQt&*R%5GG;XX$e9UMHLcIZaB@RW6EB>eCfbDmjhZ`e*2GZ@cW<L<lN=U zB=HcF#bilLGVIdtbs2QG&}ok>>60V_vZTkbw@IF*#JwHTWPnZ+M7l@P?_jeSoy8cF zVN8xOIa=pOd|t#v1vr|QFCp%#Uo2$>?|NRDJjg1rI6t^j%U>7OnxIZZJJO7EVc9!X zL2|#DeN}ZI+P;|*Q0p`@Ic4K7bp-q%I8sCof`H+0h>#MG(KxNq<8Fy{v}4+Pw6}>= zoaWxJUrn+~D*#JLcQ|NbL<m6?H4#EEGc(ebuLz8cS{5M4b&eDcamlqN&oZ=5$ugI4 zJ5<75tt`un5lxEcvar!Ep4ZYL)Jami*D6~mb!4YRB<goWFs?XQs#u;BQg$~HfFmKl zwY}|r0&v$C;^}6C<MXuQR3E<6YyntfIVed#PET+e3-|EfvrN}k9|<kJup0C4{$iDx zvu`2^+ThPXmJ`lce4`1|l%U@OEXog1VT9*-tgc*VVY$gp-?DdYjSF)=4Sk)T`TnoR z!_e*S(H$ggZtv0S4Y>a5DsjBW%Gw6qPLG?bJ+^lHq;ZEl9TLYK;&?!orsP?S(J5A^ z<XVF<WVr@wicN68`k(-$pk{Ym!nwl9_!jL6<@@-B#IG&<8b-e-YvWCJ)E^cgO6b*v zi35wXG4MdjTT0uTL%(j3#eI*H1g~K8PkVmGS^>3y9yJ>5?d~!+KR-6YRR$QL)IC@E z-ChvWx7<r6*M`>V(bh19{(^9K#ZwYbh1J(x!Z1R*+`nbvN8uibk~EoX4c74-w8@DF zsdIp=kt(e<RU+#=DjZ?ck$gcGq{J``ihFOU`wiUl)&6a?L`Kru;tlV8aL<eZrfKrJ z3dqNWpI+-{kaFA$@F4ZJlla_@j8xH)Z&|ZhU^ljW__v=!wa*eXBhox~DqBjSO^&vp zr9g!tjYb0@6-k!S?R9zUyJontDcR^HL_tWS>G9YjS9tW{i%1J_8GzInR<{Qj0U1sK zFBkC4OGAF`H=m?=<_tj)V$o=wk)=aSHbmqDL_Q=>hh)hBo%9)YHW~K!&^h$>w%phA zge*-+hI^Q_kI9B)S%S`Ubk@TfmpE8#Q5&k_)0>HVAf~n=JkKx4kq!=aJ!)Ca?vEv9 zHCA6`A73O6b>RSeQ1UR%_g+F0C$4`T_?1lYk)GiK32C?6bUPgy%_d$g;9F~<RFssG z`^UjZ<Uxeo$+pz3f|D%9H=C`fkb8Cof+J4KYD%G0LlwpIYRriDpim5lLzGf{+qZoi z=g*(NeGjGA5js#FM`;t?PXO-1jX8~ge42^CX(t)7Si~iX>9pQYYG9zj6rwD`@s{w5 z4QB+5f;R5&#KOP&(>1OS8(e(gELsSRwHP6se!X#qIs%Ilkmww%bMho%W)`-)g4IpS zaBo1=@W`?b-|^me7Y~L7E6^5x>(eXz&L3YT6OJ@zwc^~FMRs=f5DUvhv-8#7B?b5_ zjwE%p#xn*Vz-s1<CLi|MUA@NJFF(RC?qRg^MescdI>qP=t5eb>r5~px!!AjG4<!u4 zVHZ8<Vv|jDf0aC5B}r1!G$u`R(lm422V*d4jx`yOPN>FAN-fvrgG*Uomn@Y1X_rvA zAnSy41WGCg1s4P~TbdC~?Bs)fA0Y*eAUZJk9}3S|ix&hm3*jI&0iPOU9AkeP=izl4 zAWmbSIH>)0t2I1{Kvd6)8LwnZzDDUBDU~d=CW_J3qM22Se}#p+<--p@Ob~=$Hp$lA z+N<v;0LMI>xJY<v3;N69hTD?Bb^ro!5}#QJ!OPnzzw(J2><$cbb4`@5nF$4R4Ubj? zLDOS()AGX09kx0Htc6y4iKk!gv2b?DSr%J231A8<+|udH!RXpa$YM$Q9h!|6D;)uP z$nw%0kx2Qfx3@UA+$v0cTm}62OI?2JPhLeu%LKxrt)|gvkoy5c+hd{K#t2!2yphtK zG1dh;Q|ie(C|u^6?TsDY^%d{o=E_aNs7XH=GJoa_+j||t<}67Zql94YT$_2{BTrLo zGGK9jj(#s?7^kHDO}_Ojn|#;%-_7n$2W@jUcXx^VDV@$9d!1c+an6nPEq1#-UU*>( zqkVe)KEr;8EFF+1J<`D*Y1~C;F*+NPXMK`%NIXnI4{v=xOO&YA3-*-4FHi@!(FZge zO*cz_)FRK0+83fAF8YO&WSS&IQG{lKgjY6}Ptl0$v;)WM0UAEIB{BXpI@cIu5!F~? zkvw3rR!<-h_H{c7a1>3B$!q2N!Tki_9=Ut3%gX#t9j35=mBnoKq?GSTxe|J4IzxE! zT91C-BNaZ05zIDcXtWejJ0u`t(1|d~F6S0!`Ql5foWFPl&+}bx-D(uBXPu=P6q`&b z`VvJEY0_tTF67MI3{Sq=;o8j|E-ucXvt8c)z?-lL@*?HA(KY<@fBz+dW*bl#lOvIw zJAa<lwM{NR^k$5KT;~X@-Lq8mLMN{ifH1JTyT_%=m+AF;7;A}>6s@5@OqiXWXD}RM zgu)LaVhxg<WZ35`-@44ow#0Z6FY;KLY4dI0{8rA*hn$^1!_7{{)m=gCXC&=eWb-m% zF1dIi<*l=`?0xDQaV%L5L#K&g!RQoB?)F}tA#F~seR2y~J|s7qEZ(KRx9O6DK?g4% zkjFiSgB|ibB~ALo{auEGT|}}?8h05C2GzP+T3V(xGvoTkw}J4AnsOmRFf%j5-rgRA z!N84fDpjfVQH}~0tpJBca7)PhUP1v*iv)Mna~^eK=~jh+@B1W4GKLzKlMDii78`}& zq`fQG`fet7aUAnTKJJ|aK%T^daM<|A>mSmxCCn<-*n@nMmY@$Tg#4rb=`w>HG6P8r znTDIaj92@XPkdpBPBVNAt+_VaTf2CkDx_N_CNmgq3euY65@_T21lkmYq};N4a~)x0 zWMc-A#w^Y#gh@HSe3noA*Ik}|ewT)Cn3<p9nd=$51CPLW<5*HC&YWH5+O?a=C`5%3 zzL41Az-i}Oixrl<45~t5g+U6p;SGjEhDpNQ`~oXCZ_;QqK}we9W*Nq@W4il3$`296 zXrW2^JorGH8w0`WRtF_LvOMO&i*V_}JO;yF2LH#eKg}y!irhF9#KldERIo4?&`%mD z2|{@8X>}?z;5h=8<1c7Zt3e5*7trt(!f&v2?qLkl5xle`g&Az|9xc*Zd}1E|fBq5I zo`1YD3@R<3%Rp?8vzn%8PFQQv#xUES<&{@nKJa{XQK(XM$E#crrSlB%6rSf-JclR< z8A;@p`uOAX4JD#<AXZj!B*a036}MOiV(jk&0GHbPD#uI3k=5^RCotY>o!6_}(yS>? zlA1NNnX+5TySk^H^u~OACDi*ZfO`ewK9!SvIk7xNjh%ZtYJf*MloT`sH2vag7M+=M zb3Xt1_cuv*4KncXm1ZXLx!LJ*=E4O>kQ1^poGB}C5EyJFBBX@C#+x+6kcS?5JFmWa z1Ctu0&e`ql(PRfN_1M}lC=oGpZibD`KEB^@g}pJf+p}~!U96C_T5ZxSN7UNtj*n)r z76Px3x78U^SZtCp==XW#kw@tdhgJ0-wwh$QCN~z5YmCJiw-nbs&oa8*fZd_S_ak(k z6Ztvs{hEs)p=%`n*B`&a%X<+rjPL<#wNvrMu(Y_q+R6%nlz2f<1iYd>B3)23MR!&x z4`2Bp1=8fmI3^N4ffte)ixD8Cq0wy8k7Fn`5R4%Vn_Reb37c%v@Abh7jLvHge8)rO zDwr8Jy)b6i8@74NSG=Fp7<#+A<Y^a6PL{@y#^`*AEygx2mL!b<Q*8QW;4udVKsU0f z#_W_m&nw2<M1efWYGiZFJD?VvU0^J(HzR5ANx`UbNL}0#u-u;njQZ+#Qo6dHpc!ki z#p@5__?~Hj9>{07%kN9Q!3nGP%oM<BK{0i+kk>OGK-7Bar;*c?=TFj<8+*I7XWD36 zFwlkMKRz+wsaIo!7m;NN3rjOxySdKX!U9q%SKSwzyVe?EZ6%0;b%}-V`^23MeETZj z`q;bp^yh964~7J?K|CDtwq?z){p4e`JV9dN`Blv?{>#VlqB+2+!g-!^rdwHCWBI}* zcW&XtfZ{kSS|zUPofJ+H7B)9FICu7}la0+Xn$4zDq!WULg$33(H_6L>b|Lc`$1#`A zx6v|$Ug9Pkq$CjV-~;n?b9ns4E+6~!8jYE=Bf%c)s`T0RJbRrU!V9ockP9`T$)H^& z>=!b~MWQ2xAdUO1cRIZ5o$sXA?O~GG!MRGZxwA*3IRi+H1tl!~eh(qw;)RPm_uR86 z>48;Fgz2?B`__)@4M+*mEMNN_KY~BA%rG6YvA)8Eix)}aA<3}k&>o#*vOXs5lI51T zHy}#}B>ipl@CN4>6!~zA-JLy#@sK2r>G%6&Sw@=XXrsxrlh;KXY!ZVV)G9|?3%>i; zxf9y)E7U<2v-6(k;VBQH3f_nSuMm`yN+Ot$`>pPmbM&)g6B*;LTNj`@?fs^FoxEn} zJ?!_HX}2p`?c)VG@tXILdw&nLCtG*kPXJyI0rd6#{-ZEF^+#3+!C)A(oho*F8CQ4u z%*?lV>Z;~HeP)|>dzL&iEX*}|<<&L9M#RGM5^0)YtsqO1f`Dhqbv~+ughd#OFbQpy zF&H*@`f86jPVhYsWi4?w;2Yo8WUl4mTS#-u?|kAZ5J6?CqP6DCnKN9!{wmFx7OHGZ z8x2xnvV2U3KF@P>vDgC%!>vu?L63IpLDtvT3Wd8IZ4B*3#Ely_K{}<oa{9rOlI>y2 ztLqA#cis7O10L9LmY@AUpJjF?VxzAJqD7=sg@T?z=bA8b`tnvNlpneGTU4#36s@Ne z8cVJX5{b?-0^cL_JvP?YXwNUQvcBa|f?VT=0bvv%!mt|i@_mmeN)dXF9pw>35p(TX zhQov`&G0;RtmmLyG}FY2Dl|Z6XnZ`s$;;PPc;`F5nj}p~l3o0nd5pH0JVS(<^UI4Q zS<c2*mn&z_5qKU8(aZeQ-~R?$LZG$96p33LXXIJV*7i2N#PHNQ{Q2WI=<n?!;x0Dn z630W5Bq2@)3<tX;X`f`TOA`0dCMQh>*mQ_V26)ood4SEaHbrZTFga<O&>sv4!;ppf zIS>}3GmI{RyAUq%C>Zs+NN7tr?8+BF2!s?>o1;t|yqa8c9m$x4>kq1qr=ucbAE8Yb zijpM}b9Q#taXpT+=@rS0cn!9r)217aBEx=iAhI1pOOKMI*!x}pcmGgI5k{vs1uzcT z-9HY4HJgnlkDO_f0q15TUhZ2y`iW<mZ_Sa!8sAs+2MGp6v)Lj}Gom0M&kN$6&Rsw* z0bZk#2m)bQzkZ!7XDo3Ruz7utJc((wTA(#ae}}Jq?CZJOOF7pF`S+i^$+NF!1flb! zPm`3{*;zI=H$f_9X6GGIFwHPzK#a6z%;UZyI!Qs24B6aXK}kig*P+wd!}9~8uz}}! z?C$O%Jr6(div&QR1bAMbnK_T0fu$)UgidJ&ISo7Hz3*zX9nbTnRUczx1dwMrdGS8d zEMfWVIaXHJ0H;%*YK_fY(jjs3z9AlYrkzj^mOut5&u49Y11kcS&t0ao*Fge<VVA{o zXL<VBXE=B6EK*o}1vX7sUt8zQ!W;sZU^sIdM*=$*Bwfyp*PQpJ9TJOF9&4*BT)cP* zooj}@KK*WwOBXM(zP3?_Bx%;x*RTe{aGubQ81(w+c#fa{m)8kGg)o-f7~(h~*E!Ze zlI6rn#+x2~gxIqLOP4B{zF@3obsQ5}3j@xSN8>BS-p(fN_6!#;&Y`@RrX6r8N{IJ5 zZ1sC=4LX3PyR*$;cZ;OgA&G|!h66frpTVGq%~GT>MFQlarL@I0z#^3*O;e<ll~ZD= z1L4q&(P*AArm{_j(P&_4z7zz(n6z~%b#1AkLrOZ)AM4a8(n9#B(P%i1h;Sj$^Srwj z<c{*XCrJbqM?^2~lK}5Q1i+fphRR+aFx6>7bVoULtS#Fb2D!$QlHdO0HF81*iN@%Z zrRFTJ-dN}2#fum$nSp$m5e6P!;FH9zmu;;n2JS3ELBHSQ?2^Z~z3%}&`ul5WG((*M zf>7nW`^`-j7hCl6jNf}=i;w=vOU$;HkkTW`GL+{dJ)hoi$l{r^7~v)(oK3B}!C4`1 zOEG>3?r&){>nqpsJjwk0A_B{qr6rOi!wA8pD_8h$Pd~-t;v!j^pp?Wag)s?HQxGjI z^Y|y9<AJm12!X+Hhxa|!=KH_n3jg(LpFjIIFOwS|Ass<4w-&8)X4-SyxVc)m=|$wj z7+bz4DV<hAo{_|{69obk7U@fNyInSSc6i6z-$Ae6r$3B~M!Zj&8N8s$UN0sJJ%le9 zba%OQ@iN_=%?cIpJP%_utyZfN+7hqjDVi`RvO-{x#HnQ|Y7!4)($wA4?d_ccL4YW< zEG{mwx0@n8k2LAi>1?xn<}5dM4JbkA`A(b>uMk|a4C4VaGjnWicfksVY2uQmBDk8O zx33BzrOY`Dp_D`w^0>SGA(?8@T)M=~odH{0F^^u!_@DpA*CKSzb}lg<G($xr^k_x_ zzIEs7<(AA^az{SF>YOx7S=;Nfwbi5F?Gg9;B>gV&<_<{`v$wm;pxYrC4j6QH$cKHh zWWZqPbS6xik);WFmSKfON|!iGp&VRa=qRkOuCv$KgF<049>xS=h_wb&DEW=NFPuE^ znKNg|^W2Txa`*U8$Jt}=Hb<+`Y}`)(?v?(`X;-&(5AD}+oqme(U(&G=&ku6^hT=c{ zd5@3(f7{H?%@Jog^K)}N`OJ$nXWFc7ZWD$f7K<v`+Jb_RSA>3J2m+rx>C$XUwl~-K z&rd9|lfceymnaG`Lb0`RoqzoOU(1!YVzV#!oj?2nDw<`G8<Mn-$ullqxWMMl4pFm3 zCImXq3vm<2^wzn?=zJ913L;?SE0UcZ=E9H%9)1VAySrpbPL^eEvy>ja;ebY~;mB(O z@-(FtM&yGItNJXjzPQGP<z)g-VUvWpDC1kc;UQKM!N2(T&yndFf-od4eC(x^s362z zL9ag`@B=JvhJIwABQe&H<pz^yRnI@SPPgFNwO43_AuB6u42A>3AR<W;JkR6Fr=F%g zKTnohAj76PvokHH0;eQG*sAjDboQ8?oh$qcUSkS5*$NP_v9U?eTEgTSog1<=<I=@T ztgNomXtgj}BRs>#W``t(g@pzbfzBdnHUpxWS!}LJh69Xs-%Hb&L2r+_*%nD0SJN*g zuR|ARM8?`ef?1HIDM~1W9hqktYiQ59>5eSV>Gyl==r{9Izw#{YmO^Kny!{>LdE@{H zLHE9G3!FQ%KvNYfOn{XFgCI#^w*%Wf#j6_)b~{asy+E2|2qcL$=vG3kVoan7t_bEm zk7cE4Mgrf5f4Tb<001BWNkl<ZFc2tZQPL6y;3<PIb3B=oC4J&Smt@#u*x6>-+2O@6 zJjLcpkHK&YX@;z<_Ym2TtyiBx=h;3V`?tL1tu-0nBJsXU#m+%9_jfzKOdA7KcUivr zegaSgwWIjYp9BK%`Yrs$ZDrWU!4)i!67bCPt27tR@E3o%%fjqD!(1~z+h%QT1JCnm zG+M<Xa+Q}BP8K)KGqg5t11`>*$2nmjdH$7MmKLt?=`U=tv(o`Ae(Fej$@U(t<rddd z!!Lj2X+HnbE>X~Dq17Z%igQa#++111^F3x}+oZ;l8;uf*An?hu46SpF)}#Kkb&ETV zhdlkoC%JHDncc+!y?#m<c$M4X?7}?T+k0f0Mks+55PFKV*XJ#l=J?zz9d<iI8j%lS zL?{GF-X)ly<Cp*S=ULf}5W&b}!r91b78Vy--`sYNaGo>G5kg?J#%L;4$2`lxI#^hF z3TZ9fy$-(T6NQnh0HsHsYvyKW+1cH#0+ch9Nx*|7b}fidIl0%Bl@+$Owg|%pLEw*# zkG|H8y@IU~EG#Uuc<CY1BqmEUOs+}Ol-6t;5%@@BK}P6YbK%MvbTTA~Q)XH-fX0)G zLAQgaQ~`ravN&c?5CJ{UBT16V4bPz(W?$hTl_H8Ftkzhq@jRcE)thA6u&}rU0+J+Q zZefn|=i%YUE_3C<MHc1+SXC{697s~lMki*wE7{n#?DZ{4>VuVFB}wc^iD?2lOA*%K zd5Zb@1^mFTCQ&SqTkFV=7JSbVgchqHia-Pc6$%=@rR_<4PY`&5D1fhCTP5xW_+F29 zzUu)#_J^yy?Q+OZ{10Ej#_IKb1wo$cv0!$$E9--N84lgIPPk8d5GSDi9(1mGBOmuf z0${D1llDACn%<XboO+`?Mct|E#G49M;~}wG&RZY4$iMiVo3v(Ti1&tsfM*QDL7yv^ zFJlYn-BSW%A=jEr=V)!Q#*HEg1C79EdvlXV-!4do9+BT<ZEuSxj2I4ME<W@o%s?O) z`t%oDeB}3D<#+#VopTGzkPZk{NHYpZ(v&1iSvYeB=?ADhtIF6c%Zh5gbm+5=5f3P% zdH$K_*x2ik1ub59>PzIAapQGL5_pP54L8=-Xf~R7(kIJuJS8|M2Yk<WJ;ujB|2fXi zpG7E1HjKI4R{Y@q^0j>Oi9J5|Vn(CsV|9*^5}i9_p*7QHZ?8kY->1=NU<-0vMdGS$ zh;GwX)rMvA9BDKQ^K-OXE%ICwh9PkrlV%yMb{hf@Z4Dj<FO3OM%%5F$!b`(Fw6)AH zF3{`unVFd-O%nVd7~^KVmPAxY>AV4qCD92xdmYkrz;G}CC0O6yrqP}u5E-d~+2#UP zW$X^RgvN61+RHrp&UX?g32Co`MvxU_d|8q)=<c$!yUPO)KIm+AYkKY0j?j(rnmWEk zhAI#NsU$0FYdre)xAWxF&(I$Z&?aZM*WrEdzrxo)_GYAYn_sRCX>Qr>SYBD}vbLt_ z#4{M<<9iNSu*Q<68CmKGgi=UC-=o<G5RK45@MTgYL?NMV2~<YlOBzi<)PyLIM3F=) zgXdd3CGdRkJc&{QDT?P-K%#PXXfWrx8Vuthek0(aw?0DB?=Tz=(8ekJm57Lx>Ymm+ zIf|O)NhvW}?14eQei&=s*m31vc`)u&CiZ&d05~$+YwF$}dD#f*^9P^UfZTJov029a z{2c2yZ*ckCIa)!0l5P}ADCKwnDP);ja>jzO0%0wow!FOlBJcU0_wtcvo@A&yczQrX zS<o@vS6*g)Wt9*7gRka=m-_tM-+r9=g=Jc;kXXk^pxv6`=ITur78lS4^0??_7c=2$ znv!K%C6wg;HUttjuf2-MQ_@Ux=}iyPO)`uTbo)Kpvol=2c!|&a*{5hN&66AVSv@6q z<e`Vzy#5OR>SHg^oV!36`ea#(uRMnR9sI^$;UgdU98nPPS00_=FTc2lL{`Qkd7jhl zb;r$eYA8$P49JK8CZ)g^lI`^kn(Y}{tybl-r}LaF&6sPqdEw=kIdkDWX`ayQba>~( z%Urv<LePw8G#d1}U97c4QA7{~wV8N(B5S7*V{rd(1xYr<4EvR&Y_2s)o?(ZAvvZQ6 zH^bW6I*UsS_+dzQeS>pn&k@J58+jBKB^5$RJSFLLx^z2x%+0l#nVF%}=~S;>{wYzG zaf|OlcfuHK!Gt&3^5B&R$hD?79DvAq+dD5ah&98Z=B1Ytp1(Sz6)F-FpouW4haWg{ zUw3zawF0RGf$!03M#V^-t-KV303j_>Xp{%a7X*=TK|k<lgn}@1@P8w8hD_3v&KE-o zq@oapDm*uAp^RWGItN=y^%dL}&r_Vcc#)m$Eq1oIMuE({{sP%)?!`wX1X_JR0k|g~ z1gYc+v;o8|1Ki2#0Zh7_pYmck<yM9Tbf(!{OKCJ3WSL>M-Dc&+4bIQcGuwy|Hp46C zsWlpFG=X$vCT%Q9!ERT^Fxc7Vv9DWTXCq;G{sMd3Yn-2J(o{Z;r53NeaFs_N6kK}n z0{{5u{)E8ui9DEX_~f0O#rauwcDI?CY0+pj$t`Y74}r;ZY_2QPU#V&)g~r2>ban_$ z%F6CGZ+`2;G@A{EX^aX&l2nq$Ln0+Pvp7$ZCiuR<lO7l5L)Kn-3O`z4pl1l1f-D(2 zbkZaw7=HbCzr<X-$v1x8gFJI}hcwlA)*1aYn=LkXcF@KUMiBx-7=$Egim@(e+Ofw` zILKQ0bT&89g8^yavA(fR;5!}vWEd0q0bARf%(h$fyIrsbB|E(7&2M6Tr9l`3lm?En z78n7Pa;|V@3dB0?agxF~*F)h=dDh2|nP!`y-Nu-lWH=!7Jxn)csU2d-*xKHu(U`5= zEZ4R+dGz78Fh~;TYp<Nvg2^+IBxcy}k>wfZ&Rr;&^N!?K$~rr3i4hX!s(xpD6!{)` zZt3<q3<g7dU*Y=!));oTw`sH+Jo#kIdQXt$lBb`1m4(?^9=tS<5D|Hz>Fw<RlCa?u zL=iGj_@1lEm9$`U5C%U0KM;hWBn$;nBx!^KF97Aaz#jNcE+LTMdj%_B6)t|IsFx@S zdrqZN36}tPLST(Xd9E!L_zop)&de}7H%qhO+8v#4mn=(*gs7}^Z*M=k(@8|BnNaU= ziV|hI<&$@`%KxzM$->_Iegbe0BmkcBPe46O964y83?cAjDyv&TW&%*2s`~1ul{t$d zJ_OQ`S&Nj=+1f>?3C)=XN;yVy)d$WqY@Va7z!*WU4OUxxDcD}$<dv76=Dpwg&HTY1 zTw}I9&!FF9X10mc8G4X17;f{u|LgzAfB4w5Y_1K68WF>8pB)JcvomO&qVtTo`B}6v z7$F=B+JMmpt#bmun6ECzvjPQPp0c`fjoGLH3f}V8x6tVin4f84EO`D5t*AlP+hMsC z&}`1Rc1D)*=)*qOZ_co`6B8&y<ooROW2X~v{RYEU6SF>`)oSvwkAI0EY~d?eu>NQ1 z^amKNi5d~53SArzYf5b+sM9IZ36wObtWS4+1rI^gcB+SHO_HUw+f97w@!Sh9aOUh; zbegd^*W%o{bNt~Se36G9coV)-bh^Dt^4H4!>%tys#aM)NQyk9Jsr-p?(-<io@w4G6 z2E84!ETs`fY<6}~LXZqLSz8C`HSm4MSLk)SG}>))aOhF#cW*5^OUToNey_{rH$6y_ zB$bj~nKD(@wgm~oTJ0cQqYDV$u(7eu*T3hj{KaR!#9+|FS3Yr^VDg+R550?xof#+e zl&8G&!83HbL$XvL13?h@G-g^Tp-`Sd1_p#dNlPP2nQ2I7+5u7I5k(T^6@gn?JZ15u zL3t9X99Kfg0@jyBVpjYqH{BAOk!2I8NCJ$2nJ7RN8W#po<VcJgIW(3=5YcQjnVp?w zb!`<eSgYNAJ3^H(Z4bE{D1w+$vx`GYt&>6pMA^#Xz7D`Wf(LQ`IOI@;z)b1nb$ZYl zm6Bg0YOuZaB4?HsorkzpNUNO4jn2_|hDA7%Q|hYm(D&%?Y_qeq&RgGcp8xu}P0lWz z;rg{}C<IC<u$unf9)4iyY~(!t*{iOtU@bN`q)E!c#q+GJtg?LOEK>U9MY5$cO;!l} zNNGuOjl{zuky7I+%gfI{$Hm1to_XSnJo?wZp6%UT3<6^`S)QRhMKhS;OHV(ACk*|* zWTw@m-|6u8{{H*<g<tp>S~Rdy5jG;ENy)lhdV9M(eC0A}u1R*gsABZcT8WfCN($06 zLDfZfYQ#CMHBz`fb*`OKp%f5?9@{U!0_l*v(IRLz2$1Ai4oO0i#>~zw(hNi5Va$V9 zuJGau&#<%6;{5ps38My>9A8NWeMiK!-fKXo#38MydT<evWSG!PJ17C&q=(6eG@DHx zd+bp@`foqS#VgB|C&4fta{k;oumV-|@r~AGIwKu+>FjP122EN~gS~F2;B`1xLkecQ z^MU|vT*ZrVD3nEz3}XUMvb8yIzV<+tWSBf>acPOpAZI7;V1cGgc-LE&c;bsa8lexq zBF!wmQuxXcM4I-zWNyyq;(1Bv7v@dU_4nN$fg9=&cuJsz8%wNTKE-(Omts5tsFDCt zR;BKXo^&?Pc|mN=QcadRdn}t}h(HzGgp^B{E>$`MQ}5I3p&fA8b9RdDhAhkOCjj@t z?bq5C<{PJ5RqyL*PE_0X$}#zVoQ3Ymyw6F)l1lkpfF~r@YGztZp1-lmY`aC^xj?0q zEGls02v|i0t1V<%j;{p6y=~?i5gkvF_X4`Z7$My3bLcD5EM-;+UcCMi-|&rJ$M1jS zGt7rG^u-?Fk!2Z+i<ep7-lN%`L--+?kQhK~OQtQkws=xvaHxQ=;0Z8khpUf2f%*U0 zdy^Q;vg=&$+ub?mHqmF_RL`nnSFB<qN-`yxlJy`#0%RD50mB}7=z(E)=84Cidu-Ux z1H-Tf4}SK8V7&*+YDg7Hk;Njb@3YU0jQ%#K+l>c%pBpzKBeSwHvnrFUJj7*WMRV^t z_w2jZTK`)A|F<n~e)Iv^a24GfGTIv<grsR2nx<iOb%m{sb;i3}EH5u%l%lB`PM_)X z&Rf?(XpSE{#&BT?=Ue*yf{kk%oH=uvU_GiEyb2EQ1l9%mgN(A85<;Y>#Y#-hiPA*= zHbgD|I5_6$DMfwtGRsB5wdt4_zV;%rwKx$sc;7axEG_Wv+i#*|Mi0U9#hPEOualoV zhtd*fTbwJ=uHxc{uX94)eGl~R;o-o(u6~ldO;W{DWekP|Z@lq3FMabRHa0f6@X0RA zt7~LN#UVEw)p(3rSxz>>J%Rx1Dw=W^HyJbC+2h4mo?|kZP$gEwEINolaB<C9?~}xI zK#6E+8w7;OlwPl3d#57L;@pO98%CpD&Yw6*?L31)6dkjrBg<;6cbH;|)D|fXi;I>g zpDO4V60Jc;@&{c`r-=7X%UgFUf!Gi9a}Oo<oeyRRfZYH7JkBC~ngNg!RomDuaDleA zfIw$CH`cGCO%^>CM3{*N-Hqzrd~lUQKC%Vyy$%E3Y26?7Tqb#iJWc=};?b#NJ*-9b zs0aUU6BKD9mh%42_f8)w6<{zJvc0uUrVW{K7?UBSij}30LO<4ez~h9#A<!D?@fJ%( z!8^bH6<R88Zq&T|^0&Bf=~7G{fYE5gjcb>=@cw%U@7SKyoO<C~1m~DGV~!m=4pLzq z3<pb$>jp1<l4W&K<V0(n_cSeJN|H&BpYHL|>;J@LbAu<o_APoRPP2C6ER(86Dvh&| z_LpUbL9gJQ58g(rKwURzr3v2h?U%pH|N6iETaKT2f<b?Pl!~^k2*Gmm<|e1lJxy6o zqcWS61QDTfqoYOfsI18I9u^|MKTX|t_fyV=427U4C4M|Y3;5*Yk2!tzbTqdSing(| zO+%&>^<=_mdz+IdPO`guncw~XEBqh-@;am1Ggw(f(?ip6?UQ#|TRVl^&_MIKp=%+8 zD1!?aT3WC1A+Wf-z{<)ppL~3sk3ZaHd1*PB6j`d#6kAVes|xP})9Dy3C9WxP<%F9X zH#zs@li)q0-93;2ku>?eZR7e&h>8y(YE38+9VlI(9Pcs+P*)9&bu?Nf9fUpVrlIH+ z=zamgqYY$A)A}hUgQuVF(HrDkyJkT+jvbRo8T<Dpf&-{@>$(804#Cr%Te1QS5z6mA zW=iZ=_#&jAh5f)U($7PPUp+wR)_eM_2N{(wgXhU-pP`ygxw*c{aA8Q@Hh0avKT!1C zp<n(ew1pq!zWkerihQ|R0AFy$|1bmpr!B^#7Jq~s<>$JHyG^NXTK1+jy`?oqwIwLY zq^cP^i}!A3iW2+Gf!t(_w>CL@tjCZ3_D7sQ|0EYb{)FH8!ymAI;|jj5kU~<nH3Q|j zapeMq6x7oxzH#JQQB@UQW*j?ticc<I<=hkJnY0$`!8sdYe;>KdM(f12mgGXSefcA{ zF22urcaIZKzrgVHlL)2Q+1*7cjSG<{Ev2TvFkrH`%XG5G!my8%ft6#c<f7%DfBFtW z=BTWP^O0Mxh2Y{R7ig@fwk<X(3knh220|)?)J&?9)&*SK5TvAaE~&fiTj)6N5LzRo zq)-C4x5@7MI!X%m_C|c|+uvsD!G_pQ2|lo}w7`3B{hC3ZQ<oFI`OQ=O^wsxRIenUQ z&%Q{17-uC^u#}StCr+GWx^XZ%NpbhHH8CjM{V|<PSU7o{YnvM^Ew5m7iBdI6#sDUQ zKn3{Z(g&P9dp_zlB%vthJZ&ANc8gw*rL{FSH@70yPnuah7g6zm2p-oq$zLLREd?CH zJDjtqtVc5~QT-m%Nd*L|y5`IiXK^xc{LBJ*U$Zpy<a&Us9mWI}7Xu~_tgJ<fU%y8} zyy6CF0G&`KF&EgopLIigq$EHb(R>jp*b2FyJj{n;5xT+6^jzL2Monh`mWBppY#)il z#Btuu%!fX0Z@6XO`7LXI&m%J8t|^6&X8<1Es`m@XAipTruDh+kkNyM4@#9PM`+YjD z`{#LF-`qeBjzw`1qiK@Jj!%PNnt=6y(i93dFI?pECm-^M-}!z1xnEE_&o{pNZN}q0 z@Rrp<ue-^V>sRR)iiMTqc&*3=1ExDS8E<Xy(hq*f<*V0NSv>|)Qa4em*LokVhIRb6 zt6Lz_0N;D<C)|AV7kuUUuhQ(5eDKDboPX*2T)1=*8Gz6*9*t?rip9ktJ@5GCPhO?1 z#@M>g_y6qAdGD96Q{A}ErAt>CoO+6o@3FKb8BfLxwc^5uAG3Vo80(u`xKzq%Wf+a7 ztQ|i=Wh+LLDgD6$P2J)|s;z`ap=NGukv18f5qEA}V*1Iu49`4ESzAs$^E|svyiR<J zZ5-Z3QJv9v%&E0Cgz!B5)YJUS|MB0jaPllF&#~4~2+!u`4Ne?CPh&$;f}0EIce&o8 z$xWiu9cBw0Q~^$MydZ)@;*i4d!t-aj@b25x(~7DbQ`?$BzsKHak7{p(IA`#_O;03f znknO*8|-ZF@zrm>OjTA?RT&W{!oER`iYkho7!clrR;UorN^|wvWnTQs3%vE_+nj&$ zDTGn9ZOybSshXPa{?S)?_tKbS$2Cg9>QZ!0yms9ZT%6#S8j4(yWpPc56x>aSQ~X)# z-AmC;@gI!h;?T%NSJ@u`r_<l5qhRX;(F=^05FAKJ68MWlg^+^3;Bd$Ei!|Q(BI821 z+x2@dtyPnKsS|)l!VJ0d`Tjf;ilbb&Zs*4JMJ6wI;{+ChXK`uB!ou)@C?+0#&2h#! z`m7reYUaV-v^Iu*p^-upgdxi^3az>E#xJ@4!CU;^?|qAZ{QI}S7|uTZ1Y4s$u3x)` z@D3v!xoGG~$HvVoXl?PK#@Z4eYMSYY=U;e^oxL5hqF}HvOf80v_aLJ$v52%Tl%Via zZv5<T+5FW{Kzd&O;h*4|sJTCxj9I^NgSsr)+u3D0EtyVBvR=XV^&9M6y~@{~eS-hw zul|Bx{_Q_-a=6UZ4=%E}dW!yF1>IX>T*W^8#~*)0J+1IaM$;*iamjSrvOB7oG@fx2 z*w~%WI>BgKF|8WP+EUgnRn=0}4RzDb42tlM(dCPL{Ih>zcTzzy#H<`+>C8EV${+}A z;}}iG^m;u${@_ET6f{l6sZ&e*&A)k-qPIxa8{#}PRm*61hqvB%ot>%W`o<nr>uxQL z?zYwmA(`5UTRtlX;bRgCQgGwiRoY2~uLU2yf0042N55aNIOtOpIa@bx^2`%Y(Kaoi zn}cX8?Cu7;*FNUh+A2y)Mx#A+((w<@#;JHE4_ro^`*SEC)%f<dHaW4p!i{U!IJUNi z(s7QYZ5k$fdnoBSak9W<Ehmn_%CcZ_QBdS5*CL>$VAzADMM=*{3JF62i@=hE1pxz~ z4-_deP;(DWL<h70BjY2JkP9g09@$({q2^i%at=k1sSPK6x?UM)bYzgX^m3GvcfG$p zs_o9ZLMuMwIo}THJ?h${QCR&L0eJXHfOudW_dD5XK5G4{!+(3b=Mo~S0p2fFa^{kk z1Xbe3o{Uup<YLSy^>_nO)W-V=*$NeZ&lrPm8{Ycy|I5y`t9;{?SCGQ->@z3v-cXN6 zjJG$*ltL*%U5y!N!S=>A6gKJ&cux?4wrNqzt1PUZVrO%gvroi{X6KT$X{VBs2G9zV z<95fq{f~b`v$uoEGR)Ev)pU=_S#;a-$y>i>a&r?m9wD@$-y3k|$tPG|Ugq^*zD~c_ z=ee((<%6I92r=2<*Z=S~PI#Qu^cGhTQc{h#=xfE+^=tGOhf%mjDugx>);Eg9l@%uC zl(uOp@**iDI=o04<1!Baxe!n)Co~P4AHB)WwW|aHyOSyB7l%j(E~zWFZG&$uIxEN| zj4pl15C7~>xp?6cZ@u;_wnr_!)f1dpSO6I-{14uLhw)y;&1pkB8M7cG?_Y{&IedU) z{b>*YBC<e`34Y!$Z4aQw-bcx0-!dAFdG7h=*}T4vQktcu)i|K1B)*x_)>BND(X<sv zfe0Qy9Wma%fm9hMPMu~n+QZofB^9X)o(!c(41gHOqA-%jwvN_L>F0{+WX!booIC$S zT(fOM+t$=|#nUf5%i=(?v>;ht5jY#@=aL46mIALmnG$4D(8~he1qOr|tcBPQ^6Jjj zk~reO_a(9Slctc0eHm{3J1_Q=oY?<2)J;q61X`;@`&XDt%<g<!yZNfafiMa?ahHqZ zA)>;Eh8OQO5jbjZb=Faq<zockVc+NnsRVe`Lis%5uX_#tpT!G2?t}8aGx%F7xzu9} zfD0f*vedOUn&tR7?JY!vVYO5=JDdFc-~HcQfA1Z#UcpP>dWoiL*}5^}#-+<#djEaK z8=JVQLQ8>jmfhW5-h2D4Xy+QhHWt@5v_W$Andi84W1VBikIz)zAkyZ%bp+cYoMk!7 zsIFe&S3mlDj-7sjul@d?@Z9%)K(VmEM{mB)aCw1p=LWm$SHU%4TNZmgLb51Unc?fd z^IZmKPVmYfy}-pwA9MMw*QkT%%yVC5?euwyK_A=H40=7Te)u+_o)Fra;4IPyr1Lo2 zu(G^}){^ODgq8x~qlB-*qX}pMDkW7#ZeYB{)nC5K%}W>f?(cq|U>!<Hj1)|EcWBCr zx|}lE8?mu*6C>f$`@iOgfBx_B%b&i=v84eUm#(3*oMO;ND}`$sd|k42^9IA?r>R>T zhs>l%N_FBMTAU$S`1(0fnWM#JWN?gkuXFmu8iP!7<&zItU0FjJgE1PV1lKRTPp_BJ zG!-&fgllQ`wi$2VU^?03*%x2JI!`&7#2&lwsck{z`5%%m_Rdq5BZ}TG&pf%zWW39@ z8|xfDbuuwUECEkbSJZXI`6o^==mi$~8m$7x2nq>38Bn&RH_#Xr1HDl((B}vWA;^JT z5w#`Q=j-bu9x5C}1v<)~IP|#fyDkp>+r?z8wI1gqEl?cJ)gH07>!Z>(?e^8f`|DBH z+cXW!%gc`ufQOv`_|De#Aug;h>H~4FucPjB2=I1UbT?$wl>*MY=pk=is`TPd@;qbx z;>UdS+Rqp+F7d?oeuwK<ud=tdgVvgjja_y&*YQ#&S=v3Cl_4g}ka)5@XM1OdmE~o; zwRo>M^YvG_ys^ph+8VmZX`9H)^<9PI9ZCiUS<cnB-ej_VowH|8llA)4O+#=sp&s$( ztFMD=5!SJ|w7|mh3D$3JkQt32QpVb*Wm46gI(wQIpIxEa*+b?U1Z4dMhRdrs9Fx%= zCWGCZSILb=P$QcHw8VNrvAD$I;vyTHTNoKDNf|uOI%KA!*pH7M@x81^y>XQr@4bzv z8%%CEd*&3l78yMC`VH#639c;3@{B>h$C;B)(a$wE-nhhc9ZoDR@cK_)MfZA0B{;si zj1G>yy*=Dy17U0OJO|%mlCFGoLv#s3-xmV9o7E$eFZ~_sgS1}8qg|eUVv(Qx_-`2u zmsmV@5~X!??hBUnD;Ih4`ESrRQ-qA>O!Z`k$=(i2$Ieg;hHPzZAw+=S5kc)&|H;sa z5aoiUkc`F?R#pdm<M~zo-M{@ACr+H>_=yaqB-S?3654vkql%MHt+BLHkQ+%}NVEcB zI=Nke4k|eaCZ#_iP*ReK1l5Ze*aZivdK^lLZteHqE@j$>`e(!abM5~QA&AsbftHd6 zlI!KZculnbjje%b2^>+mrfKede+UmJAqaQ7H{StmIrx0H8UWqtx{P^D1AHX1J0ZR} z{{Mr7`;QK&;g%`X2lC<ij34fMnQsWl+0=L^)FP!M*P0Li`6p~|-Q=kkz7pYB=Q(@! zG(Y*rzvJbXUg59)@>~4+_19QCeTJo#6{eFh-UW~nAti%_Avdq>Af&+L1@hPveX<QO z001BWNkl<Z)MiLEtyo)H#5HzK{V;x%r4;nF<fB*rKXl&X*qKvU7pLU+cDE^1%l75> z$U?=^@)D)jh#+I1Sjs3GlYHE52*|;J6RXcMx;Y`s458YlRysb{^6^L$!*c1}cfeYL z(FsOv5oD-5<IK5pOs6GH+fw8?1Rv28DTpSw9wP+<W4QYM8wl(8#<#yizu)7^#gDk~ z@w+T88g_4PbM2j9VTNlQd+I54zt5zqaJJ_7xnum%AAg&Ve*HQhy?c$}(i+cv?M3pz z62rv-wys#sYHnV;%=cb;o@}^;&U=ifEpkU7T%>6R?;`Aeo24^Pz7<JQS;?dM;YZET zoH)KpGu<Y*nyl!dbe5O|fz7L*P~;hksPrdApc-#7-P@tE@WT10DJK(b(?nWfQb+70 zi-izK5s<-w_tdRND>!#vaAo~Ex;MZI!`ksBq|#VhLGVl_V`|&-Cx7}1JEJK|ud+DI zF=>EL0U3b;8>{;i@VyiWp<+Lu{h>d)YCg;bqeI}z99kU{>LYeD@oC+cxqIUMLD*Xv z1HzN%IeDH(q(?|hW^mTe+IgS0FWpV6;9<c0chWc!+^xoI_|#<J)-6@?Wj?;#SO0+F zum|O2b#M9d{ljR2fJe_nMWR8A!U(~y|KZ0pZNsx)dy(mM%GTBvWj$ds*=DkPlVAP) z-%zl{+Uf!eOAAOPW{zz@a>*NV?%Y|db6nXOGko$zE?&OQv9%L~0B)||tnl=VqVH?o z{MY|G#uOYob()RMP1@GdHZ=ofv0ImDcP>)yTxRR~M{HibK!zf;4y?m9Eun33ZA<Gc zw)F%ATN@MbHNKfbJz{V33Y#~s;=JeB@ii7#7Fb$cVrg-ae$k`f?~~;jXV0ENDamBC zN6+XP1<ePC@E+kD20<1AAHMk}i;K%V_qDHsDcCD5MV|A<&tIk5-5^jRP2kw6le249 z!b7lJy?BXd&z+&#oPf2ob<JQnWMOduMIcv}fta$=mk3ca*}X|M*`{tvtc{YebTEEM zgJ2K1!V5q-+2P_R@6#Wyp!0s3JrF1vxcJ^%EUv85G$j&CRgP(<k@ok*GtUFCv$GS| znvXKKu{Mv|{#poB@Tg$XSZuw=jqAVSFaGjdZ0}4N?M*Q{YCN=c9c6Q!rFEXAlZtPA z=ShT#lGa5Q(1@tF518Q5uE7LP76N&Qll~d|Lw#zlx)+BS5F#A<p160Pj`=2wkKhrl zv#HIJM6N_M3W!Njnu$=4x9_`ukN5v~5bb)L06g@=drxcI2MR&mPY}MBzrDpP{Zo2R z59``)cTO=*2o#pZOtMyJmJ5YwCcN>}S2_3eIiCC0*O^o$P4KkAW7~%D?iQl0vE>vQ z6r-ITyt7nI!=#$dR#?9ued(`VxyA?Ye87v}`vF(3ZnL_y%EEAf^%hT<RirDKMDE_; zXMg>#c>Z^Pz*ArSI@{aZc<-4`C)j$**0qnBY+OLP25>mrB80|El2xk5+a#YFJRayt z_~;iury7m<!ykSRDK&Y~V`*{7($bKkSJ2uPA)zP?&NUzejcv($1%rN%YnLzKZG&qo zTw4=d8x3@DWC}9haN*r|Irqd9oH%=y+BtSddz8~Lds{cjgu}?#Z#G5|l*IZdacs1X zRdDOrS>MG?YNn%2M7zg8H7qX}7W)ztO0HjgkEWSK^BL*D)_7ljE>P~_H67QWXMKI0 z-e7^%(`V@qhtbtgYc{TaL<pXuC{QBMHWkxRTpRtxHCB(GqAbf<)fp8jLkg?`83MxD zq`5HV%GLL|@X32T_4FERD}AnAx=d~auC1xcm{d$B6Go#kRb%<)E6*T>MCFmwXN=gN zvQH?7@UUPsxsWrl9z{U<G>Ly`VDE4hf47zC-2{IQea#Au)?l<Ec0qg^l#VBL&>{3o z9oc8@nxDFFB8~)AuUxtExCQVq52X}EQ9RHB<v~*O?j;GhQ`_KP+5+=ds1N$O4sg7E zO?%@V8f(yng6o?+kxf`A1$!TSK-M-qS@f9LF`GBm@snM0p~(6<RTYqKLa4V8CS#~A zt35?wBs=Rjx$yqG>}+gv=9#bHm7>s=lPfvPxnm+NJ_uxx476nDqqlhHjn_GK?lfy> zPVx3zZ=-_a^zjwyvgFG9Z_{pFAk<qpJVqIsrbhNOEiF3avyDN_9x#xSi$8yjpFh*` zFaG_P_@Do$K5I`rkLnG<R)nTT85r;GGP-#+($aLFFj(c>u{Ca9zYcXtW(*>vYF7ks zo-E60cdzr&2Olt8J4ZPw=@limX)t)k>mRdy`7I{f*HAh~iXLq_p=lci#Ufdj(b^V? zz$nG~m223x<m~A+jvZUU?OnqTdzhlnpl8rpV6uYXJ((5+-_lH7)J;fab0O!buH9pv zUUd&`rOp;u6Af^hwq}?Wm}~$(&`x)`_R-rcEiHkMhCOXv;>r=zCh+{rFH=sZY;SMJ z9&Cr4g{b@&gRZC0lD3}m$<>dLQgZ6lN!ms*owT&$F%m~J9WkvfN@w&3LyXRFVw;y= zc`n-PW&$Avz05FAn|A^FgPeZW#$=!i<|1k_gd>;}axU<9fxDaZ_u{j~thv~AaLlr6 zImkRJeySvfbOg2Sw?*0RzV>PYvn^45widysH)b9u0AJwo;AQ~sRu=PNF6Pg6ZehmB z|2#hQ^QWSu<afXK5?=O^THxxI#<mH9jPxYiMC)6r6>ZZZLqG}7wW~Mz&;HXtr}lxS zbreeDTgUG94rV#$cV7M))r%!rZ-L#7i!2X@h?{%J`X<9^OJhAUIJR$GVQOoB_m6*% z^&1;pe&Z*UH*UsZ!m^Kdo&^(_hz3ib7%oti6-p|+^yEfGg)}@O_&DH&M>&sZEjm<$ zdc?;17PgwOcl{#SLPIre30BZwTZ~SJ-r>B%xr!&BJB>gv9*rYBoE-54AiX8aGxpXm zaP!Iqo_OKgterSV)wJyF?jl@^tajMC@*&N1m%JDtm7-|^Hkpxl@2RUuM-s*)p__~! z{PFksryu_lbu&iQ1A?_ty4XpEORM18H1D99Ry9R$8PSSc63wIKrSEqwdG<zoWNMde zVHa(Rs1wmzs=DFSxkZ9&si$MA$sSEvapLK(krz2Pu3w9RHeo(Kbn_E&8_0}eZ+DCJ z^&7nS;@41GGcHT6T)WJ_{#Sp;%U^$<fBNyS==GNvEUh7xMv6G*=z~SdxV2?QCPzLo z3*Z50h2+Mb#Td;@6gLH9FFw70f3LfhPbbj5M(}CyPweMsUcj_0A>^M@<%heU?0kG2 zc~oV^*|TRKCjbxgXxo<2c=T}7kNZp*=HdUNWGL@PhB%}iZrj>q!}_3G3Vvq96ujlN zpZ=7+%CoX|3~z0mGR`%|C`1S-E$H_Oq8eWoX<yoKY;7gQlz<Y^f8JTgxl>EC$}XC? zM2cFp^$qm;eWsHs*1O0(=ZQ!Q6$1a{GRiw#bsj>Xs!N;?H0>I;`6{hzXquYow8941 z8&5IW9^<K{RSnc5oEK!|==Cwvs$_LZ@YK1pT)ni%>gqC~-NlYt@?k+gYcXMpv?U4) z9!?xP&iS<gA6&i!wT+gq(qfds1yD$?zWp|#oU**IfOi(#)(kR@5k0onx7ob>4%Ora zB6t>-mg)BgZ0=0saA9Z(u11?4K}6c*U~!RtFXOqh=lIb-SbWH6yvN$ua)>uh5ki9u zl4(_9L&oaTG1`g#^aXXFY!ZZs!OT0_>4?$h4Rk(aap?rZg@TpkC5#lY?_cgwP4~!$ ztDHXf1RI+hIBQW#gO6%=k*na5B9IxyrHda^6ge-x_*JZn$x(0(cD&0!|M*S*!@u|g z{{HV?jrP<8f_Jpu<9(p19c5V~ME{m)ebQvV^Pat?1ewL(NPPMbqTO&ejW0f>ioYGA z22sq1LkWdX=McL1E$2{xlmvJWK`C5-Oemr-qd2JWI7f36a~9zbL)r8<`7lO*sjvT$ zxO%NMd6qxWV17SI!2NuP<^%q`=+1-qP<~!=$svS!?2$kC7k|p6vDDVmRyFlx5(Bht z+1=T~wJn==gRRXiobz)Ksi&$M%CaOlPt!JJ#xUshqlSPIm^{NeM_%L%`h5g&^3+M{ zx*_;LrZcq3P)3sHIYvsfF-WaZ!gDMecH3y`8>fd5cp>8k8e;EX2Z7QmiVhKd1&orY zKmH1~ZK!L@fAwGgmo!a7<t%kDG?m4*mM52AW;z|?oyXdirn<uO$NQ9}!}^vymo(K5 zWz`ab<Hhr<EHA&vaCyl47q1|;OT5u|8(_SSwtHw_BUOf0ip}+P_Vy|kPUQ$!u~00b zjAUF^(VeiFuraB~MTKix%Cdr@C3sI$*BI&88;!`NAkP$aS@FbIUZipbpT^*OAnV3^ z1R_%FuxOK^O&+O`MWp4`)r5LFrY@(nHt^z$-=rx^>hUDf*Fx0ymk5Lik=`Z(AHV+= z$4{POd1WQeZa53RrQEoT+qr>RIm7kq>ll;agNJ0p8@!`!EzWt$vYHb>61N6#DQO)j z&&>Ux`~L$y`IIZ&YoQ%(^SxO|MjUJb><<IRQOGFF#Hag!JVpT?AHS&yz=M$EeNch& zFqP)BRqElslaSj&hu+UL<v-_}K{cJAvH|^~z?&Y6ODhpZmm&(Y1W&FNQmV*H7STN| zgped}ImjzcNI(=9YLoP4guh3l5hgS2?(DF$y-i(LjBeb(HYHNPq^zjh2G=^u$(Srt zNTOVAuh)+-yp-g54`p;rCUb)^8F`kG8;vxIey_k7jZ-SQ9QNq-B--eiv5H5ckRT*J z#J~}72%;DgLMDn_#50UclsN*GZD?JfZCif-n<vl+rq;7NZ3sL|TYihCs-mNt^E6HT z{kjb}U4X2xp`n)tq^^+71SKuoW6N`|d>5JL$b3jPSis~NP2Ezgo<uqu{q9dJQ1pgu zt?!WOY`@gJU5T13iiMQ-GzSpB3XIAr`a?w4OT)Z11cmpGrkv2!6;0D{^8C}}#emC~ zuYh+^YFH#1R*-RhG&`(cyUgkH&oNwDW;`t;WmGAqyEj?Cc9E^oHh=YlKVkFQ6zOB- zE7F1s-eZ&`ILCN2NtVoF_Evae&)%mLQfP$?M0)5^@71Be?~j1~!=ZM82%f3)7`3n5 z7XUXG{JozG_H%jwvvxoLtz#k^X0*cFHv>AR$Nla(Uq;lxhsS0>kHjH<%bHmang!s! z$7DK+yF8#o;7H#A0zdodtL#i$vb>LNTFSCSsW|Xf<T-;ukA5#l2o+^xr9g^^<QQYf zltwE>mSt$Ikt!t#DvH#^!7NFyZ&+FxQWQPv`gn>>GRmHI4rnQvl8I*}l0tw$#7aMz z!~`Fxo0{M}-Z>_dlDes}tz~bt$6i@c?~Is?CwT8DtBSg=(Mn?L>L3R`3BpJvQBt9e zrdJeXT9Fw|uiuZ?+3(R?T%xI_3~*8XPD+MGBL(zw!`fnjkOIN-Es3U-B0|{7QP4|` z$OoAI0=l202O2K|suw8wf#4gw^GGD4@su{9AN6j77K%v?*VcD<@Bev~?F%<jMJ;i- z8EikF1c(`FUEBr<`}FFzml=YsaeJGzI;U7%Mg@awJe7|Fjl=$cuRQZKSJ$uN>IqtD zZ~}pel*)3Cr=B{=`|rPx){0(#075ZXSfngRY^`5pbmJOj>v{6)&+@1L(I4|a{CEEg zrrR<?7f~HjDx?ogck5``95oF=MHYxmkbDc2b<MKO@7&K%iGvKcR`j<7f1nlc_Kk}3 zCk6~eR2S^1eY0N@M@;^Qxr9K16fxNjA`ZEEe{fc3KM6||w+BdL{=)Zu@$mQz*<&G~ zhkr;Z$%^803&5ZDd$-G+@3s2>yb_A2lm0np#NP4EZ@olq6#|t8x@soXB-*s9Sn*EA zW6H9`x>(t_Z5@MgYq3p(Yg#(}exEjIA3V;sG4Lg?0U-n@PMlzOcPCz-0Btl`o?(n3 zPf3I^8OCU|(r6R43bc+Dzg8NV{#!~3O0uxLz@k_}2skIt9T=b#QsR}wdXGxH>P}}q zo->JY;S#Fh3C?3%i*0HqlL-N6T)<}o%2KeoewDH+v29CmmZq*}7RDqS<EVBSV!|Y2 zg_!3#d9RPsnn8bvHUoP7MTRRwvZX$z&@3D?EG%c_J%!0)5|a0pa7rSyM4kg9B{sm* zZk4TH4B5UAlc_FQoWb@=?MECT?tp@Q`g(S@<p+Q8eVo%wtss~J*OutI;*}T9Qr7j% z6QCV$kcS4DL1SB7a0K7tY{Rq9oIx289UUu!3zDjwqD(@W2sG6ci|4=jZ~qHSuZU<- zRpHt;c^0_jrQndjXm1LD5ow*J8Ssv4FQh=K9Oa0uqHr6yeqOOJ9D?!ZV|w>{Uh?r( z&oAEFCX|=>&;RVDn7qzE-@JpL=K!D3xqy=*wo;^mAodf0`S;$rJ2V;Yw&;4?H+akf zcoc3ys_=djSS=4LOIAuzR@DQm{%?1*E;=*1pvba<l9ImB^oD~3UphqaEHAI3mB4$u zpU9;WMoEcE%mqOp2qL$Bw(0q3lH(k<ZOKf=&dv@#IGVPmX-jNs7nGBdwvGRG*5Yim z$#v;rt({X7i#ut@mF@z&)&{K=S|^Qq6K77eNy$Z)k#)(0G5d*yj!1@53ZWE2MsuRU z!T>2_J3vUusnxTDubjsV6`c!(j7Wxx35il-21g4akWri%i@@P&y(9R5wT|gzf^(L# zY1kP}u-g_sX=x@ELP;tQwY4<X;(}*5TwpqFu+HLWD61X(`<M6eoX*~NzAe=?pkwy^ zDK-A>lVj&<{(~R>0HLzPs}HkloQbYTu&s?PAs2AY(pncCCS9Ph9veL4X@&Rk^{fv} zrcl-nYXhvDz<p(n(WK_WYwz*VFFxR@l~tZzJ4O(W+V9b}7M10cuEk^xZex>;_cvHY zGQPZvkpiV!ga~M*=(lhpGYoZ3k(3e@P^5d~T)LK|q--Iv4E9534E%?LWkg`(+JtMn zl6Er2`sgLlB@uqE+K<WTz7Ig02@qIdw~3w%J}9i6bN&mrkNI~?4cuP`k5U{KpF6El z%+kR9<IC&>_{byxQ8CUvP#u7~>EGYUCh}1{J_`--p7a6&cr;lGjwUP6#zdLX?n9c! z?n3ZMCUxIwOm*7Z&LQwPXK}WTZi33hj=Hn4@0@zTS!T%doaNNsh=DTht~36#=z6_z zmz1fBC&BgyCZfBxK+@*7E+!4u+F8QTea|~fQ#DM-d(n7kmQ+L&nyz9G>2)HC5qIFO zx>iaerNRk`&<1TXGLxZoL@bJ;hcN~r1X^o~qCiMRkeZ-#R9>L+0--cYYjl4Zr8NCa zqBDWgl76NrGKtPXWFCw_>6CG$R)S3Lk92|m^S^(S4}W<T@9#kW`;1J0!z>pPto_%2 z{nrSQlNl4+CQ^}^c+JWv@?MTn8l^NwWn@`~R1%-ua#U^zw&B>Z1&q-%WTZo6gpf$$ z--{qXI0zZv{*RxWjrB*-N1xOW1>Om2A=&xx2Ej?zy~kR|rQnbv;BAXX<E@}l@DH08 zX#_MOwt#XG(6}g2<)S=Q(a#YguFX8tD5+>gPLXSriiyCmpP{ruwH1sfJa_&$lTk^f z1ls7xoDgyCiaCFVPHxagISGP>w(?07NhU7<F-s!u6uIv<2{=kf=(lwS;7&+~lwWQo zz(*nhh<#l5KoNk?DzbAomb{-9Xz%BF?)E%=;-BB?x<C7C&TlS}Gw(yBvU%szHFg3p zJ{q^M-+L6v{x&4&SO|qgBDKQgSyC?Z*ro+E5<y5U03QN*o*`y*9Dz>3Qi%Be#wwqg zm`!(mUH@Oqt~;uwnFQr`22%;xkAr<FXoTQUvtGAM6e}?oANPa*OlLhMAU^n%ti<+! zbB-oe@YZ>p4}>6a-lI%32db-@)=qG4E6y(nfyIE-Ak=L0_W;TuluoFFM#&7V1Wp8k z(x}W3gh$AL(van#3@EKARLjkqyR-LWem!*W->k>qUF=bq_or2lfYCXB_Gf<yqDM=h z^`16>bx>8&m?r>D-7;w!eCw&lC2iXxgrqJThW&zbPoL)9k1n&ly-QO!gb>~Qlp<cY zw-hGBD2Z<?jLON1J_tdUoA^G7XqnsZ^~sDuW)bZ%BF=D_UQA|{QYfhibnmY~$cU!I zbs=U+UI-G8#}jZNqE<cxMkR<KsByHm!uc*4E)hYn*6VTXD+6j5_|ZS_F|BHXk_a78 zM$%YM(>TV{mc3CKk&oc8-Z30zeD$kmnM^F1_XHORF7^t<Jp}rr0^UAi7LG_Be)~|> za3`qaOWp-}WM%-AQeXJpI4qKKF9CZ#7=IRP-+TFx^oj!Sw;you2a*bV092@{$9vQm zvSOH^(0~*Hqa<2N=%&Z#?pF-`o_TCBB%zX!Hcz2qY2Wp1J1EpUmqd5`K71T3nN|cB zux*`m3J$Y0_MuTJ;~5yOFqw|Y0Fm!4JDzmcC=hanFdQZB8UyFigK_hyz&ubMIr&gG zmZoX(0i@9fhP>kI3Y0Q20q_w|F<B0&b)d8%2#u4mr6H6cB(y=Om^cIhLdn^E^TFeS zr*+WmjR?pCDF6I5h;%X!V(!Iy%j>^-4V5o}N-{o1gNm&XArw*?q*V0!1yU*&#X|HZ z5CWCl?HVsQ_v}-gPe_kaYGy$#I@Bu><mZRqI;Y?OarPo5XLS`#fkG1~N4r?tBBi8h zTI#w&0A*RxHVq~-SnsInW_Hd^(_oB2Y88_KDani>q#~ur3yd*Qm`dtMhtwtxy=I0i zb0}Xh%rzz}SjY@P8$_m2g+fY6SzD}&3<x0<whb5~k%geLu)5?K-PlA05$6Pgy(O&0 zoHTsqedNwRdpM?S;w}@LTh2e+-)nm3`7$4m3=1HH2iKIk+sybV+TLeL0`3%WA9VHa zy}#qM?}MaLzV_NL*w`z{`-{|dOI=MVR0^(Iq1FDphLj4WVglFo#kJ8GZDRl3n5bv2 zRZ8+m{dI$q5e^OH;B3-pk3)S*MQB?`e3cNyEqV&K+`nK^GNfK@%r4Yi>%fP|pzyAx z<DDFQ-^2`Q*tbZIuh|V<9qqU#5Gn?$EQ_-PK?q3i2SOx`yV%YMK@x<D{dXZjMhAK4 z15z7e$`U|^SW$Pa7H9FI1sPBxS|$hQXG3Hf$>MUxTS-x{`#jxZc|E_$&b0ypckdU} zB~-h+y9Cu@J@MfjF1>#pdelAU&%uY7M9L82J(FU#hLG{ARtlw4fHelCO-y`*z?eJ* zY%wb!;#yR39zjF~$I{B;EUAo4l!yR`G`|r#NM0(ui^*YUhBbRngiJ1lQTrgw*eCHi zo2I30Tby%DnwIV96c+;1X=IupBvvRIYf-wuI!{$MlvPXPEJ{R+U!fEsS4d-c^86W| zK6wmp1K#bg$uC3sdOK6K&%-Mw%d^J`z$1YIDEUx(P!HNW;6YmfcY*45@c;e2hKrji z0*T{$-~9$VbrET4J{q~m&>}*>xj4BUyu-Fl<b4xugROHo7ptst8ln5y<{#4hwReyP z`m7H)@97l<qtTerWHQ_6lvMP4JqEo#&O3xqX>*pCuG%shrDG+gO-7KO;c!6FE09u< zr8dHB7*A_LNEAaU5y(_M&p`^r3Gt4r)m2zp$Dp#m5r+d%YOqa&j{(<d2A~qO-1QYY zjd_K~fl@Qc+StI4ls!7xXDOp)v5t8H3S<sK#m<3JkuR=PY;!EAzz08loyB3F@+PzM z?aX85p_AEo-(3#`9<d&M;OS?dL#RGpXgm_<!TGsLGQEB`faTKwX!kXQI4=^sjY^O{ zYDxGsB<fSE#d}9vN0Fb{22+IKsq1E+3OZ|VfVJ%{0dihRPbr1$m>^oGnGS`L2BlR> zJY!H+Dz330Vyi)=wWO3r%E(BOIz9%*FjNajt&u_@wMIw{(jaAQ?I2{*&k#r@q6t=N zFL(t`1gg5lR~3`iQQ0^^8CwP6z!2fR?jyemJ_28avf;z9Kz^J6+y;*MqT~NjlD$V| zpy4k1qW5d|^RSYaqwd3E(Zk6FyjD0{lV=h3j|@Pc1_9GXn)L9)oRx1#Jya?8?N?kk zq?OeAm?^wP2fV7TXq%|2=bR&07b{5TXqp<Ak_p?kwANy+rKwtikAg4GJKErBtYc|u zF$Mq;kio`{-Z{JtWLbu_ZdN63Y-}VtqC~4$WooVC2Ch<qk$T5M>KVFWO!~f#6{S)N zr8A_`cpbU@D$8OJkdZ+kPy{IuLKB3Hm8H;x1m}Aq%#SoP`B)(Wawek;p-r@R2i|~l zpd@GswV$wg<wKf!n$|@Oik*FIx1n~Fz`*^9$AkbyQGm>`XdDuqkdBDh`xLyx0W@NM zh9mgY4#JTiRrL{BBZsTrnaW=Z`12vL`<q)^a$V99t9S2xe4j(W2SM-w=ff=N5F*ZT zINLI5+ZhTqk81etZvx5NK;S}%D9Eg}CO~8$G^E6Czx|jlMv%CM5-SDAPaNmD^Cz%Y z)7lvnk<RrI8P*GTnJ|jLqeVHGy9EDO2<V|7P1CTuyZcaSfOkp+?xo%EMP=C!T162N zsK%SP;Bbv12#pev8Yl>fPN()^WU&vGN7Vb!=0-R$rSE(U*1_-7(-5F_57~1#>&QB8 zeu7@(?BRa5bJol5+!4Kt=t8i7Cy1m-n8?#bktNM<OK>TXuyOMqPsVAG&(9bDA$Xii z0m6fA9p1KB-%yVCnF2291cVe^e0PpgC+0%D286_kIO8I<PJM9=QV>M!H7k>2v_VUS zlo=EmI_rT1)r*=4nUSargprs`qjQbciaay)^NhFOd5`aZw80{K001BWNkl<Z_glRG z<Ns?0Q_p*#-%mAlcs<VtaWR`r_bKVv&kzJLL7Ba#=<c7GsVGKxL(f<p;<F?scW7B3 z{%p(=l6g^|goebW8ixQQ13}DWr9%qt%xUiLzn^KYB_(u$IL+TtQiBi?vJnO!VshYT zgQOnsJkERSs-bEcs=6UK%XoK$J984-1Z?9{QkAOzq^ohS_whI7xF1#4&s6a|P5>V6 zk!2Z+i;HY;-FzefyFf(0;r!2vCOqg5n@Cm4Xf*!(0)Mw4l;*X6{u$S{Bw2rm3!btp zkxE5r-7F`|OoXY0NN~BtWM=kh>Qn$lG6af)T{2R^bQJCBv>%jGXk)N04mlZZ5Gu;Q z$^?^kvja08{hYYX{QDk)#knS;0nWw^J>uWAKG0f$40=}i_6G%~Siw0PtLpUo;?R5F z!Tht`qDyQ9iTS{cDG>+rL`ql$B1k-eIzhZ3W3`!rg!Rm-#ZK@wpdvaTbAnRTZNRpg zI!J;PI3aLApv8xZYC5H=N{(fLjZ2>}uELC^5G(y#eJKulK!3K)ICcvpQU>aBg2*J& z^rH%&l837FG#+|Di$KiQbVLf=ejxS!0Frd4_S)Tie&^3S0#b6n*cOKeKx12I_FRHE zs{sh1*dG$T)ho~m6<a?@WaxOTabOdnL1cI&M$GB|cU8S}xCQW1Aa#cGj=i02TJI4K zsw&`Ipl#iOWbA&tN*=X9FOE>7yqi7tevfW%d7J<|#N(4sKH>L&|Mwo+;(PS7VnJ2b ztgqihXM@i*lh<0YyS>F|+cL02CRIsUR*@f_XER-ZPSQ-OnThLupbST6@ZFHtytT1X ziaalvmKAl?qD>YDwUQ7|9Io4EigW=a(*~n8N~>8V7YE4%N(zilHm}LAy;I-IvN)A4 zg~VA)kYV;ZN<<#IoZpn@6$B4e(0)!`ZXOozhQq>KAjrB(v-`e?gMa~%h5_RsU{Fz0 zAP}oYgg_gK_W_|4RthYErbAeKgxK4rrL8@})>u)bKq`*by66JP{U+HV@XKHR0xt_3 zy*YjRFsqjL6&9Jhf6S<(-J?q?gb<h{#-!%e9n<^YeSiL*biZ>rA>=kK1vz(~GXo$Y zW~~e6bRXu20Xv7Kql0LO$zF04oJR*pR>Mlffx>PkBM`7YqD`%HjLV9>@r3bcM6bwM zT3Wz6fo}uOhBRC8Iil$gX&Zc)ZH;|J#m5Q2Lp%D(74GqI^rtceD9f5@*|3-mKF7h8 z_#rIIJ#MaVv$NY{TuzvbCuk|@^?T%5mf(420Y;?B>wSoq1Dk(0RV@(F7eLB=2R0!w zdCtymRCDvrlNSa3el+?~$V3}Vy!J%q_aYg+B&QdDzzih{4s{d#9a5o{n(6(^gh*%; z)&8VXaRxx?6pWGrppbEpD<vyxrtYT^IzstEKxU#;vrNN^Qt8AoS14^j$s|D=seV$Z zC_}6=q&BlTfuKxe1t>*GJawhwo9d;&N|Kliv);Op;3;UmN7Xr>3=Na3?QHFQUdf_B z@QrVN6U-17vZ!N_kdQd6w=b#eoITJx-`7!aGX$k;!%U~;Ooq8b5B8Y^`>iEEYa<<0 zEbNd6DaFi1FV3TMa}^3@qHjevry_{-Om+BP>$o=JeO9vsWj|?&KPOQZbrM68N~gI1 z0VsShiTx43<wa}*sNnEQ#Cs_MN`&YGC}LO3+BUv7A<#A{sY9fhn$#Lgt&01t@T0Th zzQg8&g3kp45yX+8lSrruLCk*kMWPf^$}hDV;3JU$oH%h}_5uA(LIJ**h1yjhDoOGB z&keTfHr!sGaeQ?RbVgS6==TR`AtIMs$kba82ljy3)V6mCcJ?@;)0+34A3zG;F2u=u z88^ou1-m=DF=&K9W-^BT9zx8-eP`93NI}#KF(<7XgJIn0)y%8jT0hsXjTM+uYGx)R zgdoeKa$lEJNhN7rR1%a@5^PlG2?yV(s3_RlL>35yr0cJgK`TR+<&j4|XZNZzLzd^L z%%tj4M8rcVgoua-QbkPx5vgfX?MoB~0bWV6BF+Tpq#h`YM(K>81X&2!s-bC`lpq{Z zN}Qwoeb%*cc)fdIX?X=Nd)QzIftfvYL|){aa^k`Bn62wMgyJB=vi~^T3YgdL=(HL9 zp`pK{=!adh5kiQJ1J|`>MAD;(1Aif;mW_|Yd=XvJI7gZ-2{TG=r?zO5xKjv3d1Du5 z4u3vKq|A|0&)6M4M3W-#JYGVOD$)bXigH@<%rj4e57cEzux*qhZe>J|f;cdAJMS)Z zKeI;%(T>k2WxVy-4>===FBY*CLh!~LZ#+%_9v_c12oML+{1-D=XpADyC01x;+fw8O zQh+fTnbDE4b_=u`X1#H7Te;G1a4cz}3qkNPSm#**2&`=x4u|AgAtX_FhzJn|A7(VL zx@i-)KPvFWfag;mKl1-4(~7oj)47F+w9op?sf8hv`{10^st{pj{VLP7%DJ|MNCBaP zqN568z*a3z2&_~zWt?^BDo7UsZLKIL0_z;3@tDbY#LCJlc~Rh9NL6N+@<eullqx0~ zbZUlS7F4BFQ9MZsbe5w`j`b3I^Jc2J<3MAW(?IX2q~RVm%ESMyb;buDe1yyv2$(4M zJTp3yi2)HIZz=Z?q5bwx{M}foi$krJaA4B^z?A<1#>xEGgUG-^?tD1F7VvW|01<2M z*&yKl+()O|5b$2k<}_?VGrEDi5Wppy;rKVPy`zjqsWk9ORD1LxP&X}AT~pRA)_SaM znM@{(CKE(b{HrEYB%ZdZX{%_BZS8z}P0o;xZrJm;a_jq?semB_zVn^$JWc=}{_${| z0FUl0faIVP`4_-j6+ZIJkuw)Nl8{QbeYzv8Ne{(&BzO3o1iN+;yAnwVo_?OQ(2qTA z=PlN^QS1h02!TM*D{?ZEMLu=vq3`bQ(O5V0PG4LSbA?Bk`KCv>bH6g}ybS_#^t2E~ zcEXIW9_A{^=y*778?1FH81DzR;A4<(JC=ZutR6eY_U`U%Cck^Wax{s-FSSNI`}8uc z6<X<N0W4KY!VK2h*k0&*-W@D$`m~K^LGRPtV$~~9QsHnj8r#0*@4Z)xN-2K*=3C^& zB0-om?6yDS5$4}>ar;DKetmQ^0Rd0&2gR49lrz{~i0CrdC16_Xx!;S%Pn|eWry-$r zXY7>Vd?}Gyrt~PbZ9pbCJ}Je8h!^>}SrDVm?0n{D9E8+SAydSJz!73%5hQ{r@Dzj~ zbB?^V3|*QR@ir!R)>4)g<Ixl^0z!DaYq3p@A||3X`BijD(Tv)O_*7K#PO}k@TF~## z@$+T^{I>cZ{Kh2!U-ldE>FJT=bH?XpPv6>D@kA<{B7`<o$~t-8$BH=Ymm|06ltVN~ znOE5Zfpcv{075|N2&*cgC~}8&HAcs2>%7PbA&dU-c{YPu>$*uOK%i-wNQ6&Hd$(m_ zg#DrSE^z5|N<yaLvy=poHrfuv=mOYb3F2=4p$oEc?jcrX&PRHeO-Y4I6aOcUtq~CD z%tR-h#M7_aHpw8zVZ|<9W_gZQhUs(~>1ngUGK+T>+eR*b-Bj@Zv-fVjl4Z$x*cY+( z-kIl|y7XnHyNA?}q6`9ph%pVq5CM{7zyxg=0!$L}13i8*1o$uLNBG%~ev<Vd=z%f} z(-I^>gfNl`cphX6@YsSh79d_U<gllEx~k5}%)Qr&@I%D9?43K$rS9Eza!^y%Re3V^ zW$hIaUwrX>*h6#&=o!vGLJ{4uU@z6rpq{`B1^@iByWI{c^=8t;od-;vvHk1s>yU7U z)aUn198I7Zw<B{w;$e>|PG;bgM=;5F9?ZRSR24)W1cRlcih_QmB!~iQodDp_RcwIj zC}7_Y*bGA<EpE443`JOqt65c^SYhLgWVON2_26y*@c>1@<fEco+5nbNLV;<VaQXBp ze*Ed@c=-NfFo1yrkdnD;LW`-Dcygo-`mvVKeOW|*-bhR!@~M^k1mKOne)z*5;%yL$ zc-5*?FNThImQSw^t;nJ(hp70oPrm^3fXk~Z#2CS>c=F^awp%l%X$Rx7jcGp8!0c*% zmbm1Apb9*=IL9yl@-O3`{j-0LwA(|$pwMG?I3P|V(k2)Te`QXAAux8&u8OSiX0wIJ z0bLg`44Xn6OQHz9AZ*wOM_$Quu6Thm!5}F$6=_al6hJ_we|v(kl2l|J1C$EU%wdcP zZdnBdM&|*`uYlh>_bvzls$8J_ER72`R{P*WL;L**y2yI)#v6F}aD%h63rx`z^TyGn ze}x$P9YN`{8T@@j8dVFHbj`-QW)^sqU_p=sxZ011akR+=Pdu2+3<{nQw6eghP6W|$ zaz&I|K7!&Qjn>@Al#p7)CQgEBnh?4Uq67*9fF1|~2$QvJvf^Lp!QBSk#u5W2c9JOj zn(ImeV5knTyLx7cpc1BOLYyW<cdtwhLX_fU@;?H5Zio@O0n}}gC}0%D6r*`UbODm5 z7(#~t!rAuB_%AU6$;7haING#Fsw#?k(xjbKxXb9=mpL(b;R>f&bN5~VZ^7#aKls60 zwHV*NcEFst^(v1~L=ny&V|ZvY|KaQcmzR440xr(Z5Lm#h9^4fwsWHhx?WGbhrIr^U zNHOAUyT!*Je*)%!^Yb$(7*BTxJh{5W{_5ZXS21)pXC6X8pkV#%(lW4Nt`It$onJsj zaJk!=u6iHPcRj>|BcqNG+Sp)M90pTL*lc>&D5yPE3;gijH6K;59jw<~LTIl3Yf)Rp zjx=AFd6%~RFLv@G1$N;W0xNLX9Wad(iU3WX=NACfAx>lAHLxQG2*$BUvAPv9pMZa_ zH3ZTd6J$cddyhUq=pP~`ouMN6nx~Y???hDf37T2<mYgRNtB8@yM+?MTIN~<V$+#Y> znBs&OC+x2Fh*7|yLsB60jLr4}p*urxQl@E64Cwj|$lC_Jw+=Fl-wGVXC?<WKCOmuk z1dks+z>ao^aRibgN<>Vl8Eqx>eTN}1x^D1fZ@?r#Vq14QPEgm)I6uEY=mKJlo>WBq z<nzz)lTSax$De!xO^WF-VmutcflU$9*X}gg`nBtcCdqzB1A7zPPyX9tOQoV?a-RUa z(bu=X{cXHWl1%SzJA$w~jQF`<`XwAb+F^<lx-lYL?UAnb=mR4#FdYO*7(FXw+Cip0 zh=CNn3YsEF85AOz6Esa=R&3ACkwow>{>A?V<_<9lq6ju;=Xm`11DtIqkQfY0nh*jI zg2AakfXIX?js_VEKpZelf-ZE}ZZ06>4oRZH(vwwL9ee*<#99Vk`F33gRmHPsml;R} z7VPva4Wm5w6b}s{5WsxYE(^UlU!ja=u~nLuXym@J@fkLo0o+sR>rPQH`DhXmo7g`r zN$5KpGlP35q&R_l8_gUD7{Y+vQ}M*3nF3h0XL2HS6fE=(`>lYvL*H)^)4qIe9{Y?E z5xNe${Q<k(4i7Fa4EYc#DJ>~E(KD;v4iyOi0h+vRlyEqh^=?Xn@i1by+Z8B0Niu$j z2!_oWwr3aEo<G2Fc7e_29K+exGz7SZ05xGPa>aE#(UQaHo&xsg@vz7Fc57;lp~tXs z1xL$-%jfJzfcg!T8U6VN=Z`MXo%eY7;UjD>Hn@2F03Uq#7|$-BVLSj#)?(=UfD{#R zPtX|gPyW|`V!5PG++^oEL%XCTN;loMyX<9OiG5G+7D@=fAN;`|+$R8U$DMmKfqspc z^zJ1A0wKcF{T6@iZ~T||PX{&ze7Q9q+*P4dEYDb)VyR|R6pVXg=Lce3KHURiBT`p~ zh^uEi^gbK@GhaM2?S2t__W4u%)INfRK)VCt?f@m=>A^;#L=qUlVZR5fB1OUe>VRpK zGOsN003AnnqEqxrkQhOvl{f}~980%g+F2i2tiOsPD{SY}LlG26!3l_xph-ZYb{syR zowWwCEic&QW)EX*)>ndR^q^<ow;fFMC?<jG&die%BSi~Hq3>L!P+U^jk`!^2B5<(a zgUn-KC<dGj@kos6I+*x2fnc?=R7>K{x*im!BWr9W3tC@1dxl{cARN$dHVEww?JWWo zV4NbxI3Z3p#yB2ENQzK5Kv35cAm@LiWYYy*$2dRVK*4zU;1P!N2k80-Al^dI0~C;^ zh$#w0_VYmRegrujY&HY>&4Baa9HBGzeo7|BbavL;41dyMz!1(ixOjMmhwnea`(Jy6 zNAF+Y(Ff-k&Ig2H1LY1;6fqH|q=*R^1qf%4&__ayf-3<eS)#cU!P$oJh4e-LB25$e zVACKeMfWOzNlZHjCZiU2+Phl)0DMLEygSyBmzP)gm0$T4{H?$Bx9$^wHx0XYU5|0x zzxFDBZF74!lK=x;cci$Q>7`q(+QEAL>=v2?fHp%l1_E&I{c{4a{n(&v^M7AV0lOed zfbrpkifxL0ZxJM^ULvlQ;)zE>P!DdBFvWyKz^IC=s|b<=Rv;Zlr11bvf;dGSt`3MX zq3Z&kKE1+ze<+`K^<)n?Gkd?=V?68uD6V!^Z9)MSKn|1jW>dlxBd&HkuhtYvjddR< z0Q(8)FqLXMSN$Ob^g%Fe3@W#Z_J9x)Iv(Kqu^@u=`BQQ`+c`8(swN&JZWu(2!xYeU zo3#ahE4kI%KCAYJ4qyD_Cpe6Z-8eR=i2ES)13vxqGl(Ya4-<yX8NT?@=XmnunFT9v zqf9Y6wC__MR2kp_3ZevpV(0^gKA`7-2M->i3yf*n<7)Q|msgjjmKO!Q+k^NDA)Fzp zG5(VRVc0r%q{rFW8P3kmFbo@;4q&q#7D|XvOcUb}6}n+OdVGPeef=>$`Q$yk|G@<| z54N~?_yF6p0TS34|DHc40Y(M(Ng-F{e@BQ3h>6PktW5)?#I7#@U;;1_Ix%lfRmC*L znd_uTRn03*9IaXzcPqIRjIS68PVbfsY=(O~;5YvI{`bF+Z~xk_z7=Lbci9-fYzczW zN?%v$=-DA@2xMB3Vy!N@GqkPc`7_A$eZ2iIS^2DdUrsdab3;iy>MVAV%w1;oRK-;h z0;It9R{b&oJqV8<ZxLL6m71WrRDRdlK0$7WT)!hr#%9O3oY=5xm6LUHTdtr|vJpvD zV80hb3<!`2jQgn^!+036-yhI%FgW|!rB`u;r%#^Z>hcPK46)cfeF_j`j1iYt2ORbj zf~oFc+DEILMUf68;;8uI-~V9|0lKb=KiMzV^`L+Beg!Vxdml+R*!CNw7%`3$rfI?y z1<Hy^dN2>zj}!jrPd>xt)fFmooz0#EDihd8`!a)`10ztLC`pcxBpe(Xmo!2&B2EWu z6C^_15C-jWcK!%w4?e)dM;~A_Y|w4C&LJ_vACn-CS0IT<(}<`0J$Cy8o;-VsCr_^M zSAO}|@mGKKSMlLDdV~#QvxO7>OwRWSfG16@VgX%{qPH*D2%F-G>o@_^RFj013~b8! zSmIt*Gy<KNH>8b(W`n8>PBj8Z>a<JI)o1&*Nx<uh%WK~?Gi16$0HE7`=?$;_VUKtD z^;RSR|MFk{OXOMV*NHf^o8S@=_$t1%jlMh&{_QJ?VjSneo&h9SB_B8o?30<KWfGFY z6#6o1pfzYOqHX!}bn3a4^>$u+XHrcEnoY)j#jHi3gjK#ft!yN8VuQ&r2$jWC-{*G7 zOJ#im;o{+OLBjs4LLE(hliTwCo>Q@z{64TF5=nv4$1%>5;D7j={|?{#;s1jo)qK~= z@WlFGe$KP;fKUFTZ{f*E2C*L|gmJ`>Ot&Hm;bBswF+yWPoFe+&-rOHS7U()g2t6nn z3!lRTh#@)KFrZVx&=UeDz>@&=8T*(f9L62?yDLoNh>yPUmvHguJ%nz9qyZ5DyQp|N zDR?~KoPcS6g{#Y__{nGg9zXh%e~sN$L{xw`1G;{|!-tPC43B{ALwvRiNS`sf0oZJT zu4gn<kNG`RK!i&IAnJkMe@zjH;?I#ZbQ2HkIRW4ZjN=5E4yL6^Hgy0Hrion++x!12 z%{0YZJlEe|t7R9-3kz9I)34dT^+YN_xKlT|b4`c)1mGQiz4eg)%X+|Xaf(w^Xz!It z^Pp0mj#I1hTN`%G53^?ZRjZ|$2;lYSnpQBovM*+*SiNCO(25qwqNd6116q82p7TGt zqzyTqZh0$oR?FUesnrvy_8&81(k27TYs(%~ioJ}~AXMDt7}&r9#Oguca(#=+jp%_T zihF$Lzxz!b`p(6iY66o{lYHxg!$}$WiK-YUK}x{1Cp`T;;px+atDRuH+~L`7k7qyn z4CgAi`us=u{{Q(0=(~WQ`sts>k3ahi+lP<QZ8mtky}<eAF|MvAT*U-Dx<Dkt{&I(J z{nCGoC%Zj3Fdn}59v(f~VA@5bLqxjz9RK5g|2Of|f8k^N!nb}AV@jAru-hH5OC5&u zhdAs6<C(9q1oXYT0_QbQ=I=d#ryATv)u4VN_eiKo0p%pX|DM^<1DO&ynxPXFGOCo{ zRa`ru_#}|?7pkb%n{YyXD_a1!Oa!{_-420o#o2%7JKuSuf&Xn>{O$3utE<rqJr_C` z5mXd|p5{wI+~ZGv%=lbJ^j%j(S{RBh5c;0M3|HjS(p&C=KXsg|)Kn22(mGd7R3Or< zZoox#&D#vkCYv|f97uG5BoqOe<~()f{Ir?>mFxwuAi+~3tKPOCh^|2gN-*?$l@k|Q z-+$7HYKEE*UrTyKug?c_0u&XPlFW7Y8~(*fM1ZIYH{GHIpsGl5LQ=)3z}O~Rj!qnX zPoR<jD1d`74nlYmfhXGG62MLX-9Eq<<BxH8u*HAy^B>?(|L`gP{P+JCeE9zR;9-Mj zy90&~&JbyXhades(4B!F9MF$@y!YXU825Wz?*0^CTuu1m*#tVfz~z$(m%7E_ppgB9 z_e3ykw%DBY;Nc8$KOrJP12CLD0EZ6y@e+qUp$omi^=YvdmI9bL5pdzBQsqm9{@Z6T zc?&>bqmVL92rAHN4<>~s<F^n@5fC^lE`q9pn4(XVgqO01ed!Yb!W=fdMH0Xv;D7(; z|NK4yc+=JQ+Y)S_=auK4Ulk%jbX>*0IwXK_I4~j@DG^i*_T(A%iBbv?X@w!ZoF%qu zg;`w;6*!VGCRbp0R(_n^&<Cb7z#*6!kdwhO@u|4FY5P&?qAl5Nu*m+|wew>eddAQb zDCq1uWCgwwr#R0Dw}F}Ff2R39larWyntTF9Sd$&$RcQ11ft(Wjky|r#YzDNZ8i(sa zf+Ja0KcBRMqUa4MiijFHZUkbqV3=aPANh5dY<zR*wm5tE$YgmnyBwO{f#`(&evhl& zB_2F@fD|JR`@N0t?RVx~!Hje+xVqYbQo<oBIBd~vFMw_X;Q&TLH}vSvA44S~9d?M* z86@@<>AB{<=73L4LXf1MU*-d7vMX1thee=H3P^DT$$W$}#@Kipw7*bC8BeT;yR?Ab z#VG(%#jpO_ui=0C+kg8$0r)Zp;k$hPk_h!>N?=~Z-u1Q^!ZZSr*s6KSWIZy`nWnd| zYvpl*&CPj*1B7`XZ4qgw0Or<$6y-W#2=&j=``oIhuSuRNDCkD+D5^CU0>ftLNdb}u z8PFr_kld2B{VZK5uF<UGP;~6524#bxoUCYp@0qE*rwzMZ@QDadLKuR;givI3*HJ1W znj7X2kc6u+lT;$bjccaS1UMy*(w@J%n&9McKlGSnNevlvZ7r$*Q|^EJI%D{sCn?U2 zjD&s|@Ziz=7-Ixfz+?zinhszDq%;AVAkn5irs)7l(E=&}I@@A8>@e;x(Ien68R>91 zdx%JbX+3ZUK+tV35T^;-O#)&<9Bqt+JX@m^8ChP(+Mq}&nu(93s<0?NYN{oRF;*Z+ zgp3COc8<#;Bai=;UyZ31HHJ@bQ*rg$;s3iP0QW*bZ~pazAN&B{{<U9yBPhcfEBdYh z_C+7EwT=Dsd*%78i|_Je_=u8(ywTVu-w{BesTA{Mz;Yv8;pG&EwdT-M9uahWKaVtr z08>x%;IM||EddE#mc<?%nX)*IksA}#M2fPyAJsO&g44BHToBnYf!2}6Tm?>X-a;Tc zU8RtkRdIDu<i%U{7C3-?@jd`4a+x8|knyQCyQU9t>xz+jJh_~3b>+GQAm>8p0<~&v zdi`%=RE!g_yGppcB<!y`#ECE+1RV(DvxrFr9RvUNU;W>vAJCnnA9_Fq9T6r`AWb0N z1LF>ub~rry2_Ola_L#;U#&M4g6qF8#I{@(jQd8gSdoz^+%w#EviAr_D28a_nRbU!1 zO=j|=DWLCpmCss}#rls^f~yH8Zw;95K{nSas7y-W6iwVGO;E(zPjDG$$t=N)n8kSO zz2$jGpkLa=;oef_%a;Ir?|a|F-}oE<EnbHj;3>n5=RpKs#Y6I{-LGzo0Eo{v1HSKA zF%L?0gOg?8J)tm5O%QDNHF13a4sAvbo0*;=9@jtUM04VtHs8l)P={$ON8&;}C@ear zn~8s`Ay=}Qkhc!Jk}pz1E7xOf$pmU)^f{tJw4O+v`n(C^O!)>v_F3|FZDrAzRsHxI zlGG{%JmB&w;8`*WV=gEF&+eJJSr0%4`wQ^rpC-fuVHz!?Owo>$L_i|w`!if!USXOP zAAkIHeEP2#TI{eDT?jUCFA0<;AnieM4>_1#MMww4@d~OVcDn<(10K+O;FzFDCRP=C zY=<+qT^0xk+kOL1f?iDsiev)C2?(9rSQD21F{RnkI3J1<VoZo49<#|Rcu9UOv?K(O z2u%?XK}r#wkHBcEDu8yqrPTSw3`m>rei?g|zFVllyY4~Py<K<W)!&V~7-qb#*RmRW zv%NTiCPIvWa3wAUpJgYmRl4Zi?pW<v`bNV(k?R!(?EnBE07*naRG6&qUV6%|D^Ii@ zkTSbp7mVL_{E!(4oh2_(W0}il1e~1<_B#L?>^u1GD=#DFp;@)j8Qld9pvEjovDyl; zpglj&mL$1`c<@RRkQ1OWDN>sEiUnBh|37b~SAG_P{edxp3)~;5bzaOr!L?_fY#nI| z2t<w0ltKMj?;lX8J4eQt@c3&V;NhclAVu^{-~fn5kS0J0BoV9$A({H4Vnm+~2>UCb z-yj`E)8UU3QcCE8&3|vUTX5Gy<7k%5!6c$PQgn#Wcz{OZqkxR5kJUXy8xI94y?#|e zN(#yML|jqQZ>orb#DuF<CrFy?84!E$O#CPL6ab8qliMZCrWhIcMq#tt6h<v+^sC(| zsHoqQCr|DZfH(d6#b5kIeC1c&m*_=4_GCggwx<bsrR(r_yn~6Bpb84*eTp$Byh#K3 zFU@y|Z$Q4=Y8!?q<k2(IgtHCs;6cFUGr_ZG6T(>sh?uZSgJi7ABIx>Gu@~xjjBB+r zZ$|e@i~S~~p=lSiZIhx8KseHFn~~<&tejP3_3)p!&9#oACCCJfNxYXz=)($f)82ap zt}X!*LW)g4J0_6J{i>@1LIj!=yQ>2pzxST41FxR5z!OOVCs>u9CIB5$N|+9NAWew- zOKg}xX@Dl<2y`M~Oi;0AefF#x`b{C6+FCbeVjTDA2>=BsGsJlrwT(pHC-ZBI8t_w$ z#`aeuJ|bHeYlZeL0Wf`kNzv2-n-PNQg2)iznaGoo10#mbP$yqrz~))s1q{7OrXN0f zgunOq{@#58@Fris@C(22hCqkg>!aWF87~V7xCzQ5di7#SnviYLK~l%IlGeb-bV8^` zG3$kvpRGzCrAn4|{12twSt|Hh2C*Rckk0>(v<C1zSDzxV=>w+Sgpn0-&ls3+`E&yD zfNAt#&MV4;CvfrNf#3;IK8M+SIIVx)P0Ng$pFh$XXa#~6un0AYLnJK$B3GP>V-oD$ z0)?JH0D%2SP$qow`3?^so<rjacs1YS35X+1ayi+3lbAr7Yz$GP5xKF&*Q;RLcQ!-M z!Go`pQ}XaV5||Daq@^+o115BG08$T0(Y*x(8WepnOX=uFOXgZAWvWCZfrWt-A<>kv zltVFds<Ov^iee9qDiD((iCY?rx`9<=X<X(7&40pNHB%uHn)id0B!IjvkhuhuA);p7 zbxptF`ULL&rK<SN-~3Jd!+-b>?-PKxq6_c_6M;9K09^Otz>7in7eD7y{og#!mJ6Fw zfvOAiz<$40TV~PgZ=<J(_x-gJ?(%z;D$y?Y)T<iNF&y3^0C}!oCjXs)Nr4mz+ik?| zO7ZA%z_VvQ!WJFPNXJAyU49qU+5Vz_xYP=0elMuPwFzHEL-K!1)5^$+$uj9_jr^8> zj-6e^0{_c8Y4p0WRddU0EA90Jl_+2wfsqIyY|E(IEZ~bJWSJ2UbxujL_$Kaq4>br# zJs?7DL^P1%C!hZ*e(u99E+^Bn2%WcXQZ&>+6-*;YB7(S5UOE6eLF52PhYkrOBPbmJ z0>%U=j|g2r0wHugnAymIT?eLQWIS}xl%PIy?~YP#Z(OfoD`}m4JTWD;8Gkn)%J&80 z<UdVdPjpnG8y;DojhVn|#!-v}LMryitqb5<Vt1QD<Esf>o<QubDfAfcwiwV`apr&g z$AA3VH~_CAaKE06nqFuG@Gj?`70S@`>_bil@<x|x_1o5oxtE_4hgMU+y}h}`kONy8 z8PkdY$YQ2?Hd@w*eh}&;LH@Vg7w6tS{PJl+#~a9$5J#~DL~26Qk_X%1KO1{&5DPlh zGH5DtxkbK4&HLKEf1CGQSC|(B!{2;G!9{51Jb>joy>88_v=XzpCfFE^KPk+KaPni; zc^g3U<V3P$AWa4*X^Lh39Wg<Z5&9$vNDLLwIN{O72HZ1(Mrc%oE`S+e6$G`4J*Z+5 zOBxvFEzkuUy%dv3LXZ(G6NrOX?!jAI0Z8WKV961AE5b;56aa~)F_BadLI)68n}RG* zM_-Iegy^4T=8|S`gshO6XC~DHx(oe~RD%HVF;sS2Y;wK@m3Ba?@lNk)@5_fTyF1=y zPv#Kb>C5$2Bmm$2?sxIu{MWzpT7&z`ApX6K7Q&sr4=92-FT2$sVs^mr{v`>SoNF$~ zV5GWP@LfRBfK}5+Rc_N3;HIygQf&zkd4-61pr4@<{`XxEOo#b<(Apeut<=XIL4~j# zHW&{RKKeT2^4W-?-(WllNO_e~aP;5Q1btdugA)jrUXvWO*QT^hq)9?r6rveBEYk{2 zqS83RLcBU%O90w?y+i;iH$c3)Jw`x|);*{w-x2$9=<&5Ej*dC;OM(=$^|Dm>+l8UX zi6<(GX_}1r-UvYj4n<M2c`~4ok_j0(F8DKJpYJR>&(4x5Cc=`5AsBa{>pJ_nte{Bw zpluz2l0PTp>WS2tQW<|BB|(g)Hz|IB)cgOIT%oitNQ~J}x%wA@kU=G?wQp7|fc;@g zDZ$8<4f*c{3aGDy`)Q;0c}n+Xx%S`n1nQj@LVg*G{;vJh=W!jZ!Gm6k;^10EXqC8v zNDxOwj8?kmIebT40UvwQ<Yc?X5>S?6Fj*G2sg`r#*98F(F!|V0#ZNWzOH=)81P%v# zPv1AertSZyWmRt(!O->i;UAB9@BK6E_LbZqX^~8<LG{#FBNL8gM^_^Lsp-WMTyF(m zHs>PsIM$?q&9PBtB(b&iJy)4L9*NB(f~OLIQ+<OYO{G$i)g(ZiaTf?k4lj`^SS^Gz zved0wRg9LHMs6G4%~hXfzwBp3w7Se?QcGD<ij*Qi8zfPj4*~m8i-=RZFxB0Cl-&P9 z-J+V=6N0+<vzS$!BC-*a9gY(Op-_!ZdXcJtly9zB;5V-gg=(^-#&1BrF5+4O%yjdD zyW7U_<=@ox`n`4e_o9Ns;c%Y-ybaLJn@j|rHyeCW0^xEqKAn_YKkxgZ$VIKP6C_T6 zkhcM>ieWMc6v;=IoHn18?NX9iWKvads3fVJ03>OQY-aI8AyEqE&g?VlzVVh;L9@-L z=%aqRt~!?z&@nKM5j}ShVI1}YKKrpC1cFY^Wl$415<T7v+m^tQCjia!fF&q$lYGyq zrK5{Ix#c`4&5?wqJKf|iO41~G%QbToa&>EJpf>kKnks)KmK2`_hx#RX<sT>S_Zy?1 zL`+Y>VeeVn$jNWSx%zKb1HotHm#xGc*yrX9N(|z@n(9EzPMT>El#@9=YVsVy2go$1 zE18R8-<;g}N8GMgmAuFAu)SCOR^2<f&&M92$)-H~{90a0aPa|K4^q?}jkNf3HqUpV z7G6tu|G_`_2lolUn|%G&Z~fM5h0;$2;#bvfxC`oV?Z37E|D5fIH8{B4py3r$iW8Iw zqD>{pzS(4#H#G$t&FDd!frEhL7SCGca7lpRiA)lKs8wBs{Vi_TlYmgPhbzQsJ#T}6 zp<Xm$&K+nseoX)?<FL<31tX3C4Q2*}JPH`sd+x2M&>F;ls+t!)CIK!5ftG59%MV`? z5kaSuh?xX!W}hRQHdRRcHtYVjYl@VC$*T8d0on3ZsYwFTWYD)tYTR&|Us|i;paSTC zalFFNKg8uBfkIc<_xXJCM1s!NwE8rN5$P<Ewedm@9fSgi3DdX-5kqCdb~AugAu3=M z@4K_15-~!9RsNC`Aq4lasMkxx#{SAQOL?{o_Oc{ZO2SjmH4FZTk9r1lAylEJGIde8 z9n6d*xz$52WiR_`MEE;qG79|mZ~yi?n*_WS3Bbk0#T!pQpIcx5B|mJZ5`-dG`;x{0 zPan71$dfppt`?lFt|U+h)xH)cubV$lykB6-YDQX=6rH@JMJ)~>gMX84gjs7K6W@qT zQq~AhnDu&@$Y#!!+<tf-d{Ua9OExi50g{h*4I9RO=Ztex3xGnPZ3)}nkA~t;STXFO zW2xoR$6u@b7k|&E@E$#l%&v}LvT*=f8Q^?h@}D!rt=GH$-14De$f%%GLP{+nATV>N z6d}{-BXMrASJ;B~-`NzJy{CWq#pej0oE6L4uIq~Wy$cW5bDB*)P(>!3?OE;#SrXaz z!HI)}z+`OyT%l(I47F_zM!^~!k&rC@lcbLOA&XUIS!8hpD_a8AF~@l#K%N}TW15H- zsc3B^FAIu@(=DC*k-ryT>h}r2D}4R=pZ~clU%kr<@%lDItuo}!$w%AMy}8w3Z2+rM ztl3WvZ<1S=ipoMgzuB*pZ0rfu%bW=ap{e9^soMIQYlYwqSg3|O`CGUk0&-+Nb2`D- zrdl^dL&X%0?7CD}HLQ#Q&e(@I;Wt8bd_4#d@WQMZ9z2!_-^xA14f510PJU28*iNQE z|NgrX`>3piRRpOJ?f7=SDuk*tuyW0z&Gqtm{}{)D0BAEOs@c5AgD(*<O(Wto;lmH! z!!(WHuyG!YBS1(XGGav4$)KXh$L`QWXoF{!*Og?Mr-+~*I&@vYln#C=yizZMKXufi z{8_XljY@_vsEAkUIdCUW2Ikd%PJpOofJ*Bql+iYn{+2EgqIP}gdcc3@g8z-4SM%!= z?xz6W{Oce8<A03*>aYLy8|9$9P8RI*ewU5A(VZUbCE@R;?<N4#I6=_^WG-eB69{l4 z6sy`Li9_;K;*otmd!R}4<BU`SBfNcJv(Kh`YviU>tL*asRc0?Ady4VazPY^I7l?7# zTasdAIW9@a5}I!l2aq;gfaCDEc0W|pQSd)*1rT%%18C<aZwUb;0-{7n9ytSMS^zi6 z#b)NawQX)TM<4=HiVzq>or#=@U)g}FC_%Ie^i<V9lw-@{KU$C<I9bmObpVwF>IW0; zAuf)9dCd__BVgzV10s4>bZn?k5mCs!cjjUQrCR?xU-R;u!Bq-_8tYZXS_J6I7@oyz zGGd_;QqlXbH<KEKqP76E@(pC(^O2(C&`fkldws~0h!<-KzU!}hFMzkF27YO9%=0`1 zZ+aZ$Hs7x}&ES8T-zh0VDT1jp@AAAEPm_%Xs+#MYQ}c6M!ZxSW{Mmv6$a<FARQMuP z1yLBq7d<n#xnV#NSwGaOE8IyCNsb<LDK^H-V6)a<X)APUgpAf=@Nqz$>y95K6(!sp zqhE4lzH{0nD1S~Of>0`R(D@+Nh=A8Tg?EBaMG}OZNTF2V`~2NhN>y^N`{aFjZ~x?q zT(uFnsR@>9CNz>I4rIQ|RGbG<M!#~4BQTpb05ulOnMAvo8c_9qe%G%&7p?LVocL$= zK_r4Gl($KqDDj!u_Bv3x7E&aPOGTg61heM9r1Ff#JX4!LyC4S{HIqBt+uPp%FS8u* zP5a`}6u>)<JikQ=z;l>6zu{p1vZe=at>6V0EqTF*<Hk)x5(LT2a?~`+v&c!Azt&p+ zTfe`BmTMp&3O+BcwYtvZQMpQWonS`g6eNeD4WgHo;96~G=e&Cps5z>#XA>7~62*l? zHvhaf>T6TS9ixrqnl1vn9=#7uU^{)6OI5kJPjob2K#Qb;p_GaaKr0oyTxUlkZ#eqM zTcuYb5y}Z{)K2elx5!0K1Qm#rGy5H0hZad+b=5&uS07Y@Mq4KWAUZkE#!%a1cd1-b z5SuPOvt29l_xWI;z1st5&y1l9IP9<Re%IT-N|n7NQD_nm@;R|(1P(~K|Bh6~0?qIz z&6Cu;YP7LMcGzDskv4M)Tw^;L3C0l!tvUusmTdVLV4!&rQz)4D#Z^t;xsHM2@BZDt zd!GQj$=7fE#&3M7GtMv5_uXU$lSiCL&7Dk98Rbf50+89r<eQEW`D7jtOXZTFE^(KY z47H3$X(9fpDyA4gp_^@Nrz~sd)Vb@Vd~SMGRW+XV<F$<49V_CkC2==HiaHy+obv@1 zZ!GA+vVza46*XU4V~s#LmINS^=2T5kXSs%697R$jiKfO^Pz-7m>M{>O+~qNP&)e7$ zf~xsnWp1@_L?k6J1^nS3{Sm(T$zQ?laA`t7T}7NiU??e=6+{W3%nMKiW&|b>GXjwx zqb0HIh?0%oxp`7cDn%s}wym?2%(}89vSj8wF;27fM>7$tN@mR-0Ge#PP#4u`z1K8L zaL}v;&!}dJ>`SSi^vjI^JYQRt@H@ZrJNW(I|NZ*};7z?g{`lkTl~}&Y8R%^{VS2US zXL~Mz5Y3-lCm$`#{=J!f&&_<YRWX{9cLS(wMg_1|6Wb_Ur&7(=0M10FuI6ok_V{u& zyaqp)?RJ^e6fFTRWU89@w86YtbGklSSHnU5Y{h!8pI_G{F|g$s&`c7LW}}^!5|LK; zo;)(;YhK(1o6jdlJt((bnxL|TIbTGK>L_Alg*#8?C?_wZO(InjfgI!u>r=Fh#A!hU zD$`vh;TxZP1Bb)jf-&m(W%McewP7~R2x-oVT_3<k>};~2tkq;Afn5kTl>$A9)QMN} z)(H?tne1Lka>1TO^4QWnOYm>jlBkq(vE(8aaS5V%8$}Bt@fa<7mtQ5(yk&CGl0}Jm z_N?3|0B`8^#TQ?^)?Uop_R!q!cw7|c4oZNhK6mZ!wUF*6Qy_DjQIJ<b3NV6isNR1i zg-Wa&sw_F~`NOSZN?GKE8AReqhgWkMJ}nMwbZtH;l4gP2Dz$laF3HJe4ZLXtMXf<t zn;=LuqZcTu?m=VuW}-39X`quzfMin?uHIMz8hkE%7F_0&9nzpFErc)4$QOYc9s^2c zn>e`%kF2hhHUWH54hcK4Pec%~m{KYB#~xTk>eNT(UcelIvarqE4@4amnw&2n-fCJH zH8es%)uC@59M}^JQYi_6ri3_6=t6JF$~8tZ>im!*_*9OQp<=yzZjl;K)FdaNKsjgj zDH@PEY0^+M(G26~MTt7W0Ii+?P8L*G0*p)T?RPN=XpB78h^=caFuN~m<j?yA;LW~% z@ArNWf9<dR7q6|-ev#h&YG{7NS!COqGrjVDHLG1N_&e5eM-P=2HnNm@R@DsDqxWp{ zc-c~4dv;7BU=Fqc5<yZlE&~xnM%V8TUP+eP4s&aqISfLOVt~`44a*9tjBaK4Jojj| zA?FplLz*E`xgF9#4dvPt%iTp)k^8w8D5UBmtX%81-H;Iit4g%COGHW%pwQArSn>CB z?fFy!alR)hr84gHGS@1*eIbbyx#fbmAT!r<z)E$tzBz;1j;Jnoc1^t{;Oc-q5k{^( zZauo9b6!L-k5U0saG|PvJe8!^b-nWgWRVUxW1kJ*Ko_WvxN~7`Z%Hw~Vyf*BkyO`H zUV|l}NJ!D!BO>4s{P?7_OA242v?g4GAbShkzpfRvn(?1t&uENk)*8D{0N!jG_gWXn z%MAX{(@R~;N>9I6Rxi|b+3ww|x%zu6W@0j?wnZk5o@F;0uv)9uzVDo=T$%Qzhb_qi zuvhSIZjwYm91yw=nkFy>ubhIj@>}u!D#EW`^|cxYTufR}?2J)h)+YELT}my0ZB<n} zhJ<N`7-+MB&sz|h^r%nY7Oh95#5|4$laeiUt;6@Tu|zqw*_oLWk<8ZCQUl^;zfz3o zI<1=Z4uxxT4arG#S=u)f0W-9n-SV<21FO&4iy-)DVdxl`QuSm&!!>EvZU!9;RdC%0 zB?RJGioj5Gy}|#PWv{NW-)5Dff`G8NhFTmKrPyYo=nE`~n>2@WFejn<1V@U7Vvx1i z*v})231Q&`no<G>F5Uq5<9~NZ3^Lb26*0#91mG(T51pEKeoI;jxBU#c#hmZUIG$3a zwEfy9(5VNjTv4}&lcqR_ftx389*Afj5J6xhy#M|KeE8u5{G0#p-+Lt;%#4T_^D#JW z)Z#EpLJGV`9uiW5Htc`nZBavzv+6ZzI&pnlA^x2AR3fAvsQ^}wVx?o`0*%69oi>xg z;xBE1B+cx1zQ2_KsB6bbhRR5?>zz`%u@&^9frG@=78_%Lwtp=S-KP|5bvzUNaYLXy zpeLCy=VO7S`0=No;^+V32iB5mpc7irXD%sXL*^@T*Uh_9iqK$ck{v0gMl1-8kPkD@ z+!f3BHkGAF<t(&F6uW3u73#_7Dzh~uDJvklmI3Q*wI`|Wh_h$?jw7D$OiN(R>*Po% z$^&56;qUyNzjL1eyvf%$zxmBot@XDdK)=cbdgngCD?HcQ&sIo^NO45y*aEFY14X@1 zi=~pO74<0vvTVeXTke@0mHXKsLI{KuCtO`!;`7gb;&8Q84FaFfFLU~tG^X<@0j}jy z6N>p*ibq;F*T%VOs4it!qwu#7@0le_^UA)Ny)(rDTKp6>*Jp+Z<jUB`=ESR5@j3X? zvRD@&QYfSd-k@09K2Ol6I}md7F}9<BNz?4&q|ADUiTPB^-c*tS$3HT7?#K-wG2-HU zfJj12=|&Wh+8TYCaH9Gvt15;*AjJq3bKuifW*1f+9uDJd5}<AA5SbqVxh-(vc%Y7` zl3N5<BQFK5^n!B2z^-vHyVH7%@R_#*ztlZb^eZwGPuJ^Nw0qMJ|MZ9W&Ue0pfBH}V z>3st5re5Fv_P1Xd^z$|*0nfuhu)g4F1mJnkv-V&y!<jQ-DQR?~A6Jr1CRdf<Ud>9{ z2Qd4}hb95YVVbm7QbfQMBQzx=%w-t77zL#)l~S6!Oj_Oeyo#^rKqbgoAGvA}WL3Il zFwBBA)Q;AbN&;olpaeZ??nTiNpi1acMQCggiH_S2RPgMEL7y4_=1yQeY)=YWt}}s- zh-)k;=}ybZ$S~(^*9aG);f)~!s;Te}N(-Q<<JTm>2=l23|7a2aae^TEM1Zfqj0|Xs zINx4)pqBZ@el&)G`dx|>oF8M`hwXqN5JFaKWcLjqV45P*)egdpz8}yJgS84U*H1_( zA;#zl0;BIcOI{nIV@12%zXHe4e&3r6aSrGq%vBiszDM9NZ!=-80{AM0!M=R)pKiSe zfAcSV^S%Y}reD>M`Q<ObQ^b&$s-E>4`fso5J9Ncrj$v$lP0<Wmk}=<vO|~~Mdll_| z0X`z-Rz78KW@?FaxnG+wo8i~mKUEcwaH)*Dz%J8DSoY*;0jmRb6U-a2s^ao$KV$yS z0(+ALXi7dSPDQy6sG>AAs5CwNX4R@!!J%ss7|Mu3>x@?ecjIzDLluh7f)niW?08!j z9<{Zgu31p4&E*<zMWC)-Pep_N772hS0d;gzYXB?>fgu2;wUpg~AnwqYJV9&QL_QV= zv%FQcKzLj}A2)1{rZb8sfRO@o!pNF~J{5$1zdvA_Mx0*^7>1z;Z;84Q6;UC+5)sbM z&LEO-IP5Ww5nTxAyWW!ou3Qyg6GF$*y|mDuII?esB1u9xl9qbuo54HR8o<37(3^k# z?(hCC{<Gis^)JmLS`z<WhvOD4{<QqQT$Qw9A}wUuLYS>f+}bN>Wo{!omcav|W>7u% zY}3MFPLHcJAs=<4ieeODmW&9i6@rMR7oOtS^jo!xlw^iCbI}$kaJ|Bk2xM8-RMQ2W ztNG1l>?;n?AQ`PITWvMu<5fMbnzG3a%@BflfSQdS=Hpt7J!XQLcmhzSBNoO(v+r-@ z>|5JdRb6cdyqpKZ@16RH=Mi}_yWUmf8_f*&#{I9NHGXdDs(wCdst^S3=dA~<&+Z$4 zgzLH?_=ue`?gRA*MCiiCCs7D73dX}8(-d)b_5l561NG6$nk?q~AjlpPCJ77-Lx*XK z7{>!*oG=Xi;+aG-(ON2Uw$Ed`W^$iD#e|6nU6R#PUek5B*6(A9*nQPrw0@0N$Di-L z0PbI}6DoUIrX6k4kw?CYPq<eo>kD3IiNevdWAyW~VVPJ<hG+>&3ZY;+0L^Ee+JNTr zvvu>%RW6tDdM)t2Y65eQ7+nx22Y#YC4RAqnD{5^%4=%~fW+;!3>3r^Y2~ih<_AKF8 zAV$tmKXq;Gy4v;Q-0oQQ?$t#MohOvlIA*bNHRbJmQ&R*5g3rAlB__?!(aSU4XpSMx zh;Y=-^QUNTcry)tY3Av*Ni<Q+ZZcvp?)L~BDsQA*HJQuTE*$Y%p=9-h0;<>yeVKNN z5)oA}jw3`B+p{xpU`$g)*Y^wZsx~H9KEWWhiZ|qmkz&N*a6ky5j9)ILYTCfxK9l)5 z&Lqw$M(}t*8Hiaib-Jz5*KGpjS7U>|{hs~BPkwTr0K8qP+gB$^c&Uv2GA<<O`<2nN z=KJy{(ry-QHF(o^ONx*bK?p`dOD5O?W=P=zu&a^EOdusg=ou0(?DnF%)yM>AiBzUM z#ST`hgt}n>h@1gU1%ap|U~^ylcK#mj7?@%NA<bCe$Bgh&sJa1B+hEA&BUK(CllPjy z-LBp|%WcFky;Ye(<jIXTH#$o#=YT1uuBRtI&ZjeU-o4M~`=UZy>(eyt?7Nn}h8`gR zI+OZs1D7ro`09j2Z7*D2JuB9_HJECJJLtHBaTME}M-jNXRmM1CN)a(l5D{!QTa5bz zNdoR^1?|fd0>}OLR!1PCEiuNT!BDs}&CP3(x%U3pc-n-RqPIad&bMiv-(|~y?shM4 z88^SgIe@NmeU|I^!NZ66-QWG)`vl-kzvlLtZ&%g+e8mx63%}hxHJYnjol<!_Rej&( zT8Jcw_r%)`S|lN=pvzLFRP9Wqn5NCEQ=7(f1;ISV=D|A$4N1}MO;h9Emk^u)s6I2k zwplID)e;@5_QF{JW~F*vMpDt-kIy7HZsyxt!k@11n8nz@+8ynho|_h79T8Y0bQuON zL0oUx@|26v$&0MDo1PzPR1qmnV3|yhf0<hO+G$CG8A>k|ztpJ<YORD_CRjvq@$fO? zln|%1%4;aUw-XnO`)kO(s|k{V0wGGmlx(_Sv)vXJeuNSGTExVH^>xpZ&Wh?>`KM%J zGdT%hpFO7)6eoWVGh=_)TO-xj$p8Q#07*naR07CGv^5*<YP7VTJl$;hd{i`m-q;@b zD(gtn)1%+IkZAs`-}){5qkr^|?h}AF_4>|tz5~1gBHi1t;9tfjoj>Ecq+sa;cltZ) zrp?Y=uF|b$-J4<yrOW)mD`R<$>l~zt0I33*GXNh8;{Z~&QL)@RcjdH>$$R0cm=Y1y zako;{XO06<<%u;_8Q=!~Z;61VDW5mXnIS+kugz45cuIUce_m`|ZKF0~8R1B|_SzuZ zD9-6Ip-)>+f(8j`(GV%pz%OrooqB#uP$z+qELfvWpk$`<R|I+>m2=^2|LPM^QH0D9 zP*ohp=q;zyxFMftu{0{rMM}G(Rf=hf=!ec+_!Nz>&O8B_yAQ7Ql=UdF%wvK%5m-*m zECcmC8BlXIBsKI60&2!pTQudaMaXqk^H-w!7rowXwfSQR;nneD?h}C9y-dUV)mHrg zzd%60Ys9^`rB!g(Yt?QVZPjpH_20gC$w1EAsOk*c^-8Vkt+Pq*K^Tx^$w2AhmmlU* z`L%*U5UI1-{^x3RLQN3x!Z5`G<+2;Sh$BUWERM2P1sks*r97TiH{{|qP{sip)TB7J zRYrJq+oNJ5o88^8Ao*Dk&gYUWp;;mOoep6@b|$PB!IPWJ#h}&Q&UEEN{{Fc(!^?pG z*AOT5R)dPTYGfTxn;{wE<Ub$pUnj7&iH<ZNfUUd0btE*axRs=r9HUX1O;bo_`{#Cz zm|bvS*B_t`NfP38z^3n!MsGo7heFH~sU>%3iMGwu{TA<MHp$)?BLvsWcjrVt<mY)N z8|?ZQaw2c1+a&{U>v;5=KxE(b*ISVQeD}NG#jpM9ue`GA`fUsT&x=G5FoPl6O(yva zeLJSKwh0|=;!WVL$7Q`&i1qrd@-_|t!4&s|P&TQ$Ir-0)p?l4<aHb=Wp>eG$ZdMVp z8wp7X&M8h+Z-A|mvi@x)?ahdc{ym)015F5|jhPFTdH$L}@yw}?3hO_=myQyKtR9%( zH-lM=et)v5hs=36LHt~s5~!_)Mkq&XWxO)fYR+`IvXs~3>7Lh@sLstQvg4zx`Nfp{ z`up`P{sv<D{3X$B+5*|wCEH2M-l|{92}UE!j5<0=zJ{{|bRI#>@3A@iRFb4Pj_A4$ z9kEx}bG>~!g3+}miARLQbup~gd`49vaXNY~*ATjl>SW}kb%)fIXZS9YNMF_9f79ec zPKNK3fwwFH_@h7iqgS?R9lL|Q{fqU)iOd2-OB`B`0IrjYBAB^M2^?2<&5XGd^0J6d zp6M<}klF66K%nYS*Nk0(=7()&D4A48Gvbs50?cOXQF`CTw2skX;JiTwE?V+gOej}O zhy4}0zITgQMx2tLLo4i4D{dx&<j*>)%Kc<Ciwm`V*t~I5vGT2CH=6w$l~B|sqSX9- z^Q|Sh5oek=*1APQKx^ppkxD9a3pl#RujJX{Ch^GvL|Ttik4TU@H~mp5(*W~!hbNM- zF~~pv?8i|0*`f#uUB^#6LvtQw6Z{)lUmz9j{lj6zqlXXY>n@}CMWkwpq^%KftA@c% zL5P@V`tzp((wsLz;FJ5vY0K<)t@=H6?XNrk*Xcrgp8#CDNco*xn0IfJ&`C&gN$y!b z0PT2Der2(o6T6DT&uCQmtW_hWLX{(zxmANAs0j<@-uA3d+V-xiL~w2kwFs-Uo2<k} zwa>^~<@|_{rs_YSVkAXXF=Am38h%ZP$Q}5a%|J`@0+rxJ)#Ru-zj~ZHCqMdynmfNO z`uH<ciVA9wrwL3zr@?ufDTSPjP!?uVGXrWjwwpHpWfFO}h24-nwR+qG^Xiz&{Y$g! zRuP;g_#?R?Q@(G458nR(ahh-#fd_CKVblu$sCv-(C}2tvU3mr=495QI64Z5=rm?hd z+Jui*tYz1#{AI<C6KGF49_I4gwF!IIb)^^0Oc;jVKPS|rZ^j$Az4_Pc&?$KvUcB&V zIC%}IUH^)||M&m?eFE^7gvzhvMZT%^a4YeS8?xH#K7)CEZv9mC!PM?Dl`vJLO*Lz! z3z%`zYWA2k<{k7>acQZZVyr~G7QvWlpA$EMO^@8sme*jWPmrrBs#^Cc<&i)J@v&s= ztazQ>h&lO7oAE@=L^lu!;kflg3+DF1<S4f$=9`y~i!EmCOV#a?!BBu$kAnNlGOaqr zDAz?(n%e1+h6p%IUbV5fU5v-I=zvWE05N4G#E~OvGz1nVy>n)~VF@7wx13HkO562# z^ym?~E*v>5RG})|ItiEs`BRC%TENNeIBpWqJS9*PL2fuTD?6hu$ey<?LRP0azB(K2 zYDIr^?u+a8&2PTDa=`aOK(82Lx+yU@Rkg1zZaop`b0u&J&T9DqYv{r8iAGx*dA6_2 z;Y+K>2PhCHY1$Gv8gC*Wt?D>90w9RdtxQYB%<kVqCCO-6@OAQAu-R@9C!5<o(#BtC z`)`IGs=zc&Hc^m8SsEC>1|+`bo>ODkGlz?_Lt-oKd+c?8+%H}xz13Av3n8)C>5{H` zHq6Ct76L+dM4w7B=q&hCYkz5ryV@rgohLMH(xU2IKo=}Rbp`|!tnBS1wxmYPf_jYB zj^c*Asf2|%P#wdo91}$#b^@UmGTv~p0g)*Hswe{BD3qBHY3?1YCbld0(dD9T>ZOj@ zWk*NK{tiuRB#*fg+XyTg(raKU$x&Gsl2H;_xxX(V$rF7elK?M^l(=lo+~ySm<6GbQ z)_nqS|9Y{?{x(U#3omp%X8E_|mh0LFt>{R*=^sPCYGYk4cUpDZ6>~s4_q=_)4`Svu z&3ClDU1?xuf?|qOGqT12!mRpRR)coDz%-5+`VK_q<Q8L`sodqu%S;GNFus}0nCZ(? z7S-Y)xP*0EPC|w6b>4dML`i8Lh}-a7;YT^H!ty<A1Gi*<`qbRpN-E4Qi%jd4VNM9? z4(fmQGsoBex&>L}oQnyM9wk665>PzzR3H)?OIs=DrWxUZAV~y~fXG?{p$H}&Cs$g8 znzW=Gs*2E=a%E;pL~&AVU?c@n!!HpJ$S#RlD)4$8ZEY>@Gc^K1KJ<!Kw3%?+mdkt( zrtF)c<@sP#grtm6s@OA=bOvF|(j@6QUte}Nz*B-qr?ex!k|@Z10&x4v{VqShItKMT zf<AYt`WF>iVN)*x{wZ1CWfIUT1zyL7ErdS3Su48)8oq{bN%QmXx(+E$rZ8A$!=#z7 zKlXU<LI=+63^9YCE`%njSirE95dofYAguqIPBOMz&jbs^t?e*on*7Ktcsu%1`IZR- zTELHV90*RYBRck=cX6TlXVM}=l-0`hE^AG1c#h`%{j>tRuOJ|^^`aH(Ze8tAtNP3b z=!SsLe)1W9=BFP+rE4Z3t~WEHS(Vonm|wC|Vj*n;9N3TmHO>KPa9Ez5kFbuGERm17 z_;7W4T+<F{iF+-ASJq!v#&n}C(iboC-$wTT%RZ(SdAR{l#r-V6S2O{5nJRp1o7r{n z)2n(dEBtn>@4EhfKIag^tWSQ^G2dhsLY0p0^Vr;ouB^+O*6(Ko>JT*{r358L2qqY` z20=10`o4D<wW0#Da=&?jaI|{$8Sz*mA=gSa!(8a7QIuI-0el>6Rp>at({W#3R%guT z=1uM2wH0LPU;FHOT3kbV$@>3uL6v}BQgiC-5c0BBF<+aDzO<Y6kbC*0X~YK?k1_5Q z)O)g6g5)tnzuemfjbK)HEL4b0Pz3aSKpgkblrpA+`6NvH|NcMHqUczHcV6Rb69d|M z9?YM|ngFaJ87+Fycm?E9$rDNY+Fo#b0kAi}SHI{U+9r~>_+}6hKL7ml`vl;tTJbLz z)blR>+bqnxEZj9Eu;)z(mYV;kj{Pp8FkJ}88#W!I37UNZ9DnWl9$nXAzu#jR26SC# z$wvdF8y_J+K^Qh0r~*k9`~7})oj03}SM5FurwcuQGIn<+{_qJ>R>ysnVO@wQtw|@B z`F1hg0}vwu1`)Soj*I)INfzw`nvpNd#*DO@WE^eMN>J9>XVh`SI@uApj=hnHvBm=* z@j~vh#%{Zk6^yekfI>hbJ#w4O<8B$^ZjVVNLL@>Y%w=ue0g;*TV6y>>Ab{}n=`%cd z+|LB}P91x(R0hy>T-pg00Wh6{v#vvElpjrYm%RmGhr>DPqAF6<@=O$SJMDrzdBOl3 zx82J5a-%V^__dh!ulG>bF`8B!>DCqYbz-3OdiUxV`w+~vC~ma}+c{obT;RLk{qB7N z@D_yamp%lrHX?VIg?ZZ`{aX4+g^^!_@Lk4$+PU!St_KnD_+pDIdH|7N<8>bNLg)Yn z1PMxHL}h2TGl!zocGho=Ow|Q+eOD_brUGTxd2s7?4nv0&&3}MBIiQXq>b~&gn{iX| z9L58nu%B7T;fhy-fymU~R3VaE0|_o+Q1tcZCOaN9i6D*5aE6~dZvH#>gNY%KW~7W} zY<_~<8$+uegGl{;|E#w4q9TZ7s)$TBD$CqKl445HKxbk|AP@(T00S%fzB|2!a5D)s zCtf#2f)D~e|LjwQL7^D!-9GL)9!A78`TV_c6_OM1rfEW)MvRADnE;3>0-7+6J1{e* zX~K_w^eKM!*MA*9{_M~2Q`>L&b;t?lQbFN_+g>1u9R!pKN`$~{%95__AfjLj)^aGi z7AT~=jM~i6lq&E;AOs2vqNhtAia;B*E`?B%0Q1^NNBhX!?B{rk6kWeBYbfP)`@`EH z{d--~a%$27&7Idpi|IDsRVOHH`r<GD<-dHN0KD<=FY?lt<BMAFuKnDp1$#=}?`1-- zis$DY<j+`21|L`djDPq4{vY_kpG??YM)aWr5fCLp2^h}Lu%Gs}ai&;;CG!>>HaOp$ zVcPAm-EOgcc!6+shL{qB6ubQuR0UnvA;xIGPZQ4i9-sd3&#-&?46KZ4x5rQY>^Fh4 zEyB=YzdvA_CV-+tx(tp9&p!Vg(|&};2v#Eq5;Ld^*r&<b3z$IaQv+_66PPftwG@Vq zaX9Re6qv+j>WLDFEdWO85Mx4`Oox5D*&wLFyD=u095(es?t=G?6-g9QI2S<R;P7@$ z+>#OkcL*IrRFKpvUo_$_1b`%gk*xh7Y;0|2a2KH5*#tos&<`EDE+KvKqoezM7i7!Y zOIeHl^v`Vu!vFR^|82xHfZcz=WP2^)Oqz<BO>P6ke7#g4DM8bOOePd4qB}XND4t#J z@t^-Ee-)qp=+E#Me)^}pA3jyJBu`9f1-Y<*>lz76I7}0!{Zs7rdxXBnlV?w%-2eo_ zvu97i-4;yd5J<%6yTOr_V{}N}9kP9{vPK0nAy9>wQAYkeX#!(%mq2@eICAl1<|9v~ z{C$}pfoocKcd4$m)wq!Cb@BQWgC#0=T^qMe_q2h8)=a<FMV6!_WFZ86^wCH63Ba3% z>{D#K-CrU><3&gGmR{R;K?QE}@3%!Ks%MQhP&${5<2vOx)#KUllT{rv;{J2&KK~3| z7_h(EV?6Ak>{a=+!8lrFCuy?kNCBb_L%+p-*np_RlfB?DJ_K#gL11)&u<bfGUO9j@ zg3^TZ&47>&IHxOwu!jh6c1{?0kF&EgAPC+&JA>#JKmvjV2)Vq(?nj?v(-CMej=*>@ zu^B?bhiBVH4N#E;IE?<#liDUt3Q-1AK%Dlzv6~LNWG20u^f9qQDS@FT9jlojsI?05 z0MPOca<!6_AjDu$8D+}}1T%qy*(HlM+WNWA-^l#N7!hN_FbwGX0fB=Zs{mt~5TSTV z;f3JU+cL@-2^~-9`vHm`=NA|F#z$Yrzx}}vK*>kz+|5xP84wku6cJMdL6PE!aoRgz zPne{RRK{eChL|Ek7cdNik>iREFkOq@W#gZ0v;6SkV~prcQ=;oEIUvI0M-QO91rVX> z01g4e_6$nFkt1o4v{=?jtMN}QVRMGIn2}XX$&ZT=Q$mcfjQSnfN)uU24CG#1a<|^h zE%%`1HOqlfNLHEir}nE;e^0kaQZiSlO!GWPEA;B>%JxLpdpJ&Jr6voCnGVCd{(37C z03xynGE1OJJo2|c>XBUsZJjXgco_)7by@0dNi28H(lz(mk4LPooBzM-W{@k3Km6l= zhwp#?-(s4`t1;`jv-k8<jBdB-P&YHc0o#iQc=Z1Jc=Gfq9$cK`qffqpi}MR4$GMYN zPa+ATrV}5C!NmAC-~T=?pL~I?Gk31{KmHio2N&jn7AK@AjUygFGU6wneu{CwgTgof zokM!Lf=Ve>);Gww2+Xq}q9O>PLlWE6hrWjr5L0w=V<?+1cL78KR?}%=CUl+g9;)5D zfH|0VK^I(|%={3wF|sMaiP=yTZ(T%pL{#+zK?GBZ;LsV-FWD$q-~d&i?|P&pCKek4 zrg(*mA>Ded9Sg(U-0I4|$E5g6Kl3vXIzt%F@ZNjxq3=3`ev5IOFvSU7#|WWA-}gn` zF2;luBc|~Hm4pxs2_ZH}JW7J-fPejiA3(Xo`Qt~J{9cOp&ILH)eNa12=`EA2UfBi4 zG>zC@T_JP>gc$qX9{b%6BEWteA$q`WzehjxkT8O{M{wo7{ObE~Odvh;KeuX7Mc2XZ zZALg%YZc#RZ;R%$m>FHy;ZOcJBJ=~c=UY5{^Z?@P;#C)7r2tz|LTrVLt|brO5;@JE z**kaWdG_hP>+$&UV;{pk_G-{(Izt;3lfLiYc^Tlhss+&Y6)DisW|J%2l+vn|rv0j8 zU(X9Yt@YEEZ1(n8mzDKR+3|Hr!*!-HPo6wMYZIHR{@Wx(%g?^<y`qATKluiJ@s}Qf zy9-=h?aO%5FbvpiHW>OIUEf1ht)H8cOPqGI2fOS0f?ry|5=0dbwic|1VZgTE;u{}* zgg9A`90Yvy@h9jv8zf0cVo-12_oauNrV)qT9@O-_3&~4eFoqZ$7=72F>w2V=OoYhq zUEdF0p<0z$xemdJgLY0SiNm6{LH8Vr^IS{dW6G60*FJK?t;nN+M04%A8FM{<rkGYj zN(uWh&LLZMLLd|*)h3s_0Ktgw{j=YDt|aibYp9a^1pnc;zJ*60{1hhf;Oj{Zff^*Q zZorbHPK3Z*9VJQWZ6}wX<`A$O6F`g)zy38$$rFQX5|qH91lz9bN+n*7Oj{Rd_G78n z(mf&F;0Q%H$ku;e*L3SZN=|C5f9J}CjvP%u8A)xQ`@ZY&#TQ@TFn)~P{t8{^N`aED zd2V&pFW`CjPxJ!qg;P@p*C`OL`Ip=p0Z>776iwF7nHo+-0gmRL9QO&p+rk6T_06VT zG?~$TG_S3Sl<a}s?RK-9+Xm_!JhjoB&zkmm5$4a$qjSqen-Pf&U2V79)raD!Qphl9 z!vr3N!E8bsY0x<w3v^wFXP1`+mTn#YPCbm*6a7yATbv^P;?MsaHjfy>Ta43aC;)66 zZ?hS&88(aNL^JNRIxeZ;?2GQ^J$V*fL_r+zD3~Llh=M`58YjqpKjWblaa31Z8@5~P z9#_)#qEBf5HVR>yvY?JZ?MWEpA%eYU4Gti#L5SRthN5W|v@$lNsW>w(_Yl4&0aYw? z<DDorV~OWbsV21?Qz}XCEGeC<;MzLx0#qY*<M?9FA#R6C<%)KHm>{0;MB+Lb(zFzc zMvu2QBndP_&gFX71h=OE3LT=OCi#5|I(c+$($)99wN9G7rS`U|A%9Yt*)MS)j2II_ zA8hoLs~V<=9wptUtbL)&VA(J}UCHodz&$k{w`e;(4|Dq3q<~&*9Picy#OKgLIr;Od zHgZdPJkistTIz8zbU2Lo-uJ$Dp8&iSt$@2iRV!UdX2#jsS%H++-n&+<ul3NUX*#)> z^K5-4v^`Hn1ps5SS+7F0er%t7@`+cq>j}nf$A4~fOuK!=?!eG6Vn3N+k3rdjLyVxS z9frQQx#|=#^nJ;!twNGI7wu%MNfTPSRy_<xN>YNIf=%s>*mUi6IcQbX;2S28vAemo z<(;i6I!+9-=e$?0NJeMKZn{>f=TAuuvZTcjsO{ahqhVOc^=8Pr>f@)@xgO98GqWdm z>b*)5L5eo+*h1b6ZBDPTkL6J2@}GATzpZ7e0^r^zLx>1UY{wzlP^Y~vErKELS&#rt z#cZ)W+oBLAaMwc-K+LZCDA$^X8Gk|y^%*)J^|G5vUFX4|niqvGAgP!dU>h9Nb@*CK zYtYGr`((d-5uURQvUmb{UF>e}L5m`0P67o+E24y35R-4W2h$sw4!Db@@lAW%vdFu( zh0u5S`q#gHp8$N-Ue}Gtonq`?_r9B;`&SJoaU*wH=I~!Ii#}Z;^ay>22m*6wdrKy? z`Eg8Yv+oSX)gcurSdoan>v49r1-#!5;)P^wRked#opwEgI3cOcecRl1SLXDNH0Y0D zbg#&LtgwaMaU?_|84L8J%B_AyK+N+%yATdat-Nlj;JH?tO=d#vXZt?|C;L^zUrRE= z96Yf!R4Qe-{NlmUx};e$XyQtFbTGTh-8JzmS0~*r0Z56!{R1F8vU^R0;K6<E>+Cb_ zvkg_s640@zCT4Gi5PF1ea5ubQsFBJ^V=F@!OfMn?SJESsv=&u#S=JhEGz3P{2t`6d zLMugm-H6>y@c6aJTeGHag1cKSfD+IeG-J+%$0{N6MT&sexli9^FTPpfkB-K_Psyie zbol3f?&t0kfH%DeVoI-FeBxy(W4+E^(ps<VMb4wz!3M9QfNnU$7F&!$;EgzmkDa82 zqWVXQqrPKG(TG!hXKfV^lqSZ~%<nqM&Bo0Lo3M3)pUI!HGvPwuTHR1>rQ}M`M$DQZ z;E*v~Wo}As-&oLbK;L%=ZVpqg8#T^s+^E-S11%Gh2o8tQ9SzAx#=62N&X7Go=z<Zt zq=9X7Z(1e!n4N9xx|mUB0>A<&A+QurfHpyyv&X3z-?v<hm$50Id>=8GH$WInx)0_? z$TJOrWp&&zun8sMX_NLWrEGsMc=GfaF24448&f+$Ftg8{0Q8=;=}CC8j3iFRG0+?E z$2H>HZH2d%Efd^=v^#T_yyd;1m$WbHTiP36Q&XJ(o6N?f*Cw~x>5%)^Ta*Cge*5eC zuA2~o=UJSmHl~-IedkGuwG8)VBn7HK;sMlc!LWII(hA)Z)e4N!&Jo+D-G#yamKfcz z@c<<a8LJiXNPt(lM&eNyT~Q1}4}uo*V7A$<Z3RXk6zUe#;JnN&pb!8sro#bDRM`1> zHd}pqfg4#?EtM26s{H1-IUw`{Na|)XY`1nzL}m{4UDp*t;n7Gbd}iLiuPx##NiLL| zZqJBZ%fJQz<@A~#-npR>NEa<0TEMewf%RC{x=m2O_Tkqs#t9eKK6^Gn;A8)u0JMod zYA>JI5U8X8g*!dx%dz0wJmYsJ;h}Le)Oq{hRTd%tKYQ=iB*}4J37*d*GON0}`U0>4 z;zm*wDGfx<%u=GbYpaKmUbr%?IA$7|WHK55pUgBid|8>vc3xz=v^9<lBMbx)A|XM$ z5CxIl1iAtCrK&PB!u{I^zl6Jodt5RjE3>*XXvHp6Wo1TqczoCMowJWx0fX&t6a~fY zfIw&A0RG#@7QpnIZ!|UL6*w#isc+PAlPZUvTQ`nOkZI`)ul(*CE3dB))*SApL%moo zwG(t%x)sr}8KfrAF@FRorK<~o9t(p8XR<|@v!T~DCFYU@Bujvb5W_*ju=E*ZxN)L( zew&!wn3l~3lp&_E*Uv`Y)rW6cVHk}zS70d2ilPZ=d@XorG<-}X<6C(qO78qvOTnKU zXn5}P?jwg285Ly$Ymc3!z-j)7p)aswTSxYq8*nRo)WIBrxsunWt1g=5&)x$A>2p1K z3ihlpQv(g0A`Vg0W#!nxq|PTUJu5A<I6Bw}z5>Ce_?f-hc5N#as)+tPRh{|CPkwR; z0QTXKa(gqGQ;T54C8f))mW*@o>sA3ODRm#-<e@5gE+Q)PdWO@a!BR?7#wP8T$unSN zOLsolUn9Z=87*}7)cDXq`fR(vj(Q1yeOS-M3)7VMaZ==%;;H$bnxQ^s-RD<CfryRb z26kT*!u0Dk#jOB)U_8?%5xQqhE$1Mb>vu5l_Sy<iAnWTEHKx7e@D0K#gY^OcTasU= zeC$Cqqaf7}rIf3J=<KXcw6^rTJQ>>L<x;j5su|}}j#9TQXSx+Y)L9(2l{8JqtXotr zFf}07SmBTcL`7X(3n{{%BuLqFTwxFpCrp$L2o6Wv{->UW*I$1f-}~P84gtWfk8QL7 zwgr;g*+xd1prfTiHbKDS^xe@Gt7%@N!gDjIX@~nZvtJIlrJ7MJ_y6Q|V2P1pA$4U} zw8#BoJ$QfQiW27EId#KN&}g_D#~W!Zs20i}D2-EMjvZ|~1I&Ted{sf}xCg$}vo9~4 zb?)R>i&RLCGx+8U@AKBH<n?k2AmrKb`?4|LfRY;6*cN=Uqj?faNdx#4h8QV47vZoY z-rgn)^0e34M%0f{Q|u#J8vMH;<L6;j(nAC=*bl_u?%TI-U)#0W8#F|<;q3CY*vN?u z?K_AmBj(^!z4`vo{3;MD2v%Ab-k`3vr<dmU5^U&Tm6BS1RZ6X%rz|WmobL9u(ubWR z94elMWN3-<Dj{9MZGWXJKb9k&d#Xh~<!b&jIQe(T1b|_1L#-L|ag~5r&_-qIKg0Y` z_H()Uy$$|-B}Ve1kNXcE0IX28#%(#sqUZB@(`pJLQ`1Hfrb;8A1)+*UYcvoA=PfLF zHR>6s_Z;=Uu5V9u-iBb`0yy~jjci)H-hu?a{q1ibDge8V&@@__uk_}+tOy`SO*|y) z7<xSvXRBtsEud)j^Ktge>9%@cO6n#f<AjijaD{&kIMk6akSPYp_~9PHW@lgG;|3VI z^lzP!?}%b%F)M2uSq=aIAOJ~3K~w;gycfo?+mg1OuCSl$qtoL|Hz2l3>@AKs2K>Hu z90;`nfYG%k7{^Z=?V~Z0+$nTCD}|Tt-NSNu0TnUf`2abxVWdI=qvDN)x?odjI#_>C zc>!WFfQm+cQ)T5w&KXHkufet=;*wBGp(HX~g^UA?t*df59DGgUdavZ(OaW}`MoiuR z-~9&P{`C<V;FR~Fg0wJ+aI!7b(GH~`L-Vt_m?GEx1;<s6wCjl(2FKS=;A-2Ub8TmQ zehIy~4&}H30JKJmh?@SlqXc$=L<6SugNv>}vLz9_b$dk{en=RES;8Bilf7&2l2@t+ zX{z9|EU~<>z529qCt(04Bm$6O82osX0RUuOHRoj7PciR9SN7k#jBRwMnPBO6V)hyH zgPd)P0W^UWUvV2bWR#IWYlOy!0AS16?PiCH-Yhm|ywgp&>GCjbztv}Z`C66M8Uu~% z_b0o_7<2;nu5Gu9qG$yT8n|a1sY++ennPVQ2HlLGg__?ga7fN6qm64I10*D`9iZa` zt-7cg4mr#iO_jjMuL#m=gL?IZe!qaSTAHiY=MvKaE4P!`fYAUbQ$Zmlon@H)a{xTN z^x#)1jRk@4uh_9G+K!T?GA1hv%yv|?p}Z}?5MZc!rRkSBM&w)ZC9BM*S1#rNAR-i` z*&j8yRC>fhq0}~00Y&<CzV)E>pC)&nM3y15-IH!t3oKir3Mvr$Y@@DH5I|-_{`6-* zJp=&za40?~Gj$!p3anhhL)!|QjOULHB2C<s^vB1fR45B-A)>9$d#;yijp<ObkJQ|G z<7C=>_@GCPHXg&CU;N%frZ$pjaZY8jVa65)0ONpbQ|=kC>IJ<u*PkAvV@9j$(gavd zVBgICH!6CP{T2^7K_9EXK_no!sR5Kl(HhOPpD8ju{mp`^^!#QjIA*p%a1#Ki%W%-w zCLz`rdV2FF{_-#X^7{IfeR6P<-{L*l%#%3jjPS=+0sv>Hl(C~xUv$0tMQ7E9nX|8J za~>e;m;+t&1VFM&-LXrtQ3a}Q;d@$4K#pQMb&ff_f*Ltm+9o#{S*qU1gle%BvW|8D zO{>2pY?UVm-n7pB<B#u~ARw_`!Md{xBG`?2n$KYgzlXw5S|7mM+e5hihk`1pLpxy9 zGvkZ%B&Q4x$<dI&KKJv}Teq&YEb!h00BQ?70Ar{$_r0v9R9Xmi8|+pA7}JbQ@kU7k zcLo9ZH6l~qby5VL;7}7ZruwzEEZka`Ob@wF#Vl22-~r=eL+=l_!5!^@B4f<@^x3yt zx%0<5ttP<$lzY!}s*Ef!m~i9d2(_#X2#{M9qXzhB*2C@#PYE6to8i`y9Rr1CnDqXB z136sugvnjipR}52SH<X1HBCiBolKdnDFDKEzVn?!0I>6j&CKIIPZfa4jW6d7$2N$L zTrNX|ra;3RUVzF}0TkLZ&#@y>fquFlxu@izli^Boe2=qEJXOZ`D-3p$z<wV)i6MX_ zzdC@i_j2GSAI%2I<2GdqI+$A9+<PR~8JZIL&Ye3>GCOvFLKG&@6HXAQA$!X2*+$pV z+mp;mVAv)t6&sAk0yTa2v=1D5$o%uqLf1HL%I{p~V=piOvX-b9%jluK>cQy5$b3PD zxMYMt$lCo%c3Dz)1k#TIU{0+E2eD_H$cS6c!T%bgzG%k}gTNs99)>nnh$u**r1*$0 zH|jh3R8W$lZ4RplqP4<~b<V54P&64~ov!dEXyR2_r?uu&@D5#P)f0$@K^totXw@+I zg=f#L@IomL9HY}qa3iVE0#DI9#jFMvNT~p<>KY)J=>jdXB#6zVhH&hVL)AkAhuxuS z*Sn_C7@@;L@B%`VS|Je(V#4u!j-@ACzG;>5`78|N$+NC=`G0RJ07Y5g==gYY=fA5c zc{{+orl3h%%KG5ke#6k0W+Iyc{HHSS!2z3Jj#)0n@)$qpmN$P48BVGl5VsUk?_+;o zmSr!YP;88X-+8~cig{TlGoS#lj)7~_&W_t_UHtg%psW8Ow(UWs;`<_60gmvWlSHV> zabV~oEK@b`sFj&xy503EGvV3{3*6m(@a~^bH9#e*O4A}Q78jGwHSslM8G82g=^+5v zdF2Lxd=AJhwyF)_7|q01&%HsQM^4@<=JB*9C;ziFYCe_y=RjJ0ENy+%t$qd{XZERp z!l$*h3V^mX5Came@J$LRm}+r!Ig0RJagrEmYo<Nw-}f;pj`98WW#?ySIGP{f=xFZ# z(5`d)ezL2Gv~d;ilphJClwoh=B+#{w^r!Qg=P`ReEfy6#4Xj5{iED_W00X#ja&s$8 zpjY`ATp2VkE6Wn!|Ni$60l+Q~W$9V3XasN>4`3GxeX44SH8O33mCNWb2=EnF6uK$_ z++j4^)qwQ)RNV8UWM4k@v)uPpRpI31Mr*>rckF4cghme_r6=$I+*KIN<nVXBtj~ z_W0pywMtGWOc}lfRLUcskHP0egw=8hc6f^>AUirf3eHBc0uu*11Ga_W2TQsYKtNTc z_b-J3MW4e-1%h!lJ!-Ne(vQ%U07gv(U|T5AyatvY`49wjSD)Iy*Zb)B#tl4r`0x+_ z>^f?@>Ke`4egLIZ-kkYXuf+Xh1=3QaI%C$s-C5$EtcXTc3%WA<#!<^wg(DuzOF1U% zIE4_H&*%8&H@|_KH*a>9@a<>Dc!l`<;_nlQ-{9wk0{KM)ru2wr>blMd>1=7=P`gUv zPir_mg@GjiV#dAC-9uefsB3#K6^cTjFmlTjWp%+`Ozu~5q(bcqf%3qB$OM(+?O7L) zu(cl&&s4*c!Us8kfwpJRy#nx`{_qd4?V9Zc2vA9h)oL{X1Te)aH_gTxURv4```RT& z_`+o|M$(o^Gnpx)s1h-~`JK|ZT&i0N+9~<8z}68HGz~OcmObmdG`bCv0iwbg^IGbR z$7ak$Q3TZydk>_PsOuU4p%mmH=u~8o88OGMf3IyR|G)jW|L#7=I<&Yd;{z1!-{q7V zbNj>+EU}+qyT$d#)%t_x*=z;?sHzG@xz3|L6lke5!H!+a1Wj_f^%5hs+arMtK(ay| zR5=)BNm#9vX3V2haF|hHgk}X4V2~)iJ#Sk9A|kk=*52yki)aX>;)<32iuY>HaS3SE zNgJp*D(G$50=hg1c52+QQPZTY?9u#RAE<zLUxp9`%Cek{g=*W?gq#4#WmGX@N!YCh zBu;#&VJEYtGtp9AqvU$b$^u76CykL-?7&=Z&4j>ewZd|>a%)%=g?3uXsO%|C-&z_+ zmSf~=_LLZO|5DltK0?1T2y372H^u|l&$2!J)O0{<)G%hn3(t*>#H}}`mcTUZ@;PX2 z7Ei#T>zN=zR$wsI-ce?9qjW)){=6o5v%y4iJGSkO6Re^JQ^U>VOCuOGo_W)86GY(I zrW!G@@)5v(!`y#cslcI)a0mc)bC5Bxyx*HS&I0<_rY4=u_Z-$3!@kZrFf4buz9$-d zWbz}@nPpiB&)AV6Dl#Kfo@yZp!g9F)5gK|`ZorIEN+`>u=LH3IUAyu%v;JLaoUoG8 zy|%9FjT~L-UZpa!${V$c+Xh8ZpeTw^T`<BDbnTn2edGr@dQ44hZI7jQ0u6sHg_&fY z8L>ZL_0{*3lqekdRR;il<Bjd-#B-jeAfy8<YBFHnObE#j^l~fL7m&9Al^qd{xaKqL zQzSp<7Z-;BVAqG9>8<y=w>5_5bQ?ywaXP&5rtdonL5?Ve1i;cksZ9279THqtQwVEx z_1|f67TrD|=&WBdqci{~AxhU@SI~g97|>+P=r;SQO!=Q0UlXYE+0R@DC(#8M>LaxA zGyfsMVw?4jT?y3kJSf%7;yb5F3=*8c5cvPiO(X15#eh8R0%28utOuj0I?%n3?KRoV z|H1wHxPALJq``C8d)>InOcowhdPq<MuoQ&4R^jj041KcuDQf*FPiU%77MY{#5y&YV zUVSIME1Rutoxp$o^FKcX0K47<BE$8)FOI*jcY9femPm9O_i1zoOwS$~ee4{+8Lz7A z8bu*c3Q7v4q}IxUo1Acqtf7?9S+jB6wnD%Fj^;=DbxInt7)m9ZjnT9-(?%M$C^SQy zGS1m%(>c&zim9zdAk+~cq~3Qp@T+l(&3akg08cvrIvY+tKW-#WHT1lrsB1T`;#u+{ zjsSt~hH;KyD*xOmDe>y(U%}%ikHLx^?jw~L6LmWm*FG`3N01KQ^q#TiXEWDtwFu(2 z&N})IEsuYw&`<9Gi^3%yhX7!gj#f>rX+KT&6Fae8_sM+Lw=LOmlf7vnARj&M3_LUH zRRu{vQE0$ht}jgq3vJ8xWPpJ!0UT!3Rb_~92!$vh3N1VX(tE{bNy&S|3}qhb(nFvZ zMS<CDmYu!NIgDJe;4(W8*k#)QV<%fuT==%K(9C*MhZB%S(l(?g_MPRhN|W@0lD_kA zz->eY9EnuVGuTW%Xt`fD<0i_lBCu{HNhu-98CLZQ%1JZlf?x^)Wy|{L?vr=U%E<Ie zS;N=1)N4!|#Q{TZdspj8-*eg8n};6#Hteaucfb4HYs&>t9=5=G59_WDDHUe3ZJ&!p zTWel*Te|e@DTK-Nlwv4VyWm8KA_A)Uh-jUAg-*!_7&fgANAt>zN-9vr?sI*{y}0*o z|IRrt)gGT@W|U>=9HjkTO4;J`A0jN0dd;Tu_wj^5e*j>hXS|_W19R9L?+XBo$d2XS zGrJ;;53Ex(n}{7qjvM7k)0Yp4iws4NBTdreKO&2zfZKD)YJfSP2D!pc><SPj3DMNd z?)M|301HyIK~4(PIP8tk3IG(gE$nppw79#rsRu29z45YFcM&hQLU0)mOfzn#&<Lb7 zGs=2gPa90~GJ6I8dD7)t(e#8JQH=-<CfF;3w~2I|$rb|2IC-vX_j?P%^9`mA1O&SK z_Ctcd-pWR&GZ?b5MH3(qnP8{^y)m1zvPVsu4N5s&|8<VKR?d0#iTL=zo%O>0jD3j1 zGuOx*q{{wlo6lu~XJ8a%0mY26C{QGL_AP#*k>KqH^EDvF^zWF}+5{;!0AcQDHcgGg zIa`vd^!dRZUGMR=O_Mnyx;%4w2mppu68Xw(pgzHqZ60w+cN;;6&0>5(JwiiR<CxZo zAz49~aw~~2OJP>1E1S6)P#+9XO^C+f!Isjc3l1E^p66)Du%N{ct(_RK4l5w&Nr17q zL#SnllkZb%^PT@N@F)lC?mI)@){_u=3Lv^hTNNQ809I~Pl8DxbuL(sVpp<U!^zKJd zm_6C(>ooyQ7)1Fz3W}-4cn8zMU}h8qEzBbrAAkHYz>HZjciF!%pJD?%@;)bSlZCg4 zU7tR<cL55JTA;v9^O*(|*aQgOHb$=#2f|2Ai)-j}e`p<a2Lex?K0X8h`*0|AH8$z4 zAEuc5dpqaTWcs0Moe2WiANgwQlE>Mf{ckC4cpw3YhA_vKbm6i?_RGA2T<KWBv;l@h z_nslP)dfEua7h58<$&QS!G-hXezw}~MaNnMLNr-v_<8Jc*F#rI{Ih0FO2b^3^AI42 zWabwl%LV3!0LZTb@Cd``MlYjlPdp4L%EAR4+VwXrfY|vo`Unz)0<1Wiut--IPHx`7 z;`}K@K}n`OYI$60t&LxGvK{|A0)I`4v-8Fn!_mND07#L|P@9lo$h6DB`KJSOyS!&- z=Xm$scMk!;Zo@GIM&vTG_3M0CA(dP)hD4z=Eg}E{O0esXl2`J#z0MTLO*qdS&x4bf zy(`T&NYqprC};$@&ld2CyVemzK(9Ce&??HIP>wK}Ed^pS95|C;mc8v^g86I;f`~@) zwkY+eBSpqXahQdcB{?bEIGEssHbWSs0I{d=>5N?fFmg0<Q0sylt_Qc?9OkTXADm18 z2O_Abk`cugZtol&%`uyi0VtaGKp-BLtH>z>n=n9A00IJn7(y^=j)jLU=@PqeCcO@A zLLZ7ri2O+aVt3xQx8KVLkagaaeWo|HeU_Q?I*|>(^zuu1@4fd90l@QI>X{-4*cKAE zOJywm&`+bA(AnQ5(Twu3b%x5R5!$TZ|9N2e3{#*b4hm`t4kRT^nUg>)oF6B$Bt-0i z3O$EnX>wf<AzW5Z9-^%I8$DjAD<?o%7G`8F&mHcU<(ql(rhIFW=;0cAJohY2#!D#6 zBKa9oN|zDO3gJ}>5IFyC{`oXBTujUCR|2N3a&f{bsvyg?40sK;!J9Pc{XFfsr5QWb z-7nilpw2e9;~HQ%;T#)y2_nr~Av~-Av7uT{g9uaC?e8H<)z7T9z)1OQA4d?^<tTxH z7;?`B^ORgOXn`PsKmF4`Jxl={jtMfN34)7ZqgR_>OXugX0<$#Pfaxn21r!tt=g@^I z^~Pg@fd%%;suUGk8A2FlKjk69(F6z<+$YS)prazT&e%i^tSn0*X|XgfCAT^PM22fX zz>)2QvayNkLBeSgi7Xv&O#f>$GyiqISWqKrI}C4-#V%y_hb2bx@5k_c!M(5??%9{Q zASNfd96NA({zV~BmNQpbae5A*4(yP5PY-{p*(Nmz(J!L3-+~5#_=2hv5{Q3_6Ob{_ z?sNiabN~$I1Au^3>JR`Nj!Ve?If-J<XXaKQg%Bd>w`CB7Ak6185K2fXpo}RjK&E`F zjjyJqrEaH0O^wtaBMgmy<A`lLKp2hz%l9stIWldqMbn>V!$K%T)3;ZSG)B+;FBS{; znbryWYfT+(gw%g?53tZqC*<}|<J=0Q?2la=JK{KW?<vKtmcu%GLaDY$QdcOT$(r&; z)&@UgvQee9$WXOh;N->)$4J??hi!0Y13x08Ct&&iL5?KKKZmC5&OHHB8ZFS;BZ#Jh zXc)?%i$H3s=lp<zKOE0}05B;R|3qzsu8c7R+{FeqoD1&?RE7pLxnoucl$I?`Xpo+x z2KJ``RLZcl^HODI1LBWVN;W-eTb>QZ08MY)XaTTqe7({#L4yWGB(!78y&PricAb4f znIVRET&1SDSJv6*7zR0^NtR+&%-zEnNk2vQH}>yz5XY?mFLf=s>x@<XEZLK)C1yvn zwQ)i^@X+rSf-RBgd3OgrVLPZdhfnm=L#4p97f!bfrs~b_V?|(BSS@*tSpWgxxvqWe z+eVL-;8Gc6-uWO<T3dHEz3+kZ9ld}LqSMl=fTgEZV6?v!E9n18_XSU3&HvJx18f@& z-Wg~%HexmqgF>hIrs^P!W49ncSFZH}0*4lN{eKQJ&|KEOZqSswr+JVYJNjPAWXzlH z?bevvsJ$8nsD0BXx%qp4&kGN9nbtG#Ut`7wiSWi7Z=kMf_{A^gwmT$3MEGQ@N|vEe zfk*))6Wkq58%j{x31_K=vsfBr$cozEhXHgdNV<e<op)zHcV(;Z|NH^ofB*eM1>jHt z=-;4S^W#H4E5`~p76T9)<FOfk?`N>zzgI{SzBDfzkO^6(weEE>Ib>5mV2^6oBwmV4 z_Am08X86AB2?jMSga+(IL56O@eJL%2p_zZ|^xe2)^uAWFz}LpLZG-q)VhQ3{pva%I zA7I-D-nB6#SCn*Uxpr5|c@m`q0w|!Wmcb;0zJ3)<l(e5Q6S^u!VK@aehD9}_tAs#_ zQe?99zWY8kTWGr)$Xm&hgYc8~BP+km<Au8~;O)2HK2!kq!(;DngxO{MhiHTkCGF_F zVWJofT1l0UbI!uLVoNE@JQR`MofR|Xzd!`Z%8>-=w4WW}jp4ol3By1*AOrIar)8CE zS}7Xj7=F*r(Z;2Em#L5ZvJT$<z3@beN;4uDXa4bf_-pCEm;c|QMW{oQJ~#cNiNim4 z%yUR&O7><WTAhL+&!5(fASkICkf@;6DJsQLb)*SEyYL`EOKA(X%1LbR$O(5TPCie^ zjT^`Kqd)qiLj_<Tvh{7wpKkIX<$LqPD*!`YGpvfREu+v3vg@o$fSJrtm+fX!g!$)b z)|_C}AicG+6$Zf&Okq|^44`miHQL~7`rO873s)_PGwT$aVo{Js5JbI|lP>2Fg9}sH zVc_h!LA|G{2RWf48?dyE_4JOQ52#9+viX=j;Rl;wMj;B6qQI(NL6j6KBSyeIJA&yx z!}xlu5?Od9h9*Gs36Jb#is%exC<5|P%qG=y?IP2<%T)#A3gM81WJ-H^89FGt3@!u} zI668y1OWSx{_ktaY18w{m8jSGjH#mW+<UkIE7C-(<nz>nL5Rt7c+h8bm4Z`aV$Sdw z;+EiZ$k4#BaO#98+<c!i-&SHc*zg@dvYeA0q6nBe_nh&}iP*&Vc0H<BY7rw%ZDfa% z<E(4!Z8?5sswEG8{s2N`@ESd9tNT6N%Id=y)>JtXDE-OTZNxN(R>KS|<W6kg5c_pi z0{~p}3CZg%g)~*=;t~UwsU(iGbLYk*k!k2!8ddH1i{7%gU+(UDU3@;N(st865IP`< z(EZJqKp}*cgE0U>JwYHufubm(L1m1aH*cD%KnPgN-N&K4|LOa}$*(5cZz?bAlw6%& z!jL_&mHu(QmgI*6#>ZN1zXa+Y2wOFp2&ya!C@JyA8?Ub+7v9hfDKicjGFCM&3(0&a z%d3zA=yf_X*Ij4;lAS0Di+_bm>^JJYg&VgyRd;f-neCy>mmBE0bk9#jsH^H)`>z8J zz$G}`DG#MK4>-Ce4y-UwL+V2S7g|BxM=&>?_%`+LfC+`Z5@u`89+o)AioqDJbs&%` zZfX^VF31oHS%Y(Oa*8KUo;f~+K9ZK!$X)^*m|s`Uyq{=|y!DMF=7N*Hz2J{oUPk)V zssp$nPB~|*C4QB0`0XG-88yWDtT0NEMkq>%;ZBY;+oCdpP?D|EU+9M8l0JJZe|@Zg zA>DOquNzGVR;H4sEa)Z4L<ysXL12hN2P~{S?)njIf9sU)w<ibOrOrrRaJId4JjKHS z0B2`s*OmqFxeWmJ8NIq`87*lzHZ1M6oJJt#Lmq1$H<G;x{{JD4YDnq4%b5`oq>^AV zJcM=}%mf3<7*H!3SV$SD&^>tY0Dx8yOfmO$l|577%T&p~FZd}Uyn|Si_+={a>1KO| z)_MkVsjx=mvuo8@A|#>`O7if}W)lD?<q`F>$*_BhBQ%z?Z|MCQ(Ele2gr?LQ_iyb= z0FQg`t2QOj)+hmvPj29&k3KpC0MFAgb>D8NeC%bFuBN=MWVY_<suQyT-3_x6snNNv z`SCs@BBg|sG8l8SlCwUeU+(>6f?OtbU%N&#yBy#crahk>FgFgDTE8ymk_@;oKKl#l ziwEv^3P<)_1u5(N*c<EYAY1aV9B{n&szrFzUY{m=_m%#JFza#f4Q*^2a(hf<gT!{= z7Sj<krXl(od+uF<?Ntc^a_1?8!0-S5?;o@PuEVjeLRRi?*V+7I492#q2t%BgV=*)6 zX!fcP)Nwtj41q_iMJO6X4jJBNp6AxMUb;M=rtIxP_{ZnvXZ~HIheI58YXV_p5HV!m zt(^ceC)c`bk2HiqLn>E!@SeZ68vJJHr-i^zfBI9S<-kGKu8Ds*k;zjq)>)v<0GJQ1 zV{xBu09-Q)*kBt75&u6m*pEDxA!<c%GtJ;fDMQGFrxFVrYg6|rAQ)PyC`Ez0ckdo5 z0N3H*4a#X<RHjpn_;vohQjIg-@<Y}*eq(NkK&(6-pnf{y^~RJ4DN&w2G<}>whxbMV z8L6Gc&+#Dm_tWpo56Os9zw`gQD2mqmP=+0E46#(p`Cme1s#BOK6$Em>`d?TfX`JVa z_wM1*#~+W_PaHA@DyuBn@ZTq=1>6;A@+(T*!)y>n4U&!FJ8nx^4X=_mB*^b>l?>f4 zovk?x-^XM3L>Q3obykS$d>lZ4BQ`a!A;URUre4cBmpE<Vu++Z78Hq-s)H5CwUZc;V z*X0y~3uzfK$~xu1u$bvY|1Z3d#r>=-wbNZLmtfYtWuKML4_IPmy{<j5PQN}T?8yZ# zait+u>FCZzx8JAD1v-qJP?DEj6FC;i)Y><$Q$exB{P<Y!NE*7<K^kqgm@;Hj)WYIB zIv>))S4<4yX-%Lb5by(zVU@%o6}?8VC^!1oHAXumkx3LC)^`3W{7lTqxUWZj&9wmb zEC9Hg(b%Pwy?DCvUf<^s`=x1$5YA`>d&oT8Rw0lKwIA8PVw->k<z-9sqwjb)X2sm5 zyw#(8BG@O6ILfa$bnGJg8Xq?h)9Vgh-=R#5KA(PBmPuy6lvnT-3pd?s`yh3yM@l&$ zS|YP=(!oOb#SBOVfX7wZEI3qG6%zQ3L>BCPV}doX%WjP+fA?3&Hft>ouD)@i@`uex zhPs5G(!tJdZSwiq8Qyy9twR8?4@Tl3Ta8O;Cv<)WGv@O-6wRR&K`JsJJpJq0Y>vVM zW~EBwx%XFAR7P2Sz(fGpF&Uu807ce0=CTm`x4z@GQoLicdz-~?k|hlZG;-Yj`vki3 zL1}h6ggB&XW}AU~dqYZ@40_z(L>{>)3XmWt72OqZDWw7lW%j|NiS-QjufN8;-gA}P zOS|Zg_laAzszqwO>Q>h?7*{R#4K#Ria)J*&_~6?5n>``|x_W%mqZQdEidv`8HOPIQ zlV$}$2wx4*xzdPmM~@8(;fukr``-WWLJ($Uf!S<^qxlSFQ5XUrWI<uE6Hh7A<<_T< z#HWv;Z_0fV0|^6s!5a5(ELe1#gjN0&fWMB76KH4pDe$8sk&0R{4<A0#<@teh+fF*$ z1d2Ln%UQstdc+<pU{l2!_Z;TNU1RX<HlOdI&OiC=V;Yvx%b*aR!~qrse&=_7=THGS z9NQ~1P4%9Xs@ts@ncHkSm)SYhJX^|VoAonTX!SHrSf&Pml^WE(U+J;4-pmXsC2CDB zU2^~cAOJ~3K~$-tb5$m*lPC(E3EGiBm`pPlJoGt301gb8n+%xhNNEos$T|BRLEE6x zpuLb%5!`Ydp9a~%8xPC{BNUyZN7V~A1wgGQ!Yf|6f7y-+=s)$8{_@of3u_s>M%1FI zwvyMn{S~hL5Z1=#(x!Okp9j0RwE%z!ufP8KApkfW`+Z2IeEyw{s}@;WTVo7a8nPWO zoQWgSd}dZJodpNKi-Qc`OcPt<7~Acpe@Zgy$$LgqNeK&%g2_~Jt{?#OC5(~<<h}61 z3wZeO;nu1`<OJ-6E4DS1$0A(xq_foR64FvOPy|R%^d=oZa3Ir6Ymy9YR8pkWxUAtA zU^W;NhJpl00n`MM?7iN$173Xbb2vX=fXFgBisUs(DKVSrwOSd9SG$hF=vt6sug`B- z5*-_%){YR+h<&D1M(jKBW=h7LJAi^1vqC^niN#`Jo?qz!RGVoY+l~@M0WMa!Wh4kN zgfC%yg^wv@)h9loYwcGKS^!%v$4$MVFT;?NAQVL-HQQoG?-jS9T=^nq;18W88)ZBO z3KE#lW;mM9F`vy)2m!DHL23i)(-Kqq+!%Sp{q5Vgv0ANy(X%1<ZY(|{o+z+#z;S@$ z|Glk<*sr>-QP(wA%N44s3cgmW6_(3o@Z|$W_n{P<QaDU$A0#QISqDuteS>#g?HBG$ zj0qbzY;4<3CpH?VL1Wu&<Hn6`r?G9TvDFxjCb;w6dw+kxtU2ebckR93XFr%Tb3Loy zm=JidfR<0u#KW^D5Eqaw(4ANN1ruOTveEN?ee@2GkAL)oVQu6uOqHmY^T-P%u3W?l zdL2jOaf{sZ-y+irfMZ!fsMWP#Oa#e4O0r{8ga^VrD12?`bf;mI!utBfoL-^0gdEo< z+k;WfRu((v+8rQjZRDbg)6&w?<J=1BaW@E>NP}d`G@a(uXjL>d1%mg8UoOuZovi&n zfc!Fu{m94lH%jHPYLyA=Z*NB~5(yRvtE=Wmjk9=de8D@?sJ}Lwt;1n6E)?)R{BBAP zjV8Z7M#;w2w&-jho_ynJKgUju+*-yXa!+R#l@$+e^f{WIy6U|2yZrAa4&_HwFWWj4 zIHUq+9s`s?=4qBEc!NKrJkrvo#`(~OSEkP2_^7G;;ORzEsuErQAcT-=M}|0cWSWsC zJV7Xx(Cn)J5;vj}dsg3#MoU=vO6CR=D04=;o=Li*I0JhguY0jT!B_~NWQ)yvJ>4`< zB5@kWuhI65MnLo+B`G7>k1-d5I$!jfnIl+;#bosXRXP);$pa2=5$}N+B_$!f=_j}c zxeO%?q>i5;=8W`KcKU`hbFv9v1B{XsGY<cIgITPKxa#a+Y)(is@X;pSW=sIyx$HM* zpUKs1@t<=}E5A<B;kl*fEF?P;R5k#`2oNSN)`A78_E)Z2k1da+ronFxX-Lo7o6VM2 z$=I<!Ih)K18;!i_{D-*N=X*vZQjV|U2EYDwnHw4Skkh6>u4XAG4sW-;?Y@w2wwx{8 zuX4VlS4d>KtFT1RV$Xjo=@kwV{qNJ;7`+Rm5o$`<^Hc+hHfwsNYRke^Q#ze<Y!5I6 z&in*Q_V&y=prdpIVB67EHo+`RvzRAdU08_ULely!V8b)V<;hUc7^Lm1eOO}oTezO$ zgH`QhC30yYg2l=;)9cC@q?!5XlvUjz2T|A5*4XbT-DSVkdPra|i(kMbV`a*sVSj6d z0Wp`TkNP2BhBZ%1O^|g~aZr$^qFEo(KN?pGr5cFE{Bc$!I*ZVjTZV{hI~oR@bHD8O zV+8H(X?2Qow6k_2&u*h^YkX3#<K!PM{{l|P1BQS=L2^$I5&~l6;)`>i2|d_(n?jn{ z7A#VZZEDUks%#PYe!I1=D9MMP`-z8cy`66j<-D%skiZ0<CbcU6Gi<GNdUi=Wrnr^? z^hbXRDr*h`46b+si@q*VG-c_}cN`8m<ORWDC&4@X%8@G~-}s*GMUqI{5`64b0?64$ zM9^JbEzQiy+_-qs)us+p_}C|)QUQ-CxbVq@{JgU+8LbFs#Q0NRV4q>ptZfgqT8%s1 z(LYUJ*Ve3HEp^l}<FUuE0+rZcPLxL&6A7x+LD=y1;_sY&#>=4v$>G1hTX~{}?!Hpo z`Q=5+EyjBkj8qxG*LusnHH6p(#B^f~{u}BQZH5vB>1dbn`v^0nYXa`fUEKS!^`_K6 zHsyibrmpy-mM$(CxhMm~@pdMkcr8QD^x`OnKl4KtF4b*FY7BDN;?GaMOoeEO{p=(E zlk=G#7G4-Zwq`z8j>^{w8hwCA#SxjGVH22#{TMl<N~`)Bn0W7Y7GzH{M~pmIG20H2 zm`uwxz#T0A!7U6n%6SmKJ*@!Ra0R!{-l(~L=88jy>l?}W@IYz<R(}wM%)`NyiMefI zixpLq#@}E9^k>0+nyoY_k>B<UgP02#Rds$IUk32nI*z3iqL2S0nyo4O8lpd<LBVwH zXtqHZ37OQgUYN4njq-Ui=v`N-lw?R7srsOru})E~!nM%!jdlxny%L`sosw`42>2M< z<@N^q1s+NMUzd`UBiiBf_|pWx-&z!YzSXG2TENG1crcuUBJNNL{=MwQP~7Q(reuiw z{K(g^&c7+|!`G{dCM7&>Z<6<rE^0qZ%jv5($R!y}V1J#LjK6LnqdGjb?v#H~R$VYk zpq4F%nvWM=BWZbFk@rOmh1Lb91Z9p(SKjEJOfqJkUWQRU+K<3Cc3esCCBN9N8kqQb zjAQ)Jy5CJP#lF>QGa9NAx%!nwY>t+ocBPO(D`HWM_3k{_Q$5j7eY9i&Ahqbe_Tk8X zEe0%WEX>Uzyw8LJ-pcmNl(1I!Sm*n#t|d}$&~z`{Kl;+<f5!&fhHZI<*BrY2>|U1* zxy7nY>!Eq(qVAi1)_Lf%_mYa2PP+6=THIR6!AU46D1E=xs6YJG%PXg*f=$-AsL%ox zabait%6*LqjO(Mdi2sBm(iy+=xkUVQ)zy<(hy4xOL*tzqAh{q+`Bv7fYo09+zmr1s zR{s0P&a{s_9arPN2#lCXhRw0$L;l|s5z<{n@4LyUsWa3eQ`gFO@i<RpPp$Z(C9sM` z4|$r`Ha$P{&}Jbk#`<&vrd;0|i~ed_x&OQ>*Bq;`<qEJeI_Ltq7+Y82{QS`Q$)P5E z5f2OK0?d~P;Hi7yti$VmcPr1mN#9r8dK}_~V(>d@OC}B`KK%*t3KZ9?-xS1Ds8%U8 zgW6Jgf}XkiW`3jmNfD1cXJ)Z=*HpTPGC!qYNsQk(`<OZ*4gK}(l4YyowVId|%{u?E z|29^k^lHV_Yag6!3meB>y3<Wd>Egw^q3Oy_8P=)S+EmvO8n_jT32TPe-ZASXSMss_ z_*UJ1K}mbx@cu%xEZ3;|?ssrrjiPm7`CGd7SZ~S`F*y)AQr85$o-Qv1kQ4(DQtDYw z9U7*@>*h6bOtEvdWAPU9=fXt6gG=9=_i)TPUMu}5csQq$9DNsTi077Tcw#N*?SNCk zD?<vfkIAVmmKB)bS%CzKLos07Y|&rY&rR)r2r*U!Po1V9+nqtZxZxB-@IMMEl`ABk zAt@ls(7c~`cC|VFmw9k9Cq4qlPyfW??B0T3IRBbyB<=RXi5dI}?7(^a-Sogvi+gC* zgMk|;Y0;%!#9bB*VzqO(TMyB)w+)J`nIiOY*97q3%4fK-C;pnhDQ<^F9V@tr<IBjN z3m&vdfJr_u+|uMWwpef@;oE7!n6{;lDag@1k~w}o%Pe$^{Aw|>S*H%)|KL9#I0~QI ze__NTKOflTtR-_<k{}*`v6tAJfpotA1ItD68x|>mfovZQ`NDaTh0$(3vqAQK9X|74 zb{(;UEaQvfSw&sYI}Lfy-ETw;!v?#x*Y)WNYqu)cKq&sV9o{y<AhyIbAo=u>uWgEa z)cNc~#8cAbqwX);-=p^<_nNTSm<D5q6T&7sA|77{jl;1^LxEzVR;&@LvGR=*9N#M2 zz7X%EFS~8*0<8>aiG+xx5jG~<oAprWDaU&Cy{$K%(Jr}M=lQ8RE@m4T-Hr(Uon2q; zP%0+i1WEAk{H{kQSK2ujwn&7(wjkg1e1EJAdIc=s8QO_{=(wL3EovYc3lmQ&G2R?% zt?HNXboY;iibEmL4jljLz?ydaA)2uMN0G*C+MM?hRw}~YTw4Zj@%Mmi2~(0!!FHP1 zmNKxqgt$D+RYW$xRk40klvS`J@u#MZ%f4wzwR&zTmm1EwWn3Z9hS@zQ2_)+mXoLaN z8?V97p-nW$cmeyH;B@bdbq^+@CGFh}t6AdcmnGRU>N<m=ar?N!U>Qha{!DMUQg<>% zueGuaCXsPTHB+haW%Oqp7>UfK24Q3PUz42+#-Fvu;5Sd<EH{$2*6M0@NRe`S-5Ax? zY4q_T*fS=tW@X6?)&SeBwm^l}yrxAMf^_llUs*j(gMqHU)TC`ndm{66B<Lj-`oT68 z4czIZ&7Fjw6zE@8>S!q7q@W}elq7Q?#c$XTo7%dVVDU8EP_-UEWHyw!ZbtY#Dq+p- z0Awx9$|V$#+0>I;w2}Vd9f_2|a%nlk8fwbABk`jQXO{W%{d)B!n{?Ot*}3o5N;#<5 zm29q1{@IeX;}NDXfx^D8Bb5xNk;A{|-|J{}%+Nza`6*ntL|b1yO@_19GoMY8@I(j+ zqHW)g@KeXim=)<yO_R>=IQQv*j;F(n2$Y^Ym|C)<^tB!}23|ow`WCn^eX^8b)8W&~ z!8^Bezau4a{ZY9oQSsl^($0KqIc7>W<6En9{a14VIauF%w9mUq)R~W;L9*92Lklkt z+S^L98wwWtS>oU&4>?Dna0FgEwfQ6L=uD0o#XcD)jmX?Wkw-!g4S_1q>_i3J?<IqM z0Y9=|a6e^q@7XYEXkn4U<B(N9TJ~yFBd;Ag`R*ZfJxw~0{@1r4<%98CYtD~6a1nDg z^P!9|Xh3C7mrVj0!3qU>8g8(za=-01;Tn5Y!pmhrw2#;?_M-CT4*zGT;-wBgPMswH zWM3F=Fora^OX=rGY52uQQsMzCmY{FJtHc&TSj|o|&P|h@4FpK9?QPW*pLPm009dGs zgAw)^X=2E~u>ETtmi}O<Qd=Uq7_Cb<J`is}0mRD)Awl&xnBp|<_U!iYIop%UCjGs= z9$3eN@{bwK)X$^}4jLZ=DZcDjAPC?%UWe)59E?)XT`2~p@KY+oW;!d)d1Yu884C-g zXcr~zylbQLV%{PZb}D$R1gt+PGxDDY)KthMZL9^s^43(AqnN8U-CO!|PmCDYC?xyT zG<-DvQR%7SeqI)k)6A&nj~folMgm{KDME10G<^FT(tf$J6~Pdc^sn)rcG?_%yZq(> zBkDWrP7npB;<-6%0yUfurTvnr6p}e3nb23_2>qJHsrHCTo$&-7{g|J627xTtbGaO1 zXy4c<sll8|Zyq>Zl*vEpE@576xf+K*CX}8)eFym$-8B|*qaT?;Xb8-xz?{*#m~YCK zvC5>PODo=mZ&vS|#X|17bgqJtrB^geFrP_Ee0pd+8#Q6uNq&Gv+<Neka*P%)rvCJZ zBh@A$_Y%kDC88we^=pLREkxJM)Wv3<I=8V~IlTBl-k&|GiSC-)YuCmPupK)8E#<*n z`I?X3>2EUiY549fjQNH{%$hIsnX6MNl<Cpa2_g`Dg#6SE#RW8l^QW#3B6LAWZvUP* z(IiZ$VT;3mk`?m8Oi%KrdFZ}sSPA6PEcn3o$?xN8h`kBo%lpr)zuVb>9^X1=JNS1- zgtf3<#XUul_nUE@Dh9g2Qk#`FG7*bjfw^Dbu#jYt6?!dK3+SXBt78J=O&a&_(2uie zcJ^cIAW@XF1=~Iknd+GCCwb{I>OSSaUbW(f%Y;SmP)W8PvQRIFE<WspV2JR+0V2$r z#RqfGa=4iP;^Zu94i(zEIuMua#%`Oe{#6u8-9qb;Pvsl_wE55)jAJC<j*S`2=C{~S z(Yu9UnZmWZ^z?iTdD$$Oc%_Ud{GeHxPm;cg0i`<PesC11oy7%&?N5k2)C9Z;DO&KB zD$;kv&KuEUcJkb3BEiIHJp2cnWUbsJAqf3j)TW&OZqB{Jzkd{hjP)8YF1GsiTe=?c zNO``}E%rAZw*;YlH#)LE3?;uwU_1<Nb)s9`hAjAVfkQT_Ni>Ph+btZCNoHO)G$1t> zbQ!ShD%pTYl=Nm=2d6%N_>BR1XKTvR<x;q<j##mTmS*d-k$+?@!{=IV?}>+m#2?Im z>c_jL+(JmmN_CQ`-}aT?_W!$;ZkWGIibQoP_^LB(16je3l6%GmUvo!wGFKktPi-_{ z+M>;46L<%M@jw2xE#uBsRqD8?zwiIUf3m(H;ezoTvUGm-4INa82AWUK00QHlUTxjs zRD#lzUB>L=9q1x6xM;<A0`2pThtHSY*GfsOj(+fZ9nTr2&>BEiI>C>OF!~k8Py%gO zfiT<$b?MfR!j(x~yyC?ZGXy{yIvU49^pUfciHYf<EF<lVPh?Cgm+L<0xLE~|b5y0i z+X=x_5vivuVaZ7yA?Mytid~n_o$Bkd57l*M7{j2rYo4zNq<+tYTAJ`R@Y!geo>eat zlY`;-e;K@!qSTdr$8Y{a{HwJge|Oxe9Rk8|v=I-URGQvgj>)<T{PBx|@V)xS_i*A! z-0IspUZ9x4a$^01!IJOE0+vI7*AoXvpsU(;fV=G!jtf_Vy%9bNikoGT-EbE33WiQM z1#V!MF*)r`f`xP8<}FeCuzH}>Clg})Xv`1%;>DPv%S#{s4BcWO0Cy~PhK5b1$SrOu z=`7Y;eejc$0IC`rxtqCB96nzzSxxAwC=>DqsQQl?lp@4bv{i;Sw*=o{t#ZwB5n3qQ zjyx|t&Wq0L6qP(G@#J5wB1DCtY(o)J5#JVG-Fp!&1Rj#vA6vAjyA2;D2M`#At8siB z8)rkda+r@mrPIooi7l=ss7<XU&MPbA`kxWVcK29hw0#nEPf|D-l_AC-nBlX^P%E_< zG4eLgW&z#_&OKZg{@g+zJHDt87ga}vY+K>G+zIIjJX!xS9*pjWw08^s_y30ePv*8Z zLw@s<p1K*Wah1h%^7}1I%Rjay<8{~uqFORHpWEg7ppNP#|5n=@MyeI~2P-ZSsm(Gc z%!3M_{YCI_td~V|7tbGG41lwMn1SY_wDCX)wRO;-bI}(C5c7u3yX>b5KE6Aoe*_XB zSgTi*Jp!0wC5h^wNN;swwNddSf&J$i6ufPL-&r+M0CG6R!}n$^LS>P|hAD2vJFk9@ zyAE5nkKs6fzn8nj`pG$Rd^J#?GW&j3`p%7$)xESJlfRoF5K;Nz3@BYp@4koC?06Tu zgvq0K#E;yFV}<$A%qYb|e%qEWD8uHEe7p42`<(EJy`OwzIbmq!4&Lmu%4w*}4eaja z5kotf^Td(t<Aq1Jj~#4aCt)BJcH+UinfH+PdD^bp^Wy_aZ>0DuFMtL^47bjA@MVvf z5YK3dx9UJbx1ax|%~?vsPS!RA=f*S6FFrZW$qJE1$WtwsHTML{I<{uq`^Cq$;NFR& z_Z<XABnOW%i*#FP4@_;%+uN)5KJW4%n*e-X<3wI@q;(6CBeAi^)7QF9C~WxvJLgB6 zj3{zGM01Qe+#EFaD9Euet!7bH`zBtoK>!Jz_)i1-9k1#uEA$Kr?E=pA>(J>l0i$St zlXVH_w(<1M4@qhDYnG<WF<j8KM%RYKUfqwCmso@Cr7&tMCX<fX)`=g>90IWtxZg(% zB_%>wR5QC!<a2J7&*LZp2lc~iI%=*urDPpT*Z-AVTrNDH2EpEq*y!DLWZx<}!vAHK zNDr&eLxoGJz(t|RO{1`l|Mdq^#Ez?ihJe~c%%AG+H;P-UD!MBRAn-?CE;-1Ut@tpH zTueqxyE3=t$9J(5^SMxz%-Qi;8~TYUTq@AV9X^_|apyO6c$jwZ+@nAp8Fg&uH=t0< z`?eZ1|IFfk{Uf;@5i<s`m)}eV$J_Z3BuO5JH?^|VFG3}BL!utPB0I%PYq)Fn(Nu4T ze2qt}^RbcN7`kS>d0;vOUOg>*D-dQIByG}tO3UTnj$;cIT`ce0X!lSZ7f7QaFO-#G zhRuENWb1C|b+FlI>GheN!S=XZ(`j`uE-M^X3NsJJ$(t8hEq4noaW}{k78M+ZTy_UQ zN!@-OFHh4(QSj6M{2(A|%O0=!9HXQ@+ObibuYM<L9`>uoSt4yN=vCb|!8jopE=p`i zm40xY?+_g?)}t1e<)6=$`i^V{E%WyBDzf42ie{%Zy&B@pN!TD6gXOejY82JKXK9h8 zH<&OQzgB`E`b*g+RW{|S{JP&j?(V-$Zhp3lx+}W5DS^tr8))5=ZN29m)sGiOf7d_h zri0t`hn(Ad1e__N1}3kTI}z=EWfk-`j1ZUq{_QwWkTj0&{G>ZuL$@_5K0;vZ`c2?Z zv?8^LdaWa&-h>cAwumKX^HQt391Jc0!-uM*1vhkV&;AEm8-HK$2I^U%+8OF&p$zM= z5oK;+FlHFm!><A+`8ec60ob!eYg{;BdVz$p65qZkw+|JP4M~gRV<<d!z|W2)96L5s zPz?I+nTvf^aw0#^QT5mPskLgw5hE8C%oS<ldUrggYF3JiO?@wZ#%2Upl91<3>65d1 zXg+Rhm^q-L1U*t77KbjWDB5qUKWDty?8sy^%yx<8zvVJr4I^bj`otWf{(G9g{~ov0 zrFLw-yTZ)!pjYnr>34sgb%=6ekm^#dUO_rqcqwEfohjSN-ygbgvKTUkESE94RfvJh zRv4;0aTAW`E&6Eo3GJhBAL=&$b;i#51b$HGOgC3IU;c&djgd;Bv-H4ZBz$DF9ryki z2c=D3$OG0~ULc3Qyl8SuF*@oPHuEL11wb%32fMG1bIkF$*$d(3f#wMFHCu%9V|*IF z11izDEp;{>(zvGW^Mw<q{){sBdb75(jYWfrC?$<@OP9Q$38iJ8MDsqP5kCc$X#eCc zPQH7hnx6af*%=|;IK0-l`R(S{mC{b(k>?5~FphNIV2D^eNNx#xh+`~i!z*JfmF+zN ztdY3nYe*mOjt)B^^cmX==-J-bzuhTkZ6!HdV6fM4ID8vIw7n?>SPo4x5iaf+s<Z7} zx0Lx6Tsib+v^~>CViB9tJUvST3*6#Y5wRd{C^x7KQ70(n+L?3J%xHnx4z5QF&goTf zAi%iO_jumk?DV0F%5S`628*~&9O_}!mX~XVZ&n{ZDy>w!U0ofuwDJ%+Zj}o2*ldk! zFuZtxgFp`^RBVU|=WDX3f$+^9Xe~>_o1r2SIDg#XYB3fAU8f!XC}p*2FB%-)E1>l% zQ1i|o#Snc_pS+R<sb6jl-=tzhhZl@2dlc^@Sv<p}>?8xS&q#~lg0Q9kDp_#8`wx77 zG&vogx~?5o?8)3xZ?y&ptV$-}hTatuA;r7JNPO4wqg{%-q6LiAOEv1ZJ^5mX?M1Rt zu&Cew<S{@0VHabw45_>#{AR<91m<hiNu&tLaB>GGRSMaz8QjR3WSV@HdGf2p5Qoxk ziOKvQcc9{~f7jEZPsoRyt8+u7G%^jRNNv-tKP2w>E>1+Y?rROYQ`FI8cuTGJ>3!8H z9i-6cW8GjsrE}8W#nC-Y35N+1=mF*66D2t^SP%){yG}(Q`Y6o9QvH|jLxsBQ!oK|B z_`RfKzmaSK<lo6hE&?Q{`=k4!;ll&)!)xK3KWPT<PV+kVfhml;M&M-Zz8Q^$PnwmJ zWKHKi5SdqC|7P~#Qgr4_o;+37DE=Jme-%QezXmXN&;xi}ZmxJQb=uH&z45QKn$Lb> zSQ$IQCYK6Ltv7!tMVrxH9jCwfmsP+fbORhgrl3H<=onf*ih|?5P@&C!&bVr*Rdrl2 z0Naa%2sv8J!~9VrKW7wles60SHXQlsK0pvHql#3pW}p6IeEFt2r#qBAi4Ye?_er`F zQynYX$uuo^FMe$tHfPlM9cz#}_O5{g2I<eMPZy40D{BXZSS7p@wBow2x4GGzx-P4; zX`bf?n2Ul(y$hyEi9de`(ScE^-nyuL*C3bb!0;J~;M23aT;2N`JW`v7jD++7iCY}t z!3SabyP1?1=J);+sDZMcn%}F~X)!{iTefwV6cljqX5*SX#K3Rw43~%p2BKhs1Cu&Y z^KlC?v2-wTfY>1E^wgR6&9^B5?PTD=)39ZZ|KGIhwx!to(U9<YFrqZLe(FB?Evo>% zsR~qK@j395d2o#5WhgOD-#X<N67_E-;B$u0v`2{F;wva;aNv;o6ON??*^ld$FWUZr zOdr6(sgp+WrXsH)qK_fa75`~Sbvx6%h$ac$fgYA>UMy-#I2>H;ls3{G#fRr=`qBH; z9f}eDyRwIW1a$?IB5^F1??v|}h*Oj_pKpHn?Dq6;`Lqe7*(5tU2k7k5X|p@)!M`yI zt&fVGhqF&>+OL}MnJ7`YCR>%<l`$UPHx6o@eaUyzee3CZuM%u_x;>nPK7&h%JF*lW z1n+CK6Hlhr%nBGcgadcDuDWQv7o9MsA)scwd!y)8$DQZE*UzTS4l7|u_D1iagBe{e zt2|JI<Z4E3_0Q>LBH5JrwZU1OKU;AjO7$S=?UU+6ZNaSr#d9moT`3?9nU+^sb;@#E zj;kCiC|}$&kL9|U-6mr#Cpt7?FBDwXKGNlZB?Z!jw3XMmakS!-ixuHaO-<KK5*V`t zUwSoiLbcSuXFv;d@$qwsOnq}Ylsn;P-8lO*_nrm=jF!{*ic@hnGFRIT8mfMCo}%I> zICR%OEGSX8{=_H7X@4jEX6eCZTi<M$FaEM;GdR9J^^17=2H8Hl28wl{H$#I%@T(#m z19&1fR{RK+x0Rg3r-V^#s!pqzLBk!JO1kn_{=~h}*9vm2DZodH|8W7PjTr*?xN}($ zDla}hfVXbT3kSY9bh?!S&hDr}drnTOs<y7i|HPZQ?m{qkuAhd_tkvO2%YOMsidkHP z-1L#<%uC){=K`+>t0&UVk*M;h+4c}6`NQg4WVbXGb%s|iWn~s}4<lgC+Bnv$PcQTt z`?rr8cq}*%=|29ur1rTSCYOc5y)0om3Nnr0H^!9Wm*mem^$%!LWX~MWrY-$+u&k@@ zzh;CVCZ?NGFm$mbkb^e;&d}tPtoFDaf`N`3==Wo!`kDPsU<f=cAmX^GkIm;-y_sgj zrNsU9rqm(RHW9*DG+@gUqE`(73=a=O<&v>1?sYm;(pJuXRz^Pl^M;r4ctdUC-(qDc zULkKkhv*-!Fe}ADk$2QS$v}RN6Hs#sH;$}06_)j&=kpl|T(G0hw)%DI$7?<gRgwt` zlj<V2?C>x-1!#m7f8@8U!TD1$jm(hHo)jF7yFz-_fHnvajvsdC+m$_wQHPyDMZN;z zCZCrrj{GTad%teHCqU+-3e;gqeLQPWrnNM0LlLgt>0x7h?oG5Hp(k}VVoB!6_)16a z5ZS|${Zw6!f{%~SCn_qdsaeqDmXc<U;?|`f-*95<mkN6c!!Wc8Qs0cK3sNIS`b@71 zjhJdv(n6>Y)c|QUasdH^+#PQ&&_m7AKxe@xATpaAYSk-|B222;`>}<nGhn&PQtK|l zpmrVx=f?Y??6$+J6J<jOJ;qP)e+Csov9Ym^4;KddnWF7HsAQ?7kOB+ROn&rH@apR` zTfryv6ORr0nU*n`$WM(BqWL1ztZS8R1?MUEGbUH1NryGuyhj(82c9pZR<E}D5}aD) z?zYB>rkxXhjW955IE;ZoiHR9}P#e*Sv6!=im*mChnV{^H>8$BEaw#A^E;bqyWkdUB z`tL0F_w+Rz#j2Xu*1-<0sb&b4DXAqHPaTEiU_iA5?)KvlJM{8+@LzS3T>7_9(4+6= zZp3S`EXfa#Nq0yZ_XU6#ElUV%vtkD&WD{k4rEQytYaGIy{V;6HXhRs8rre0uCOa;` zvBj)7Pc>~xeqKvv`#d%6&syX<WkfV22s9W&gw@pCGu1RPM5;pn2J|Im>A@GXF08yG z*!J}=?ER5HX+R-_yxGOA6!Wu~k6iBoJFj#x_w|zAv^YhOwu{SRy0RZOK5<N`&gLQ` zOA(>&uXhyiY?2@sb8x8yuw-ezw)q6|Qpr&GY?3H_L#DJgAMG<@HU`ZvZ+5$skA(lZ ze0*@U?D2X^I!2zhM`aZ!dq{GHa~`GmV4VZ|L)w0qTj^gU+Gx!*@1IZ`kX#vgkpwfY z^<ZhT$u+lKP;P?pL<S~&>>+28gqSAxcgZTF*bbYH;UPAOVvcLRcv32KX*gYZT7)zd z(2zz&6Z?$-+(PRmB5bJ^V+Z7-9g0g=$CXz%FLAap1SV0~1?Hz!$7Lj>He!TdQE64F zQ3gdHmcPP|(S&`C#*JyiU$~eL&P^)w_tcfq<`<Zdk>Ze3nZU{s6zmKFB43D=D1RT- zC;CbLz6A;)*2qP^3^0^5VGuGd#eG~+(yvMS>t>h<I`(Z6+JVtE@}<F>yuPeR!Zz2< zt!AV{z(E3oE6a(ZG{eAPIt#fkgerk-z+NcV0T?u#<A<O+1)xLP(;3eX?C+?BX@|_P ze~RKFLuf#gYFWG?r<tFswGE=M$*pQzdB9P?tON{_qS8c@>k!CA*V$G1f!U&C0dX@f ze-?HwW4PL9wf?Uf2RG1w6ilzLuYVRcaA5Ax=XN-(ZoWAgLOW*Z`OOCZYNP$M4q=Y+ z=-0l9w9dVPdD5GWtuFtv!#~*UGLX6;-3f1SzwGr5-Pz;i0(HE#o4(Glz#JWI-;fMc zfWNAPEAg(-ZYM0=Lqx!c+uRdYNdP@+4a%Znm0Fk+biP$o))6@)SMP`rX7$D6j(}`$ zvn>%b*`o>OjN{<;AkV;Ya5f97v49`$_6*FQ*Uv~nf*+!Q!bS^yDAK**%s&xA`gn8& z4~lMBRGdCB^bu@Jktb3F6ZU(iag~#-xHBNh@#BjU5G*;T;eBK)W+g%tzHZx>O9q7J zjt5jOe=7jN_Hfv5w1wr<-5uw;%~vv#Ou!Aol@V~mY9!4t;K3E$A$>E@j@N|O;*LFR z5GtVlhM3X5*y@Ly)4qsz2aHKE^pWbSW|Rrmn-&}McRxQ7+B>?C@^t_C_24(Q|7o-T zDHO_kk%@_C?_@A9t~*LctfKFDUL9|Fn2RdrZSkx2&?b5KYT3&o>Kr5&rCYnF_gos- zE}OKJNIJ!=N%nCU$EUhNarR-w$xRZG4Xsz{?<I3u42^$mIQE`G*{!`B+G(4+CaZWK zzt)=4toLVl93;#znpdo%4={7H!7S~fem4YBQMY&i4F+V?24x^j|4Hcmzi_TDQY7>p zebfxU^+g%viojEN7e9!-)xA8dF3H2-W^Av`pTGMr$4EwR&{-d<*Yeg66Ehx>yq7n6 z#<pnSmr}KD9gt6_qbB8dfAydJOpw5xDICgEHnJ{oMZC-R!26?x;)fdg7v#6oSK^;~ zM)cJX7TO$_XoFz>S4djOX7`2pnphC67ak9CeE9l<hWQZw6eY}GJw!oG&7(TBue{(7 z*G|6?U8lQ2n;{CA6@?Nb13Al3jY;Q)X3u)S@bs9<4Xw54$1B(~G|U&pT7Qy?vZ~=@ zJu(OufUTgqqDo-7;`fieCsP33I3ekJfaB+7lR~9Vj&4!E4St^--OB|XooWH7MWixI zlBwl5JglDt*Ynn&S;$uNw0YK>RjQm)>UX8bW`;92L~#%zN0S-sq|;hxFM4U|feSK7 zoU{hcSS-_NyJ#{F6F!t~vKv0qG+dWomL41kpOm1(f*($#-3rOxO~s5($){Sor8*G5 z{A3$7`Mi>d<t~ovhQQ@-PEPS>`Gzx;LWgY5j;Eg#NgVBh!aF<s_dvZkuQ@{ii4QG) zpwXgPtIqc8!&Y|_u*Y8k7|-f2EUwXjV0R?K=XXPFWh)@XzDCq0=q6g(e;ee#B;=^< z&i-{sBo)_%(UFrd6Vte;{&g284?SMJQgPb0BshsnSNZVGd?fUFh$7<aOB0t}ga0Qn zdSr{8s!R#*eB&>=Sy<k|!C~J+eQ`r2kmf6tjS{Kd>Y0L$j*j?51tkp@Js(GD(<Z?} zUN>-&xRIuZD^d5I<ex^`&<_g3h8jw>RFcO5Ys^XOuOJ3F`^X@~tvwSSsL}cfET;Rm zad^PRRcGt8*`k5_(EG}Nyo>)39WFD)<=c@&99^zjf`L)dlYS{Q^j|{9u1t!=d{aS6 z#TX+5`L7>ak9EE|&KvsMcWvevBZa__?mtF2lkYEy7!Yp9-owUSyw>zz;6qRt^$U`M zD{U6k#2Jw3am&Fbb>%9{xc?Cf^#Y8vakVsyem!-lwQ}g=2NRATs5NtGz>A45;U3Dm z9Kopr4aqS!?stc#N)aUUhzPeI-#q4oXyrVEdy?;NO;Fh@lcK(Q*&ckCFsaVNonkRQ z5O~I)h9zff+`?sq8oUGy1hQp$$P?~X48UWGI5u&WS>{AZ{ED_7udnIbPqH0vTY5So z4035$H>=JP1o{5;FRp)b<3K<K)jy&X5h3qgWnbw**ot0`1uykgJ_HnneMJ(%Gag}1 z3%+T=fqy%BB`fH-4$iwUpXaHo&`4tys~bA3(PEU-4JrzDe8%(cJhcwf(-H_QWnf~N znj8fq)e{pCYduv`Hu)@`QOtrSc;8o#<k<g~%QRN1GBeVZ<%+HFEUFxp8<liyigE)& zf6n^+y=`xK<lT7B=s0Ac)un>_Zz;M9fx41FZ`lXz4YRK)_RouPh8g~MO|V2!Jr?9D zMm8yGUrBawjve68ML;lZV$LUSd7IItHK7EQ4JAl?YJ73TK8COf4GG=+xPm}ofXC+{ zNhFOZ&WSktZ`7hi6AE4K!3o?BT)_Cqn9K%|aXqjBbE%D75qz&!1$D|e>VhV`X3f>v ziTZk{58~}!LHq^pfxKVDiq9d`nnoouuTVl$Q%^)E>^#cTXfXZ3DG*Vos8_{_qllwr z>BHy#^Nlv2jp~bqbb@xrdr1cJVOd$v+euz1XJf;sWy9{f8|6*erqA)SKHfGB;Nvf2 zF`zE+Lx5tE!^Mjh&}YW})+N$Dz?LS20jjZ@pKIaa`{q#E)Q|S-ub#EdG0|z1x#umI zxo%Ic+oSw)U4aTo^|$wFAd4lVx_!+lQKP>2C`!~pJ-t(Uq>T2=Li3SJ4ZT#*t>sbf zE+{`!oMCU_ms>H^s$-n`P*zrlDHSSX8Y;;V=^GtYOlsiA8>cpWda2NvvP_%2$Sv0{ z)s{#4B;@;utYp95^E3#LLcx|Z9fC|CD>QgEcHX2|pp%!2-4|QY2cw&@Q5DTpXD2PU zqOqJb7djx_tAY+Hy==UJT^tF-I_)lyQ|<S!uRcKipus4czKHT6Nn|>ojvVPwU={qG zKYrJEGAI-+JKefXd6(&MFq2_t962!z^5#7byi^2Sos`5?yXt;}D6OR7=AWf4C*>># za_~E*Dq{SmO#CkV>j8i#VHNa&adlU{SgjoYw92W*(2GFgPr3BkY}tU<Y59=KKaozn zCf1zs4&T~zq}@D?%MFWX@VAIAy($$=ZmmU>3eB+c^1MPA#^V(?MjuIm0$eJJ1DNr_ z{AB{Ax^8$ZmZ|K(Rw+el`>ocH!Cjb=X8WDdJ)`Z$Wh3Z?LdQUV`ykb52<l$X&UmDg zowI}L&=Ct}czKi+Md-X?01QF1ovv#{pD^F=x84Oc7O?{$OJ5#6y01?GaAWmc=C5!g zNjv;%%bv2Di+lncKJrMlzkj+mC>O2p2BT=>&e#-fX|qcX^x9}Ru~FnTvj}|0w7NqJ zHdaQeRi!DslbP?XTNpYUbwLfLYm$T;GPXsvTKKpAoQSiA8F~tXrd>fT@^aPx-&nu5 z(!fbfhU;Sh|0nqt!`VdwyUd^PG+C18XyHt4>tS-Hxq|V;%lm?zbAup=MyIyZl)gyY zLg}N9_}9nXjO9WpA6xF=Up?{hjZ)0qW1ZDD8Wp(K(BaG=rY!|wb}LkGEQmCWcT-0K zNlZMC>fEqUBVIEmT|53Cc4J46b!$t~YmLs%ApXVf;d!d#d!n+FlY2P6ktY^td!u=) zmo?xi6*%bmAS*gFKdkI{dCLm@%EOP_WN%nTPh;AEgvS%v_h28^&S<DpSZ%phiw+An zo+QHvSYi?7phICWktGTvgib~^2?0?oh9^j^*eySh?txM~*6K4S$eSq|Z28i+?u<_i zmz?2#^?3nqruP}6@)18w?(5T}|1E7+alK^pOWK)cpK46qGH4r7^syIOiR_+ouAfh9 zc4qr?pk{-u)N18}Hr*SD9G_}~vQD%@2wt4egWF{9K6_cc7vpsK1L7H5*8++_86+u_ zGr^><>gGio-D=o#Uw6QNA!?e*W+#c@iY4|6auZhx;i)p4c;ZCnTWytc_nkr0Ix%Lq z9&#Jx(Xp%?HS9hZ$<K%!$>l2J)aBj>g&tA)e^$FR!L7c&Zceeo-8#EPsTVtEra`xZ zFpY$x?Jh^L2*-p%J@d56<Z@zSd2Kq@v>3p~@;t5N6h8|X{7^l5;vX;yVJZJ&7U7Ce zWFTYpwbd&C9k(Ajlq`sXqxrN7eY0Ya%%4CI3Y(6K#tdyuhBQ!yhB(X)2KIijN#HdA zhYrr?r@l%W7^dx!X9xwcsN7k*7q6Mo?X^4^>Pyn>fu6b;)f)MesR5|P5132gt;W)s z%_-nCOs01$Ikfd#Y!N~Jvkps$ATV2M<o-uYTC}9cv5mCaG)_GTs&E-w_5I9LL7fEr zz37HkRCt06TYeJ8^@|^gY9uBHD>+vpC}}}A*;Gzfd?}e$Z9ql;6pLM}I!ml@)ZuS= zctWwaiY9;ns@KH+3SJxbyuYKjCnn2d;tF`J`qEsdv$QR7H!rUYxG{yHS_a%Pbt@zK zUAnOLcsgeq=?4;e{?o+DR5w`m+$l=kmI_paNY)`7A>WFA$|Lc~U+ohQXBHyQv3NA2 zp&LcmM?AVZkDWmYd2&q1my$NmjH)7Ci43eFXhjG@ro;ACTL~0J*AAI+>-pMK9BUtm zH`hhh@C5R>SnqWczAuJn<L<O0L%A!rJ8Y}wzC<~_*}C`qK-9%mREP>g5aXg8vLiwH zA-GW}rLB-(-dvnisYh;@hgyY$$rTCQSPhy0X{{1kv8Sz?A8Bfy+_Y<i(-^|z0x|R0 zriKJu2UlzH3#SXJ8RO>w9eRuQEcyW{3zXl=hZML@veCDh@~{fZ8D9<S=aPSx%jl*+ z!5MlbWrtwho#SI9*<sH0wABBmu9rbe&plM5fkY#rp{g$>kF!2GyNk<Rf#ua#SG|5h zUiy27CyJG9(XaK&?YZ4*ilsIiV{~KKjg@F7ID0#^7zXg$FJ~ZLWhMO?r@co6Yh6kD zFsSqB&c#MM)S-&C^TlfeMW-?sXK%UtUw2@#glZDq_?+9sN*G80(`>HaV{CnVrPAtN z8uJPXpYE~u#FwXm;ydhGvDe#2n(hTX>+rt&saRUwJ|1xxNWP>vUAV^-N|=g!6vE|B zGb|14g+by(+V`uhOJBr*Yy5!!&}FZ?ljutu3;$oIW(`qxApm4-o@Qq{=R)wC>41P! zl2`bpWd#D-w(_q^6~s?qm_{|s{DHwicx!sqQ6fzP8?KH8!gh`->|94`4+@3wi@et| zI>j=hG?3A+IX^T#_VPuwTQb15o<tcDpny(F{ZkVz_R^`wA~%@A(cL}#sbioow?o@4 ztUlAk-xV~9!n)x@=w@KXld-eYAK|$d!+W(q`XO_(?T5$PJ&Es0l*8`JE-{&?XP~Td z&TfU#8v|f_qx*@B9BIAP<>Ld{`tVlwE&ArmYK98H|Ctr)2X~Cr{oH6IZxPXYR8gZg z)2SLd#Li~M!{`K=k}v&>(on$Pb)C_TPJ!fRumjCGQ%pJlK`BSHw6xF!ScpMpj*%Ec zSir4~gM^mt<0G={t=WfK`iVmqCVY80sJ>@fob<j=fx!Ew2SHOAz7V<m4>l^Yvc4>m zMkQ==K9foc^%N^!wY2g01H;HRBs;*sAVICoZ7EkdSwUdL^E!zrzum*Utlx1C7t=H> z!3N1nm1@UCve^1Wh!xnI)>wLaswnoLuLTHa>sM5TZ&AQB{uZdXR%6TtheJ?LDe1s> z5~M;!eF%F8DZF2I`=#|>m9*+u4KgEcxX4)s7qoDTDFGGer2Zcg=8kUuXUVwUl>&^@ zm*fY3>g;1sU;(eG9Z$2T0VWhnLwAIu_sG^GR0;}3Xknh7BFB*&B{J7FZk+4<S8}9$ z-4~Su%jw7^I@BK#ca?1PX0D+bHb0-i_kP6bdmUvoVC@uC&*b>t3+wxqtPMbVc_e$s zf(ybo^2IXO-K}|luDR}pMq3AecYL>exW*8DWAC~aef60b!+wC~x9JNB_AmSYTdpl< zU`mx&bQ@1Mj3^o+$AqOVDM_0K<B)6bUi1MJG?_kO$8+y3E*nOuVJ9aUYdsdR`XNJ6 zOqSY)@cZ3e7*H+`Iw{;lEI4yrNJeuJit7gS)x3?><d>&--k;H<P&jt!7!Qrf`_X^t z#mx8O37uJ~(-?d8(EN5FI*8J+LaY#a;C#Z)Tufrf+v$>jBMrBsXEn<Sb^p-Pm;N9D zrFlMdqS0BD0@ZrW=tBvTgo<osY!G(%<(`KTeuKg5-2v}V#Njz@x&(Tmo+IeCjt-0& zyc&;NLlr7i3)Bx*1<;Ap0h)#;j*OaRT99FIGP+vn+ih^0QQVj(wX1yUBlY7*iUX?A zboVNg=$}wkjcHKibPLK;9|tY*Rn$!C^iC=bv>b6-%VksvWQ|J`RkdX#0mXW`<M)~d z;-3+4VZ!KY^|hetueKLfq+72aUrKl#&HSSe2H_1ocUV~PP$v#KU*_K-%AT*u+Kx_j z1J~E={*M>!kBc?_xY#{=M!w-5n_h@UuYXg;;X2+i-l1_P$41xC`6W;dh0O19x>Ot2 zu*(CZyqX*1%@itlF~jV?+Casj6N@CGoQ%#WX?EOuBxradmTfTmUO(U~5~44c)Ido` zuR3*TxRTa{LS(mqNN|LIM1)U)f}@d(Lv6p_20b{cIBi5`YwY9JVNngJLVhm<P+H;8 z;0g@>(UIr#J~F9jN8I~mr-ust(AhCuGxSj91ni;ZW`<1C6=8<;N*^zUpt)+{qt276 zm)gM7GYgA~gN<ADw})ar$h8K;h{IsQ=cVBrr<~WRGe!>XxXOK)KzRT??qxNhNgL*3 z*UGJeLom~M$@e+kHIXdbfyBt2CCGYw^mu!!;D0oTpW}%=nnTs3<fi9)Cmt)hpDX_V z;8>EXR<D<u<2Ssf(NLhMF!QtFZ+*F#27ix66+vTyeRNgz&e(bSsN(zPeQOxELQ|nK z)Pt;u*G_@ihD5SVFRrd^m2gM12<Vc|8`uNBZB8UPO=#0#wLzx0K@!)g*20u9Zq&=e zfuG6|?jJp&ha)H{;k_R1mwkL;tPunM@bS3VvBbE57D_{LO-*PS47dW+blsz*5yp`U z_Z7s6_I7*SD%P5IJZx_5EmeJaY^?D^lSqO#F417}Al8m+X}Y4TYg!Dqm4M<bRc39V zW|f<Yh<(2nv28ITAfJvcV>0@K3ZF>p?79ov)b!N)Tc;D0r~9&4qt|8e^6c<}kOD;} z1VvqlZoX`tg4QAH@_e1I*wAz4>FyMJ;2c(>EZUzqEz-ZTLYOTq*k51W(>T>(dCMOg z7w33;NUx-Hv3s{9+;Q{QZoR_|f0)++CQQ6Fq^G>ETyN(!z>`clhq+Flq4twH?wo*B zFiMPMJPOqHaJ4iUKGtDEj2y=_c77f^j?@o<9#;f%M^BFAak1%SV}MsQ+(vM}@A8ap zmn6i`e>j7#`-0-L4p0n}@l?`J{~q=OR8=4GSp`H93rxbyw=H8tAM|nUify+$UR21= z&RH6AApz*v*-KIH+btDW%Seq^b8TeaYB|7>`rjZ^S;Xs0FaWheBe^Ea06}TLDe9Fr z<z^y-0h+Mj2S@Fwv1nF~!i4HO7P&l3c%5GQm!Q0coi^uk`}*qIN(P*wp2QMmN65Va zT^Spryzlez2j884%XMnpA`iP!k1MY^dyU%N-w&LBtnn&eH(z#y)c78xLOY>4j#SIL zM?l1X1#KHz?4a2r$o`L_o4xpNdjSJb14z;LeMzVeEnq0M`(?cJ6h-vuN-{GmXKxuA zuYk$Uf`<=X)bMCDrHqs!JNkZYO2YoSazOk!j&1w1*<1332Q+5F&~K8jTmrT)$s#c^ z(&==`j+ks~X2O5sF>C9|Zry7Kexwb$)Al_Lc*DaxI*M1@IoT_r2?RH26?5=0R%Cdy zFp(Cxn8NnF{|k5*Eq#K6t~s5&y+6{H@H+W=<JScIb6fB5`T*^(d?F%4z9JEHD0DC> zZZYYEJqp@EI*30inLg%Zx6>xIcsYOAdRcmpL=+9kl@6mS$jr&5l3+%DxabVl<?oMV zWWr~J&ILtlLYh_MSLQzwa1Ff<xC7nXwpRu@h5TO#pl1Tb=@On<h)PZ#q2VTzr&VmR zD#zr>X6T&=CO@TL;dMfR@3=fDkV{H({~Lb1O$|<bn=(9dFr8)K%yd>#n?aL~ehZ5H zRP}j7jEy2Ah*$k1e*mQIX_lCl*Pa+A(146LR@u@2eqRkXkUk`se#pKpU&Dydwp|?{ z)~IjlE`+EGGzB6Tsa~q(HyO9;31;Yl?OHU?7j|6f(?Bj+u2n(hdM2%UCL%dzUUg#P z@PMJ~S@x7D_>1+f7%%>QUy=Ud9N%bGzY|m)CcG9m??|$)2U7nNd859);W($gV*;|5 z*SIT(?t8b)tgM}v7nlGjN`z3;@htGwU@uWwWGL?aO}OLfAFnFo4<jM};0V$8ffzNG zDb`y3D*aQSF=tfGr5}4nLFO`DB#gBtZ2k;FI`CV)a#Vkk8ccX{4W0Z(fvh?Q%Q&Hu z!v>EIVwkp(7j8}0Gs@rczRJv<B7D&ZeCX^BJ$6wZMm?9Wm)#KugV<_Ip092jJf)z< z%h6F}>-lGB(`wbXzA6Ax=_L?hn_d}SsHL3>CM7_<Z{Ex%9J+yJNNUIn6X86oHjF?% zbrcnz<23HS@c9(8WtuVhbd%qyd%yySkALyIN?|AJ2VM$iG+L$Tj=bk5<1Et1w&plr z3&qUywibV{R_F!m<k7*|XKfB_2$p!>jlu$Y=Aml1vlUJawR}TOK7qENf+q!7RWzDG zi<R`;lG!ryzxhF0J32OOpNx&0zTPLGT?u29j0Pen0BL~qfkbT#7U#RBPSE*jzL&?2 zq}}xwaG)62Gt&vRwSAi>d!u-pet$NCBJ?bARl&(J_VIp|pd|Be913KMLQa1jNV}Cq zA)rB9<RS|dg|z87mE|@eRy6$VN*jG9*4#ok#<KCNC~C2=?6vGk@-Y}`)$PY)B&ce- z1zHBk`%m6xyM04h{dS^C@#Klg$aWmw4((pv&pN+V+OFtQx7=@9e)sB{Z@(<!oIi0z zcVFcbHcd4^P_1H7c(+pF?Hj~+b1y5xmM9Gqi$Qr)x#;7{Wm({w=_6<pD05GUhYsv+ zracYwp9SppC=!XYx3WsU^GOb@sK5V#Wb$D-?QXVQZtxbqN}z1CIPJ+~^7X%UIryD^ zISqnbN)pJBhi-=*We*EK=<~$CyaBteUzV?2@KS&Nj|(sa*+N1I?llhVJSQ1&0$~~p zf!QKIAyISQ0o<8bG4e`KYrov=Jo_Vz3sj>X@~Ov{@AkE|rQ^ZL<H9C~p7NDyj1hi5 zox~7@+j_`LlBn1iLKJ=3nb>>lf?V|bJ#0kOq3y;A-)l7(%<=6Rv<_48>wUZkok-gw zDwsu5LrU@`i{0yS({HJ^dE^-Q4V-h~whI6~!xE1qe%U7k%3+4;uX+9Waq)IGT(a!3 zgwgDGddE?a)azuij(P4$b_NnH0;v&Z!An=3lA0_94%^4uRVdv3(=1-xZY6!D9e!Nm z%^B`p;+C_BHF)2LGlJYSlrI0hvT<8TC-N@?O}hkDu9oP|uttguCj3dv%|N!oea*>6 zUihkq@a316nB2GzfJ=W`L6a-P?&|F60QUZL<Lt;Awd@J*p&Gx3#7W)#>{Ltprs1_q zkeky2FCi-#AZ+(>Dr2P3<&t)o_KE?epDw81cfctc+-myyGfqF<K<C3I>N2&X0Y3Dj zE0w@!Be4xja}iO-%9b|ksi^Hf9%Fvd?vC*2JlY_Lk!g9p8TY(kG#Y$`{%RD-u>G0H z@cF{yO41?VqZn7Lax7LDMIoChn*@;rK0bCXj{82DK9UMF#2N7S&o4)mzg~`vxCL=F z{0xf>)>TXUe5mluIHkq8k)}8U<oq|L4XU!EtR`GUlJa2@Wd3lCdbr3(#!0(IZ;x@X zftuV4o@aH<=HNhp3X3-8uuQCW^w5WYB30sY3Cvy9r@`#u&PAEM`>}fj-Ec)esm!EQ zqv>L?&?wK)V%dq|kou7J_z;?f%_2B7%H5J|a5c)!lQu?o{VDevE$Kz9Pp@Q;2k!Av zzc+saOnC34bY{m+6)_{y7yZ<y;V&~U>OpF>!&VqbwY^qE=5`;LQAhsyjhCNX%F+-R zV}aUeff|xXNhbsBgFYJ@5=@{#i|f`$RXZ*=f>2D;z~p37aFN<Q$sGH72i4`xa+-)b zoXx6@<eC<CrC7r6f**;hdc%1Haf@@O>kCdDA=a50f9<`;_+NHCx})%+Be*?`Bcf{v zp03&Y?96-Bx@g(>F^2$PIb(x!C^t#Qp(r9ezcktA@xHk`265~E&~%kiQT|OER$5}| zlx~pj?pTzT?(UXukZu-{E|(7Jl14hEq`Rc0`@R3qIj>*%>e;z}GjqkvTv1|TVyabW zUmUwnk_@zN7w)8;!<+-LbCi*>M1dQ_QWsd0qLCbN=f*)hG*Q5oi}m&hdu`)iSY59j z;Bct~Tm`0X2U!`%8E(VU0>b@0lHfiAZx|X8i=<><jdzR3>zjx;MmmE@`J%ZAyiEaq zYKU!c^`{DN;1p<m{__AbdG|9`CljfDyZ<g43ZvWw3W7xaGy)aU3!$Dw;(+_V%ELH8 zb4(&`MtPWe$WfaM8FHiE`?mzy?%}3U94NKT?Xi7*(s2Vc;ilmi-UvN(WP>4RKBb!F zrSr=+P1?1dhw<Js(jPVLF}$l|)yoj}1U!+}qOfeKFSht!_)0#xaMzUmRGhf_48@_i zjQ*Tko9orhy${!OGr^{%<*Um@d3>WWsChlsWD1=pMw3HDESjA{xoSuR!FX_&3ce}~ z67>O?UfO$kIdF)U9nJe{vl$*Uj2dB^Gx9fD#~gEhh#DCUO2UQ@x&M0PJ|}pn>`e7% z-rJpu>wnk9trK%lNvJyWXHluZvmE_yrbwO@CdKY?BR|5bv)k1m@y?sZn$?eRPPgL* zQzV3GnMTeOuRrlG-?vK?6X3a7wQu<n1~JifKCY&_tcPKl3!qT8_7irU)6LpD0t7K5 zhX1}Wd+)7M%WJ%IIB1FjeN%uO#T<#?t5%On$zLB5y^MakFP|GvHklpeE`F+`j%31G zIwRArc@<dR>X&Pt4=t}{qT>4GMj})Av3%Q?cH`Fjqi=`|!z3F#j+G}5nEg=(Kb!T@ z|6Kk>P=GKA(sLc);NWB?q8#@phRe=#$tisb1Sw@r5=eMEfF6F_#>PB{HnPiQH^=P1 z3{m)WAXh{b87VIyDAa#z)E?7UWRCt2P!W(%6>XZ&Px7&${T<J;Vda`TJM$cp-8GW` zWcM?aSUq18O;0fCH-gwl`cPgP5IAF|mH`d=E%(tu>1gju5Z4?s19zUbjH*)JWL|T^ z_QpTUZSrsO>>qw}O#A<!PD(wq(nqwq;@-udigs5v@{hDr9q9fNoV527YVhYvQZS3{ zJANi8pUgO<Dn_pZi3%Zf6RgIlRz=cJucD`%`tK>q!AP2eyAf3UzOE{TYM9i8q?N*j zDjrrxH&wj$)(Ra=jFXh|VN&mQf@F85nUj=pmZ_z?(18ziJjwdAHp+prEoe-ept-ED zYi0^gD()~gLN7^Vx;GhibdM<oAtQfB+-d-(l?vuqPkM%<m6EVSD<j5Z{0<UXAM>+^ zQ-|Nx!x+1)Oz0eV*c~<LjFf?(RQ;%{O=#{oa_!&d#0!?I2=nSZ3y6@AV`6S3AqUE7 zHyN@4gk!MhVUG?BDG-P(BmurHXTEh6;$M4~G&0hRVe@EddUH6>jB?wq#XU6`G-End zTxgTm8~0*Q>Zq9Rs?6ydtxiajEU*ua<PlM!;Q!>ci{<qm0NA&HJvU+J&p0IG^h+J& z<=05%@#I?kXM@5d?`Q2kw*;bww-W86Sjc6g<d=PaN3{VburRekg1iWc2TMqWa9Q}? z!^L3*H*Jac!<T~Ge9>Y*s8usCeR~YrlE7U^cvp;n?{UulP&s_CgdnRpM>HegY~ugu ziy;6FNgl=}&Pz}hlTM!Pqt>>=6@`g0HIBT<yE%ObWOc<3H<PnNfhgG^3Si2%&qOHT z#0_#r^u4+3Oq44!jnAe(kY4-hz0@pi9g|5iQxsUH3<raoMhi{s9z;b7qftHC%EL7N z)p*ts!$?L#Cn1a`pqMhj@MzF5mOH2XGh@zoI<wsc`Ur}Z9w4eVXm#U<Z=o^C7pDEQ z7qrF{9SnA}yRzXcS|BXNo^tx^(6tV4NxpVpeVeadoyo~Oetvoz1nxYN43k8O9$dd@ zSw%80zbr;x4;P53LP?Tn)s!k(=G1^6`LQdUqf7ubt=RhTH5J^j<VdS%Hl(6nc$_}A z(m;35R0a1jSpoHZOHP@VuIx@5+qa|qoySt>C{j!bLciAhut1Luj}+b@(bZ$i&C(|z zM@|b!63Hg59K5{?L>;$!b1nBKP4CV4n$X&LcTp*?9;0@-O9xl!_P1yhUe0>O0Q3g> zD5f3-9I)+4fCj4NR;Zd|09J9TFs?!|=Qf@#12pveM3RtrO`!dxHX@R&0SA{_5sijo zxm4#yPGci)p%`r>+SH0qc2ma(i4x7Qq<iX+9h*xT(&{mXWl8gYI<|uM4#M-0cW4kI zBF;};uFMU2rrbDEOenB(L&9rc{9s~zjL>cc{N=A7a&eQC;fb<Lh0RJ48g^8vC40@| z<fsZ=f(1w@F_ELf#I|gr1W2gk-XJhAF#1FgQnv)-MCfyoA!YnfFVo~&7{QTzm77dl zZY5Wy6WsrkFigajAuX5o`wq~XqErI^r2^P=dF@SGpWe9_<eVX#5<P5%FS$47n7S#Q zGeUm-fgnzh-!2#-N*=qVGOQI73jVXaD%-putF%B#H#o7zCUnwN7FCc;OO|GbD8<BR zqgnn5TJZ^GIjm$%vT<*3Cy!w+)m01{Ja@D316=bwQG9C{a@6i(fVJy}7?&X<qZnc# z(rd#r;6k)<U_+q>rbYoFm`1shg{dJMwZ^H#V&poaecQwA%n_acc*CXHVFb3usKY?( z?4&KLQnw>^FZNaW?~O>qC<)MHXsxc;^F;POFV#Dj0g@Cas+29o*Rcl2F@?gBIguGF z-Y<jtM`ITItVCCpeA9LNI8>*znh>LKn`Dnunez0BfO*!GG`;hK#c2?iGwQJ0b$gSj zM<(tCw|NLX{ES{7)jU?HZnGo@i`XxE`S<R(^|+`clsDPujIzyYZyNd;6ToCfVPAX4 zZj}-)4iHSe!x;}~(2=70sN|;Mw$)I?5~%u#Aa2~Jj0m**0}IqxkM^jNap=57cvYUH z3HnkUM#$y~`1&LklBXi}!JT0QD_Oj)9DX@tFQ;v%s|4Ne)HWgaZNgN}mZ0;$6*ao^ zt-9lEOQM_|bc&(Q{zqBfuS>;LW{RkT=B4xHdzWPcS?eC+%xPQ*DsUi?^I~L5#~?%8 ze7%aLmqye(b!J=%&ciTu{VGK&Nkin^GfUPx^|J7ked{?gLNe5SBC@=Vg99QzVL#xQ z%O-~eQFzi<`3+w&=0>5v*90Wvm|Fa&@*UGMW$Gc?|2ES`OcIbkvT94>Dj+KGS~9<d zmq6jNypd86qGx2N{Kr~ON%)iw&!mX?pk*@Tfa%`(&zEg}w{f!`O^!w5m%3e3Y@0h* zt+keh?E4Zre*~0W%303Kd*4n(j&>InrZxP0N147jNt~S>$3|YuIt9fEN2yf*El6B` z!fN^+$B&F?_>{0^2Go*{LM|SNy=lHL$o#Mpp+SMtC(Z(IF`twYT^Wpt3C2hO%S+Q1 zffczTz)1J%ZU|L_P3rrqO(iv!<xdLlvsEw(=C36KVvD~=Q_;ckMhlLA1i`w}M=d!b zCDEeo7pg6XmX1z5J2LS{8_Jb6B*_xxQ2Ne+&a>S)t}X-d{PaBr0ThRfjEsl|H~aLn zOA-IV=Zg?5e@dkRqM{bJ-I4D?grGQe+HF^@^n|Txi_<kEi3MKwBj6Ufq#<+KSnn@J zqJk-isQ|i*n_JwbB1IoZ|MVtR=;l=11`{wErdl??@jy5Gm$zZramD>LYlBx?)tN`N zN)uyxOlp`3OA@7Mv$}!mmm(<6gxn(5Zz&OmOaE{z#ksCmfV4E<8k|yb*%*+E$J0oU zem8931KG(`Ci5^|U!h{9`3VcWM5@cBl#b)vwhlJK+4zM6`trFrYkpXzi-8V7meBpH z&JIicl^=Izjvth0Ui?dFAEUuSt&OzNi<Y&SGA%cn+yq3Zq|e!qw2`Y&LJut}TsjJY zS}`e(Mn*Eü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 OxbCWHqbpRcp8gNjR4+9E literal 0 HcmV?d00001 diff --git a/resources/profiles/Meltingplot/Meltingplot MBL 133_cover.png b/resources/profiles/Meltingplot/Meltingplot MBL 133_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9865c0cbdfeb2ff710db7a101c63c763ff82b5 GIT binary patch literal 42858 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%0D=N*S|v_+f22i;kT z#s;*_Rt%CkSQ2&>!)Lr_&VC)$USDy(y(5W>kB>jZ8tV)hjBG~@I+T$&;)&f{(`Q|R zAr5}mP(wo%)ooyI`DqQck?`wZZ}^hyha+Re$GS%1C^<{~kap<VgD>Lc!RvT4_CcRg z;){6wH!?RG=GtJ!UzGLdYlLVtEFY!eona76cmP!}p%)Vw0W)~*B~eczLeG7MK~kA9 zuRGSdj66ovCuwujsw?}75C}HwJn&ItCbU=ymWJ%lE9r2E+O(FP$o32*(RO=aJjUpu zVPwX8>g!{3`~Z&tq~04uVRS1I+MIScvRB2t5v21reA8H3wUNZ(K^_(qO#GQ_My|Vv zdK5exHFsyz9S+(ux{Os8Ob!;)+GwM@0?;@)0a46|gzyaHa(J%M`0iYgjNymbs!9&} z+Fp!ENg8)8X=6m^M`G#koD>GYb-?RNzI~T$KRgD4^@xUt!E-|B<1neIr+Gb)EbNI8 zSb8Jk!|3wBK=qA){hWJEnd70dTG(?f^@?1UMUo7!1$jZKNQn%-SA5^B{4(^u-Xrg# zKxwi}{VHuSv9saPvA0RHF@~oBE7em$odou+iWLpVhvew<%>=q?c-Xm)$ux2n?6{V` z0A2Q=>69ao0J3vDkBhebMAy2h?Inqg)M_>{MkG?<5&%9xat5MssULsUTfS!?V0>(n zhFPqTOa0l!t!R+9)Jt#ry{o@P>gR2&?t)ouVQLSz9xLg@VqDQRr)PRq)*~L$(!rWS zh_FCic<KC8!zQ?W$H3faGlRyF@!~jq|4htA^mZG$iyA6chr<@dj^Zc;_k<R4He&OQ zS?0dt*twa|Lv19uJ9GuvLze6)I#|9Y7Z)7m-FaumFE}<@iJYMQTKyLin#R&mqvNPE zZ|?VFySb)GOZFqC^9r`^HNO>w$%3H>I$gGy&!XAb{N~3!)E$xgi;I7?PK5fE)>QY) zq8KBZO3((Q!Nvb%>kRV?5U5g`$HiwvjQ;YzQ?yf#8gnOrIOUgV&!+-HBS&g5=9zY| z_-$3V$4{$KXU|Y7DvXp58f<5uSA(^Ryx6$V@NI+K(3>qAGBo7gXHVq3FKf%fP0fY1 z%95l>3*z%GW=9+oevez&%^$1=yT^MA=ZwV{Y$<<Qgkq4uf6CpJBiIM1v*@}rDYXaB z#tg@}%sV~!Cy~B(kqoN5H8@DiUF3D^4u}K2_2#iE4fV<`Sd#jc#Ju~wm@bEoGas&I z$a7APE<3JSuN)(rMh0!(iZWe_Ct-bdd^d{bGMtkD6(R^v){H01L_Re}si>9p9p^Pc zN5Q)`jno@604?IyDF1O}#{~i+;pl661T!bZU*lWah*X7X!NtPHTH)Irs4)h~;t4uI z)ySD=(Jmj~NtsC)Cxpgoke0%02Q=#v$ixCXc#*VtR=5~>Bo<DtzAQ^Nrn`CTS($>s zi5i1$nhj~uveFG{Y0etM&Zq#jfE0_Op)w4K3RzE%JEQq!vW<MUJ~M~C1*cBN!;fBM zwP|^;^n%0Ahz9Qg7wO#XIQck8<Z5U$=C(8D8JN_eQ_Yd|6oI>pAueh6JJa590Uks^ za?~|}IX^#nEo8GY<J5gFG^=z2cIlXYUyL@PeoT->rwK7DJO6^Rg`3vGo7cLADIXyP zFDhQuPVPljS=v~HgM~;t6rq-UyBBv#Wo2J?Bs9#ea>q#~)kv=2N*W7tCb3mWi5G;N z3+VViJ2i-3Vjkz9j}<*RNovM-wg72v;RV>LA)V^TT#lDIzl$DTfe#RwWs9RKC8p#` zn*_UwzbJi|GiOwN)~_DldFeO(D&FQNo%a0Q8H1M0Q9+OV2|eD`T}xsPjsyNxIlMHS zG1SDw=IvXkr{&&S<k62GGuNAz-ZOb|7}Y-PVEn{>TFZK4OaQQOe&TRx@JHZB*My3J z64Or7XMnGZdtJ;5Kx&df7a>+1i$RW0vBkUZ*%<D{luFU+e#}}cD_LRVd<Yj(+s|YQ zx~QkKrM#9MRyM*XIF0P|xNCp+tW;r>9dTj`EeDQ1l3V-z15N;%grMKRI5qym#PfaJ z3zh6Cgj8?e1ZNiWqcFW3g!hsR44u8xoM91CJ}Wxtct%aHND)o3hZ$5U>}e}Tr(V$3 zsDWnOG44E?9`rtbq-14Rv00E9aq~duR!L5JKj28*#Is#R-0<!d9YX28$=5TKBm=_0 zS@7?-*ls%KdRJlIdShgUcJwn<W+z`8t+yKGq_ROPydqF`kT2_fu8kr(D@8HHD|K@* z@k?<;<eSNewF;G<mUk)%@jOb;&+TgNb9a#f!sI=PO725SMW{n032Nb`kafQ}YN`aX z5eS7OMjvHC4rWVBc$Gq98~P^urt+UF#M6%3lo_ekEz%UWBTWriCo>~rA#-Yp*{I2s z7w@@~&?)|Sv%N8{O=m6_M}cHm8Uck5RqKb#PC8K`%fyDyWj1UtK2k>w(n_*nELFjV z$9aE(T^doMEfF`He!|M{8KUfOX;iDs@2L?;$mgb$a4>}KLrGS<)1$bLJFe*bZvOKp zE4qs1X3rnj3Id)r^**9j%ux@PjkiCYYY>W+NF(xI)?bHfHI&BbbU#yjp*=mQyFn?- zfHd7BFWq(jo`K1HWqc-Jt$T~n3}rNYw5he?WnfFgC8Nu3BL#|uY8}rjaw+_h5=N0p z>q_LDex)DsA^gOJe!3#<FUlz0mDSgFp)RCE*WK`a{FQHn_-0@0+Ek@ZrE<atbmT9q zw`T6T#K8@GsTaFobdzf1l3-oSp-Pqj!)o08^USu@5vgRUS3Y=75!CG{P8FAObq_0+ zltweSl66gAtxS0Fd`q#_Cv8uzOqeHV$}OAUY8_u=Si{$HrgTD7o7@rUP|PAo#qwKv zAd#-r+BZ@H0~WN*F5<mhK0N2Wluow{P(6Jk&RJ{sFg7mxg~`CS!I7c<y^EutVJ>J_ zAPy5-$ISw+pO_IUQSDh^mQw45@J1JRnx(W)dHS%@Lg>Iq7Az^Gu1OQ?5|m0)X?#Qi z!~uOVeX*S}7r+2N^Ryp(ChTA81$x7ONcKro*OW{%o;}<0;u#4~F-9So?^glcl@tm) zS(6$b_UQUmz#DUFoU_IIGMnV)v^4Mfq%VoodR+IXv9ZxmAiNA>q^;JVt!AW;OCULa ztu6g-p*Y_HyllBC-|JZsJl~T=ZC=}uS5sO@T7{=G$yf?3&WXMZ##AfN!BJ){<#TLH z9y5neE*?#bL)P{J>(;MtuzC(vL((&Lf_z9Z1YcuLHuU-6%rqt<W{ZRipE^M++O(+j zrs_~<l~gba2s|&;@ulkMi;#zuMh1A<lRs3*CSeB24>EDoG9XG-gUHdMHMGM%m5fS_ zM*l1=6*OPe;OeZ;)VgQ`9~i1{YbdJ&(VCFgV3^_chbXjDZfv^e;5{pLPr!?$G2Dp^ zt;QwEP3i_cZL?I-;GS6qnrWNB+-}LQ6>g%EqrxPS<c5-}A_#hO)+onD%)JG+vi`EB zP2p{sKu(vvZq()Oqk$j2d2;D^34-H{Ig;(xIdjDChK|nG?_sgI_Up6<pz7l84Xccl z9ZMj<w&f8Gwl#>(i&S5#=-|=~K5`PpED7<#AK8Fn4t)7UClHHV2SrnCKc?HgC;Iiu zgtRiTes@s8VdP{OtAFYq#jgoD6G=Cc(;{){06Jk4uGGbQhcaF8f~Qu@FI<?1HE{+f zr2i$A6vT#=^c-3Sjei-Zkf*kWwknnOcz`dI^1;oY3{d6ijZGxTdJ{6<a-NO$3XabI zIeYS~qc+M*J(7Y$43iW)9ZVgqz?>~q#aCM=NH0W*(pYG+X@y9DtcHAu6_4RzA<qs! zG{dtcIpLBi#Y9&kUN0m0pXCh9q9=-lCYsn$&+}lX|3YDV)8YDj8k^4~5mSvm;sxZp z7x(x<Xvm<OIif|~qNP27fh~gmC#f7H>te<m4G+q^M(&h2QKimI?ZCITd+Eno7gW0| zEb~*Q--PEiULsE`>Z<EMs!5?apti}`w%i%DF5Q2A`T*E^WrEl;TTN>@Q*<fq=3NvV zsLsd?A6+?1m@4lWnYD7SSio|?3|Ch?P#=O%!`_fjPSUuvu$S(lcSUQ3I?c?CJlvzp z=`mG#iJJ5Q;n*h@?0Dh5AAc)3F7LHh(}`6VM;m9#ra2I%iyB-W8B>hBsnU6^%&HS} zXiYpPKc#yHlxmsJ)|voX*VG%u5MI9Wp)#V25gx28K4XTy@V(aJq^?#t{e<Bm;CEE^ zaSmO1Hz`J0o&`jSN}$&jmKr+nBSZxwaC>7v$f!CJm(^`_?Zuf=#wl~7+6fu(+X7*` zNAJ_8APL^GK7(t@Cq_#xuXHJ4s%{yDc=&>$J=2d73fWM6=WHwPh`J!i8g)Q2rL?xo z>&c*J1pAZHd&TPFWcM22#2!#Yo7<0rXHIkE6~)py&#~i4f+h^>GW>ew`<^3Kt7(r# zWv-I}ur*Tojk<RN_x0c!wCE4n_&uou8fwTup8GN-0q|x)60i>ZShjT`;CxS9^Gq+D zQ&3w3JW?PoRWu&0T1IrufZS#WGEp>@&Y`o|in+oRN0sSmZpbCZl)U;>-1l54*K5L4 z2=^)e7}}dqs(K|?6+f2G!Rl5fYpu@O22UjlVUO{Q{;O^|<yYS^WL1iT&xd<!_}(TP zADGaM(o;qZ8pk^t+i(pRNM$fV$!RxCjU4ibO({WQmbgGA?s0jWAO%T7BblKRqK(jq z2kBS@wW--PYVYh6G>Cc)^UNq|!VGg>fi~G5RWw%di5)k1nFwByz1e$<PJ#G}7w(QM zLyPA#;Yuzbk|RIH51gB+V>s*=AL;V8PtjbbLjt?h(9B^-S(=`>IgWwcioJ_5N9A1( zf6?0ot5=zyO-=fgwn*UOvRNUttcOVp+kK^7e2K7XFq*cR6}{1G>h>4NTBq+%aBKD^ z4{MmWK9r*AG+C%gcl~7P<UMTN1*7gcdz5z|jKyu&Ni7ODpBZynRNvO2#go|=$@&#{ zaEyi9yINY}&u64jScN@nN)18b$muarP*2U)ccIUOn-LW!Yy-Zo%~J%_{i>Gg=Q-Np zpuxwVl4U00h3Z3FL(44>YkF8rzo0lJBl|d+csVz9aD$F4i?nbn-|tln`W@^&m&ps@ zg15Q(aD08ooSU0%!2BFiTv#QtkSKyiT1OG|U87B0(F^ikRq73pTBVtJfB?&KRTA&~ zi$o=0AeO42_=E0Gf^V_{*()?nFDf)CP_YM$y|o<QcMic}NPrQ=XxeqPOV$XD<M5uJ zSXU_XSy_0B2{Zb{VjJQfRv2q1UkE>>Mm7z~Y7x9G&=x5}O&&4`;4BtfAKSMS#0*v> z$P4?3&g}K#1``ckjZnqqqJ6H3*suncL?K0jRQlCG@0ss)Sh}QcyVnvwN_G7=EI*Sj z1J6|<<Cyf|MVcLI=DdkKUaOD!<r8|Up3kFdW)QrbF;Cc<JJ*qH8iGM@x{FR508WyO z+%Qbzoy|-?9L}s7f7hU~^-`&-NJO%2guHr`DB`qPxvX8K@w)-X)Wr4oL1*rsn3-zS zg**{`;1N3ppeRyrOj)VYkFs)`4^m)E-c_pfUIhb-i}`?q!W*vg#ImWo`O~p{sD*2J zsk!kkD?MMphS@&AkPT=%a6e<8JHC1bq0L>FqJC{)x_T*RU<7m*o$Ua2Uv!2gsnqe; zkiFEg#OnYZeRUW}YIQTQzOzN5wq?4N(caJteYW*tM9V(izcV}D`u(zc+Pt-!(q~Mb z2Ff~%y`sb<1&9tB5{$M^yB=FHK%YE<dHTYO@bx>o99^qAg-`sR1J8u4S9`yc5zB^v zj;}tMC<oz*o#Uk(QLS?vqA4j*Pvm0bLs7I`QKQyT_GQGZ%%*|uJNe!QJ9#f`j}()@ z+B$NZErUgQL^K5Z9Yy(?xW-I&O&A2_(Pua*9aE|{&~7D95t{;3wCPY5?IuOh<&p1F z9}*ykPKiE-q?zVT9-ET1nd+g&4&?B%(eE4|a9`Dn-FE5bX*tNgZ77T&>1}v-CPn*D zZBd3JP(zx{3~}tR%T6JgX(@v)GKzRiqDleDSPg11OIswhc}v?gt2N&A>uj1mH!G76 zp`nTTB=M#A>r3lv8^>NW;d^py+PpBU-jsRQG?ub0%*YlQ=Wk>k5M1(znc96h)4iqH zRcc9BNO5&24!ziv&S0*7*s)U+!yNJ>yC!GTa}!ZM?QWtM>WiOVo&s?dnWz)e*4oev zW0?~@uzl#1DXl__k?9g6)IzaST}Mg|(@;B=TetVU8fdH&0}PNbdRyl67l@rI&x8OA zolb{)&39Vni?Ur<03hovUI)&PvuhxreX@%Q$rMw;<GkG6rBHLPGr%fGZUuw>M*F>h zRU6L&uHM%!T%bn*wiHya>G4zPO9PoI4r-saL0Q9_LfE09wjhuZw9^ac9sIMcpyf!U z<`|t=%i&Z_OaI)08=P;GdAv$R^5q;=-gswaOLX%lNWDVeE{O1DK@uD@<AXF|CFkR& zjxSuuTa{MwU=wGuQX{exsV*SwTd$~sF4Eo<L%sCZ!{Au%yY<Cp`nbZ>y$ebhxmEvw z_GdMohmxWmOmY%fRO8Gw12kQ^<pPSpSR}EPa#N{6Vi8XGOeYO#RMEXhs%0yC3A>xG z6RIiOuiRe5*J}pGID&oRw&sEQ=jNy=?<I4N22en+kHaJswVAS+t)gr|mz4;FUv#mv zoACu)_Od2CY+tLHkA?-Aq*;7F(IgprjetK>_8yGFHbcXwR_2uXRm$e8Ql8UGw>$^y z=?9#nC`w95y;^j*T8l3IsyrRG_~+gU?q)FxE&MS@&F1?|HAEzf`d`ZARL#dFwC8)t z>#WXp9;cwG2_5Q8-h0>1p@5tbBq$(Ru<1a`qm<yFxO7h~gPDV32XjO=KMZm)s(yNw z<DG5wb~McSlUzRY9Pp#|cJ0tinwjuMC=1@wC)&dwaa8j6kaG};FqbiA*!DX8izy^{ z=!6lNAjP?O<1$gF6rLTctD~4|DQw%<C1xQk9IQ481=t%4AjYc(6G<6Q{?y=p2g3E` zI=_8w8#uvZ+qfu&I_t1G9vv1Xzu`b3Io(X+$V#MTtu_6!schXQ<VGkV)lkC}O%G=j zUbky7k-%xEBPx4GjY-_!WH_{2z{<#>h*lrVu>XMC8$G_9kdX!_z;ZNVUqC`(?$eS8 zNi<;y4C_N(?E+!y3mvTK0MrYd_#<a5;;L%6l3mNoDC{2xv0|r7wI|orq$u~D*<ZXm zdx`8<+cu)@-%b+f7;?^}Qi<AAKaU{Td9mx6yn$Wg_bmVC&FiqZLd*8mlMAog=#Qf* z*b_Bm2bU6hE1&2|im6HwJ*CzPY?Yct_uyyHa?~|K1{FI73vq+@NIPH0t-N&Qz!>W! z0r{PVwppi-a8l?->#LYt5T#$iTXx2G#HD?!8udE(xshfifv9GFhHAST-OT!hgCckw zpR8lH{o&%~rk9(`;$u@R+~tYyZS2GD^G2KbU)%imyU^q}JcUjQw>(4Vgp5v8-I*?r z8jJ<Vft_7lUB8xoRd2|}k_)@-j^)tE#k8Dup+`nW>LszUv-72oR2Vd_I1P;?8#;Ne zUG3upr|l8&N@SF_DyNBW&a@^NKwkA1L@hBleIjbo7l(wG_1>{WCUdNbII}lu;ma2* zI!L!E{@^1vmCjV0N_8v#U`$N+t~{@62A*R&|Jix-+(%Zsf=YwvVRhw#?E!|Yj10p@ zjt!a-SmSI~R=Rz?K1Zv|FAlK>^P;Q=6g<2GZw6JB%Gc<q%Ud5<NqZ92sfKD;hmw+$ zw|91Swzq%J;(T{J5aoHMfa7}84p!ab(fs^8CMjP(xKOX5rS9$7<^cI(<G0L=kExkP z`ubunyJPnEGrrA-HA=ph=032=?a2^i@jT*e9G;3q)zpTvxFsHW*11Q;AA;R3?1lZ6 z<#<zT(AVPmbmc^hS(SpVrWZP2KlgT(CX?xKVwd6H9yE>cs`Z7L*cB9h{IJZHDWEki z6f&wG?X&0nja;|gZrz(?X!<ysf93kF{qc^4g+)_Sb8>Pr>w1$xg+lyhee#>nsWhd~ zN$wC<n*){Q+W1Copk({vK?Q47hJd3f6nZn36Brq(Bo{*_=y=xCTz^ofLnMVt{hl`U zNjqKLv53@AEDE86;o1hfg&Lpx+n=L?l<|f9qr)R3_dm@aZ*oH0E;<lat$4*R%Gz%a zpqRy8^0w!FmuD0b_<+G0hm<&c#!K1iL>7#A5kzMzs}BkzCSz&JBrVF4Inq|U!>D(T zo0!ecKS`gR3wY$;I#62meph++qg<*c)CPkbg)4CTW~+JZ2K3$upC2rhyX$cztesYP zm*wMibe>d}w3DUx<&w9m&CSv0$G3-HkgCt?gG%gezcvq*0>xTRC-}v$(JA$f^z_7A zA4cpyUoNh`!vMG+E^+dS6>7)?Y;SMFV0;Y=6;Eq=-i*K$gl+0*@;$B0NFl)OWTn<~ zXd71B<ofd!{?vY50<C{;z=I6Yn`;!`(^b3n`v&2Y=AHVgFOM}!mB?Dy)_P>k<)OGv zt#V`i&euS6A#9V`g7@5=yckxeo(bo<Wpvhp-}XOb2Q#lTjya%06P;As5|?dk7AI7| zAlA^z1@$&&9fC;~H{)GZ+i8jhm=7ENHu?>Dv?n2kKu|k&w*!+)O>o|%1wS7t=3)3& zLGM#|{yOu$j(w^j7mX{o1*8vI{Hn^zK0p0YPMQxYKTJ~q6{)?L+C5J7z%N)w?dO|a zH!Ou`UaBZZS2g`2sM6JYEx2($`Bi8mApy^N)|LwQ$Zd$%>V`}%#Np}R7TJ4UdAHq8 zFXH^L7rWmZ;`qX~i(H9&i{Tcq8c6sK%Jw<PhiPVEf^5RyaHqFl6(sw9<BVU3{Lqlp zrMR&){BEe6wL4$>AAbu_b^Rq}+^z8oMK$VHnS~<fp?GAAJ?+@!ge*4M{;;bJp>W#* zsZ-LGkXO91Aw#R;+Bjt?Y>y#0qio#bXrbv~Ei&}jYQPM%d+Al7a`y{;bk+T~ZPBjv zq5#5Sw^Ua@ZATXkW-F<#9yNA!wBb$9JC_%V9Ae>b`T4PN=?pJGo?tq|Z(Jj#>CiW$ zu0s6S+sg|9SXo)AQt@$+Zom|v|BjB@<E_gctV*G~jtT^1VJ~i)gOBE?B0%Gry7q!4 z&;v9u=eHAGveCXC<p4e1IWYY@SPJWr%UXo4P42!`creCNcb8@q$v@H}!e^WIeQQ3~ ziv86mUv)bfbsX_P29$u${Uj>y*zEbUu&IE~b@TLi50gQqB@vpcp;xrr^e{5}9Qk_3 z_mT)Kr8t0bZ$xQ8&MCTlfJsQW{k)R(-D3#@LD8X?(-ILjnm;Y}vtjW~ksyfEPyVI7 ze9KbmY$JD9#^8Lb9UW2O#75jU<nTya1;cE{=O>XsAb(OX^CKrfiMWCZQI=|*DE~41 zkaHnS5XDq3?NM7(u?+M}H|qZb96{s0D@r0ZSjUhl7%dKEd5mBXI=8@3J;9)~E6iJB z7ts8<xVZSzOD_!u{eSwWzwh=|wr<^c!&~2Y^`)0Td*GQ*efm?~-s->q#Sfi!+Rks> zci)+3p83E74<O=cr)}Q7b<39NX+)Zwoa}a2SGv7_{LE+0JZs<0@A)ZTdcJTTfn{Nb zyL+G?0|4K4+id{YXf&qQtkL$YoI3?g#x?DT)%|5yuM3^Cm$@{^3;~p_irZ#}`c`1b z2WDD6)zDIFr8kfA9}&!`--7t7nN)#9K%y+>QAJM}S{XnjVEYf1`Ijf&{_0mg|6&yS zu~*O1S^>gl07^en?r15qKa6oDCaS6a!ouS6uYLF<pZLUIUi%}jUcYYbv-`jQfBxzJ zOiZtzojv)w*Z#=z;?h6-{og+P(6@K(*xqb5vNQ$G2EBeOk*eQ6?}GDX(i|V3+`fIs z@^bet|NP@~bH}4c6+2o$ViKT*hV{c)mVNDxuYdfn{$lpzi7f5^<WK$#VL21i%apC? zs;3Fz#jB&#@9QU`7Y!VRLz*!}_iMT6WCt9Q>u$&U?)^s9Snyy9MvZWJ{vg?QV3#c- z=}mz|Xq9ryoiX~6`T4mlO93Fu6aY3F$;8BDv)QanD1BMGyhok0EYr6~$AnT!B;m@A z9L&}-=bo2THTIm>7lkWdu+{QG^d#NE>pd^*x}4Tp1<M+e)xm>@KJt+dk9XR;cJJ(W zdoR3rXkv2w=idLbM~)nQ?6JpJS60U-##A<FHJam-YfhY)%T$JdW3A@Y)KsJ0UN^N4 z5WBtZ(U*?2q&V;V3pQ@vW<R^Y>S90dMJsvCIRT6T78d3g78dkzi-e}vPcwjNaAnSv zQki=A;YV)0^$Y9Pty4;6N@b~HRzlKs*S#)Dn*A(Q078hV@$sq2Dc{URr#t$8`Y$NH z%sr!md5`7yRt&N9ht^pEOt%3>&w$IxU%r&Bt?=9p5~3hvPaMT>e1Uw*P4=lzeey?M zb49PW`ot3lUVPz&TW|f!o8EN&Fa6RlyDt(#cwON+zt7aVwE<J<?YDoq(P(JKe0Ozq z&E%TPu6Tu%vH(YTgiZ@mK>^%xDR2Hi)?J}4n;o6b$pFjC%k6fXFpOo{3#e?12qVCe zBZr#J=G4?Wd)QgwF1o{D15ovP{jYrGwl}`vje?|2g@Sm%Ieh&%J^So|hrj!+x4rE~ zcP$j;QYz6C`R;eW_r))K_L^&6_wU~Oo|V;AW+oDyPP^0T%*;%`=e;*=+p$wA#R`&U zQxfjmbNX0&%nz<c*#J-)Y-%Uil2Xc_*A(Q<W{Y@Z^J1s(>|GHCty0<bX<;?1-*tr- z=tP(|P}Q)4weZu?qc45&i?=`go$qd#nf~&ZZ%b2Hw|4#S{?6}YN_D&4-~7$r93SsY zO|7k;X$Jr|-gqMboH%hJ%d+X|=}`*90P33$+`n({8B<eh<A#8(Se~6I@mGKK@prxJ zU27)Sz$mpg=70Eye|W>|U%zeJwveK02f6uNTxNd$xfdGE=9)EY^F!c#O>;hi$IbvG z93PutV7B;pY#Z7-DKG$R+&FX5#h2#ymGu(^=1g$K&OP_6y?cN8q3=ABrfHHSN-3q( z>gp;HWh&jgc{3vPy4}Ua#f=*`J@>+)L7ECo+O5W#HB(b-COhr1QOc3k`2%YVr-sZ| z{gf&Sty@lGxlug;G{9Fbq3Tq)l$BbRSlEYFk^V9O&&+Io<Mlr(M3SYvxVT6}4}R;x zW~cMSlTR|M!$%HgSr&9}2KK`}E`&(a)E9}U9s7*CckOMp+VzXrKet<MdGF-p8V?a2 z^7E5F@e{%7FX4TK$mz1nFTdb|3xexud#<5)5g34zBze`VUoC_LE1+Jn0rGF_bUNF& z?}!iys@<CA%mKi<b?Y{4*l@`umt1=3rCFA(tSmFDq|so8&e+(d&6^px*=PXpAWgsb z_@l>89DnSw$D-l>(1B&;Q>en4%BtPP;5p2T<cRo>vw|2+V$jj!^U+!!CsKGc*BWpM z5m9AX27JyrXW#zi+Z(<9%F6PF4eR$m_0;Cgn-S^kv(6p806aA{wPwwl`hn*D^<BSy zL)~pa&$<BX)l=t&hEb1n&2mI4a#@?qg7;h+W2;q5xRkbzc%-#dABHEN`2KzOeeJyS zE<b+!*dWc09XqzNvXUf8tJPK+KfQndu04D7FeRnb<kT7f5CV7Y+>L;ZM&j1M&{0Um zOQnssu-O^_upVg@Rk9ck^x4ZuRj`k?{oV}P`dmIf*ay9078a)hM;!toD3z@&uQIb@ z>~z|XJo3onk3aU@fdk+9_II*0yZ`?C(=<I*+Iny;tCOTr7RD*`aE%Za@hN<9xpTn$ zBk%XZi;KZDj-rD<^uR8-;Jlyt>0bcAX0z35wbrd$cka38W?9zn_lR)kuARZ9hI|My zuV25eDiDZbR>5TltG--bQ7}@!2Vqdd_smJH3O>2c-HN6@TQn-{4Nno=vM;EPjSM_c zw6L-|ztTN&{Nz=ye$~RlBCuMsX3d2cUbywNtt7<Oty`nLGG%O`92cJIqK^bNuG&_; zse*5**>9utOb_8GMgCR!H!8nIV_N=cGJt}*tHi+b3ro+xcmRMWCMU<o$0sHxTCElU zpb&$>V2};~I5tg;5!91UK3QKTtK!-q3U8b}yMY5$(L_agioELpl_3zsrO^;D&a!ZD zr&o9~r3)-2-8H4eN5A*z^!jzT-+EiGx7z89zjXZMwjH~ldgkesm6eAc`gWty1Xi23 zY^f))RayO0TI+tt_^AdA>}%@tD0>V6;bpm_s$CHT16Y5`d0I2trF-e<u?N3(&yMZ; zjvqUgX4&fMYO~oSA_B}Z_55=$?A^C7$YM=Ojks^$z6u%~gbHktZsP(ipd?{6WCnsw zpwTAKo(HJvLoc;K)pY9;6g)%Oym7Pv!2db_{PREXfe-xgpZv+0XPv!q)5a|AHIroP zj$IdC@roCofByJO$I>kO%x6AR9|HX#VFp07WPFMtJ|gR)C7;5AJ=Jfib{z#ljj9t0 zR=@L5Jj`Jt;NE?^-u14VnPF;bYVF#!7hingl~-P+l+v}Ay?gfhw7K9o7Z(@muX>GG z6U5c;PRXybSC2QZkx)=?2Ij2TrcD+PheCrKq8pxrVUri3rZtiPEpUtA31|)32HUsq zxap>wpMU=8haP%pVPXE!haNfWf^){l$6M_dA>Ht{8yuV;UFbu(eT=nMFu)65#!g@} zThokKVi<lHfG=+k#NHL)-!#<f^C{YkBS()NdhuBVn4h0*G#gJp{q%tY&r2zF(s*+A z#M-sfNXkvx)E+=nm{(R-YqGVd{tATs^<=Xf<ySdsh71(95CvZ(AtDq*W!?;U^6*3y zGJ)A;$$5IhF(rbbeZYu#_St8hapvjG=GaF+`cVY2|A{Ae@7}FLz`41(R;yKGCw_Rb z#LIC4exZ@wxVS1~q;+L}fCC;@*%%#LJcX;rO0BG}5VioQ+Z`+|9^SNR)6&x7rcE0W zd3kwx?Ye0fM7sVY?M=39-W<rI*K?4|M`hVQBQ>TCm4XE;i^8@>VDluSzKtah<zYhk zh$I*D<RK7;=8B_;Q}p=8$0q>bt#5tXzI}Ut>$iSu{q)B3&prE&uin9+zWwcQUw7T> z8x8q?bt%_~j1P0uUJ2RsX}HlS<)8$A@ZDO@^?lp#L~6C|SA`+LFUwdUY}vAD^X82! zD=Yu-Pyd(*L#IaqB60U!cW&Ks8nZ%H;KQBv*q(Xz*=^f)4Q-mKw`jJK71zfdmIH9H zC4*%lNJsRXW?`hW(av({vK8fKkM@MI$$9<^u~U+^6+-OUv-iLJmydS4-GznOi!Zup zW@dWF&g%`^n`3cHEXD|ekP(YkRec^q*A06^6(M+EaD^Bc_y=D4{#psGK6~H6KP30K z|EZ_<KmFtz-tZ<?hzVbK;U%B_?B_1J<lNmm&-mNF{omVn?`*bO%5segri6KBW;)iv zTsP<?cEL5JSzB!$&G4fS&v^2WJ{1D}v5ujB2^9H#!Ke(IAhWKAd2cLzdId@arLlpH zMq_-ueemFmS6y}Giw9qnB55SaU3cAe)s<IC694yXe|>;4R7=O4MG4sPBmm0_A20tP zJwVV@9{r6`m|yfm`k9`dW=H{W$Bu0Xj06{7e9^jfQ$VnL-)<7ZJK3_@J3RX6!)Kp; z-iYWx^_n)ip#IB-HS8mEMD|!R=E(sRhrj1NfGT6m_3v{;l=N?8f*hmy=qK9f?nJeC zNhmJsgH~f>V*oHVHlC#^A#K^TnMx*vF=pxAu&RQ1z6}Xn6mH##XDYo_!w%EVKV2!- zq)0;sW?*K81<YSDvr>gWElaCdpK{Nb2bEIVv97MJ0z$LV1k2cDWe&36?{`;M?LZdA z3eqeEr2r`76ake<J6SO(R+-AYnv`<KrD;6wDJjI-b?dfm+qQk%c0p8?LQJh)GqrXN z0BqU1ML)88&n|s|W;V_cktOZ<tQ+$k-EQyMXP@;qK$Y-lp_?rp5ouBo{D59fLZyOs z9w`=QTN$ZXHwMpBYvdxRY7x?kmX|WzQbLO8j5E$a#C2=e>QHjeo;^|Eg^>a9;Gu(0 zKmE+1BZn6j76$1c9i*vJ>7c)|yfPT{S*a`?^m>Cqn)Z7AMk1Qc1ONtu!OH3?Ad(aa zAcP=lG@8w3vmqNzAw|2<Y_(dAq|t0PlO$<05-F1;kwOR}A@r=qLUWgQ){yIH6Vd$q z{LIXZr)G>!2~e*$B0?Z$jiO-I8-P!>Vgz7?;`>h@Xf~6<V9@LJn(g*rFu3pQUp;Z` z`0Vm>v)PnV5}^>1P?$V~84%peh$_}2A|^?)bNlu;zxmA<Uwmm&5?&vcg1fURiHQIJ z!`RsP`R83YtTldkQ9l|c4GZuLg)V67mqvPyFoII(%Wi18Z2F=~qhVdAZwdW<IYTb$ zJigx!SJ(jRrDHFB_OqXxTUyq)c`z7gsk1E0R##US7Z=k(4*^t~tt_qdv#ht;n_4@T zG$auL;Oa_GNGTH8Xf)dG_So3i_{7+{4I3sV)-)Q8X0zF9HWMKmjYg6rLI{oe<%=HB zBRQ+$sv;ls81(z?R?EeNjHS5CM($jFDM*NmF1a{>>UZzj-R<=b9Xj~=&wma9h)4(t zfQxhUtE*j^$hB+N%9f~Un9}?gDdoY#hd=SjPoDja`)<DZ=IQm*qhMbi!>5GVgIjaV z7KyJ2EWxiKj4s<4AephvP#6I3W1f;ds%A}~VyBg(H~-OT+mc^>ECX;gCAQiD0$8u> z?;@y2AAjr%x83%=?|kQqS6-c_*<dgLBjw410X7<mlp;%Yn~q{oS=yJ0Op=CDDFR9< zTb-7a5)g$T03HlhdtF>!TuhQANo1B~X_^8s4uDxnDV55E5M+OJYo1>O^nv+7zyIKa z4?gwOQ$)0F+qP?7b&ZtLXmE$K$BWj~=^lG8i&EziVPbM(0wy<Xn4X!LdH%WQPR^br z#P5FRp?mMSCy_~(W!tuIyYSMB$})z*z0l`{h)?Z*>SG`K)Azss0~@C|j#!#-O-LT7 zXv5Atl8n?bYQUV>%Q&C|L+#j@;0gz?k?{#iG0|2nNWoUkr}XIo4V9{69t>lxS~#+1 zN;m-QfBMOP`Pa|4#wQ19UzyNXOAk?!BmkIY11ZD+1p@T5u2LDRba`n(N^ZAXiA<!F zgdnA~EI>qHrLtakwY$37Xf&-Ju>N$#tg?)p6VS_rAl|{u%*Rh0|MNfn({wOU%$Htq z`9&99G%-2BI(QGE8}=ys2s*RKL6k5gu;!f2s2TtOn3>r)Jw3C$ym;coi9;_QY$gp7 zVlWuYo}3jz1fh0$(5>I-JUch{H-Gb~4}Re1hm!b9Zi=1j%fG^_HIHc8<DyqZOA%DD zqMORSunY%Cvc|ovh+hDN41&r9_}@^A6cluCsA|zy_!+F)tif4jtjHfl1T;5);tT)w zC6r>&U!9+w>-V}!DWx)%rD>K81_PBTVV0<pLP$wUWjY`>ZIcK@B56oJ3}EIg%hIgB zy0S#N=*TVPgoV_ZqYy$V<!=BzG6xut?93#{Kk&_OeG38*iJ6%h1>8?lt%BwPl8VX$ zy5ep*5ULt-p}(`)YEMm0U3AGMJ9qC|T3YILd%a%w`0-=oljDOys<I5q0_ggh7S&x3 zA36HfJHB%L^*>5LBT-1$HY>1GDQ6=viX%<(i|&wew|mue;R+=z=X}DCl>uND=R6n7 zIEV;gk!-}i=1}=3=53spM5rKq*yWPmamQDXC{0sVs@LoF`~5T>WLc)NjDc0AvMlR% zyZv6TzuL`&NYm7(60zkg_+3Hf@R+kS?f1H<d*GGgW-F7KQdyQ|QVJsBtiSm`Bt0|F z7*Rk3n46n>?9oTxc>VSIb@Ov`pZ?^he(YWEnw*?)p*|Pk(c;~}fcaQh{dv%B0#cv$ z{BK|Sw{1JNoptWHbF(LBXXloemk+;quszeBm`Hlvu1=5&*WWPGLy_aV@4ox;%U?0Q zetJk5$A%YJ;lr&5h@=7KxIGAgss`1JSkkVZ1HzK6?5Ka>j79Y|L_ei9xR3`tIxHg) z%B&f$8Pp1}hA~jU)NL%uys$L?z<0j0e*OA%Fi=^RW`itCl~Q_@vr4l}WtqydRAp(V zQbbl+W{{A)g@hHS0;CHM&^9QhgOsqZhe53ZbCx!nO{EekWtIsc5<AXSxNU=o0*Q!R zw9@T%$H&J9>41nJgEY%tdCe=Cv)-VuSZOhDqjNvP6h!~Q%;C#Uz^J$ZUi<pjHJeSv zYHHoOBx%f^Jo&0?ubrJeIY|3Sk_-lee!o8$3{;lYs}U>4#~%OQt6%vV7zVNc6bJ;t zJbK&KuA*tcC<(61`f6mhhLr+1s3A(QEFK1qQ|g=?tdoxMx(d+smQz0AG^%k6r#`WQ zOVv_+dG*fQzkh$H-5v}EgTVkmuls?@vMfupEM*-AWvbij_WS)_x7!2AGBcsp#NV0H zKzx>EjYh+@r6Yiz$C#$65Q3-=2$?cJX_`tYg~)`7uE_QT5n9bh*E`V}AKN*$yWj8Y z^X;dD&8KYvhJLrJfVDP-9>Pggrmook%&yAh>;eOk3BYoE2>=kf{hoentKC_@LCh`8 zHM=cdWvBO%BuS?2MG?X-j9&nF^2sM({mLI<9(K#n<9Hx21eIWjLi_b`f5j@t`u2~y zO<H7?O7n<<@<4V!zOiAQqyD>#V->GT1zi|<QcG1z5UG`VyYht>UIb@Zl+uDWz=~C7 zRFq0hDtQseB4&z}Qi>P`gMpM%BoYBss&vq)mpdY6S(*+~m1TOXD5ZqRECo`a9u<X3 z|DW3c<x)B;%m!uvT#hb~U}mG_;@36+7*GL2fwGUTI%jC42n?u{{(l6!jl3p40zjFx zrl!`n8lAb>*`=k0e!rilDN!bbN)n|qrC6b-Uh1P1M-Cqy4EjmZ2&`L~D3=3R5gs7d zz}!_54;6O3PyimG6Cl0;z^OuTX~I{eieM#sz1lJR=|GwDTnih=$!88mWT+HX)pl=T zVODV_Kp1F7*E^N+;1O55RX#@SG&9(WkSLWYMM^2uLl=Ra2e2kTQ3?<Rf)JPpLeeUS zOi0KGiW!MOQHD%_%=uhvPcw$Bz&bj;a-|e1v}N6#NQ73w2y@PyE9Ic4GJ?7`X300m zMFieWuR$a!8tsmdNwd`%pP!%WuC8WTrqa}ws|^$0>EAnQudb{lNuwsV)>~OWkQo9P z1R>DNp!dZHTKcz=wFp~4;~vTu9JsInf**bRU3i0$hC8$+vOx5+vTLkbO}gUG*tPcG zo2IFb=`E)~j|}o{iR+y+@uyOmQ$*6&P35g1Iu=SHa|tCD@OA~PP-QC1RC|y%noTJ) zhnnZZV~K%*Py}2k14S__R!+}VyBFO}f@oZU14A<#PnS9j!EJCabjeLzad|*+7<xoN zv)No)T3lLON(X~1O_`Nq;bVX%iX%h-l^G^R6t*sfxQ26Kd)V!OcxQA*h}SD?y=>_z zC19kMH{lL1UmH+0AHW{89?eJSFi!>s#)1qYdpx2_DZF@UQFjHQT=$810{{Z4ofk9P z`A}>{Z`{UEzE#jt0!G;(^g~8BhV;oI04rutnn0rv89^z|GL;T8)k%`3S3U5l5F`Y1 zY-EmNl`#uT#q#2Q3)U)C9MKsF*s;w5%MKkaH?DFFf;$)?M61<GlBC`4EG;edR#q}= zN@ClFGmRQ6!wO)AYP3-?Yn{a^-tEh5%(uhv^l&_Lb&$d5aOpo4#9?B$5`45x#tC@V z5I7Ma6IB*v&5=EZTm{Zkwe+hu!;tH;w7B@_V~?+PSD)Gc-1NrHE31oID$gUWv5%d5 z%SBrcB}5W<XRETq;CV-8&dlUag#Z~32An4bsZ!16pwVb*JTy?P%d(7!h(uYNlNBpq zT|dtKE1Jlj?Fc)Lxk0a+#GBh43h;xUt(K){JtZ=cBuTT`Ty3{kR#pas0V@SIMAWzE z>v!Do)DurA&i?D~{pVJz^J71D!*Bog?~aX4R8;64SH(@;HSsDDacN6eL7CA^zzu!` zOCAI+Wz2yVWKqP|r-epBATth{(7(W(PY2Gcz{TZCF9Y5g{ikec<`?EZ`KiAVf}T5Y zV9RO8lLXhUn{=#8UBoSAMTJ$PR0e@N)+AQ@t17&OSt%mKEKThOAR#hljkh)$Eytqq zL}fA|BoXVeL@uzTL@Jdbk`6LSNB|%(a%0R)49LiC7IdL9V4IC%HGBUC6UE1z`9H22 zqZxkfPG@ChrQhwksM5tV-R{b!&71UJ^K-LlI`D_S6-aL$Q8T0oxI4ls$bD<nYvReV zUnS*&p>X~ncza1$$y0_az-<MMd>aeqmy*IOPFSxORL_PO`lD3#oo|2Jwmz7DS(crD z-np;5=9*@+xw5o8d*URK)EfN$)Tmq?(nhcT1<^qyGJ|4JTvJ7Nfm3QK%>BWjHyHE= zz1808>gw|H%F6O!(9@W@hE~i^mZoZ;!zUyYv`QrMd&U(L0}&At0XC!*L~O2VK0To5 zFuABX5cEc&1H0ThP^BNA3+)nviHV8v$;oD?leAimc3U<Yve8T$jmb5WCr+H`cDub^ zFHN(M=%)Cy|NJjcJn=X)KljW5(=^KpBMtQcz=sYW3Rdk1QIM8vQOE#F0V`09Vb!d- zTMX|m>TQ%?TP#k9!LYas1wRl4ZR#e&RTJGR6M(#W0<4spot<S?!9=uHtI5oBv$LIc z$K2seDZ9=glpAtDN`WnCS3n`}2Tu??RAvQ2m1*QrDaA_LN;Sx`G;JiZp+7+gAp}X8 zK$ZboI(`a5NG?_Wvn<mEI0NIRnbO?`rR+`z_pX{$Y<!6%%E68YPp1X_W~QQxNRmXO z$(gAbq7Wh-43tt*%E4ejB*G#W@a0!rGCn>A02`(^_?=QJQV7GfYu5(+wxKwt-;u#C zqAisR6bH?5tV)Atg6ct~E>MBC7pn}MQVbK_2|g#=pCsjfx)Aa;*IrxX!{F*__sh3^ zd1`8{5F*QzUPwwQB+R2iW&mQ&j2TdhEib-oT^zKk0EodCPYrsn6q}-l8DXnHDV9oc zmSu7vvxeOOLdr}^nWzMqGYfZ0DK!B}Gl;-WnbtcekE&hC6a%DOL8%kc-`Hj+vtr=o z#ij1*ssp*od>2F<pO|R3+kTHMBI@FX5W=+dC|0aGozDFHyp*y`OhUxdPBU{<$0jF$ z(dbu~Riprbp^-FC2?Nz9po!x}k#r8wp?ngsS7)i;RLm@MyX&!1$|8F4;Q*(uZB|!C zi6z0Vu;cd3)S9X5uYcpQW5?zfX3sqHjD^KnWuO`}Gs*@z3LpU2p>*L)N~D+xoJ?Bu zn&mV0>_$><tFY~}5>jd<Y(+}3^)JR~*)Jk=(Wak0`(<EzWXcz6_RM;rtW)3%rs-2p zJbv%pcRu>?BSt~qQgE;oPb;NfbKUD+arM>Hn>PEAtXcictoZzkFW!6lzFv2gNNw1# zer9@ok|c#NAumm$vCld5jO>wJZGg^ERiFAypo-`pp%AhA684AxMbimz9bp<mGIg$c z=^lSNBGipqi8B69VQMcp@2UJqY~!X)x4ieg0Q~7sf8xM%FRY*5u(&v1Xe%@}v_Lj4 zUZuQmBRBtwg~izXcKd=iu&4{74w-bMP7cc_B34SfRUsq_LO?-63MqsXLL#9^5)Gjk z#v%X!AOJ~3K~%46){rmF9i)8%M4mHx5}yw3(V&nka(BDk|L_0(-2M07i9k|{oSep* zHo=&ekyzK|?!4nG_uT#U_kZvgcAtKhKNQ}5=9y=o%}S+d|Fy5VW~?(NFoJpHj5jj* zr2@txdz4*O1yntQt!knBM4&=3-_M4<K{ZyEgSl3CPv&@PbwrL~Zh&?)4I?0oHfX3y zYsAsWM#zWA7ehuuU{;w@N_p|FNtghLIkjMBKFr6jivcK;E-4?kDA>!=F=T%K^vM$^ zPMkQgbLY;9$q8nD{ISP7oz9tOpCg2L;<3lFG$o>TyK~tqUh%>UFC0B`_|hw`9Ba29 z{_b~QeEvCo;xb9z{MH-3{lGU5zWBoRZ++X*Lx&&u=6!qj?mOrF3mD+V=bwMz{`;=H z`s$fYoBRF#L*IVzJKy?Nuh+le!V50H^2&C5%z_?}rrE7u{Ne-m-Af>N!_L8`vj(ln zWMwY--oFA<_x!i?n`0IYMg~P$mMooYKKl*sFaPyl{@I6r<9F6gPy5MF?p3mkQ3(`+ z1QtSLa6?J*1qZr-$bPxNc1bb#8``6g)-(Ss{I8Q&t|Cwb?xH|7_X3N2bOL%XX#HgA zasp5@_q^uM`V3*@f=S*(YXM<%l197BnFF>pQBOuVVqM$_RTn5*FIwU!Gvq@#O|#4W z-?*>UYEDc}EG;g6?dxBgncjHL`4>njAAabeV@D4wm2KOx>*{M>H8(eR-#zzU`iiR( znJh0YKk>xlOACvwc57<wIw|GxW5>RE-+gbp@g4ns{~Pz*{muLC`;}kawqfH;zu&+A z8+ToH`Q=iGfBoVY?z!`hO<T4$Wb&oYfBx8!Bk#K9y+}fz=`;Hud+^@71<_#dRVzC# z&X@)OB56yMifFKA(`tLtmQig{bHldw#vPOQ|5Mgqc<}yvuD{_OP7>T-QbdHrWQxMo zG}Yqh)lw}Yf?byTV+u<-7XL&?$dnyOVL}Xgr~ra>iN@y3dYzo1Av;tKrhYlaff8n_ ze8q~=pEmGk>-v;drpN;W)Z;Y^(Lw+kA}Dl`qp5aQ`d>$*(2*G~EiNMBfddClKjVxe zM~)KU+}tb!CP|V=dFEMXzw_NUHJZ(&(P%Xqt!7h7*=RIg_l7rIbm_$(`)_~v_ILi+ zC6`?R2uY*SY_<|9Ws*oKl~SMk=g++F=RTMu36YdCId=TmefQjT)z#O$<6So);_bKH zIx{nq2th&upi=6-yYFN~nm)a^`wE4`%n}eJfe^rqGC|o;_6o4A7p_jsw9dF%K6=~T zci#1u8{Q$4q}*J~rnDRP>MlJ~#a5p3v|#J2;xT==zEwU33jC-(Xd%FS9YDo|B_{;} zz{qINoh^YI%9CBn2<8u`uvIx%IQneFGuF{a2`R!sXIGR|?0LROmckBjtRN(^>40-R z-~>27H{a=Wo`3#@UbnY@|Nc&=Lx|~MkR(Z?(KvD9#NBt^`Mrl9(XI4KWs*da$RtUc zNu$wf3L%n4k|aseFp?Acl~-PQ)w9n$d+$B>xE}oD$Bq%vl~-TgY_;}3_0-OtyE<dz zv-9)1Yq>w@fA5h;2)MuV;(nv8WCM~0BngT{5D5|}B+CXT2{aN&B*+Gue@V7(2NABW zuJ-$bL`tK0A*DW;hW;0mhbUQJ-Nva|Kq2=tkIJj7U7j<E7sAR~^T_$Q!zz(_2V1jZ z<;%h_GqdD;R9qMf#m&DznhvolC5o=;8h;YypZXQh$Of?5NDh9`e%BBFJnbD|l@qg+ zVvncggmN4VR1yaOKqkny4FVu%>hR&imt1nmv(G;J==Z*N=-|QYuDkB8yYKAxyNQ$x z(Cv1geByBwLP{xw$g)(BZYCCqU17QoAcSB5ohb_;Uis=D8Jn2+;^#m2s%x*)HReP} znaD=7DP{6MKlO=~<z*q|zkA<LowoHf0O<C*f(VjCO>Iz8=4MtlOo}ZfCrvc%o!H<s zMKUwVk`@Um1PMV6DG^CIVN(qbFcS_B1W<>CIkN0$_Kb|9w7=vvtQZPZ4)=YcdsTtC z@Qa<w<Gd3Iln4TV>=adsjyv`{RO%I&Yo@5fDXa6vosXI9V8rM&L&=R;EJ0nypR()v z@fE4U2r_stLfN{wC%fHlmSq!@6K9-x=EDy^yk+ZYJNN7%6us51OcEi*-o1PO<FEbt z+u!j{z0iqBNYa~ugix76B)#YfKxL^0jEG1``J->UVP^B@yYBdk5P}44J?%6i@yK_- zn@I8d|NW1z|IxP!AvSN^BBhj4_hlj>and5$<Rnp24nzZ_Bq50e$pmD=NdmI5@!0;2 zU;D&qPd_N71la_cbD8w9B|;=b4IvXDv^Ve-xvOTub8#jDhKeujx1<~29QbNONWq~k zGSOeEY`<UsX3qnFVpc4JE=j9Et*V-1xMU!Gx<zz+OO2%;HXLer`k{1JmvYjBu?#7f z><wco$G$X&q1Yx2X2V3YfBm!CT}8xBXKcfUX+%8lyz|D#ClGLXX<0-2hYlV3+-E;G zJ~45_jW=pbf7`#^x-d6;)6F+0jYO#oiHL;8Qkj*hp-Cx(STnii$A9W4|KOt^1;s*& z9Xocu>Y7)5{cCp|KYn6tZ0x>!@4ocXOLy<ujY0sBl!^8sS);*86G1743<#2jAjtqa z2hanMTZ_kdW|!)nXdtd84NRIONK1SPDX~o6VJ0;aU*Be#P+G){1*T=81X;HI(FI+V z2iI^|$~MbZFqJM8Bay5jWV`Y6=JwO61w2Dp4;5i$ILHzz6m8kIN9i)K!mx)1j5xh7 zzoXCJO^0Upr)hzJ!U)cyg;Qj7k<2L!(sb)-TgS)8*R5N(YtQa&J9e}?on3qP4AQ<3 zV*Q2<?N)1U_C%JYiIkmAXXmb+olYkqNRp(LG%vXDf{BT7DFh%)&&*tO@g)tJjE!|J zyy(KQPA5r{)Aycr(|c}t{LzQU+U+Ef@4oq#?K^jU>s#MEaeVp4x4+}nue~m5Hud@G z=1d8IqLIl)21;p-X3-=Bg#v^CDFHD9e(s_-StUpW0FtJ;nFI=f=z+XBl7?z{2xK!U zGB7!)99*~Xf2=#kTg}l$oP`}uJjDE04IwrUx|{)lS;<nb3A<a*B~Ap?iX7JWuS9FT zp)$uQPBP3*hsv*Zff1Eg{z;?AemT96V_4@#F^}YE=zig1>(;G1cJ6F6o3hb(%iC^f zw>!;d^XB*dc)Qb1lE%Alx~17{H5w*_xZ)L8UUk(gS9-lQV;vL%iGKWjKaHpdh~R6k zeeG+my$*o)?%B8JgC8<Glla=}uDkZS*BQK`-MRL<*T43<*I7i*G(s@zS~3ALQj!Ug zAtECJr(+YCbVSyln0;|>?N(FIW@V>+BQl_rTH8?w5<(&bRcC#L)bJX=)_U-#sN^s_ z`QmGqriL(Na4kn4DLeTp7ZGfU=mL{5l-<?~isNQoe_ha4TtBWN7D{2A3q1wE$%JyC zW1wO`hi_N3m+-?sC`k6@A4GtGc4W>4<S-BtI(#P*LP}{Cx@-uUNFkG?(a?|SFj^CA zWGYCA)z#Gl2M!>Rb`)E-ZU*2dpZva*a?hSUwym5O=jNYz`kB>kchjbgJ9q6QqQ%9< z!-tRPlM=|AH*ao_jUfuF%Yq;X1nCkbA}qJo^mkv<+<)KLLtogzyfn4du$jPAg&Cl= zbdm_PAQ+KAZ_1c0JOkVD^!4id;E99!>f-FTH{~5~Y+9bN%;MuBg^sI2nkw|ODq}7b zWZ7;2hkO@K(w0N*W^kG)!?oN_jq(tdOY8<?FL?@#3Wmh)JY>h1e^dtQ@#0QD+$<oc zLF#XuFXqh<>@h}lQ@qs(A|jF^u~?2E_fL!HS{0$i#idXD)n8;PMZhFU-v5DLIP>gt z{_!(^zkdDt_kZB$^@;3%>Zy<Y$$#(ld;0cWdDYc7-TdB{jvoEP|N472Z@~|L<TrLq z>;YzhL?l?TA_Nk^lrbPsM(X%k*KIlalvp}B{_wv{C^A_R>CQ}B7)FWYH~K+vLD)hg zb|yqs=Y|5%<AWFg$x2rsvg`1fn_tk&$p~fpGdnm&gsvcR)*Jrl-U!sS3?IbTcP<Wv z_lOT8H>{Kaq9_5gyo0N@(^KEy&s;b2%(8S)O3Bd?pZYw#UbX_b?_Z!=oV&~}4B8#- zDi?x;!F(*&C(w`+M2PtAcfaS?f8#fjM&sUl?*#xs<VLu4yQ`o0>%RnmTW)#p&;R1T zzwqLV?z{KiZ{C03)~#EA?IXXrY0K7a+qVDuM}A{w(-tGhrPW!8fQXSYA{L|w5ovC0 z?TfGdK!4v=KyBs$bE+%ff<%_7G|Mv1h)nypQHJz1oyasRP%Ut2E-4|FZcQ<)V9v74 z)np3TWyHX<HCthaL-1bztv>SOFrS*>N}^R+F9Jba!Hj-6rQ)FtUvWARf>Qkl9{A?2 zox74m`qe7TDUkW0X29+)h5)szeRAIW6ZYmYg94<w*)XBwLR5v(;v$bmydNYo%r*On zh7;PIiFNB{k|gQ(dgS&fA|gKj{Bujo3-5aOO;^9_H2|<@?-?I{@>lNq+8x(i^QzYF zU7gNYBca{<_L;cCbU6be5F!hKN>{@TC4a6xwQ$LeYc6~XWL*FlTR6V{tAC0JAN~D5 zSi64ROGi)q&Tsy@z8X{#2_2z|k6-%It-E&bIQ@(>o_*%o?YnlU;+QM|V1+0Qpt5e= z6oFO2(63R942t7su^#>}EpFv3eHC~b?14%Y2%T6TMpYeoh(yc}zE2p0Xx{Yhcl*Lh z#SRIl%8f+SND{q*$_n6Eq|h5yODtWfOldF|y!3iOz&+_&<0+gKfI%CslVbe4zx`iG z1e~3F-uXymh};MOu(GlO09!V1)yL3ow|DH=`Q($2qYXz2@T}W8fC&mhOwoq4f~-6h z%{Lmr4FD2-EeuK%Yo?~wZCLFqKtihw6{xwCN?MV)|D1ErX}2XX&P-32)(Jwf2JA7l zjKl+0qnTBlpDLWxr>0l&<bu^G!889py%s`k++wQ2@dmM>>%Lq=s1p%lup(SB$^2Y~ znwU`+x}iArB<~q9?Lpf1t00c5G8Khp3F}7u?pt5a-q%6!7d_dS$33q9I_I3TcI@1_ zapT4dFS^WHUsDEJyLK%AJn_Vnd(SuvnCIr^zW@F2@7s4eAc%sPu{k`uB~T%x$lAl$ z$~b_~H7EoE0zv{3TEYeOa1SkfT&3$;jBP^D0syveKTWUZ@rm)2RS8hh>hYp*H$0e8 z4eJSx(xmI@aZ%kk|IV5QKmb`#mMHl<M<lIUsa22rab#)HN088Ze64mW9Vn%;EbVo> z$|@hmN;c@XC>5_7SWOg)*7))}7hDQoWZa{N1Rem)WQBZah?a!7_>#-6c*RvY(n>Tt zJO8Z*9~4rYci#ECcJ2Mb7yfl=d3o!WtzW(4s|@Njuf0x>V$i9Z9_^tIrrmB6ArdF6 zi(-7Ef)sU?gRx+LkpV@kw;+H3snu!|$pnc=GAlB9NZ0|Sa{)(&4<s}TMN$hdQBJXU z`kDS^hoCtl##~S?0jO$%sZV*Uwn1=n$=Q)$QI^ZyH9=L)>aQnJ!BA;CjDQaQkr<Uv z#X;Y&Zy6Z9t;B`h;5+L2pwk=uTfFqZLx|sn0Li>C9i+_Y5(a&_4jz2r<A3>QfA@F) zJ4wX*e)@fT_wM=H9k>78-~F#cFFybFx8HclrI)&-!V&THBWtFn&cEOS6k`3iKeuWA zxv73{a?l@72c2xt$p-DT-%^9NO2;zTxNvy-TmJ%t=bm@&)Y`R#G___;k~9F|yAM4C zwp}w%-1XsE4+aR8$i1_fi1xO56Mb^(Xo2vYlZUFA{ZK0y>d4QY;2-;lUqFQjwvDu% zryR&|kIYzxDr!Sj@PiS_NE|vbDoO=m#Ykpoc%8<)V|t=b`uExctjGX!t~(NNMeXE3 zZ>Fa$3a~ZqLE`9p0R$(kN*gzB{-clmd85%F$~A^R^vnN2Whv_^%_OF0Hvh`6e)!PA zgDcC+8#is5Tr=f9{Cz+DGr-C%N{u4C{T=Uo^pQuBr6Zee{o@%hO#*D?FLGo?r36Zl zc-Omc(jV9v@4V%P8$SDwpZS|le)7J1@BL4|^PiCfY7&4w4Gzo09J$&6gfaugW#F1~ z3VRWZu3YQ6kX(%2P!Ejiuz*>a?TY!mE-xe*b!SF6jVsGldfV9sqL>cDspP)F1+9Hc zI1931T_GRPt+_WIpQq$@Jf-!#>{Z;2g*XhjOz_g}lWuHyX-b++6kHNagosjzB$>d% z3^kmbT;nV3GqVuM_U$_vRp19VZQdMA5e0x<yLW&1BOm$nr~b!*1J4Omd26h$a4SPS zW5Nv^rhoS5es0gcGo3wp%iG>|_{iaV@BI4V!-oJvJ9R3>NpyiT`^zBIWq>m8uxPeD z7Dh##*rA+-odboDoW5Jg3E7_HQN95f3ur%MUaN-4e3$ZPg=8N8umTjh^qDx~CMi9H zHl!B18jFxiySS@kH9pY^XLuBAj;Fjn)RWi0LxhxVOofIi70w4ihd0^JFAUa;oOOX? zV*LzNRL=`;6A|~Fan^7D?(ZEse0XtjkyXY@DTTJXJ=4o$d}4g(&fU#c$N!d2XY7MN z|BG*U-Rqxz=IKEEFEAbTV<}u405az-GHfy+&#!Wr4tv1A;~ZCo?=_lPpk<z*JV%}Z zO*dx#E@VX06t6Rwg2+bTl0vIc2z4M(j;|TEH%g0)v$@LiLdERXVj#BY&kR|bvRxB; z_KAu7ER1V|kWe2u_*Q>*hR0^{`ug(wp~o>&p+UmTPR=KP_}UrP7I1Ws)Q}FLYLLo( zI5t|_x9{}AvjR=iZ|w<mpOPdw=e+aJKKDF?80u|(KGw1T3_}DEiUt&r{r2BTV|%%# z8ykZc{6zJI{FX>ii~tG>*_wYb+@yH+TTF`6jVn<R|8kU9|0%(pQ3^CxRNt1Dmk%90 z((m_=966e0-0SzUEX&eVsZ13QFSlQAy>jUy`^S%-fJEro!eFV;mjpiYL&2zIgaSZR zfFOv<+q<3=7$u^6WRQ5kf*9i3QNI&Oz&Jz&YI6Mo%!d#Jfu<&=DnZX0QbV+H-p^}2 zMU(;?61~JdK*qsLiifPw_TlthDrOc$?^Yn)Q+{!<B}VTQD_^M>UU>eOKJ-h2G(G;( zvGwaWOs<*Oy>GXsKN69zYw3ja(dAyg)RbX&nq^N!{-iUXgRKmzVelHgsWN8ijYiFv zID$ZLglt9oh|f7c)jbg9p}agsZT%-R@Zlpz7v^TuEE^kZHIk&=ZtmW_n}}j(l=lio z5-2dEzqyFj1hiactkQk(t$QK;HBu{18_IJLcK;ShZaGNH%o6?fgjj{SC|RS>g5_0! zK(vxtwc=wsuW{yu`+Om&*=kXLpcR^Q(UgIe;-D|iRE2Ydhh6w&w3*QaFowHEl-W5g zP9OxWLcELM<Bbmfl=xuLBXT&C6pQ+vm6m?!YK~%GaLS!`73N0qy?5RD*B}22#k{hz zI5D|q&)yw>_=kVIY15W?^jK^k_XNp`<eo}K13MY0K;j|zrJ!%g%BmySwpi2iYCgq{ zqqV~YGItM|S?Z{lakT7HF%W<<lp7-lPcdKo15hFIl!K!Oh6q9mSYBT4^?I8(Z`K79 zJF2TN=n5S8h`<a)D5U^^ER~M3>8~5@L$Ek1)R`0VMyU!R%pImelwYU;mn@~HfdxgN zh<|W{UH{0-`w>Etz{&Cdzr8PwvFy0cJEyAdy>IDddb)e2d)A1g%tfSWTNEWElot__ zo!t?LB+joS4v;?)V%UN6KLU~f2?8dF6)1}%1hO4iKVmDkWyvx~$Tk=$wnK@FErugX zl&InCGrhd`?o#LEN7b!cb+>oBXQV_x8W7df{od>M?ycq2cfMscilo*>I!_(Ftjjfr zK_HMH@>3o#xq=V8Azl=PkzN@%yQ`qD!9KpfuUq@kW<n5@rpUoW!mtI60Bn-tJIK~u zwOVkZ$0~}aRv`Hy^GnZm?L>)=2i~}GZ8DyYMxzrO8&X9Epv11#v8+Oc5X`bP)e^zd z6z&^!-UpV@1{0zn6O|xQN+|>iJN2+h0jgTRC@inmrD&mxg01ro3=(@!=0MNo?K$1~ zD~(bzj-#75Z>DL=%vuwX_Ax+DGw1=QbvJ|RD@%(q&WB6iAp=!W>lvVX`6psC(8<6h z2-Wm(xj{BJBa{|6h#&~a=<+k{HmM6fziSJ4mzaFMN`Dp9{AX($0uiG~o!Z_!Je<XG zeCEvVB3(dv0V!nFItZd{5}?-9Jj*tlbTyEnbXO-$xsgi)5o(Z90!Tm&pow#aoLFhf z3M~sQl@>w(3P4SW3?KnnYnz5tZV}|4lU<((!ua_17Wpufg;wCMx78TB0-!iNoQ=oh zq9_nSN<l;}E2w_P6T+c4F3Y3#7cXCa+XsSbl~E7Bzgox*I><)#Svq{QJeO>29JjDz z+<Q_zk+lA`6M*IUxYjueTwTLsnXq!2VHHvB&}{02YgeytZ*O@9#&GfCJAUyK|CvaC z>Qn#qjW^yDk(|wDLKtpz%cL<DoJuLP+p;FFb_A_;6h(%oUXyxO%@j|Y<JfE!vjPDS zq%_6~q9ny>W(_QWg%cr`sx-@v13+dm&?CPIB(%aQU3|6X_XGbZBP%Huvssp=8z(oM zk9V6HreOk^Ss{s81BJB!0N}avXZ$0jy%pX1_ZGm1Oemo(c$!`0@;Xz?i8(OX1OQMR zO7Yv*#jqN8cHUj`ms(r5)%v0N^xDr6FwfIZeBu{>?&toI3@HYyt7`x}nM}-?*}H^< zwwiRPludtd@z;4#<XN`JQYjS?OKJ5qwFX}ewy*jlL@1R%RcgzJ@q_SxU8@6`*?pR2 zN28i}oS>oDyh{pt*NNG6OMdJFKk}X@e^6`v_FLZ)0#9yko;<k;E#|?9l|d!8X)3A| z&>AMuPit!>JCL{V4_5|zm$8xoDrE5N(>h#vOFuo6ClCziGE|}m-s!?adl;tXn<$EZ z{vZE*+Z{5JTxFN#a=sgvTsz2YTbwjgx>y_@>}yT)*@9VXt&6PCalV+%k`wC{Rj9mQ z_2QVh?4SV?vj8l~y?(`6t27uwB3*T!<E~=8@iEPTL3pOH3?SNo=@4|`o;ovVBzGNW z-KZUpC*$!103NvS{?TaELIz{_gFpD<`iaTA-u37=zW$BVyQjE}(rb265Cb}d)8RF} zL7Q{HjT~ZI`(tyz3bJRggF!_8r%;A0S?5%6gL1>*7y4bRySvS`0<j1BZ0&$HdvMLg zYdT#4K%&B=T3P?+^0}tSAtKWH>Xj>pdwYvTdN7-9ojfTKXS2DIJU_g%y0*d`*`bL7 zT{AFXu9%A?h=~Evix|>c6M-(Y$<Wq$kw>{Kln_D}S{N5}6k3zPwDMd>k)`f+=f>7Z z2;>qh%S>~>Z|R~hMYuqeB1L9k$g=FqFaEE`f8gB)5CcO(1pt7XH*d~n2j|aUY_uZX zJ7D1Mm>=YK+;;&$1K`e?GXPptCe-Y^sfGzRRgP^B&7q6;k0G?$Mu!ewxzmFYK!poc zA1NQ0OQRj|IRZ74h$bP_|Gt)n(g#*7Lru?|Icw<9T9ZB95`%zh^lK_~k!Lo*i-D6Q zJ~%u;fa!F+$WmmyapM*s#!=*nxs1!G_XY?orw0X*mNH6`L@9+*L{T&zPvbbAOeWKn z>1aG2kH$%oj3(naij|Z}GPdSwk&;SfX_~}IWd59?F_ok}*EZ%dRM@*dE~l{iRn4~5 z>rdF$pB?Cc2yo-(t$+Sc|Jisv4$01lD74mp@9+QgxpNoFXJIIZW#oSE4?J^b*R%mf zqfxpzM8`Y@_M7_N-WZHj=rZsLx7L6J=Go<TCup>AE}92U1sz6;t;{pC7n=ZN(`FJv zfF|EFD<q0?Yn8dQJZ<HB)V?lUxM&Vqy2x~q6GN6Rh&apAEK7?t%d)J{1rzH+Ylghg zS(cgj6UYlhR7&2tecLA~xHncJ)4%{yNTrli3K8?t_|}~ArBrboo6(dcNgT(<*G)xA zpdcb^1|dykDx6qfzkU0*5&{Jhvk)>#5=THW5gX;UY1Q@aI%HW!#6qBE1^{!8HpQ?R z)4<@SF{8;bH+l4e7(ei#4@o60wcj!X2oSWU*Iv7H`SMjEq^oMBeINj$L@5M3^Wnd? zl)+-RCpQBeDiKgLkcqpbElc$PXk2hQ2+}^LR3ke!=YVa5)r=zQuA1m$bB_8}>jYN@ z);>?8sjBYsp9{MO*dUO!e{F4UKk&diUwrY!+c$1xX_n6C*RNaw#G=qz7e!H|X_{x5 z`3DMAk+KF-%m6H<GPVu&Fr<{9-D_2cfLap@)S7@nN@OLCw<j>85OJ)OQs$Z%t5CCu znjTx(DnZk9Lm|e=C|xWHfhbTD2_cCzlO|hZ2-BD|UPDEp7mEcG2`K@f$a8I~FN0YD z0E0I1fTW4QW`&qmU8Ia<i!qH8QURir#=^x|FiI(uxxn+;e0F#U$Wla+jD!+~x?R#p z;LPqRGv}A%O|}IIXyRT08|u_5wzE8nbhdumvcUS3z7<m1VUAlXvk^sSNFJ8S6D9A~ zw1H&FxvI_pL}Z1z*dj*hf_i%T44&ki`yq@Eeefr~_`(b6VnLe!@?ZM%n;R#_)9Kd9 zEnv_^Hc#id&Wfxsm%7lpAdLW|Nf$&~>paUzn~n`>GSkDLrHjQP&C)E*(=?rBsn(i_ zl#se0wxo&N#od+uo>D0#gc3qnCwc%PZFmq;s3?vRh?$B4l~PnJ**O3J8`VifK~w^y zL?IE$&PkL4jZ-2KXIW;mZHS9JbD%RI8uJOee2`!QBF;&pBqRm~A*4kLnF>>LLJkOm zO%L0`Vxm+h1F=A4fl*ZCGFK+L4{Zk>5FdH?hX=LdoIoc)7QwT7^3MR|23L=<p+{|G zKw<#U?G9N@#aWLel9`2&0H~nr5y0O3MQ^gA!9aYp-UJh&%`^}m-Y1&qC$zZ<weX7u zfYxWvo%`@J&pi9Do@M6y-uc**PrOGdiNaO~!c!bNBEFDPAleSLA#Yk`y(NX%SmJWV zJ4uy2_X1Es0+4{xbYYIZ%#h`oF0{>KV$SkB%Q6&bvs6tjB<23zUZD#q1Owc>d6P(w z$CD%(5$U4H4-O8sE{Y;IOS+WGOj0E=FLEMg0$mh^E=-aI<pl^dCvih4AVL5xbgl~x zfN5Tsk)}x_fDj0*k%Z0)KqO5>noR623L#J`Wj1{Tb5KSp)y~e=gAYB}FV858dlDtj z+qe&4kW*Nxsl0nl1At2|2N;8CgSDNKp~EMl+1M$0VvGpNdhB4k;(<w9Ck1=>w#Ey! z?ynOufEP66?GGJEz^(E{pO;!kS({(t>8F2uZ}0Xmee#!He&xlpXLojXc9J+E4Gdfq zw*EACnyaP@kSQ0~M6B8|%ESiPsUAs{&5|Z9rTXB9{^AS&<M%GV_13Tbw@)7&%=1ET zZmt^<iJ4DIC<X?BX__r&a}Z)QiXVIQA*mt;kOB`64}rzE-g<jBPZ?-!ZEZSPNs>ee z+&{RZwZ^g@ny#+rMUkdyBr%TTMVgN%lf%RP@p!zuv3=v_joHCr6h(QF6H%n1D3(zi zF>@4;v@VoVahfu*RI11`6d+}^zJ7v;@^qn#0;QNtr$R_T0SpK<pU-tsB;#>j<fGA; z0Y4eQ=7=Vf=`%n17nB_JWm%Pd8?)|&8C=fo7(53)Xl6Edc^>);vd_)#fb6TW*9B~P za{vHJDnz+^2(!WXb|4N1^tJ*M6o<?jK$HL+YORHo*f1xo9R_Nr<gPMlSht_0lpp@^ z-#mBj!oUCczx(aq{_OjI_(#s4KRX_egs>hUh$t1J)(jwPkh2qhhJumcwuYbPjc>fM zvwQZ;nRCDU+!tPZ{cFr{_1e{vgI(q`6B+yex8J@D0Dtu-|H|L^slR2&bBp<WGFcHQ zKmPHLKmXkGS{ExTD@sMyg3p+i01F|~G=1~UH`6Sejz+)!oButI$L6R^#3+Omim9-1 zU#5{qrS^-NwYHHUx-dY9)>LB&Xd=>@n6xg4bfGnoHc8!Dll_P0^XJd)?w;#M<UCQl zrIZue00+;4z?g10Bwo~$yr4&S<`~TF!f}uMyTnwhE+1o1<(b)t(1@YQQ$>erag`%& zpb0aSy`}>he<fiyLVw5cwIDU-oKL_EqMe3)2_fG1zNa32<gr&?eHn$^+1XiLU6oRK zxMElQZws)ESW{B@Ld)t7t*@=daXg>Ty`vj5gHoo*GQQ6OQLL@5@9yjZLY^15;nsAz zf(WZ?tB8>2`N96anE>n&7!gIDWw&nMDT-ng#|9!YDL<sCtjdrr0m{(6*vtHOBzW&m zI)bn%?Tn8dGpdA{qY5>wF8n(mxc}tI%_d;ijn1J{FZ+!u&soO-B(T)@-%mirj)qrH z^Qtd3%v+ijRgr1rVAB$HcEkztBn#~Qqyl`Zik}z+F;!h2^8kO8*D#_c426gQd?Z5e z%G&yS-}mPXy{CoI*`e3zs%U%8?q<CG?VtX;Pdxd=t=qSN1tQF5hc|ECM1<ApT9PDy z5}2eE>+5UpxbJ=;Ri0;8uDpHu^5xCV&E4JI2OoSO`|+pKMW!Mp1m;<OIGY_F9HKxe zBs1rE_Jcq4=*g2C8ylOaw|At9wAP1*hX)7yLWt>fnj~YTRO=_|LcW`^^5L+c(&|ei z;@a8?1Hxj50IhW`VIM+cL?8y1049sXZu>w^(CpKjp#$7xX6>o@TFGOM;Lx?+x0OIh zMEIpI{UHQmdkvMJo%21V@)%G#>R_0c>RAFxs|F9h{6uJnwReSbBjR*A9ZyF`mv>;; zMm-L<ei>iV=x?wnvg_Bbz5d3f>({TdOUPp4YDWbr<a?fY;==h07}Cy(cyDk2YhQo; z(xpq+uU#wh+(aIi<`EJQiAf-ilF_^0{lr5LJtBnAy2$g~&_I-uwHBlYt+?KOJ$>FC z$&73o!gHunGL93IX>inJL<ac1-~avjVjt1TzJQ2{c^s=e&u`th1pp^DPCWYX4@fC( z#pZGSA+&oaaZmC>tpaMap}%;-01AXMM71-9f6{QnQZ<&1An2(?HCpPlra-fVQwW7% z3QGSfaTe=4L(dTGAN?Kt?ISZEyL!@n!dyTpK*sTzGiSC>pDv1`47V!RL0bZ&iM|Wx zxhdOtW8=gRop|DrhabDMcYD5=n<IEosIxg*@Yd$`csw>e<0ZVgn!QIabTiQAZ1BQ^ zRnyuA&>$c%@qDrP<3IZHYk&HuQi$(={Lyzk^f+@n>wy~FW@HMyB<fHPy8!K;wZC>@ zebliz0Yq0**1(`v_YEy*CJ|YWV%xHVx<g=Slw$Xw4qlKia7M1{W0pqLEbTNeeaw*g zfQYeDu~NsIY=|%!k4B@@K!N^&{k~GbOI^n6?A`ZjoU?nSoUBL_hyX|gqzgclLK+Mx zOY_U$e*0j5e{=KX*5)R$795a{Yx_XR#|A6r=71d0v`vQ&azw*14tySiYUvewH=>+6 zey7c%{>;9>kDU$?%N!vFEl{vWG;qg&)<#$>;bbvijK(9l*I&o5bia$N%Ox);06^ls zdXs~qNWU{5%G})jz5UB?y)~O1KK$@QGKwuNOY3XbuAMx&p>@H;ESlhbW5F#I^0ior zu%v+&4=nG6e2rKWoV1FtfOSI}0JM!%bOv3)DZUcOd$Lz|6gK`0=Drd#l=;=ZVh}?6 z(PmPm*+#Q;@iYJMBOm+N#|=TCN&!P}+x5swjwEP^kQO<{wxzcWmv?P%2VV>sL&L{S zjg5S-X5%p^{;h9mpq60Jq(U@Yspo#@`EP#X5;33I-Pt^K%5G+eSFT<?dv-U9lcv(8 zHohJA8-a|sk5xd1E}vinBGAv#@D&E&O^oJJYyPWhn}|cvEa}?gj{EF$$KUY9G43z9 zIpxA2%wKVxS+^C`!brl_0VnbJ7k=SmQko%)j%rcmTVOCHs-GZ+h-SmR(enX9_BDxS zNyhf$4mOTI=v<)sj0I|XOZd)zEuF?kD*p!TCur>inZNz*Z_noQ>2zvPU@0MvBZ0Vn z;>4XhcSfV6pZV;%#U7&6gi6T=wfyHA_Z4R?T`v3t4VcwJm#%uL8g4DvS?!eEcfu&8 zDcXrt+yivU3uu1T+#b#D1^`M$0Eonh+P5A7sBC^1dyi(_9$PR>eU71az4|9sq`fvP zp!!DV*9rZ8LH}32hR5C3ny)W?<<&2J@dajj>zm&)yXxNFeiTJ__U`x~p)U0H*7jsF zZAIv7xQ!Xwnp(MW+)AKu!;(B8$P*8=YsVDS4G*Q~C(_O$va#%;!9i03R&EFYh?=!q z?5)|3VeN*PR82F$fUr1(-}rTW^^X=So5lN|n!NkHLL_cse*XC{JoVI{l{P?$8iUq1 z!xG+tUd0A``Q_Ch&+;OQBAc85Tzf8~Xl^F$9lF5O7Ky2UY#ncNIFjYeQebVVGf4AO zp5EEs-<JTqb$V+yp9vwZUc0ihb2>@l`QhRI{{E@c+nZY(n)KPTyW{bgxL}q&vUg?% z)@CQr%vd*s0Itr^evCjX2adSpJEJgpqG7Z<I1kM*X{-r)miRITQfI`{jtI!~Dm~3V zk+W;yP(@XJ<Nu00v6Vs6>DPWm{?@NVZ+(6I>I=92#Xq_Fx&M-<3#@99l-o1(j$dXR z92|V)Bmbb8vvl_`$xB~(_3G8D&=J3IH=Bbon^<a#vUHkpZ&*v$lTMx5zW@FQ0dX>! znw@Za`_#d~L6XGd$#`?~q?B@dduxAxAIgpxHvr9`94Mu&Zf|JfKjjgklNstGI-Yu_ z{zp}LHZ^=e*`|*MW+NALg)AXT&lQkMBjirYW5>9xty?{r+bB>0<<Eacq>DUDb*4wN z^x7XjcX;Npi;uoXDTOS4^hZBv>X@c5%>>w)vza-Xd!BQ(T0Y1&TwR?$`|Q7z5}|rZ zEg_QHm;2_>z}i0+SvnJ3E6^&}iQ{b!4E(vzem;)H(@#G=xMV-V=)ZdP`pU}6WHMUz zcof1$E|J#Tr%sM0D<}m*tc(1{)tkU<GzQFdF9=tzcxPfXjkF%VD0DRk9R6cVDI^2p z6B{j!4~8nGlz&`wWr=?x@t31!Ty|-w?Q>`XgPrmz)a2gOqIv!KAdKhu**`-s{V{3M zIi&>`8>jNUTL*i0PHb*Dfst*zdxO{_Jwd?-wbrIB<VqW3-#~Uep8AYN-_Ot=&>`r~ z-b~;YgGYqNAAbTHLF(p{a`Sb#z3<WL;P7J~ct24w#K*tK1*hvNU--gv7tZfK`QE3N zos@W##M8-Sb8GXBH{=8Fd|-EXcQ#93e);9!{hiOh^wNt;DP|Btf?eRN0-p>CjjasD z9z@I0PcDbmxD$A(R&Kb1r<idbiH-z@?$qpg<eOJf#ucY4TC3JNZtm3nuWBsLruL<I z7Hqbqs{aaLkoZ%7N5A$m%;t08y{Dd<Jn?}PCg~zY1Vlkhi$(tOE3bU*(j_WD2$VJ| zKuIZWHZTHK;k~6C%6y}glWs{Vl#)US6)6{NEtLtuM#L%$yFBqyun0IX2?0Sca7!hI zhS%7~-|#J*yR5<LSU%urG#)(M2f7JWcjTF8{(37pvH4EMqmkM?`QSqje&)A+L#p^s zUisg@`m3M%@{2DD0Z9@IA;*)+=H^y3N|I#6Kz&>t28QOyHh2!$%G#CIY}@EABGKsN z9Pi!K;+kEFRXK&)2~az^LTQvwL<Zk#odD%J%FUV;5lvMf1h;|=jT8m}LC&Iq4nRKm z{rcbj^6ZVT9^Af@oLJY4LPX=~)Ckva-@N_ozy3EbedVRASFbD<bFH=E{TorD1)-c3 zdVuOuEho>xSK7!)bdhIinq}sC2obHWtWKum(P)$;qa+@U#*@i-G9HhUB#EL(Dj7#n z6vs&tDW#N>Q4~c{lq5+MC1#>2rKAv16sah3x<n<FiXtIUDP`32!pIecP*SQWGP6+# zp;V-lLM5d@DbUPvA*7*PxEWZvR8@q0AK$LyxHSzdw^-6yebQ2BRR|P9Mk)s4tCz2Q z_A{Sn=KJouxVFA>@xq1k7cOjVZe>|M8jW*Z7}+uO#;Y|wQ$w+VtMG$BqZ)y)nopkf zzMEi5NZW*TP<^?(n2)4vvQ{-_9pj@`7GP*hzzEU-jZR72H3tv`fL&JE8d^#7X5y_= zYI9p2?%%m_BiF@bWo>nR%{=RqpZw(KKKq$0%gw|#6H*{bB@I*3WhO(Jd5pGu#t8K^ zmvSjLM4q6k@kQ1~HmUV|Z-2J8-;5%p(4D4E$o2MQst7!W*>7$FfinO!`+(M3>mpsG zS(awm!U%l;U^HF1@51@r)2C0K+!&3<2(Y%c2125cg(d)q<2V@^seTlxNJ=xOq9`)6 zDT<U*k%%JmE2-?1ltwGLzP@(;!r3T_+-a}Nfz)qoefra%281Mu&tEvRv$JE^=_@PK z6DKydx3&Smh^LJR+ij{4rX}=H?%X#RHmL$agMam#Pp|4GP^+t}4)?Kxs1}WAL&r^R zEnA~xL-f&V$n2Pg>L{`to+If#l=E#SKtP;K*GA(hGZ>jS0MBNJU;3XfT)cSRd?JBD zMQW5JQJknKk}@*)BhPcKt#;hRGnkG<ElH}AHExAs_LNrczYOF~#BPJ}2=xIF;WrV1 zsA^pj6M6w))=bib7gR2kf`N%i2`QyC@7x5lB4Q+!2EM(&&wG1Cq2-k;rIv*NKuVb; z@pzP2A{{dk73C|4keKLmy4>D*-+lN0%+LPp?(XgYAQb_`{{G?DUVkl4qSI$~zwhBk zHa9n?)9H9To=hf5GD>1I4`q!OP+J_Gg#@<&zD}dU-3J)oKM(6QA^Og6c=P6M<0(~n z$yOfi-XCBF1grS2tWUkLM5q?f(nZHl;_0kDJsSx0XLaq==hDa8fTJLmFOUv}Nq8Q| ziEF+wrFlHp;!&(JlFHsVTf#GN<<&}lzXpt~sA>xOy8xB46!R>*J9)=EVpqdjpja0= zFN(Y<%)blLd7kH4p67W{<W%GW5d~yvmSveHnlBc4k*Aq1bU~!8ISFerbDoSkjO@D0 ztjl+=OR|BPAyoR<oxgDLqaXd~csyy<Vfh#K(xunG`Q|tO(|`OACpOlfeDcXtr%q3& z(>RHhjHI&Li#eXPo*R9RV7-^=GLKt5NgF_7%ibP1a)V=YD&rc<CHO<!Vp4}?EUnqF zYV{a$K*9GE0N^}m?iB~7Uz5?`Gz{S|davWAb%=T$krXiK0bTmnF1Ds$LOBG`{6DeP z@B=Vw>ySrfV2G7GYORYx=S5NES&<icmKV7$bY7T=R1|q$7_~u`<yk(T&kyIb#e6=W z&(m!2$}2BF`Q-bWuxyieIh!38x;TIS+{VU65+_OugGC5Hfub~Nsk6fB&hlmMCR(p9 zv!IG<Wo;BSOWDC)6kt3&oR^40#jx|Er9*RHKg0zcoy@skIP+vgK!IIVU2Bfm@jFcZ ztN@$V))i9L>QWIBhx(1sIvcS|t!j_OF%DJ9Egk_J{0AX0B!R#VJP3y+VqhZBg@MP} zc}W&bMN#Ah<$0cEX_{t95<mLz_X*$s-<8s4=l}!5SHJov*RNkm(`<ERZ9JKbM&nU3 zisK}TVso(fxR20S>3#g8)|~0;=s}H@({;7`EdFP+g=I3Kmtf2Yp{B&WCq%GZ&#<)c zE3Wb}|NraWOoJo6$dI|}Jrc{5&BhS1N^~k~Noy2Wja96av8IYz%xA`k4ncY8Fs7jG zU+;X~HV<ge^%d1^M}p3&g0sV{QFhm+Al%zBX4p+O;keZJAs-_><$G?D^t8S1;UsBV z(F8vUuXaiD1%$Rtg9gIU$^aiC#A#ZHFB{zbi+$_RuMAXF4H7Pqcs$14x~J4c9{R)Y z@g=`iFmR-Cf7A!p1bRM>&kTNL>nGHg0m|W%Ty8{zkcBo_bIEeq<qOzT)A!GTA$@M2 zI;tAQWFN}AG`jiTZ3{g3hu=%pOV7(LUEBKU46XSi%^$X|m-dm2Esg0)a?$)%3z2rn zT^l0SIofL3_@vNlyXGf%skSl$f)f`)s{(lVwC;KQ($IkacSh>5iw)!3%prD$J$srF z{`l77)}E;B?NYh9qmSxg=x1P91HyaBWizd}QRA6Yg~J_<Vhg=p+FMFP&B|Stg~M4) zL;hBo56~?SuYd&PV~^1xyWV$U;Px+&U6T`frB$9ySYLU~On!wBkc5z0;JJV=<XA;* ze4IW5vDz);qt4zV+-o0tDw`nRp*z@pFZf6kpc)Sc2eak}KKek%S`|3x6$}@6*~Z-p z;trXO$G8pM!`)`x0&=-Y9_t<>)v48Gw0##P#(|I2W&l%r7mgCMR1DC$phAbGOerF* zJ*ys0?!P%#9vv|vy1(0Vukf*82j~JHniRM0k;g|Kd|n_fbKil+En?gjddT;BnSt)z zFdTGT`|#+R(5`4H|A)bPUQrKgwvf%gO#XHgyh*&98lY?A4UDv$-D!7Yu6|&3Xpuit z8_s-P18h)M%Uu*a%`e4m5qG`FajUP!U7v#)ziTJrp50?<Fd6uAIjn3lxT@%>8l329 zy2Cd;B$m8>=Z5X_M`}oSl^I?*V*BXq14Wj-w__V}9UCa?`E$xxtMu4Q9S;H;Qd|am z4iMI|*%(6MO-ub<eqY&|bQi=}1>j+zHVF!8n-VY-q765s$}zz6Hszi{*31IzN*}yS zz+^~?e7yczYs<X;=USJTVRkb2aBjEuC6qtcyYgDPLgWX&i5^-3bH`xv{;yVddiG{M zM7_im&9y{$`3AxR_mCbEM9&E8ini_FX^*jx5BYh|BU>Xt@5yB2rabQ`*iM(R8XUbv zz|0EBpjhEY^(c1joU;ZgCAfbfV$2;v;}(F(8`p>yBEh-<s<TdBikjW?)54L)M9p-* zqSH2J(Qpf`BNfU$(D>2;)IU`Q!AjvR-~d4K@TA^Gc$eq%!1>%9461Zrw-rQ{lIe8= zA!Llz22&Tz#@)YyqpWZ}AF`(m_%3$?`riNt(a;{M8Q$!rRZah;I0goCjBO-<>>8F! zJ;mGb`$5bB!qG8&>$4^7RM%=}4qwo`*OCfRA{V}Hs|@-xzok;JLahph&QW-LT=m`@ z|GTjKW1F-cqw)@in($&4;Hb;(-5}q`{zHA6Nkg+(gR=*HkjChDnnurQz3)%~UVc$k zA-CN-7p3kNA!Qv!7}%y;R)^2h;~G6pV9P>91Mr`IH|8e%Kg7NHNDFZP=<EvXJ`yjw zXLwa^24PN{t2Bo<8Sipu3nj95Rrob|JGBUcfsFT>WYL-#R%!P^brfJtHB`6}gIDV+ zXrkufTeVi<+?dUNIn&ycYLXhdM$gjfvo?T^3Rw=RR)-uD`ybOJbaa1&B@n_u`e)ZP z9x`+8NxQwCSzU|a0dBotT_2piI;8gcE??PzeeLhLX?GD?q}6IX-;K+E56T5F)jasa zk3k;c3BA-*Zk^~yE$(}kisn4-nPbC;tY4FWXY=U0Bp|vgD7x1jaM!o|R`?gEb@Y4i znmon=aqRkV;6b*3W_C5snp<~k{zLy!#NR_|y$J3a^o?_At689zj2KKg)dX$YUK*QX z!yXRIQo=&lRp>%Fx;l|vtFO}>1(>S0u{D6W7Q~CW%7ZGc;d{gxc#QEHW-Wu~A<*+u zEw*-z*MT;0g`2J-egnR3q+*p*QC(8>0#CadqkUy$>y7KW(Osf~TG)qQ|JVuOWh6GC z7x$W~I?Z&{!QtJ-W3M^`b%Vzf3b$P&(NSk&qkGi_u^NGdXfv>{)`glT?igT;KXx&& zxa$%(nLkb5soLAng2o;p3eUt2n}|qhW#|7be^+!%K<Dl2<qL9?+23P~z7%e59zmNS zXsrljR{^OieH*vviwBE${XgeYwV`GP>R|m)0D9y@b914pWs!TioY)xjJR|}me0>h1 z$LgD5R|P+$SI~XJS^C*qRwet9xpptOb$c-$%ZS|3%?<8p&D5`ZL8;Jk7a{?@){b48 znA!r@GehnM2Uq>Xm?0ywwgfiD;?WEih8zqU4{lyu>=}GR-bXn3o1-84M?Vkib@*q& z4%Q_0V9U*i`J&cv8}us{@XZvw{PVtzv0=2@kMCoR1~SAEqqT^tO@RK2=tvcWdE);8 Xtt-}#I6Wg@00000NkvXXu0mjfnwddW literal 0 HcmV?d00001 diff --git a/resources/profiles/Meltingplot/Meltingplot MBL 136_cover.png b/resources/profiles/Meltingplot/Meltingplot MBL 136_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..746dfb1fbb2c536d060b43e8b13588615694226e GIT binary patch literal 32398 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Meltingplot/Meltingplot MBL 308_cover.png b/resources/profiles/Meltingplot/Meltingplot MBL 308_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..cb4df7250e9fdf42d760246a57f121404868b0c5 GIT binary patch literal 36673 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 JPDHLkV1hb&_zVC5 literal 0 HcmV?d00001 diff --git a/resources/profiles/Meltingplot/Meltingplot MBL 480_cover.png b/resources/profiles/Meltingplot/Meltingplot MBL 480_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..fb7e11d5b232838b4b3053164e302368ec482c59 GIT binary patch literal 36570 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Meltingplot/chx350-printbed.stl b/resources/profiles/Meltingplot/chx350-printbed.stl new file mode 100644 index 0000000000000000000000000000000000000000..34255a2d73679ed9bd386995cf9f4cfc39a7ee5d GIT binary patch literal 183284 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Meltingplot/chx350-texture.svg b/resources/profiles/Meltingplot/chx350-texture.svg new file mode 100644 index 0000000000..130afe556e --- /dev/null +++ b/resources/profiles/Meltingplot/chx350-texture.svg @@ -0,0 +1,5 @@ +<?xml version="1.0"?> +<svg xmlns="http://www.w3.org/2000/svg" width="880mm" height="422mm" viewBox="0 0 880 422"> +<title>Meltingplot CHX350 build plate — 1C Navy HUD (outlined) + + \ No newline at end of file diff --git a/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.4 nozzle.json b/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.4 nozzle.json new file mode 100644 index 0000000000..1f759767fa --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Extrudr PLA NX2 Matt @0.4 nozzle", + "inherits": "Extrudr PLA NX2 Matt", + "from": "system", + "setting_id": "AL4mb7soA7L0FKTb", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "10" + ], + "slow_down_layer_time": [ + "9" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.4 nozzle", + "Meltingplot MBL 136 0.4 nozzle", + "Meltingplot MBL 308 0.4 nozzle", + "Meltingplot MBL 480 0.4 nozzle", + "Meltingplot CHX 350 0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.6 nozzle.json b/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.6 nozzle.json new file mode 100644 index 0000000000..c7984aa06d --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Extrudr PLA NX2 Matt @0.6 nozzle", + "inherits": "Extrudr PLA NX2 Matt", + "from": "system", + "setting_id": "OCnoqOQbcfgikNmA", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "15" + ], + "slow_down_layer_time": [ + "20" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle", + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.8 nozzle.json b/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.8 nozzle.json new file mode 100644 index 0000000000..a28a1feca0 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Extrudr PLA NX2 Matt @0.8 nozzle", + "inherits": "Extrudr PLA NX2 Matt", + "from": "system", + "setting_id": "HO2NCV1i1l21mokh", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "20" + ], + "slow_down_layer_time": [ + "38" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle", + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @1.0 nozzle.json b/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @1.0 nozzle.json new file mode 100644 index 0000000000..545acdf113 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt @1.0 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Extrudr PLA NX2 Matt @1.0 nozzle", + "inherits": "Extrudr PLA NX2 Matt", + "from": "system", + "setting_id": "dRH4HfWHQPwo33cP", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "25" + ], + "slow_down_layer_time": [ + "56" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.0 nozzle", + "Meltingplot MBL 136 1.0 nozzle", + "Meltingplot MBL 308 1.0 nozzle", + "Meltingplot MBL 480 1.0 nozzle", + "Meltingplot CHX 350 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt.json b/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt.json new file mode 100644 index 0000000000..b9f864f79f --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Extrudr PLA NX2 Matt.json @@ -0,0 +1,79 @@ +{ + "type": "filament", + "name": "Extrudr PLA NX2 Matt", + "inherits": "Generic PLA Matte @System", + "from": "system", + "setting_id": "qmPRaTcPlmtk6zB2", + "filament_id": "OF1PznHI", + "instantiation": "true", + "filament_vendor": [ + "Extrudr" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "filament_max_volumetric_speed": [ + "30" + ], + "filament_adaptive_volumetric_speed": [ + "1" + ], + "filament_density": [ + "1.3" + ], + "filament_cost": [ + "13" + ], + "temperature_vitrification": [ + "50" + ], + "full_fan_speed_layer": [ + "1" + ], + "overhang_fan_threshold": [ + "25%" + ], + "fan_cooling_layer_time": [ + "100" + ], + "slow_down_layer_time": [ + "83" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "filament_diameter": [ + "2.85" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.2 nozzle", + "Meltingplot MBL 136 1.2 nozzle", + "Meltingplot MBL 308 1.2 nozzle", + "Meltingplot MBL 480 1.2 nozzle", + "Meltingplot CHX 350 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot ABS @0.4 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot ABS @0.4 nozzle.json new file mode 100644 index 0000000000..837e55a36f --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot ABS @0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot ABS @0.4 nozzle", + "inherits": "Meltingplot ABS", + "from": "system", + "setting_id": "NjuuWYHSc7IlwWAy", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "11" + ], + "slow_down_layer_time": [ + "5" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.4 nozzle", + "Meltingplot MBL 136 0.4 nozzle", + "Meltingplot MBL 308 0.4 nozzle", + "Meltingplot MBL 480 0.4 nozzle", + "Meltingplot CHX 350 0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot ABS @0.6 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot ABS @0.6 nozzle.json new file mode 100644 index 0000000000..d73964b709 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot ABS @0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot ABS @0.6 nozzle", + "inherits": "Meltingplot ABS", + "from": "system", + "setting_id": "md24RPsRyxBhGRoW", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "16" + ], + "slow_down_layer_time": [ + "11" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle", + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot ABS @0.8 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot ABS @0.8 nozzle.json new file mode 100644 index 0000000000..82c5ed8935 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot ABS @0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot ABS @0.8 nozzle", + "inherits": "Meltingplot ABS", + "from": "system", + "setting_id": "Y2LYeWL7Zxel3m0c", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "22" + ], + "slow_down_layer_time": [ + "20" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle", + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot ABS @1.0 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot ABS @1.0 nozzle.json new file mode 100644 index 0000000000..a74a3a1925 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot ABS @1.0 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot ABS @1.0 nozzle", + "inherits": "Meltingplot ABS", + "from": "system", + "setting_id": "G2UYPHTEWjun65jj", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "27" + ], + "slow_down_layer_time": [ + "30" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.0 nozzle", + "Meltingplot MBL 136 1.0 nozzle", + "Meltingplot MBL 308 1.0 nozzle", + "Meltingplot MBL 480 1.0 nozzle", + "Meltingplot CHX 350 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot ABS.json b/resources/profiles/Meltingplot/filament/Meltingplot ABS.json new file mode 100644 index 0000000000..c947cd55e9 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot ABS.json @@ -0,0 +1,70 @@ +{ + "type": "filament", + "name": "Meltingplot ABS", + "inherits": "Generic ABS @System", + "from": "system", + "setting_id": "zVQixgSSn1jm1c7n", + "filament_id": "OFVIMei2", + "instantiation": "true", + "filament_vendor": [ + "Meltingplot" + ], + "filament_flow_ratio": [ + "0.93" + ], + "filament_shrink": [ + "99%" + ], + "filament_shrinkage_compensation_z": [ + "99%" + ], + "filament_density": [ + "1.1" + ], + "filament_cost": [ + "30" + ], + "default_filament_colour": [ + "#F8F8F8" + ], + "slow_down_layer_time": [ + "44" + ], + "cool_plate_temp": [ + "110" + ], + "eng_plate_temp": [ + "110" + ], + "hot_plate_temp": [ + "110" + ], + "textured_plate_temp": [ + "110" + ], + "cool_plate_temp_initial_layer": [ + "110" + ], + "eng_plate_temp_initial_layer": [ + "110" + ], + "hot_plate_temp_initial_layer": [ + "110" + ], + "textured_plate_temp_initial_layer": [ + "110" + ], + "filament_diameter": [ + "2.85" + ], + "filament_max_volumetric_speed": [ + "33" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.2 nozzle", + "Meltingplot MBL 136 1.2 nozzle", + "Meltingplot MBL 308 1.2 nozzle", + "Meltingplot MBL 480 1.2 nozzle", + "Meltingplot CHX 350 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot ASA @0.4 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot ASA @0.4 nozzle.json new file mode 100644 index 0000000000..f567231b8d --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot ASA @0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot ASA @0.4 nozzle", + "inherits": "Meltingplot ASA", + "from": "system", + "setting_id": "4EBXMyiXoLrw5rLC", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "11" + ], + "slow_down_layer_time": [ + "2" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.4 nozzle", + "Meltingplot MBL 136 0.4 nozzle", + "Meltingplot MBL 308 0.4 nozzle", + "Meltingplot MBL 480 0.4 nozzle", + "Meltingplot CHX 350 0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot ASA @0.6 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot ASA @0.6 nozzle.json new file mode 100644 index 0000000000..96553662a8 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot ASA @0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot ASA @0.6 nozzle", + "inherits": "Meltingplot ASA", + "from": "system", + "setting_id": "2UdzXwYGT5nqtcdK", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "16" + ], + "slow_down_layer_time": [ + "5" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle", + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot ASA @0.8 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot ASA @0.8 nozzle.json new file mode 100644 index 0000000000..9e6d846c7f --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot ASA @0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot ASA @0.8 nozzle", + "inherits": "Meltingplot ASA", + "from": "system", + "setting_id": "4hk1aKrMkppVYH4z", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "22" + ], + "slow_down_layer_time": [ + "10" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle", + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot ASA @1.0 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot ASA @1.0 nozzle.json new file mode 100644 index 0000000000..e8bc7d7a32 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot ASA @1.0 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot ASA @1.0 nozzle", + "inherits": "Meltingplot ASA", + "from": "system", + "setting_id": "JRSnSdwkvrQx8uH8", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "27" + ], + "slow_down_layer_time": [ + "15" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.0 nozzle", + "Meltingplot MBL 136 1.0 nozzle", + "Meltingplot MBL 308 1.0 nozzle", + "Meltingplot MBL 480 1.0 nozzle", + "Meltingplot CHX 350 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot ASA.json b/resources/profiles/Meltingplot/filament/Meltingplot ASA.json new file mode 100644 index 0000000000..180ef14e39 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot ASA.json @@ -0,0 +1,70 @@ +{ + "type": "filament", + "name": "Meltingplot ASA", + "inherits": "Generic ASA @System", + "from": "system", + "setting_id": "5VuPxdOXfTIidM4X", + "filament_id": "OFRdywGp", + "instantiation": "true", + "filament_vendor": [ + "Meltingplot" + ], + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "255" + ], + "filament_max_volumetric_speed": [ + "33" + ], + "filament_density": [ + "1.11" + ], + "filament_cost": [ + "46.65" + ], + "default_filament_colour": [ + "#123123" + ], + "slow_down_layer_time": [ + "22" + ], + "slow_down_min_speed": [ + "15" + ], + "cool_plate_temp": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "cool_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "filament_diameter": [ + "2.85" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.2 nozzle", + "Meltingplot MBL 136 1.2 nozzle", + "Meltingplot MBL 308 1.2 nozzle", + "Meltingplot MBL 480 1.2 nozzle", + "Meltingplot CHX 350 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.4 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.4 nozzle.json new file mode 100644 index 0000000000..5fd012ed93 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PA6 CF HT @0.4 nozzle", + "inherits": "Meltingplot PA6 CF HT", + "from": "system", + "setting_id": "yUlzU6KMVx8bpxj1", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "7" + ], + "slow_down_layer_time": [ + "4" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.4 nozzle", + "Meltingplot MBL 136 0.4 nozzle", + "Meltingplot MBL 308 0.4 nozzle", + "Meltingplot MBL 480 0.4 nozzle", + "Meltingplot CHX 350 0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.6 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.6 nozzle.json new file mode 100644 index 0000000000..4ece916d20 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PA6 CF HT @0.6 nozzle", + "inherits": "Meltingplot PA6 CF HT", + "from": "system", + "setting_id": "9XzYyYbJ4jnO4nhJ", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "11" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle", + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.8 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.8 nozzle.json new file mode 100644 index 0000000000..b1b4d489f8 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PA6 CF HT @0.8 nozzle", + "inherits": "Meltingplot PA6 CF HT", + "from": "system", + "setting_id": "BMbLehqxegpSvMci", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "15" + ], + "slow_down_layer_time": [ + "15" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle", + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @1.0 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @1.0 nozzle.json new file mode 100644 index 0000000000..b2ab6f3cf5 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT @1.0 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PA6 CF HT @1.0 nozzle", + "inherits": "Meltingplot PA6 CF HT", + "from": "system", + "setting_id": "7R3XuQlzD8IHq4PZ", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "18" + ], + "slow_down_layer_time": [ + "22" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.0 nozzle", + "Meltingplot MBL 136 1.0 nozzle", + "Meltingplot MBL 308 1.0 nozzle", + "Meltingplot MBL 480 1.0 nozzle", + "Meltingplot CHX 350 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT.json b/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT.json new file mode 100644 index 0000000000..6b2852b4b2 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PA6 CF HT.json @@ -0,0 +1,94 @@ +{ + "type": "filament", + "name": "Meltingplot PA6 CF HT", + "inherits": "Generic PA-CF @System", + "from": "system", + "setting_id": "kzlYLTM6H5CgpQ8y", + "filament_id": "OFdPevOo", + "instantiation": "true", + "filament_vendor": [ + "Meltingplot" + ], + "nozzle_temperature": [ + "275" + ], + "nozzle_temperature_initial_layer": [ + "275" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "filament_density": [ + "1.25" + ], + "filament_cost": [ + "89" + ], + "default_filament_colour": [ + "#858078" + ], + "filament_shrink": [ + "99.9%" + ], + "filament_shrinkage_compensation_z": [ + "99.9%" + ], + "fan_min_speed": [ + "40" + ], + "fan_max_speed": [ + "100" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "overhang_fan_speed": [ + "100" + ], + "overhang_fan_threshold": [ + "95%" + ], + "additional_cooling_fan_speed": [ + "40" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "slow_down_layer_time": [ + "33" + ], + "cool_plate_temp": [ + "80" + ], + "eng_plate_temp": [ + "80" + ], + "hot_plate_temp": [ + "80" + ], + "textured_plate_temp": [ + "80" + ], + "cool_plate_temp_initial_layer": [ + "80" + ], + "eng_plate_temp_initial_layer": [ + "80" + ], + "hot_plate_temp_initial_layer": [ + "80" + ], + "textured_plate_temp_initial_layer": [ + "80" + ], + "filament_diameter": [ + "2.85" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.2 nozzle", + "Meltingplot MBL 136 1.2 nozzle", + "Meltingplot MBL 308 1.2 nozzle", + "Meltingplot MBL 480 1.2 nozzle", + "Meltingplot CHX 350 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.4 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.4 nozzle.json new file mode 100644 index 0000000000..f828906a7c --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PET-CF15 @0.4 nozzle", + "inherits": "Meltingplot PET-CF15", + "from": "system", + "setting_id": "2fkQa1BwTGZbSi2z", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "10" + ], + "slow_down_layer_time": [ + "1" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.4 nozzle", + "Meltingplot MBL 136 0.4 nozzle", + "Meltingplot MBL 308 0.4 nozzle", + "Meltingplot MBL 480 0.4 nozzle", + "Meltingplot CHX 350 0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.6 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.6 nozzle.json new file mode 100644 index 0000000000..11b9bb2550 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PET-CF15 @0.6 nozzle", + "inherits": "Meltingplot PET-CF15", + "from": "system", + "setting_id": "PcNAj2kwuUNBAjQE", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "16" + ], + "slow_down_layer_time": [ + "3" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle", + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.8 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.8 nozzle.json new file mode 100644 index 0000000000..20039024ce --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PET-CF15 @0.8 nozzle", + "inherits": "Meltingplot PET-CF15", + "from": "system", + "setting_id": "70EwKatuncZBKgoD", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "21" + ], + "slow_down_layer_time": [ + "5" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle", + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @1.0 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @1.0 nozzle.json new file mode 100644 index 0000000000..9913b5f812 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15 @1.0 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PET-CF15 @1.0 nozzle", + "inherits": "Meltingplot PET-CF15", + "from": "system", + "setting_id": "X2yhWBjK4j46bUYW", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "26" + ], + "slow_down_layer_time": [ + "7" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.0 nozzle", + "Meltingplot MBL 136 1.0 nozzle", + "Meltingplot MBL 308 1.0 nozzle", + "Meltingplot MBL 480 1.0 nozzle", + "Meltingplot CHX 350 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15.json b/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15.json new file mode 100644 index 0000000000..f932be9d05 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PET-CF15.json @@ -0,0 +1,91 @@ +{ + "type": "filament", + "name": "Meltingplot PET-CF15", + "inherits": "Generic PETG-CF @System", + "from": "system", + "setting_id": "IdqfEh7xRXKTYmV3", + "filament_id": "OFJdf5nt", + "instantiation": "true", + "filament_vendor": [ + "Meltingplot" + ], + "filament_type": [ + "PET-CF" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "nozzle_temperature_range_high": [ + "290" + ], + "filament_max_volumetric_speed": [ + "31" + ], + "filament_density": [ + "1.4" + ], + "filament_cost": [ + "77.5" + ], + "filament_shrink": [ + "99.9%" + ], + "filament_shrinkage_compensation_z": [ + "99.9%" + ], + "temperature_vitrification": [ + "125" + ], + "fan_min_speed": [ + "100" + ], + "fan_max_speed": [ + "100" + ], + "slow_down_layer_time": [ + "11" + ], + "cool_plate_temp": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "cool_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "filament_diameter": [ + "2.85" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.2 nozzle", + "Meltingplot MBL 136 1.2 nozzle", + "Meltingplot MBL 308 1.2 nozzle", + "Meltingplot MBL 480 1.2 nozzle", + "Meltingplot CHX 350 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PETG @0.4 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PETG @0.4 nozzle.json new file mode 100644 index 0000000000..55df65bb99 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PETG @0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PETG @0.4 nozzle", + "inherits": "Meltingplot PETG", + "from": "system", + "setting_id": "2ohDGd34awK2DVbV", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "9" + ], + "slow_down_layer_time": [ + "4" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.4 nozzle", + "Meltingplot MBL 136 0.4 nozzle", + "Meltingplot MBL 308 0.4 nozzle", + "Meltingplot MBL 480 0.4 nozzle", + "Meltingplot CHX 350 0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PETG @0.6 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PETG @0.6 nozzle.json new file mode 100644 index 0000000000..5d77c69c8f --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PETG @0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PETG @0.6 nozzle", + "inherits": "Meltingplot PETG", + "from": "system", + "setting_id": "DZe1WokuOM5byttU", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "14" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle", + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PETG @0.8 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PETG @0.8 nozzle.json new file mode 100644 index 0000000000..4e5f16b411 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PETG @0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PETG @0.8 nozzle", + "inherits": "Meltingplot PETG", + "from": "system", + "setting_id": "LwFY7N8Uisy6ivOV", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "18" + ], + "slow_down_layer_time": [ + "15" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle", + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PETG @1.0 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PETG @1.0 nozzle.json new file mode 100644 index 0000000000..cdc4620078 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PETG @1.0 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PETG @1.0 nozzle", + "inherits": "Meltingplot PETG", + "from": "system", + "setting_id": "kR8Vbizk0CPciCbD", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "23" + ], + "slow_down_layer_time": [ + "22" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.0 nozzle", + "Meltingplot MBL 136 1.0 nozzle", + "Meltingplot MBL 308 1.0 nozzle", + "Meltingplot MBL 480 1.0 nozzle", + "Meltingplot CHX 350 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PETG.json b/resources/profiles/Meltingplot/filament/Meltingplot PETG.json new file mode 100644 index 0000000000..d6ed4e25cb --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PETG.json @@ -0,0 +1,70 @@ +{ + "type": "filament", + "name": "Meltingplot PETG", + "inherits": "Generic PETG @System", + "from": "system", + "setting_id": "dsW7JrzWhKAY1fey", + "filament_id": "OFvlreVF", + "instantiation": "true", + "filament_vendor": [ + "Meltingplot" + ], + "nozzle_temperature": [ + "245" + ], + "nozzle_temperature_initial_layer": [ + "245" + ], + "filament_max_volumetric_speed": [ + "27" + ], + "filament_cost": [ + "35" + ], + "default_filament_colour": [ + "#123123" + ], + "fan_min_speed": [ + "50" + ], + "fan_cooling_layer_time": [ + "60" + ], + "slow_down_layer_time": [ + "33" + ], + "cool_plate_temp": [ + "90" + ], + "eng_plate_temp": [ + "90" + ], + "hot_plate_temp": [ + "90" + ], + "textured_plate_temp": [ + "90" + ], + "cool_plate_temp_initial_layer": [ + "90" + ], + "eng_plate_temp_initial_layer": [ + "90" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "90" + ], + "filament_diameter": [ + "2.85" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.2 nozzle", + "Meltingplot MBL 136 1.2 nozzle", + "Meltingplot MBL 308 1.2 nozzle", + "Meltingplot MBL 480 1.2 nozzle", + "Meltingplot CHX 350 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PLA @0.4 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PLA @0.4 nozzle.json new file mode 100644 index 0000000000..4ec8bc1fb5 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PLA @0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PLA @0.4 nozzle", + "inherits": "Meltingplot PLA", + "from": "system", + "setting_id": "T3OEfrhyZ6ISyv20", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "11" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.4 nozzle", + "Meltingplot MBL 136 0.4 nozzle", + "Meltingplot MBL 308 0.4 nozzle", + "Meltingplot MBL 480 0.4 nozzle", + "Meltingplot CHX 350 0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PLA @0.6 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PLA @0.6 nozzle.json new file mode 100644 index 0000000000..054bc03ab6 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PLA @0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PLA @0.6 nozzle", + "inherits": "Meltingplot PLA", + "from": "system", + "setting_id": "hsgzwjPc26BJ4sQu", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "16" + ], + "slow_down_layer_time": [ + "17" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle", + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PLA @0.8 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PLA @0.8 nozzle.json new file mode 100644 index 0000000000..7fa45fc182 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PLA @0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PLA @0.8 nozzle", + "inherits": "Meltingplot PLA", + "from": "system", + "setting_id": "cz6RkfsQ0hJE0hYG", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "22" + ], + "slow_down_layer_time": [ + "30" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle", + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PLA @1.0 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot PLA @1.0 nozzle.json new file mode 100644 index 0000000000..bbb19233db --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PLA @1.0 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot PLA @1.0 nozzle", + "inherits": "Meltingplot PLA", + "from": "system", + "setting_id": "H3n0VPl3CymiK9VN", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "27" + ], + "slow_down_layer_time": [ + "45" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.0 nozzle", + "Meltingplot MBL 136 1.0 nozzle", + "Meltingplot MBL 308 1.0 nozzle", + "Meltingplot MBL 480 1.0 nozzle", + "Meltingplot CHX 350 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot PLA.json b/resources/profiles/Meltingplot/filament/Meltingplot PLA.json new file mode 100644 index 0000000000..60575e7aa6 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot PLA.json @@ -0,0 +1,67 @@ +{ + "type": "filament", + "name": "Meltingplot PLA", + "inherits": "Generic PLA @System", + "from": "system", + "setting_id": "ONpaHlfJVJyh7Shb", + "filament_id": "OFwXRVbB", + "instantiation": "true", + "filament_vendor": [ + "Meltingplot" + ], + "nozzle_temperature": [ + "210" + ], + "nozzle_temperature_initial_layer": [ + "215" + ], + "filament_cost": [ + "34.9" + ], + "default_filament_colour": [ + "#F8F8F8" + ], + "slow_down_layer_time": [ + "66" + ], + "slow_down_min_speed": [ + "15" + ], + "cool_plate_temp": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "hot_plate_temp": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "65" + ], + "eng_plate_temp_initial_layer": [ + "65" + ], + "hot_plate_temp_initial_layer": [ + "65" + ], + "textured_plate_temp_initial_layer": [ + "65" + ], + "filament_diameter": [ + "2.85" + ], + "filament_max_volumetric_speed": [ + "33" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.2 nozzle", + "Meltingplot MBL 136 1.2 nozzle", + "Meltingplot MBL 308 1.2 nozzle", + "Meltingplot MBL 480 1.2 nozzle", + "Meltingplot CHX 350 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.4 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.4 nozzle.json new file mode 100644 index 0000000000..6804806002 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.4 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot TitanX @0.4 nozzle", + "inherits": "Meltingplot TitanX", + "from": "system", + "setting_id": "i5ttRpqpqF3Kg8IF", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "11" + ], + "slow_down_layer_time": [ + "4" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.4 nozzle", + "Meltingplot MBL 136 0.4 nozzle", + "Meltingplot MBL 308 0.4 nozzle", + "Meltingplot MBL 480 0.4 nozzle", + "Meltingplot CHX 350 0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.6 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.6 nozzle.json new file mode 100644 index 0000000000..a80febac3f --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.6 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot TitanX @0.6 nozzle", + "inherits": "Meltingplot TitanX", + "from": "system", + "setting_id": "Vbm6NJb4il6QAU6v", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "16" + ], + "slow_down_layer_time": [ + "8" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle", + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.8 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.8 nozzle.json new file mode 100644 index 0000000000..3815b36da9 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot TitanX @0.8 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot TitanX @0.8 nozzle", + "inherits": "Meltingplot TitanX", + "from": "system", + "setting_id": "jYrElhVPtK2Dpb9K", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "22" + ], + "slow_down_layer_time": [ + "15" + ], + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle", + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot TitanX @1.0 nozzle.json b/resources/profiles/Meltingplot/filament/Meltingplot TitanX @1.0 nozzle.json new file mode 100644 index 0000000000..51ccd444e2 --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot TitanX @1.0 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "name": "Meltingplot TitanX @1.0 nozzle", + "inherits": "Meltingplot TitanX", + "from": "system", + "setting_id": "lQDEFxTsxFsT5A4n", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "27" + ], + "slow_down_layer_time": [ + "22" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.0 nozzle", + "Meltingplot MBL 136 1.0 nozzle", + "Meltingplot MBL 308 1.0 nozzle", + "Meltingplot MBL 480 1.0 nozzle", + "Meltingplot CHX 350 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/filament/Meltingplot TitanX.json b/resources/profiles/Meltingplot/filament/Meltingplot TitanX.json new file mode 100644 index 0000000000..5082e6e19e --- /dev/null +++ b/resources/profiles/Meltingplot/filament/Meltingplot TitanX.json @@ -0,0 +1,61 @@ +{ + "type": "filament", + "name": "Meltingplot TitanX", + "inherits": "Generic ABS @System", + "from": "system", + "setting_id": "LDPRmxlvX97NXF0F", + "filament_id": "OFyYfgDM", + "instantiation": "true", + "filament_vendor": [ + "Meltingplot" + ], + "filament_flow_ratio": [ + "0.93" + ], + "filament_shrink": [ + "99.75%" + ], + "filament_density": [ + "1.07" + ], + "slow_down_layer_time": [ + "33" + ], + "cool_plate_temp": [ + "110" + ], + "eng_plate_temp": [ + "110" + ], + "hot_plate_temp": [ + "110" + ], + "textured_plate_temp": [ + "110" + ], + "cool_plate_temp_initial_layer": [ + "110" + ], + "eng_plate_temp_initial_layer": [ + "110" + ], + "hot_plate_temp_initial_layer": [ + "110" + ], + "textured_plate_temp_initial_layer": [ + "110" + ], + "filament_diameter": [ + "2.85" + ], + "filament_max_volumetric_speed": [ + "33" + ], + "compatible_printers": [ + "Meltingplot MBL 133 1.2 nozzle", + "Meltingplot MBL 136 1.2 nozzle", + "Meltingplot MBL 308 1.2 nozzle", + "Meltingplot MBL 480 1.2 nozzle", + "Meltingplot CHX 350 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.4 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.4 nozzle.json new file mode 100644 index 0000000000..c59db36162 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.4 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot CHX 350 0.4 nozzle", + "inherits": "fdm_machine_meltingplot_chx", + "from": "system", + "setting_id": "gyTKYZ8qKgen4dOM", + "instantiation": "true", + "printer_model": "Meltingplot CHX 350", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "min_layer_height": [ + "0.16" + ], + "max_layer_height": [ + "0.24" + ], + "printable_area": [ + "0x0", + "880x0", + "880x422", + "0x422" + ], + "printable_height": "943", + "default_print_profile": "0.18mm Fine 0.4 nozzle @Meltingplot CHX 350", + "default_filament_profile": [ + "Meltingplot PLA @0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.6 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.6 nozzle.json new file mode 100644 index 0000000000..bddf34e56a --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.6 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot CHX 350 0.6 nozzle", + "inherits": "fdm_machine_meltingplot_chx", + "from": "system", + "setting_id": "OeqLbNEMEImXnJBz", + "instantiation": "true", + "printer_model": "Meltingplot CHX 350", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "min_layer_height": [ + "0.24" + ], + "max_layer_height": [ + "0.36" + ], + "printable_area": [ + "0x0", + "880x0", + "880x422", + "0x422" + ], + "printable_height": "943", + "default_print_profile": "0.30mm Standard 0.6 nozzle @Meltingplot CHX 350", + "default_filament_profile": [ + "Meltingplot PLA @0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.8 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.8 nozzle.json new file mode 100644 index 0000000000..bb3a56b5ce --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 0.8 nozzle.json @@ -0,0 +1,32 @@ +{ + "type": "machine", + "name": "Meltingplot CHX 350 0.8 nozzle", + "inherits": "fdm_machine_meltingplot_chx", + "from": "system", + "setting_id": "IlK23KWfTD7BLPpZ", + "instantiation": "true", + "printer_model": "Meltingplot CHX 350", + "printer_variant": "0.8", + "nozzle_diameter": [ + "0.8" + ], + "min_layer_height": [ + "0.32" + ], + "max_layer_height": [ + "0.48" + ], + "printable_area": [ + "0x0", + "880x0", + "880x422", + "0x422" + ], + "printable_height": "943", + "default_print_profile": "0.38mm Standard 0.8 nozzle @Meltingplot CHX 350", + "default_filament_profile": [ + "Meltingplot PLA @0.8 nozzle" + ], + "min_resonance_avoidance_speed": "55", + "max_resonance_avoidance_speed": "115" +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 1.0 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 1.0 nozzle.json new file mode 100644 index 0000000000..0c2f656c94 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 1.0 nozzle.json @@ -0,0 +1,33 @@ +{ + "type": "machine", + "name": "Meltingplot CHX 350 1.0 nozzle", + "inherits": "fdm_machine_meltingplot_chx", + "from": "system", + "setting_id": "AGIxh7arXUPLFcnj", + "instantiation": "true", + "printer_model": "Meltingplot CHX 350", + "printer_variant": "1.0", + "nozzle_diameter": [ + "1.0" + ], + "min_layer_height": [ + "0.40" + ], + "max_layer_height": [ + "0.60" + ], + "printable_area": [ + "0x0", + "880x0", + "880x422", + "0x422" + ], + "printable_height": "943", + "default_print_profile": "0.48mm Optimal 1.0 nozzle @Meltingplot CHX 350", + "default_filament_profile": [ + "Meltingplot PLA @1.0 nozzle" + ], + "nozzle_type": [ + "hardened_steel" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 1.2 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 1.2 nozzle.json new file mode 100644 index 0000000000..fa511ee85a --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350 1.2 nozzle.json @@ -0,0 +1,33 @@ +{ + "type": "machine", + "name": "Meltingplot CHX 350 1.2 nozzle", + "inherits": "fdm_machine_meltingplot_chx", + "from": "system", + "setting_id": "xcwkp9Kdund0y4Zh", + "instantiation": "true", + "printer_model": "Meltingplot CHX 350", + "printer_variant": "1.2", + "nozzle_diameter": [ + "1.2" + ], + "min_layer_height": [ + "0.48" + ], + "max_layer_height": [ + "0.72" + ], + "printable_area": [ + "0x0", + "880x0", + "880x422", + "0x422" + ], + "printable_height": "943", + "default_print_profile": "0.56mm Optimal 1.2 nozzle @Meltingplot CHX 350", + "default_filament_profile": [ + "Meltingplot PLA" + ], + "nozzle_type": [ + "hardened_steel" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot CHX 350.json b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350.json new file mode 100644 index 0000000000..22d9b57d30 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Meltingplot CHX 350", + "model_id": "Meltingplot-CHX-350", + "nozzle_diameter": "0.4;0.6;0.8;1.0;1.2", + "machine_tech": "FFF", + "family": "Meltingplot", + "bed_model": "chx350-printbed.stl", + "bed_texture": "chx350-texture.svg", + "hotend_model": "", + "default_materials": "Meltingplot PLA @0.4 nozzle;Meltingplot PLA @0.6 nozzle;Meltingplot PLA @0.8 nozzle;Meltingplot PLA @1.0 nozzle;Meltingplot PLA;Meltingplot PETG @0.4 nozzle;Meltingplot PETG @0.6 nozzle;Meltingplot PETG @0.8 nozzle;Meltingplot PETG @1.0 nozzle;Meltingplot PETG;Meltingplot ABS @0.4 nozzle;Meltingplot ABS @0.6 nozzle;Meltingplot ABS @0.8 nozzle;Meltingplot ABS @1.0 nozzle;Meltingplot ABS;Meltingplot ASA @0.4 nozzle;Meltingplot ASA @0.6 nozzle;Meltingplot ASA @0.8 nozzle;Meltingplot ASA @1.0 nozzle;Meltingplot ASA" +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.4 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.4 nozzle.json new file mode 100644 index 0000000000..413b86a245 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.4 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 133 0.4 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "wyroTvO4uFQPS3Se", + "instantiation": "true", + "printer_model": "Meltingplot MBL 133", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "min_layer_height": [ + "0.16" + ], + "max_layer_height": [ + "0.24" + ], + "printable_area": [ + "0x0", + "835x0", + "835x405", + "0x405" + ], + "printable_height": "394", + "default_print_profile": "0.18mm Fine 0.4 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.6 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.6 nozzle.json new file mode 100644 index 0000000000..1f6e02ec96 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.6 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 133 0.6 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "QbxTZqa4I7jaXUzw", + "instantiation": "true", + "printer_model": "Meltingplot MBL 133", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "min_layer_height": [ + "0.24" + ], + "max_layer_height": [ + "0.36" + ], + "printable_area": [ + "0x0", + "835x0", + "835x405", + "0x405" + ], + "printable_height": "394", + "default_print_profile": "0.30mm Standard 0.6 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.8 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.8 nozzle.json new file mode 100644 index 0000000000..506acfdf6f --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 0.8 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 133 0.8 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "VXumP32DSNKwddyS", + "instantiation": "true", + "printer_model": "Meltingplot MBL 133", + "printer_variant": "0.8", + "nozzle_diameter": [ + "0.8" + ], + "min_layer_height": [ + "0.32" + ], + "max_layer_height": [ + "0.48" + ], + "printable_area": [ + "0x0", + "835x0", + "835x405", + "0x405" + ], + "printable_height": "394", + "default_print_profile": "0.38mm Standard 0.8 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 1.0 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 1.0 nozzle.json new file mode 100644 index 0000000000..d4943d8642 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 1.0 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 133 1.0 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "A2a4j8nclQxokoHn", + "instantiation": "true", + "printer_model": "Meltingplot MBL 133", + "printer_variant": "1.0", + "nozzle_diameter": [ + "1.0" + ], + "min_layer_height": [ + "0.40" + ], + "max_layer_height": [ + "0.60" + ], + "printable_area": [ + "0x0", + "835x0", + "835x405", + "0x405" + ], + "printable_height": "394", + "default_print_profile": "0.48mm Optimal 1.0 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 1.2 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 1.2 nozzle.json new file mode 100644 index 0000000000..6107f64728 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133 1.2 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 133 1.2 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "wn8Ez4ZM1ubuftLv", + "instantiation": "true", + "printer_model": "Meltingplot MBL 133", + "printer_variant": "1.2", + "nozzle_diameter": [ + "1.2" + ], + "min_layer_height": [ + "0.48" + ], + "max_layer_height": [ + "0.72" + ], + "printable_area": [ + "0x0", + "835x0", + "835x405", + "0x405" + ], + "printable_height": "394", + "default_print_profile": "0.56mm Optimal 1.2 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 133.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133.json new file mode 100644 index 0000000000..5a8d76e344 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 133.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Meltingplot MBL 133", + "model_id": "Meltingplot-MBL-133", + "nozzle_diameter": "0.8;0.4;0.6;1.0;1.2", + "machine_tech": "FFF", + "family": "Meltingplot", + "bed_model": "mbl133-printbed.stl", + "bed_texture": "mbl-133-texture.svg", + "hotend_model": "", + "default_materials": "Meltingplot PLA @0.4 nozzle;Meltingplot PLA @0.6 nozzle;Meltingplot PLA @0.8 nozzle;Meltingplot PLA @1.0 nozzle;Meltingplot PLA;Meltingplot PETG @0.4 nozzle;Meltingplot PETG @0.6 nozzle;Meltingplot PETG @0.8 nozzle;Meltingplot PETG @1.0 nozzle;Meltingplot PETG;Meltingplot ABS @0.4 nozzle;Meltingplot ABS @0.6 nozzle;Meltingplot ABS @0.8 nozzle;Meltingplot ABS @1.0 nozzle;Meltingplot ABS;Meltingplot ASA @0.4 nozzle;Meltingplot ASA @0.6 nozzle;Meltingplot ASA @0.8 nozzle;Meltingplot ASA @1.0 nozzle;Meltingplot ASA" +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.4 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.4 nozzle.json new file mode 100644 index 0000000000..efcd27c2ec --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.4 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 136 0.4 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "Wv2F2INNahYnIP2n", + "instantiation": "true", + "printer_model": "Meltingplot MBL 136", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "min_layer_height": [ + "0.16" + ], + "max_layer_height": [ + "0.24" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "396", + "default_print_profile": "0.18mm Fine 0.4 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.6 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.6 nozzle.json new file mode 100644 index 0000000000..2bf1e00ae6 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.6 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 136 0.6 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "bmYfNrpRLtITsguf", + "instantiation": "true", + "printer_model": "Meltingplot MBL 136", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "min_layer_height": [ + "0.24" + ], + "max_layer_height": [ + "0.36" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "396", + "default_print_profile": "0.30mm Standard 0.6 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.8 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.8 nozzle.json new file mode 100644 index 0000000000..922ec96fce --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 0.8 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 136 0.8 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "9fv3aEc4tAsdeaPI", + "instantiation": "true", + "printer_model": "Meltingplot MBL 136", + "printer_variant": "0.8", + "nozzle_diameter": [ + "0.8" + ], + "min_layer_height": [ + "0.32" + ], + "max_layer_height": [ + "0.48" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "396", + "default_print_profile": "0.38mm Standard 0.8 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 1.0 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 1.0 nozzle.json new file mode 100644 index 0000000000..0e1e6dadb7 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 1.0 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 136 1.0 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "l45hlHUCFi1UcGpM", + "instantiation": "true", + "printer_model": "Meltingplot MBL 136", + "printer_variant": "1.0", + "nozzle_diameter": [ + "1.0" + ], + "min_layer_height": [ + "0.40" + ], + "max_layer_height": [ + "0.60" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "396", + "default_print_profile": "0.48mm Optimal 1.0 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 1.2 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 1.2 nozzle.json new file mode 100644 index 0000000000..1fb6101070 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136 1.2 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 136 1.2 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "LAAqt3v5IkT75PMJ", + "instantiation": "true", + "printer_model": "Meltingplot MBL 136", + "printer_variant": "1.2", + "nozzle_diameter": [ + "1.2" + ], + "min_layer_height": [ + "0.48" + ], + "max_layer_height": [ + "0.72" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "396", + "default_print_profile": "0.56mm Optimal 1.2 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 136.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136.json new file mode 100644 index 0000000000..1afe141a6b --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 136.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Meltingplot MBL 136", + "model_id": "Meltingplot-MBL-136", + "nozzle_diameter": "0.8;0.4;0.6;1.0;1.2", + "machine_tech": "FFF", + "family": "Meltingplot", + "bed_model": "mbl136-printbed.stl", + "bed_texture": "mbl-136-texture.svg", + "hotend_model": "", + "default_materials": "Meltingplot PLA @0.4 nozzle;Meltingplot PLA @0.6 nozzle;Meltingplot PLA @0.8 nozzle;Meltingplot PLA @1.0 nozzle;Meltingplot PLA;Meltingplot PETG @0.4 nozzle;Meltingplot PETG @0.6 nozzle;Meltingplot PETG @0.8 nozzle;Meltingplot PETG @1.0 nozzle;Meltingplot PETG;Meltingplot ABS @0.4 nozzle;Meltingplot ABS @0.6 nozzle;Meltingplot ABS @0.8 nozzle;Meltingplot ABS @1.0 nozzle;Meltingplot ABS;Meltingplot ASA @0.4 nozzle;Meltingplot ASA @0.6 nozzle;Meltingplot ASA @0.8 nozzle;Meltingplot ASA @1.0 nozzle;Meltingplot ASA" +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.4 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.4 nozzle.json new file mode 100644 index 0000000000..2e3f428374 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.4 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 308 0.4 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "AbxDaZCTmysg7JTf", + "instantiation": "true", + "printer_model": "Meltingplot MBL 308", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "min_layer_height": [ + "0.16" + ], + "max_layer_height": [ + "0.24" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "896", + "default_print_profile": "0.18mm Fine 0.4 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.6 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.6 nozzle.json new file mode 100644 index 0000000000..d21e5b08df --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.6 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 308 0.6 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "YRQhtucLD6iZRcY0", + "instantiation": "true", + "printer_model": "Meltingplot MBL 308", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "min_layer_height": [ + "0.24" + ], + "max_layer_height": [ + "0.36" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "896", + "default_print_profile": "0.30mm Standard 0.6 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.8 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.8 nozzle.json new file mode 100644 index 0000000000..2feb7f2162 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 0.8 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 308 0.8 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "3scvx4P2vXtmoMmI", + "instantiation": "true", + "printer_model": "Meltingplot MBL 308", + "printer_variant": "0.8", + "nozzle_diameter": [ + "0.8" + ], + "min_layer_height": [ + "0.32" + ], + "max_layer_height": [ + "0.48" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "896", + "default_print_profile": "0.38mm Standard 0.8 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 1.0 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 1.0 nozzle.json new file mode 100644 index 0000000000..dd54275283 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 1.0 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 308 1.0 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "VpAHWQ6v3aZLUIs1", + "instantiation": "true", + "printer_model": "Meltingplot MBL 308", + "printer_variant": "1.0", + "nozzle_diameter": [ + "1.0" + ], + "min_layer_height": [ + "0.40" + ], + "max_layer_height": [ + "0.60" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "896", + "default_print_profile": "0.48mm Optimal 1.0 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 1.2 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 1.2 nozzle.json new file mode 100644 index 0000000000..eb56bc5da6 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308 1.2 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 308 1.2 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "WuT3Qj2xyAPfDsXW", + "instantiation": "true", + "printer_model": "Meltingplot MBL 308", + "printer_variant": "1.2", + "nozzle_diameter": [ + "1.2" + ], + "min_layer_height": [ + "0.48" + ], + "max_layer_height": [ + "0.72" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "896", + "default_print_profile": "0.56mm Optimal 1.2 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 308.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308.json new file mode 100644 index 0000000000..7d43a425a7 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 308.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Meltingplot MBL 308", + "model_id": "Meltingplot-MBL-308", + "nozzle_diameter": "0.8;0.4;0.6;1.0;1.2", + "machine_tech": "FFF", + "family": "Meltingplot", + "bed_model": "mbl308-printbed.stl", + "bed_texture": "mbl-308-texture.svg", + "hotend_model": "", + "default_materials": "Meltingplot PLA @0.4 nozzle;Meltingplot PLA @0.6 nozzle;Meltingplot PLA @0.8 nozzle;Meltingplot PLA @1.0 nozzle;Meltingplot PLA;Meltingplot PETG @0.4 nozzle;Meltingplot PETG @0.6 nozzle;Meltingplot PETG @0.8 nozzle;Meltingplot PETG @1.0 nozzle;Meltingplot PETG;Meltingplot ABS @0.4 nozzle;Meltingplot ABS @0.6 nozzle;Meltingplot ABS @0.8 nozzle;Meltingplot ABS @1.0 nozzle;Meltingplot ABS;Meltingplot ASA @0.4 nozzle;Meltingplot ASA @0.6 nozzle;Meltingplot ASA @0.8 nozzle;Meltingplot ASA @1.0 nozzle;Meltingplot ASA" +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.4 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.4 nozzle.json new file mode 100644 index 0000000000..1638cf61e5 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.4 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 480 0.4 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "14E0ywGwPgPzuR7q", + "instantiation": "true", + "printer_model": "Meltingplot MBL 480", + "printer_variant": "0.4", + "nozzle_diameter": [ + "0.4" + ], + "min_layer_height": [ + "0.16" + ], + "max_layer_height": [ + "0.24" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "1396", + "default_print_profile": "0.18mm Fine 0.4 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.6 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.6 nozzle.json new file mode 100644 index 0000000000..d727e6e540 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.6 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 480 0.6 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "RntAZ9kYe1JiK9qL", + "instantiation": "true", + "printer_model": "Meltingplot MBL 480", + "printer_variant": "0.6", + "nozzle_diameter": [ + "0.6" + ], + "min_layer_height": [ + "0.24" + ], + "max_layer_height": [ + "0.36" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "1396", + "default_print_profile": "0.30mm Standard 0.6 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.8 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.8 nozzle.json new file mode 100644 index 0000000000..2ca80661af --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 0.8 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 480 0.8 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "3wnBTip16mjzuNaR", + "instantiation": "true", + "printer_model": "Meltingplot MBL 480", + "printer_variant": "0.8", + "nozzle_diameter": [ + "0.8" + ], + "min_layer_height": [ + "0.32" + ], + "max_layer_height": [ + "0.48" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "1396", + "default_print_profile": "0.38mm Standard 0.8 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 1.0 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 1.0 nozzle.json new file mode 100644 index 0000000000..95a2b7a7da --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 1.0 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 480 1.0 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "KXzVlZQpxRpoYCZC", + "instantiation": "true", + "printer_model": "Meltingplot MBL 480", + "printer_variant": "1.0", + "nozzle_diameter": [ + "1.0" + ], + "min_layer_height": [ + "0.40" + ], + "max_layer_height": [ + "0.60" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "1396", + "default_print_profile": "0.48mm Optimal 1.0 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA @1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 1.2 nozzle.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 1.2 nozzle.json new file mode 100644 index 0000000000..2a992dc643 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480 1.2 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "machine", + "name": "Meltingplot MBL 480 1.2 nozzle", + "inherits": "fdm_machine_meltingplot_mbl", + "from": "system", + "setting_id": "FhIoFCxemK2Miw2J", + "instantiation": "true", + "printer_model": "Meltingplot MBL 480", + "printer_variant": "1.2", + "nozzle_diameter": [ + "1.2" + ], + "min_layer_height": [ + "0.48" + ], + "max_layer_height": [ + "0.72" + ], + "printable_area": [ + "0x0", + "850x0", + "850x405", + "0x405" + ], + "printable_height": "1396", + "default_print_profile": "0.56mm Optimal 1.2 nozzle @Meltingplot MBL", + "default_filament_profile": [ + "Meltingplot PLA" + ] +} diff --git a/resources/profiles/Meltingplot/machine/Meltingplot MBL 480.json b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480.json new file mode 100644 index 0000000000..0360c5bcee --- /dev/null +++ b/resources/profiles/Meltingplot/machine/Meltingplot MBL 480.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Meltingplot MBL 480", + "model_id": "Meltingplot-MBL-480", + "nozzle_diameter": "0.8;0.4;0.6;1.0;1.2", + "machine_tech": "FFF", + "family": "Meltingplot", + "bed_model": "mbl480-printbed.stl", + "bed_texture": "mbl-480-texture.svg", + "hotend_model": "", + "default_materials": "Meltingplot PLA @0.4 nozzle;Meltingplot PLA @0.6 nozzle;Meltingplot PLA @0.8 nozzle;Meltingplot PLA @1.0 nozzle;Meltingplot PLA;Meltingplot PETG @0.4 nozzle;Meltingplot PETG @0.6 nozzle;Meltingplot PETG @0.8 nozzle;Meltingplot PETG @1.0 nozzle;Meltingplot PETG;Meltingplot ABS @0.4 nozzle;Meltingplot ABS @0.6 nozzle;Meltingplot ABS @0.8 nozzle;Meltingplot ABS @1.0 nozzle;Meltingplot ABS;Meltingplot ASA @0.4 nozzle;Meltingplot ASA @0.6 nozzle;Meltingplot ASA @0.8 nozzle;Meltingplot ASA @1.0 nozzle;Meltingplot ASA" +} diff --git a/resources/profiles/Meltingplot/machine/fdm_machine_common.json b/resources/profiles/Meltingplot/machine/fdm_machine_common.json new file mode 100644 index 0000000000..a27cc95405 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/fdm_machine_common.json @@ -0,0 +1,68 @@ +{ + "type": "machine", + "name": "fdm_machine_common", + "from": "system", + "instantiation": "false", + "printer_technology": "FFF", + "gcode_flavor": "reprapfirmware", + "host_type": "duet", + "disable_m73": "1", + "emit_machine_limits_to_gcode": "0", + "extruder_colour": [ + "#FCE94F" + ], + "extruder_offset": [ + "0x0" + ], + "machine_min_extruding_rate": [ + "0" + ], + "machine_min_travel_rate": [ + "0" + ], + "machine_max_speed_e": [ + "60" + ], + "printer_settings_id": "", + "resonance_avoidance": "0", + "retraction_length": [ + "0" + ], + "use_firmware_retraction": "1", + "retract_when_changing_layer": [ + "1" + ], + "retract_before_wipe": [ + "0%" + ], + "retract_length_toolchange": [ + "0" + ], + "retract_restart_extra": [ + "0" + ], + "retract_restart_extra_toolchange": [ + "0" + ], + "wipe": [ + "0" + ], + "z_hop": [ + "0" + ], + "z_hop_types": [ + "Normal Lift" + ], + "travel_slope": [ + "1" + ], + "single_extruder_multi_material": "0", + "purge_in_prime_tower": "0", + "time_cost": "2", + "default_print_profile": "", + "change_filament_gcode": "", + "machine_pause_gcode": "M226", + "machine_end_gcode": "G90\nG1 Z{min(max_layer_z + 5, printable_height)} F600\nM98 P\"0:/sys/meltingplot/print_end\"", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\n" +} diff --git a/resources/profiles/Meltingplot/machine/fdm_machine_meltingplot_chx.json b/resources/profiles/Meltingplot/machine/fdm_machine_meltingplot_chx.json new file mode 100644 index 0000000000..f68678716e --- /dev/null +++ b/resources/profiles/Meltingplot/machine/fdm_machine_meltingplot_chx.json @@ -0,0 +1,71 @@ +{ + "type": "machine", + "name": "fdm_machine_meltingplot_chx", + "inherits": "fdm_machine_common", + "from": "system", + "instantiation": "false", + "fan_kickstart": "0.5", + "fan_speedup_time": "1", + "machine_max_acceleration_e": [ + "3000" + ], + "machine_max_acceleration_extruding": [ + "6000" + ], + "machine_max_acceleration_retracting": [ + "3000" + ], + "machine_max_acceleration_travel": [ + "6000" + ], + "machine_max_acceleration_x": [ + "6000" + ], + "machine_max_acceleration_y": [ + "6000" + ], + "machine_max_acceleration_z": [ + "400" + ], + "machine_max_jerk_e": [ + "33.33" + ], + "machine_max_jerk_x": [ + "12" + ], + "machine_max_jerk_y": [ + "12" + ], + "machine_max_jerk_z": [ + "1.2" + ], + "machine_max_speed_x": [ + "833.33" + ], + "machine_max_speed_y": [ + "1000" + ], + "machine_max_speed_z": [ + "30" + ], + "extruder_clearance_radius": "65", + "extruder_clearance_height_to_rod": "20", + "extruder_clearance_height_to_lid": "150", + "nozzle_type": [ + "stainless_steel" + ], + "min_resonance_avoidance_speed": "40", + "max_resonance_avoidance_speed": "105", + "time_cost": "5", + "retraction_minimum_travel": [ + "2" + ], + "retraction_speed": [ + "60" + ], + "deretraction_speed": [ + "40" + ], + "printable_height": "943", + "machine_start_gcode": "M140 P0 S{first_layer_bed_temperature[0]} ; set bed temp\nG10 P0 S{first_layer_temperature[0]}\nM568 P0 R{first_layer_temperature[0] + standby_temperature_delta} S{first_layer_temperature[0]} A2\n\nM83 ; use relative distances for extrusion\nG90 ; use absolute coordinates\n\nM98 P\"0:/sys/meltingplot/print_start\"" +} diff --git a/resources/profiles/Meltingplot/machine/fdm_machine_meltingplot_mbl.json b/resources/profiles/Meltingplot/machine/fdm_machine_meltingplot_mbl.json new file mode 100644 index 0000000000..6d8f974073 --- /dev/null +++ b/resources/profiles/Meltingplot/machine/fdm_machine_meltingplot_mbl.json @@ -0,0 +1,69 @@ +{ + "type": "machine", + "name": "fdm_machine_meltingplot_mbl", + "inherits": "fdm_machine_common", + "from": "system", + "instantiation": "false", + "fan_kickstart": "0.5", + "fan_speedup_time": "0.5", + "machine_max_acceleration_e": [ + "2500" + ], + "machine_max_acceleration_extruding": [ + "800" + ], + "machine_max_acceleration_retracting": [ + "1250" + ], + "machine_max_acceleration_travel": [ + "1500" + ], + "machine_max_acceleration_x": [ + "1500" + ], + "machine_max_acceleration_y": [ + "1500" + ], + "machine_max_acceleration_z": [ + "72" + ], + "machine_max_jerk_e": [ + "3" + ], + "machine_max_jerk_x": [ + "9" + ], + "machine_max_jerk_y": [ + "9" + ], + "machine_max_jerk_z": [ + "0.3" + ], + "machine_max_speed_x": [ + "240" + ], + "machine_max_speed_y": [ + "240" + ], + "machine_max_speed_z": [ + "12" + ], + "extruder_clearance_radius": "75", + "extruder_clearance_height_to_rod": "30", + "extruder_clearance_height_to_lid": "30", + "retraction_minimum_travel": [ + "4" + ], + "retraction_speed": [ + "35" + ], + "deretraction_speed": [ + "0" + ], + "thumbnails": [ + "64x64", + "400x300" + ], + "thumbnails_format": "PNG", + "machine_start_gcode": "M140 P0 S{first_layer_bed_temperature[0]} ; set bed temp\nG10 P0 R{first_layer_temperature[0] + standby_temperature_delta} S{first_layer_temperature[0]}\n\nM83 ; use relative distances for extrusion\nG90 ; use absolute coordinates\n\nM98 P\"0:/sys/meltingplot/print_start\"" +} diff --git a/resources/profiles/Meltingplot/mbl-133-texture.svg b/resources/profiles/Meltingplot/mbl-133-texture.svg new file mode 100644 index 0000000000..d7572a5a2e --- /dev/null +++ b/resources/profiles/Meltingplot/mbl-133-texture.svg @@ -0,0 +1,158 @@ + + + + + + image/svg+xml + + MBL133 + + + + + + MBL133 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/profiles/Meltingplot/mbl-136-texture.svg b/resources/profiles/Meltingplot/mbl-136-texture.svg new file mode 100644 index 0000000000..415bd0fdc0 --- /dev/null +++ b/resources/profiles/Meltingplot/mbl-136-texture.svg @@ -0,0 +1,158 @@ + + + + + + image/svg+xml + + MBL133 + + + + + + MBL133 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/profiles/Meltingplot/mbl-308-texture.svg b/resources/profiles/Meltingplot/mbl-308-texture.svg new file mode 100644 index 0000000000..96ee77c84d --- /dev/null +++ b/resources/profiles/Meltingplot/mbl-308-texture.svg @@ -0,0 +1,158 @@ + + + + + + image/svg+xml + + MBL133 + + + + + + MBL133 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/profiles/Meltingplot/mbl-480-texture.svg b/resources/profiles/Meltingplot/mbl-480-texture.svg new file mode 100644 index 0000000000..e76d969d72 --- /dev/null +++ b/resources/profiles/Meltingplot/mbl-480-texture.svg @@ -0,0 +1,158 @@ + + + + + + image/svg+xml + + MBL133 + + + + + + MBL133 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/profiles/Meltingplot/mbl133-printbed.stl b/resources/profiles/Meltingplot/mbl133-printbed.stl new file mode 100644 index 0000000000000000000000000000000000000000..888491edeaa01f0dd422b657dfdb32dcbf119fea GIT binary patch literal 222284 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

|AcyE3W?5 znqPw?sE|m`6kVww4q50WPf(nV`j2W7ryCis)sJ-fY#`HOY zI5SA7CGzu%9!W{EvyWM7SBeA`wG2PKR1p!iKJ7}Smccx91s6+2Mb}`lRCaBAa>>lM z6s`|k6TAmE>K8wK)7WqCo;?s$qH874ey48KFMZ{vvB`hosx1OB?l5 zt{O9T%ILLhHmaKnd&u-|)L(pT%-ARY{%L;yNXtutefUPb`<*dkmwfHc0>LbfEE@G4 z=N&ut*yoN81Qm{P;!@oU(Y|69$A*pi$}5i> zyXuN}jOj}-t5SJ2IZj81{&l0i$x9!Mz5D%9sYkAm;25_(!K@!Hn$$Yt@*`4@kDi%p z++A<45^7Fm>H8+N=G^bdkQJBep(R!rx6)#FrTZ!`6^YfRO=?XWFe3Gs^WTehOnmH1 zn`cP&RZcMLnPp#T9sZ(-M=t9(Zo<2>h4YHaB1gW`dhEcXN=kLr{=XRa;k~B>f*vGZ zed?9gxo3~Jl6dF=N%p2zB%6NL1nEgCbu3s z+_UK2sGmD}^w@Jp&tBM9$?xlA$2mR|Pdjqj*zpT5RX9sX{N}4^txfmR5xl%Q>$tg| zn0Ks|iVBJ0Q>L|^UfYjmqrS)U%Z*#(y{iI2g~Y~pCimcqj>k(UY&LG`|IQhXAQcju z9x|=<#6u#s_;Htrvc&BY4}pJ>y>ZQjpKUAc>7}vFSvjr#Rq7E4DxyjFj8|IoFe6Mtv1R#QkOv7WWrTaAM=*GhP;6O# zH042pN*UoEcKzABjO{5BiY?2}N_mi=Qbwd6ehmf>5{fO$udd7k1eG$vJ<^sTc#u$R zS>8&>g9Mc_!adR!E_jeoY+2sg$%6!yGQvI5mO6NlP;6P=YRiKJl`_IT(mPJ@Afec@ z{O%(U5>(0v_ptLRxx{^6MLndvccwdarSeAdRHlqDg}pGvmCB@qNUmC&b+)UvnOvz! zFU)4irzJ!_LQ*fv{vH!l$_T%oCs(b_I@>kaB%#={)bDZ+5>(0v_eicR=_a zdXP|TS?WK!2MH==gnQVrusv)ZBotegdYpdllAuyXxQCrncBYsI3B{JB-m80%pi)M- zhg}Oz5l^0D#Xd(HBTLgrXx;-UO28=(S8II zkD443CG-vQeu7=|NqZIb8On%ITl4^&PzzV~q}m9Lw(Y4k$JFtYYAR)f(eZO<5{fO0 zBk!1?QbxE3pF5LKY*`$uH|iv)lo9U1=guS)TNX$9jXDV`WrTb1xibmHmc{viMx6we zGQvIh+?j-8%i;_|qfUZK8Q~s$?o2|lWpVzYQ71vAjBpP=cP63OvN*5NsFR>lM)PMS z5fRK{%h#xHJ!;Z`XSY5l5L8HLrK5Xnzs~gPc~_op^FB2a%+lH)TbQ(8 z7(A$u&?-dtIOz00RiEAPjPP5gB$%ajeeR(>Wu?-uoZ7bZE2S25ziIZvxMqzC39Y&H zQqhA73H`?Dj0tAxH%>F6=|0UGJ(#7{#uAMXX;Xp!AA)()A zoiV{I{RV7CG~FcjV3xi=kr7#`sF2XF)Xtb-mVUoDB9f9dYgF{R$d*O#><9*e3JHB7 zA@WG-(yUP-q2J-nh-CXV{*MV}={pJ;kpT9uS))Qizx$gJO-t`fFiYQ2C=ygi=sOA- zkyzNjW{nC7{g!b?G%dX^!7P18!HJ*Uy?J%}kI$(ZL4|~VvCvze$B#e1`qq>U3k0+D z9R>GTf1_#DL(W=mS@WPmLT^50^+>8=|6+n!`YJ+1G>xD_LSHN>5>!a&YXU`r3JHB1 zph!?5p*Q`D1Qil`)4xbiA))v7iv$%CdJDfuP$8kW@QVZ$5_+e;NKhf6cj}7-6%u+w z-id8@8!%|CgB}TYPAVkyhP?lJ#KklJIR4sK{}S%bR7mJu^kS)~kkEVLMS=!g)o7gx+NKcK78s)*QFXWAfJMREvKAO@xY(I1%aSKVy_RTv_|cz zZ_u6l`L@;Sx_-wY!K`K9nbMknxQNk}(H(X#u(q89v+VEw#*p=p_n-NULHFGFcG$aA zNQ`)MO6$1r6+s(qpEKs>TfbXy&D-RmZ87WQ*Qd1peUeIb-l+RJ`u}p4q-4z+mHtzw zv>rY)-&fjFGE?-MVYe=P;amj|5_9!VY4u!SwAEwKz?}z;U#VX*i<1BLvMJ0uzGq5n zqbpUar3YT!vFN?$+nS;pm9M8Hzv+ByS*aF${%?8gKIrU@ZRU8TKrrj!=>JOO49FPp7m#O~2Sm z??(OEFE8u3f6%dkphDt_FQ&AX{#qVmetl2JdCz}bAeeRW*Hc<2eIsIl$5-jN;f9eu z8-;6)S(?%FnY)AkuyXapMLrKTr$U1BbB+34civh3WA`k}TFpr?i*sk$Xd<)>`W0}y zKEm&Nr@yhT-}m+_%32Zsm&`MadM*6Ud0!&@#(GLO>Wj?(aJ6yrE6Z7_NHB|~ZPX`R z@`tKCsE`P8@*ZSfsz2WLT47%?i$^xpywbYzz;HY)%ioZlyu8+O+PgVM=42CJ;5xkp!B(LFOeOQ{8!nnRQk1di&@%6{essotp4Y-KidlI zs2(KvoT5=5Kl$|Pfh)}t_Aa-@EIvK)BWPvnTPpoFecuu`>R0S~UUj!0wh12GE=$EH z8_9~_d9JnN5j?1nu=up_OY?Te8L`9#)kQwLEO_)Kl*K0-jry9?Pp^J>!CwMFh1=zG zibnmO=l84LF!|d+P$9vm4vqTDgAea`Z1SZYwy&s=;4_3q{njhy7|`f`CU{UG!D}-< z9-JlDTk(2l*zf1oXYf7idzbU=BrMLqt-k7SMveXO&Q(G^`Vz|0*Sh?QTI!WAtH*va zPavppyZVNh6Th41h3dcmvQQwXkkGf#ocQJ!H&n0sVwpftA)#-&IdRbNGpd`u>|a8l zLPFoBbK;?Ij<25c_)5Wp3JHBN&xv#Tomsu~i$Q^)LPB5ubK%F34LAA ziMzMFw)*}-ivYM%kTeWkS3JHC?(TPdt zzgQi*!3%+)LPB4ZbmCuAr&iB>A)&8UIx%{eud4HO3=0Gm68e^=6CVw(bS!?r z%7LIlLSOiFV*UkgtaeV?ChRLJB=r3We;#%JwexoD`omqJ_ez3U`nIWiY&YJon$G*oe-Ld-Z{euSyX6ehi?s4%;R}B2yoI8hc6crNsqK6Y~8Avco-x--P z!7P1Qw@6SSp|79Jm|&K^tn0+}C*C{$x%JKqJpd{s^c5H1yY-JJ4cvP1kzrqvV3xiV z6P2oI*N47SV~W00WN|5x?Br&R3JHCSH}WVD%+mLMiv&xhZ}0RiVSG1WNl56MMMV!1 z%+i;XoEW^=Uv9l}uJ6KlP+uCd{jM(?Sr+}`Qc)p6zl;dSgZqR>lY6~UU;FKw2aerv zcoW**tTBEc+u?a_(f-F(yd zg>G3YT<28ug-4q`<(3-tjjuSg!U7cKq&=aU!IU(3cq9S@=kA`E;Qjy@;F!^TxiSu-fd+4_V`|e$4#q0X+IekoZ z|BVhCYXlV%9I+;E%WgELn!E=Y>Oq28t>}9hr|$Sf^{GwP52fPxRbTtFn#W`3i@$DF z7v1?!$+;EJK$6gx|9tOmx!P0Jk9WARKrl;R_;X_AcRsH^ch9P!=2SSRAD3$KEGOT( z=GlJE-smlWEJ-j+t4)2~>*eDQ8t~1$y9a^_ z39W&3;-1=G9a|0mZMbTwkkHCpUtxOUZ?~)7{Nxp0s`R}yQ%GpNuoHh?=g_MCXM2|l z39Vvw;-9ylRGsI8)dN9=gw|F&vFo~LRF8Z7i_m+eLP9IPo!ERcn`^g!%^DRF7JJKQ zznFgT`e#&+xy`@P*q2b2R<66psO`_F?)CDY!WWgCGY=) z@8V=cRw^pVn@HgcJwLrv5n=1MvsK>7mk_GymqMbw8;*aPmBiUv?nd2+2^%rXPr5V+o)f(|G&n4_tZ0?FUr|veGkCq z+c|&TsQ=&I&s9I}w_P}|sF2Y22mCu;M=kzRb<#c87YJtQdk0P|KK0e=76-l+2rBw^ zLa|i8efF*De@UhVxdPyg*`HQ zhp!G*)2|NoZ5guGz>mMRaQ42lU48y9v~byb)NCdEO8Z{~v;0acBdGY*k?-if9rR+cC#`MJbVI9n{KWd89-$oGJ7OF^PlHuM`|I&n;t<|Ef-+?3EwG zIYtjJ)z_!pG}itL1WQF?LS+-Hc}}b~Vy;^X1hRZzc?lbJ+kQ->WhW705^(-tb>92>9QP_8sOsKC_}G9sA(2uyCDeb5P4GVVZW^JKsBTh4B7(-T!QeRb zT7<}!Kg6$e1F{rTp(>(j>QG0ZQqkQ4u@uoHX1~qe^#>F~2)g7(N|BX*a1w2W50-6g zite4y7<0_=n`@0XHd_gvI?wp6XU(@~zK3_x%5N@w@za_*I+DvzOm=p#R_K=hAl$H{16g-f+X?$5DRj z56^a+-AnD?KVbj<#QhTir6NQ>alakg{%1QK_w8T)*5TJa`u;b|qmo|G<+V z>d6-mZ~4OKE5hpWK|3q2c|Sv(t<`+%S2(V&M@_^PFCIR8yZ`&*TH#n5MBV*QUOar~ zcYeXV7sSQOPd8gXtIhVc?TYrZ!r3keC?p=d;&tr~mS+WmQ6GEsb*;se#2tUDos}y; z_(SJUBWi=QU7QsZ64zXQ{&de-fne0;>2s%X6&4R!S2){>=vNfPpB$Y( zz4w~8S*zSnFzS~+dH(c&{=oZYqP3LPN~|6qu;$cTX}fYM7;g{>BG1CzwakD zhZRg!UOdn@!%D2KH1YVfMC?e9)0sk^hC3V zp45+g^F4OH_MC6u>t#IuGcomp>KQtrBRzP<-C1*gXmvkuEJmqk_}HTrLFH}#v3Xqd zE6OA7KPwXd`IlcjeCp%4ALUsw%6o>2pyGW=Z&#?FomJj*C?wd=FNy5KPhNOoi~uo4 z75y&S6^So={)I96EUpy@Ms4nUq4lC@?O6{fzj5OWt>^6b14r8LLE@>8Uo+_a1fw<= zubIzk+(Aas-RjhR7m{fe|Y{C5RBUF+O_Jv#C)x&OvGdDS}lpz8e3n2V{H(n zvyFai_Mk#Sek;N}NH9uQ{l2@rube%okkEBo5#~XHQPz5%zN_d(sgSVyza-3q1f%p6 z+;C6jL4}0c@rp1H5{%Nb`RQ|&2Ne=}9#@2UkYJR0h6g@-XK}5lOhoI)R)l$wP(K(^ znvuQngOvvr66#T3o?w*9=fC#157vD<6%y*_KlP64tVl3Q<$v(58ww99BrKb_RC$nK zl$AG^3J)qIl)cnvMP*6UH7B8RL}{$8uP&7(QQtulDo2#Y_7|@Bt=rajkjj#XHa7Pq zBvg(l%|8CcXRiJIwFi|Yv3jC5>P1PY98s@qenmnvr&Z5j9y}JKY<9NnuZ*Cg8DR9B zJksJ?VSYt|v)ToL*@S0XeGd1EW-=r^Z^LY<)j>ZRqx^k>?i8auH>`+{eDgJ9ruUI= z-aKaaD`IOF^03U*k2MpSSuAP}g4qPmb|!dSp5c9W-MlB8pfVG$*)taWv?~@ubexsLaGwd*-4f-uS_c`qVpa zJgGBCDl>7_p1CNAPrW0fHkaD9TFxx}sf98V?J6vZ_8hjB2x4<7qvXAsS(*oxnYe1t zT$F^)Dvqmb82#gX&#BDBRij58gw=zDu5KLH+Cte=Q<;f&6_$i~kg!(LqtvGB@q@}t zT)iG~%!7nldmLBKW{hy7=5{}*%*54WOdN!HkkC^b$5kH_BlRH6gUU=?J;wGymj_|YcD8GgkL1iX%rC*NltLstT7Ak_u zOsK`Y9O13Rqr6SOzqnRZW9_7zwMNpXuJ;5(W_*3gq-p5n~m6=d~^>T#w zJ|5+L`QJj%zepD*e`WhOMjEeLzgN%*Md zQ99cPuei7HpfVF0sTYKKkkDC0l&<>69$gUDmr$7r%{Uf>d63Z6jVNn97k{Cs2bGy< z*J??a2MKE>JxWi(Qy;H9sLX_BfD6JrNT{_(l%D2#&5O!RXeL{EkkC^bQRO~_;qeQ(*Mr9_H!&M$6G#W&dXJHFs zV>3%zA97_Tay@d?+^-b~u0gKW2V3-}6YW_2{f^!z#u}}USJitTDkSvAvtAP>!6=Tq zb3K$V$2>uA?&6Jy)v0_NMTLakEuP%{$6s8}07x*(-gs{Am{+RpTJc>U->~s)M?G|b zkExK*o5K1{5eY`IPUg|hNI%D+0Z2~#2Q&hOmP`o!w2NHFRfKip=PeXVf5A5=&@eEY3?a%U2Z z`qkH-JFPQeDkQ%4(OcUXRjqT9VAQqWd+xN(gsG5t*W~|?tn>Y#LPCBk!aPVYO4l$l*4cv!30=1pVICwHWo==Z*V?tB zLc;FMT*TP5KC3tuqg20oG@wF4 zS3SnW*@FrRn`M+ECkaNW_0%IL6%y8_mm}v!Jp&aIdeUOXG1r3%3D4WBc?k(dsmG}2 zB~(c8{lk1#x>hkl>fU^pV=V}^o_a41$67}H`R|=;JGOjmpU;Yl@6!6NW&pOY%L(7_ zReA8N7{z^3c2@0))z9{rd!T;$q4Q(Z-@KyzS0vu>Yi&KX{_DaNwu@0 zqJ3mBTJlKq)ul2K+PAhG2d(BLHi!~EjcPip_W#>sDmud$mw2T8XGOxU!g9n}ofV^W zrKj;@oD~(_%@_e**;$cLx$ducEJn$@?tOS%?YWE5fb@K=sE|;3PrnO=gj#z&e(+d~ zQaSqk`K+jr(9>0qA0!y1a=m^|g@pAIc+TWe=Uf>C}}l?N3PUcXbC--OtQtWga9LrS}1M{O;$IXm!xf_EK63Bx zn4+jyD_9X0E`kaPe`8VAg9M{^w)3^(ae0QmTd4A&Lc;d}eIaXZ^^Tgy>I7I|8lTbOLd?!!kL1jtQEs=!E5vATIo|RGa zt?q~VsCd@A@A9{iCDH2Qdy3*%OJcQFWF9=0$`Qr09cN`8JS*>az5k%!Oi&@AKELka zNH9u!ilRrIJ*e<^Wq2ebTCMf7J?0$8W@ItqyrLO03C#dw?3&Mt^D9Pa#yMq0TRW+C zR#a^E8own}omHcJP90a#&#K=KBg!}1P)O*CM0>01;m2Z>=62EE#?`g6(u^!xxXjm|Re!mflTe-Nbxt0OQFh(RRZG@fbH>q^*lfA%OQ4YO zd1*yZA))zW^pE3OwJW?mCc!A5msTEBNcdc|8b3%d%4eCC2Ne=NXRHV+OQNnh36&#C zbJQ5y=W9h}NyOdUPl%2ve=}9pg9-_MYg7?bNa#&SJZbY;kzkbGqfAfjcm_!@%HIK1 zXGMjC-cs%9OSDRM$&bY-e@j)(MXBgLQ}lN9o@-8pguiF1>OqBs-cr>g4hcr>e}Cn_ zcjc?z{(D}&M!y=P#{Hl|!uQrzdksi1%6H~g1Qi>dd#}bLEv~NZ`1Sskgk}bNdQlLJ z;*4YV;H;Q)U;iC}>JCzw2>VTfmm`!L#Eu>RU59E%3KbH{MPl@s>p_B1{yQ6$2Ne>^ zuj;Eyf>HjvCzS^k5|-(eqZ$cD`R~wF?TQKs<)8Il91@K3-vz2XsE|+|UGK#q!6^To zrp3-08#$>=g#G5zg4k-TC1LLa`i>oW$DWzFl~5rezZGE~Bp9V@7<*=B4=N;d-ByHo zkYJRxh2_o~yH-?4*!^D;=0So{YSXc2X08Vn5^BdQ!aPVYO3!BOnVCJPkkIq^@&u!N zXTSd@`|LqwB3e%ryKMFo>U|4%rC*rzm{D}Mf%El-XHeM}TqP1Nfi%}XMSI>tLRHm^VqupE& zjcTK|_FFK1Mfca7iblA&=WL;~2WPLGWoiZ(Biu|-nFw3$Ek{lq%U5_kN;ANE9Hc_R z*PyF0iUgxHXROCTDkOX@z49QzD4TJX;~*6hz9*paAi*fjGV5`W3JKraP>q8m7^Qh> zJq}VK;d?YH4-$;>ohplQ(4Q#Vk>bik*zS}CVLdgER)l$wV3f6mviG4v!tVc)Fb@)pQk#zcaemIJkWf2b5#~XHQF=C`Kb}3P zkkIqEBFuvXqkPS~9Ha1!l$p@}yK;;Iq24E=)Z0aWJnCU*MMYV0jAXCutR@1xLWjpj z^F+Qw@>OJi?)c7WCa93`73}J%CBZ0P884qfTQhe>L_9@2(*Cm|p)*`PA69c7i&1t( z%GORr@8P1o@<{v7iiF<#ty<#htQe&?deLHrhqV$adcziNsXQwuv|ih1NP4&Q-L)$c z8t21roR!xDt({RC=l9eD3ZKViYv1}eyqb&8miQg751cH&>7}z;6Sh0H&ybRcr?!9j z>sS^s_pzvHmZ@)ux!?F!m=ip1LHIu8=5ai}N7ldAV;;S1XV~Aj>)*{I2`Jo`gkbo@KN z{M&EUS^e?%ef#h|TYY=uXcuL_Zr|>|oq4n%HWyQ=2tTXt@r2bJM9_*7{pds5TMG{( zs8ob|{MC=$fBe_~_pf|0>Ji5ZT2a6G>`R9qx?g*p0u(c~3 zD`-Xi?pt0wy!DyzAVH-f+(T_jEkzzAqO7PdAAjrclh@wc>p_A_MYuZyvkG<^$+z%2|D#AV5 z9lR~>If*DMYV$|Wqg|1pQW5UaTH-;pT@q1N)L-8HJf05{R4T$fI1ZACvZAhg)$@GL z{VSW+N~lys_jvrD9q6f2yCM-~Mg6-!cnU72zJOr61_2k_U+>D{6B`yH>U*wU1GQpi&W& zhsN41i6}=sVhpy?Ssq5{xS>>pd-R&$CJz!(R+O&7BM;xz`zsPuD#AVb9W)OTQC5`Q z&BwHpypMxwB}P!G2>0kM@j&$;5oJZGRetrUpX(kZs8mGv$nVx}Nkmyudb;ksFg!p| zsR;MzJ%iPQM3fb!UgG8t-_h$qf=WfWNAKaxgG7`SrQYtz3*kY6N=3Lw@2Sm$M3fb! zUi;l&|Jhy-5>zU}J^F}a9wefyC>wot;X#5*MGOy(wen~=j=lrw$BMF|G>T?D)GGu* zr6SxzeU+XnS&)dbqBI-G`$2+AMYxChTs?>KAQ5FnX;zc%iUgI4a1V_gdaC3>BFc)= z>@1%T5>zU}J(#PJh_a$I%fxez?2bxBbPu0XTRlibSy47y9{p9TwPxW)P^k#_X!k<7 zfqJ+Ni6|>dv;ORNNl>W>_h@bESWlHaNJLpt%3flW7&(p+R4T$fbZr0G9z-UjKHS$o zJU@#p%=`9;Zyogkm5CVNu+?a=kH~N1x}X0x2Z*gacwC;Luhv8c**sdbezpfxNa!kL zKIqY+W`a?^ZWI}0C(MHi3A>vkAEXBfM)_)1%x@L3)s|a*xuOxH_u_wyQh7X@9h1l&=q0XGMjC#`e|K zH4hSu@)hjLg9-`FQR4oOR$?9`80Bl}l?N3Pnrp3EyI(6?m-k~a%2)WSCyELQ%^6ou zt$C1OlU!>@W#^B}<}-#LPwx<%_}dq9PRa*=qW zH{Wv-jPe~Yl?N3PzAr~#W?%JJ;~U6FyNQ_cL9c_?gU5F96{u_?VdQc$|S=hSfBp79P)_xCi=|P1=WMOL$5{yy{_1~OadQc$|S=icx1f%q% z`R`pWJ*bd~ENtyTf>FMYFfw7@K`Ik5<%9c($klWv>iPWl?w0kSLL#!Tbv;NhNOU(tu#j2?^OC275SNuU6Bt?*9ruqBBvT>wRNhGgWZEs8nx@1 zQy~#K)!Ksuqcr=d?;sTtkyEWbNH9vXDF1!ld_LZkYElskAox_rEF;$afSyK z63pS|^}!_0EFX;HX5MzTTpt{H-#$VuQL7Ak%VN(Vh&(RyPk0!S`C$7h)1XPnqvy_F zln03{AMG+vlm`haH6f3l(VGW}EFbMM>yrlwDm5XG{$}D>^&pYuqg`fw@*qK_Cd>n? zeI&Acw9Bl|JU~#X33>E4MOF_ISw7lj)+Y}VRBA#V{f(D-kjV1U^w+>9q^3c00JymMEB(m%?nf!7KiOlZKa3&<=p?7e4s^mc;%k5f?98UEhL8T_-p*Mqi zs^mc;%SXG+;p9PrN=?Xv>w_e+e6-6PP97wv)P#9pwU0!Wk9L{EnFk0eH6f37FUI;H zi7X%OGKZ4~2`V)qkJhHf`XGrcd*&5iqnU}!2hVUOB;>*MK@wSR?P}zSss{-wH31J_ zAH=beW(EllBXnFJkz0Q?XcF@1*Gg}MwS1J#2>mi_tgd7`cr3ANWyYQj9Q+D9VG{+!2`d&V%0^lLTN2T5ev z=OuB~$DF}DG*1YnCgjoX;8-6dk>z%+Mn0%(MS@CA$fLF0Tpz@-lJPruPKlWddpi&X;(OcrNE)|I=E9w)^Ts+K`1`<>%qI)2_BN1gqz3KXkSTX5Ot(_H> zig1tKm#m1O6}7qJ^;r2KL8T(xqxW#;K_beE`q2H?UF_ z>dp%n_?%zU} zJ$jB~9wefysCR$;)fhiWP^k#_&^%O6mHJ&0QC8Gu_v(2Z90Zk$m^?IcZb?Kr>Jek` z$T^MBaYLyH_vkghO&%notSDWD+_yx6N=3Lwzk}vMBFc)gyE*n>k)To$?$KM~f$Bjb z%8F8}#6B`)kW?z7dmtYq5oJZ`>B{|Z{i(IHqEZp=(R+p!5wxPzOXR*j5>zU}J$esk z9wefyDD`%^Kam8Lig1tKQ=12gC@V_6cC6#g`5={waF0IXmxAfXZd`Ppi&X;!F-TJloh2}CZ2Qb7o}1W-2?d`i6|?|X3L|$ z>T_zlgH$TQJz5Vp@<9?&R+MJ_+3%8|QW5Uadg^06hiZu=qO2%oFEL8Y`5={wa1R~Z zf3^pa326n?zhBe$i%$7q#J7&R?L5m&aU#ZFAXm=0kI27M?tZZzIf$)1cwC;LfBgnK zgj%$Iwg*&5=qjvsI&GH(qx|bP)ov;(BNeB-AQ1A5@*&&sOyy z!6^S4N##L>gr2U|4m$H7!6^UwNx4gJ{5|2L-9$|JpeoURwyFn@rM@Kg3;Oq2Di10o z)Z49gG@1tqM(G>B{+9%nZI=oO_1deQndU))Q9hPb^`NpM>iweQZx**Vf-3hYjftzX z(gi-C2cz`e>bmAsNN8+dU0w4a!6^T0U{%ejkkA|@?*Hf+%!34@{I8l-9#lwZuC;3I zeyzseLO$9t%KtiB^+Zu2p*iE~sWlH0jPk!SS9wq&VRPSQ?_(Y$80CL0ukxTmLUZ_4 zFKQkn80CNU4?T5@*3b5U3JK*R`F7Bw*94>duNPJxR7m9C7G6H*R3>7|2YFT`B3IKW zD(}^(W;LfmLVh`((}M(~bPfI8^0FRONJJJkb~<$%zaMcdM%kUUcjQYCDkLHcTYHdT zlv=32>tA|MArV>F+Jgk6^rZQk#nOWciO9m%9wZp0K4#A@Jtz|~<%7KEJXYjtIurGL z^=?BdBq9r2*MkJ3{I3{PdpW6)h%9XFL4r{}UR54cR>a5$r)yUSl+Dh|9*zo$$f?#IBp9WfB zdG14kQOcI45odT%A;BDOULQ>2%<{oFZsu)gixovGNw<0Fln-*XFO{#UZ=839D&$f-AQWF|KdPct@l0MpH)+Y}VRBA#VTw_e+e6-7~&pbd-sR?=XH$}(ldr4%uwUUu1%7X-znvh3-<7FNsvV645tWO>! zsMLf!`kOoRAd%&xU1ojqAVH-jgJ(Ds67t~sAc-uuc6F)!1^e+g4oOg{ z33&MWAdZzZGe}*l?qP(E>m%|R&V&T6)otw&+>*$$-;daxG_I}@x}u@fggp8kToFn4 zb~W~2k+A#Rm70(T*9S>t*`E)eC+b>}PotgCw%-&w1>68_(c@uCAWDP-;RR zy=PbvNqc`4yFzC|{YNM@A&=g}nFon1GlSH%BB6dT_9xbaJbK@59wf5t<45eKoC%Ep zq11#txIRcC%k5f?tWWhIL8T_T$Gkph`CxmZ#&LZ-kFyAPyV zUldA3_!?yQctRdLR+JSbI^PJBpi&X;(XZ7PWkDj!ihAo3mD{AxDjVHPCLxM_0xJU03&4Wag74^u&H=X1P76~d9;U3KHNJLpt@7dmb zk}Gi}s8ob|FuNlWWkva4)T;N3>hF2EQW3*rWOqDPloj>pLvKbs`dDjMmr6yr2lGJ^ zQC8H4?!N{1g9Md|aF0Hdv9lr(Wkqf7xE1Y+1eJ<#k3NUT_zVIhBfVk3Q44K9NL}6?N+~ zKZ<^r1eJ<#4`z2HqO7P-Ui(&zA0(($gnRVN%f=`YQC8IE(p%?oF!zf>sffwLvO69t z%2AIPgXeru#|@<-+@sfAbA~O6C@V@=A@?njpi&X;(eI#nkchIP>~4Zx^dhOh2NrFm6xCgU45>Zx^jXq<2kOY;A z7#_$6+sGN;7q!0<^0SAE(kPns=%cf0zM&F+B;2FbeB^^9qO2&*2J(K8pi&X;(eB{L z2T4R(QJU3cyCOlQBHW|3#N026V+E}!&Cc@qAVH-f+=KZbi6|>dvrIha*e^<@BDx3i zK@w3`l+Bh$f7R#IcF(C)gnP6eZsda`qO2&*`m^69L8T(xqxIBdzbJ_)D@xf*j1qGO zNu?s(L#^C@wg-_3X$ACC@3^u3J*U236j|TAY8m<2inw$mM$T|(UHbuv4Wi^1>yg7_ zD}rajGkoI*Z)|@J3Oj^aw0^YfB^4673YiajwC_(O!Kep5+v;(#-c6MX3A>xi9a~$S z6_3TJPoKM~{WYk{g9-_?%FG8@4-$;J;hvk?UxTVVsF2XpmH8k&NHA*i^iA#WJk`7O zQkjU>$7DW84<1W>NkrXu*Ucxsx}qckS2&dRP8-5KS7MXNe1DkL@H4hSu^1rW#p1MWrM?3rV7yVozp2 z4tn&OV3hxzz{-OP3IFSb<@ZH*w~o=dnv-CZ zuA#qMUiOJpNJJJkb~<$%zaMcdM%kUUcjQYCDkLHcTYHdTlv=32>tA|MArV>F+Jgk6 z^rZQk#nOWciO9m%9wZp$e{HqirFY9o>?ECtDIerL=dmJJ)0wE}+qc^=6%vt!t?R*K zF-kqSuZ1nI6%`VZg{?hEFv`cP@>*#e9D6x4&-AgY{Jtm%Mnz6F&T8vdSo=lOgHal_ z>zY#`5joY`g9M{A`>5|A6%vtCtvyIEO0%eFZ;Sp43W><6)*d_-qcj_=pC~FMG|SBF zuHB1qKS(f2v)a06ph6;Ys&zd`Fv@1&u}Iruo%>c2;`sLa7OP^qyfwB<=lG?&~9={v(u{kVo&~%!5RhnL+AWkx)Mv`x9$I9=)eF z4-#4S(I9qH&V>5&P-;RRT*`1F#k=$$gi;goXm@a|50c1oyH+FXJ6jM`YC;~ZCFc4d zj+L~}6XPkE3C-I=sR?;-eULJ_iOx5|B&bw`doa5r5oJYP_mRs^^UXF1 zDiz@#{hr&rghZ4T^%K98%jmEN3Xf&3|kUWR+O$n?pq>3r6Sy;-$C;r z5oJZ$-5mR`NKmN=_vkJ0K=mLIWksn~=1KzzDizT^kPniGvZC~K<$k#S)Y@55sR;Mz zJ;RC!T2bmHa$g?_Diz@#y@xXo5>Zx^db`}8NPtBcgCwG?D9!q_-z7n%BHW|()MLLWi6|>d z*-MNPb3RC=BHTl*+<&$QkqK!9^xE$|cRKcqBI}!1Eh9f$5m&TlbBvtf(7N^m5*tLx zFV-W6$5sT-glG7xuRV7fdyVGRS1KfQ6*3=;YRiKJqrUOOtsdomQ7RzR>;0lsNT^k2K1dG|jQWY6Id@v`7o|c%PgmxH^dP~g%>(C7_v{yiG7(cgNDm%M zeMw}EfA;I=PV4=mR7j||%Y2X?BpCJQzjy95*StE>{ctgIgNVAM62pWjn+DkLxddi=fT_dHQlNNCQudTPys1fzcXq4Rrs1}Y?M z?z`-L%!34@-tcSZ_w;a7NN5hf>P5|i1fzcGljrB2x<%_}dq9PRa*=#H=+SF}QGarD zevDUhE1^PS^SM^@dW?cH5y;_Y4<0LWHI0e#UX5y2b1Ed{m*Y8WPJ&UohW>6@?{`U1 zArV>F*y+?EzaMcdM%kUUcjQYCDkLHcTYHdTlv=32>tA|MArV>F+Jgk6^rZQk#nOWc ziO9m%9wZp0-e=D)Jtz|~<%7I~JXYjtIurGL^=?BdBq9r2*MkJ3)Pu(w+uW|Gkccd7 z?LmT3K3g{3g!5gckyDMc+B((dq97QhQM;}=6%vtCtvyIE zO0$pp4pJczIn~;O1fw*I+S3xDkcgaW?ZIO)O0&WGiK0Rxa;mil2}WsFTlWl9NJLJx z_8`G1o1K?E92F9gQ>{HnFiKfQ^se?qjh0A-1ar9g86?4|RUS1wsE}YrHm?sRac22o zjAWU&oh?=rsU+Q2s*&jp4__Y~%GnepI`{iN4xxYdGt3$R*zK9rl`#NIBZQfci9QJMA0 zg9MeDP(AvaJM$os<)d9@eexhdr6%OT^+6I@ZZ+4~)%SSL1eKcT9`pKOKUUI5yUgKK z53UbVsR?wHi5`>Oq1^O~|9Q#N026 zV{eULI(zR~y^N=@`@HP#17Wcg^P*+5+NF=sFjDm5XG zb_d7$Ac-uuYc;aIvjst=Cgjm)WOi00vh1_IcnW4h^R`fGLLOWnB#~vGy~fi#6Pka9 zQWNHZ^+6I@?z8aGU-db))!gRMU8xCqv>tA(50c2TXA{x8&V=%TP-;RRJ!4V7yCIQf zU&o74VkVT=gi;go=$V&BoXsD9-?tB6^~}%il<`JctB9M6-#*-IF517(1eJ>LHArT6 zB%-V+(SLE>?%1zU}J^Hn>IRl9(E9y6&ed+KUzxqAhg9Md|aF2e^&4Wag74_aH zUTW8BcbnIP1eJ<#4`z2HqO7Q|{NhW84_x_g58Q(Um5S&d$nHo)Sy5MB_0r+@eC65j z070c9+@tp;$7)w3qO7RR=UzPg@NZvp$?HLaN=3Lw?-R{~M3fcvyKi~%@MB-TrF)Q| zQW5UK?2bf~74_xgZyo;k_y2hJAVH-f+=KZbi6|>-bLm^HUESV2NKmPW;gR_ujuo_` zuHU_YdN3cPQW5UaX8?9TNJLptKlZj4a6d>;sR;MzGa2(B5oJYf{^)tMD-u*H!ae#N z&f67^6||!M^6uyHe2}105$?h4jzp9db=|9;=W~wzqEsrPdmy_b5oJaFyFYji{Z*e+ zTg|CdgnRUvzV(SDqO7R99(fM^E(t0X;T}E5F%J?^R@9H&`y9p(5>zU}J(%5*h_a$K zcj#JS9L(>FLaB(!!}CE9aong!jKL%4G(yJ>r6Sy;*Zj8D?QTg#Sy8$Qzw+1rYUlkf z2`Uxg9{moQ2Z<;v%I{|T{kt}om@`N!72zJeB_60AB%-V+waRb&<0rcZ2`UxQJ&+HQ zh_a&ebp64ze-<7fs8ob|^q#@$K_beEQZI4%&Tn=P5>zU}J$esk9wefyDD`%4f98L6 z4-!-=!aaIVZ5|||tSI%`*Zs!1|K|6c1eJ<#59Wg;qO2$%eJ<}FB&bxx@W_17#z8+; z(2CM1n)T>ot!loZQW5UaYCiHo5>Zx^W&?RYNKmN=_h@%;CHmfL-q!o8I3;=TxIDwZdh*4? zTfXr5p4~NK>(usu3JG0>%m?W~f>Ce#kE+KV=@HNY6%u|oBOi=#)q@11{_`)tczAO6 zAAfOub*Ye0tIT|m9wZob_dj{@@Lzo9+TUM$P$8kGEAv5mkYLp2iWd)GxZ<~ZCftek zpVmsCOhoHrG9RP|3H2or_4Y4+>+t;7{&vq&=|P2rdb`XA=|O@~Z+-Y%hyUPRHxwRJ zNT}D&e2^X_80BNhrNV>CnuvUm9wfZ%Q5q9hXVt)VKWrRycSfDO@WP&&Qz4E#jug}jtb&J-| z_J9frfR3-vB-0VRjay9j}@?MQ+4In9F#iO9m%qX7v<`JMfh!h;Hl$imhhBp9U@`fGpsuL}<< zBq9r2dyrt1p0pqSPyfE~ph6D~));$9i5|LA_JxDOhXXjN9M}RBI0sj8c{{_0*#!QX#<{ZXR(+ zFlv=Y4G$_Ln8VGheMy{IJ{Tie=51$-6-6pZYgM25AXocRIh&$Hd;STJC-me}NqWv$ zM<#6VkV$0uXqQ=^JbJcm1eKcTZ#lIlydsi5+GW-!kNyt82r4xpkN#%jST!e+<)d9@ zeexhdr6$Y+t9>N0e6-7~&pbd-sR?=XH$_$t5?OAor1eUkLCS*!m70)8f8%8yB(i+8 z%dAfxB&gJcJo=kE^B|Gsqg`fw@*qK_CgjoIK$-`MEVpYlayWUApi&dvW3fJ{e6T%( zIFI-`0kYEr~4q{qT8-JV@w@hEfyq=y%XONMt$M zmF8FSAmR7fm70(TSNlk0*`E)eC(46_+G{8^VIElRBavl)&V9aX9w7AGg;Epp=sm-M z?gxo1dw=Egc6pFc{}D<}$fNgg=0PIM%pm1KLj9m;Caql!KN9ljJ+*m|$g+W>_vqKk<_sjFtSJ4aX1>`bL8T(xqu+D$AQ5Fn*>9Yd z`$ef#gnKZ%BN1gq={IL{rGW&Mis&B5?np#gQTh$wTrufS?Xg-3m5OkW-j}S1pcSRx zWX_cz5>zU}J$esk9wefyDE&ruu3(X%QW5Ua`*!mn5oJZ`H_LM+js%s8a1Um8B%-V+ z`)!4Kzo>q*uqzcYJVtiMV?|j}`n~jQ*<6sm+5*MYu06&jBFc)=cSf?`B|)Vk+@ohK=0PILiqiK| za{M4cr6Sy;jW}cXCy6L4%D(%;ac~e+Dq`~Rd{Ez}>BkB>>Jek`$T^MBaYLyH_vkgh zt##D)ebFF-R+O$n?pq>3r6Sy;-$C;r5oJaB-HiQLB&bw`d-Rrgpn8yqvZB-~v5(AK zyAf0>qI)2_BN1gq>FLV-aQ&$@4=NSm9=&H+5kV_Ty+rQoBSEDi+@tq!=0PILic)Wv z`x8k}sR;MzJ+*m|h_a&8Yv(>o5>zU}J(%5*h_a%5^ojLB5>zT;cw|0kBWK?)+RKX4 zD4O-?qqAym-xm!f{7AS*tNF+Wd8{ZaO0$8yA0(($gnP6*IPyUfQC5^@HQBC6P^k#_ zXe}}GK^!Y+MQL`H&j$%A72zJt2T4R(QJQ7qImdocDizT^kPniGvZ8#p9Q{?FQ`ycw+bSn=YH*z(t(du_1>;0lsNa!l$ zydPh>qvFiO8`TkjX8LPAeh z&UfiSf>HXN;XV6Bp-jY-57L9jQeP6Yd;RWny+nGrLQ9FX^BusXs)$t?S8F5FiKx{sGle*Bs6DSJ+HWP zMcp${A>ni1Mek!CBp791+bDZDDkL5l)m-Sm5D$OH+%3{k*n$4<-Ho!tmafm$S=q9UhNgZC|zBD zx2*TOB&d*xEUdn|aV$ppoz*+?r3V!fk%j%u1f$eK{aydkg9?er!qy%n7^Nr8*DRJE zR7gY?w)P;wDD^&jcIiQxh$$cB9ptehSJRoO=c{)cQXvsp*t#Ah7^NQE*TR<9iVBIy z!qy%n808~TxnI=AC|A}*{HnFiNwJ z`VLYd5joY`g9M{Ai`vr?p^%82YVE;eF-o(+`iY`KB66y=2MI=LR$KQBR7gZlwe}#v zD4(5IJscGhkyEWbNH9uSM)a=MQ;(KNg#>fBxo;=IC}m62h%-E>kcc%luLoEAlJM_x z#&I)mJ6o(MQb}4X)yxOE+LuaOqeqnJ-0wqzN=>N0>bbMMLne`BW{|1}iOdJR<}tI# zf0swk=*=S)|GsF zD*k=Zn15#0XC7Elq>{9MX)0&P{Y}xa`d$)QZmp#CN_+N;La7PWqrdSo4<0Ma{vEH} zpGYF}!PXLo9|?K%H+SYiBFp|gGS8!Qtw>}(cxGP|i%cm0T^{`nqw~GB*>_9hInNwU_2{cIRu3vk_b*3| z{;KtG2YRaXoRi41f6vnUM|qIQO!3UWblQ)b|E_xU6)f{e#lIFB{cdJ`@*qJaY0uT7 zpC2o6wugm8mRlAF*3(Ce&U-sR{GI z`XGrc`*R+<-o{gFXO;P&KT$Db&3~6i?-^DEqtvg&uF#pFQWNs%J)C)v$TBm?vjw4k zF!m?bggkmrZ5|}D?Bhr5rksh)2fe3`Oep_d9(}|yk5qg#i2TgQE8pWe6I7CJPpyq` zk#qKuQy!aC+7pE+jiOl(5>#rUU#qb`NFvKV%ZRH!<_vaLnceveAZnifE)Vs&da6{7 zRD6~ZS68!|Y*!?xB;BsnAmqW-zEs+^LX>7_`FxO|QWNsv`XGrc`+PT^=9$p^GnASz z53CQ8$a2iWqrd8NYP-5V^LC{stW9f>F_ zO7wfS_skwPI#a0#_vqKk<_sjFtSJ4a<|7Zkzk86NQW5Ua@40!9h_a&WH%=dWU-uwE zr6Sye*&T@}D@wmP`_-rJ?j9tlR7Cecc1I%0iqdZY-+5tpfS^(l?$LXOW3?+1QC5_G zllkTkzqi+e1eJ<#kKV(X2Z<;vO23i)Zx^zCV!n zg9Md|aF2EeM?Od*%8Jr=6tZ2Bpi&X;(OP2u{veJOw4(Gqh?xSyB34N{$~Ss8ob|FuNlWWkuO{UpNlteo=jCrYjXOd3ZhuB90sNh%tE1Aa&eO zD#AT_&2MYB!@e&XM9_-TRrt{TztHzU}J^CFq4-!#Ul-R; z^&k;tMX6Q3>H2@!JxEZgi0*-WkVKRfrKjr?&kPR`R4T$fde30>AQ5Fnsh9ZDga22r z2MH<_;U2w*GY=9`R+M_XTb~IJ5>zU}J$g@V9wefyDD~Q(y!O6c4-!-=!ae$kV;&@; ztSB3OE`(R$rot1rGG?a>Pk5==M5As-1R+MG~c|S-{ zsR;K_pR1=zXGJ2)iqfnm+Z72a72zJOCFXun94lx=X?B*+2MH<_;U3HfNkmyunq}fS z$9_>N712GA50Z$oqHMN2`l~*twyR5}BHW|hi;)kKh_a$I>(73d1eJ<#kJeKk>#5Q` zClO^uDSL@Nf6fP~RD^rz*#6_+7mYDhzkT?TZ+dJ9f)9#lxERpvaA9wZp0-?jbpxypkI2|Zmo-=zl$ zM(KBkANXu!!kuXUY4;q;M6^C8=k4?$p}r)d^t;b*{9xrlg@k&$%s=Qsf>HV%?oYj= z@}NROy>{kN^dP|~A4@6^Dl1~-gY+O_LPK-JyP>sF2W{arM-i z2MI>$D;0ImK!t?OeV4tDd5~a~eQl%c;i!<%9Ddb{ng8l~pAJ2D?3W><6)*}uH zM(OJ(F<#9cR7lu2S?V!LUu)^gL?DNoJ$S6h)pYLiUX5yYt*DTYUykQ3wEt`mNH9uQ zUSl+Dh|9*zo$$f?#IBp9WPC3;sIKSoQWLV`KmJmQdG)GCh}9#lv$ zhnrXXlJM_~#z>ZV+u348kxJ59qh~%itq%@GYxEf<+Q)Nv*!m!qn!sABy+bCEWoD4_ z=-IXrnOl0zV`h>6E{~qkuLwqE)+Y}VRBA#V{msO&`YaMzKCQAUGo5u`QSc69{o*`)q_NqTPtb3lF!@aL4rz6$fLjUG7l12 z_V0Lk{vi(%nGd#>IL?HGJo=kE^B|FB{~np=QSu;>`QVv-=`=E-{C9cuH<0F$%9(w) zH1e~|;p9PrO49A>BI_GFYy4UbrPX|t{rhlPkN)n}h|KQx5&c??-Jc|~>@%6XA9~xR z=TNOZvpfI3Xw*FaT^{WYj`hJ*&TNJhS2y!PT`Lk)l5W=uS>M>P<=1K`t>&Zb-yO{7 zqqW_!qL|s;K0@{2`XGrc`}Y&^oMU}3v%53<(rIL-`S0d|^}$rm?7O9rXJ!tkYt`3S ztmagb?q7}^8D#6>#`++MEc^E?Js*?@iOlZK{7a|(xcTp@M_<9Rem52WT4>~%nf1wo z1eK&cSBrjrti;)fLn6zqm5e-59$ZnRQWL62CwzSn$4Z(RBs`4JaeYK??P|~@ zTYI4F`=UW4?f1jyCGsGl>k~>%$fMsu^B|Gs-b!qKB@YtTGP+U|^5`w`K=mMzWq&?= zo+u9zYOkTxgn3}Kk3^RJIrsUld4R}#(4VN7vF5+aqxTF}k5v4rjd`^C6`!}ug9MeN zTT2{-JbDjj9;tZm6ZwF8JI_DlL4r!s%bc_K)aF4V%RYX19wiSFnGbqT9hp%6yXw(L z9P>!UM}x@EY`n4@P97wvB;BqR^29N6%43sCyH<$OD4O-?W33TXYC`qsGk_J5w9hi~ zevruQ&SwBo^Za*tv^zM~2UGD`MqFLZYO-CCpptaER)dg7pON{s8cMrXqwMp zC$D|OcsChkts-tNy z^Zj_UO@c~AxJSR|=0PILiu%%n-+#CnZ|F%-sR;MzE%8|QgG7`S^@(RLVx@rum5S&d z$nHo)Sy6Ag{vuXP`crFXMWrI#qxTFeB4|Zz?sz>`en?QM2>0kcoOzIlvZ6k8|20^_ zB0;4h+@tr@=0PILihA^+*I^}&1eJ<#k3Qm<2Z<;vYO{Uq*yA}yHLp38iWnYa_a~1P zWktPb`x?}vkG1AOr6Sy;)qG@kB%-XSM;^W!_k#qLig1s12S+|gBFc)|Ja!e@6$vU8 z;U29ej_i&^loj>Wr!L_6AVH-f+=KZbi6|@T&I=d#oFgBkQW4z)`5=iXE9&MCUy1&z z&#CR6Q>h5|=reum6G=o_QBPjD68$a-Diz@#J!3Hs5>ZyvyTATwj2|SZRD^plyCV^0 zMQwJkp2xx5FAAk1CJ)aCLBw&R9=Sfq3{uApr6Sy;*Zj6Nd~8WXSy8$Qxo?RCm5OkW zeh1BiM3fa}cXRB&B0;4h+@rU|1J#2>loh2`iG5_=+Kr%65#0mX9f>F_N>5krhwD$R zc~Gec_vk&tiU?X!>Lqet9|wpo`XC7^6)`+=zoAM`R?v#l>@1%T5>zU}J(v%Y zh_a$I%fxez{i0MVqI)18BoSpr*=%|ASA9-xcaTa&xJT>ZMm|U)%8JsgKl@!0R4T$f zT2DRlK@w3`l(Lr?CFXpPN=3MbTDkvh4@M|A^{k#il>(usu3JG0>)lR2I%><(!zP;6BybJGV z)&8?RphCj#=Ew&-VICwH_0I2Hvu9Tr6%uNdtDR@&L4r|Fef*j|yW6Oc(9^ZrL1!K$ z7`3^0&AwfFP$r`FF{_<`=D}mBFNvs+J^H#myA7$3P;a-|(P$nd81>*4uiLY0k_rj+ z+N+(J=0So{K9-dGMQvPiWkuBcMM2ncdz8k+)md%q83e(ok9_krdumRFgvR#O)in$E zYaS#R_33k0@97z+kg&P$viC6$5{!D_vsdlu;i!<%9Ddb{ng;y*6%vt!t;cf`jIujB-i7n5sE~*(Z0$jUQEH*_wtl|4R7gY? zw)P;wC_QPhhA?|jArV>F+Jgk6)ceG$-0VSRBBp$hSC>TOYC043e6b2Ndr%<}S=hQB zBp9V0Jl3XW4=N-g3tM}TV3dzn<$h6(QGGAxiWvFebge){uBJ1IoNAoa)~PlZ1;Hqd z+I7vTkcgaW?LmT3ntjxFkP3;&sn#AO7^PX%o|XuOMC4R!4<3tAnhn-Z6crMYQ>{Hn zFiNx9x@Vw5B66y=2MI>m?7ZyZsE~-9YVARSQOZlEo_e%IDkPZ0&CehSMy>Lw;X#E2 zGqSM~XX}GWoLN2?BU$EcXNwg@DoM9>XJmTA!&duJY3t625?${XrBV|b2Yc>p?~qAk z`DmAUqUu3{N=?Y4XY}SlBFjg+%=+X(f=W%ugR6ZcvV645tWO>!sMLgcV11B8mfPQ9 z85yK`fS^(n^5}1hj@9>)$Z~5XBTtkE2`V)qkN(EXJV<2uXqQ=^JV;Qf33>E4cjiGN z%SXG+`s6`^N=?Y4zkxIl5?OB7YUFV8AVH-jy2rdecu6^Ddj`jGk9L{Eb&o+%sR?L zL8T_-!Sz8BSw7lj4kr&1RBFOJus%p4%SXG+;miXBm70)8>*2Rsr6%OjdxjN}wD(uJuaAWKk5Fnt9=(S% z4-#2s26?t1)DOna#hQ>u@7v9TM3#O0$bFV1Gy;TD6Y}6{ABiltYc+B>)q@0;n&=+$ z`e5ICnzWDSakgWuRn0dVUqh*heyzT!=Wt0R?emhj>SNAegyspM)Py|xOlCzS-LBQh z`gE;GP^k%dw3e9bgE&^wK2MCNU?wzg3#BIH!Sz8BS@!vEJk2wq`DZ9KVIEi?B$4Gl zZy)^?*9UDL-Ibbr5yg2&E?E(c08lA0&}wU&o74VkVT=gi;go zXrtP(o+`E7cYpo5lXy27WvwD^cGsQcn^Y21D#F(wJJIvOJXX+(5}j{^Nl>W>_vqKk z<_sjFtf(h1Tz`^pwn0ms+&oA`Sy4BC`1+H2zbKW8a1Um8B%-XSJ1^XDk}C}) zs8mGvKz2tW%8L5xQ#YLCib;QJkJU=3RD^rQWyyj3U zVt9<~j>n3!q8@$d&8SBoYt4g7MYu-bLp+~I5-F@6)}1Ad@zp{bkrlp;E{70q2q>95$@4zep|a# zTM|)Ll&(VVTOvWFBHW|jLGvIHWkuQD9Q&_GP^k#_=q>R;^&k;tMX6O{9~tsNDizT^ zkPniGvZC~K<$k#S)Y@55sR;MzJ;RC!T2bmHa$g?_Diz@#y@xXo5>Zx^db`}8NPZ|lrEs3BNrP)B<4-!-=!adp@{Gy&Jd60;*qBN_?c140pMYu<6iJ1@L zSV1dFv$K3YNKmN=_h3FqBFc)=EECT;_KQ-fi0*-WkVKRfWwYhcU-db)U0o^_;U4W? zjC_zploh2}fA+g1s8ob|v^F*JK@w3`l(Lr?CFXpPN=3Mb+LQlm4^#CBsPc=9qW-}Wppco$K@Hm@q;&>#McCjXwmx7o}yGp z=qhAB=+XXtQ4)-L;IpkB<$h5rB2o)o#Md20&8;3(NT^k2KFE5I zVAKuw+;kG(oR~eRkkHeW`5-+=FlzJkO(%Q4>Ih{bS|5}7AU$|2^(7H?-(5GK#8*S+ zdQc&u-Y)Y&dXQk$N4|OUNqoy>_Mk#Sy>{k<^dP|~A4}@}q8gW6SrL2oizZ>m?NJ&N zS7+5uPWxn%VAO+Gym?Q}sgTgvzPh^RL4r{qd-TnF?jRKsnxn-1pYI0=Mr|(MvacmV zA)&d}sP-KK7PxdCyELQ%^6out$C1O)H}a(%buQr3JIJ0E_)yIAi=1IZ@+a< z4@ZTB=J2at)I3Nq>T4gpb?&KKw0^d2XMZXrl#66`XTkPAGr_2LJ$~yLujW=lg~Vpp zYF_Ubg)$LSKFG7;u_9N~Xesa2sMbLJ7DOr}-{bXDkLHcTaV`? z7-e_X-jOdosE~*(Z0$jUQEH+7u7Bx4g+ydwYY!5P(v#+E7E2E*Bq9r2dyrt1dY^r} z^ir9KDIeq=qLEXLv)Ve<$HDHwD2>{6&8d)xoNDbsf>D}%)OU~y ziO8we9wZp0S=64E2!%xCRBI0&i&2^l)=v}_5}IXZcGvF3xE~}KrCDv=Gf*KBIn}xz zBp7A0^RkDdLLzdiwFe1CDa)98>QQqlB$&g^eLD$8t@5bhL4^b}vUzaPlBQ zC261gl_v=6+EeD{1YMiF{BVB&gJcJh(ncBFow* z6ZxP#NKmN>^T7Hbi7acMOyq;+0fI_R$fNaeW4|bgENh=kWPS1=L8T_-(O0mn-zAY{ z&%AQ{Ad>8P0@+Jh(ncBFn8^jXY8HAVH-j;Nk0oI9AfkAmL$zjvM=ZYC;~p=C`$O zcS|D6em`P&(oE=zhEfyq=y%XONMyOUtFixzgx%+^)Py{^K1d?V{(Qu4v6)bN4W%Z` z1M7n%vh2@!?0Or|;DN5Lp1V+LLLR+mSP@Bke-*nzXF~l)C^aFE-ou#(i7YdNJX;Xz z2V;L?O~|A7)aF4V%RU;!ZpxWZe;!Ir$b+kWB(mJcLCfJ(4-%PM`iK)5UH*IbnAZpU zu^6RMG|qO6wW|4sN=@`@HP#17WZCB>an;A1!8|li2&E?E(PuI%BI$OmM%JfmMS@CA z$fM85%!5RheV!Ok!Axl07D`RXgX@DNvh4HSc$#NI^UqLf!aT4(NFvL9-ah&(t`FKg zx+^sykJiJD^+6I@_WUDy*O^d05K2wRqh~DYcQ+)m>{(Ha5;LK^CX||xN6)-8;%xrS zFI{#T?@q|1`L|IXy^NlbGDiz@#{aV?afkc!Qb=^lU zJIy!SB&bw`d-Qv59wefysGs<)cCE%6dJ?J zDiz@#eWq`HB8ey~>MOTgj((Q}m5OkWp5vGYi6|@To*%y);|B>U72zIj#2LFkNkmyu zo7>y98Y_wzUpdmtYq5oJZ`>B{|Z{i(IH zqEZp=(R+p!5wxPzOXR*j5>zU}J$esk9wefyDD`%^Kam8Lig1tKQ=12gC@V_6cJ8wz zL8T(xgV`O4C@acFpRqnjf=WdUkIV-(a>jnqURIPw(X2-womKMZx^W;NNaNKmN=_h>CK_lx3KK`TnLvwS{CP^k#_U_MA9 z%8Jq~6VEyJi&CkG?ty%eM3fa}v*poW^*OcOb1D_#9<7HP`5=iXD@wEe>~~2}sR;LI zJ@wcxN+QaNQuY#~#GDUOsR;K_EBBx6L1aQ&0loHn&z+9_qEkK?@vWmii2Q6tT+yDi zF>>xBHi(j6tVfQO(XBjqCOpGmeeJo^dcP0@gkg&Ts z@R+;%AJxDO>Cw}JKX}w>R3JE=3nGe!~1fw<&oIBmKUlhtj zO!*)^cr5iLkv0C=ub(^3wW3b6|7;JakWg=z`5-+=FzU~L@7!si-NG@_9%^stFy9eMR!JBbNTr_HK#&CWBcmrngCJV-F=ryn}M zr)Qu-!sfoq-p4#hFzOAzc79I}M}>su@T*?bJV-F=mp*xZ?x|a}ezpfxNGKP{w}T$N zCK&Z6N9V_QHMbHfBsQOGHLu4gC=-DkZua1@B3ILxDDTy%W;LfmLVh`(v*siirEBQ# zmi2y@1QimIg^is~9rF7T$6}P-S$jvm^q@i_vaq!W2}Y@f`n&$62Ne>Lg{?hEFiKCF zuURZTsE~*(Z0$jUQR;p6?9ziW5mP?MJIG^2uBJ0l&sXm@q(UOHuys91FiJgmtg+4Q ziVBIy!qy%n80F(tyfv6=u2Id_?v8dVV&sGS2p{2mzi8xCh8P5}}ZYoNDdCV=+pz!TO1!LLzdiwFe1CX;xeJ z3{*%&PPO(R!6=)ZmpvR65|LA_JxDN0Sw{4(_C$@ANQDG*xcM0*!KhUpH9V-0U=BC0 z4<>PD`CyD>nYW!SRuriu-BzlR=?xEG9~{cr6eT+M`*3}b3XhxruD-qJ&h`#D6|YC+ zwVCy)9wewFeYDGemq*X&%_EhwDJru*d61xz^wBQ=T^{|-#IgFURL-WT%=+X(f=bdy zyZm?a!1`b+XH!&WedYmzO43KW{C9cuH$_&DRL-WT%=+X(f=be@UA2BJbI$(8%REwP z?Fvzu^~r+-m6}jJ`kOoRAd%&xU1ojqAVH-je6B6=hcW|r^lE`wqRwIW~JxEZg z33;@ZnEOR>tfY^2nZwD01eKbQ2iFHlWcg^9Ih;I5P^k&?!1^GGEFbMMhcgclRBA#V zt%n=?MM-4&XqQ=^JV;Qf33>DtEbDhkWZ5&X96v~8K6r*RAt4X0_L0bPYgZ#rR6R&g zsR?-a`XG*#G&4we7@_0FexI6IY+gVok`S_wD9EBFjD+E-_KTv0S)6NHoviC!MW zwjKUBJwAAnL@%4i2kjg98+&iBfzUTS|Y^PWTVyY!t_zxP{t zK|mq#m0x`6@J-h{y`Nyzd!K06@D6xvbxw9xxF+_k;!F4XS>bFK9#Ba5U%qjAKfx&f zJ2pRG)%=dX)$X&OufMbG*9vF5@PINA_Lj5s0O9W}J<8uLmV}+v2Tts+>8x=ihc~*Y5m4_=N;tljTt9E?- zw6=?yGb-MT55j@b+WRxne~;eI%C5Tq`{Jyi*l$6!_pKu0_x1}95R8hi2^54qQC@R@ zqW-1d&HkJh1eA&R+>7>Cb^m5!gQ(wq%Zv86ehUK6`R3xc4@bMg*)FaX6cT^@ecwKO z)iXb9t#UuXsNa0{rNdwO>wlHR)^FkVKv9oAbhka7=COURmvOe0hd;F>bfoue-(&QC zf>AoFM;^W_iE&m`tXF&N&hO%^NT`4O>Qg_L9$s;^UDS|KDnD@Lzde}lU^}zz0TmKz zF?U|5JV-D~noH|?P$8kV`{aeng9M{g{@9mq zDLkl<`10|$4&VLtpDpS^f>A2}_xJyJ;X#GO=F+#?-;b+2NHEIEo7)QyDkQGoy|6y3 z*0#0>RF=f5=GLxAs2ov0_O=(+SJynKEQ!?}G!GIgN0dhAD9=wV6%zgzcF{`O@%5we zLw~K;m5KPH=f}U#9wau1^1l>}Cu(aJ&4UVwzr6eTJvqWJa@S1z1@7RNHEI(0(I4kQXz5IBhStKu3y}CbxAPF|B^QP z_E8TiB!1-H=ML-9fCQubZ_)YaGhZtz6LCkoR(-r0*Q%YF`gZ-L@jj9v%K!GAk9M;M zl?@2_#rQaTkYJSm4Zrtg4>ztA6%x8`AG#mJru|qwNHEI(7GX8hr$WN+KXZfOL4r~K zHx=(G>OqBs+VLu5v3ihTl>cqW%7Y3CJ&%!7&G&-@qx^4NVy55DNI%|Red$40CZhF3 z@$a(-kEPxxqE8M1j$Az{75W_Q~( z7d3(k3H4p8OxOr2B>ZpFSM?ylDD}a0eolpijSM}zpYJ&p68>G*>a1o$UxoE3+cUBB z*jj(3z4Be*akb-ORSzSmkkCGm`sz|4;a@CR)WbYTFv|9`EbqAyR7hx-&8l4)L4}0& z{?x6V3JJYIh$}trpm~sBl=d*KoY$%C4nmoT_N~c@a9~0Bw{d;euWLAE!dpk$I0%J=fAto#@Zmv%QECfQMn62L zknpeGRvsi6Wi6Dm@Zmv)gn#uGGyPEy5{%MwQ@{P7Lc+g#i<$oLAi*d-|I;jd)Po8M z|AsAQ`on_+qkNB7Id8Y$?Qvxy?Ay2?0SK2e{gEA5JZQRA2daHWySpKD3k5Vr> z%|%8Qo;O7#9(g#U{M-7K2bGz)YTuh8`?9|uYx7t}`QHdY-@f&#Zx5)<#DzU? zib#C*sf^OsV(Sry%1m6?^QMTzofk67|7HWmk5LaQGjZjfH$^0F{%}V5-=4tuF+8Zu z#FcyA6p?uHLPq)D(7^aHJgCgXs}H9!YU4lgH%9ze@BVs5`B!K$ehd#PGx6&2K4?5q zjcPrE{ryTm)@GMc{?%KIAH##nOuTx}n<5fAs~E5R>%AC1h6k0IxN>Byb3I7t>c&Xs zUm?c$F+8ZuL~Ah|qc-iQQQHF&)=GMm+H^hQP??Dfd)^e0P-~Cl`d6VbevEohnTZSI zeZYLJNa(4Jk<7ntjqzi6P??FV<~I}VQuUck>#t(;QtuOG|4Mh|L1iYcUcWDCXSO{c zp`uVi{WzG(f0NZSQ~mqPXI>;!u2+|+knp`&i%i(giUgyqT(2%^M|4+6Jkx%^c6CT5-1NknEj?uXq$5-LZOc3iA-XR8O5C9%pm&4Yx>5v9Ei^*aD6OJd4W z+Zp*&OG4#{(r$>=n+dB2l_fFF8HNW5l_Sb`U!bQJ(SF((bw}=#Az}M6n58xFiK^8 zb71X3g@o2Z-u}%0Dm+LqN@aaJVeLVMgjQ&-`;Bw|Z6fTRlVFs}`Ub>A*tMcU!q$*B zmlqx+7-i-5&55-K6%xK1VnJ9vs4R(9&8;3JRE{X$+pxI0=0RmitnQ$BkWe|Id<|*g zVFVQtzNS;voC*o8F4b+91f#Sfw0ffKtVl4*S7@rUqC!GzNPBvQZJR;%*1#xVL-L+z z?n|g>6)5^HdJn?tL4}0B390Hqg@o3S>Royy7{wJKJF9j^`k8m0c`xc~X|HV6l7xEj zdgX`5VwBc7r`4scom4w3D%_vQBhB^Dd)&At{$|RrXu0NPHK#&?*KqcjiPwxiYISwJ z8m%5YE4{gmRzkngO6;ttkg!Z<*@QAvZAsXB-#&`Y9y}JK^cJ^%KB(xeYCNet z(tZyTzBX00b}A(FhILVL|^Nfp7(<*V%$M0Bz!e%(Tm#s zAi*fsZ@yMMF3(WqdK{!e!t=pu93;Ug&-51eV{5Zl%?EpnBcVCt>a48hRF*_s^-**4 zAfa+ZdEQoCT`Egry65eTd@f2t<%sgUt@5COn%~i1NH`G3(Qb9Z*>k@pR4C ziiFA$<#}7>L1js-o^z`Q36&$tv!ZeqZkdTIBrM;ldmj*tQce~9UVc`69IP@gJ1b_2B>w-(&MxG#s*K|Yx-h%&Vx+JOOR_M!QNqlM zJcBRdMR+d4=pu+g`*6}X$YTwG;g0blZxl=^y@(;`%LpZGu+(`6HeFOOMG3t#y_Dp< z5fTXEZPEHa&wAGRJ!h{o^Uh%y7VrQ0o&VZPKzN>HFKi;_1T& znd6Y~9YXi!(W~bQ-^D23UvyuGpkn>`5x<(8Ewyts@gSkOkDh>;#?%vnQJTr1qVk4 z+fN{4PfM9?zZ!6%rc5_e&xPM)_VsF1K3K&>nJI7l$c_uQfm zHV-N!H0sy0Sf}-a1fzWKFj|J@L4}0o33_(h)Pn@0d=Ip@U3TQngGwT7-!q6=`4p;@ zMB7hY+d)LhThG#Kxhm26409?r@-9!qQGDiIdGPN?;XDBk19WtR#GwU3iKUY0A~>$85aUbRc; zIV+()IF&0MNBO9Jti}e6;#eZLKI|v#oZ?cj zT5+#eqml`&D1&GoBzzUwqkPR9L^}>Dnb68Oh~`1USHnHZ*Y0~gCzVWS9{`BvLBdz{ zJ<9hWpdW0PW@myj!=AmNf6orgT7YBQK;A_Q96hH_KHd-w37#YZTWup zAfdAxQC1e%4~i(Cx?7|wnb3|T^tBegPFN|aQ7Y4^9~^{;pppsgtU_OF;p>D-dqk;j zrhae`B7#aLv_q`tK|-}QqSVGj4`;3DU>3!LN+z_^ZSC$yp)#S?C!*9=rhc$_P|1XL z?DafIs1=PU-u=wSK_wHb`>?tH@V%9_J-2zv*B zAf7ouLigvQhg&-i5R9@rZ2fsHj+SS^_rs!XZC3Eu+?!i!ZYB_tT-JApwo4=N;l zFE5DZL4r}fqZ$22^Pob)_auX89wZp$`>fG_G!H5yd~Y>~=0So{zV{scNAsXU!uN=S zXdWaO<@?^ze>4v&iLgENAmmY~(lXRHYN+?}9q}F|@8}tFt))Ujeu-!vBp9W07(GL- zA5=)_yd|O>gC7S8Mp;>4{~@A$>K^*4kg)4d!ot@HMyX6k&ydd*6%s1PiD(`q7^S)y zJwx`OLPGU15zT`Hqtre|&yYQ+B*K34)9VdLsP&2O<+@1rphAM{Ek@`#%BPfFt!C8L zQtJlM)*h^-CZQF9es93|Qtt-vQNY zOZZ)kiYNZJ(W{+WJG=EA15!jp-R3vtGI3$xtzZ_y*s}3(*5IXc;thTe)_4WPQ9)C{o}v%zb_XgsPqWY%f&yI56u5^ z`S;C(M5GmU&#B$$GGd%SVo7v^Vf`nP$Ih_s^KdU1EW^#|cWf=Z8Yk1IZV z$NY&`ud*kYk%+XSe*MDk_{5XpL4rz;aF1($dc*viw|~q$NJLsue|&y-y!z4bAVH-^ zxW|A0bH)77-FKP?iAXEz)6eaWSAHivNKok!?(wUe|9s1p+egiVM5GmU_s@67A07`6 z5>$GGdp!H(aLf1paLhbNL|ReT{djkLeFzT{RC0L{BuPYCQL}4Gxf;TQ1eG4)9?F0D4CUWWlyIwq_}-{p`ulQW@%CS79aw8gSSt~^ z+DIU3cDl4Hwf?VpK=Jm&zxUyty{%QtKo2S;4xQTDTGewBR7jkBvE-`NS`t)99DiYN zYgGqHP$BX7^LtyX8byK%iP>{|TdVp(f(nT@pV`}5m39(TNIdqVlB-sBNwAbed$nF- z)~+B*28n2iI^_xkqoQ4z5>%pPIC!oSky;-fIcrq34DyH?Jk1rAsDl^D6>AhqKKtN& zcB!xydD?sGixD2>*S|+l;rDt?yBNVJuW3Dkir217$rTB&X*~}f2cx{E^$03nyDlYH zB)q2eJeVs+c^&K$C?)Co>+f}Rman&UP}g(GBoZ}uR; zG5ltNQJh)iTv6d1=U}-a!CBbmTrrAs!_5SvW{3Y)uHZ2nU#}A@g#_ogn+Zn!@67J_ z)$cAl9#r1*#_srzyB@HpgXN0E_1ByoUwz-#J0AQlM*aTC*>U?%J%Y-+o;^Fh^u=#n zLas>s_3h`zNB-{g=5xiU2k$*M9{FhRdQiFXm2>0CZI9ydZT6U*{%5<+2P=srZog@N zyzTS7D@cXJm*2fV{_Z1wHFK`0kht~r^W$vRyB<_X-1f}*@wX>?1Qil@eeV4D$eq3G zL50L@c78nmN{^sIV*lya#xo!8T|p`&uD$-X@zMK0loqbsuhgfGOKjv_N3YXSxJ9lJ z*6Wj~X&*E24He!S_!u|R^2j4H5>$GGkM#N83=)x66i0*01qmuW!aexL5E7AA6vwE` z1qmuW!aexr6B3bD6i3d>1qmuW!aeFck#x-m5|LIE$Meet2`W9JdiXn$%!5Rv6~$Rb z@c==kN4N*yk3%BTisIa7xgbHMN4N*y3`8Q*isFoHxgbHMN4Q6QCz8Fdh(x3n#j&s5 zDVnQ}=n7Kl5y|6atGzbzt|PsgUL8k_$oQrv|K81nd(g`1@wUa)NPmjL4j*cb!$whZuP|v6?%@ zC~8Vj30i%4{N4NWQfqh08CD$}LeY0cT2V3Xat{(zdW3tFTB|n$nFonTD=J26?m>b| zk8qEA4_ViIAQ5Rr#n{e0NKok!)noMz(1Apx6&0hw>H&gEk8qDtYj>109S4a>D=Nm1 z?m>b|k8lrN3!PyrS9O%C?+RK`G2(O&5>$GGd#FsQq{xFrq!ksTSN9-6rAN3&skM5O znR$?iw4!nyBtfM|xJSvpzTZE%m%$ok>2gQdkE0TUA(gPRi#r}cH)38LN?YQ0myJMw z9)EASnh<`pqJ1sRiD*T+?#vl>q~*ssbzZ5a(j)vhxb93M(u(5DJFjh1=@IV1b!QTh zRut#z%LNH4J;FV>?o1-misDRvxgbHMN4N*qok>JmQM@0pT#%sBBiw`Q&LkqODBeL> zE=W-65$?ftXA+TC6z@MQ7bK|k2>0N+Gl@tmiuW~^3lda%gnMw^nM9-&6}_|9K@wDY zgnN`a?yW+ZamPJ&DRJ-JJTPxhcR%Kw(I=v=0yK}>l$84b_^wz5P*kiTG@|8-N~}{H zJXa)QEu?vLbH%7wZ)rr!6_r@iIe4xTf%bUw*=2hk?QYA}>Nwa^<9p*S_k{^YMN7Sj z@b)|rCrUeC?vY=Zh>@(KI19^1PK5;LRGFYcf-|H{P$9wjP9~_3;Or$6R7h|xk_jp# zIJ3wE6%w2$WFnO%m6CeZcr`OYh2w-+*_d8)DkNf+V@gmV5i1*0f(nUP*_aYkNW?0~ zl%PT)RyL*t6%w(sF(s&wh;@o7L4`!L`4=O6KBy>;obolN!tdocC=*mja8#2CDkL~Y z$pjS=9C2iV3JH!MGC_p|M+2FlLV|sJCa92LPn`)yrE6Yi`qOL9*#wE06iWsCb{~QS@HBg2)vK?;m>}{4Pd$|JWm_c%OJFxgz2H zW6y)RVwCrsLGWGJzK^}GF7YXn^{Fa83Qq)-pzZf2cn*usE@t#lxU<{S_iVMGhY>j}z-=gz3<7qvr?5))=*8RLk+K#-Qw|33vTE((+45dfJk=IpGArp`7 zx<>Ebn+eNFJwM8ce^Z>Rx~`^@(%#T*QFw|=5a~Fa;P-Y2&s8n$UK(rZGY^);de)oA zj;NBSA$}RMiHIZDEHze<{hjAV@Jypj$2HG{ohuSGojg2O^=QoldC#RpC$-hwN|*pZe^CS`ta1{$GGVRKDglOFEYJe1_HasD8MzJ&#&m5f$f3 P-?T>X?2^EFTQ2?&pk&*@ literal 0 HcmV?d00001 diff --git a/resources/profiles/Meltingplot/mbl308-printbed.stl b/resources/profiles/Meltingplot/mbl308-printbed.stl new file mode 100644 index 0000000000000000000000000000000000000000..ab252885915ab48e163d412f7ddb4491745ea73d GIT binary patch literal 160484 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 P-?T>X?2^EFTQ2?&pk&*@ literal 0 HcmV?d00001 diff --git a/resources/profiles/Meltingplot/mbl480-printbed.stl b/resources/profiles/Meltingplot/mbl480-printbed.stl new file mode 100644 index 0000000000000000000000000000000000000000..ab252885915ab48e163d412f7ddb4491745ea73d GIT binary patch literal 160484 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 P-?T>X?2^EFTQ2?&pk&*@ literal 0 HcmV?d00001 diff --git a/resources/profiles/Meltingplot/process/0.18mm Fine 0.4 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.18mm Fine 0.4 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..29b161150e --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.18mm Fine 0.4 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.18mm Fine 0.4 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_small_nozzle", + "from": "system", + "setting_id": "AbSOyKLL1fGceKJM", + "instantiation": "true", + "layer_height": "0.18", + "compatible_printers": [ + "Meltingplot CHX 350 0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.18mm Fine 0.4 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.18mm Fine 0.4 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..09624e8d1d --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.18mm Fine 0.4 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.18mm Fine 0.4 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_04_nozzle", + "from": "system", + "setting_id": "WF0wYUMc1HUHPyVQ", + "instantiation": "true", + "layer_height": "0.18", + "compatible_printers": [ + "Meltingplot MBL 133 0.4 nozzle", + "Meltingplot MBL 136 0.4 nozzle", + "Meltingplot MBL 308 0.4 nozzle", + "Meltingplot MBL 480 0.4 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.24mm Fine 0.6 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.24mm Fine 0.6 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..b5114e1fee --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.24mm Fine 0.6 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.24mm Fine 0.6 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_small_nozzle", + "from": "system", + "setting_id": "KrZSDq4Tsnlnu0Dm", + "instantiation": "true", + "layer_height": "0.24", + "compatible_printers": [ + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.24mm Fine 0.6 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.24mm Fine 0.6 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..c6ff710938 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.24mm Fine 0.6 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.24mm Fine 0.6 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_06_nozzle", + "from": "system", + "setting_id": "9PDbCLSnBEocONzB", + "instantiation": "true", + "layer_height": "0.24", + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.28mm Optimal 0.6 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.28mm Optimal 0.6 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..476156be3a --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.28mm Optimal 0.6 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.28mm Optimal 0.6 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_small_nozzle", + "from": "system", + "setting_id": "RrsJ1yXD61T1Sk2u", + "instantiation": "true", + "layer_height": "0.28", + "compatible_printers": [ + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.28mm Optimal 0.6 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.28mm Optimal 0.6 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..4187f5f899 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.28mm Optimal 0.6 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.28mm Optimal 0.6 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_06_nozzle", + "from": "system", + "setting_id": "ewObaiyN5k5Jl17T", + "instantiation": "true", + "layer_height": "0.28", + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.30mm Standard 0.6 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.30mm Standard 0.6 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..90de66ee6e --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.30mm Standard 0.6 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.30mm Standard 0.6 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_small_nozzle", + "from": "system", + "setting_id": "nHe2gihvCHahJ4Pw", + "instantiation": "true", + "layer_height": "0.30", + "compatible_printers": [ + "Meltingplot CHX 350 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.30mm Standard 0.6 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.30mm Standard 0.6 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..6ef66db3bc --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.30mm Standard 0.6 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.30mm Standard 0.6 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_06_nozzle", + "from": "system", + "setting_id": "6exgbZxVLHjH3Bhd", + "instantiation": "true", + "layer_height": "0.30", + "compatible_printers": [ + "Meltingplot MBL 133 0.6 nozzle", + "Meltingplot MBL 136 0.6 nozzle", + "Meltingplot MBL 308 0.6 nozzle", + "Meltingplot MBL 480 0.6 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.32mm Fine 0.8 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.32mm Fine 0.8 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..285d6594aa --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.32mm Fine 0.8 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.32mm Fine 0.8 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_large_nozzle", + "from": "system", + "setting_id": "HSqTmgZq9mxKpWzq", + "instantiation": "true", + "layer_height": "0.32", + "compatible_printers": [ + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.34mm Fine 0.8 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.34mm Fine 0.8 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..1acc2ebb64 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.34mm Fine 0.8 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.34mm Fine 0.8 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_08_nozzle", + "from": "system", + "setting_id": "XVRHVR0F8UrpWAeP", + "instantiation": "true", + "layer_height": "0.34", + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.36mm Optimal 0.8 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.36mm Optimal 0.8 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..fc6c41bd75 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.36mm Optimal 0.8 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.36mm Optimal 0.8 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_large_nozzle", + "from": "system", + "setting_id": "KLnV7sCKomrmvKxU", + "instantiation": "true", + "layer_height": "0.36", + "compatible_printers": [ + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.36mm Optimal 0.8 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.36mm Optimal 0.8 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..9694cff7d9 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.36mm Optimal 0.8 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.36mm Optimal 0.8 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_08_nozzle", + "from": "system", + "setting_id": "WpPpQuf0jWaXQaPU", + "instantiation": "true", + "layer_height": "0.36", + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.38mm Standard 0.8 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.38mm Standard 0.8 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..40d74e2bb3 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.38mm Standard 0.8 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.38mm Standard 0.8 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_large_nozzle", + "from": "system", + "setting_id": "pKcgDKQM9IVmXiym", + "instantiation": "true", + "layer_height": "0.38", + "compatible_printers": [ + "Meltingplot CHX 350 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.38mm Standard 0.8 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.38mm Standard 0.8 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..c555721f40 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.38mm Standard 0.8 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.38mm Standard 0.8 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_08_nozzle", + "from": "system", + "setting_id": "IMZxMsLnd5IfiDFQ", + "instantiation": "true", + "layer_height": "0.38", + "compatible_printers": [ + "Meltingplot MBL 133 0.8 nozzle", + "Meltingplot MBL 136 0.8 nozzle", + "Meltingplot MBL 308 0.8 nozzle", + "Meltingplot MBL 480 0.8 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.44mm Fine 1.0 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.44mm Fine 1.0 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..4f8e9487d5 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.44mm Fine 1.0 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.44mm Fine 1.0 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_large_nozzle", + "from": "system", + "setting_id": "QLMHgE0vHGQWiuz7", + "instantiation": "true", + "layer_height": "0.44", + "compatible_printers": [ + "Meltingplot CHX 350 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.44mm Fine 1.0 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.44mm Fine 1.0 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..4f321f0192 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.44mm Fine 1.0 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.44mm Fine 1.0 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_10_nozzle", + "from": "system", + "setting_id": "tjLfITsaMySQV6OC", + "instantiation": "true", + "layer_height": "0.44", + "compatible_printers": [ + "Meltingplot MBL 133 1.0 nozzle", + "Meltingplot MBL 136 1.0 nozzle", + "Meltingplot MBL 308 1.0 nozzle", + "Meltingplot MBL 480 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.48mm Fine 1.2 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.48mm Fine 1.2 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..2df947e174 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.48mm Fine 1.2 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.48mm Fine 1.2 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_large_nozzle", + "from": "system", + "setting_id": "yzaZIGtEhvf2GGbl", + "instantiation": "true", + "layer_height": "0.48", + "compatible_printers": [ + "Meltingplot CHX 350 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.48mm Fine 1.2 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.48mm Fine 1.2 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..7702399184 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.48mm Fine 1.2 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.48mm Fine 1.2 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_12_nozzle", + "from": "system", + "setting_id": "erJDLPP5pRQnGwoJ", + "instantiation": "true", + "layer_height": "0.48", + "compatible_printers": [ + "Meltingplot MBL 133 1.2 nozzle", + "Meltingplot MBL 136 1.2 nozzle", + "Meltingplot MBL 308 1.2 nozzle", + "Meltingplot MBL 480 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.48mm Optimal 1.0 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.48mm Optimal 1.0 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..d88e9a538c --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.48mm Optimal 1.0 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.48mm Optimal 1.0 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_large_nozzle", + "from": "system", + "setting_id": "dZw2B5t8nN5lhyXI", + "instantiation": "true", + "layer_height": "0.48", + "compatible_printers": [ + "Meltingplot CHX 350 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.48mm Optimal 1.0 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.48mm Optimal 1.0 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..2b20bba856 --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.48mm Optimal 1.0 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.48mm Optimal 1.0 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_10_nozzle", + "from": "system", + "setting_id": "5wtjDWniGYAAtn79", + "instantiation": "true", + "layer_height": "0.48", + "compatible_printers": [ + "Meltingplot MBL 133 1.0 nozzle", + "Meltingplot MBL 136 1.0 nozzle", + "Meltingplot MBL 308 1.0 nozzle", + "Meltingplot MBL 480 1.0 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.56mm Optimal 1.2 nozzle @Meltingplot CHX 350.json b/resources/profiles/Meltingplot/process/0.56mm Optimal 1.2 nozzle @Meltingplot CHX 350.json new file mode 100644 index 0000000000..c29d827b2e --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.56mm Optimal 1.2 nozzle @Meltingplot CHX 350.json @@ -0,0 +1,12 @@ +{ + "type": "process", + "name": "0.56mm Optimal 1.2 nozzle @Meltingplot CHX 350", + "inherits": "fdm_process_meltingplot_chx_large_nozzle", + "from": "system", + "setting_id": "l6wYSAIFuyQFgT5X", + "instantiation": "true", + "layer_height": "0.56", + "compatible_printers": [ + "Meltingplot CHX 350 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/0.56mm Optimal 1.2 nozzle @Meltingplot MBL.json b/resources/profiles/Meltingplot/process/0.56mm Optimal 1.2 nozzle @Meltingplot MBL.json new file mode 100644 index 0000000000..f33064051a --- /dev/null +++ b/resources/profiles/Meltingplot/process/0.56mm Optimal 1.2 nozzle @Meltingplot MBL.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "0.56mm Optimal 1.2 nozzle @Meltingplot MBL", + "inherits": "fdm_process_meltingplot_mbl_12_nozzle", + "from": "system", + "setting_id": "i2aDrQXA45e6DpzC", + "instantiation": "true", + "layer_height": "0.56", + "compatible_printers": [ + "Meltingplot MBL 133 1.2 nozzle", + "Meltingplot MBL 136 1.2 nozzle", + "Meltingplot MBL 308 1.2 nozzle", + "Meltingplot MBL 480 1.2 nozzle" + ] +} diff --git a/resources/profiles/Meltingplot/process/fdm_process_common.json b/resources/profiles/Meltingplot/process/fdm_process_common.json new file mode 100644 index 0000000000..ae3651d8fd --- /dev/null +++ b/resources/profiles/Meltingplot/process/fdm_process_common.json @@ -0,0 +1,107 @@ +{ + "type": "process", + "name": "fdm_process_common", + "from": "system", + "instantiation": "false", + "reduce_crossing_wall": "0", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_thickness": "0", + "bridge_speed": "50", + "brim_width": "5", + "brim_object_gap": "0.1", + "compatible_printers": [], + "compatible_printers_condition": "", + "print_sequence": "by layer", + "default_acceleration": "1000", + "initial_layer_acceleration": "500", + "top_surface_acceleration": "1000", + "travel_acceleration": "1000", + "inner_wall_acceleration": "1000", + "outer_wall_acceleration": "700", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0", + "enable_arc_fitting": "0", + "wall_infill_order": "inner wall/outer wall/infill", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "crosshatch", + "initial_layer_print_height": "0.2", + "infill_combination": "0", + "infill_wall_overlap": "25%", + "interface_shells": "0", + "ironing_flow": "10%", + "ironing_spacing": "0.15", + "ironing_speed": "30", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode", + "detect_overhang_wall": "1", + "slowdown_for_curled_perimeters": "1", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "50", + "overhang_3_4_speed": "30", + "overhang_4_4_speed": "10", + "line_width": "110%", + "inner_wall_line_width": "110%", + "outer_wall_line_width": "100%", + "precise_outer_wall": "0", + "top_surface_line_width": "93.75%", + "sparse_infill_line_width": "110%", + "initial_layer_line_width": "120%", + "internal_solid_infill_line_width": "120%", + "support_line_width": "96%", + "wall_loops": "3", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "2", + "skirt_height": "3", + "min_skirt_length": "4", + "skirt_loops": "0", + "minimum_sparse_infill_area": "15", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.2", + "support_bottom_z_distance": "0.2", + "support_filament": "0", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "2", + "support_interface_bottom_layers": "2", + "support_interface_spacing": "0.5", + "support_interface_speed": "80", + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": "150", + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "30", + "tree_support_wall_count": "0", + "detect_thin_wall": "0", + "top_surface_pattern": "monotonicline", + "top_shell_thickness": "0.8", + "enable_prime_tower": "1", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "layer_height": "0.2", + "bottom_shell_layers": "3", + "top_shell_layers": "4", + "bridge_flow": "1", + "initial_layer_speed": "45", + "initial_layer_infill_speed": "45", + "outer_wall_speed": "45", + "inner_wall_speed": "80", + "sparse_infill_speed": "150", + "internal_solid_infill_speed": "150", + "top_surface_speed": "50", + "gap_infill_speed": "30", + "travel_speed": "200" +} diff --git a/resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_common.json b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_common.json new file mode 100644 index 0000000000..2a27efcb54 --- /dev/null +++ b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_common.json @@ -0,0 +1,39 @@ +{ + "type": "process", + "name": "fdm_process_meltingplot_chx_common", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "false", + "filename_format": "{input_filename_base}_L{layer_height}mm_N{nozzle_diameter[0]}_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode", + "brim_object_gap": "0", + "brim_type": "outer_only", + "default_acceleration": "6000", + "slowdown_for_curled_perimeters": "0", + "enable_support": "1", + "extrusion_rate_smoothing_external_perimeter_only": "1", + "gap_infill_speed": "250", + "infill_wall_overlap": "15%", + "initial_layer_acceleration": "500", + "initial_layer_infill_speed": "30", + "initial_layer_line_width": "120%", + "initial_layer_speed": "20", + "inner_wall_line_width": "110%", + "inner_wall_speed": "300", + "internal_solid_infill_line_width": "115%", + "internal_solid_infill_speed": "250", + "line_width": "120%", + "reduce_infill_retraction": "0", + "seam_gap": "0", + "skirt_speed": "20", + "skirt_type": "perobject", + "slow_down_layers": "3", + "sparse_infill_line_width": "110%", + "support_line_width": "110%", + "support_type": "tree(auto)", + "top_shell_layers": "5", + "top_surface_acceleration": "2000", + "top_surface_line_width": "110%", + "top_surface_speed": "200", + "travel_speed": "1000", + "wall_generator": "classic" +} diff --git a/resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_large_nozzle.json b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_large_nozzle.json new file mode 100644 index 0000000000..63bf9517b0 --- /dev/null +++ b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_large_nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "process", + "name": "fdm_process_meltingplot_chx_large_nozzle", + "inherits": "fdm_process_meltingplot_chx_common", + "from": "system", + "instantiation": "false", + "bottom_shell_layers": "4", + "initial_layer_print_height": "0.5", + "inner_wall_acceleration": "6000", + "max_volumetric_extrusion_rate_slope": "300", + "outer_wall_acceleration": "2000", + "outer_wall_line_width": "110%", + "outer_wall_speed": "80", + "sparse_infill_pattern": "cubic", + "sparse_infill_speed": "300", + "support_base_pattern_spacing": "7.5", + "support_interface_speed": "80", + "support_object_first_layer_gap": "0.5", + "support_object_xy_distance": "0.45", + "support_speed": "200", + "support_style": "tree_slim", + "support_threshold_angle": "22", + "top_shell_thickness": "0.6", + "travel_acceleration": "6000", + "tree_support_tip_diameter": "1.2" +} diff --git a/resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_small_nozzle.json b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_small_nozzle.json new file mode 100644 index 0000000000..95506dcd70 --- /dev/null +++ b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_chx_small_nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "process", + "name": "fdm_process_meltingplot_chx_small_nozzle", + "inherits": "fdm_process_meltingplot_chx_common", + "from": "system", + "instantiation": "false", + "bottom_shell_thickness": "2", + "default_jerk": "12", + "infill_jerk": "12", + "initial_layer_jerk": "5", + "initial_layer_print_height": "0.4", + "inner_wall_acceleration": "6000", + "outer_wall_acceleration": "3000", + "outer_wall_jerk": "6", + "outer_wall_line_width": "115%", + "outer_wall_speed": "220", + "sparse_infill_speed": "270", + "support_top_z_distance": "0.3", + "top_shell_thickness": "2", + "top_surface_jerk": "6", + "travel_acceleration": "6000", + "wall_sequence": "inner-outer-inner wall", + "wipe_before_external_loop": "1" +} diff --git a/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_04_nozzle.json b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_04_nozzle.json new file mode 100644 index 0000000000..bef0abf7e6 --- /dev/null +++ b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_04_nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "process", + "name": "fdm_process_meltingplot_mbl_04_nozzle", + "inherits": "fdm_process_meltingplot_mbl_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "0.85", + "initial_layer_print_height": "0.3", + "line_width": "115%", + "inner_wall_line_width": "115%", + "outer_wall_line_width": "115%", + "sparse_infill_line_width": "115%", + "internal_solid_infill_line_width": "115%" +} diff --git a/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_06_nozzle.json b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_06_nozzle.json new file mode 100644 index 0000000000..e35d4446c1 --- /dev/null +++ b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_06_nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "process", + "name": "fdm_process_meltingplot_mbl_06_nozzle", + "inherits": "fdm_process_meltingplot_mbl_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "0.65", + "initial_layer_print_height": "0.4", + "line_width": "120%", + "inner_wall_line_width": "120%", + "outer_wall_line_width": "110%", + "sparse_infill_line_width": "120%", + "internal_solid_infill_line_width": "120%" +} diff --git a/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_08_nozzle.json b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_08_nozzle.json new file mode 100644 index 0000000000..7548418e1f --- /dev/null +++ b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_08_nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "process", + "name": "fdm_process_meltingplot_mbl_08_nozzle", + "inherits": "fdm_process_meltingplot_mbl_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "0.5", + "initial_layer_print_height": "0.5", + "line_width": "120%", + "inner_wall_line_width": "120%", + "outer_wall_line_width": "115%", + "sparse_infill_line_width": "115%", + "internal_solid_infill_line_width": "120%" +} diff --git a/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_10_nozzle.json b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_10_nozzle.json new file mode 100644 index 0000000000..811916f197 --- /dev/null +++ b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_10_nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "fdm_process_meltingplot_mbl_10_nozzle", + "inherits": "fdm_process_meltingplot_mbl_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "0.4", + "initial_layer_print_height": "0.5", + "infill_wall_overlap": "15%", + "line_width": "120%", + "inner_wall_line_width": "120%", + "outer_wall_line_width": "110%", + "sparse_infill_line_width": "120%", + "internal_solid_infill_line_width": "120%" +} diff --git a/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_12_nozzle.json b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_12_nozzle.json new file mode 100644 index 0000000000..02f4221eb9 --- /dev/null +++ b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_12_nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "process", + "name": "fdm_process_meltingplot_mbl_12_nozzle", + "inherits": "fdm_process_meltingplot_mbl_common", + "from": "system", + "instantiation": "false", + "bridge_flow": "0.4", + "initial_layer_print_height": "0.5", + "infill_wall_overlap": "15%", + "line_width": "120%", + "inner_wall_line_width": "120%", + "outer_wall_line_width": "110%", + "sparse_infill_line_width": "120%", + "internal_solid_infill_line_width": "120%" +} diff --git a/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_common.json b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_common.json new file mode 100644 index 0000000000..0e94be6513 --- /dev/null +++ b/resources/profiles/Meltingplot/process/fdm_process_meltingplot_mbl_common.json @@ -0,0 +1,60 @@ +{ + "type": "process", + "name": "fdm_process_meltingplot_mbl_common", + "inherits": "fdm_process_common", + "from": "system", + "instantiation": "false", + "filename_format": "{input_filename_base}_L{layer_height}mm_N{nozzle_diameter[0]}_{filament_type[initial_tool]}_{printer_model}_{print_time}.gcode", + "bottom_shell_layers": "4", + "bottom_shell_thickness": "0.8", + "bridge_speed": "20", + "slowdown_for_curled_perimeters": "0", + "default_acceleration": "0", + "initial_layer_acceleration": "0", + "inner_wall_acceleration": "0", + "outer_wall_acceleration": "0", + "top_surface_acceleration": "0", + "travel_acceleration": "0", + "detect_thin_wall": "1", + "elefant_foot_compensation": "0.1", + "enable_prime_tower": "0", + "enable_support": "0", + "gap_infill_speed": "42", + "infill_wall_overlap": "20%", + "initial_layer_infill_speed": "30", + "initial_layer_line_width": "120%", + "initial_layer_speed": "20", + "inner_wall_speed": "45", + "internal_solid_infill_speed": "80", + "outer_wall_speed": "42", + "prime_tower_width": "60", + "resolution": "0.01", + "seam_position": "aligned", + "skirt_distance": "5", + "skirt_height": "1", + "skirt_loops": "3", + "small_perimeter_speed": "42", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "cubic", + "sparse_infill_speed": "80", + "standby_temperature_delta": "-100", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "5", + "support_interface_spacing": "0.2", + "support_interface_speed": "40", + "support_interface_top_layers": "4", + "support_interface_bottom_layers": "4", + "support_line_width": "100%", + "support_object_xy_distance": "0.2", + "support_on_build_plate_only": "1", + "support_speed": "50", + "support_style": "snug", + "support_threshold_angle": "55", + "support_top_z_distance": "0.1", + "top_shell_layers": "5", + "top_shell_thickness": "1", + "top_surface_line_width": "110%", + "top_surface_speed": "42", + "travel_speed": "350", + "wall_loops": "2" +} From bfe458507bc05007c32f3e208501fdf471e89819 Mon Sep 17 00:00:00 2001 From: Ian Bassi Date: Mon, 21 Sep 2026 14:23:32 -0300 Subject: [PATCH 71/76] Add X-Ray view mode to 3D viewport (#15770) --- resources/shaders/110/xray.fs | 28 ++++++++++++++ resources/shaders/110/xray.vs | 31 +++++++++++++++ resources/shaders/140/xray.fs | 30 +++++++++++++++ resources/shaders/140/xray.vs | 31 +++++++++++++++ src/slic3r/GUI/3DScene.cpp | 6 ++- src/slic3r/GUI/GLCanvas3D.cpp | 60 +++++++++++++++++++++++++++++ src/slic3r/GUI/GLCanvas3D.hpp | 2 + src/slic3r/GUI/GLShadersManager.cpp | 2 + src/slic3r/GUI/Plater.cpp | 11 ++++++ src/slic3r/GUI/Plater.hpp | 3 ++ 10 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 resources/shaders/110/xray.fs create mode 100644 resources/shaders/110/xray.vs create mode 100644 resources/shaders/140/xray.fs create mode 100644 resources/shaders/140/xray.vs diff --git a/resources/shaders/110/xray.fs b/resources/shaders/110/xray.fs new file mode 100644 index 0000000000..27bdb17044 --- /dev/null +++ b/resources/shaders/110/xray.fs @@ -0,0 +1,28 @@ +#version 110 + +// X-Ray view: each surface is a thin translucent layer of its own color, covering more the more +// edge-on it is seen. The caller draws it with depth writes off, so every surface a view ray crosses +// composites and overlapping geometry reads as denser. Source-alpha rather than additive blending: +// additive would saturate to white on the light theme's near-white background. +#define EDGE_FALLOFF 2.0 +// Coverage head-on and edge-on. +#define FACE_DENSITY 0.12 +#define EDGE_DENSITY 0.65 + +uniform vec4 uniform_color; + +varying vec3 eye_normal; +varying vec3 eye_position; +varying vec3 clipping_planes_dots; + +void main() +{ + if (any(lessThan(clipping_planes_dots, vec3(0.0)))) + discard; + + // abs(): back faces are drawn too, and there only the angle matters. + float facing = abs(dot(normalize(eye_normal), normalize(-eye_position))); + float density = mix(EDGE_DENSITY, FACE_DENSITY, pow(facing, EDGE_FALLOFF)); + + gl_FragColor = vec4(uniform_color.rgb, density * uniform_color.a); +} diff --git a/resources/shaders/110/xray.vs b/resources/shaders/110/xray.vs new file mode 100644 index 0000000000..85f932f2df --- /dev/null +++ b/resources/shaders/110/xray.vs @@ -0,0 +1,31 @@ +#version 110 + +uniform mat4 view_model_matrix; +uniform mat4 projection_matrix; +uniform mat3 view_normal_matrix; +uniform mat4 volume_world_matrix; + +// Clipping, as in gouraud.vs: the preview's top / bottom plane and the SLA gizmo's free one. +uniform vec2 z_range; +uniform vec4 clipping_plane; + +attribute vec3 v_position; +attribute vec3 v_normal; + +varying vec3 eye_normal; +varying vec3 eye_position; +varying vec3 clipping_planes_dots; + +void main() +{ + eye_normal = view_normal_matrix * v_normal; + + vec4 position = view_model_matrix * vec4(v_position, 1.0); + eye_position = position.xyz; + + // A component below zero means the fragment is clipped away. + vec4 world_pos = volume_world_matrix * vec4(v_position, 1.0); + clipping_planes_dots = vec3(dot(world_pos, clipping_plane), world_pos.z - z_range.x, z_range.y - world_pos.z); + + gl_Position = projection_matrix * position; +} diff --git a/resources/shaders/140/xray.fs b/resources/shaders/140/xray.fs new file mode 100644 index 0000000000..71c3569f8e --- /dev/null +++ b/resources/shaders/140/xray.fs @@ -0,0 +1,30 @@ +#version 140 + +// X-Ray view: each surface is a thin translucent layer of its own color, covering more the more +// edge-on it is seen. The caller draws it with depth writes off, so every surface a view ray crosses +// composites and overlapping geometry reads as denser. Source-alpha rather than additive blending: +// additive would saturate to white on the light theme's near-white background. +#define EDGE_FALLOFF 2.0 +// Coverage head-on and edge-on. +#define FACE_DENSITY 0.12 +#define EDGE_DENSITY 0.65 + +uniform vec4 uniform_color; + +in vec3 eye_normal; +in vec3 eye_position; +in vec3 clipping_planes_dots; + +out vec4 out_color; + +void main() +{ + if (any(lessThan(clipping_planes_dots, vec3(0.0)))) + discard; + + // abs(): back faces are drawn too, and there only the angle matters. + float facing = abs(dot(normalize(eye_normal), normalize(-eye_position))); + float density = mix(EDGE_DENSITY, FACE_DENSITY, pow(facing, EDGE_FALLOFF)); + + out_color = vec4(uniform_color.rgb, density * uniform_color.a); +} diff --git a/resources/shaders/140/xray.vs b/resources/shaders/140/xray.vs new file mode 100644 index 0000000000..9cb0d64b32 --- /dev/null +++ b/resources/shaders/140/xray.vs @@ -0,0 +1,31 @@ +#version 140 + +uniform mat4 view_model_matrix; +uniform mat4 projection_matrix; +uniform mat3 view_normal_matrix; +uniform mat4 volume_world_matrix; + +// Clipping, as in gouraud.vs: the preview's top / bottom plane and the SLA gizmo's free one. +uniform vec2 z_range; +uniform vec4 clipping_plane; + +in vec3 v_position; +in vec3 v_normal; + +out vec3 eye_normal; +out vec3 eye_position; +out vec3 clipping_planes_dots; + +void main() +{ + eye_normal = view_normal_matrix * v_normal; + + vec4 position = view_model_matrix * vec4(v_position, 1.0); + eye_position = position.xyz; + + // A component below zero means the fragment is clipped away. + vec4 world_pos = volume_world_matrix * vec4(v_position, 1.0); + clipping_planes_dots = vec3(dot(world_pos, clipping_plane), world_pos.z - z_range.x, z_range.y - world_pos.z); + + gl_Position = projection_matrix * position; +} diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index fd23337b44..bf3cdc5303 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -1157,6 +1157,10 @@ void GLVolumeCollection::render(GLVolumeCollection::ERenderType type, const float support_normal_z = get_selection_support_normal_z(); + // The outline passes below are driven by is_outline, which only the object shaders have; with an + // overlay one (wireframe, x-ray) bound they would just draw the volume again. + const bool shader_can_outline = shader->get_uniform_location("is_outline") >= 0; + // Prime depth_tex on every frame so non-outline draws do not keep the // default sampler unit 0, which can conflict with other sampler types. shader->set_uniform("depth_tex", OUTLINE_DEPTH_TEX_UNIT); @@ -1257,7 +1261,7 @@ void GLVolumeCollection::render(GLVolumeCollection::ERenderType type, const Matrix3d view_normal_matrix = view_matrix.matrix().block(0, 0, 3, 3) * model_matrix.matrix().block(0, 0, 3, 3).inverse().transpose(); shader->set_uniform("view_normal_matrix", view_normal_matrix); //BBS: add outline related logic - if (volume.first->selected && GUI::wxGetApp().show_outline()) + if (volume.first->selected && shader_can_outline && GUI::wxGetApp().show_outline()) volume.first->render_with_outline(cnv_size); else volume.first->render(); diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 02ef95e2c6..19bc6eb98a 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -8758,6 +8758,15 @@ void GLCanvas3D::_render_objects(GLVolumeCollection::ERenderType type, bool with else m_volumes.set_show_sinking_contours(!m_gizmos.is_hiding_instances()); + // Orca: X-Ray replaces both shaded passes with a single one, driven from the opaque call, and + // reuses the volume state (print volume, z range, clipping plane) set up above. + if (_is_xray_view_active()) { + if (type == GLVolumeCollection::ERenderType::Opaque) + _render_xray_volumes(); + m_camera_clipping_plane = ClippingPlane::ClipsNothing(); + return; + } + const bool realistic_mode = wxGetApp().app_config != nullptr && wxGetApp().app_config->get_bool(SETTING_OPENGL_REALISTIC_MODE); const bool realistic_phong = wxGetApp().app_config != nullptr && wxGetApp().app_config->get_bool(SETTING_OPENGL_REALISTIC_PHONG); const std::string shader_name = (realistic_mode && realistic_phong) ? "phong" : "gouraud"; @@ -8894,6 +8903,51 @@ void GLCanvas3D::_render_objects(GLVolumeCollection::ERenderType type, bool with m_camera_clipping_plane = ClippingPlane::ClipsNothing(); } +bool GLCanvas3D::_is_xray_view_active() const +{ + if (m_canvas_type == ECanvasType::CanvasPreview || !wxGetApp().plater()->is_show_xray()) + return false; + + // A painting gizmo and the layer height editor draw the object through their own shaders, and + // would lose what they draw if X-Ray took the pass over. + if (dynamic_cast(m_gizmos.get_current()) != nullptr) + return false; + return !(m_picking_enabled && m_layers_editing.is_enabled() && m_layers_editing.last_object_id != -1 && + m_layers_editing.object_max_z() > 0.0f); +} + +void GLCanvas3D::_render_xray_volumes() +{ + if (m_volumes.empty()) + return; + + GLShaderProgram* shader = wxGetApp().get_shader("xray"); + if (shader == nullptr) + return; + + const Camera& camera = wxGetApp().plater()->get_camera(); + const ECanvasType canvas_type = m_canvas_type; + + // Depth writes off so every surface along a view ray composites, not just the nearest one, and + // back faces kept for the far wall of a hollow part. The low, near-uniform coverage the shader + // emits saturates towards the volume color whatever the order, so the volumes are not sorted. + glsafe(::glDepthMask(GL_FALSE)); + glsafe(::glEnable(GL_BLEND)); + glsafe(::glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)); + + shader->start_using(); + m_volumes.render(GLVolumeCollection::ERenderType::All, true, camera.get_view_matrix(), camera.get_projection_matrix(), + get_canvas_size(), [this, canvas_type](const GLVolume& volume) { + if (canvas_type == ECanvasType::CanvasAssembleView) + return !volume.is_modifier && !volume.is_wipe_tower; + return m_render_sla_auxiliaries || volume.composite_id.volume_id >= 0; + }); + shader->stop_using(); + + glsafe(::glDisable(GL_BLEND)); + glsafe(::glDepthMask(GL_TRUE)); +} + void GLCanvas3D::_render_wireframe_overlay() { if (!wxGetApp().plater()->is_show_wireframe()) @@ -10020,6 +10074,12 @@ void GLCanvas3D::_render_canvas_toolbar() [this, p]{p->toggle_show_wireframe(); m_dirty = true;} ); + create_menu_item( _utf8(L("X-Ray")), + m_canvas_type != ECanvasType::CanvasPreview, // not work on preview + p->is_show_xray(), + [this, p]{p->toggle_show_xray(); m_dirty = true;} + ); + create_menu_item( _utf8(L("Realistic View")), m_canvas_type != ECanvasType::CanvasPreview, // not work on preview cfg->get_bool(SETTING_OPENGL_REALISTIC_MODE), diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index fe6108d39f..9c78581f69 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -1333,6 +1333,8 @@ private: //BBS: add outline drawing logic void _render_objects(GLVolumeCollection::ERenderType type, bool with_outline = true); void _render_wireframe_overlay(); + bool _is_xray_view_active() const; + void _render_xray_volumes(); //BBS: GUI refactor: add canvas size as parameters void _render_gcode(int canvas_width, int canvas_height); void _render_gcode_overlay(int canvas_width, int canvas_height); diff --git a/src/slic3r/GUI/GLShadersManager.cpp b/src/slic3r/GUI/GLShadersManager.cpp index 2b8a0edf0a..b35d598829 100644 --- a/src/slic3r/GUI/GLShadersManager.cpp +++ b/src/slic3r/GUI/GLShadersManager.cpp @@ -90,6 +90,8 @@ std::pair GLShadersManager::init() , { "ENABLE_ENVIRONMENT_MAP"sv } #endif // ENABLE_ENVIRONMENT_MAP ); + // used to render objects as translucent, edge weighted surfaces in the X-Ray view + valid &= append_shader("xray", { prefix + "xray.vs", prefix + "xray.fs" }); // used to render variable layers heights in 3d editor valid &= append_shader("variable_layer_height", { prefix + "variable_layer_height.vs", prefix + "variable_layer_height.fs" }); // used to render highlight contour around selected triangles inside the multi-material gizmo diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 502265af00..d2196fefe6 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -6827,6 +6827,7 @@ struct Plater::priv bool show_render_statistic_dialog{ false }; bool show_wireframe{ false }; bool wireframe_enabled{ true }; + bool show_xray{ false }; static const std::regex pattern_bundle; static const std::regex pattern_3mf; @@ -22399,6 +22400,16 @@ bool Plater::is_wireframe_enabled() const return p->wireframe_enabled; } +void Plater::toggle_show_xray() +{ + p->show_xray = !p->show_xray; +} + +bool Plater::is_show_xray() const +{ + return p->show_xray; +} + /*Plater::TakeSnapshot::TakeSnapshot(Plater *plater, const std::string &snapshot_name) : TakeSnapshot(plater, from_u8(snapshot_name)) {} diff --git a/src/slic3r/GUI/Plater.hpp b/src/slic3r/GUI/Plater.hpp index 1474356e45..ae70a6a0bb 100644 --- a/src/slic3r/GUI/Plater.hpp +++ b/src/slic3r/GUI/Plater.hpp @@ -956,6 +956,9 @@ public: void enable_wireframe(bool status); bool is_wireframe_enabled() const; + void toggle_show_xray(); + bool is_show_xray() const; + // Wrapper around wxWindow::PopupMenu to suppress error messages popping out while tracking the popup menu. bool PopupMenu(wxMenu *menu, const wxPoint& pos = wxDefaultPosition); bool PopupMenu(wxMenu *menu, int x, int y) { return this->PopupMenu(menu, wxPoint(x, y)); } From 824b216f18232a0e25644e225c286746ee07cb5f Mon Sep 17 00:00:00 2001 From: Kris Austin Date: Mon, 21 Sep 2026 15:36:04 -0500 Subject: [PATCH 72/76] feat(gui): assignable keyboard shortcuts (#15706) --- docs/HLSD/keyboard-shortcuts.md | 132 +++ src/slic3r/CMakeLists.txt | 4 + src/slic3r/GUI/GLCanvas3D.cpp | 824 ++++++------------ src/slic3r/GUI/GLCanvas3D.hpp | 27 +- src/slic3r/GUI/GUI_App.cpp | 30 +- src/slic3r/GUI/GUI_App.hpp | 12 +- src/slic3r/GUI/GUI_Factories.cpp | 10 +- src/slic3r/GUI/GUI_ObjectList.cpp | 131 ++- src/slic3r/GUI/GUI_ObjectList.hpp | 9 +- src/slic3r/GUI/GUI_Preview.cpp | 24 - src/slic3r/GUI/GUI_Preview.hpp | 1 - src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp | 1 - src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoBase.cpp | 9 +- src/slic3r/GUI/Gizmos/GLGizmoBase.hpp | 9 +- src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoCut.cpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp | 30 +- src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp | 1 - src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp | 3 +- .../GUI/Gizmos/GLGizmoMmuSegmentation.cpp | 37 +- .../GUI/Gizmos/GLGizmoMmuSegmentation.hpp | 2 +- src/slic3r/GUI/Gizmos/GLGizmoMove.cpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp | 2 + src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoScale.cpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp | 22 +- src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp | 3 +- src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp | 1 - src/slic3r/GUI/Gizmos/GLGizmoText.cpp | 1 - src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 86 +- src/slic3r/GUI/Gizmos/GLGizmosManager.hpp | 5 +- src/slic3r/GUI/HintNotification.cpp | 4 +- src/slic3r/GUI/KBShortcutsDialog.cpp | 800 ++++++++++------- src/slic3r/GUI/KBShortcutsDialog.hpp | 123 ++- src/slic3r/GUI/KeyChord.cpp | 314 +++++++ src/slic3r/GUI/KeyChord.hpp | 64 ++ src/slic3r/GUI/MainFrame.cpp | 314 ++++--- src/slic3r/GUI/MainFrame.hpp | 26 + src/slic3r/GUI/NativeCommands.cpp | 3 +- src/slic3r/GUI/Plater.cpp | 12 +- src/slic3r/GUI/Preferences.cpp | 35 +- src/slic3r/GUI/Preferences.hpp | 6 + src/slic3r/GUI/Shortcuts.cpp | 377 ++++++++ src/slic3r/GUI/Shortcuts.hpp | 127 +++ tests/slic3rutils/CMakeLists.txt | 1 + tests/slic3rutils/test_shortcuts.cpp | 329 +++++++ 52 files changed, 2685 insertions(+), 1299 deletions(-) create mode 100644 docs/HLSD/keyboard-shortcuts.md create mode 100644 src/slic3r/GUI/KeyChord.cpp create mode 100644 src/slic3r/GUI/KeyChord.hpp create mode 100644 src/slic3r/GUI/Shortcuts.cpp create mode 100644 src/slic3r/GUI/Shortcuts.hpp create mode 100644 tests/slic3rutils/test_shortcuts.cpp diff --git a/docs/HLSD/keyboard-shortcuts.md b/docs/HLSD/keyboard-shortcuts.md new file mode 100644 index 0000000000..7cfc72c30f --- /dev/null +++ b/docs/HLSD/keyboard-shortcuts.md @@ -0,0 +1,132 @@ +# Keyboard Shortcuts + +## Why it exists + +Key events arrive in several windows (the main frame's char hook, the 3D canvases, the +gizmo manager and the object list), and the same keys are shown again in menu labels, +toolbar tooltips, gizmo names and the shortcuts dialog. The registry is the one table all +of them read. Each binding is defined once; dispatchers look key events up there, labels +are derived from it, and a change the user makes updates all of them. + +## Data model + +`KeyChord` (`src/slic3r/GUI/KeyChord.hpp`) is one key press: the key code as +`wxEVT_KEY_DOWN` reports it, plus the `wxMOD_*` modifiers held with it. It has two +text forms. The canonical one (`Ctrl+Shift+S`) is platform-neutral and doubles as the wx +accelerator string and the config format. The display one uses translated modifier +names and the command and option glyphs on macOS. `KeyChord::from_event()` turns any wx +key event into the same key code and modifiers, so a chord recorded in the dialog is +equal to the chord a dispatcher builds from the key press. + +`Shortcut` is the enum of every user-facing binding. `shortcut_table` in +`src/slic3r/GUI/Shortcuts.cpp` gives each one a config key, a description, a context +mask, a default chord, a `repeatable` flag and a `modifier_variants` flag, in the order +the dialog lists them; a `static_assert` keeps the table and the enum in step. + +`ShortcutRegistry` overlays the user's overrides on the defaults and keeps a +chord-to-shortcut index for lookups. It reads and writes the `shortcuts` section of +`AppConfig`. Only overrides are stored, so a default can change between releases +without touching anyone's config; `none` records a shortcut the user unbound. + +## Contexts + +A key press is looked up in the context of the window that received it. + +| Context | Dispatcher | Examples | +|--------------|-----------------------------------------------------------|-------------------------------| +| `Global` | `MainFrame`'s `wxEVT_CHAR_HOOK`, before any child sees it | New project, camera views | +| `Plater` | `GLCanvas3D` of the 3D and assembly views | Arrange, gizmo activation | +| `Preview` | `GLCanvas3D` of the G-code preview | One-layer mode, jump to layer | +| `ObjectList` | the object list | Copy, delete, auto drop | +| `Painting` | `GLGizmosManager` while a painting gizmo is open | Circle, sphere, fill tools | + +A shortcut can belong to several contexts, which is how copy and paste are a single +binding for the canvas and the object list. Two shortcuts can share a chord when their +contexts do not overlap; `C` is the cut gizmo in the 3D view, the G-code window in the +preview and the circle tool while painting. A Global chord is dispatched before every +other context, so the dialog treats it as conflicting with all of them. + +A Global shortcut has to include Ctrl or Alt or use a key that types nothing, since a +bare printable key in the frame hook would swallow that character in every text field. +The dialog refuses such chords and `ShortcutRegistry::load()` drops them from the config. +Space counts as typing. The speed dial's default is the one bare Space, and +`MainFrame` leaves it to a focused control that uses Space itself (text fields, buttons, +combo boxes), so it opens the dial from the canvases and the tab strip only. + +## Which event a chord matches + +Letters, digits and special keys match on `wxEVT_KEY_DOWN`. Its key codes do not depend +on the keyboard layout: the key labelled `Q` on an AZERTY keyboard and the key in the +same position under a Cyrillic layout both report `Q`. Numpad keys fold onto their main +keyboard equivalents, so `Ctrl+1` and `Ctrl+Numpad 1` are one binding. + +Punctuation matches on `wxEVT_CHAR`, because only the char event knows which character +a key produced under the active layout. `+` is Shift and `=` on a US keyboard and a key +of its own on a German one, and the binding means the character in both cases. The +canvas looks a key up on key-down first and, when nothing matched, once more on the char +event, for punctuation chords only. The dialog records chords the same way: a printable +non-alphanumeric key pressed with nothing but Shift is taken from the char event that +follows. + +wxGTK does not report key auto-repeat, so the canvases share one record of the keys +seen going down and swallow the repeats of every shortcut not marked `repeatable`. Zoom +and undo repeat, for example; a toggle such as Tab does not. The record is shared because +a shortcut can move the focus to another canvas while its key is still held; a key +released while no canvas had the focus is dropped on the next press. + +A few shortcuts have `modifier_variants`: Shift or Ctrl added to their binding selects a +step of the same action (1 mm and camera-space moves of the selection, five-step slider +moves). Only a binding without Shift or Ctrl of its own has steps, so no two bindings +share one. `ShortcutRegistry::match()` looks the exact chord up first and only then, when +nothing is bound to it, looks for such a shortcut whose binding is the chord minus those +modifiers, reporting which were added; a binding on Ctrl+Shift+key therefore wins over +the combined step. The Shift and Ctrl steps themselves are reserved. `step_owner()` names +the shortcut they belong to, the capture dialog refuses to assign them, and +`conflicts()` reports exact chords only. A binding made before its key became a stepping +key keeps its chord and shadows that one step. A move or rotation of the selection +started from the keyboard runs until the key that started it is released, or the +canvas loses focus, so a held key is one undo step. + +## Labels + +Menu labels, toolbar tooltips, gizmo names, the context menu and the shortcuts dialog +read the registry, so a rebinding shows up in all of them. Each tracked menu item keeps +its base label; `MainFrame::update_shortcut_labels()` appends the current binding +again after an edit, which also installs the new wx accelerator. + +A chord that is unsafe as a menu accelerator, meaning a bare printable key, is appended +to the label as plain text so the menu cannot take it away from text fields. The macOS +edit menu shows its clipboard and undo entries that way, because a system-menu key +equivalent for Cmd+C would run instead of the text field's own copy. + +On macOS the object list receives no key events at all, so its bindings are installed as +a `wxAcceleratorTable`, regenerated from the registry after each edit. + +## Editing + +The shortcuts dialog has a page per context, each opening with a line that says when its +keys apply. A page lists the shortcuts under the headings of `section_table`, with the +fixed keys that cannot change (mouse buttons, the step modifiers, Esc, the digit keys +that pick a filament) sorted into the same sections. The mouse drag rows describe the +camera actions chosen in Preferences; their button opens Preferences > Control with that +option scrolled into view and focused, instead of editing a key. +Editing a row opens a capture dialog that records the next chord, names the shortcuts it +would take the chord from, and on confirmation unbinds those and binds this one. +Resetting a row asks the same question when its default is now held by another +shortcut, so a reset cannot leave two shortcuts on one chord. Each change is written to +the config at once and pushed to the menus, tooltips and accelerator tables through +`GUI_App::on_shortcuts_changed()`. The dialog opens from the Help menu and Preferences > +Control on the Global page, and from the `?` key on the page of the view that received it. + +## Adding a shortcut + +1. Add the enum value to `Shortcut` and its row to `shortcut_table`, in the position + the dialog should list it; the row's section heading is the `section_table` entry + above it, so a new section needs an entry there too. Pick a default that does not + collide inside its contexts; the `[Shortcuts]` tests check every default against the + others. +2. Handle it in the dispatcher of its context: `MainFrame::handle_global_shortcut`, + `GLCanvas3D::handle_shortcut`, `ObjectList::dispatch_shortcut`, or a gizmo's + `on_tool_shortcut`. A gizmo that opens on a key sets `m_shortcut` in its constructor. +3. Where the UI shows the key, ask the registry (`display()` for tooltips, + `accelerator()` for menu labels); no label holds a literal key name. diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index d04e38086f..d925ca6333 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -123,6 +123,8 @@ set(SLIC3R_GUI_SOURCES GUI/PluginPickerDialog.hpp GUI/PluginsDialog.cpp GUI/PluginsDialog.hpp + GUI/Shortcuts.cpp + GUI/Shortcuts.hpp GUI/SpeedDialDialog.cpp GUI/SpeedDialDialog.hpp GUI/ActionRegistry.cpp @@ -335,6 +337,8 @@ set(SLIC3R_GUI_SOURCES GUI/Jobs/Worker.hpp GUI/KBShortcutsDialog.cpp GUI/KBShortcutsDialog.hpp + GUI/KeyChord.cpp + GUI/KeyChord.hpp GUI/LibVGCode/LibVGCodeWrapper.hpp GUI/LibVGCode/LibVGCodeWrapper.cpp GUI/LinuxDisplayBackend.cpp diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 19bc6eb98a..190eeedbb4 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -29,6 +29,7 @@ #include "MainFrame.hpp" #include "WipeTowerDialog.hpp" #include "GUI_App.hpp" +#include "Shortcuts.hpp" #include "GUI_ObjectList.hpp" #include "GUI_Colors.hpp" #include "Mouse3DController.hpp" @@ -77,6 +78,7 @@ #include #include #include +#include #ifndef IMGUI_DEFINE_MATH_OPERATORS #define IMGUI_DEFINE_MATH_OPERATORS @@ -1055,7 +1057,6 @@ wxDEFINE_EVENT(EVT_GLCANVAS_UPDATE_BED_SHAPE, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_TAB, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_RESETGIZMOS, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_MOVE_SLIDERS, wxKeyEvent); -wxDEFINE_EVENT(EVT_GLCANVAS_EDIT_COLOR_CHANGE, wxKeyEvent); wxDEFINE_EVENT(EVT_GLCANVAS_JUMP_TO, wxKeyEvent); wxDEFINE_EVENT(EVT_GLCANVAS_UNDO, SimpleEvent); wxDEFINE_EVENT(EVT_GLCANVAS_REDO, SimpleEvent); @@ -1174,7 +1175,6 @@ GLCanvas3D::GLCanvas3D(wxGLCanvas* canvas, Bed3D &bed) , m_dynamic_background_enabled(false) , m_multisample_allowed(false) , m_moving(false) - , m_tab_down(false) , m_camera_movement(false) , m_cursor_type(Standard) , m_color_by("volume") @@ -3229,6 +3229,9 @@ void GLCanvas3D::bind_event_handlers() m_canvas->Bind(wxEVT_PAINT, &GLCanvas3D::on_paint, this); m_canvas->Bind(wxEVT_SET_FOCUS, &GLCanvas3D::on_set_focus, this); m_canvas->Bind(wxEVT_KILL_FOCUS, [this](wxFocusEvent& evt) { + // The key-up that would commit a keyboard edit goes to whatever took the focus. + if (m_selection_edit.kind != SelectionEdit::None) + finish_selection_edit(); ImGui::SetWindowFocus(nullptr); render(); evt.Skip(); @@ -3358,8 +3361,6 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) // see include/wx/defs.h enum wxKeyCode int keyCode = evt.GetKeyCode(); - int ctrlMask = wxMOD_CONTROL; - int shiftMask = wxMOD_SHIFT; auto imgui = wxGetApp().imgui(); if (imgui->update_key_data(evt)) { @@ -3367,6 +3368,11 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) return; } +#ifdef SLIC3R_CAD + const int ctrlMask = wxMOD_CONTROL; + const int shiftMask = wxMOD_SHIFT; +#endif + // Design tab: Delete/Backspace removes the selected sketch entities while a // sketch tool is active and the canvas has focus (dialog text fields are separate // wx controls, so this never eats their editing keys). @@ -3425,12 +3431,6 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) } #endif - bool is_in_painting_mode = false; - GLGizmoPainterBase *current_gizmo_painter = dynamic_cast(get_gizmos_manager().get_current()); - if (current_gizmo_painter != nullptr) { - is_in_painting_mode = true; - } - //BBS: add orient deactivate logic if (keyCode == WXK_ESCAPE && (_deactivate_arrange_menu() || _deactivate_orient_menu())) @@ -3439,361 +3439,271 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) if (m_gizmos.on_char(evt)) return; - if ((evt.GetModifiers() & ctrlMask) != 0) { - // CTRL is pressed - switch (keyCode) { -#ifdef __APPLE__ - case 'a': - case 'A': -#else /* __APPLE__ */ - case WXK_CONTROL_A: -#endif /* __APPLE__ */ - if (!is_in_painting_mode && !m_layers_editing.is_enabled()) { - if (evt.ShiftDown()) - post_event(SimpleEvent(EVT_GLCANVAS_SELECT_ALL)); - else - post_event(SimpleEvent(EVT_GLCANVAS_SELECT_CURR_PLATE_ALL)); - } + if (const KeyChord chord = KeyChord::from_event(evt); chord.is_punctuation() && handle_shortcut(chord)) + return; + + if (evt.HasModifiers()) { + evt.Skip(); + return; + } + + auto obj_list = wxGetApp().obj_list(); + switch (keyCode) + { + case WXK_ESCAPE: { deselect_all(); break; } + + // BBS: use keypad to change extruder + case '1': { + if (!m_timer_set_color.IsRunning()) { + m_timer_set_color.StartOnce(500); + break; + } + } + case '0': //Color logic for material 10 + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': { + if (m_timer_set_color.IsRunning()) { + if (keyCode < '7') keyCode += 10; + m_timer_set_color.Stop(); + } + if (m_gizmos.get_current_type() != GLGizmosManager::MmSegmentation) + obj_list->set_extruder_for_selected_items(keyCode - '0'); break; -#ifdef __APPLE__ - case 'c': - case 'C': -#else /* __APPLE__ */ - case WXK_CONTROL_C: -#endif /* __APPLE__ */ - if (!is_in_painting_mode) - post_event(SimpleEvent(EVT_GLTOOLBAR_COPY)); - break; -#ifdef __APPLE__ - case 'm': - case 'M': -#else /* __APPLE__ */ - case WXK_CONTROL_M: -#endif /* __APPLE__ */ - { -#ifdef _WIN32 - if (wxGetApp().app_config->get("use_legacy_3DConnexion") == "true") { -#endif //_WIN32 -#ifdef __APPLE__ - // On OSX use Cmd+Shift+M to "Show/Hide 3Dconnexion devices settings dialog" - if ((evt.GetModifiers() & shiftMask) != 0) { -#endif // __APPLE__ - Mouse3DController& controller = wxGetApp().plater()->get_mouse3d_controller(); - controller.show_settings_dialog(!controller.is_settings_dialog_shown()); - m_dirty = true; -#ifdef __APPLE__ - } - else - // and Cmd+M to minimize application - wxGetApp().mainframe->Iconize(); -#endif // __APPLE__ -#ifdef _WIN32 - } -#endif //_WIN32 - break; - } -#ifdef __APPLE__ - case 'v': - case 'V': -#else /* __APPLE__ */ - case WXK_CONTROL_V: -#endif /* __APPLE__ */ - if (!is_in_painting_mode) - post_event(SimpleEvent(EVT_GLTOOLBAR_PASTE)); - break; - -#ifdef __APPLE__ - case 'x': - case 'X': -#else /* __APPLE__ */ - case WXK_CONTROL_X: -#endif /* __APPLE__ */ - if (!is_in_painting_mode) - post_event(SimpleEvent(EVT_GLTOOLBAR_CUT)); - break; - -#ifdef __APPLE__ - case 'f': - case 'F': -#else /* __APPLE__ */ - case WXK_CONTROL_F: -#endif /* __APPLE__ */ - break; - - -#ifdef __APPLE__ - case 'y': - case 'Y': -#else /* __APPLE__ */ - case WXK_CONTROL_Y: -#endif /* __APPLE__ */ - if (m_canvas_type == CanvasView3D || m_canvas_type == CanvasAssembleView) { - post_event(SimpleEvent(EVT_GLCANVAS_REDO)); - } - break; -#ifdef __APPLE__ - case 'z': - case 'Z': -#else /* __APPLE__ */ - case WXK_CONTROL_Z: -#endif /* __APPLE__ */ - // only support redu/undo in CanvasView3D - if (m_canvas_type == CanvasView3D || m_canvas_type == CanvasAssembleView) { - post_event(SimpleEvent(EVT_GLCANVAS_UNDO)); - } - break; - - // BBS -#ifdef __APPLE__ - case 'E': - case 'e': -#else /* __APPLE__ */ - case WXK_CONTROL_E: -#endif /* __APPLE__ */ - { m_labels.show(!m_labels.is_shown()); m_dirty = true; break; } - case '0': { - select_view("plate"); - zoom_to_bed(); - break; } - case '1': { select_view("top"); break; } - case '2': { select_view("bottom"); break; } - case '3': { select_view("front"); break; } - case '4': { select_view("rear"); break; } - case '5': { select_view("left"); break; } - case '6': { select_view("right"); break; } - case '7': { select_plate(); break; } - - //case WXK_BACK: - //case WXK_DELETE: -#ifdef __APPLE__ - case 'd': - case 'D': -#else /* __APPLE__ */ - case WXK_CONTROL_D: -#endif /* __APPLE__ */ - post_event(SimpleEvent(EVT_GLTOOLBAR_DELETE_ALL)); - break; -#ifdef __APPLE__ - case 'k': - case 'K': -#else /* __APPLE__ */ - case WXK_CONTROL_K: -#endif /* __APPLE__ */ - post_event(SimpleEvent(EVT_GLTOOLBAR_CLONE)); - break; - default: evt.Skip(); - } - } else { - auto obj_list = wxGetApp().obj_list(); - switch (keyCode) - { - //case WXK_BACK: - case WXK_DELETE: { post_event(SimpleEvent(EVT_GLTOOLBAR_DELETE)); break; } - // BBS -#ifdef __APPLE__ - case WXK_BACK: { post_event(SimpleEvent(EVT_GLTOOLBAR_DELETE)); break; } -#endif - case WXK_ESCAPE: { deselect_all(); break; } - case WXK_F5: { - if (wxGetApp().mainframe->is_printer_view()) - wxGetApp().mainframe->load_printer_url(); - - //if ((wxGetApp().is_editor() && !wxGetApp().plater()->model().objects.empty()) || - // (wxGetApp().is_gcode_viewer() && !wxGetApp().plater()->get_last_loaded_gcode().empty())) - // post_event(SimpleEvent(EVT_GLCANVAS_RELOAD_FROM_DISK)); - break; - } - - // BBS: use keypad to change extruder - case '1': { - if (!m_timer_set_color.IsRunning()) { - m_timer_set_color.StartOnce(500); - break; - } - } - case '0': //Color logic for material 10 - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': { - if (m_timer_set_color.IsRunning()) { - if (keyCode < '7') keyCode += 10; - m_timer_set_color.Stop(); - } - if (m_gizmos.get_current_type() != GLGizmosManager::MmSegmentation) - obj_list->set_extruder_for_selected_items(keyCode - '0'); - break; - } - - case '+': { - if (dynamic_cast(m_canvas->GetParent()) != nullptr) - post_event(wxKeyEvent(EVT_GLCANVAS_EDIT_COLOR_CHANGE, evt)); - else - post_event(Event(EVT_GLCANVAS_INCREASE_INSTANCES, +1)); - break; - } - case '-': { - if (dynamic_cast(m_canvas->GetParent()) != nullptr) - post_event(wxKeyEvent(EVT_GLCANVAS_EDIT_COLOR_CHANGE, evt)); - else - post_event(Event(EVT_GLCANVAS_INCREASE_INSTANCES, -1)); - break; - } - case '?': { post_event(SimpleEvent(EVT_GLCANVAS_QUESTION_MARK)); break; } - case 'A': - case 'a': - { - if ((evt.GetModifiers() & shiftMask) != 0) - post_event(SimpleEvent(EVT_GLCANVAS_ARRANGE_PARTPLATE)); - else - post_event(SimpleEvent(EVT_GLCANVAS_ARRANGE)); - break; - } - //case 'B': - //case 'b': { zoom_to_bed(); break; } - case 'C': - case 'c': { wxGetApp().toggle_show_gcode_window(); m_dirty = true; request_extra_frame(); break; } - //case 'G': - //case 'g': { - // if ((evt.GetModifiers() & shiftMask) != 0) { - // if (dynamic_cast(m_canvas->GetParent()) != nullptr) - // post_event(wxKeyEvent(EVT_GLCANVAS_JUMP_TO, evt)); - // } - // break; - //} - case 'I': - case 'i': { _update_camera_zoom(1.0); break; } - //case 'K': - //case 'k': { wxGetApp().plater()->get_camera().select_next_type(); m_dirty = true; break; } - //case 'L': - //case 'l': { - //if (!m_main_toolbar.is_enabled()) { - // m_gcode_viewer.enable_legend(!m_gcode_viewer.is_legend_enabled()); - // m_dirty = true; - // wxGetApp().plater()->update_preview_bottom_toolbar(); - //} - //break; - //} - case 'O': - case 'o': { _update_camera_zoom(-1.0); break; } - case 'q': - case 'Q': - { - if ((evt.GetModifiers() & shiftMask) != 0) - post_event(SimpleEvent(EVT_GLCANVAS_ORIENT_PARTPLATE)); - else - post_event(SimpleEvent(EVT_GLCANVAS_ORIENT)); - break; - } - //case 'Z': - //case 'z': { - // if (!m_selection.is_empty()) - // zoom_to_selection(); - // else { - // if (!m_volumes.empty()) - // zoom_to_volumes(); - // else - // _zoom_to_box(m_gcode_viewer.get_paths_bounding_box()); - // } - // break; - //} - case 'v': - case 'V': { post_event(SimpleEvent(EVT_GLCANVAS_PRINTABLE)); break; } - default: { evt.Skip(); break; } - } + } + default: { evt.Skip(); break; } } } -class TranslationProcessor +bool GLCanvas3D::handle_shortcut(const KeyChord& chord) { - using UpAction = std::function; - using DownAction = std::function; + const ShortcutContext context = m_canvas_type == CanvasPreview ? ShortcutContext::Preview : ShortcutContext::Plater; + const std::optional match = wxGetApp().shortcuts().match(context, chord); + if (!match.has_value()) + return false; + const Shortcut shortcut = match->shortcut; + const int held = match->step_modifiers; + if (m_key_down.repeat && !shortcut_info(shortcut).repeatable) + return true; - UpAction m_up_action{ nullptr }; - DownAction m_down_action{ nullptr }; + const bool painting = dynamic_cast(m_gizmos.get_current()) != nullptr; + const bool can_edit = m_canvas_type == CanvasView3D || m_canvas_type == CanvasAssembleView; + auto edit_selection = [this](SelectionEdit::Kind kind, const Vec3d& direction) { + if (!m_gizmos.is_enabled() || m_selection.is_empty() || m_canvas_type == CanvasAssembleView) + return false; + m_selection_edit.kind = kind; + m_selection_edit.key = m_key_down.code; + m_selection_edit.direction = direction; + return true; + }; + auto move_selection = [&](const Vec3d& direction) { + if (edit_selection(SelectionEdit::Move, direction)) + apply_selection_move((held & wxMOD_SHIFT) != 0, (held & wxMOD_CONTROL) != 0); + }; + auto rotate_selection = [&](double angle_z_rad) { + if (edit_selection(SelectionEdit::Rotate, Vec3d::UnitZ())) + apply_selection_rotate(angle_z_rad); + }; + auto step_slider = [this, held](auto&& step) { + IMSlider* layers = get_gcode_viewer().get_layers_slider(); + IMSlider* moves = get_gcode_viewer().get_moves_slider(); + step(layers, moves, held != 0 ? 5 : 1); + if (layers->is_dirty() && layers->is_one_layer()) + layers->SetLowerValue(layers->GetHigherValue()); + m_dirty = true; + }; - bool m_running{ false }; - Vec3d m_direction{ Vec3d::UnitX() }; - -public: - TranslationProcessor(UpAction up_action, DownAction down_action) - : m_up_action(up_action), m_down_action(down_action) - { - } - - void process(wxKeyEvent& evt) - { - const int keyCode = evt.GetKeyCode(); - wxEventType type = evt.GetEventType(); - if (type == wxEVT_KEY_UP) { - switch (keyCode) - { - case WXK_NUMPAD_LEFT: case WXK_LEFT: - case WXK_NUMPAD_RIGHT: case WXK_RIGHT: - case WXK_NUMPAD_UP: case WXK_UP: - case WXK_NUMPAD_DOWN: case WXK_DOWN: - { - m_running = false; - m_up_action(); - break; - } - default: { break; } - } - } - else if (type == wxEVT_KEY_DOWN) { - bool apply = false; - - switch (keyCode) - { - case WXK_SHIFT: - { - if (m_running) - apply = true; - - break; - } - case WXK_NUMPAD_LEFT: - case WXK_LEFT: - { - m_direction = -Vec3d::UnitX(); - apply = true; - break; - } - case WXK_NUMPAD_RIGHT: - case WXK_RIGHT: - { - m_direction = Vec3d::UnitX(); - apply = true; - break; - } - case WXK_NUMPAD_UP: - case WXK_UP: - { - m_direction = Vec3d::UnitY(); - apply = true; - break; - } - case WXK_NUMPAD_DOWN: - case WXK_DOWN: - { - m_direction = -Vec3d::UnitY(); - apply = true; - break; - } - default: { break; } - } - - if (apply) { - m_running = true; - m_down_action(m_direction, evt.ShiftDown(), evt.CmdDown()); - } + switch (shortcut) { + case Shortcut::SelectAll: + if (!painting && !m_layers_editing.is_enabled()) + post_event(SimpleEvent(EVT_GLCANVAS_SELECT_CURR_PLATE_ALL)); + break; + case Shortcut::SelectAllPlates: + if (!painting && !m_layers_editing.is_enabled()) + post_event(SimpleEvent(EVT_GLCANVAS_SELECT_ALL)); + break; + case Shortcut::Copy: if (!painting) post_event(SimpleEvent(EVT_GLTOOLBAR_COPY)); break; + case Shortcut::Paste: if (!painting) post_event(SimpleEvent(EVT_GLTOOLBAR_PASTE)); break; + case Shortcut::Cut: if (!painting) post_event(SimpleEvent(EVT_GLTOOLBAR_CUT)); break; + case Shortcut::Undo: if (can_edit) post_event(SimpleEvent(EVT_GLCANVAS_UNDO)); break; + case Shortcut::Redo: if (can_edit) post_event(SimpleEvent(EVT_GLCANVAS_REDO)); break; + case Shortcut::DeleteSelected: + if (!m_gizmos.on_delete_key()) + post_event(SimpleEvent(EVT_GLTOOLBAR_DELETE)); + break; + case Shortcut::DeleteAll: post_event(SimpleEvent(EVT_GLTOOLBAR_DELETE_ALL)); break; + case Shortcut::CloneSelected: post_event(SimpleEvent(EVT_GLTOOLBAR_CLONE)); break; + case Shortcut::AddInstance: post_event(Event(EVT_GLCANVAS_INCREASE_INSTANCES, +1)); break; + case Shortcut::RemoveInstance: post_event(Event(EVT_GLCANVAS_INCREASE_INSTANCES, -1)); break; + case Shortcut::TogglePrintable: post_event(SimpleEvent(EVT_GLCANVAS_PRINTABLE)); break; + case Shortcut::Arrange: + if (!m_gizmos.is_running()) + post_event(SimpleEvent(EVT_GLCANVAS_ARRANGE)); + break; + case Shortcut::ArrangePlate: + if (!m_gizmos.is_running()) + post_event(SimpleEvent(EVT_GLCANVAS_ARRANGE_PARTPLATE)); + break; + case Shortcut::Orient: post_event(SimpleEvent(EVT_GLCANVAS_ORIENT)); break; + case Shortcut::OrientPlate: post_event(SimpleEvent(EVT_GLCANVAS_ORIENT_PARTPLATE)); break; + case Shortcut::RotateSelectionLeft: rotate_selection(0.25 * M_PI); break; + case Shortcut::RotateSelectionRight: rotate_selection(-0.25 * M_PI); break; + case Shortcut::MoveSelectionLeft: move_selection(-Vec3d::UnitX()); break; + case Shortcut::MoveSelectionRight: move_selection(Vec3d::UnitX()); break; + case Shortcut::MoveSelectionUp: move_selection(Vec3d::UnitY()); break; + case Shortcut::MoveSelectionDown: move_selection(-Vec3d::UnitY()); break; + case Shortcut::ZoomIn: _update_camera_zoom(1.0); break; + case Shortcut::ZoomOut: _update_camera_zoom(-1.0); break; + case Shortcut::SwitchView: post_event(SimpleEvent(EVT_GLCANVAS_TAB)); break; + case Shortcut::CollapseSidebar: + if (!wxGetApp().is_gcode_viewer()) + post_event(SimpleEvent(EVT_GLCANVAS_COLLAPSE_SIDEBAR)); + break; + case Shortcut::ShowWireframe: + wxGetApp().plater()->toggle_show_wireframe(); + m_dirty = true; + break; + case Shortcut::Mouse3DSettings: { +#ifdef _WIN32 + if (wxGetApp().app_config->get("use_legacy_3DConnexion") == "true") { +#endif //_WIN32 + Mouse3DController& controller = wxGetApp().plater()->get_mouse3d_controller(); + controller.show_settings_dialog(!controller.is_settings_dialog_shown()); + m_dirty = true; +#ifdef _WIN32 } +#endif //_WIN32 + break; } -}; + case Shortcut::ReloadDevicePage: + if (wxGetApp().mainframe->is_printer_view()) + wxGetApp().mainframe->load_printer_url(); + break; + case Shortcut::KeyboardShortcuts: post_event(SimpleEvent(EVT_GLCANVAS_QUESTION_MARK)); break; + case Shortcut::ToggleGcodeWindow: + wxGetApp().toggle_show_gcode_window(); + m_dirty = true; + request_extra_frame(); + break; + case Shortcut::ToggleOneLayerMode: + get_gcode_viewer().get_layers_slider()->switch_one_layer_mode(); + m_dirty = true; + break; + case Shortcut::GoToLayer: + if (!m_gizmos.is_enabled()) { + get_gcode_viewer().get_layers_slider()->show_go_to_layer(true); + m_dirty = true; + } + break; + case Shortcut::LayerSliderUp: + case Shortcut::LayerSliderDown: + step_slider([up = shortcut == Shortcut::LayerSliderUp](IMSlider* layers, IMSlider* moves, int increment) { + const int delta = up ? increment : -increment; + if (layers->GetSelection() == ssHigher) { + layers->SetHigherValue(layers->GetHigherValue() + delta); + moves->SetHigherValue(moves->GetMaxValue()); + } + else if (layers->GetSelection() == ssLower) + layers->SetLowerValue(layers->GetLowerValue() + delta); + }); + break; + case Shortcut::MovesSliderLeft: + step_slider([](IMSlider* layers, IMSlider* moves, int increment) { + if (moves->GetHigherValue() == moves->GetMinValue() && layers->GetHigherValue() > layers->GetMinValue()) { + layers->SetHigherValue(layers->GetHigherValue() - 1); + moves->SetHigherValue(moves->GetMaxValue()); + } + else + moves->SetHigherValue(moves->GetHigherValue() - increment); + }); + break; + case Shortcut::MovesSliderRight: + step_slider([](IMSlider* layers, IMSlider* moves, int increment) { + if (moves->GetHigherValue() == moves->GetMaxValue() && layers->GetHigherValue() < layers->GetMaxValue()) { + layers->SetHigherValue(layers->GetHigherValue() + 1); + moves->SetHigherValue(moves->GetMinValue()); + } + else + moves->SetHigherValue(moves->GetHigherValue() + increment); + }); + break; + case Shortcut::MovesSliderStart: + case Shortcut::MovesSliderEnd: + step_slider([start = shortcut == Shortcut::MovesSliderStart](IMSlider*, IMSlider* moves, int) { + moves->SetHigherValue(start ? moves->GetMinValue() : moves->GetMaxValue()); + moves->set_as_dirty(); + }); + break; + default: + if (!m_gizmos.open_gizmo_by_shortcut(shortcut)) + return false; + m_dirty = true; + break; + } + return true; +} + +void GLCanvas3D::apply_selection_move(bool slow, bool camera_space) +{ + m_selection.setup_cache(); + const double multiplier = slow ? 1.0 : 10.0; + + Vec3d displacement; + if (camera_space) { + Eigen::Matrix inv_view_3x3 = wxGetApp().plater()->get_camera().get_view_matrix().inverse().matrix().block(0, 0, 3, 3); + displacement = multiplier * (inv_view_3x3 * m_selection_edit.direction); + displacement.z() = 0.0; + } + else + displacement = multiplier * m_selection_edit.direction; + + TransformationType trafo_type; + trafo_type.set_relative(); + m_selection.translate(displacement, trafo_type); + m_dirty = true; +} + +void GLCanvas3D::apply_selection_rotate(double angle_z_rad) +{ + m_selection.setup_cache(); + m_selection.rotate(angle_z_rad * m_selection_edit.direction, TransformationType(TransformationType::World_Relative_Joint)); + m_dirty = true; +} + +void GLCanvas3D::finish_selection_edit() +{ + const SelectionEdit::Kind kind = m_selection_edit.kind; + m_selection_edit.kind = SelectionEdit::None; + if (kind == SelectionEdit::Move) + do_move(L("Tool move")); + else + do_rotate(L("Tool Rotate")); + m_gizmos.update_data(); + // Let the plater know that the dragging finished, so a delayed refresh + // of the scene with the background processing data should be performed. + post_event(SimpleEvent(EVT_GLCANVAS_MOUSE_DRAGGING_FINISHED)); + // updates camera target constraints + refresh_camera_scene_box(); + m_dirty = true; +} + +// Keys held since their last key-up, shared by every canvas because a shortcut can move the +// focus, and with it the key-up, to another one. +static std::set s_keys_down; + +static bool key_repeats(int key) +{ + for (auto it = s_keys_down.begin(); it != s_keys_down.end();) // drops keys released while no canvas had the focus + it = wxGetKeyState(wxKeyCode(*it)) ? std::next(it) : s_keys_down.erase(it); + return !s_keys_down.insert(key).second; +} + +static void key_released(int key) { s_keys_down.erase(key); } void GLCanvas3D::on_key(wxKeyEvent& evt) { @@ -3811,45 +3721,11 @@ void GLCanvas3D::on_key(wxKeyEvent& evt) } #endif - static GLCanvas3D const * thiz = nullptr; - static TranslationProcessor translationProcessor(nullptr, nullptr); - if (thiz != this) { - thiz = this; - translationProcessor = TranslationProcessor( - [this]() { - do_move(L("Tool move")); - m_gizmos.update_data(); - - // BBS - //wxGetApp().obj_manipul()->set_dirty(); - // Let the plater know that the dragging finished, so a delayed refresh - // of the scene with the background processing data should be performed. - post_event(SimpleEvent(EVT_GLCANVAS_MOUSE_DRAGGING_FINISHED)); - // updates camera target constraints - refresh_camera_scene_box(); - m_dirty = true; - }, - [this](const Vec3d& direction, bool slow, bool camera_space) { - m_selection.setup_cache(); - double multiplier = slow ? 1.0 : 10.0; - - Vec3d displacement; - if (camera_space) { - Eigen::Matrix inv_view_3x3 = wxGetApp().plater()->get_camera().get_view_matrix().inverse().matrix().block(0, 0, 3, 3); - displacement = multiplier * (inv_view_3x3 * direction); - displacement.z() = 0.0; - } - else - displacement = multiplier * direction; - - TransformationType trafo_type; - trafo_type.set_relative(); - m_selection.translate(displacement, trafo_type); - m_dirty = true; - } - );} - const int keyCode = evt.GetKeyCode(); + if (evt.GetEventType() == wxEVT_KEY_DOWN) + m_key_down = { keyCode, key_repeats(keyCode) }; + else if (evt.GetEventType() == wxEVT_KEY_UP) + key_released(keyCode); auto imgui = wxGetApp().imgui(); if (imgui->update_key_data(evt)) @@ -3863,23 +3739,8 @@ void GLCanvas3D::on_key(wxKeyEvent& evt) wxGetApp().plater()->toggle_render_statistic_dialog(); m_dirty = true; #endif - } else if ((evt.ShiftDown() && evt.ControlDown() && keyCode == WXK_RETURN) || - (evt.ShiftDown() && evt.AltDown() && keyCode == WXK_RETURN)) { - wxGetApp().plater()->toggle_show_wireframe(); - m_dirty = true; - } - else if (m_tab_down && keyCode == WXK_TAB && !evt.HasAnyModifiers()) { - // Enable switching between 3D and Preview with Tab - // m_canvas->HandleAsNavigationKey(evt); // XXX: Doesn't work in some cases / on Linux - post_event(SimpleEvent(EVT_GLCANVAS_TAB)); - } - else if (keyCode == WXK_TAB && evt.ShiftDown() && !evt.ControlDown() && ! wxGetApp().is_gcode_viewer()) { - // Collapse side-panel with Shift+Tab - post_event(SimpleEvent(EVT_GLCANVAS_COLLAPSE_SIDEBAR)); } else if (keyCode == WXK_SHIFT) { - translationProcessor.process(evt); - if (m_picking_enabled && m_rectangle_selection.is_dragging()) { _update_selection_from_hover(); m_rectangle_selection.stop_dragging(); @@ -3905,70 +3766,15 @@ void GLCanvas3D::on_key(wxKeyEvent& evt) } else if (keyCode == WXK_CONTROL) m_dirty = true; - else if (m_gizmos.is_enabled() && !m_selection.is_empty() && m_canvas_type != CanvasAssembleView) { - translationProcessor.process(evt); - - switch (keyCode) - { - case WXK_NUMPAD_PAGEUP: case WXK_PAGEUP: - case WXK_NUMPAD_PAGEDOWN: case WXK_PAGEDOWN: - { - do_rotate(L("Tool Rotate")); - m_gizmos.update_data(); - - // BBS - //wxGetApp().obj_manipul()->set_dirty(); - // Let the plater know that the dragging finished, so a delayed refresh - // of the scene with the background processing data should be performed. - post_event(SimpleEvent(EVT_GLCANVAS_MOUSE_DRAGGING_FINISHED)); - // updates camera target constraints - refresh_camera_scene_box(); - m_dirty = true; - - break; - } - default: { break; } - } - } - - // BBS: add select view logic - if (evt.ControlDown()) { - switch (keyCode) { - case '0': - case WXK_NUMPAD0: //0 on numpad - { select_view("plate"); - zoom_to_bed(); - break; - } - case '1': - case WXK_NUMPAD1: //1 on numpad - { select_view("top"); break; } - case '2': - case WXK_NUMPAD2: //2 on numpad - { select_view("bottom"); break; } - case '3': - case WXK_NUMPAD3: //3 on numpad - { select_view("front"); break; } - case '4': - case WXK_NUMPAD4: //4 on numpad - { select_view("rear"); break; } - case '5': - case WXK_NUMPAD5: //5 on numpad - { select_view("left"); break; } - case '6': - case WXK_NUMPAD6: //6 on numpad - { select_view("right"); break; } - case '7': - case WXK_NUMPAD7: //7 on numpad - { select_plate(); break; } - default: break; - } - } + else if (m_selection_edit.kind != SelectionEdit::None && keyCode == m_selection_edit.key) + finish_selection_edit(); } else if (evt.GetEventType() == wxEVT_KEY_DOWN) { - m_tab_down = keyCode == WXK_TAB && !evt.HasAnyModifiers(); + if (handle_shortcut(KeyChord::from_event(evt))) + return; if (keyCode == WXK_SHIFT) { - translationProcessor.process(evt); + if (m_selection_edit.kind == SelectionEdit::Move) + apply_selection_move(true, evt.CmdDown()); if (m_picking_enabled /*&& (m_gizmos.get_current_type() != GLGizmosManager::SlaSupports)*/) { @@ -3985,68 +3791,6 @@ void GLCanvas3D::on_key(wxKeyEvent& evt) } else if (keyCode == WXK_CONTROL) m_dirty = true; - else if (m_gizmos.is_enabled() && !m_selection.is_empty() && m_canvas_type != CanvasAssembleView) { - auto _do_rotate = [this](double angle_z_rad) { - m_selection.setup_cache(); - m_selection.rotate(Vec3d(0.0, 0.0, angle_z_rad), TransformationType(TransformationType::World_Relative_Joint)); - m_dirty = true; -// wxGetApp().obj_manipul()->set_dirty(); - }; - - translationProcessor.process(evt); - - switch (keyCode) - { - case WXK_NUMPAD_PAGEUP: case WXK_PAGEUP: { _do_rotate(0.25 * M_PI); break; } - case WXK_NUMPAD_PAGEDOWN: case WXK_PAGEDOWN: { _do_rotate(-0.25 * M_PI); break; } - default: { break; } - } - } else if (!m_gizmos.is_enabled()) { - // DoubleSlider navigation in Preview - if (m_canvas_type == CanvasPreview) { - IMSlider *m_layers_slider = get_gcode_viewer().get_layers_slider(); - IMSlider *m_moves_slider = get_gcode_viewer().get_moves_slider(); - int increment = (evt.CmdDown() || evt.ShiftDown()) ? 5 : 1; - if ((evt.CmdDown() || evt.ShiftDown()) && evt.GetKeyCode() == 'G') { - m_layers_slider->show_go_to_layer(true); - } - else if (keyCode == WXK_UP || keyCode == WXK_DOWN) { - int new_pos; - if (m_layers_slider->GetSelection() == ssHigher) { - new_pos = keyCode == WXK_UP ? m_layers_slider->GetHigherValue() + increment : m_layers_slider->GetHigherValue() - increment; - m_layers_slider->SetHigherValue(new_pos); - m_moves_slider->SetHigherValue(m_moves_slider->GetMaxValue()); - } - else if (m_layers_slider->GetSelection() == ssLower) { - new_pos = keyCode == WXK_UP ? m_layers_slider->GetLowerValue() + increment : m_layers_slider->GetLowerValue() - increment; - m_layers_slider->SetLowerValue(new_pos); - } - } else if (keyCode == WXK_LEFT) { - if (m_moves_slider->GetHigherValue() == m_moves_slider->GetMinValue() && (m_layers_slider->GetHigherValue() > m_layers_slider->GetMinValue())) { - m_layers_slider->SetHigherValue(m_layers_slider->GetHigherValue() - 1); - m_moves_slider->SetHigherValue(m_moves_slider->GetMaxValue()); - } else { - m_moves_slider->SetHigherValue(m_moves_slider->GetHigherValue() - increment); - } - } else if (keyCode == WXK_RIGHT) { - if (m_moves_slider->GetHigherValue() == m_moves_slider->GetMaxValue() && (m_layers_slider->GetHigherValue() < m_layers_slider->GetMaxValue())) { - m_layers_slider->SetHigherValue(m_layers_slider->GetHigherValue() + 1); - m_moves_slider->SetHigherValue(m_moves_slider->GetMinValue()); - } else { - m_moves_slider->SetHigherValue(m_moves_slider->GetHigherValue() + increment); - } - } else if (keyCode == WXK_HOME || keyCode == WXK_END) { - const int new_pos = keyCode == WXK_HOME ? m_moves_slider->GetMinValue() : m_moves_slider->GetMaxValue(); - m_moves_slider->SetHigherValue(new_pos); - m_moves_slider->set_as_dirty(); - } - - if (m_layers_slider->is_dirty() && m_layers_slider->is_one_layer()) - m_layers_slider->SetLowerValue(m_layers_slider->GetHigherValue()); - - m_dirty = true; - } - } } } else return; @@ -7115,7 +6859,6 @@ bool GLCanvas3D::_init_main_toolbar() item.name = "add"; item.icon_filename = m_is_dark ? "toolbar_open_dark.svg" : "toolbar_open.svg"; - item.tooltip = _utf8(L("Add")) + " [" + GUI::shortkey_ctrl_prefix() + "I]"; item.sprite_id = 0; item.left.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_ADD)); }; item.enabling_callback = []()->bool {return wxGetApp().plater()->can_add_model(); }; @@ -7133,7 +6876,6 @@ bool GLCanvas3D::_init_main_toolbar() item.name = "orient"; item.icon_filename = m_is_dark ? "toolbar_orient_dark.svg" : "toolbar_orient.svg"; - item.tooltip = _utf8(L("Auto orient all/selected objects")) + " [Q]\n" + _utf8(L("Auto orient all objects on current plate")) + " [" + _utf8(L("Shift+")) + "Q]"; item.sprite_id++; item.left.render_callback = nullptr; item.enabling_callback = []()->bool { return wxGetApp().plater()->can_arrange(); }; @@ -7155,7 +6897,6 @@ bool GLCanvas3D::_init_main_toolbar() item.name = "arrange"; item.icon_filename = m_is_dark ? "toolbar_arrange_dark.svg" : "toolbar_arrange.svg"; - item.tooltip = _utf8(L("Arrange all objects")) + " [A]\n" + _utf8(L("Arrange objects on selected plates")) + " [" + _utf8(L("Shift+")) + "A]"; item.sprite_id++; item.left.action_callback = []() {}; item.enabling_callback = []()->bool { return wxGetApp().plater()->can_arrange(); }; @@ -7179,7 +6920,6 @@ bool GLCanvas3D::_init_main_toolbar() item.name = "more"; item.icon_filename = m_is_dark ? "instance_add_dark.svg" : "instance_add.svg"; - item.tooltip = _utf8(L("Add instance")) + " [+]"; item.sprite_id++; item.left.render_callback = nullptr; item.left.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_MORE)); }; @@ -7191,7 +6931,6 @@ bool GLCanvas3D::_init_main_toolbar() item.name = "fewer"; item.icon_filename = m_is_dark ? "instance_remove_dark.svg" : "instance_remove.svg"; - item.tooltip = _utf8(L("Remove instance")) + " [-]"; item.sprite_id++; item.left.render_callback = nullptr; item.left.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_FEWER)); }; @@ -7241,9 +6980,20 @@ bool GLCanvas3D::_init_main_toolbar() if (!m_main_toolbar.add_item(item)) return false; + update_shortcut_tooltips(); return true; } +void GLCanvas3D::update_shortcut_tooltips() +{ + const ShortcutRegistry& shortcuts = wxGetApp().shortcuts(); + m_main_toolbar.set_tooltip(m_main_toolbar.get_item_id("add"), shortcuts.with_key(_u8L("Add"), Shortcut::ImportModel)); + m_main_toolbar.set_tooltip(m_main_toolbar.get_item_id("orient"), shortcuts.with_key(_u8L("Auto orient all/selected objects"), Shortcut::Orient) + "\n" + shortcuts.with_key(_u8L("Auto orient all objects on current plate"), Shortcut::OrientPlate)); + m_main_toolbar.set_tooltip(m_main_toolbar.get_item_id("arrange"), shortcuts.with_key(_u8L("Arrange all objects"), Shortcut::Arrange) + "\n" + shortcuts.with_key(_u8L("Arrange objects on selected plates"), Shortcut::ArrangePlate)); + m_main_toolbar.set_tooltip(m_main_toolbar.get_item_id("more"), shortcuts.with_key(_u8L("Add instance"), Shortcut::AddInstance)); + m_main_toolbar.set_tooltip(m_main_toolbar.get_item_id("fewer"), shortcuts.with_key(_u8L("Remove instance"), Shortcut::RemoveInstance)); +} + //BBS: GUI refactor: GLToolbar bool GLCanvas3D::_init_select_plate_toolbar() { diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 9c78581f69..ad5188f2f3 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -63,6 +63,7 @@ class PartPlateList; #ifdef SLIC3R_CAD class DesignSketchTool; // Design tab: interactive 2D sketch tool #endif +struct KeyChord; #if ENABLE_RETINA_GL class RetinaHelper; @@ -185,7 +186,6 @@ wxDECLARE_EVENT(EVT_GLCANVAS_UPDATE_BED_SHAPE, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_TAB, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_RESETGIZMOS, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_MOVE_SLIDERS, wxKeyEvent); -wxDECLARE_EVENT(EVT_GLCANVAS_EDIT_COLOR_CHANGE, wxKeyEvent); wxDECLARE_EVENT(EVT_GLCANVAS_JUMP_TO, wxKeyEvent); wxDECLARE_EVENT(EVT_GLCANVAS_UNDO, SimpleEvent); wxDECLARE_EVENT(EVT_GLCANVAS_REDO, SimpleEvent); @@ -626,7 +626,23 @@ private: bool m_dynamic_background_enabled; bool m_multisample_allowed; bool m_moving; - bool m_tab_down; + // The key-down being dispatched, kept for the char event that may follow it. + struct KeyDown + { + int code = WXK_NONE; + bool repeat = false; + }; + KeyDown m_key_down; + // A keyboard move or rotation of the selection runs from the key-down that started it to + // that key's release, so a held key becomes one undo step. + struct SelectionEdit + { + enum Kind { None, Move, Rotate }; + Kind kind = None; + int key = WXK_NONE; // raw key code of the key-down, matched against the key-up + Vec3d direction{ Vec3d::UnitX() }; + }; + SelectionEdit m_selection_edit; bool m_camera_movement; //BBS: add toolpath outside bool m_toolpath_outside{ false }; @@ -1094,6 +1110,13 @@ public: void on_idle(wxIdleEvent& evt); void on_char(wxKeyEvent& evt); void on_key(wxKeyEvent& evt); + // Runs the Plater/Preview shortcut bound to chord, swallowing auto-repeats of one-shot + // shortcuts; false when nothing is bound. + bool handle_shortcut(const KeyChord& chord); + void apply_selection_move(bool slow, bool camera_space); + void apply_selection_rotate(double angle_z_rad); + void finish_selection_edit(); + void update_shortcut_tooltips(); void on_mouse_wheel(wxMouseEvent& evt); void on_timer(wxTimerEvent& evt); void on_render_timer(wxTimerEvent& evt); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index ab53b773a2..48bd58b1a5 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -3,6 +3,7 @@ #include "libslic3r/Technologies.hpp" #include "libslic3r/Platform.hpp" #include "GUI_App.hpp" +#include "Shortcuts.hpp" #include "BindDialog.hpp" #include "DeviceManager.hpp" #include "HMS.hpp" @@ -1120,6 +1121,8 @@ GUI_App::GUI_App() { //app config initializes early becasuse it is used in instance checking in OrcaSlicer.cpp this->init_app_config(); + m_shortcuts = std::make_unique(); + m_shortcuts->load(*app_config); this->init_download_path(); // Note: the WebView2 runtime check (init_webview_runtime) used to run here, but // the constructor executes before wxWidgets is fully initialized and before the @@ -4677,12 +4680,28 @@ void GUI_App::system_info() //dlg.ShowModal(); } -void GUI_App::keyboard_shortcuts() +void GUI_App::keyboard_shortcuts(ShortcutContext page, wxWindow* parent) { - KBShortcutsDialog dlg; + KBShortcutsDialog dlg(parent != nullptr ? parent : mainframe, page); dlg.ShowModal(); } +void GUI_App::on_shortcuts_changed() +{ + m_shortcuts->save(*app_config); + app_config->save(); + if (mainframe == nullptr) + return; + mainframe->update_shortcut_labels(); + if (Plater* plater = this->plater(); plater != nullptr) { + if (GLCanvas3D* canvas = plater->get_view3D_canvas3D(); canvas != nullptr) + canvas->update_shortcut_tooltips(); +#ifdef __WXOSX__ + obj_list()->update_shortcut_accelerators(); +#endif + } +} + void GUI_App::troubleshoot() { TroubleshootDialog dlg; @@ -8465,7 +8484,9 @@ void GUI_App::open_exportpresetbundledialog(size_t open_on_tab, const std::strin } } -void GUI_App::open_preferences(size_t open_on_tab, const std::string& highlight_option) +void GUI_App::open_preferences() { open_preferences(PreferencesTab::General); } + +void GUI_App::open_preferences(PreferencesTab tab, const std::string& highlight_option) { // Render settings the canvas reads every frame; a change needs one redraw to show. static constexpr const char* opengl_render_setting_keys[] = { @@ -8482,7 +8503,8 @@ void GUI_App::open_preferences(size_t open_on_tab, const std::string& highlight_ // the dialog needs to be destroyed before the call to recreate_GUI() // or sometimes the application crashes into wxDialogBase() destructor // so we put it into an inner scope - PreferencesDialog dlg(mainframe, open_on_tab, highlight_option); + PreferencesDialog dlg(mainframe); + dlg.select_tab(tab, highlight_option); dlg.ShowModal(); need_recreate_gui = dlg.recreate_GUI(); pending_language = dlg.pending_language(); diff --git a/src/slic3r/GUI/GUI_App.hpp b/src/slic3r/GUI/GUI_App.hpp index 97213d170b..2d55c5e96c 100644 --- a/src/slic3r/GUI/GUI_App.hpp +++ b/src/slic3r/GUI/GUI_App.hpp @@ -70,6 +70,9 @@ namespace GUI{ class RemovableDriveManager; class OtherInstanceMessageHandler; +class ShortcutRegistry; +enum class ShortcutContext : uint8_t; +enum class PreferencesTab; class MainFrame; class Sidebar; class ObjectSettings; @@ -286,6 +289,7 @@ private: std::unique_ptr m_removable_drive_manager; std::unique_ptr m_imgui; + std::unique_ptr m_shortcuts; std::unique_ptr m_printhost_job_queue; std::unique_ptr m_other_instance_message_handler; std::unique_ptr m_single_instance_checker; @@ -483,7 +487,7 @@ public: void recreate_GUI(const wxString& message); void system_info(); - void keyboard_shortcuts(); + void keyboard_shortcuts(ShortcutContext page, wxWindow* parent = nullptr); // the main frame when null void troubleshoot(); void load_project(wxWindow *parent, wxString& input_file) const; void import_model(wxWindow *parent, wxArrayString& input_files) const; @@ -639,7 +643,8 @@ public: wxString current_language_code_safe() const; bool is_localized() const { return m_wxLocale->GetLocale() != "English"; } - void open_preferences(size_t open_on_tab = 0, const std::string& highlight_option = std::string()); + void open_preferences(); // on the General tab + void open_preferences(PreferencesTab tab, const std::string& highlight_option = std::string()); void open_presetbundledialog(size_t open_on_tab = 0, const std::string& highlight_option = std::string()); void open_plugins_dialog(size_t open_on_tab = 0, const std::string& highlight_option = std::string()); // Dialog-free plugin actions used by the speed dial: they never require the Plugins dialog to be open. @@ -737,6 +742,9 @@ public: size_t get_instance_hash_int () { return m_instance_hash_int; } ImGuiWrapper* imgui() { return m_imgui.get(); } + ShortcutRegistry& shortcuts() { return *m_shortcuts; } + // Saves the bindings and refreshes every menu label, tooltip and accelerator table that shows one. + void on_shortcuts_changed(); PrintHostJobQueue& printhost_job_queue() { return *m_printhost_job_queue.get(); } diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index d02922497e..ecca540aa9 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -6,6 +6,7 @@ #include "GUI_Factories.hpp" #include "GUI_ObjectList.hpp" #include "GUI_App.hpp" +#include "Shortcuts.hpp" #include "I18N.hpp" #include "Plater.hpp" #include "ObjectDataViewModel.hpp" @@ -2083,13 +2084,8 @@ wxMenu* MenuFactory::assemble_part_menu() void MenuFactory::append_menu_item_clone(wxMenu* menu) { -#ifdef __APPLE__ - static const wxString ctrl = ("Ctrl+"); -#else - // FIXME: maybe should be using GUI::shortkey_ctrl_prefix() or equivalent? - static const wxString ctrl = _L("Ctrl+"); -#endif - append_menu_item(menu, wxID_ANY, _L("Clone") + "\t" + ctrl + "K", "", + const std::string accel = wxGetApp().shortcuts().accelerator(Shortcut::CloneSelected); + append_menu_item(menu, wxID_ANY, _L("Clone") + (accel.empty() ? wxString() : "\t" + from_u8(accel)), "", [](wxCommandEvent&) { plater()->clone_selection(); }, "", nullptr, diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 8067afd8df..2d77200eef 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -4,6 +4,7 @@ #include "GUI_Factories.hpp" //#include "GUI_ObjectLayers.hpp" #include "GUI_App.hpp" +#include "Shortcuts.hpp" #include "I18N.hpp" #include "Plater.hpp" #include "BitmapComboBox.hpp" @@ -245,56 +246,15 @@ ObjectList::ObjectList(wxWindow* parent) : // Key events are not correctly processed by the wxDataViewCtrl on OSX. // Our patched wxWidgets process the keyboard accelerators. // On the other hand, using accelerators will break in-place editing on Windows & Linux/GTK (there is no in-place editing working on OSX for wxDataViewCtrl for now). -// Bind(wxEVT_KEY_DOWN, &ObjectList::OnChar, this); - { - // Accelerators - // wxAcceleratorEntry entries[25]; - wxAcceleratorEntry entries[26]; - int index = 0; - entries[index++].Set(wxACCEL_CTRL, (int)'C', wxID_COPY); - entries[index++].Set(wxACCEL_CTRL, (int)'X', wxID_CUT); - entries[index++].Set(wxACCEL_CTRL, (int)'V', wxID_PASTE); - entries[index++].Set(wxACCEL_CTRL, (int)'M', wxID_DUPLICATE); - entries[index++].Set(wxACCEL_CTRL, (int)'A', wxID_SELECTALL); - entries[index++].Set(wxACCEL_CTRL, (int)'Z', wxID_UNDO); - entries[index++].Set(wxACCEL_CTRL, (int)'Y', wxID_REDO); - entries[index++].Set(wxACCEL_NORMAL, WXK_BACK, wxID_DELETE); - //entries[index++].Set(wxACCEL_NORMAL, int('+'), wxID_ADD); - //entries[index++].Set(wxACCEL_NORMAL, WXK_NUMPAD_ADD, wxID_ADD); - //entries[index++].Set(wxACCEL_NORMAL, int('-'), wxID_REMOVE); - //entries[index++].Set(wxACCEL_NORMAL, WXK_NUMPAD_SUBTRACT, wxID_REMOVE); - //entries[index++].Set(wxACCEL_NORMAL, int('p'), wxID_PRINT); - - int numbers_cnt = 0; - for (auto char_number : { '1', '2', '3', '4', '5', '6', '7', '8', '9' }) { - entries[index + numbers_cnt].Set(wxACCEL_NORMAL, int(char_number), wxID_LAST + numbers_cnt+1); - entries[index + 9 + numbers_cnt].Set(wxACCEL_NORMAL, WXK_NUMPAD0 + numbers_cnt - 1, wxID_LAST + numbers_cnt+1); - numbers_cnt++; - // index++; - } - wxAcceleratorTable accel(26, entries); - SetAcceleratorTable(accel); - - this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->copy(); }, wxID_COPY); - this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->paste(); }, wxID_PASTE); - this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->select_item_all_children(); }, wxID_SELECTALL); - this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->remove(); }, wxID_DELETE); - this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->undo(); }, wxID_UNDO); - this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->redo(); }, wxID_REDO); - this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->cut(); }, wxID_CUT); - this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->clone(); }, wxID_DUPLICATE); - //this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->increase_instances(); }, wxID_ADD); - //this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->decrease_instances(); }, wxID_REMOVE); - //this->Bind(wxEVT_MENU, [this](wxCommandEvent &evt) { this->toggle_printable_state(); }, wxID_PRINT); - - for (int i = 1; i < 10; i++) - this->Bind(wxEVT_MENU, [this, i](wxCommandEvent &evt) { - if (filaments_count() > 1 && i <= filaments_count()) - this->set_extruder_for_selected_items(i); - }, wxID_LAST+i); - - m_accel = accel; - } + m_shortcut_id_base = wxWindow::NewControlId(int(Shortcut::Count)); + for (size_t i = 0; i < size_t(Shortcut::Count); ++i) + this->Bind(wxEVT_MENU, [this, shortcut = Shortcut(i)](wxCommandEvent&) { dispatch_shortcut(shortcut); }, m_shortcut_id_base + int(i)); + for (int i = 1; i < 10; i++) + this->Bind(wxEVT_MENU, [this, i](wxCommandEvent &evt) { + if (filaments_count() > 1 && i <= filaments_count()) + this->set_extruder_for_selected_items(i); + }, wxID_LAST+i); + update_shortcut_accelerators(); #else //__WXOSX__ Bind(wxEVT_CHAR, [this](wxKeyEvent& event) { key_event(event); }); // doesn't work on OSX #endif @@ -1796,36 +1756,10 @@ void ObjectList::decrease_instances() #ifndef __WXOSX__ void ObjectList::key_event(wxKeyEvent& event) { - //if (event.GetKeyCode() == WXK_TAB) - // Navigate(event.ShiftDown() ? wxNavigationKeyEvent::IsBackward : wxNavigationKeyEvent::IsForward); - //else - if (event.GetKeyCode() == WXK_DELETE /*|| event.GetKeyCode() == WXK_BACK*/ ) - remove(); - //else if (event.GetKeyCode() == WXK_F5) - // wxGetApp().plater()->reload_all_from_disk(); - else if (wxGetKeyState(wxKeyCode('A')) && wxGetKeyState(WXK_CONTROL/*WXK_SHIFT*/)) - select_item_all_children(); - else if (wxGetKeyState(wxKeyCode('C')) && wxGetKeyState(WXK_CONTROL)) - copy(); - else if (wxGetKeyState(wxKeyCode('V')) && wxGetKeyState(WXK_CONTROL)) - paste(); - else if (wxGetKeyState(wxKeyCode('Y')) && wxGetKeyState(WXK_CONTROL)) - redo(); - else if (wxGetKeyState(wxKeyCode('Z')) && wxGetKeyState(WXK_CONTROL)) - undo(); - else if (wxGetKeyState(wxKeyCode('X')) && wxGetKeyState(WXK_CONTROL)) - cut(); - else if (wxGetKeyState(wxKeyCode('K')) && wxGetKeyState(WXK_CONTROL)) - clone(); - else if (event.GetUnicodeKey() == '+') - increase_instances(); - else if (event.GetUnicodeKey() == '-') - decrease_instances(); - else if (event.GetUnicodeKey() == 'p') - toggle_printable_state(); - else if (event.GetUnicodeKey() == 'd') - toggle_auto_drop(); - else if (filaments_count() > 1) { + const std::optional shortcut = wxGetApp().shortcuts().lookup(ShortcutContext::ObjectList, KeyChord::from_event(event)); + if (shortcut.has_value() && dispatch_shortcut(*shortcut)) + return; + if (filaments_count() > 1) { std::vector numbers = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; wxChar key_char = event.GetUnicodeKey(); if (std::find(numbers.begin(), numbers.end(), key_char) != numbers.end()) { @@ -1842,6 +1776,43 @@ void ObjectList::key_event(wxKeyEvent& event) } #endif /* __WXOSX__ */ +#ifdef __WXOSX__ +void ObjectList::update_shortcut_accelerators() +{ + std::vector entries; + const ShortcutRegistry& shortcuts = wxGetApp().shortcuts(); + for (Shortcut shortcut : shortcuts_in(ShortcutContext::ObjectList)) + if (const KeyChord chord = shortcuts.binding(shortcut); chord.valid()) + entries.push_back(chord.to_accelerator_entry(m_shortcut_id_base + int(shortcut))); + for (int i = 1; i < 10; ++i) { + entries.emplace_back(wxACCEL_NORMAL, '0' + i, wxID_LAST + i); + entries.emplace_back(wxACCEL_NORMAL, WXK_NUMPAD0 + i, wxID_LAST + i); + } + m_accel = wxAcceleratorTable(int(entries.size()), entries.data()); + SetAcceleratorTable(m_accel); +} +#endif /* __WXOSX__ */ + +bool ObjectList::dispatch_shortcut(Shortcut shortcut) +{ + switch (shortcut) { + case Shortcut::DeleteSelected: remove(); break; + case Shortcut::SelectAll: select_item_all_children(); break; + case Shortcut::Copy: copy(); break; + case Shortcut::Paste: paste(); break; + case Shortcut::Cut: cut(); break; + case Shortcut::Undo: undo(); break; + case Shortcut::Redo: redo(); break; + case Shortcut::CloneSelected: clone(); break; + case Shortcut::AddInstance: increase_instances(); break; + case Shortcut::RemoveInstance: decrease_instances(); break; + case Shortcut::TogglePrintable: toggle_printable_state(); break; + case Shortcut::ToggleAutoDrop: toggle_auto_drop(); break; + default: return false; + } + return true; +} + void ObjectList::OnBeginDrag(wxDataViewEvent &event) { const bool mult_sel = multiple_selection(); diff --git a/src/slic3r/GUI/GUI_ObjectList.hpp b/src/slic3r/GUI/GUI_ObjectList.hpp index cab78b6adc..5705aa2c8b 100644 --- a/src/slic3r/GUI/GUI_ObjectList.hpp +++ b/src/slic3r/GUI/GUI_ObjectList.hpp @@ -40,6 +40,9 @@ typedef std::map t_layer_config_ranges; #define FIX_THROUGH_CGAL_ALWAYS 1 namespace GUI { + +enum class Shortcut : uint8_t; + struct ObjectVolumeID { ModelObject* object{ nullptr }; ModelVolume* volume{ nullptr }; @@ -270,7 +273,11 @@ public: void extruder_editing(); #ifndef __WXOSX__ void key_event(wxKeyEvent& event); +#else + // wxDataViewCtrl never sees key events on macOS, so the bindings are installed as accelerators. + void update_shortcut_accelerators(); #endif /* __WXOSX__ */ + bool dispatch_shortcut(Shortcut shortcut); void copy(); void paste(); @@ -482,8 +489,8 @@ public: private: #ifdef __WXOSX__ -// void OnChar(wxKeyEvent& event); wxAcceleratorTable m_accel; + wxWindowID m_shortcut_id_base; #endif /* __WXOSX__ */ void OnContextMenu(wxDataViewEvent &event); void list_manipulation(const wxPoint& mouse_pos, bool evt_context_menu = false); diff --git a/src/slic3r/GUI/GUI_Preview.cpp b/src/slic3r/GUI/GUI_Preview.cpp index ea3ae5d21d..2c44202876 100644 --- a/src/slic3r/GUI/GUI_Preview.cpp +++ b/src/slic3r/GUI/GUI_Preview.cpp @@ -280,8 +280,6 @@ bool Preview::init(wxWindow* parent, Bed3D& bed, Model* model) m_canvas->enable_assemble_view_toolbar(false); // sizer, m_canvas_widget - m_canvas_widget->Bind(wxEVT_KEY_DOWN, &Preview::update_layers_slider_from_canvas, this); - wxBoxSizer *main_sizer = new wxBoxSizer(wxVERTICAL); main_sizer->Add(m_canvas_widget, 1, wxALL | wxEXPAND, 0); @@ -505,28 +503,6 @@ void Preview::update_layers_slider_mode() m_layers_slider->SetModeAndOnlyExtruder(one_extruder_printed_model, only_extruder, can_change_color); } -void Preview::update_layers_slider_from_canvas(wxKeyEvent &event) -{ - if (event.HasModifiers()) { - event.Skip(); - return; - } - - const auto key = event.GetKeyCode(); - - IMSlider *m_layers_slider = m_canvas->get_gcode_viewer().get_layers_slider(); - IMSlider *m_moves_slider = m_canvas->get_gcode_viewer().get_moves_slider(); - if (key == 'L') { - if(!m_layers_slider->switch_one_layer_mode()) - event.Skip(); - m_canvas->set_as_dirty(); - } - /*else if (key == WXK_SHIFT) - m_layers_slider->UseDefaultColors(false);*/ - else - event.Skip(); -} - void Preview::update_layers_slider(const std::vector& layers_z, bool keep_z_range) { IMSlider *m_layers_slider = m_canvas->get_gcode_viewer().get_layers_slider(); diff --git a/src/slic3r/GUI/GUI_Preview.hpp b/src/slic3r/GUI/GUI_Preview.hpp index 5469e32b71..fdfe364fb8 100644 --- a/src/slic3r/GUI/GUI_Preview.hpp +++ b/src/slic3r/GUI/GUI_Preview.hpp @@ -171,7 +171,6 @@ private: void update_layers_slider(const std::vector& layers_z, bool keep_z_range = false); void update_layers_slider_mode(); - void update_layers_slider_from_canvas(wxKeyEvent &event); //BBS: add only gcode mode void load_print_as_fff(bool keep_z_range = false, bool only_gcode = false); }; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp index 99ad00fe55..09bb92dddf 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp @@ -354,7 +354,6 @@ bool GLGizmoAdvancedCut::on_init() if (!GLGizmoRotate3D::on_init()) return false; - m_shortcut_key = WXK_CONTROL_C; // initiate info shortcuts const wxString ctrl = GUI::shortkey_ctrl_prefix(); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp b/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp index e686d5bb8f..9560078cb2 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoAssembly.cpp @@ -1,6 +1,7 @@ #include "GLGizmoAssembly.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp" #include "slic3r/Utils/UndoRedo.hpp" @@ -46,7 +47,7 @@ bool GLGizmoAssembly::on_init() { GLGizmoMeasure::on_init(); - m_shortcut_key = WXK_CONTROL_Y; + m_shortcut = Shortcut::GizmoAssembly; return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp index 1aaac99d40..6ff2c8213d 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp @@ -4,6 +4,7 @@ #include #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/GUI_Colors.hpp" @@ -299,7 +300,6 @@ GLGizmoBase::GLGizmoBase(GLCanvas3D &parent, const std::string &icon_filename, u : m_parent(parent) , m_group_id(-1) , m_state(Off) - , m_shortcut_key(NO_SHORTCUT_KEY_VALUE) , m_icon_filename(icon_filename) , m_sprite_id(sprite_id) , m_imgui(wxGetApp().imgui()) @@ -515,11 +515,8 @@ void GLGizmoBase::render_input_window(float x, float y, float bottom_limit) std::string GLGizmoBase::get_name(bool include_shortcut) const { - int key = get_shortcut_key(); - std::string out = on_get_name(); - if (include_shortcut && key >= WXK_CONTROL_A && key <= WXK_CONTROL_Z) - out += std::string(" [") + char(int('A') + key - int(WXK_CONTROL_A)) + "]"; - return out; + const std::string name = on_get_name(); + return include_shortcut && m_shortcut.has_value() ? wxGetApp().shortcuts().with_key(name, *m_shortcut) : name; } } // namespace GUI diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp index 92491d0d44..47e8f832a6 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp @@ -11,6 +11,7 @@ #include "slic3r/GUI/3DScene.hpp" #include +#include #include @@ -29,6 +30,7 @@ namespace GUI { class ImGuiWrapper; +enum class Shortcut : uint8_t; class GLCanvas3D; enum class CommonGizmosDataID; class CommonGizmosDataPool; @@ -72,9 +74,6 @@ public: NegZ = 1 << 5, }; - // Represents NO key(button on keyboard) value - static const int NO_SHORTCUT_KEY_VALUE = 0; - protected: struct Grabber { @@ -138,7 +137,7 @@ protected: int m_group_id; // TODO: remove only for rotate EState m_state; - int m_shortcut_key; + std::optional m_shortcut; // the registry entry that opens this gizmo std::string m_icon_filename; unsigned int m_sprite_id; int m_hover_id{ -1 }; @@ -169,7 +168,7 @@ public: EState get_state() const { return m_state; } void set_state(EState state) { m_state = state; on_set_state(); } - int get_shortcut_key() const { return m_shortcut_key; } + std::optional shortcut() const { return m_shortcut; } const std::string& get_icon_filename() const { return m_icon_filename; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp index 6d9e810815..750e5fe6cb 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp @@ -5,6 +5,7 @@ #include "slic3r/GUI/Camera.hpp" #include "slic3r/GUI/Gizmos/GLGizmosCommon.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/Plater.hpp" #include "libslic3r/ClipperUtils.hpp" #include "libslic3r/ExPolygon.hpp" @@ -46,7 +47,7 @@ bool GLGizmoBrimEars::on_init() { m_new_point_head_radius = get_brim_default_radius(); - m_shortcut_key = WXK_CONTROL_E; + m_shortcut = Shortcut::GizmoBrimEars; const wxString ctrl = GUI::shortkey_ctrl_prefix(); const wxString alt = GUI::shortkey_alt_prefix(); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp index 273bb94b90..2100b1fca7 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoCut.cpp @@ -6,6 +6,7 @@ #include #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp" #include "slic3r/GUI/format.hpp" @@ -1310,7 +1311,7 @@ void GLGizmoCut3D::render_cut_line() bool GLGizmoCut3D::on_init() { m_grabbers.emplace_back(); - m_shortcut_key = WXK_CONTROL_C; + m_shortcut = Shortcut::GizmoCut; // initiate info shortcuts const wxString ctrl = GUI::shortkey_ctrl_prefix(); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp index ecf465afe7..1009a6e89b 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp @@ -1,6 +1,7 @@ #include "GLGizmoEmboss.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/GUI_ObjectList.hpp" #include "slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp" #include "slic3r/GUI/MainFrame.hpp" // to update title when add text @@ -727,7 +728,7 @@ bool GLGizmoEmboss::on_init() m_rotate_gizmo.set_highlight_color(gray_color); // NOTE: It has special handling in GLGizmosManager::handle_shortcut - m_shortcut_key = WXK_CONTROL_T; + m_shortcut = Shortcut::GizmoEmboss; m_shortcuts = { {_L("Drag"), _L("Position on surface")} diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp index 035fb895aa..06d69c3e82 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp @@ -8,6 +8,7 @@ //#include "slic3r/GUI/3DScene.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/ImGuiWrapper.hpp" #include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/GUI_ObjectList.hpp" @@ -78,7 +79,7 @@ std::string GLGizmoFdmSupports::on_get_name() const bool GLGizmoFdmSupports::on_init() { // BBS - m_shortcut_key = WXK_CONTROL_L; + m_shortcut = Shortcut::GizmoFdmSupports; m_desc["perform"] = _L("Apply"); m_desc["on_overhangs_only"] = _L("On highlighted overhangs only"); @@ -149,25 +150,14 @@ void GLGizmoFdmSupports::render_painter_gizmo() glsafe(::glDisable(GL_BLEND)); } -// BBS -bool GLGizmoFdmSupports::on_key_down_select_tool_type(int keyCode) { - switch (keyCode) - { - case 'F': - m_current_tool = ImGui::FillButtonIcon; - break; - case 'S': - m_current_tool = ImGui::SphereButtonIcon; - break; - case 'C': - m_current_tool = ImGui::CircleButtonIcon; - break; - case 'G': - m_current_tool = ImGui::GapFillIcon; - break; - default: - return false; - break; +bool GLGizmoFdmSupports::on_tool_shortcut(Shortcut shortcut) +{ + switch (shortcut) { + case Shortcut::PaintToolFill: m_current_tool = ImGui::FillButtonIcon; break; + case Shortcut::PaintToolSphere: m_current_tool = ImGui::SphereButtonIcon; break; + case Shortcut::PaintToolCircle: m_current_tool = ImGui::CircleButtonIcon; break; + case Shortcut::PaintToolGapFill: m_current_tool = ImGui::GapFillIcon; break; + default: return false; } return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp index 57a6cc1981..d282a06b65 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.hpp @@ -26,8 +26,7 @@ public: state_ready }; - //BBS - bool on_key_down_select_tool_type(int keyCode); + bool on_tool_shortcut(Shortcut shortcut) override; protected: void on_render_input_window(float x, float y, float bottom_limit) override; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp index e9d8598423..54dbd96ba7 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp @@ -1,6 +1,7 @@ #include "GLGizmoFlatten.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/Gizmos/GLGizmosCommon.hpp" @@ -54,7 +55,7 @@ void GLGizmoFlatten::data_changed(bool is_serializing) bool GLGizmoFlatten::on_init() { - m_shortcut_key = WXK_CONTROL_F; + m_shortcut = Shortcut::GizmoFlatten; return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp index d807e466c8..8938e8a264 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp @@ -6,6 +6,7 @@ #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/GUI_ObjectList.hpp" #include "slic3r/GUI/ImGuiWrapper.hpp" #include "slic3r/GUI/MsgDialog.hpp" @@ -31,7 +32,7 @@ std::string GLGizmoFuzzySkin::on_get_name() const bool GLGizmoFuzzySkin::on_init() { - m_shortcut_key = WXK_CONTROL_H; + m_shortcut = Shortcut::GizmoFuzzySkin; const wxString ctrl = GUI::shortkey_ctrl_prefix(); const wxString alt = GUI::shortkey_alt_prefix(); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp b/src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp index 843a4b45fe..e5c6502452 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp @@ -25,7 +25,6 @@ GLGizmoHollow::GLGizmoHollow(GLCanvas3D& parent, const std::string& icon_filenam bool GLGizmoHollow::on_init() { - m_shortcut_key = WXK_CONTROL_H; m_desc["enable"] = _(L("Hollow this object")); m_desc["preview"] = _(L("Preview hollowed and drilled model")); m_desc["offset"] = _(L("Offset")) + ": "; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp index ba2f54d5c5..8ec564e5b4 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp @@ -2,6 +2,7 @@ #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/Gizmos/GizmoObjectManipulation.hpp" #include "slic3r/Utils/UndoRedo.hpp" @@ -449,7 +450,7 @@ bool GLGizmoMeasure::gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_po bool GLGizmoMeasure::on_init() { - m_shortcut_key = WXK_CONTROL_U; + m_shortcut = Shortcut::GizmoMeasure; const wxString shift = GUI::shortkey_shift_prefix(); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp index 8b12da14f9..b91f0a9468 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp @@ -1,5 +1,6 @@ #include "GLGizmoMeshBoolean.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/ImGuiWrapper.hpp" #include "slic3r/GUI/GUI.hpp" #include "libslic3r/MeshBoolean.hpp" @@ -104,7 +105,7 @@ bool GLGizmoMeshBoolean::on_mouse(const wxMouseEvent &mouse_event) bool GLGizmoMeshBoolean::on_init() { - m_shortcut_key = WXK_CONTROL_B; + m_shortcut = Shortcut::GizmoMeshBoolean; return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp index 3d4af75cde..2e741fa5e5 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp @@ -2,6 +2,7 @@ #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/ImGuiWrapper.hpp" #include "slic3r/GUI/Camera.hpp" #include "slic3r/GUI/Plater.hpp" @@ -90,7 +91,7 @@ void GLGizmoMmuSegmentation::init_extruders_data() bool GLGizmoMmuSegmentation::on_init() { // BBS - m_shortcut_key = WXK_CONTROL_N; + m_shortcut = Shortcut::GizmoMmuSegmentation; const wxString ctrl = GUI::shortkey_ctrl_prefix(); const wxString alt = GUI::shortkey_alt_prefix(); @@ -209,30 +210,16 @@ bool GLGizmoMmuSegmentation::on_number_key_down(int number) return true; } -bool GLGizmoMmuSegmentation::on_key_down_select_tool_type(int keyCode) { - switch (keyCode) - { - case 'F': - m_current_tool = ImGui::FillButtonIcon; - break; - case 'T': - m_current_tool = ImGui::TriangleButtonIcon; - break; - case 'S': - m_current_tool = ImGui::SphereButtonIcon; - break; - case 'C': - m_current_tool = ImGui::CircleButtonIcon; - break; - case 'H': - m_current_tool = ImGui::HeightRangeIcon; - break; - case 'G': - m_current_tool = ImGui::GapFillIcon; - break; - default: - return false; - break; +bool GLGizmoMmuSegmentation::on_tool_shortcut(Shortcut shortcut) +{ + switch (shortcut) { + case Shortcut::PaintToolFill: m_current_tool = ImGui::FillButtonIcon; break; + case Shortcut::PaintToolTriangle: m_current_tool = ImGui::TriangleButtonIcon; break; + case Shortcut::PaintToolSphere: m_current_tool = ImGui::SphereButtonIcon; break; + case Shortcut::PaintToolCircle: m_current_tool = ImGui::CircleButtonIcon; break; + case Shortcut::PaintToolHeightRange: m_current_tool = ImGui::HeightRangeIcon; break; + case Shortcut::PaintToolGapFill: m_current_tool = ImGui::GapFillIcon; break; + default: return false; } return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp index 70cfde5aed..b2b04acdbe 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.hpp @@ -82,7 +82,7 @@ public: // BBS bool on_number_key_down(int number); - bool on_key_down_select_tool_type(int keyCode); + bool on_tool_shortcut(Shortcut shortcut) override; protected: // BBS diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp index 2f3195620a..4bee1a6cfc 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp @@ -1,6 +1,7 @@ #include "GLGizmoMove.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" //BBS: GUI refactor #include "slic3r/GUI/Plater.hpp" #include "libslic3r/AppConfig.hpp" @@ -61,7 +62,7 @@ bool GLGizmoMove3D::on_init() m_grabbers[0].angles = { 0.0, 0.5 * double(PI), 0.0 }; m_grabbers[1].angles = { -0.5 * double(PI), 0.0, 0.0 }; - m_shortcut_key = WXK_CONTROL_M; + m_shortcut = Shortcut::GizmoMove; return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp index 63e9d3f436..9ba6065458 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp @@ -192,6 +192,8 @@ public: ~GLGizmoPainterBase() override; void data_changed(bool is_serializing) override; virtual bool gizmo_event(SLAGizmoEventType action, const Vec2d& mouse_position, bool shift_down, bool alt_down, bool control_down); + // Switches the painting tool a Painting-context shortcut names; false when this gizmo has no such tool. + virtual bool on_tool_shortcut(Shortcut shortcut) { return false; } // Following function renders the triangles and cursor. Having this separated // from usual on_render method allows to render them before transparent diff --git a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp index 5521640eee..835b97f072 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp @@ -3,6 +3,7 @@ #include "slic3r/GUI/ImGuiWrapper.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/GUI.hpp" #include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/Jobs/RotoptimizeJob.hpp" @@ -555,7 +556,7 @@ bool GLGizmoRotate3D::on_init() for (unsigned int i = 0; i < 3; ++i) m_gizmos[i].set_highlight_color(AXES_COLOR[i]); - m_shortcut_key = WXK_CONTROL_R; + m_shortcut = Shortcut::GizmoRotate; return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp index 88e744c2b8..c30acba386 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp @@ -1,6 +1,7 @@ #include "GLGizmoScale.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/Plater.hpp" #include @@ -135,7 +136,7 @@ bool GLGizmoScale3D::on_init() // BBS m_grabbers[4].enabled = false; - m_shortcut_key = WXK_CONTROL_S; + m_shortcut = Shortcut::GizmoScale; return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp index b211a18fb2..f36a47c8ec 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSeam.cpp @@ -5,6 +5,7 @@ //#include "slic3r/GUI/3DScene.hpp" #include "slic3r/GUI/GLCanvas3D.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/ImGuiWrapper.hpp" #include "slic3r/GUI/Plater.hpp" #include "slic3r/GUI/GUI_ObjectList.hpp" @@ -28,7 +29,7 @@ void GLGizmoSeam::on_shutdown() bool GLGizmoSeam::on_init() { - m_shortcut_key = WXK_CONTROL_P; + m_shortcut = Shortcut::GizmoSeam; const wxString ctrl = GUI::shortkey_ctrl_prefix(); const wxString alt = GUI::shortkey_alt_prefix(); @@ -86,19 +87,12 @@ void GLGizmoSeam::render_painter_gizmo() glsafe(::glDisable(GL_BLEND)); } -// BBS -bool GLGizmoSeam::on_key_down_select_tool_type(int keyCode) { - switch (keyCode) - { - case 'S': - m_current_tool = ImGui::SphereButtonIcon; - break; - case 'C': - m_current_tool = ImGui::CircleButtonIcon; - break; - default: - return false; - break; +bool GLGizmoSeam::on_tool_shortcut(Shortcut shortcut) +{ + switch (shortcut) { + case Shortcut::PaintToolSphere: m_current_tool = ImGui::SphereButtonIcon; break; + case Shortcut::PaintToolCircle: m_current_tool = ImGui::CircleButtonIcon; break; + default: return false; } return true; } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp index 5b143dc32c..f1c48a12d6 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSeam.hpp @@ -12,8 +12,7 @@ public: void render_painter_gizmo() override; - //BBS - bool on_key_down_select_tool_type(int keyCode); + bool on_tool_shortcut(Shortcut shortcut) override; protected: // BBS diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp index ca22b14d99..49818e8e11 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp @@ -34,7 +34,6 @@ GLGizmoSlaSupports::GLGizmoSlaSupports(GLCanvas3D& parent, const std::string& ic bool GLGizmoSlaSupports::on_init() { - m_shortcut_key = WXK_CONTROL_L; m_desc["head_diameter"] = _L("Head diameter") + ": "; m_desc["lock_supports"] = _L("Lock supports under new islands"); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoText.cpp b/src/slic3r/GUI/Gizmos/GLGizmoText.cpp index df3e9be584..9ae979eeef 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoText.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoText.cpp @@ -261,7 +261,6 @@ bool GLGizmoText::on_init() //m_avail_font_names = init_occt_fonts(); update_font_texture(); m_scale = m_imgui->get_font_size(); - m_shortcut_key = WXK_CONTROL_T; m_grabbers.push_back(Grabber()); diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 17a7b769c3..dc51518acc 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -4,6 +4,7 @@ #include "slic3r/GUI/3DScene.hpp" #include "slic3r/GUI/Camera.hpp" #include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Shortcuts.hpp" #include "slic3r/GUI/GUI_ObjectList.hpp" #include "slic3r/GUI/Plater.hpp" #include "slic3r/Utils/UndoRedo.hpp" @@ -486,15 +487,13 @@ bool GLGizmosManager::is_running() const return m_current != Undefined; } -bool GLGizmosManager::handle_shortcut(int key) +bool GLGizmosManager::open_gizmo_by_shortcut(Shortcut shortcut) { if (!m_enabled) return false; - auto is_key = [pressed_key = key](int gizmo_key) { return (gizmo_key == pressed_key - 64) || (gizmo_key == pressed_key - 96); }; - // allowe open shortcut even when selection is empty - if (GLGizmoBase* gizmo_emboss = m_gizmos[Emboss].get(); - is_key(gizmo_emboss->get_shortcut_key())) { + // The text tool opens without a selection because it creates its own object. + if (GLGizmoBase* gizmo_emboss = m_gizmos[Emboss].get(); gizmo_emboss->shortcut() == shortcut) { dynamic_cast(gizmo_emboss)->on_shortcut_key(); return true; } @@ -502,16 +501,21 @@ bool GLGizmosManager::handle_shortcut(int key) if (m_parent.get_selection().is_empty()) return false; - auto is_gizmo = [is_key](const std::unique_ptr &gizmo) { - return gizmo->is_activable() && is_key(gizmo->get_shortcut_key()); - }; - auto it = std::find_if(m_gizmos.begin(), m_gizmos.end(), is_gizmo); - + auto it = std::find_if(m_gizmos.begin(), m_gizmos.end(), [shortcut](const std::unique_ptr &gizmo) { + return gizmo->is_activable() && gizmo->shortcut() == shortcut; + }); if (it == m_gizmos.end()) return false; - EType gizmo_type = EType(it - m_gizmos.begin()); - return open_gizmo(gizmo_type); + return open_gizmo(EType(it - m_gizmos.begin())); +} + +bool GLGizmosManager::on_delete_key() +{ + const bool processed = (m_current == Cut || m_current == Measure || m_current == Assembly) && gizmo_event(SLAGizmoEventType::Delete); + if (processed) + m_parent.set_as_dirty(); + return processed; } bool GLGizmosManager::is_dragging() const @@ -856,15 +860,6 @@ bool GLGizmosManager::on_char(wxKeyEvent& evt) } break; } - //skip some keys when gizmo - case 'A': - case 'a': - { - if (is_running()) { - processed = true; - } - break; - } //case WXK_RETURN: //{ // if ((m_current == SlaSupports) && gizmo_event(SLAGizmoEventType::ApplyChanges)) @@ -883,12 +878,6 @@ bool GLGizmosManager::on_char(wxKeyEvent& evt) //} - case WXK_BACK: - case WXK_DELETE: { - if ((m_current == Cut || m_current == Measure || m_current == Assembly) && gizmo_event(SLAGizmoEventType::Delete)) - processed = true; - break; - } //case 'A': //case 'a': //{ @@ -932,11 +921,6 @@ bool GLGizmosManager::on_char(wxKeyEvent& evt) } } - if (!processed && !evt.HasModifiers()) { - if (handle_shortcut(keyCode)) - processed = true; - } - if (processed) m_parent.set_as_dirty(); @@ -1077,40 +1061,24 @@ bool GLGizmosManager::on_key(wxKeyEvent& evt) processed = select(digit); } } - else if (keyCode == 'F' || keyCode == 'T' || keyCode == 'S' || keyCode == 'C' || keyCode == 'H' || keyCode == 'G') { - processed = mmu_seg->on_key_down_select_tool_type(keyCode); - if (processed) { - // force extra frame to automatically update window size - wxGetApp().imgui()->set_requires_extra_frame(); - } - } } } - else if (m_current == FdmSupports) { - GLGizmoFdmSupports* fdm_support = dynamic_cast(get_current()); - if (fdm_support != nullptr && (keyCode == 'F' || keyCode == 'S' || keyCode == 'C' || keyCode == 'G')) { - processed = fdm_support->on_key_down_select_tool_type(keyCode); - } - if (processed) { - // force extra frame to automatically update window size - wxGetApp().imgui()->set_requires_extra_frame(); - } - } - else if (m_current == Seam) { - GLGizmoSeam* seam = dynamic_cast(get_current()); - if (seam != nullptr && (keyCode == 'S' || keyCode == 'C')) { - processed = seam->on_key_down_select_tool_type(keyCode); - } - if (processed) { - // force extra frame to automatically update window size - wxGetApp().imgui()->set_requires_extra_frame(); - } - } else if (m_current == Measure || m_current == Assembly) { + else if (m_current == Measure || m_current == Assembly) { if (keyCode == WXK_CONTROL) gizmo_event(SLAGizmoEventType::CtrlDown, Vec2d::Zero(), evt.ShiftDown(), evt.AltDown(), evt.CmdDown()); else if (keyCode == WXK_SHIFT) gizmo_event(SLAGizmoEventType::ShiftDown, Vec2d::Zero(), evt.ShiftDown(), evt.AltDown(), evt.CmdDown()); } + + if (!processed) { + if (auto painter = dynamic_cast(get_current()); painter != nullptr) { + const std::optional shortcut = wxGetApp().shortcuts().lookup(ShortcutContext::Painting, KeyChord::from_event(evt)); + processed = shortcut.has_value() && painter->on_tool_shortcut(*shortcut); + if (processed) + // force extra frame to automatically update window size + wxGetApp().imgui()->set_requires_extra_frame(); + } + } } if (processed) diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp index 5f249d2ef7..2a4afac16d 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp @@ -263,7 +263,10 @@ public: EType get_gizmo_from_name(const std::string& gizmo_name) const; bool is_running() const; - bool handle_shortcut(int key); + // Opens the gizmo bound to a Plater-context shortcut; false when no gizmo has it or it cannot open now. + bool open_gizmo_by_shortcut(Shortcut shortcut); + // Lets the current gizmo consume the delete key; false when it did not. + bool on_delete_key(); bool is_dragging() const; diff --git a/src/slic3r/GUI/HintNotification.cpp b/src/slic3r/GUI/HintNotification.cpp index c08a447e1e..de5f12e07e 100644 --- a/src/slic3r/GUI/HintNotification.cpp +++ b/src/slic3r/GUI/HintNotification.cpp @@ -5,6 +5,7 @@ #include "GUI_ObjectList.hpp" #include "GLCanvas3D.hpp" #include "MainFrame.hpp" +#include "Preferences.hpp" #include "Tab.hpp" #include "libslic3r/AppConfig.hpp" #include "libslic3r/Utils.hpp" @@ -444,9 +445,8 @@ void HintDatabase::load_hints_from_file(const boost::filesystem::path& path) // open preferences } else if (dict["hypertext_type"] == "preferences") { - std::string page = dict["hypertext_preferences_page"]; std::string item = dict["hypertext_preferences_item"]; - HintData hint_data{ id_string, text1, weight, was_displayed, hypertext_text, follow_text, disabled_tags, enabled_tags, false, documentation_link, img_url, [page, item]() { wxGetApp().open_preferences(1, page); } };// 1 is to modify + HintData hint_data{ id_string, text1, weight, was_displayed, hypertext_text, follow_text, disabled_tags, enabled_tags, false, documentation_link, img_url, [item]() { wxGetApp().open_preferences(PreferencesTab::Control, item); } }; m_loaded_hints.emplace_back(hint_data); } else if (dict["hypertext_type"] == "plater") { diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index be1f53ef97..c03d331627 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -6,359 +6,319 @@ #include "Notebook.hpp" #include #include +#include +#include #include "GUI_App.hpp" #include "wxExtensions.hpp" #include "MainFrame.hpp" +#include "MsgDialog.hpp" +#include "Preferences.hpp" +#include "Widgets/Button.hpp" +#include "Widgets/DialogButtons.hpp" +#include "Widgets/Label.hpp" +#include "Widgets/StaticBox.hpp" +#include "Widgets/StaticLine.hpp" +#include "Widgets/TabCtrl.hpp" #include namespace Slic3r { namespace GUI { -wxDEFINE_EVENT(EVT_PREFERENCES_SELECT_TAB, wxCommandEvent); +namespace { -KBShortcutsDialog::KBShortcutsDialog() - : DPIDialog(static_cast(wxGetApp().mainframe), wxID_ANY,_L("Keyboard Shortcuts"), - wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE) +wxString shortcut_names(const std::vector& shortcuts) { - // fonts - const wxFont& font = wxGetApp().normal_font(); - const wxFont& bold_font = wxGetApp().bold_font(); - SetFont(font); - - this->SetSizeHints(wxDefaultSize, wxDefaultSize); - this->SetBackgroundColour(wxColour(255, 255, 255)); - - wxBoxSizer *m_sizer_top = new wxBoxSizer(wxVERTICAL); - - auto m_top_line = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL); - m_top_line->SetBackgroundColour(wxColour(166, 169, 170)); - - m_sizer_top->Add(m_top_line, 0, wxEXPAND, 0); - m_sizer_body = new wxBoxSizer(wxHORIZONTAL); - - m_panel_selects = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); - m_panel_selects->SetBackgroundColour(wxColour(248, 248, 248)); - wxBoxSizer *m_sizer_left = new wxBoxSizer(wxVERTICAL); - - m_sizer_left->Add(0, 0, 0, wxEXPAND | wxTOP, FromDIP(20)); - - m_sizer_left->Add(create_button(0, _L("Global")), 0, wxEXPAND, 0); - m_sizer_left->Add(create_button(1, _L("Prepare")), 0, wxEXPAND, 0); - m_sizer_left->Add(create_button(2, _L("Toolbar")), 0, wxEXPAND, 0); - m_sizer_left->Add(create_button(3, _L("Objects list")), 0, wxEXPAND, 0); - m_sizer_left->Add(create_button(4, _L("Preview")), 0, wxEXPAND, 0); - - m_panel_selects->SetSizer(m_sizer_left); - m_panel_selects->Layout(); - m_sizer_left->Fit(m_panel_selects); - m_sizer_body->Add(m_panel_selects, 0, wxEXPAND, 0); - - m_sizer_right = new wxBoxSizer(wxHORIZONTAL); - - m_sizer_right->Add(0, 0, 0, wxEXPAND | wxLEFT, FromDIP(12)); - - m_simplebook = new wxSimplebook(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(870), FromDIP(500)), 0); - - m_sizer_right->Add(m_simplebook, 1, wxEXPAND, 0); - m_sizer_body->Add(m_sizer_right, 1, wxEXPAND, 0); - m_sizer_top->Add(m_sizer_body, 1, wxEXPAND, 0); - - fill_shortcuts(); - for (size_t i = 0; i < m_full_shortcuts.size(); ++i) { - wxPanel *page = create_page(m_simplebook, m_full_shortcuts[i], font, bold_font); - m_pages.push_back(page); - m_simplebook->AddPage(page, m_full_shortcuts[i].first.first, i == 0); + wxString names; + for (Shortcut shortcut : shortcuts) { + if (!names.empty()) + names += ", "; + names += _(shortcut_info(shortcut).name); } + return names; +} - Bind(EVT_PREFERENCES_SELECT_TAB, &KBShortcutsDialog::OnSelectTabel, this); +const wxColour ERROR_COLOUR("#D01B1B"); - SetSizer(m_sizer_top); - Layout(); - Fit(); +// The camera action a mouse button drags, as set in Preferences > Control. +const char* mouse_action(const char* preference) +{ + const std::string action = wxGetApp().app_config->get(preference); + return action == "1" ? L("Pan View") : action == "2" ? L("Rotate View") : L("None"); +} + +// Page layout in DIPs; titles and rows are indented as in the Preferences dialog. +constexpr int PAGE_WIDTH = 640; +constexpr int TITLE_MARGIN = DESIGN_LEFT_MARGIN - 10; +constexpr int ROW_MARGIN = DESIGN_LEFT_MARGIN; +constexpr int ROW_GAP = 16; + +template struct overloaded : Ts... { using Ts::operator()...; }; +template overloaded(Ts...) -> overloaded; + +std::vector to_wx(const std::vector& parts) +{ + std::vector out; + for (const std::string& part : parts) + out.push_back(from_u8(part)); + return out; +} + +// The keys a Global shortcut can use, the second line of its hint and of a rejection. +wxString global_key_advice() +{ + return wxString::Format(_L("Use %s or %s, or a key that does not type a character."), + from_u8(KeyChord::modifier_name(wxMOD_CONTROL)), from_u8(KeyChord::modifier_name(wxMOD_ALT))); +} + +// The pieces of a chord, spaced out for the dialog: "Ctrl + Shift + A". +wxString join_keys(const std::vector& parts) +{ + wxString out; + for (const wxString& part : parts) + out += (out.empty() ? "" : " + ") + part; + return out; +} + +} // namespace + +KBShortcutsDialog::KBShortcutsDialog(wxWindow* parent, ShortcutContext page) + : DPIDialog(parent, wxID_ANY, _L("Keyboard Shortcuts"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE) +{ + SetFont(wxGetApp().normal_font()); + SetBackgroundColour(*wxWHITE); + + fill_pages(); + + ScalableButton* probe = new ScalableButton(this, wxID_ANY, "edit"); + m_edit_size = probe->GetBestSize(); + probe->Destroy(); + m_buttons_width = 2 * m_edit_size.x + FromDIP(6); + m_row_text_width = FromDIP(PAGE_WIDTH) - FromDIP(ROW_MARGIN) - FromDIP(TITLE_MARGIN) - 2 * FromDIP(ROW_GAP) - m_buttons_width; + GetTextExtent("W", &m_key_slot, nullptr, nullptr, nullptr, &Label::Head_14); + + // The page tabs follow the Preferences dialog. + m_tabs = new TabCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_NO_BUTTONS | wxTR_HIDE_ROOT | wxTR_SINGLE | wxTR_NO_LINES | wxBORDER_NONE | wxWANTS_CHARS | wxTR_FULL_ROW_HIGHLIGHT); + m_tabs->Bind(wxEVT_RIGHT_DOWN, [](auto&) {}); + m_tabs->SetFont(Label::Body_14); + m_simplebook = new wxSimplebook(this, wxID_ANY, wxDefaultPosition, wxSize(FromDIP(660), FromDIP(500))); + for (const Page& page : m_pages) { + m_tabs->AppendItem(page.title); + m_simplebook->AddPage(create_page(m_simplebook, page), page.title); + } + const StateColor tab_colour(std::make_pair(wxColour("#6B6B6C"), (int) StateColor::NotChecked), std::make_pair(wxColour("#363636"), (int) StateColor::Normal)); + for (size_t i = 0; i < m_tabs->GetCount(); ++i) + m_tabs->SetItemTextColour(i, tab_colour); + m_tabs->Bind(wxEVT_TAB_SEL_CHANGED, [this](wxCommandEvent& e) { + for (size_t i = 0; i < m_tabs->GetCount(); ++i) + m_tabs->SetItemBold(i, int(i) == e.GetSelection()); + m_simplebook->SetSelection(e.GetSelection()); + }); + const auto shown = std::find_if(m_pages.begin(), m_pages.end(), [page](const Page& entry) { return entry.context == page; }); + m_tabs->SelectItem(shown == m_pages.end() ? 0 : int(shown - m_pages.begin())); + + wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); + sizer->Add(m_tabs, 0, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(5)); + sizer->Add(m_simplebook, 1, wxEXPAND); + SetSizerAndFit(sizer); CenterOnParent(); - - // select first - auto event = wxCommandEvent(EVT_PREFERENCES_SELECT_TAB); - event.SetInt(0); - event.SetEventObject(this); - wxPostEvent(this, event); wxGetApp().UpdateDlgDarkUI(this); } -void KBShortcutsDialog::OnSelectTabel(wxCommandEvent &event) -{ - auto id = event.GetInt(); - SelectHash::iterator i = m_hash_selector.begin(); - while (i != m_hash_selector.end()) { - Select *sel = i->second; - if (id == sel->m_index) { - sel->m_tab_button->SetBackgroundColour(StateColor::darkModeColorFor(wxColour("#BFE1DE"))); // ORCA color for selected tab background - sel->m_tab_text->SetBackgroundColour(StateColor::darkModeColorFor(wxColour("#BFE1DE"))); // ORCA color for selected tab background - sel->m_tab_text->SetFont(::Label::Head_13); - sel->m_tab_button->Refresh(); - sel->m_tab_text->Refresh(); - - m_simplebook->SetSelection(id); - } else { - sel->m_tab_button->SetBackgroundColour(StateColor::darkModeColorFor(wxColour("#F8F8F8"))); - sel->m_tab_text->SetBackgroundColour(StateColor::darkModeColorFor(wxColour("#F8F8F8"))); - sel->m_tab_text->SetFont(::Label::Body_13); - sel->m_tab_button->Refresh(); - sel->m_tab_text->Refresh(); - } - i++; - } - wxGetApp().UpdateDlgDarkUI(this); -} - -wxWindow *KBShortcutsDialog::create_button(int id, wxString text) -{ - auto tab_button = new wxWindow(m_panel_selects, wxID_ANY, wxDefaultPosition, wxSize( FromDIP(150), FromDIP(28)), wxTAB_TRAVERSAL); - - wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL); - - sizer->Add(0, 0, 0, wxEXPAND | wxLEFT, FromDIP(22)); - - auto stext = new wxStaticText(tab_button, wxID_ANY, text, wxDefaultPosition, wxDefaultSize, 0); - stext->SetFont(::Label::Body_13); - stext->SetForegroundColour(wxColour(38, 46, 48)); - stext->Wrap(-1); - sizer->Add(stext, 1, wxALIGN_CENTER, 0); - - tab_button->Bind(wxEVT_LEFT_DOWN, [this, id](auto &e) { - auto event = wxCommandEvent(EVT_PREFERENCES_SELECT_TAB); - event.SetInt(id); - event.SetEventObject(this); - wxPostEvent(this, event); - }); - - stext->Bind(wxEVT_LEFT_DOWN, [this, id](wxMouseEvent &e) { - auto event = wxCommandEvent(EVT_PREFERENCES_SELECT_TAB); - event.SetInt(id); - event.SetEventObject(this); - wxPostEvent(this, event); - }); - - Select *sel = new Select; - sel->m_index = id; - sel->m_tab_button = tab_button; - sel->m_tab_text = stext; - m_hash_selector[sel->m_index] = sel; - - tab_button->SetSizer(sizer); - tab_button->Layout(); - return tab_button; -} - void KBShortcutsDialog::on_dpi_changed(const wxRect& suggested_rect) { - m_logo_bmp.msw_rescale(); - m_header_bitmap->SetBitmap(m_logo_bmp.bmp()); - msw_buttons_rescale(this, em_unit(), { wxID_OK }); - + m_tabs->Rescale(); Layout(); Fit(); Refresh(); } -void KBShortcutsDialog::fill_shortcuts() +void KBShortcutsDialog::fill_pages() { - const std::string ctrl = GUI::shortkey_ctrl_prefix(); - const std::string alt = GUI::shortkey_alt_prefix(); - const std::string shift = L("Shift+"); + // A fixed row is listed in the section of the shortcuts it belongs with. + auto fixed = [](ShortcutSection section, std::vector keys, const char* description) { return Row{ FixedKey{ std::move(keys), description }, section }; }; + auto mouse = [](ShortcutSection section, const wxString& button, const char* preference) { return Row{ MouseAction{ button, preference }, section }; }; + auto key = [](const std::string& key) { return _L_CONTEXT(key, "Keyboard Shortcut"); }; + auto page = [this](const wxString& title, const wxString& caption, ShortcutContext context, std::vector fixed_rows) { + Page entry{ title, caption, context, {} }; + for (Shortcut shortcut : shortcuts_in(context)) + entry.rows.push_back({ shortcut, shortcut_section(shortcut) }); + entry.rows.insert(entry.rows.end(), fixed_rows.begin(), fixed_rows.end()); + std::stable_sort(entry.rows.begin(), entry.rows.end(), [](const Row& a, const Row& b) { return a.section < b.section; }); + m_pages.push_back(std::move(entry)); + }; + + const wxString ctrl = from_u8(KeyChord::modifier_name(wxMOD_CONTROL)); + const wxString alt = from_u8(KeyChord::modifier_name(wxMOD_ALT)); + const wxString shift = from_u8(KeyChord::modifier_name(wxMOD_SHIFT)); + const wxString shift_ctrl = shift + "/" + ctrl; // either one + const wxString any_key = key(L_CONTEXT("Key", "Keyboard Shortcut")); // the key the row's shortcut is bound to + const wxString esc = key(L_CONTEXT("Esc", "Keyboard Shortcut")); + const wxString left_button = _L("Left mouse"); + const wxString wheel = _L("Mouse wheel"); + using Section = ShortcutSection; if (wxGetApp().is_editor()) { - Shortcuts global_shortcuts = { - // File - { ctrl + "N", L("New Project") }, - { ctrl + "O", L("Open Project") }, - { ctrl + "S", L("Save Project") }, - { ctrl + shift + "S", L("Save Project as")}, - { ctrl + shift + "E", L("Publish 3MF") }, - // File>Import - { ctrl + "I", L("Import geometry data from STL/STEP/3MF/OBJ/AMF files") }, - // File>Export - { ctrl + "G", L("Export plate sliced file")}, - // Slice plate - { ctrl + "R", L("Slice plate")}, - // Send to Print - { ctrl + shift + "G", L("Print plate")}, - // Edit - { ctrl + "X", L("Cut") }, - { ctrl + "C", L("Copy to clipboard") }, - { ctrl + "V", L("Paste from clipboard") }, - // Configuration - { ctrl + "P", L("Preferences") }, - //3D control -#ifdef __APPLE__ - { ctrl + shift + "M", L("Show/Hide 3Dconnexion devices settings dialog") }, -#else - { ctrl + "M", L("Show/Hide 3Dconnexion devices settings dialog") }, -#endif // __APPLE + page(_L("Global"), _L("Available anywhere in the window, even while typing in a text field."), ShortcutContext::Global, { + fixed(Section::Application, { alt, "1-9, 0" }, L("Run a speed dial favorite while the dial is open")), + fixed(Section::Application, { ctrl, key(L_CONTEXT("Tab", "Keyboard Shortcut")) }, L("Switch to the next main tab")), + }); - // Switch table page - { ctrl + L("Tab"), L("Switch table page")}, - // Open speed dial - { L_CONTEXT("Space", "Keyboard Shortcut"), L("Open speed dial") }, - { alt + "1..9,0", L("Run a Speed Dial favourite (while the Speed Dial is open)") }, - //DEL - #ifdef __APPLE__ - {"fn+⌫", L("Delete Selected")}, - #else - {L_CONTEXT("Del", "Keyboard Shortcut"), L("Delete Selected")}, - #endif - // Help - { "?", L("Show keyboard shortcuts list") } - }; - m_full_shortcuts.push_back({{_L("Global shortcuts"), ""}, global_shortcuts}); + page(_L("Prepare"), _L("Available while the 3D view on the Prepare tab has focus."), ShortcutContext::Plater, { + fixed(Section::Selection, { alt, left_button }, L("Select a part")), + fixed(Section::Selection, { ctrl, left_button }, L("Select multiple objects")), + fixed(Section::Selection, { shift, left_button }, L("Select objects by rectangle")), + fixed(Section::Selection, { esc }, L("Deselect All")), + fixed(Section::Objects, { "1-9" }, L("Keyboard 1-9: set filament for object/part")), + fixed(Section::Placement, { shift, any_key }, L("Movement step set to 1mm")), + fixed(Section::Placement, { ctrl, any_key }, L("Movement in camera space")), + mouse(Section::Camera, left_button, "left_mouse_drag_action"), + mouse(Section::Camera, _L("Middle mouse"), "middle_mouse_drag_action"), + mouse(Section::Camera, _L("Right mouse"), "right_mouse_drag_action"), + fixed(Section::Camera, { wheel }, L("Zoom View")), + }); - - // Retrieve mouse actions from config and map to MouseAction - std::map mouse_actions; - mouse_actions["0"] = L("None"); - mouse_actions["1"] = L("Pan View"); - mouse_actions["2"] = L("Rotate View"); + page(_L("Painting"), _L("Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting."), ShortcutContext::Painting, { + fixed(Section::Gizmos, { esc }, L("Deselect All")), + fixed(Section::Gizmos, { shift, left_button }, L("Move: press to snap by 1mm")), + fixed(Section::PaintingTools, { ctrl, wheel }, L("Support/Color Painting: adjust pen radius")), + fixed(Section::PaintingTools, { alt, wheel }, L("Support/Color Painting: adjust section position")), + }); - Shortcuts plater_shortcuts = { - { L("Left mouse button"), mouse_actions[wxGetApp().app_config->get("left_mouse_drag_action").c_str()]}, - { L("Middle mouse button"), mouse_actions[wxGetApp().app_config->get("middle_mouse_drag_action").c_str()]}, - { L("Right mouse button"), mouse_actions[wxGetApp().app_config->get("right_mouse_drag_action").c_str()]}, - { L("Mouse wheel"), L("Zoom View") }, - { "A", L("Arrange all objects") }, - { shift + "A", L("Arrange objects on selected plates") }, - - { "Q", L("Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project.") }, - { shift + "Q", L("Auto orients all objects on the active plate.") }, - - {shift + L("Tab"), L("Collapse/Expand the sidebar")}, - {ctrl + L("Any arrow"), L("Movement in camera space")}, - {alt + L("Left mouse button"), L("Select a part")}, - {ctrl + L("Left mouse button"), L("Select multiple objects")}, - {shift + L("Left mouse button"), L("Select objects by rectangle")}, - {L_CONTEXT("Arrow Up", "Keyboard Shortcut"), L("Move selection 10mm in positive Y direction")}, - {L_CONTEXT("Arrow Down", "Keyboard Shortcut"), L("Move selection 10mm in negative Y direction")}, - {L_CONTEXT("Arrow Left", "Keyboard Shortcut"), L("Move selection 10mm in negative X direction")}, - {L_CONTEXT("Arrow Right", "Keyboard Shortcut"), L("Move selection 10mm in positive X direction")}, - {shift + L("Any arrow"), L("Movement step set to 1mm")}, - {L_CONTEXT("Esc", "Keyboard Shortcut"), L("Deselect All")}, - {"1-9", L("Keyboard 1-9: set filament for object/part")}, - {ctrl + "0", L("Camera view - Default")}, - {ctrl + "1", L("Camera view - Top")}, - {ctrl + "2", L("Camera view - Bottom")}, - {ctrl + "3", L("Camera view - Front")}, - {ctrl + "4", L("Camera view - Behind")}, - {ctrl + "5", L("Camera Angle - Left side")}, - {ctrl + "6", L("Camera Angle - Right side")}, - - {ctrl + "A", L("Select all objects")}, - {ctrl + "D", L("Delete All")}, - {ctrl + "Z", L("Undo")}, - {ctrl + "Y", L("Redo")}, - { "M", L("Gizmo move") }, - { "R", L("Gizmo rotate") }, - { "S", L("Gizmo scale") }, - { "F", L("Gizmo place face on bed") }, - { "C", L("Gizmo cut") }, - { "B", L("Gizmo mesh boolean") }, - { "H", L("Gizmo FDM paint-on fuzzy skin") }, - { "L", L("Gizmo SLA support points") }, - { "P", L("Gizmo FDM paint-on seam") }, - { "T", L("Gizmo text emboss/engrave") }, - { "U", L("Gizmo measure") }, - { "Y", L("Gizmo assemble") }, - { "E", L("Gizmo brim ears") }, - { "I", L("Zoom in") }, - { "O", L("Zoom out") }, - { "V", L("Toggle printable for object/part") }, - { L_CONTEXT("Tab", "Keyboard Shortcut"), L("Switch between Prepare/Preview") }, - }; - m_full_shortcuts.push_back({ { _L("Plater"), "" }, plater_shortcuts }); - - Shortcuts gizmos_shortcuts = { - {L_CONTEXT("Esc", "Keyboard Shortcut"), L("Deselect All")}, - {shift, L("Move: press to snap by 1mm")}, - {ctrl + L("Mouse wheel"), L("Support/Color Painting: adjust pen radius")}, - {alt + L("Mouse wheel"), L("Support/Color Painting: adjust section position")}, - }; - m_full_shortcuts.push_back({{_L("Gizmo"), ""}, gizmos_shortcuts}); - - Shortcuts object_list_shortcuts = { - {"1-9", L("Set extruder number for the objects and parts") }, - {L_CONTEXT("Del", "Keyboard Shortcut"), L("Delete objects, parts, modifiers")}, - {L_CONTEXT("Esc", "Keyboard Shortcut"), L("Deselect All")}, - {ctrl + "C", L("Copy to clipboard")}, - {ctrl + "V", L("Paste from clipboard")}, - {ctrl + "X", L("Cut")}, - {ctrl + "A", L("Select all objects")}, - {ctrl + "K", L("Clone Selected")}, - {ctrl + "Z", L("Undo")}, - {ctrl + "Y", L("Redo")}, - {L_CONTEXT("Space", "Keyboard Shortcut"), L("Select the object/part and press space to change the name")}, - {L("Mouse click"), L("Select the object/part and mouse click to change the name")}, - }; - m_full_shortcuts.push_back({ { _L("Objects List"), "" }, object_list_shortcuts }); + page(_L("Objects list"), _L("Available while the object list has focus."), ShortcutContext::ObjectList, { + fixed(Section::Selection, { esc }, L("Deselect All")), + fixed(Section::Objects, { "1-9" }, L("Set extruder number for the objects and parts")), + fixed(Section::Objects, { key(L_CONTEXT("Space", "Keyboard Shortcut")) }, L("Select the object/part and press space to change the name")), + fixed(Section::Objects, { _L("Mouse click") }, L("Select the object/part and mouse click to change the name")), + }); } - Shortcuts preview_shortcuts = { - { L_CONTEXT("Arrow Up", "Keyboard Shortcut"), L("Vertical slider - Move active thumb Up")}, - { L_CONTEXT("Arrow Down", "Keyboard Shortcut"), L("Vertical slider - Move active thumb Down")}, - { L_CONTEXT("Arrow Left", "Keyboard Shortcut"), L("Horizontal slider - Move active thumb Left")}, - { L_CONTEXT("Arrow Right", "Keyboard Shortcut"), L("Horizontal slider - Move active thumb Right")}, - { "L", L("On/Off one layer mode of the vertical slider")}, - { "C", L("On/Off G-code window")}, - { L_CONTEXT("Tab", "Keyboard Shortcut"), L("Switch between Prepare/Preview")}, - {shift + L("Any arrow"), L("Move slider 5x faster")}, - {shift + L("Mouse wheel"), L("Move slider 5x faster")}, - {ctrl + L("Any arrow"), L("Move slider 5x faster")}, - {ctrl + L("Mouse wheel"), L("Move slider 5x faster")}, - { L_CONTEXT("Home", "Keyboard Shortcut"), L("Horizontal slider - Move to start position")}, - { L_CONTEXT("End", "Keyboard Shortcut"), L("Horizontal slider - Move to last position")}, - }; - m_full_shortcuts.push_back({ { _L("Preview"), "" }, preview_shortcuts }); + page(_L("Preview"), _L("Available while the 3D view on the Preview tab has focus."), ShortcutContext::Preview, { + fixed(Section::Sliders, { shift_ctrl, any_key }, L("Move slider 5x faster")), + fixed(Section::Sliders, { shift_ctrl, wheel }, L("Scroll slider 5x faster")), + }); } -wxPanel* KBShortcutsDialog::create_page(wxWindow* parent, const ShortcutsItem& shortcuts, const wxFont& font, const wxFont& bold_font) +wxPanel* KBShortcutsDialog::create_page(wxWindow* parent, const Page& page) { wxPanel* main_page = new wxPanel(parent); wxBoxSizer* main_sizer = new wxBoxSizer(wxVERTICAL); - if (!shortcuts.first.second.empty()) { - main_sizer->AddSpacer(FromDIP(10)); - wxBoxSizer* info_sizer = new wxBoxSizer(wxHORIZONTAL); - info_sizer->AddStretchSpacer(); - info_sizer->Add(new wxStaticText(main_page, wxID_ANY, shortcuts.first.second), 0); - info_sizer->AddStretchSpacer(); - main_sizer->Add(info_sizer, 0, wxEXPAND); - main_sizer->AddSpacer(FromDIP(10)); - } - - int items_count = (int) shortcuts.second.size(); wxScrolledWindow *scrollable_panel = new wxScrolledWindow(main_page); wxGetApp().UpdateDarkUI(scrollable_panel); - scrollable_panel->SetScrollbars(20, 20, 50, 50); - scrollable_panel->SetInitialSize(wxSize(FromDIP(850), FromDIP(450))); + const wxColour page_colour = StateColor::darkModeColorFor(*wxWHITE); + scrollable_panel->SetBackgroundColour(page_colour); + scrollable_panel->SetScrollRate(0, 20); + const int page_width = FromDIP(PAGE_WIDTH); + scrollable_panel->SetInitialSize(wxSize(page_width, FromDIP(450))); - wxBoxSizer * scrollable_panel_sizer = new wxBoxSizer(wxVERTICAL); - wxFlexGridSizer *grid_sizer = new wxFlexGridSizer(items_count, 2, FromDIP(10), FromDIP(20)); + const int title_margin = FromDIP(TITLE_MARGIN); + const int row_margin = FromDIP(ROW_MARGIN); + const int gap = FromDIP(ROW_GAP); - for (int i = 0; i < items_count; ++i) { - const auto &[shortcut, description] = shortcuts.second[i]; - // Keyboard keys carry a "Keyboard Shortcut" context so translators keep them in English; - // mouse-input labels are ordinary phrases and use the plain lookup. - const bool is_mouse = shortcut.find("Mouse") != std::string::npos || shortcut.find("mouse") != std::string::npos; - auto key = new wxStaticText(scrollable_panel, wxID_ANY, is_mouse ? _(shortcut) : _L_CONTEXT(shortcut, "Keyboard Shortcut")); - key->SetForegroundColour(wxColour(50, 58, 61)); - key->SetFont(bold_font); - grid_sizer->Add(key, 0, wxALIGN_CENTRE_VERTICAL); + wxBoxSizer* scrollable_panel_sizer = new wxBoxSizer(wxVERTICAL); - auto desc = new wxStaticText(scrollable_panel, wxID_ANY, _(description)); - desc->SetFont(font); - desc->SetForegroundColour(wxColour(50, 58, 61)); - desc->Wrap(FromDIP(600)); - grid_sizer->Add(desc, 0, wxALIGN_CENTRE_VERTICAL); + const wxColour note_colour = StateColor::darkModeColorFor(wxColour("#F8F8F8")); + const wxColour note_text = StateColor::darkModeColorFor(wxColour("#6B6B6A")); + StaticBox* note = new StaticBox(scrollable_panel); + note->SetCornerRadius(FromDIP(4)); + note->SetBorderWidth(0); + note->SetBackgroundColor(note_colour); + note->SetBackgroundColour(note_colour); + auto note_icon = new wxStaticBitmap(note, wxID_ANY, ScalableBitmap(note, "help", 16).bmp()); + auto note_text_ctrl = new wxStaticText(note, wxID_ANY, page.caption); + note_text_ctrl->SetFont(Label::Body_13); + note_text_ctrl->SetForegroundColour(note_text); + note_text_ctrl->SetBackgroundColour(note_colour); + note_text_ctrl->Wrap(page_width - 2 * title_margin - FromDIP(10 + 16 + 8 + 10)); + wxBoxSizer* note_sizer = new wxBoxSizer(wxHORIZONTAL); + note_sizer->Add(note_icon, 0, wxALIGN_CENTRE_VERTICAL | wxLEFT, FromDIP(10)); + note_sizer->Add(note_text_ctrl, 1, wxALIGN_CENTRE_VERTICAL | wxALL, FromDIP(8)); + note->SetSizer(note_sizer); + scrollable_panel_sizer->Add(note, 0, wxEXPAND | wxLEFT | wxRIGHT | wxTOP, title_margin); + + auto key_parts = [](const Row& row) { + return std::visit(overloaded{ + [](Shortcut shortcut) { return to_wx(wxGetApp().shortcuts().binding(shortcut).display_parts()); }, + [](const FixedKey& fixed) { return fixed.keys; }, + [](const MouseAction& mouse) { return std::vector{ mouse.button }; }, + }, row.content); + }; + auto description = [](const Row& row) { + return std::visit(overloaded{ + [](Shortcut shortcut) { return _(shortcut_info(shortcut).name); }, + [](const FixedKey& fixed) { return _(fixed.description); }, + [](const MouseAction& mouse) { return _(mouse_action(mouse.preference)); }, + }, row.content); + }; + auto icon_button = [&](const char* icon, const wxString& tooltip) { + auto button = new ScalableButton(scrollable_panel, wxID_ANY, icon); + button->SetBackgroundColour(page_colour); + button->SetToolTip(tooltip); + return button; + }; + + std::optional section; + for (const Row& row : page.rows) { + if (section != row.section) { + auto heading = new StaticLine(scrollable_panel, false, _(section_name(row.section))); + heading->SetFont(Label::Head_14); + heading->SetForegroundColour(DESIGN_GRAY900_COLOR); + wxBoxSizer* heading_sizer = new wxBoxSizer(wxHORIZONTAL); + heading_sizer->AddSpacer(title_margin); + heading_sizer->Add(heading, 1, wxEXPAND | wxTOP | wxBOTTOM, FromDIP(6)); + heading_sizer->AddSpacer(title_margin); + scrollable_panel_sizer->Add(heading_sizer, 0, wxEXPAND | wxTOP, FromDIP(section.has_value() ? 10 : 6)); + section = row.section; + } + auto desc = new wxStaticText(scrollable_panel, wxID_ANY, description(row)); + desc->SetFont(Label::Body_14); + desc->SetForegroundColour(DESIGN_GRAY900_COLOR); + auto chord_label = [&](long style) { + auto label = new wxStaticText(scrollable_panel, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, style); + label->SetFont(Label::Head_14); + label->SetForegroundColour(DESIGN_GRAY900_COLOR); + return label; + }; + wxStaticText* modifiers = chord_label(0); + wxStaticText* key = chord_label(wxALIGN_CENTRE_HORIZONTAL); // a single key is centred in its column + desc->Wrap(m_row_text_width - set_chord_labels(modifiers, key, key_parts(row))); + + wxBoxSizer* buttons = new wxBoxSizer(wxHORIZONTAL); + if (const MouseAction* mouse = std::get_if(&row.content)) { + auto settings = icon_button("settings", _L("Preferences")); + settings->Bind(wxEVT_BUTTON, [this, preference = mouse->preference](wxCommandEvent&) { open_mouse_preferences(preference); }); + buttons->Add(settings, 0, wxALIGN_CENTRE_VERTICAL); + m_preference_rows.push_back({ mouse->preference, desc }); + } else if (const Shortcut* editable = std::get_if(&row.content)) { + const Shortcut shortcut = *editable; + auto change = icon_button("edit", _L("Edit")); + change->Bind(wxEVT_BUTTON, [this, shortcut](wxCommandEvent&) { edit_shortcut(shortcut); }); + auto reset = icon_button("undo", _L("Reset")); + reset->Bind(wxEVT_BUTTON, [this, shortcut](wxCommandEvent&) { reset_shortcut(shortcut); }); + reset->Show(wxGetApp().shortcuts().is_customized(shortcut)); + buttons->Add(change, 0, wxALIGN_CENTRE_VERTICAL | wxRIGHT, FromDIP(6)); + buttons->Add(reset, 0, wxALIGN_CENTRE_VERTICAL | wxRESERVE_SPACE_EVEN_IF_HIDDEN); + m_editable_rows.push_back({ shortcut, desc, modifiers, key, reset }); + } else { + auto lock = new wxStaticBitmap(scrollable_panel, wxID_ANY, ScalableBitmap(scrollable_panel, "printer_status_lock", 16).bmp()); + lock->SetToolTip(_L("Not customizable")); + buttons->Add((m_edit_size.x - lock->GetBestSize().x) / 2, m_edit_size.y); // centred under the edit icons, at their height + buttons->Add(lock, 0, wxALIGN_CENTRE_VERTICAL); + } + if (const int used = buttons->GetMinSize().x; used < m_buttons_width) // a box sizer recomputes its own min size, so pad it + buttons->AddSpacer(m_buttons_width - used); + + wxBoxSizer* row_sizer = new wxBoxSizer(wxHORIZONTAL); + row_sizer->AddSpacer(row_margin); + row_sizer->Add(desc, 1, wxALIGN_CENTRE_VERTICAL); + row_sizer->AddSpacer(gap); + row_sizer->Add(modifiers, 0, wxALIGN_CENTRE_VERTICAL); + row_sizer->Add(key, 0, wxALIGN_CENTRE_VERTICAL); + row_sizer->Add(buttons, 0, wxALIGN_CENTRE_VERTICAL | wxLEFT, gap); + row_sizer->AddSpacer(title_margin); + scrollable_panel_sizer->Add(row_sizer, 0, wxEXPAND | wxTOP, FromDIP(4)); } - - scrollable_panel_sizer->Add(grid_sizer, 1, wxEXPAND | wxALL, FromDIP(20)); + scrollable_panel_sizer->AddSpacer(title_margin); scrollable_panel->SetSizer(scrollable_panel_sizer); main_sizer->Add(scrollable_panel, 1, wxEXPAND); @@ -367,5 +327,227 @@ wxPanel* KBShortcutsDialog::create_page(wxWindow* parent, const ShortcutsItem& s return main_page; } +void KBShortcutsDialog::edit_shortcut(Shortcut shortcut) +{ + ShortcutCaptureDialog dlg(this, shortcut); + if (dlg.ShowModal() != wxID_OK) + return; + const wxString question = wxString::Format(_L("%s is assigned to %s. Reassign it to %s?"), + join_keys(to_wx(dlg.chord().display_parts())), shortcut_names(dlg.conflicts()), _(shortcut_info(shortcut).name)); + if (!take_chord_from(shortcut, dlg.conflicts(), question)) + return; + wxGetApp().shortcuts().bind(shortcut, dlg.chord()); + apply_bindings(); +} + +void KBShortcutsDialog::reset_shortcut(Shortcut shortcut) +{ + const std::vector conflicts = wxGetApp().shortcuts().conflicts(shortcut, shortcut_info(shortcut).default_chord); + const wxString question = wxString::Format(_L("The default %s is assigned to %s. Reassign it to %s?"), + join_keys(to_wx(shortcut_info(shortcut).default_chord.display_parts())), shortcut_names(conflicts), _(shortcut_info(shortcut).name)); + if (!take_chord_from(shortcut, conflicts, question)) + return; + wxGetApp().shortcuts().reset(shortcut); + apply_bindings(); +} + +bool KBShortcutsDialog::take_chord_from(Shortcut shortcut, const std::vector& conflicts, const wxString& question) +{ + if (conflicts.empty()) + return true; + MessageDialog confirm(this, question, _(shortcut_info(shortcut).name), wxICON_QUESTION | wxOK | wxCANCEL); + if (confirm.ShowModal() != wxID_OK) + return false; + for (Shortcut other : conflicts) + wxGetApp().shortcuts().bind(other, KeyChord{}); + return true; +} + +void KBShortcutsDialog::apply_bindings() +{ + const ShortcutRegistry& shortcuts = wxGetApp().shortcuts(); + std::set pages; + for (const EditableRow& row : m_editable_rows) { + const int chord_width = set_chord_labels(row.modifiers, row.key, to_wx(shortcuts.binding(row.shortcut).display_parts())); + row.description->SetLabel(_(shortcut_info(row.shortcut).name)); + row.description->Wrap(m_row_text_width - chord_width); + row.reset->Show(shortcuts.is_customized(row.shortcut)); + pages.insert(row.key->GetParent()); + } + for (wxWindow* page : pages) + page->Layout(); + wxGetApp().on_shortcuts_changed(); +} + +int KBShortcutsDialog::set_chord_labels(wxStaticText* modifiers, wxStaticText* key, std::vector parts) +{ + const wxString last = parts.empty() ? wxString() : parts.back(); + if (!parts.empty()) + parts.pop_back(); + modifiers->SetLabel(parts.empty() ? wxString() : join_keys(parts) + " + "); + modifiers->Show(!parts.empty()); + key->SetLabel(last); + const int key_width = last.length() == 1 ? m_key_slot : key->GetBestSize().x; + key->SetMinSize(wxSize(key_width, -1)); + return (parts.empty() ? 0 : modifiers->GetBestSize().x) + key_width; +} + +void KBShortcutsDialog::open_mouse_preferences(const char* preference) +{ + // Opened from Preferences > Control, the settings are right behind this dialog. + if (auto preferences = dynamic_cast(GetParent()); preferences != nullptr) { + // Runs once this dialog has closed and the focus is back in Preferences. + preferences->CallAfter([preferences, preference] { preferences->select_tab(PreferencesTab::Control, preference); }); + EndModal(wxID_OK); + return; + } + wxGetApp().open_preferences(PreferencesTab::Control, preference); + // A language change rebuilds the main frame, taking this dialog with it. + if (GetParent() != wxGetApp().mainframe) { + EndModal(wxID_CANCEL); + return; + } + for (const PreferenceRow& row : m_preference_rows) + row.description->SetLabel(_(mouse_action(row.preference))); +} + +ShortcutCaptureDialog::ShortcutCaptureDialog(wxWindow* parent, Shortcut shortcut) + : DPIDialog(parent, wxID_ANY, _(shortcut_info(shortcut).name), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE) + , m_shortcut(shortcut) +{ + SetBackgroundColour(*wxWHITE); + wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); + + // A Global shortcut also runs while a text field has the focus, so its hint names the keys it can use. + const bool global = (shortcut_info(shortcut).contexts & context_bit(ShortcutContext::Global)) != 0; + const wxString advice = global_key_advice(); + const wxString typing = _L("Global shortcuts also apply while typing."); + const wxString rule = _L("A key that types a character cannot be a global shortcut."); + m_hint = global ? typing + "\n" + advice : _L("Esc cancels, Enter confirms."); + m_rejection = rule + "\n" + advice; + + // Wide enough for each sentence on a line of its own where the translation allows, within limits. + int width = FromDIP(450); + for (const wxString& sentence : { typing, rule, advice }) { + int extent = 0; + GetTextExtent(sentence, &extent, nullptr, nullptr, nullptr, &wxGetApp().normal_font()); + width = std::max(width, extent); + } + width = std::min(width, FromDIP(550)); + + auto prompt = new Label(this, wxGetApp().normal_font(), wxString::Format(_L("Press the new shortcut for\n\"%s\""), _(shortcut_info(shortcut).name)), LB_AUTO_WRAP); + prompt->SetMinSize(wxSize(width, -1)); + sizer->Add(prompt, 0, wxALL, FromDIP(20)); + + // Keyboard focus stays on this box so the buttons never receive the key presses. + const wxColour box_colour = StateColor::darkModeColorFor(*wxWHITE); + StaticBox* capture = new StaticBox(this, wxID_ANY, wxDefaultPosition, wxSize(width, FromDIP(60)), wxWANTS_CHARS); + capture->SetCornerRadius(FromDIP(4)); + capture->SetBorderColorNormal(StateColor::darkModeColorFor(wxColour("#009688"))); // the focused-input colour, since the box always has the focus + capture->SetBackgroundColorNormal(box_colour); + capture->SetBackgroundColour(box_colour); + wxBoxSizer* capture_sizer = new wxBoxSizer(wxVERTICAL); + m_chord_label = new wxStaticText(capture, wxID_ANY, join_keys(to_wx(wxGetApp().shortcuts().binding(shortcut).display_parts()))); + m_chord_label->SetFont(::Label::Head_14); + m_chord_label->SetBackgroundColour(box_colour); + capture_sizer->AddStretchSpacer(); + capture_sizer->Add(m_chord_label, 0, wxALIGN_CENTER); + capture_sizer->AddStretchSpacer(); + capture->SetSizer(capture_sizer); + capture->Bind(wxEVT_KEY_DOWN, &ShortcutCaptureDialog::on_key, this); + capture->Bind(wxEVT_CHAR, &ShortcutCaptureDialog::on_char, this); + capture->Bind(wxEVT_LEFT_DOWN, [capture](wxMouseEvent&) { capture->SetFocus(); }); + sizer->Add(capture, 0, wxLEFT | wxRIGHT | wxEXPAND, FromDIP(20)); + + m_status = new Label(this, wxGetApp().normal_font(), m_hint, LB_AUTO_WRAP); + m_status->SetMinSize(wxSize(width, 3 * m_status->GetCharHeight())); // room for three lines, so the dialog keeps its size while keys are tried + m_status_colour = m_status->GetForegroundColour(); + sizer->Add(m_status, 0, wxLEFT | wxRIGHT | wxTOP, FromDIP(20)); + + auto dlg_btns = new DialogButtons(this, {"Unbind", "OK", "Cancel"}, "", 1 /*left_aligned*/); + dlg_btns->GetFIRST()->Bind(wxEVT_BUTTON, [this](wxCommandEvent&) { + m_chord = KeyChord{}; + m_conflicts.clear(); + EndModal(wxID_OK); + }); + dlg_btns->GetCANCEL()->Bind(wxEVT_BUTTON, [this](wxCommandEvent&) { EndModal(wxID_CANCEL); }); + m_ok = dlg_btns->GetOK(); + m_ok->Bind(wxEVT_BUTTON, [this](wxCommandEvent&) { EndModal(wxID_OK); }); + m_ok->Enable(false); + sizer->Add(dlg_btns, 0, wxEXPAND | wxTOP, FromDIP(10)); + + SetSizerAndFit(sizer); + CenterOnParent(); + wxGetApp().UpdateDlgDarkUI(this); + capture->CallAfter([capture]() { capture->SetFocus(); }); +} + +void ShortcutCaptureDialog::on_dpi_changed(const wxRect& suggested_rect) +{ + Layout(); + Fit(); +} + +void ShortcutCaptureDialog::on_key(wxKeyEvent& evt) +{ + if (!evt.HasAnyModifiers()) { + if (evt.GetKeyCode() == WXK_ESCAPE) { + EndModal(wxID_CANCEL); + return; + } + if (evt.GetKeyCode() == WXK_RETURN || evt.GetKeyCode() == WXK_NUMPAD_ENTER) { + if (m_ok->IsEnabled()) + EndModal(wxID_OK); + return; + } + } + const KeyChord chord = KeyChord::from_event(evt); + if (!chord.valid()) + return; + if (chord.needs_char_event()) { + evt.Skip(); + return; + } + record(chord); +} + +void ShortcutCaptureDialog::on_char(wxKeyEvent& evt) +{ + const KeyChord chord = KeyChord::from_event(evt); + if (chord.is_punctuation()) + record(chord); +} + +void ShortcutCaptureDialog::record(const KeyChord& chord) +{ + m_chord = chord; + m_chord_label->SetLabel(join_keys(to_wx(chord.display_parts()))); + m_chord_label->GetParent()->Layout(); + + auto reject = [this](const wxString& reason) { + m_status->SetForegroundColour(ERROR_COLOUR); + m_status->SetLabel(reason); + m_conflicts.clear(); + m_ok->Enable(false); + }; + const bool global = (shortcut_info(m_shortcut).contexts & context_bit(ShortcutContext::Global)) != 0; + if (global && !chord.is_menu_accelerator()) { + reject(m_rejection); + } else if (const std::optional owner = wxGetApp().shortcuts().step_owner(m_shortcut, chord); owner.has_value()) { + reject(wxString::Format(_L("Already used as a step of %s."), _(shortcut_info(*owner).name))); + } else { + m_conflicts = wxGetApp().shortcuts().conflicts(m_shortcut, chord); + m_status->SetForegroundColour(m_status_colour); + if (m_conflicts.empty()) + m_status->SetLabel(m_hint); + else + m_status->SetLabel(wxString::Format(_L("Already assigned to %s. Press OK to reassign it."), shortcut_names(m_conflicts))); + m_ok->Enable(true); + } + m_status->Refresh(); // a colour change alone does not repaint + Layout(); + Fit(); +} + } // namespace GUI } // namespace Slic3r diff --git a/src/slic3r/GUI/KBShortcutsDialog.hpp b/src/slic3r/GUI/KBShortcutsDialog.hpp index 9d49cd35c5..3091726147 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.hpp +++ b/src/slic3r/GUI/KBShortcutsDialog.hpp @@ -3,53 +3,120 @@ #include #include +#include #include #include "GUI_Utils.hpp" +#include "Shortcuts.hpp" #include "wxExtensions.hpp" #include +class Button; +class Label; +class TabCtrl; + namespace Slic3r { namespace GUI { -class Select -{ -public: - int m_index; - wxWindow *m_tab_button; - wxWindow *m_tab_text; -}; -WX_DECLARE_HASH_MAP(int, Select *, wxIntegerHash, wxIntegerEqual, SelectHash); - +// Lists every shortcut per context and lets the user rebind the assignable ones. class KBShortcutsDialog : public DPIDialog { - typedef std::pair Shortcut; - typedef std::vector Shortcuts; - typedef std::pair, Shortcuts> ShortcutsItem; - typedef std::vector ShortcutsVec; + // A key the user cannot rebind. + struct FixedKey + { + std::vector keys; // modifier names and the key, shown joined with "+" + const char* description; // untranslated + }; + // A mouse button whose camera action is chosen in Preferences. + struct MouseAction + { + wxString button; + const char* preference; // AppConfig key of the action + }; + struct Row + { + std::variant content; + ShortcutSection section; + }; + struct Page + { + wxString title; + wxString caption; // when the page's keys apply + ShortcutContext context; + std::vector rows; + }; + struct EditableRow + { + Shortcut shortcut; + wxStaticText* description; + wxStaticText* modifiers; + wxStaticText* key; + ScalableButton* reset; + }; + struct PreferenceRow + { + const char* preference; + wxStaticText* description; + }; - ShortcutsVec m_full_shortcuts; - ScalableBitmap m_logo_bmp; - wxStaticBitmap* m_header_bitmap; - std::vector m_pages; + std::vector m_pages; + std::vector m_editable_rows; + std::vector m_preference_rows; + // Row geometry, measured once and shared by every page. + wxSize m_edit_size; // an edit or reset icon + int m_buttons_width = 0; // every row's buttons column, so the right-aligned keys share an edge + int m_row_text_width = 0; // what a description and its chord share; the description wraps at the rest + int m_key_slot = 0; // width of the widest single key, the column single keys line up in + + TabCtrl* m_tabs; + wxSimplebook* m_simplebook; public: - KBShortcutsDialog(); - wxWindow* create_button(int id, wxString text); - void OnSelectTabel(wxCommandEvent &event); - wxPanel *m_panel_selects; - wxBoxSizer *m_sizer_right; - wxSimplebook *m_simplebook; - wxBoxSizer * m_sizer_body; - SelectHash m_hash_selector; + KBShortcutsDialog(wxWindow* parent, ShortcutContext page); // opens on the page of that context protected: void on_dpi_changed(const wxRect &suggested_rect) override; private: - void fill_shortcuts(); - wxPanel* create_header(wxWindow* parent, const wxFont& bold_font); - wxPanel* create_page(wxWindow* parent, const ShortcutsItem& shortcuts, const wxFont& font, const wxFont& bold_font); + void fill_pages(); + wxPanel* create_page(wxWindow* parent, const Page& page); + void edit_shortcut(Shortcut shortcut); + void reset_shortcut(Shortcut shortcut); + // Asks question before unbinding conflicts; false when the user declined. + bool take_chord_from(Shortcut shortcut, const std::vector& conflicts, const wxString& question); + void apply_bindings(); // refreshes the rows and pushes the change to the rest of the app + // Puts a chord on a row's two labels, a single key in the shared column, and returns the width the chord takes. + int set_chord_labels(wxStaticText* modifiers, wxStaticText* key, std::vector parts); + void open_mouse_preferences(const char* preference); +}; + +// Records one key chord for a shortcut, warning about the shortcuts it would take the chord from. +class ShortcutCaptureDialog : public DPIDialog +{ +public: + ShortcutCaptureDialog(wxWindow* parent, Shortcut shortcut); + + // Valid after ShowModal() returned wxID_OK; an invalid chord means "unbind". + const KeyChord& chord() const { return m_chord; } + const std::vector& conflicts() const { return m_conflicts; } + +protected: + void on_dpi_changed(const wxRect& suggested_rect) override; + +private: + void on_key(wxKeyEvent& evt); + void on_char(wxKeyEvent& evt); + void record(const KeyChord& chord); + + Shortcut m_shortcut; + KeyChord m_chord; + std::vector m_conflicts; + wxStaticText* m_chord_label; + wxString m_hint; // what m_status shows while there is nothing to warn about + wxString m_rejection; // what it shows for a key a Global shortcut cannot use + Label* m_status; + wxColour m_status_colour; + Button* m_ok; }; } // namespace GUI diff --git a/src/slic3r/GUI/KeyChord.cpp b/src/slic3r/GUI/KeyChord.cpp new file mode 100644 index 0000000000..cd746d2f92 --- /dev/null +++ b/src/slic3r/GUI/KeyChord.cpp @@ -0,0 +1,314 @@ +#include "KeyChord.hpp" + +#include "GUI.hpp" +#include "I18N.hpp" + +#include + +#include +#include +#include + +namespace Slic3r { namespace GUI { + +namespace { + +constexpr int BINDABLE_MODIFIERS = wxMOD_CONTROL | wxMOD_SHIFT | wxMOD_ALT | wxMOD_RAW_CONTROL; + +struct KeyName +{ + int key; + const char* name; // canonical name, as wx parses it + const char* alias; // accepted when parsing; nullptr when there is none + const char* label; // translation key for KeyChord::display(); nullptr when name is it +}; + +constexpr std::array special_keys{{ + { WXK_BACK, L_CONTEXT("Backspace", "Keyboard Shortcut"), "Back", nullptr }, + { WXK_TAB, L_CONTEXT("Tab", "Keyboard Shortcut"), nullptr, nullptr }, + { WXK_RETURN, L_CONTEXT("Enter", "Keyboard Shortcut"), "Return", nullptr }, + { WXK_ESCAPE, L_CONTEXT("Esc", "Keyboard Shortcut"), "Escape", nullptr }, + { WXK_SPACE, L_CONTEXT("Space", "Keyboard Shortcut"), nullptr, nullptr }, + { WXK_DELETE, L_CONTEXT("Del", "Keyboard Shortcut"), "Delete", nullptr }, + { WXK_INSERT, L_CONTEXT("Ins", "Keyboard Shortcut"), "Insert", nullptr }, + { WXK_HOME, L_CONTEXT("Home", "Keyboard Shortcut"), nullptr, nullptr }, + { WXK_END, L_CONTEXT("End", "Keyboard Shortcut"), nullptr, nullptr }, + { WXK_PAGEUP, L_CONTEXT("PgUp", "Keyboard Shortcut"), "PageUp", nullptr }, + { WXK_PAGEDOWN, L_CONTEXT("PgDn", "Keyboard Shortcut"), "PageDown", nullptr }, + // Displayed as "Arrow Left" and so on, which is what the catalogs translate. + { WXK_LEFT, "Left", nullptr, L_CONTEXT("Arrow Left", "Keyboard Shortcut") }, + { WXK_RIGHT, "Right", nullptr, L_CONTEXT("Arrow Right", "Keyboard Shortcut") }, + { WXK_UP, "Up", nullptr, L_CONTEXT("Arrow Up", "Keyboard Shortcut") }, + { WXK_DOWN, "Down", nullptr, L_CONTEXT("Arrow Down", "Keyboard Shortcut") }, +}}; + +bool equals_ignoring_case(const std::string& a, const char* b) +{ + if (b == nullptr) + return false; + size_t i = 0; + for (; i < a.size() && b[i] != '\0'; ++i) + if (std::tolower(static_cast(a[i])) != std::tolower(static_cast(b[i]))) + return false; + return i == a.size() && b[i] == '\0'; +} + +bool is_letter(int key) { return key >= 'A' && key <= 'Z'; } +bool is_digit(int key) { return key >= '0' && key <= '9'; } +bool is_printable(int key) { return key > ' ' && key < 127; } +bool is_symbol(int key) { return is_printable(key) && !std::isalnum(key); } +bool is_function_key(int key) { return key >= WXK_F1 && key <= WXK_F24; } + +bool is_special(int key) +{ + if (is_function_key(key)) + return true; + return std::any_of(special_keys.begin(), special_keys.end(), [key](const KeyName& k) { return k.key == key; }); +} + +std::string special_key_name(int key) +{ + if (is_function_key(key)) + return "F" + std::to_string(key - WXK_F1 + 1); + for (const KeyName& k : special_keys) + if (k.key == key) + return k.name; + return {}; +} + +std::string special_key_label(int key) +{ + for (const KeyName& k : special_keys) + if (k.key == key) + return _u8L_CONTEXT(k.label != nullptr ? k.label : k.name, "Keyboard Shortcut"); + return special_key_name(key); +} + +int parse_key(const std::string& text) +{ + if (text.size() == 1) { + const int key = static_cast(text[0]); + return is_printable(key) ? std::toupper(key) : WXK_NONE; + } + for (const KeyName& k : special_keys) + if (equals_ignoring_case(text, k.name) || equals_ignoring_case(text, k.alias)) + return k.key; + if ((text[0] == 'F' || text[0] == 'f') && text.size() <= 3 && std::all_of(text.begin() + 1, text.end(), [](char c) { return std::isdigit(static_cast(c)); })) { + const int n = std::stoi(text.substr(1)); + if (n >= 1 && n <= 24) + return WXK_F1 + n - 1; + } + return WXK_NONE; +} + +int parse_modifier(const std::string& text) +{ + if (equals_ignoring_case(text, "Ctrl") || equals_ignoring_case(text, "Control") || equals_ignoring_case(text, "Cmd") || equals_ignoring_case(text, "Command")) + return wxMOD_CONTROL; + if (equals_ignoring_case(text, "Shift")) + return wxMOD_SHIFT; + if (equals_ignoring_case(text, "Alt") || equals_ignoring_case(text, "Option")) + return wxMOD_ALT; + if (equals_ignoring_case(text, "RawCtrl")) + return wxMOD_RAW_CONTROL; + return wxMOD_NONE; +} + +// Numpad keys act as their main-keyboard counterparts, so one binding covers both. +int fold_numpad(int key) +{ + if (key >= WXK_NUMPAD0 && key <= WXK_NUMPAD9) + return '0' + (key - WXK_NUMPAD0); + switch (key) { + case WXK_NUMPAD_ENTER: return WXK_RETURN; + case WXK_NUMPAD_SPACE: return WXK_SPACE; + case WXK_NUMPAD_TAB: return WXK_TAB; + case WXK_NUMPAD_HOME: return WXK_HOME; + case WXK_NUMPAD_END: return WXK_END; + case WXK_NUMPAD_PAGEUP: return WXK_PAGEUP; + case WXK_NUMPAD_PAGEDOWN: return WXK_PAGEDOWN; + case WXK_NUMPAD_LEFT: return WXK_LEFT; + case WXK_NUMPAD_RIGHT: return WXK_RIGHT; + case WXK_NUMPAD_UP: return WXK_UP; + case WXK_NUMPAD_DOWN: return WXK_DOWN; + case WXK_NUMPAD_INSERT: return WXK_INSERT; + case WXK_NUMPAD_DELETE: return WXK_DELETE; + case WXK_NUMPAD_ADD: return '+'; + case WXK_NUMPAD_SUBTRACT: return '-'; + case WXK_NUMPAD_MULTIPLY: return '*'; + case WXK_NUMPAD_DIVIDE: return '/'; + case WXK_NUMPAD_DECIMAL: return '.'; + case WXK_NUMPAD_EQUAL: return '='; + default: return key; + } +} + +// Modifiers in the order the text forms list them; wxMOD_RAW_CONTROL is wxMOD_CONTROL off macOS. +#ifdef __APPLE__ +constexpr std::array MODIFIER_ORDER{ wxMOD_CONTROL, wxMOD_SHIFT, wxMOD_ALT, wxMOD_RAW_CONTROL }; +#else +constexpr std::array MODIFIER_ORDER{ wxMOD_CONTROL, wxMOD_SHIFT, wxMOD_ALT }; +#endif + +const char* canonical_modifier_prefix(int modifier) +{ + if (modifier == wxMOD_CONTROL) + return "Ctrl+"; + if (modifier == wxMOD_SHIFT) + return "Shift+"; + if (modifier == wxMOD_ALT) + return "Alt+"; + return "RawCtrl+"; +} + +template +std::string join_modifiers(int modifiers, Prefix prefix) +{ + std::string out; + for (int modifier : MODIFIER_ORDER) + if (modifiers & modifier) + out += prefix(modifier); + return out; +} + +} // namespace + +bool KeyChord::is_punctuation() const { return is_symbol(key) && modifiers == wxMOD_NONE; } + +bool KeyChord::needs_char_event() const { return is_symbol(key) && (modifiers & ~wxMOD_SHIFT) == 0; } + +bool KeyChord::is_menu_accelerator() const +{ + return valid() && ((modifiers & (wxMOD_CONTROL | wxMOD_ALT | wxMOD_RAW_CONTROL)) != 0 || (!is_printable(key) && key != WXK_SPACE)); +} + +std::string KeyChord::to_string() const +{ + if (!valid()) + return {}; + std::string out = join_modifiers(modifiers, canonical_modifier_prefix); + if (is_printable(key)) + out += char(key); + else + out += special_key_name(key); + return out; +} + +std::optional KeyChord::parse(const std::string& text) +{ + if (text.empty()) + return std::nullopt; + + // The key is whatever follows the last separator; a trailing '+' is the '+' key itself. + size_t key_start = text.size() - 1; + if (text.back() != '+') { + const size_t sep = text.rfind('+'); + key_start = sep == std::string::npos ? 0 : sep + 1; + } + KeyChord chord; + chord.key = parse_key(text.substr(key_start)); + if (chord.key == WXK_NONE) + return std::nullopt; + + const std::string prefix = key_start == 0 ? std::string() : text.substr(0, key_start - 1); + size_t begin = 0; + while (begin < prefix.size()) { + size_t end = prefix.find('+', begin); + if (end == std::string::npos) + end = prefix.size(); + const int modifier = parse_modifier(prefix.substr(begin, end - begin)); + if (modifier == wxMOD_NONE) + return std::nullopt; + chord.modifiers |= modifier; + begin = end + 1; + } + if (is_letter(chord.key) || is_digit(chord.key) || !is_printable(chord.key) || chord.modifiers == wxMOD_NONE) + return chord; + // Shift is folded into the character for punctuation, so "Shift+/" is not accepted. + return (chord.modifiers & wxMOD_SHIFT) ? std::nullopt : std::optional(chord); +} + +std::string KeyChord::display() const +{ + std::string out; + for (const std::string& part : display_parts()) + out += (out.empty() ? "" : "+") + part; + return out; +} + +std::vector KeyChord::display_parts() const +{ + std::vector parts; + if (!valid()) + return parts; + for (int modifier : MODIFIER_ORDER) + if (modifiers & modifier) + parts.push_back(modifier_name(modifier)); + parts.push_back(is_printable(key) ? std::string(1, char(key)) : special_key_label(key)); + return parts; +} + +std::string KeyChord::modifier_prefix(int modifier) +{ + if (modifier == wxMOD_CONTROL) + return shortkey_ctrl_prefix(); + if (modifier == wxMOD_SHIFT) + return _u8L("Shift+"); + if (modifier == wxMOD_ALT) + return shortkey_alt_prefix(); +#ifdef __APPLE__ + if (modifier == wxMOD_RAW_CONTROL) + return u8"⌃+"; +#endif + return {}; +} + +// The catalogue holds the "Ctrl+" prefixes, so the bare name is the prefix without its "+" +// and any space before it ("Strg +" in German). +std::string KeyChord::modifier_name(int modifier) +{ + std::string name = modifier_prefix(modifier); + if (!name.empty() && name.back() == '+') + name.pop_back(); + while (!name.empty() && name.back() == ' ') + name.pop_back(); + return name; +} + +wxAcceleratorEntry KeyChord::to_accelerator_entry(int command) const +{ + int flags = wxACCEL_NORMAL; + if (modifiers & wxMOD_CONTROL) + flags |= wxACCEL_CTRL; + if (modifiers & wxMOD_SHIFT) + flags |= wxACCEL_SHIFT; + if (modifiers & wxMOD_ALT) + flags |= wxACCEL_ALT; +#ifdef __APPLE__ + if (modifiers & wxMOD_RAW_CONTROL) + flags |= wxACCEL_RAW_CTRL; +#endif + return wxAcceleratorEntry(flags, key, command); +} + +KeyChord KeyChord::from_event(const wxKeyEvent& evt) +{ + KeyChord chord; + chord.modifiers = evt.GetModifiers() & BINDABLE_MODIFIERS; + int key = fold_numpad(evt.GetKeyCode()); + + if (evt.GetEventType() == wxEVT_CHAR) { + if (key >= 1 && key <= 26 && evt.ControlDown()) + key = 'A' + key - 1; // Ctrl+letter arrives as the control character + else if (is_symbol(key)) + chord.modifiers &= ~wxMOD_SHIFT; // the character already reflects Shift + } + if (key >= 'a' && key <= 'z') + key -= 'a' - 'A'; + + if (is_printable(key) || is_special(key)) + chord.key = key; + return chord; +} + +}} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/KeyChord.hpp b/src/slic3r/GUI/KeyChord.hpp new file mode 100644 index 0000000000..c7884409eb --- /dev/null +++ b/src/slic3r/GUI/KeyChord.hpp @@ -0,0 +1,64 @@ +#pragma once + +#include +#include + +#include +#include +#include +#include + +class wxKeyEvent; + +namespace Slic3r { namespace GUI { + +// One key press: a key code as wxEVT_KEY_DOWN reports it (letters upper-case, numpad keys +// folded onto their main-keyboard equivalents) plus the wxMOD_* modifiers held with it. +// Printable punctuation is stored as the character it produces, so "+" means the key that +// types "+" on the user's layout. +struct KeyChord +{ + int key = WXK_NONE; + int modifiers = wxMOD_NONE; + + bool valid() const { return key != WXK_NONE; } + bool operator==(const KeyChord& other) const { return key == other.key && modifiers == other.modifiers; } + bool operator!=(const KeyChord& other) const { return !(*this == other); } + + // Bare printable keys other than letters and digits are matched on wxEVT_CHAR, because + // only the char event knows which character a key produces under the active layout. + bool is_punctuation() const; + // True for a printable non-alphanumeric key pressed with nothing but Shift, which only the + // char event that follows can resolve. + bool needs_char_event() const; + // True when Ctrl or Alt is held or the key is non-printable, the chords a menu can own without + // swallowing typing in text fields. + bool is_menu_accelerator() const; + + // Platform-neutral text ("Ctrl+Shift+S") for persistence and wx accelerator strings. + std::string to_string() const; + static std::optional parse(const std::string& text); + + // Text for menus, tooltips and the shortcuts dialog, with translated modifier names and the + // command and option glyphs on macOS. + std::string display() const; + // The pieces display() joins with "+": the modifier names, then the key name. + std::vector display_parts() const; + // Translated text of one wxMOD_* modifier, as a "Ctrl+" prefix or the bare "Ctrl" name. + static std::string modifier_prefix(int modifier); + static std::string modifier_name(int modifier); + + wxAcceleratorEntry to_accelerator_entry(int command) const; + + // Builds the chord a key event describes, or an invalid chord for pure modifier presses and + // keys outside the bindable set. wxEVT_CHAR events are normalized to the key codes + // wxEVT_KEY_DOWN reports for letters, digits and special keys. + static KeyChord from_event(const wxKeyEvent& evt); +}; + +struct KeyChordHash +{ + size_t operator()(const KeyChord& chord) const { return std::hash()((static_cast(chord.modifiers) << 32) | unsigned(chord.key)); } +}; + +}} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 288a666901..38ef3141d6 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -56,6 +56,7 @@ #include "../Utils/PrintHost.hpp" #include "GUI_App.hpp" +#include "Shortcuts.hpp" #include "UnsavedChangesDialog.hpp" #include "PublishSettingsDialog.hpp" #include "MsgDialog.hpp" @@ -310,17 +311,6 @@ static wxIcon main_frame_icon(GUI_App::EAppMode app_mode) wxDEFINE_EVENT(EVT_SYNC_CLOUD_PRESET, SimpleEvent); -#ifdef __APPLE__ -static const wxString ctrl = ("Ctrl+"); -// FIXME: maybe should be using GUI::shortkey_ctrl_prefix() or equivalent? -static const std::string ctrl_t = u8"\u2318+"; // "⌘" (Mac Command) -#else -static const wxString ctrl = _L("Ctrl+"); -// FIXME: maybe should be using GUI::shortkey_ctrl_prefix() or equivalent? -static const wxString ctrl_t = ctrl; -#endif -static const wxString shift = _L("Shift+"); - MainFrame::MainFrame() : DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_STYLE, "mainframe") , m_printhost_queue_dlg(new PrintHostQueueDialog(this)) @@ -730,69 +720,8 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ } return;} #endif - // Orca: open the speed dial from any page with a bare Space. Only when no modifier is held (so - // editing shortcuts like Ctrl+Shift+Space in the canvas still reach it) and the focused window - // doesn't use Space to activate itself (buttons, checkboxes, list/choice controls, text fields), - // so a bare Space there still clicks/toggles instead of being hijacked. Gated by a preference - // (default on) so users can hand Space back to the focused control entirely. - if (wxGetApp().app_config->get_bool("enable_speed_dial") && !evt.CmdDown() && !evt.ShiftDown() && - !evt.AltDown() && evt.GetKeyCode() == WXK_SPACE) { - if (focus_keeps_space(wxWindow::FindFocus())) { - evt.Skip(); // let the focused control keep Space - return; - } - // Defer out of the native key-event stack: open_speed_dial() may create a WebView and - // run script, the same window work the codebase avoids doing on native callbacks. - this->CallAfter([] { wxGetApp().open_speed_dial(); }); - return; - } - if (evt.CmdDown() && evt.GetKeyCode() == 'R') { if (m_slice_enable) { wxGetApp().plater()->update(true, true); wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_SLICE_PLATE)); this->m_tabpanel->SelectPageByName(TAB_ID_PREVIEW); } return; } - if (evt.CmdDown() && evt.ShiftDown() && evt.GetKeyCode() == 'G') { - m_plater->apply_background_progress(); - m_print_enable = get_enable_print_status(); - m_print_btn->Enable(m_print_enable); - if (m_print_enable) { - if (wxGetApp().preset_bundle->use_bbl_network() || wxGetApp().app_config->get_bool("use_printer_agents")) - wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_PRINT_PLATE)); - else - wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_SEND_GCODE)); - } + if (!handle_global_shortcut(KeyChord::from_event(evt))) evt.Skip(); - return; - } - else if (evt.CmdDown() && evt.GetKeyCode() == 'G') { if (can_export_gcode()) { wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_EXPORT_SLICED_FILE)); } evt.Skip(); return; } - if (evt.CmdDown() && evt.GetKeyCode() == 'J') { m_printhost_queue_dlg->Show(); return; } - if (evt.CmdDown() && evt.GetKeyCode() == 'N') { m_plater->new_project(); return;} - if (evt.CmdDown() && evt.GetKeyCode() == 'O') { m_plater->load_project(); return;} - if (evt.CmdDown() && evt.ShiftDown() && evt.GetKeyCode() == 'S') { if (can_save_as()) m_plater->save_project(true); return;} - else if (evt.CmdDown() && evt.GetKeyCode() == 'S') { if (can_save()) m_plater->save_project(); return;} - if (evt.CmdDown() && evt.GetKeyCode() == 'F') { - if (m_plater && is_prepare_or_preview_tab()) { - m_plater->sidebar().can_search(); - } - } -#ifdef __APPLE__ - if (evt.CmdDown() && evt.GetKeyCode() == ',') -#else - if (evt.CmdDown() && evt.GetKeyCode() == 'P') -#endif - { - // Orca: Use GUI_App::open_preferences instead of direct call so windows associations are updated on exit - wxGetApp().open_preferences(); - plater()->get_current_canvas3D()->force_set_focus(); - return; - } - - if (evt.CmdDown() && evt.GetKeyCode() == 'I' && !evt.ShiftDown()) { - if (!can_add_models()) return; - if (m_plater) { m_plater->add_file(); } - return; - } - if (evt.CmdDown() && evt.ShiftDown() && evt.GetKeyCode() == 'E') { - if (can_export_model()) publish_project(); - return; - } - evt.Skip(); }); Bind(wxEVT_SHOW, [](wxShowEvent &evt) { @@ -813,6 +742,96 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ bind_diff_dialog(); } +bool MainFrame::handle_global_shortcut(const KeyChord& chord) +{ + const std::optional shortcut = wxGetApp().shortcuts().lookup(ShortcutContext::Global, chord); + if (!shortcut.has_value()) + return false; + + switch (*shortcut) { + case Shortcut::SlicePlate: + if (m_slice_enable) { + wxGetApp().plater()->update(true, true); + wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_SLICE_PLATE)); + m_tabpanel->SelectPageByName(TAB_ID_PREVIEW); + } + break; + case Shortcut::PrintPlate: + m_plater->apply_background_progress(); + m_print_enable = get_enable_print_status(); + m_print_btn->Enable(m_print_enable); + if (m_print_enable) { + if (wxGetApp().preset_bundle->use_bbl_network() || wxGetApp().app_config->get_bool("use_printer_agents")) + wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_PRINT_PLATE)); + else + wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_SEND_GCODE)); + } + return false; + case Shortcut::ExportSlicedFile: + if (can_export_gcode()) + wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_EXPORT_SLICED_FILE)); + return false; + case Shortcut::PrintHostQueue: m_printhost_queue_dlg->Show(); break; + case Shortcut::SpeedDial: + if (!wxGetApp().app_config->get_bool("enable_speed_dial") || (chord == KeyChord{ WXK_SPACE } && focus_keeps_space(wxWindow::FindFocus()))) + return false; + // Deferred out of the native key-event stack: open_speed_dial() may create a WebView and run script. + CallAfter([] { wxGetApp().open_speed_dial(); }); + break; + case Shortcut::NewProject: m_plater->new_project(); break; + case Shortcut::OpenProject: m_plater->load_project(); break; + case Shortcut::SaveProjectAs: + if (can_save_as()) + m_plater->save_project(true); + break; + case Shortcut::SaveProject: + if (can_save()) + m_plater->save_project(); + break; + case Shortcut::Search: + if (m_plater && is_prepare_or_preview_tab()) + m_plater->sidebar().can_search(); + return false; + case Shortcut::Preferences: + // Orca: Use GUI_App::open_preferences instead of direct call so windows associations are updated on exit + wxGetApp().open_preferences(); + plater()->get_current_canvas3D()->force_set_focus(); + break; + case Shortcut::ImportModel: + if (can_add_models() && m_plater) + m_plater->add_file(); + break; + case Shortcut::Publish3mf: + if (can_export_model()) + publish_project(); + break; + case Shortcut::ShowLabels: + if (m_plater && m_plater->is_view3D_shown()) { + m_plater->show_view3D_labels(!m_plater->are_view3D_labels_shown()); + m_plater->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT)); + } + break; + case Shortcut::ViewDefault: + if (m_plater) { + select_view("plate"); + m_plater->get_current_canvas3D()->zoom_to_bed(); + } + break; + case Shortcut::ViewTop: select_view("top"); break; + case Shortcut::ViewBottom: select_view("bottom"); break; + case Shortcut::ViewFront: select_view("front"); break; + case Shortcut::ViewRear: select_view("rear"); break; + case Shortcut::ViewLeft: select_view("left"); break; + case Shortcut::ViewRight: select_view("right"); break; + case Shortcut::ViewPlate: + if (m_plater) + m_plater->get_current_canvas3D()->select_plate(); + break; + default: return false; + } + return true; +} + void MainFrame::bind_diff_dialog() { auto get_tab = [](Preset::Type type) { @@ -2766,13 +2785,31 @@ static const wxString sep = " - "; static const wxString sep = "\t"; #endif -static wxMenu* generate_help_menu() +wxString MainFrame::shortcut_label(const wxString& label, Shortcut shortcut, bool accelerator) +{ + const ShortcutRegistry& shortcuts = wxGetApp().shortcuts(); + if (accelerator) { + const std::string accel = shortcuts.accelerator(shortcut); + if (!accel.empty()) + return label + " " + from_u8(accel); + } + const std::string text = shortcuts.display(shortcut); + return text.empty() ? label : label + sep + from_u8(text); +} + +void MainFrame::update_shortcut_labels() +{ + for (const ShortcutMenuItem& entry : m_shortcut_menu_items) + entry.item->SetItemLabel(shortcut_label(entry.label, entry.shortcut, entry.accelerator)); +} + +wxMenu* MainFrame::generate_help_menu() { wxMenu* helpMenu = new wxMenu(); // shortcut key - append_menu_item(helpMenu, wxID_ANY, _L("Keyboard Shortcuts") + sep + "&?", _L("Show the list of keyboard shortcuts"), - [](wxCommandEvent&) { wxGetApp().keyboard_shortcuts(); }); + append_shortcut_item(helpMenu, Shortcut::KeyboardShortcuts, false, _L("Keyboard Shortcuts"), _L("Show the list of keyboard shortcuts"), + [](wxCommandEvent&) { wxGetApp().keyboard_shortcuts(ShortcutContext::Global); }); // Show Beginner's Tutorial append_menu_item(helpMenu, wxID_ANY, _L("Setup Wizard"), _L("Setup Wizard"), [](wxCommandEvent &) {wxGetApp().ShowUserGuide();}); @@ -2854,29 +2891,28 @@ static void add_common_publish_menu_items(wxMenu* publish_menu, MainFrame* mainF #endif } -static void add_common_view_menu_items(wxMenu* view_menu, MainFrame* mainFrame, std::function can_change_view) +void MainFrame::add_common_view_menu_items(wxMenu* view_menu, std::function can_change_view) { - // The camera control accelerators are captured by GLCanvas3D::on_char(). - append_menu_item(view_menu, wxID_ANY, _L("Default View") + "\t" + ctrl + "0", _L("Default View"), [mainFrame](wxCommandEvent&) { - mainFrame->select_view("plate"); - mainFrame->plater()->get_current_canvas3D()->zoom_to_bed(); + append_shortcut_item(view_menu, Shortcut::ViewDefault, true, _L("Default View"), _L("Default View"), [this](wxCommandEvent&) { + select_view("plate"); + plater()->get_current_canvas3D()->zoom_to_bed(); }, - "", nullptr, [can_change_view]() { return can_change_view(); }, mainFrame); + "", nullptr, [can_change_view]() { return can_change_view(); }, this); //view_menu->AppendSeparator(); //TRN To be shown in the main menu View->Top - append_menu_item(view_menu, wxID_ANY, _L_CONTEXT("Top", "Camera View") + "\t" + ctrl + "1", _L("Top View"), [mainFrame](wxCommandEvent&) { mainFrame->select_view("top"); }, - "", nullptr, [can_change_view]() { return can_change_view(); }, mainFrame); + append_shortcut_item(view_menu, Shortcut::ViewTop, true, _L_CONTEXT("Top", "Camera View"), _L("Top View"), [this](wxCommandEvent&) { select_view("top"); }, + "", nullptr, [can_change_view]() { return can_change_view(); }, this); //TRN To be shown in the main menu View->Bottom - append_menu_item(view_menu, wxID_ANY, _L_CONTEXT("Bottom", "Camera View") + "\t" + ctrl + "2", _L("Bottom View"), [mainFrame](wxCommandEvent&) { mainFrame->select_view("bottom"); }, - "", nullptr, [can_change_view]() { return can_change_view(); }, mainFrame); - append_menu_item(view_menu, wxID_ANY, _L_CONTEXT("Front", "Camera View") + "\t" + ctrl + "3", _L("Front View"), [mainFrame](wxCommandEvent&) { mainFrame->select_view("front"); }, - "", nullptr, [can_change_view]() { return can_change_view(); }, mainFrame); - append_menu_item(view_menu, wxID_ANY, _L_CONTEXT("Rear", "Camera View") + "\t" + ctrl + "4", _L("Rear View"), [mainFrame](wxCommandEvent&) { mainFrame->select_view("rear"); }, - "", nullptr, [can_change_view]() { return can_change_view(); }, mainFrame); - append_menu_item(view_menu, wxID_ANY, _L_CONTEXT("Left", "Camera View") + "\t" + ctrl + "5", _L("Left View"),[mainFrame](wxCommandEvent &) {mainFrame->select_view("left"); }, - "", nullptr, [can_change_view]() { return can_change_view(); }, mainFrame); - append_menu_item(view_menu, wxID_ANY, _L_CONTEXT("Right", "Camera View") + "\t" + ctrl + "6", _L("Right View"),[mainFrame](wxCommandEvent &) { mainFrame->select_view("right"); }, - "", nullptr, [can_change_view]() { return can_change_view(); }, mainFrame); + append_shortcut_item(view_menu, Shortcut::ViewBottom, true, _L_CONTEXT("Bottom", "Camera View"), _L("Bottom View"), [this](wxCommandEvent&) { select_view("bottom"); }, + "", nullptr, [can_change_view]() { return can_change_view(); }, this); + append_shortcut_item(view_menu, Shortcut::ViewFront, true, _L_CONTEXT("Front", "Camera View"), _L("Front View"), [this](wxCommandEvent&) { select_view("front"); }, + "", nullptr, [can_change_view]() { return can_change_view(); }, this); + append_shortcut_item(view_menu, Shortcut::ViewRear, true, _L_CONTEXT("Rear", "Camera View"), _L("Rear View"), [this](wxCommandEvent&) { select_view("rear"); }, + "", nullptr, [can_change_view]() { return can_change_view(); }, this); + append_shortcut_item(view_menu, Shortcut::ViewLeft, true, _L_CONTEXT("Left", "Camera View"), _L("Left View"), [this](wxCommandEvent &) { select_view("left"); }, + "", nullptr, [can_change_view]() { return can_change_view(); }, this); + append_shortcut_item(view_menu, Shortcut::ViewRight, true, _L_CONTEXT("Right", "Camera View"), _L("Right View"), [this](wxCommandEvent &) { select_view("right"); }, + "", nullptr, [can_change_view]() { return can_change_view(); }, this); } void MainFrame::init_menubar_as_editor() @@ -2895,17 +2931,17 @@ void MainFrame::init_menubar_as_editor() [this] { return m_plater != nullptr && wxGetApp().app_config->get("app", "single_instance") == "false"; }, this); #endif // New Project - append_menu_item(fileMenu, wxID_ANY, _L("New Project") + "\t" + ctrl + "N", _L("Start a new project"), + append_shortcut_item(fileMenu, Shortcut::NewProject, true, _L("New Project"), _L("Start a new project"), [this](wxCommandEvent&) { if (m_plater) m_plater->new_project(); }, "", nullptr, [this](){return can_start_new_project(); }, this); // Open Project #ifndef __APPLE__ - append_menu_item(fileMenu, wxID_ANY, _L("Open Project") + dots + "\t" + ctrl + "O", _L("Open a project file"), + append_shortcut_item(fileMenu, Shortcut::OpenProject, true, _L("Open Project") + dots, _L("Open a project file"), [this](wxCommandEvent&) { if (m_plater) m_plater->load_project(); }, "menu_open", nullptr, [this](){return can_open_project(); }, this); #else - append_menu_item(fileMenu, wxID_ANY, _L("Open Project") + dots + "\t" + ctrl + "O", _L("Open a project file"), + append_shortcut_item(fileMenu, Shortcut::OpenProject, true, _L("Open Project") + dots, _L("Open a project file"), [this](wxCommandEvent&) { if (m_plater) m_plater->load_project(); }, "", nullptr, [this](){return can_open_project(); }, this); #endif @@ -2932,21 +2968,21 @@ void MainFrame::init_menubar_as_editor() // BBS: close save project #ifndef __APPLE__ - append_menu_item(fileMenu, wxID_ANY, _L("Save Project") + "\t" + ctrl + "S", _L("Save current project to file"), + append_shortcut_item(fileMenu, Shortcut::SaveProject, true, _L("Save Project"), _L("Save current project to file"), [this](wxCommandEvent&) { if (m_plater) m_plater->save_project(); }, "menu_save", nullptr, [this](){return m_plater != nullptr && can_save(); }, this); #else - append_menu_item(fileMenu, wxID_ANY, _L("Save Project") + "\t" + ctrl + "S", _L("Save current project to file"), + append_shortcut_item(fileMenu, Shortcut::SaveProject, true, _L("Save Project"), _L("Save current project to file"), [this](wxCommandEvent&) { if (m_plater) m_plater->save_project(); }, "", nullptr, [this](){return m_plater != nullptr && can_save(); }, this); #endif #ifndef __APPLE__ - append_menu_item(fileMenu, wxID_ANY, _L("Save Project as") + dots + "\t" + ctrl + shift + "S", _L("Save current project as"), + append_shortcut_item(fileMenu, Shortcut::SaveProjectAs, true, _L("Save Project as") + dots, _L("Save current project as"), [this](wxCommandEvent&) { if (m_plater) m_plater->save_project(true); }, "menu_save", nullptr, [this](){return m_plater != nullptr && can_save_as(); }, this); #else - append_menu_item(fileMenu, wxID_ANY, _L("Save Project as") + dots + "\t" + ctrl + shift + "S", _L("Save current project as"), + append_shortcut_item(fileMenu, Shortcut::SaveProjectAs, true, _L("Save Project as") + dots, _L("Save current project as"), [this](wxCommandEvent&) { if (m_plater) m_plater->save_project(true); }, "", nullptr, [this](){return m_plater != nullptr && can_save_as(); }, this); #endif @@ -2956,11 +2992,11 @@ void MainFrame::init_menubar_as_editor() auto publish_handler = [this](wxCommandEvent&) { publish_project(); }; #ifndef __APPLE__ - append_menu_item(fileMenu, wxID_ANY, _L("Publish 3MF") + dots + "\t" + ctrl + shift + "E", _L("Export a 3MF file with the selected settings embedded"), + append_shortcut_item(fileMenu, Shortcut::Publish3mf, true, _L("Publish 3MF") + dots, _L("Export a 3MF file with the selected settings embedded"), publish_handler, "menu_publish", nullptr, [this](){return can_export_model(); }, this); #else - append_menu_item(fileMenu, wxID_ANY, _L("Publish 3MF") + dots + "\t" + ctrl + shift + "E", _L("Export a 3MF file with the selected settings embedded"), + append_shortcut_item(fileMenu, Shortcut::Publish3mf, true, _L("Publish 3MF") + dots, _L("Export a 3MF file with the selected settings embedded"), publish_handler, "", nullptr, [this](){return can_export_model(); }, this); #endif @@ -2971,13 +3007,13 @@ void MainFrame::init_menubar_as_editor() // BBS wxMenu *import_menu = new wxMenu(); #ifndef __APPLE__ - append_menu_item(import_menu, wxID_ANY, _L("Import 3MF/STL/STEP/SVG/OBJ/AMF") + dots + "\t" + ctrl + "I", _L("Load a model"), + append_shortcut_item(import_menu, Shortcut::ImportModel, true, _L("Import 3MF/STL/STEP/SVG/OBJ/AMF") + dots, _L("Load a model"), [this](wxCommandEvent&) { if (m_plater) { m_plater->add_file(); } }, "menu_import", nullptr, [this](){return can_add_models(); }, this); #else - append_menu_item(import_menu, wxID_ANY, _L("Import 3MF/STL/STEP/SVG/OBJ/AMF") + dots + "\t" + ctrl + "I", _L("Load a model"), + append_shortcut_item(import_menu, Shortcut::ImportModel, true, _L("Import 3MF/STL/STEP/SVG/OBJ/AMF") + dots, _L("Load a model"), [this](wxCommandEvent&) { if (m_plater) { m_plater->add_model(); } }, "", nullptr, [this](){return can_add_models(); }, this); #endif @@ -3009,7 +3045,7 @@ void MainFrame::init_menubar_as_editor() [this](wxCommandEvent&) { if (m_plater) m_plater->export_core_3mf(); }, "menu_export_sliced_file", nullptr, [this](){return can_export_model(); }, this); // BBS export .gcode.3mf - append_menu_item(export_menu, wxID_ANY, _L("Export plate sliced file") + dots + "\t" + ctrl + "G", _L("Export current sliced file"), + append_shortcut_item(export_menu, Shortcut::ExportSlicedFile, true, _L("Export plate sliced file") + dots, _L("Export current sliced file"), [this](wxCommandEvent&) { if (m_plater) wxPostEvent(m_plater, SimpleEvent(EVT_GLTOOLBAR_EXPORT_SLICED_FILE)); }, "menu_export_sliced_file", nullptr, [this](){return can_export_gcode(); }, this); @@ -3059,37 +3095,37 @@ void MainFrame::init_menubar_as_editor() }; #ifndef __APPLE__ // BBS undo - append_menu_item(editMenu, wxID_ANY, _L("Undo") + "\t" + ctrl + "Z", + append_shortcut_item(editMenu, Shortcut::Undo, true, _L("Undo"), _L("Undo"), [this](wxCommandEvent&) { m_plater->undo(); }, "menu_undo", nullptr, [this](){return m_plater->can_undo(); }, this); // BBS redo - append_menu_item(editMenu, wxID_ANY, _L("Redo") + "\t" + ctrl + "Y", + append_shortcut_item(editMenu, Shortcut::Redo, true, _L("Redo"), _L("Redo"), [this](wxCommandEvent&) { m_plater->redo(); }, "menu_redo", nullptr, [this](){return m_plater->can_redo(); }, this); editMenu->AppendSeparator(); // BBS Cut TODO - append_menu_item(editMenu, wxID_ANY, _L("Cut") + "\t" + ctrl + "X", + append_shortcut_item(editMenu, Shortcut::Cut, true, _L("Cut"), _L("Cut selection to clipboard"), [this](wxCommandEvent&) {m_plater->cut_selection_to_clipboard(); }, "menu_cut", nullptr, [this]() {return m_plater->can_copy_to_clipboard(); }, this); // BBS Copy - append_menu_item(editMenu, wxID_ANY, _L("Copy") + "\t" + ctrl + "C", + append_shortcut_item(editMenu, Shortcut::Copy, true, _L("Copy"), _L("Copy selection to clipboard"), [this](wxCommandEvent&) { m_plater->copy_selection_to_clipboard(); }, "menu_copy", nullptr, [this](){return m_plater->can_copy_to_clipboard(); }, this); // BBS Paste - append_menu_item(editMenu, wxID_ANY, _L("Paste") + "\t" + ctrl + "V", + append_shortcut_item(editMenu, Shortcut::Paste, true, _L("Paste"), _L("Paste clipboard"), [this](wxCommandEvent&) { m_plater->paste_from_clipboard(); }, "menu_paste", nullptr, [this](){return m_plater->can_paste_from_clipboard(); }, this); // BBS Delete selected - append_menu_item(editMenu, wxID_ANY, _L("Delete Selected") + "\t" + _L_CONTEXT("Del", "Keyboard Shortcut"), + append_shortcut_item(editMenu, Shortcut::DeleteSelected, true, _L("Delete Selected"), _L("Deletes the current selection"),[this](wxCommandEvent&) { m_plater->remove_selected(); }, "menu_remove", nullptr, [this](){return can_delete(); }, this); //BBS: delete all - append_menu_item(editMenu, wxID_ANY, _L("Delete All") + "\t" + ctrl + "D", + append_shortcut_item(editMenu, Shortcut::DeleteAll, true, _L("Delete All"), _L("Deletes all objects"),[this](wxCommandEvent&) { m_plater->delete_all_objects_from_model(); }, "menu_remove", nullptr, [this](){return can_delete_all(); }, this); editMenu->AppendSeparator(); // BBS Clone Selected - append_menu_item(editMenu, wxID_ANY, _L("Clone Selected") /*+ "\t" + ctrl + "M"*/, + append_shortcut_item(editMenu, Shortcut::CloneSelected, true, _L("Clone Selected"), _L("Clone copies of selections"),[this](wxCommandEvent&) { m_plater->clone_selection(); }, @@ -3103,7 +3139,7 @@ void MainFrame::init_menubar_as_editor() editMenu->AppendSeparator(); #else // BBS undo - append_menu_item(editMenu, wxID_ANY, _L("Undo") + sep + ctrl_t + "Z", + append_shortcut_item(editMenu, Shortcut::Undo, false, _L("Undo"), _L("Undo"), [this, handle_key_event](wxCommandEvent&) { wxKeyEvent e; e.SetEventType(wxEVT_KEY_DOWN); @@ -3115,7 +3151,7 @@ void MainFrame::init_menubar_as_editor() m_plater->undo(); }, "", nullptr, [this](){return m_plater->can_undo(); }, this); // BBS redo - append_menu_item(editMenu, wxID_ANY, _L("Redo") + sep + ctrl_t + "Y", + append_shortcut_item(editMenu, Shortcut::Redo, false, _L("Redo"), _L("Redo"), [this, handle_key_event](wxCommandEvent&) { wxKeyEvent e; e.SetEventType(wxEVT_KEY_DOWN); @@ -3128,7 +3164,7 @@ void MainFrame::init_menubar_as_editor() "", nullptr, [this](){return m_plater->can_redo(); }, this); editMenu->AppendSeparator(); // BBS Cut TODO - append_menu_item(editMenu, wxID_ANY, _L("Cut") + sep + ctrl_t + "X", + append_shortcut_item(editMenu, Shortcut::Cut, false, _L("Cut"), _L("Cut selection to clipboard"), [this, handle_key_event](wxCommandEvent&) { wxKeyEvent e; e.SetEventType(wxEVT_KEY_DOWN); @@ -3140,7 +3176,7 @@ void MainFrame::init_menubar_as_editor() m_plater->cut_selection_to_clipboard(); }, "", nullptr, [this]() {return m_plater->can_copy_to_clipboard(); }, this); // BBS Copy - append_menu_item(editMenu, wxID_ANY, _L("Copy") + sep + ctrl_t + "C", + append_shortcut_item(editMenu, Shortcut::Copy, false, _L("Copy"), _L("Copy selection to clipboard"), [this, handle_key_event](wxCommandEvent&) { wxKeyEvent e; e.SetEventType(wxEVT_KEY_DOWN); @@ -3152,7 +3188,7 @@ void MainFrame::init_menubar_as_editor() m_plater->copy_selection_to_clipboard(); }, "", nullptr, [this](){return m_plater->can_copy_to_clipboard(); }, this); // BBS Paste - append_menu_item(editMenu, wxID_ANY, _L("Paste") + sep + ctrl_t + "V", + append_shortcut_item(editMenu, Shortcut::Paste, false, _L("Paste"), _L("Paste clipboard"), [this, handle_key_event](wxCommandEvent&) { wxKeyEvent e; e.SetEventType(wxEVT_KEY_DOWN); @@ -3165,14 +3201,14 @@ void MainFrame::init_menubar_as_editor() "", nullptr, [this](){return m_plater->can_paste_from_clipboard(); }, this); #if 0 // BBS Delete selected - append_menu_item(editMenu, wxID_ANY, _L("Delete Selected") + "\t" + _L_CONTEXT("Backspace", "Keyboard Shortcut"), + append_shortcut_item(editMenu, Shortcut::DeleteSelected, true, _L("Delete Selected"), _L("Deletes the current selection"),[this](wxCommandEvent&) { m_plater->remove_selected(); }, "", nullptr, [this](){return can_delete(); }, this); #endif //BBS: delete all - append_menu_item(editMenu, wxID_ANY, _L("Delete All") + "\t" + ctrl + "D", + append_shortcut_item(editMenu, Shortcut::DeleteAll, true, _L("Delete All"), _L("Deletes all objects"),[this, handle_key_event](wxCommandEvent&) { wxKeyEvent e; e.SetEventType(wxEVT_KEY_DOWN); @@ -3185,7 +3221,7 @@ void MainFrame::init_menubar_as_editor() "", nullptr, [this](){return can_delete_all(); }, this); editMenu->AppendSeparator(); // BBS Clone Selected - append_menu_item(editMenu, wxID_ANY, _L("Clone Selected") + "\t" + ctrl + "K", + append_shortcut_item(editMenu, Shortcut::CloneSelected, true, _L("Clone Selected"), _L("Clone copies of selections"),[this, handle_key_event](wxCommandEvent&) { wxKeyEvent e; e.SetEventType(wxEVT_KEY_DOWN); @@ -3208,7 +3244,7 @@ void MainFrame::init_menubar_as_editor() #endif // BBS Select All - append_menu_item(editMenu, wxID_ANY, _L("Select All") + sep + ctrl_t + "A", + append_shortcut_item(editMenu, Shortcut::SelectAll, false, _L("Select All"), _L("Selects all objects"), [this, handle_key_event](wxCommandEvent&) { wxKeyEvent e; e.SetEventType(wxEVT_KEY_DOWN); @@ -3260,7 +3296,7 @@ void MainFrame::init_menubar_as_editor() wxMenu* viewMenu = nullptr; if (m_plater) { viewMenu = new wxMenu(); - add_common_view_menu_items(viewMenu, this, std::bind(&MainFrame::can_change_view, this)); + add_common_view_menu_items(viewMenu, std::bind(&MainFrame::can_change_view, this)); viewMenu->AppendSeparator(); //BBS perspective view @@ -3291,13 +3327,14 @@ void MainFrame::init_menubar_as_editor() []() { return wxGetApp().app_config->get_bool("auto_perspective"); }, this); viewMenu->AppendSeparator(); - append_menu_check_item(viewMenu, wxID_ANY, _L("Show &G-code Window") + sep + "C", _L("Show G-code window in Preview scene."), + wxMenuItem* gcode_window = append_menu_check_item(viewMenu, wxID_ANY, shortcut_label(_L("Show &G-code Window"), Shortcut::ToggleGcodeWindow, true), _L("Show G-code window in Preview scene."), [this](wxCommandEvent &) { wxGetApp().toggle_show_gcode_window(); m_plater->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT)); }, this, [this]() { return m_tabpanel->GetSelectedPageName() == TAB_ID_PREVIEW; }, []() { return wxGetApp().show_gcode_window(); }, this); + m_shortcut_menu_items.push_back({ gcode_window, Shortcut::ToggleGcodeWindow, _L("Show &G-code Window"), true }); append_menu_check_item( viewMenu, wxID_ANY, _L("Show 3D Navigator"), _L("Show 3D navigator in Prepare and Preview scene."), @@ -3325,9 +3362,10 @@ void MainFrame::init_menubar_as_editor() this); viewMenu->AppendSeparator(); - append_menu_check_item(viewMenu, wxID_ANY, _L("Show &Labels") + "\t" + ctrl + "E", _L("Show object labels in 3D scene."), + wxMenuItem* show_labels = append_menu_check_item(viewMenu, wxID_ANY, shortcut_label(_L("Show &Labels"), Shortcut::ShowLabels, true), _L("Show object labels in 3D scene."), [this](wxCommandEvent&) { m_plater->show_view3D_labels(!m_plater->are_view3D_labels_shown()); m_plater->get_current_canvas3D()->post_event(SimpleEvent(wxEVT_PAINT)); }, this, [this]() { return m_plater->is_view3D_shown(); }, [this]() { return m_plater->are_view3D_labels_shown(); }, this); + m_shortcut_menu_items.push_back({ show_labels, Shortcut::ShowLabels, _L("Show &Labels"), true }); append_menu_check_item(viewMenu, wxID_ANY, _L("Show &Overhang"), _L("Show object overhang highlight in 3D scene."), [this](wxCommandEvent &) { @@ -3372,8 +3410,6 @@ void MainFrame::init_menubar_as_editor() //auto preference_item = new wxMenuItem(parent_menu, OrcaSlicerMenuPreferences + bambu_studio_id_base, _L("Preferences") + "\t" + ctrl + ",", ""); #else wxMenu* parent_menu = m_topbar->GetTopMenu(); - auto preference_item = new wxMenuItem(parent_menu, ConfigMenuPreferences + config_id_base, _L("Preferences") + "\t" + ctrl + "P", ""); - #endif #ifdef __APPLE__ @@ -3382,15 +3418,15 @@ void MainFrame::init_menubar_as_editor() parent_menu, wxID_ANY, _L(about_title), "", [](wxCommandEvent &) { Slic3r::GUI::about();}, "", nullptr, []() { return true; }, this, 0); - append_menu_item( - parent_menu, wxID_ANY, _L("Preferences") + "\t" + ctrl + ",", "", + append_shortcut_item( + parent_menu, Shortcut::Preferences, true, _L("Preferences"), "", [](wxCommandEvent &) { wxGetApp().open_preferences(); }, "", nullptr, []() { return true; }, this, 1); parent_menu->AppendSeparator(); - append_menu_item( - parent_menu, wxID_ANY, _L("Open speed dial...") + sep + "Space", "", + append_shortcut_item( + parent_menu, Shortcut::SpeedDial, false, _L("Open speed dial..."), "", [](wxCommandEvent &) { wxGetApp().open_speed_dial(); }, "", nullptr, []() { return true; }, this); //parent_menu->Insert(1, preference_item); @@ -3406,8 +3442,8 @@ void MainFrame::init_menubar_as_editor() m_topbar->AddDropDownSubMenu(viewMenu, _L("View")); //BBS add Preference - append_menu_item( - m_topbar->GetTopMenu(), wxID_ANY, _L("Preferences") + "\t" + ctrl + "P", "", + append_shortcut_item( + m_topbar->GetTopMenu(), Shortcut::Preferences, true, _L("Preferences"), "", [](wxCommandEvent &) { // Orca: Use GUI_App::open_preferences instead of direct call so windows associations are updated on exit wxGetApp().open_preferences(); @@ -3417,8 +3453,8 @@ void MainFrame::init_menubar_as_editor() auto top_menu = m_topbar->GetTopMenu(); top_menu->AppendSeparator(); - append_menu_item( - top_menu, wxID_ANY, _L("Open speed dial...") + "\t" + "Space", "", + append_shortcut_item( + top_menu, Shortcut::SpeedDial, false, _L("Open speed dial..."), "", [](wxCommandEvent &) { wxGetApp().open_speed_dial(); }, "", nullptr, []() { return true; }, this); top_menu->AppendSeparator(); @@ -3524,8 +3560,8 @@ void MainFrame::init_menubar_as_editor() #else // On Mac, the Apple menu ignores non-standard custom items, so add Preset Bundle to the File menu fileMenu->AppendSeparator(); - append_menu_item( - fileMenu, wxID_ANY, _L("Open speed dial...") + sep + "Space", "", + append_shortcut_item( + fileMenu, Shortcut::SpeedDial, false, _L("Open speed dial..."), "", [](wxCommandEvent&) { wxGetApp().open_speed_dial(); }, "", nullptr, []() { return true; }, this); append_menu_item( @@ -3728,7 +3764,7 @@ void MainFrame::init_menubar_as_gcodeviewer() wxMenu* viewMenu = nullptr; if (m_plater != nullptr) { viewMenu = new wxMenu(); - add_common_view_menu_items(viewMenu, this, std::bind(&MainFrame::can_change_view, this)); + add_common_view_menu_items(viewMenu, std::bind(&MainFrame::can_change_view, this)); } // helpmenu diff --git a/src/slic3r/GUI/MainFrame.hpp b/src/slic3r/GUI/MainFrame.hpp index 6851935059..66f3b31263 100644 --- a/src/slic3r/GUI/MainFrame.hpp +++ b/src/slic3r/GUI/MainFrame.hpp @@ -74,6 +74,8 @@ class DesignPanel; class MainFrame; class WebViewPanel; class ParamsDialog; +enum class Shortcut : uint8_t; +struct KeyChord; #ifdef __WXGTK__ class ResizeEdgePanel; #endif @@ -195,6 +197,29 @@ class MainFrame : public DPIFrame // vector of a MenuBar items changeable in respect to printer technology std::vector m_changeable_menu_items; + // Menu items whose label shows a key binding; update_shortcut_labels() rewrites them. + struct ShortcutMenuItem + { + wxMenuItem* item; + Shortcut shortcut; + wxString label; + bool accelerator; // false keeps the binding display-only on macOS, where the menu bar's accelerators are live + }; + std::vector m_shortcut_menu_items; + + wxString shortcut_label(const wxString& label, Shortcut shortcut, bool accelerator); + template + wxMenuItem* append_shortcut_item(wxMenu* menu, Shortcut shortcut, bool accelerator, const wxString& label, Args&&... args) + { + wxMenuItem* item = append_menu_item(menu, wxID_ANY, shortcut_label(label, shortcut, accelerator), std::forward(args)...); + m_shortcut_menu_items.push_back({ item, shortcut, label, accelerator }); + return item; + } + // Runs the Global shortcut bound to chord; false when the focused control should see the key as well. + bool handle_global_shortcut(const KeyChord& chord); + void add_common_view_menu_items(wxMenu* view_menu, std::function can_change_view); + wxMenu* generate_help_menu(); + struct FileHistory : wxFileHistory { FileHistory(int max) : wxFileHistory(max) {} @@ -354,6 +379,7 @@ public: void request_select_tab(const wxString& id); int get_calibration_curr_tab(); void select_view(const std::string& direction); + void update_shortcut_labels(); // Propagate changed configuration from the Tab to the Plater and save changes to the AppConfig void on_config_changed(DynamicPrintConfig* cfg) const ; void set_print_button_to_default(PrintSelectType select_type); diff --git a/src/slic3r/GUI/NativeCommands.cpp b/src/slic3r/GUI/NativeCommands.cpp index 2e24f14326..1297cd4a24 100644 --- a/src/slic3r/GUI/NativeCommands.cpp +++ b/src/slic3r/GUI/NativeCommands.cpp @@ -10,6 +10,7 @@ #include "GUI_Factories.hpp" #include "GUI_ObjectList.hpp" #include "I18N.hpp" +#include "Shortcuts.hpp" #include "IMSlider.hpp" #include "MainFrame.hpp" #include "NetworkTestDialog.hpp" @@ -563,7 +564,7 @@ std::vector build_command_catalog() // ---- Help ---- (mirrors the top-bar Help menu, plus the wiki/YouTube links) add("help_keyboard_shortcuts", _u8L("Keyboard Shortcuts"), _u8L("Help"), [](const std::string&) { - wxGetApp().keyboard_shortcuts(); + wxGetApp().keyboard_shortcuts(ShortcutContext::Global); return AppActionRunResult{AppActionRunResult::Level::Success}; }); add("help_setup_wizard", _u8L("Setup Wizard"), _u8L("Help"), [](const std::string&) { diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index d2196fefe6..6258cf19af 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -82,6 +82,7 @@ #include "GUI.hpp" #include "GUI_App.hpp" +#include "Shortcuts.hpp" #include "GUI_ObjectList.hpp" #ifdef __WXGTK__ #include "LinuxDisplayBackend.hpp" @@ -7595,7 +7596,9 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) view3D_canvas->Bind(EVT_GLCANVAS_PRINTABLE, [this](SimpleEvent& evt) { this->sidebar->obj_list()->toggle_printable_state(); }); view3D_canvas->Bind(EVT_GLCANVAS_SELECT_ALL, [this](SimpleEvent&) { this->q->select_all(); }); - view3D_canvas->Bind(EVT_GLCANVAS_QUESTION_MARK, [](SimpleEvent&) { wxGetApp().keyboard_shortcuts(); }); + view3D_canvas->Bind(EVT_GLCANVAS_QUESTION_MARK, [this](SimpleEvent&) { + wxGetApp().keyboard_shortcuts(view3D->get_canvas3d()->get_gizmos_manager().is_paint_gizmo() ? ShortcutContext::Painting : ShortcutContext::Plater); + }); view3D_canvas->Bind(EVT_GLCANVAS_INCREASE_INSTANCES, [this](Event& evt) { if (evt.data == 1) this->q->increase_instances(); else if (this->can_decrease_instances()) this->q->decrease_instances(); }); view3D_canvas->Bind(EVT_GLCANVAS_INSTANCE_MOVED, [this](SimpleEvent&) { update(); }); @@ -7672,7 +7675,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) view3D_canvas->Bind(EVT_GLCANVAS_UPDATE_BED_SHAPE, [q](SimpleEvent&) { q->set_bed_shape(); }); // Preview events: - preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_QUESTION_MARK, [](SimpleEvent&) { wxGetApp().keyboard_shortcuts(); }); + preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_QUESTION_MARK, [](SimpleEvent&) { wxGetApp().keyboard_shortcuts(ShortcutContext::Preview); }); preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_UPDATE_BED_SHAPE, [q](SimpleEvent&) { q->set_bed_shape(); }); preview->get_wxglcanvas()->Bind(EVT_GLCANVAS_UPDATE, [this](SimpleEvent &) { preview->get_canvas3d()->set_as_dirty(); @@ -8133,10 +8136,7 @@ void Plater::priv::collapse_sidebar(bool collapse) sidebar_layout.is_collapsed = collapse; // Now update the tooltip in the toolbar. - std::string new_tooltip = collapse - ? _u8L("Expand sidebar") - : _u8L("Collapse sidebar"); - new_tooltip += " [" + _u8L("Shift+") + _u8L("Tab") + "]"; + const std::string new_tooltip = wxGetApp().shortcuts().with_key(collapse ? _u8L("Expand sidebar") : _u8L("Collapse sidebar"), Shortcut::CollapseSidebar); int id = collapse_toolbar.get_item_id("collapse_sidebar"); collapse_toolbar.set_tooltip(id, new_tooltip); diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp index adda0edd74..be4bfcfa63 100644 --- a/src/slic3r/GUI/Preferences.cpp +++ b/src/slic3r/GUI/Preferences.cpp @@ -18,6 +18,7 @@ #include "NetworkTestDialog.hpp" #include "Widgets/StaticLine.hpp" #include "Widgets/RadioGroup.hpp" +#include "Shortcuts.hpp" #include "slic3r/Utils/bambu_networking.hpp" #include "slic3r/Utils/NetworkAgent.hpp" #include "NetworkPluginDialog.hpp" @@ -285,6 +286,7 @@ std::tuple PreferencesDialog::create_item_combobox_base( auto combobox = new ::ComboBox(m_parent, wxID_ANY, wxEmptyString, wxDefaultPosition, DESIGN_LARGE_COMBOBOX_SIZE, 0, nullptr, wxCB_READONLY); combobox->GetDropDown().SetUseContentWidth(true); combobox->SetToolTip(tip); + combobox->SetName(param); // select_tab() finds the row by this name std::vector::iterator iter; for (iter = vlist.begin(); iter != vlist.end(); iter++) { @@ -1522,6 +1524,19 @@ PreferencesDialog::~PreferencesDialog() { } +void PreferencesDialog::select_tab(PreferencesTab tab, const std::string& option) +{ + if (const auto index = m_tab_index.find(tab); index != m_tab_index.end()) + m_pref_tabs->SelectItem(index->second); + wxWindow* control = option.empty() ? nullptr : m_parent->FindWindow(wxString(option)); + if (control == nullptr) + return; + int unit = 1; + m_parent->GetScrollPixelsPerUnit(nullptr, &unit); + m_parent->Scroll(wxDefaultCoord, (m_parent->CalcUnscrolledPosition(control->GetPosition()).y - FromDIP(10)) / unit); + control->SetFocus(); // the focused tint marks the row +} + void PreferencesDialog::on_dpi_changed(const wxRect &suggested_rect) { m_pref_tabs->Rescale(); @@ -1599,7 +1614,7 @@ void PreferencesDialog::create_items() ////////////////////////// //// GENERAL TAB ///////////////////////////////////// - m_pref_tabs->AppendItem(_L("General")); + m_tab_index[PreferencesTab::General] = m_pref_tabs->AppendItem(_L("General")); f_sizers.push_back(new wxFlexGridSizer(1, 1, v_gap, 0)); g_sizer = f_sizers.back(); g_sizer->AddGrowableCol(0, 1); @@ -1730,8 +1745,8 @@ void PreferencesDialog::create_items() auto item_multi_machine = create_item_checkbox(_L("Multi device management"), _L("With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices."), "enable_multi_machine", _L("(Requires restart)")); g_sizer->Add(item_multi_machine); - auto item_speed_dial = create_item_checkbox(_L("Open the Speed Dial with the Space key"), - _L("When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page."), + auto item_speed_dial = create_item_checkbox(_L("Open the Speed Dial from the keyboard"), + _L("When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page."), "enable_speed_dial"); g_sizer->Add(item_speed_dial); @@ -1789,7 +1804,7 @@ void PreferencesDialog::create_items() ////////////////////////// //// CONTROL TAB ///////////////////////////////////// - m_pref_tabs->AppendItem(_L("Control")); + m_tab_index[PreferencesTab::Control] = m_pref_tabs->AppendItem(_L("Control")); f_sizers.push_back(new wxFlexGridSizer(1, 1, v_gap, 0)); g_sizer = f_sizers.back(); g_sizer->AddGrowableCol(0, 1); @@ -1859,6 +1874,14 @@ void PreferencesDialog::create_items() auto item_right_mouse_drag = create_item_combobox(_L("Right Mouse Drag"), _L("Set the action that dragging the right mouse button should perform."), "right_mouse_drag_action", ButtonDragActions); g_sizer->Add(item_right_mouse_drag); + //// CONTROL > Keyboard + g_sizer->Add(create_item_title(_L("Keyboard")), 1, wxEXPAND); + + auto item_shortcuts = create_item_button(_L("Keyboard shortcuts"), _L("Edit") + dots, "", _L("Choose the key for each action."), [this]() { + wxGetApp().keyboard_shortcuts(ShortcutContext::Global, this); + }); + g_sizer->Add(item_shortcuts); + //// CONTROL > Clear my choice on ... g_sizer->Add(create_item_title(_L("Clear my choice on...")), 1, wxEXPAND); @@ -1883,7 +1906,7 @@ void PreferencesDialog::create_items() ////////////////////////// //// GRAPHICS TAB ///////////////////////////////////// - m_pref_tabs->AppendItem(_L("Graphics")); + m_tab_index[PreferencesTab::Graphics] = m_pref_tabs->AppendItem(_L("Graphics")); f_sizers.push_back(new wxFlexGridSizer(1, 1, v_gap, 0)); g_sizer = f_sizers.back(); g_sizer->AddGrowableCol(0, 1); @@ -2031,7 +2054,7 @@ void PreferencesDialog::create_items() ////////////////////////// //// ONLINE TAB ///////////////////////////////////// - m_pref_tabs->AppendItem(_L("Online")); + m_tab_index[PreferencesTab::Online] = m_pref_tabs->AppendItem(_L("Online")); f_sizers.push_back(new wxFlexGridSizer(1, 1, v_gap, 0)); g_sizer = f_sizers.back(); g_sizer->AddGrowableCol(0, 1); diff --git a/src/slic3r/GUI/Preferences.hpp b/src/slic3r/GUI/Preferences.hpp index 5ab7fb1919..e3b6ffdc7d 100644 --- a/src/slic3r/GUI/Preferences.hpp +++ b/src/slic3r/GUI/Preferences.hpp @@ -29,6 +29,9 @@ namespace Slic3r { namespace GUI { #define DESIGN_INPUT_SIZE wxSize(FromDIP(120), -1) #define DESIGN_LEFT_MARGIN 25 +// The tabs other dialogs open Preferences on. +enum class PreferencesTab { General, Control, Graphics, Online }; + class PreferencesDialog : public DPIDialog { private: @@ -38,6 +41,7 @@ protected: wxBoxSizer * m_sizer_body; wxScrolledWindow* m_parent; TabCtrl* m_pref_tabs; + std::map m_tab_index; // position of each tab in m_pref_tabs // bool m_settings_layout_changed {false}; bool m_seq_top_layer_only_changed{false}; @@ -60,6 +64,8 @@ public: ~PreferencesDialog(); + void select_tab(PreferencesTab tab, const std::string& option = {}); // and scrolls a combobox option's row into view, focused + wxString m_backup_interval_time; wxTimer m_filament_height_timer; diff --git a/src/slic3r/GUI/Shortcuts.cpp b/src/slic3r/GUI/Shortcuts.cpp new file mode 100644 index 0000000000..0bcf0ccef9 --- /dev/null +++ b/src/slic3r/GUI/Shortcuts.cpp @@ -0,0 +1,377 @@ +#include "Shortcuts.hpp" + +#include "I18N.hpp" +#include "libslic3r/AppConfig.hpp" + +#include +#include +#include + +namespace Slic3r { namespace GUI { + +namespace { + +constexpr uint8_t GLOBAL = context_bit(ShortcutContext::Global); +constexpr uint8_t PLATER = context_bit(ShortcutContext::Plater); +constexpr uint8_t PREVIEW = context_bit(ShortcutContext::Preview); +constexpr uint8_t OBJECT_LIST = context_bit(ShortcutContext::ObjectList); +constexpr uint8_t PAINTING = context_bit(ShortcutContext::Painting); +constexpr uint8_t CANVAS = PLATER | PREVIEW; + +constexpr int CTRL = wxMOD_CONTROL; +constexpr int SHIFT = wxMOD_SHIFT; +constexpr int CTRL_SHIFT = wxMOD_CONTROL | wxMOD_SHIFT; + +#ifdef __APPLE__ +constexpr KeyChord PREFERENCES_CHORD{ ',', CTRL }; +constexpr KeyChord DELETE_CHORD{ WXK_BACK }; +constexpr KeyChord MOUSE3D_CHORD{ 'M', CTRL_SHIFT }; +#else +constexpr KeyChord PREFERENCES_CHORD{ 'P', CTRL }; +constexpr KeyChord DELETE_CHORD{ WXK_DELETE }; +constexpr KeyChord MOUSE3D_CHORD{ 'M', CTRL }; +#endif + +// Each row: enum value, AppConfig key, description shown in the dialog, contexts the key is +// looked up in, and the default chord. Rows are in the order the dialog lists them, within +// the sections of the Shortcut enum. +// SHORTCUT runs once per key press. +// REPEATING runs again on every auto-repeat of a held key. +// STEPPING repeats, and Shift or Ctrl held with its key select a step variant of it instead +// of another shortcut (ShortcutInfo::modifier_variants). +#define SHORTCUT(id, key, name, contexts, ...) ShortcutInfo{ Shortcut::id, key, name, contexts, __VA_ARGS__, false, false } +#define REPEATING(id, key, name, contexts, ...) ShortcutInfo{ Shortcut::id, key, name, contexts, __VA_ARGS__, true, false } +#define STEPPING(id, key, name, contexts, ...) ShortcutInfo{ Shortcut::id, key, name, contexts, __VA_ARGS__, true, true } + +constexpr std::array shortcut_table = {{ + // Project + SHORTCUT(NewProject, "new_project", L("New Project"), GLOBAL, { 'N', CTRL }), + SHORTCUT(OpenProject, "open_project", L("Open Project"), GLOBAL, { 'O', CTRL }), + SHORTCUT(SaveProject, "save_project", L("Save Project"), GLOBAL, { 'S', CTRL }), + SHORTCUT(SaveProjectAs, "save_project_as", L("Save Project as"), GLOBAL, { 'S', CTRL_SHIFT }), + SHORTCUT(ImportModel, "import_model", L("Import geometry data from STL/STEP/3MF/OBJ/AMF files"), GLOBAL, { 'I', CTRL }), + SHORTCUT(Publish3mf, "publish_3mf", L("Publish 3MF"), GLOBAL, { 'E', CTRL_SHIFT }), + + // Slicing and printing + SHORTCUT(SlicePlate, "slice_plate", L("Slice plate"), GLOBAL, { 'R', CTRL }), + SHORTCUT(ExportSlicedFile, "export_sliced_file", L("Export plate sliced file"), GLOBAL, { 'G', CTRL }), + SHORTCUT(PrintPlate, "print_plate", L("Print plate"), GLOBAL, { 'G', CTRL_SHIFT }), + SHORTCUT(PrintHostQueue, "print_host_queue", L("Print host upload queue"), GLOBAL, { 'J', CTRL }), + + // Selection + SHORTCUT(SelectAll, "select_all", L("Select all objects"), PLATER | OBJECT_LIST, { 'A', CTRL }), + SHORTCUT(SelectAllPlates, "select_all_plates", L("Select all objects on all plates"), PLATER, { 'A', CTRL_SHIFT }), + + // Editing + REPEATING(Undo, "undo", L("Undo"), PLATER | OBJECT_LIST, { 'Z', CTRL }), + REPEATING(Redo, "redo", L("Redo"), PLATER | OBJECT_LIST, { 'Y', CTRL }), + SHORTCUT(Cut, "cut", L("Cut"), PLATER | OBJECT_LIST, { 'X', CTRL }), + SHORTCUT(Copy, "copy", L("Copy to clipboard"), PLATER | OBJECT_LIST, { 'C', CTRL }), + SHORTCUT(Paste, "paste", L("Paste from clipboard"), PLATER | OBJECT_LIST, { 'V', CTRL }), + SHORTCUT(DeleteSelected, "delete_selected", L("Delete Selected"), PLATER | OBJECT_LIST, DELETE_CHORD), + SHORTCUT(DeleteAll, "delete_all", L("Delete All"), PLATER, { 'D', CTRL }), + SHORTCUT(CloneSelected, "clone_selected", L("Clone Selected"), PLATER | OBJECT_LIST, { 'K', CTRL }), + + // Objects + REPEATING(AddInstance, "add_instance", L("Add instance"), PLATER | OBJECT_LIST, { '+' }), + REPEATING(RemoveInstance, "remove_instance", L("Remove instance"), PLATER | OBJECT_LIST, { '-' }), + SHORTCUT(TogglePrintable, "toggle_printable", L("Toggle printable for object/part"), PLATER | OBJECT_LIST, { 'V' }), + SHORTCUT(ToggleAutoDrop, "toggle_auto_drop", L("Auto Drop"), OBJECT_LIST, { 'D' }), + + // Placement + SHORTCUT(Arrange, "arrange", L("Arrange all objects"), PLATER, { 'A' }), + SHORTCUT(ArrangePlate, "arrange_plate", L("Arrange objects on selected plates"), PLATER, { 'A', SHIFT }), + SHORTCUT(Orient, "orient", L("Auto orient all/selected objects"), PLATER, { 'Q' }), + SHORTCUT(OrientPlate, "orient_plate", L("Auto orient all objects on current plate"), PLATER, { 'Q', SHIFT }), + STEPPING(MoveSelectionLeft, "move_selection_left", L("Move selection 10mm in negative X direction"), PLATER, { WXK_LEFT }), + STEPPING(MoveSelectionRight, "move_selection_right", L("Move selection 10mm in positive X direction"), PLATER, { WXK_RIGHT }), + STEPPING(MoveSelectionUp, "move_selection_up", L("Move selection 10mm in positive Y direction"), PLATER, { WXK_UP }), + STEPPING(MoveSelectionDown, "move_selection_down", L("Move selection 10mm in negative Y direction"), PLATER, { WXK_DOWN }), + REPEATING(RotateSelectionLeft, "rotate_selection_left", L("Rotate selection 45 degrees counterclockwise"), PLATER, { WXK_PAGEUP }), + REPEATING(RotateSelectionRight, "rotate_selection_right", L("Rotate selection 45 degrees clockwise"), PLATER, { WXK_PAGEDOWN }), + + // Gizmos + SHORTCUT(GizmoMove, "gizmo_move", L("Gizmo move"), PLATER, { 'M' }), + SHORTCUT(GizmoRotate, "gizmo_rotate", L("Gizmo rotate"), PLATER, { 'R' }), + SHORTCUT(GizmoScale, "gizmo_scale", L("Gizmo scale"), PLATER, { 'S' }), + SHORTCUT(GizmoFlatten, "gizmo_flatten", L("Gizmo place face on bed"), PLATER, { 'F' }), + SHORTCUT(GizmoCut, "gizmo_cut", L("Gizmo cut"), PLATER, { 'C' }), + SHORTCUT(GizmoMeshBoolean, "gizmo_mesh_boolean", L("Gizmo mesh boolean"), PLATER, { 'B' }), + SHORTCUT(GizmoFdmSupports, "gizmo_fdm_supports", L("Gizmo FDM paint-on supports"), PLATER, { 'L' }), + SHORTCUT(GizmoSeam, "gizmo_seam", L("Gizmo FDM paint-on seam"), PLATER, { 'P' }), + SHORTCUT(GizmoFuzzySkin, "gizmo_fuzzy_skin", L("Gizmo FDM paint-on fuzzy skin"), PLATER, { 'H' }), + SHORTCUT(GizmoMmuSegmentation, "gizmo_mmu_segmentation", L("Gizmo multi-material painting"), PLATER, { 'N' }), + SHORTCUT(GizmoEmboss, "gizmo_emboss", L("Gizmo text emboss/engrave"), PLATER, { 'T' }), + SHORTCUT(GizmoMeasure, "gizmo_measure", L("Gizmo measure"), PLATER, { 'U' }), + SHORTCUT(GizmoAssembly, "gizmo_assembly", L("Gizmo assemble"), PLATER, { 'Y' }), + SHORTCUT(GizmoBrimEars, "gizmo_brim_ears", L("Gizmo brim ears"), PLATER, { 'E' }), + + // Sliders + SHORTCUT(GoToLayer, "go_to_layer", L("Jump to layer"), PREVIEW, { 'G', SHIFT }), + STEPPING(LayerSliderUp, "layer_slider_up", L("Vertical slider - Move active thumb Up"), PREVIEW, { WXK_UP }), + STEPPING(LayerSliderDown, "layer_slider_down", L("Vertical slider - Move active thumb Down"), PREVIEW, { WXK_DOWN }), + STEPPING(MovesSliderLeft, "moves_slider_left", L("Horizontal slider - Move active thumb Left"), PREVIEW, { WXK_LEFT }), + STEPPING(MovesSliderRight, "moves_slider_right", L("Horizontal slider - Move active thumb Right"), PREVIEW, { WXK_RIGHT }), + REPEATING(MovesSliderStart, "moves_slider_start", L("Horizontal slider - Move to start position"), PREVIEW, { WXK_HOME }), + REPEATING(MovesSliderEnd, "moves_slider_end", L("Horizontal slider - Move to last position"), PREVIEW, { WXK_END }), + + // Painting tools + SHORTCUT(PaintToolCircle, "paint_tool_circle", L("Circle"), PAINTING, { 'C' }), + SHORTCUT(PaintToolSphere, "paint_tool_sphere", L("Sphere"), PAINTING, { 'S' }), + SHORTCUT(PaintToolFill, "paint_tool_fill", L("Fill"), PAINTING, { 'F' }), + SHORTCUT(PaintToolGapFill, "paint_tool_gap_fill", L("Gap Fill"), PAINTING, { 'G' }), + SHORTCUT(PaintToolTriangle, "paint_tool_triangle", L("Triangle"), PAINTING, { 'T' }), + SHORTCUT(PaintToolHeightRange, "paint_tool_height_range", L("Height Range"), PAINTING, { 'H' }), + + // Camera + SHORTCUT(ViewDefault, "view_default", L("Camera view - Default"), GLOBAL, { '0', CTRL }), + SHORTCUT(ViewTop, "view_top", L("Camera view - Top"), GLOBAL, { '1', CTRL }), + SHORTCUT(ViewBottom, "view_bottom", L("Camera view - Bottom"), GLOBAL, { '2', CTRL }), + SHORTCUT(ViewFront, "view_front", L("Camera view - Front"), GLOBAL, { '3', CTRL }), + SHORTCUT(ViewRear, "view_rear", L("Camera view - Behind"), GLOBAL, { '4', CTRL }), + SHORTCUT(ViewLeft, "view_left", L("Camera Angle - Left side"), GLOBAL, { '5', CTRL }), + SHORTCUT(ViewRight, "view_right", L("Camera Angle - Right side"), GLOBAL, { '6', CTRL }), + SHORTCUT(ViewPlate, "view_plate", L("Camera view - Current plate"), GLOBAL, { '7', CTRL }), + REPEATING(ZoomIn, "zoom_in", L("Zoom in"), CANVAS, { 'I' }), + REPEATING(ZoomOut, "zoom_out", L("Zoom out"), CANVAS, { 'O' }), + SHORTCUT(Mouse3DSettings, "mouse3d_settings", L("Show/Hide 3Dconnexion devices settings dialog"), CANVAS, MOUSE3D_CHORD), + + // Display + SHORTCUT(ShowLabels, "show_labels", L("Show object labels in 3D scene."), GLOBAL, { 'E', CTRL }), + SHORTCUT(ShowWireframe, "show_wireframe", L("Show/Hide wireframe"), CANVAS, { WXK_RETURN, CTRL_SHIFT }), + SHORTCUT(ToggleGcodeWindow, "toggle_gcode_window", L("On/Off G-code window"), PREVIEW, { 'C' }), + SHORTCUT(ToggleOneLayerMode, "toggle_one_layer_mode", L("On/Off one layer mode of the vertical slider"), PREVIEW, { 'L' }), + + // Application + SHORTCUT(Preferences, "preferences", L("Preferences"), GLOBAL, PREFERENCES_CHORD), + SHORTCUT(Search, "search", L("Search"), GLOBAL, { 'F', CTRL }), + SHORTCUT(SwitchView, "switch_view", L("Switch between Prepare/Preview"), CANVAS, { WXK_TAB }), + SHORTCUT(CollapseSidebar, "collapse_sidebar", L("Collapse/Expand the sidebar"), CANVAS, { WXK_TAB, SHIFT }), + SHORTCUT(SpeedDial, "speed_dial", L("Open the speed dial"), GLOBAL, { WXK_SPACE }), + SHORTCUT(ReloadDevicePage, "reload_device_page", L("Reload the device page"), CANVAS, { WXK_F5 }), + SHORTCUT(KeyboardShortcuts, "keyboard_shortcuts", L("Show keyboard shortcuts list"), CANVAS, { '?' }), +}}; + +#undef SHORTCUT +#undef REPEATING +#undef STEPPING + +// The first shortcut of each section's run in shortcut_table and the section's heading, indexed +// by ShortcutSection. +struct SectionInfo +{ + Shortcut first; + const char* name; +}; + +constexpr std::array section_table = {{ + { Shortcut::NewProject, L("Project") }, + { Shortcut::SlicePlate, L("Slicing and printing") }, + { Shortcut::SelectAll, L("Selection") }, + { Shortcut::Undo, L("Editing") }, + { Shortcut::AddInstance, L("Objects") }, + { Shortcut::Arrange, L("Placement") }, + { Shortcut::GizmoMove, L("Gizmos") }, + { Shortcut::GoToLayer, L("Sliders") }, + { Shortcut::PaintToolCircle, L("Painting tools") }, + { Shortcut::ViewDefault, L("Camera") }, + { Shortcut::ShowLabels, L("Display") }, + { Shortcut::Preferences, L("Application") }, +}}; + +constexpr bool sections_follow_table_order() +{ + if (section_table.front().first != Shortcut(0)) + return false; + for (size_t i = 1; i < section_table.size(); ++i) + if (section_table[i].first <= section_table[i - 1].first) + return false; + return true; +} +static_assert(sections_follow_table_order(), "section_table must begin at the first shortcut and ascend"); + +constexpr bool table_is_in_enum_order() +{ + for (size_t i = 0; i < shortcut_table.size(); ++i) + if (shortcut_table[i].id != Shortcut(i)) + return false; + return true; +} +static_assert(table_is_in_enum_order(), "shortcut_table must list every Shortcut in declaration order"); + +const char* CONFIG_SECTION = "shortcuts"; +const char* UNBOUND = "none"; + +bool share_context(uint8_t a, uint8_t b) { return (a & b) != 0 || (a & GLOBAL) != 0 || (b & GLOBAL) != 0; } + +// The modifiers a modifier_variants shortcut accepts on top of its binding. +constexpr int STEP_MODIFIERS = wxMOD_SHIFT | wxMOD_CONTROL; + +// The step modifiers chord adds to binding, 0 when chord is not a step of it; a binding with +// Shift or Ctrl of its own has no steps, so no two bindings share one. +int step_modifiers(const KeyChord& chord, const KeyChord& binding) +{ + if (!binding.valid() || (binding.modifiers & STEP_MODIFIERS) != 0 || chord.key != binding.key || + (chord.modifiers & ~STEP_MODIFIERS) != binding.modifiers) + return 0; + return chord.modifiers & STEP_MODIFIERS; +} + +} // namespace + +const ShortcutInfo& shortcut_info(Shortcut shortcut) { return shortcut_table[size_t(shortcut)]; } + +ShortcutSection shortcut_section(Shortcut shortcut) +{ + size_t section = 0; + for (size_t i = 1; i < section_table.size(); ++i) + if (section_table[i].first <= shortcut) + section = i; + return ShortcutSection(section); +} + +const char* section_name(ShortcutSection section) { return section_table[size_t(section)].name; } + +std::vector shortcuts_in(ShortcutContext context) +{ + std::vector out; + for (const ShortcutInfo& info : shortcut_table) + if (info.contexts & context_bit(context)) + out.push_back(info.id); + return out; +} + +ShortcutRegistry::ShortcutRegistry() { rebuild_index(); } + +KeyChord ShortcutRegistry::binding(Shortcut shortcut) const +{ + const std::optional& override = m_overrides[size_t(shortcut)]; + return override.has_value() ? *override : shortcut_info(shortcut).default_chord; +} + +bool ShortcutRegistry::is_customized(Shortcut shortcut) const { return m_overrides[size_t(shortcut)].has_value(); } + +std::string ShortcutRegistry::display(Shortcut shortcut) const { return binding(shortcut).display(); } + +std::string ShortcutRegistry::with_key(const std::string& text, Shortcut shortcut) const +{ + const std::string key = display(shortcut); + return key.empty() ? text : text + " [" + key + "]"; +} + +std::string ShortcutRegistry::accelerator(Shortcut shortcut) const +{ + const KeyChord chord = binding(shortcut); + return chord.is_menu_accelerator() ? chord.to_string() : std::string(); +} + +std::optional ShortcutRegistry::lookup(ShortcutContext context, const KeyChord& chord) const +{ + if (!chord.valid()) + return std::nullopt; + auto it = m_index.find(chord); + if (it == m_index.end()) + return std::nullopt; + for (Shortcut shortcut : it->second) + if (shortcut_info(shortcut).contexts & context_bit(context)) + return shortcut; + return std::nullopt; +} + +std::optional ShortcutRegistry::match(ShortcutContext context, const KeyChord& chord) const +{ + if (const std::optional exact = lookup(context, chord); exact.has_value()) + return Match{ *exact, 0 }; + if ((chord.modifiers & STEP_MODIFIERS) == 0) + return std::nullopt; + for (const ShortcutInfo& info : shortcut_table) + if (info.modifier_variants && (info.contexts & context_bit(context))) + if (const int step = step_modifiers(chord, binding(info.id)); step != 0) + return Match{ info.id, step }; + return std::nullopt; +} + +std::vector ShortcutRegistry::conflicts(Shortcut shortcut, const KeyChord& chord) const +{ + std::vector out; + if (!chord.valid()) + return out; + const uint8_t contexts = shortcut_info(shortcut).contexts; + for (const ShortcutInfo& other : shortcut_table) + if (other.id != shortcut && share_context(contexts, other.contexts) && binding(other.id) == chord) + out.push_back(other.id); + return out; +} + +std::optional ShortcutRegistry::step_owner(Shortcut shortcut, const KeyChord& chord) const +{ + const uint8_t contexts = shortcut_info(shortcut).contexts; + for (const ShortcutInfo& other : shortcut_table) + if (other.modifier_variants && other.id != shortcut && share_context(contexts, other.contexts)) + if (const int step = step_modifiers(chord, binding(other.id)); step == wxMOD_SHIFT || step == wxMOD_CONTROL) // the combined step stays assignable + return other.id; + return std::nullopt; +} + +void ShortcutRegistry::bind(Shortcut shortcut, const KeyChord& chord) +{ + const ShortcutInfo& info = shortcut_info(shortcut); + if (chord == info.default_chord) + m_overrides[size_t(shortcut)].reset(); + else + m_overrides[size_t(shortcut)] = chord; + rebuild_index(); +} + +void ShortcutRegistry::reset(Shortcut shortcut) +{ + m_overrides[size_t(shortcut)].reset(); + rebuild_index(); +} + +void ShortcutRegistry::reset_all() +{ + m_overrides.fill(std::nullopt); + rebuild_index(); +} + +void ShortcutRegistry::load(const AppConfig& config) +{ + m_overrides.fill(std::nullopt); + if (config.has_section(CONFIG_SECTION)) { + const std::map& section = config.get_section(CONFIG_SECTION); + for (const ShortcutInfo& info : shortcut_table) { + auto it = section.find(info.key); + if (it == section.end()) + continue; + if (it->second == UNBOUND) + m_overrides[size_t(info.id)] = KeyChord{}; + else if (std::optional chord = KeyChord::parse(it->second); chord.has_value()) + // A Global chord is seen before any text field, so it needs a modifier or a non-typing key. + if ((info.contexts & GLOBAL) == 0 || chord->is_menu_accelerator()) + m_overrides[size_t(info.id)] = *chord; + } + } + rebuild_index(); +} + +void ShortcutRegistry::save(AppConfig& config) const +{ + for (const ShortcutInfo& info : shortcut_table) { + const std::optional& override = m_overrides[size_t(info.id)]; + if (override.has_value()) + config.set(CONFIG_SECTION, info.key, override->valid() ? override->to_string() : UNBOUND); + else + config.erase(CONFIG_SECTION, info.key); + } +} + +void ShortcutRegistry::rebuild_index() +{ + m_index.clear(); + for (const ShortcutInfo& info : shortcut_table) + if (const KeyChord chord = binding(info.id); chord.valid()) + m_index[chord].push_back(info.id); +} + +}} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Shortcuts.hpp b/src/slic3r/GUI/Shortcuts.hpp new file mode 100644 index 0000000000..ba002556ca --- /dev/null +++ b/src/slic3r/GUI/Shortcuts.hpp @@ -0,0 +1,127 @@ +#pragma once + +#include "KeyChord.hpp" + +#include +#include +#include +#include +#include +#include + +namespace Slic3r { + +class AppConfig; + +namespace GUI { + +// Where a key press is looked up. A shortcut may belong to several contexts; Global ones are +// dispatched by the main frame before any child window sees the key. +enum class ShortcutContext : uint8_t { Global, Plater, Preview, ObjectList, Painting, Count }; + +constexpr uint8_t context_bit(ShortcutContext context) { return uint8_t(1u << unsigned(context)); } + +enum class Shortcut : uint8_t { + // Project + NewProject, OpenProject, SaveProject, SaveProjectAs, ImportModel, Publish3mf, + // Slicing and printing + SlicePlate, ExportSlicedFile, PrintPlate, PrintHostQueue, + // Selection + SelectAll, SelectAllPlates, + // Editing + Undo, Redo, Cut, Copy, Paste, DeleteSelected, DeleteAll, CloneSelected, + // Objects + AddInstance, RemoveInstance, TogglePrintable, ToggleAutoDrop, + // Placement + Arrange, ArrangePlate, Orient, OrientPlate, + MoveSelectionLeft, MoveSelectionRight, MoveSelectionUp, MoveSelectionDown, RotateSelectionLeft, RotateSelectionRight, + // Gizmos + GizmoMove, GizmoRotate, GizmoScale, GizmoFlatten, GizmoCut, GizmoMeshBoolean, GizmoFdmSupports, GizmoSeam, GizmoFuzzySkin, + GizmoMmuSegmentation, GizmoEmboss, GizmoMeasure, GizmoAssembly, GizmoBrimEars, + // Sliders + GoToLayer, LayerSliderUp, LayerSliderDown, MovesSliderLeft, MovesSliderRight, MovesSliderStart, MovesSliderEnd, + // Painting tools + PaintToolCircle, PaintToolSphere, PaintToolFill, PaintToolGapFill, PaintToolTriangle, PaintToolHeightRange, + // Camera + ViewDefault, ViewTop, ViewBottom, ViewFront, ViewRear, ViewLeft, ViewRight, ViewPlate, ZoomIn, ZoomOut, Mouse3DSettings, + // Display + ShowLabels, ShowWireframe, ToggleGcodeWindow, ToggleOneLayerMode, + // Application + Preferences, Search, SwitchView, CollapseSidebar, SpeedDial, ReloadDevicePage, KeyboardShortcuts, + Count +}; + +struct ShortcutInfo +{ + Shortcut id; + const char* key; // AppConfig key + const char* name; // untranslated description + uint8_t contexts; // context_bit() mask + KeyChord default_chord; + bool repeatable; // runs on key auto-repeat as well + // Shift or Ctrl held with the bound key select a variant of this action, such as the finer + // move step or the faster slider step. + bool modifier_variants; +}; + +// Headings of the shortcuts dialog, in listing order. +enum class ShortcutSection : uint8_t { + Project, SlicingAndPrinting, Selection, Editing, Objects, Placement, Gizmos, Sliders, PaintingTools, Camera, Display, Application, + Count +}; + +const ShortcutInfo& shortcut_info(Shortcut shortcut); +ShortcutSection shortcut_section(Shortcut shortcut); +const char* section_name(ShortcutSection section); // untranslated heading +std::vector shortcuts_in(ShortcutContext context); // in table order + +// Effective key bindings: the built-in defaults overlaid with the user's own. Owns the +// chord -> shortcut index every dispatcher queries. +class ShortcutRegistry +{ +public: + ShortcutRegistry(); + + KeyChord binding(Shortcut shortcut) const; // invalid when unbound + bool is_customized(Shortcut shortcut) const; + + std::string display(Shortcut shortcut) const; // "Ctrl+N" for tooltips and the shortcuts dialog + std::string with_key(const std::string& text, Shortcut shortcut) const; // "text [Ctrl+N]", or text alone when unbound + std::string accelerator(Shortcut shortcut) const; // wx accelerator text for menu labels; empty when unbound or not menu-safe + + // Matches a key event in one context. Global shortcuts are only found through the Global context. + std::optional lookup(ShortcutContext context, const KeyChord& chord) const; + + // lookup(), then the modifier_variants shortcuts, which also match with Shift or Ctrl added + // to their binding; step_modifiers holds whichever of the two were added. + struct Match + { + Shortcut shortcut; + int step_modifiers; + }; + std::optional match(ShortcutContext context, const KeyChord& chord) const; + + // Shortcuts other than shortcut bound to chord in a context it shares; Global shortcuts + // share every context. + std::vector conflicts(Shortcut shortcut, const KeyChord& chord) const; + + // The modifier_variants shortcut in a shared context whose Shift or Ctrl step is chord; + // such a chord is reserved for that step. + std::optional step_owner(Shortcut shortcut, const KeyChord& chord) const; + + void bind(Shortcut shortcut, const KeyChord& chord); // an invalid chord unbinds + void reset(Shortcut shortcut); + void reset_all(); + + void load(const AppConfig& config); + void save(AppConfig& config) const; + +private: + void rebuild_index(); + + std::array, size_t(Shortcut::Count)> m_overrides; + std::unordered_map, KeyChordHash> m_index; +}; + +} // namespace GUI +} // namespace Slic3r diff --git a/tests/slic3rutils/CMakeLists.txt b/tests/slic3rutils/CMakeLists.txt index 3ddacc5a1b..f86f40c3e1 100644 --- a/tests/slic3rutils/CMakeLists.txt +++ b/tests/slic3rutils/CMakeLists.txt @@ -18,6 +18,7 @@ add_executable(${_TEST_NAME}_tests test_plugin_sort.cpp test_plugin_cloud_metadata.cpp test_plugin_audit.cpp + test_shortcuts.cpp ../fff_print/test_helpers.cpp ) diff --git a/tests/slic3rutils/test_shortcuts.cpp b/tests/slic3rutils/test_shortcuts.cpp new file mode 100644 index 0000000000..7826a0610a --- /dev/null +++ b/tests/slic3rutils/test_shortcuts.cpp @@ -0,0 +1,329 @@ +#include +#include + +#include "libslic3r/AppConfig.hpp" +#include "slic3r/GUI/KeyChord.hpp" +#include "slic3r/GUI/Shortcuts.hpp" + +#include + +using namespace Slic3r; +using namespace Slic3r::GUI; + +namespace { + +wxKeyEvent key_event(wxEventType type, int key_code, int modifiers = wxMOD_NONE) +{ + wxKeyEvent evt(type); + evt.m_keyCode = key_code; + evt.SetControlDown(modifiers & wxMOD_CONTROL); + evt.SetShiftDown(modifiers & wxMOD_SHIFT); + evt.SetAltDown(modifiers & wxMOD_ALT); + return evt; +} + +} // namespace + +TEST_CASE("KeyChord round-trips through its canonical text", "[Shortcuts]") +{ + const auto [chord, text] = GENERATE(table({ + { { 'N', wxMOD_CONTROL }, "Ctrl+N" }, + { { 'S', wxMOD_CONTROL | wxMOD_SHIFT }, "Ctrl+Shift+S" }, + { { WXK_RETURN, wxMOD_SHIFT | wxMOD_ALT }, "Shift+Alt+Enter" }, + { { WXK_TAB, wxMOD_SHIFT }, "Shift+Tab" }, + { { WXK_DELETE }, "Del" }, + { { WXK_F5 }, "F5" }, + { { WXK_F12, wxMOD_CONTROL }, "Ctrl+F12" }, + { { '+' }, "+" }, + { { '-', wxMOD_CONTROL }, "Ctrl+-" }, + { { '?' }, "?" }, + { { ',', wxMOD_CONTROL }, "Ctrl+," }, + })); + CAPTURE(text); + CHECK(chord.to_string() == text); + REQUIRE(KeyChord::parse(text).has_value()); + CHECK(*KeyChord::parse(text) == chord); +} + +TEST_CASE("KeyChord::parse accepts aliases and rejects malformed text", "[Shortcuts]") +{ + CHECK(KeyChord::parse("control+n") == KeyChord{ 'N', wxMOD_CONTROL }); + CHECK(KeyChord::parse("Cmd+Shift+Delete") == KeyChord{ WXK_DELETE, wxMOD_CONTROL | wxMOD_SHIFT }); + CHECK(KeyChord::parse("PageUp") == KeyChord{ WXK_PAGEUP }); + CHECK(KeyChord::parse("f3") == KeyChord{ WXK_F3 }); + + CHECK_FALSE(KeyChord::parse("").has_value()); + CHECK_FALSE(KeyChord::parse("Ctrl+").has_value()); + CHECK_FALSE(KeyChord::parse("Meta+A").has_value()); + CHECK_FALSE(KeyChord::parse("F25").has_value()); + CHECK_FALSE(KeyChord::parse("Shift+/").has_value()); // Shift is part of the punctuation character +} + +TEST_CASE("Key events normalize to the key-down key codes", "[Shortcuts]") +{ + CHECK(KeyChord::from_event(key_event(wxEVT_KEY_DOWN, 'A', wxMOD_CONTROL)) == KeyChord{ 'A', wxMOD_CONTROL }); + CHECK(KeyChord::from_event(key_event(wxEVT_KEY_DOWN, WXK_NUMPAD5, wxMOD_CONTROL)) == KeyChord{ '5', wxMOD_CONTROL }); + CHECK(KeyChord::from_event(key_event(wxEVT_KEY_DOWN, WXK_NUMPAD_ADD)) == KeyChord{ '+' }); + CHECK(KeyChord::from_event(key_event(wxEVT_KEY_DOWN, WXK_NUMPAD_PAGEUP)) == KeyChord{ WXK_PAGEUP }); + CHECK_FALSE(KeyChord::from_event(key_event(wxEVT_KEY_DOWN, WXK_SHIFT, wxMOD_SHIFT)).valid()); + CHECK_FALSE(KeyChord::from_event(key_event(wxEVT_KEY_DOWN, WXK_CONTROL, wxMOD_CONTROL)).valid()); + + CHECK(KeyChord::from_event(key_event(wxEVT_CHAR, 'a')) == KeyChord{ 'A' }); + CHECK(KeyChord::from_event(key_event(wxEVT_CHAR, 'A', wxMOD_SHIFT)) == KeyChord{ 'A', wxMOD_SHIFT }); + CHECK(KeyChord::from_event(key_event(wxEVT_CHAR, WXK_CONTROL_C, wxMOD_CONTROL)) == KeyChord{ 'C', wxMOD_CONTROL }); + CHECK(KeyChord::from_event(key_event(wxEVT_CHAR, '+', wxMOD_SHIFT)) == KeyChord{ '+' }); + CHECK(KeyChord::from_event(key_event(wxEVT_CHAR, WXK_DELETE)) == KeyChord{ WXK_DELETE }); + CHECK_FALSE(KeyChord::from_event(key_event(wxEVT_CHAR, 0x444)).valid()); // a Cyrillic letter is not bindable +} + +TEST_CASE("Punctuation chords are the ones matched on char events", "[Shortcuts]") +{ + CHECK(KeyChord{ '+' }.is_punctuation()); + CHECK(KeyChord{ '?' }.is_punctuation()); + CHECK_FALSE(KeyChord{ 'A' }.is_punctuation()); + CHECK_FALSE(KeyChord{ '1' }.is_punctuation()); + CHECK_FALSE(KeyChord{ '=', wxMOD_CONTROL }.is_punctuation()); + CHECK_FALSE(KeyChord{ WXK_DELETE }.is_punctuation()); +} + +TEST_CASE("Chords that only the char event can resolve are recognized", "[Shortcuts]") +{ + CHECK(KeyChord{ '/', wxMOD_SHIFT }.needs_char_event()); + CHECK(KeyChord{ '-' }.needs_char_event()); + CHECK_FALSE(KeyChord{ '=', wxMOD_CONTROL }.needs_char_event()); + CHECK_FALSE(KeyChord{ 'A', wxMOD_SHIFT }.needs_char_event()); + CHECK_FALSE(KeyChord{ '1' }.needs_char_event()); + CHECK_FALSE(KeyChord{ WXK_F5 }.needs_char_event()); +} + +TEST_CASE("Only modified or non-printable chords qualify as menu accelerators", "[Shortcuts]") +{ + CHECK(KeyChord{ 'N', wxMOD_CONTROL }.is_menu_accelerator()); + CHECK(KeyChord{ 'N', wxMOD_ALT }.is_menu_accelerator()); + CHECK(KeyChord{ WXK_DELETE }.is_menu_accelerator()); + CHECK(KeyChord{ WXK_F5 }.is_menu_accelerator()); + CHECK_FALSE(KeyChord{ 'A' }.is_menu_accelerator()); + CHECK_FALSE(KeyChord{ 'A', wxMOD_SHIFT }.is_menu_accelerator()); + CHECK_FALSE(KeyChord{ '?' }.is_menu_accelerator()); + CHECK_FALSE(KeyChord{ WXK_SPACE }.is_menu_accelerator()); + CHECK_FALSE(KeyChord{}.is_menu_accelerator()); + + ShortcutRegistry registry; + CHECK(registry.accelerator(Shortcut::NewProject) == "Ctrl+N"); +#ifdef __APPLE__ + CHECK(registry.accelerator(Shortcut::DeleteSelected) == "Backspace"); +#else + CHECK(registry.accelerator(Shortcut::DeleteSelected) == "Del"); +#endif + CHECK(registry.accelerator(Shortcut::Arrange).empty()); + CHECK(registry.accelerator(Shortcut::ArrangePlate).empty()); + CHECK(registry.accelerator(Shortcut::KeyboardShortcuts).empty()); +} + +TEST_CASE("Chords convert to wx accelerator entries", "[Shortcuts]") +{ + const wxAcceleratorEntry entry = KeyChord{ 'S', wxMOD_CONTROL | wxMOD_SHIFT }.to_accelerator_entry(42); + CHECK(entry.GetFlags() == (wxACCEL_CTRL | wxACCEL_SHIFT)); + CHECK(entry.GetKeyCode() == 'S'); + CHECK(entry.GetCommand() == 42); + + const wxAcceleratorEntry bare = KeyChord{ WXK_BACK }.to_accelerator_entry(7); + CHECK(bare.GetFlags() == wxACCEL_NORMAL); + CHECK(bare.GetKeyCode() == WXK_BACK); +} + +#ifndef __APPLE__ +TEST_CASE("Display text matches the canonical text without translations", "[Shortcuts]") +{ + CHECK(KeyChord{ WXK_DELETE, wxMOD_CONTROL | wxMOD_SHIFT }.display() == "Ctrl+Shift+Del"); + CHECK(KeyChord{ WXK_DELETE, wxMOD_CONTROL | wxMOD_SHIFT }.display_parts() == std::vector{ "Ctrl", "Shift", "Del" }); + CHECK(KeyChord{ '+' }.display() == "+"); + CHECK(KeyChord{ WXK_UP, wxMOD_SHIFT }.display() == "Shift+Arrow Up"); // the arrows keep the old dialog's names + CHECK(KeyChord{ WXK_UP, wxMOD_SHIFT }.to_string() == "Shift+Up"); + CHECK(KeyChord{}.display().empty()); +} +#endif + +TEST_CASE("Every shortcut is listed under the section of its table row", "[Shortcuts]") +{ + CHECK(shortcut_section(Shortcut::NewProject) == ShortcutSection::Project); + CHECK(shortcut_section(Shortcut::Publish3mf) == ShortcutSection::Project); + CHECK(shortcut_section(Shortcut::SlicePlate) == ShortcutSection::SlicingAndPrinting); + CHECK(shortcut_section(Shortcut::GizmoBrimEars) == ShortcutSection::Gizmos); + CHECK(shortcut_section(Shortcut::MovesSliderEnd) == ShortcutSection::Sliders); + CHECK(shortcut_section(Shortcut::ViewDefault) == ShortcutSection::Camera); + CHECK(shortcut_section(Shortcut::KeyboardShortcuts) == ShortcutSection::Application); + CHECK(std::string(section_name(ShortcutSection::SlicingAndPrinting)) == "Slicing and printing"); +} + +TEST_CASE("Default bindings never collide inside a context", "[Shortcuts]") +{ + ShortcutRegistry registry; + for (size_t i = 0; i < size_t(Shortcut::Count); ++i) { + const Shortcut shortcut = Shortcut(i); + CAPTURE(shortcut_info(shortcut).key); + CHECK(registry.conflicts(shortcut, registry.binding(shortcut)).empty()); + } +} + +TEST_CASE("Shift and Ctrl variants of stepping shortcuts are left unbound", "[Shortcuts]") +{ + ShortcutRegistry registry; + for (size_t i = 0; i < size_t(Shortcut::Count); ++i) { + const ShortcutInfo& info = shortcut_info(Shortcut(i)); + if (!info.modifier_variants) + continue; + CAPTURE(info.key); + const KeyChord chord = registry.binding(info.id); + for (int modifier : { int(wxMOD_SHIFT), int(wxMOD_CONTROL), int(wxMOD_SHIFT | wxMOD_CONTROL) }) + for (size_t c = 0; c < size_t(ShortcutContext::Count); ++c) + if (info.contexts & context_bit(ShortcutContext(c))) + CHECK_FALSE(registry.lookup(ShortcutContext(c), KeyChord{ chord.key, chord.modifiers | modifier }).has_value()); + } +} + +TEST_CASE("Lookups are scoped to the context of the key press", "[Shortcuts]") +{ + ShortcutRegistry registry; + const KeyChord ctrl_n{ 'N', wxMOD_CONTROL }; + const KeyChord ctrl_c{ 'C', wxMOD_CONTROL }; + const KeyChord a{ 'A' }; + const KeyChord c{ 'C' }; + + CHECK(registry.lookup(ShortcutContext::Global, ctrl_n) == Shortcut::NewProject); + CHECK_FALSE(registry.lookup(ShortcutContext::Plater, ctrl_n).has_value()); + + CHECK(registry.lookup(ShortcutContext::Plater, ctrl_c) == Shortcut::Copy); + CHECK(registry.lookup(ShortcutContext::ObjectList, ctrl_c) == Shortcut::Copy); + CHECK_FALSE(registry.lookup(ShortcutContext::Global, ctrl_c).has_value()); + + CHECK(registry.lookup(ShortcutContext::Plater, a) == Shortcut::Arrange); + CHECK_FALSE(registry.lookup(ShortcutContext::Preview, a).has_value()); + + CHECK(registry.lookup(ShortcutContext::Plater, c) == Shortcut::GizmoCut); + CHECK(registry.lookup(ShortcutContext::Preview, c) == Shortcut::ToggleGcodeWindow); + CHECK(registry.lookup(ShortcutContext::Painting, c) == Shortcut::PaintToolCircle); +} + +TEST_CASE("Stepping shortcuts match with Shift or Ctrl added to their binding", "[Shortcuts]") +{ + ShortcutRegistry registry; + using Match = ShortcutRegistry::Match; + auto same = [](const std::optional& match, Shortcut shortcut, int step_modifiers) { + return match.has_value() && match->shortcut == shortcut && match->step_modifiers == step_modifiers; + }; + CHECK(same(registry.match(ShortcutContext::Preview, { WXK_UP }), Shortcut::LayerSliderUp, 0)); + CHECK(same(registry.match(ShortcutContext::Preview, { WXK_UP, wxMOD_SHIFT }), Shortcut::LayerSliderUp, wxMOD_SHIFT)); + CHECK(same(registry.match(ShortcutContext::Plater, { WXK_LEFT, wxMOD_CONTROL | wxMOD_SHIFT }), Shortcut::MoveSelectionLeft, wxMOD_CONTROL | wxMOD_SHIFT)); + CHECK(same(registry.match(ShortcutContext::Plater, { 'A', wxMOD_SHIFT }), Shortcut::ArrangePlate, 0)); // an exact binding wins + CHECK_FALSE(registry.match(ShortcutContext::Plater, { 'Q', wxMOD_CONTROL }).has_value()); // Orient has no variants + CHECK_FALSE(registry.match(ShortcutContext::Preview, { WXK_UP, wxMOD_ALT }).has_value()); // Alt is not a step modifier + + CHECK_FALSE(registry.match(ShortcutContext::Preview, { WXK_HOME, wxMOD_SHIFT }).has_value()); // Home has no variants + + // A binding with Shift or Ctrl of its own has no steps. + registry.bind(Shortcut::LayerSliderUp, { WXK_UP, wxMOD_CONTROL }); + CHECK(same(registry.match(ShortcutContext::Preview, { WXK_UP, wxMOD_CONTROL }), Shortcut::LayerSliderUp, 0)); + CHECK_FALSE(registry.match(ShortcutContext::Preview, { WXK_UP, wxMOD_CONTROL | wxMOD_SHIFT }).has_value()); + CHECK_FALSE(registry.match(ShortcutContext::Preview, { WXK_UP, wxMOD_SHIFT }).has_value()); + + // An exact binding on the combined step wins over it. + registry.bind(Shortcut::Arrange, { WXK_LEFT, wxMOD_CONTROL | wxMOD_SHIFT }); + CHECK(same(registry.match(ShortcutContext::Plater, { WXK_LEFT, wxMOD_CONTROL | wxMOD_SHIFT }), Shortcut::Arrange, 0)); + CHECK(same(registry.match(ShortcutContext::Plater, { WXK_LEFT, wxMOD_SHIFT }), Shortcut::MoveSelectionLeft, wxMOD_SHIFT)); +} + +TEST_CASE("Conflicts cover shared contexts and every Global shortcut", "[Shortcuts]") +{ + ShortcutRegistry registry; + CHECK(registry.conflicts(Shortcut::Arrange, { 'N', wxMOD_CONTROL }) == std::vector{ Shortcut::NewProject }); + CHECK(registry.conflicts(Shortcut::NewProject, { 'A' }) == std::vector{ Shortcut::Arrange }); + CHECK(registry.conflicts(Shortcut::ToggleGcodeWindow, { 'C' }).empty()); + CHECK(registry.conflicts(Shortcut::ZoomIn, { 'C' }) == std::vector{ Shortcut::GizmoCut, Shortcut::ToggleGcodeWindow }); + CHECK(registry.conflicts(Shortcut::Arrange, { 'A' }).empty()); // a shortcut never conflicts with itself + + // Only the exact chord conflicts; the steps of a stepping shortcut are reserved instead. + CHECK(registry.conflicts(Shortcut::GoToLayer, { WXK_UP, wxMOD_SHIFT }).empty()); + CHECK(registry.conflicts(Shortcut::LayerSliderUp, { 'G', wxMOD_SHIFT }) == std::vector{ Shortcut::GoToLayer }); +} + +TEST_CASE("Shift and Ctrl with a stepping shortcut's key are reserved for its steps", "[Shortcuts]") +{ + ShortcutRegistry registry; + CHECK(registry.step_owner(Shortcut::GoToLayer, { WXK_UP, wxMOD_SHIFT }) == Shortcut::LayerSliderUp); + CHECK(registry.step_owner(Shortcut::NewProject, { WXK_LEFT, wxMOD_CONTROL }) == Shortcut::MoveSelectionLeft); // Global shares every context + CHECK_FALSE(registry.step_owner(Shortcut::GoToLayer, { WXK_UP, wxMOD_CONTROL | wxMOD_SHIFT }).has_value()); // the combined step is free + CHECK_FALSE(registry.step_owner(Shortcut::MoveSelectionLeft, { WXK_LEFT, wxMOD_SHIFT }).has_value()); // its own step + CHECK_FALSE(registry.step_owner(Shortcut::PaintToolCircle, { WXK_UP, wxMOD_SHIFT }).has_value()); // Painting shares no context + registry.bind(Shortcut::LayerSliderUp, { WXK_UP, wxMOD_CONTROL }); + CHECK_FALSE(registry.step_owner(Shortcut::GoToLayer, { WXK_UP, wxMOD_CONTROL | wxMOD_SHIFT }).has_value()); // a modified binding has no steps +} + +TEST_CASE("Custom bindings replace the default and survive a config round trip", "[Shortcuts]") +{ + ShortcutRegistry registry; + const KeyChord w{ 'W' }; + registry.bind(Shortcut::Arrange, w); + + CHECK(registry.is_customized(Shortcut::Arrange)); + CHECK(registry.lookup(ShortcutContext::Plater, w) == Shortcut::Arrange); + CHECK_FALSE(registry.lookup(ShortcutContext::Plater, { 'A' }).has_value()); + + AppConfig config; + registry.save(config); + CHECK(config.get("shortcuts", "arrange") == "W"); + CHECK_FALSE(config.has("shortcuts", "orient")); + + ShortcutRegistry loaded; + loaded.load(config); + CHECK(loaded.lookup(ShortcutContext::Plater, w) == Shortcut::Arrange); + CHECK(loaded.binding(Shortcut::Orient) == KeyChord{ 'Q' }); + + SECTION("rebinding to the default clears the override") + { + registry.bind(Shortcut::Arrange, { 'A' }); + CHECK_FALSE(registry.is_customized(Shortcut::Arrange)); + registry.save(config); + CHECK_FALSE(config.has("shortcuts", "arrange")); + } + SECTION("an invalid chord unbinds and persists as none") + { + registry.bind(Shortcut::Arrange, KeyChord{}); + CHECK_FALSE(registry.binding(Shortcut::Arrange).valid()); + registry.save(config); + CHECK(config.get("shortcuts", "arrange") == "none"); + loaded.load(config); + CHECK_FALSE(loaded.lookup(ShortcutContext::Plater, { 'A' }).has_value()); + CHECK_FALSE(loaded.lookup(ShortcutContext::Plater, w).has_value()); + } + SECTION("reset_all restores every default") + { + registry.reset_all(); + CHECK(registry.lookup(ShortcutContext::Plater, { 'A' }) == Shortcut::Arrange); + CHECK_FALSE(registry.is_customized(Shortcut::Arrange)); + } +} + +TEST_CASE("A Global shortcut refuses a config binding that would swallow typing", "[Shortcuts]") +{ + AppConfig config; + // A string literal would pick AppConfig::set's bool overload. + config.set("shortcuts", "save_project", std::string("S")); + config.set("shortcuts", "new_project", std::string("F9")); + ShortcutRegistry registry; + registry.load(config); + CHECK(registry.binding(Shortcut::SaveProject) == KeyChord{ 'S', wxMOD_CONTROL }); + CHECK(registry.binding(Shortcut::NewProject) == KeyChord{ WXK_F9 }); +} + +TEST_CASE("Unreadable config entries fall back to the default binding", "[Shortcuts]") +{ + AppConfig config; + config.set("shortcuts", "arrange", std::string("Hyper+Q")); + config.set("shortcuts", "no_such_shortcut", std::string("Ctrl+Q")); + + ShortcutRegistry registry; + registry.load(config); + CHECK_FALSE(registry.is_customized(Shortcut::Arrange)); + CHECK(registry.lookup(ShortcutContext::Plater, { 'A' }) == Shortcut::Arrange); +} From 5caa3372bccadbe389325fc9153f0bf12f5f9118 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun Date: Tue, 22 Sep 2026 12:39:53 +0800 Subject: [PATCH 73/76] Remove ellipses and update translations --- localization/i18n/OrcaSlicer.pot | 550 +++++++++------ localization/i18n/ca/OrcaSlicer_ca.po | 686 ++++++++++++------- localization/i18n/cs/OrcaSlicer_cs.po | 690 ++++++++++++------- localization/i18n/de/OrcaSlicer_de.po | 674 ++++++++++++------- localization/i18n/en/OrcaSlicer_en.po | 544 +++++++++------ localization/i18n/es/OrcaSlicer_es.po | 654 ++++++++++++------ localization/i18n/eu/OrcaSlicer_eu.po | 672 ++++++++++++------- localization/i18n/fr/OrcaSlicer_fr.po | 672 ++++++++++++------- localization/i18n/hu/OrcaSlicer_hu.po | 676 ++++++++++++------- localization/i18n/it/OrcaSlicer_it.po | 684 ++++++++++++------- localization/i18n/ja/OrcaSlicer_ja.po | 692 ++++++++++++------- localization/i18n/ko/OrcaSlicer_ko.po | 694 ++++++++++++------- localization/i18n/list.txt | 2 + localization/i18n/lt/OrcaSlicer_lt.po | 672 ++++++++++++------- localization/i18n/nl/OrcaSlicer_nl.po | 706 +++++++++++++------- localization/i18n/pl/OrcaSlicer_pl.po | 690 ++++++++++++------- localization/i18n/pt_BR/OrcaSlicer_pt_BR.po | 654 ++++++++++++------ localization/i18n/ru/OrcaSlicer_ru.po | 664 +++++++++++------- localization/i18n/sv/OrcaSlicer_sv.po | 698 ++++++++++++------- localization/i18n/th/OrcaSlicer_th.po | 672 ++++++++++++------- localization/i18n/tr/OrcaSlicer_tr.po | 688 ++++++++++++------- localization/i18n/uk/OrcaSlicer_uk.po | 686 ++++++++++++------- localization/i18n/vi/OrcaSlicer_vi.po | 694 ++++++++++++------- localization/i18n/zh_CN/OrcaSlicer_zh_CN.po | 688 ++++++++++++------- localization/i18n/zh_TW/OrcaSlicer_zh_TW.po | 680 ++++++++++++------- src/slic3r/GUI/MainFrame.cpp | 6 +- 26 files changed, 10556 insertions(+), 5532 deletions(-) diff --git a/localization/i18n/OrcaSlicer.pot b/localization/i18n/OrcaSlicer.pot index 79d50e844c..677f151fa9 100644 --- a/localization/i18n/OrcaSlicer.pot +++ b/localization/i18n/OrcaSlicer.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -5554,10 +5554,13 @@ msgctxt "Camera View" msgid "Right" msgstr "" -msgid "Add" +msgid "Add plate" msgstr "" -msgid "Add plate" +msgid "Split to objects" +msgstr "" + +msgid "Add" msgstr "" msgid "Auto orient all/selected objects" @@ -5572,9 +5575,6 @@ msgstr "" msgid "Arrange objects on selected plates" msgstr "" -msgid "Split to objects" -msgstr "" - msgid "Assembly View" msgstr "" @@ -5629,6 +5629,9 @@ msgstr "" msgid "Wireframe" msgstr "" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "" @@ -6158,7 +6161,7 @@ msgstr "" msgid "Preferences" msgstr "" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" msgctxt "Menu" @@ -7886,9 +7889,6 @@ msgstr "" msgid "Collapse sidebar" msgstr "" -msgid "Tab" -msgstr "" - #, possible-c-format, possible-boost-format msgid "Loading file: %s" msgstr "" @@ -8827,10 +8827,10 @@ msgstr "" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "" -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -8956,6 +8956,15 @@ msgstr "" msgid "Set the action that dragging the right mouse button should perform." msgstr "" +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "" @@ -9049,10 +9058,38 @@ msgid "" "Set to 0 for unlimited frame rate." msgstr "" +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "" -msgid "Displays current viewport FPS in the top-right corner." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." msgstr "" msgid "G-code Preview" @@ -9480,10 +9517,7 @@ msgstr "" msgid "Select which settings to be published in the 3MF file" msgstr "" -msgid "Publish 3MF Wiki" -msgstr "" - -msgid "Publish 3MF Video Guide" +msgid "Video Guide" msgstr "" msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -9675,6 +9709,12 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "" + +msgid "Hide details" +msgstr "" + #, possible-c-format, possible-boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -11373,65 +11413,37 @@ msgstr "" msgid "Configuration package changed" msgstr "" -msgid "Toolbar" -msgstr "" - -msgid "Objects list" -msgstr "" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "" - -msgid "Paste from clipboard" -msgstr "" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "" - -msgid "Switch table page" -msgstr "" - -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "" - -msgid "Global shortcuts" -msgstr "" - msgid "Pan View" msgstr "" msgid "Rotate View" msgstr "" -msgid "Middle mouse button" +#, possible-c-format, possible-boost-format +msgid "Use %s or %s, or a key that does not type a character." msgstr "" -msgid "Zoom View" +msgctxt "Keyboard Shortcut" +msgid "Key" msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +msgid "Left mouse" msgstr "" -msgid "Auto orients all objects on the active plate." +msgid "Available anywhere in the window, even while typing in a text field." msgstr "" -msgid "Collapse/Expand the sidebar" +msgid "Run a speed dial favorite while the dial is open" msgstr "" -msgid "Any arrow" +msgctxt "Keyboard Shortcut" +msgid "Tab" msgstr "" -msgid "Movement in camera space" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." msgstr "" msgid "Select a part" @@ -11443,120 +11455,28 @@ msgstr "" msgid "Select objects by rectangle" msgstr "" -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "" - -msgid "Move selection 10mm in positive Y direction" -msgstr "" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "" - -msgid "Move selection 10mm in negative Y direction" -msgstr "" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "" - -msgid "Move selection 10mm in negative X direction" -msgstr "" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "" - -msgid "Move selection 10mm in positive X direction" +msgid "Keyboard 1-9: set filament for object/part" msgstr "" msgid "Movement step set to 1mm" msgstr "" -msgid "Keyboard 1-9: set filament for object/part" +msgid "Movement in camera space" msgstr "" -msgid "Camera view - Default" +msgid "Middle mouse" msgstr "" -msgid "Camera view - Top" +msgid "Right mouse" msgstr "" -msgid "Camera view - Bottom" +msgid "Zoom View" msgstr "" -msgid "Camera view - Front" +msgid "Painting" msgstr "" -msgid "Camera view - Behind" -msgstr "" - -msgid "Camera Angle - Left side" -msgstr "" - -msgid "Camera Angle - Right side" -msgstr "" - -msgid "Select all objects" -msgstr "" - -msgid "Gizmo move" -msgstr "" - -msgid "Gizmo rotate" -msgstr "" - -msgid "Gizmo scale" -msgstr "" - -msgid "Gizmo place face on bed" -msgstr "" - -msgid "Gizmo cut" -msgstr "" - -msgid "Gizmo mesh boolean" -msgstr "" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "" - -msgid "Gizmo SLA support points" -msgstr "" - -msgid "Gizmo FDM paint-on seam" -msgstr "" - -msgid "Gizmo text emboss/engrave" -msgstr "" - -msgid "Gizmo measure" -msgstr "" - -msgid "Gizmo assemble" -msgstr "" - -msgid "Gizmo brim ears" -msgstr "" - -msgid "Zoom in" -msgstr "" - -msgid "Zoom out" -msgstr "" - -msgid "Toggle printable for object/part" -msgstr "" - -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "" - -msgid "Switch between Prepare/Preview" -msgstr "" - -msgid "Plater" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." msgstr "" msgid "Move: press to snap by 1mm" @@ -11568,13 +11488,17 @@ msgstr "" msgid "Support/Color Painting: adjust section position" msgstr "" -msgid "Gizmo" +msgid "Objects list" +msgstr "" + +msgid "Available while the object list has focus." msgstr "" msgid "Set extruder number for the objects and parts" msgstr "" -msgid "Delete objects, parts, modifiers" +msgctxt "Keyboard Shortcut" +msgid "Space" msgstr "" msgid "Select the object/part and press space to change the name" @@ -11586,42 +11510,47 @@ msgstr "" msgid "Select the object/part and mouse click to change the name" msgstr "" -msgid "Objects List" -msgstr "" - -msgid "Vertical slider - Move active thumb Up" -msgstr "" - -msgid "Vertical slider - Move active thumb Down" -msgstr "" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "" - -msgid "On/Off G-code window" +msgid "Available while the 3D view on the Preview tab has focus." msgstr "" msgid "Move slider 5x faster" msgstr "" -msgctxt "Keyboard Shortcut" -msgid "Home" +msgid "Scroll slider 5x faster" msgstr "" -msgid "Horizontal slider - Move to start position" +msgid "Not customizable" msgstr "" -msgctxt "Keyboard Shortcut" -msgid "End" +#, possible-c-format, possible-boost-format +msgid "%s is assigned to %s. Reassign it to %s?" msgstr "" -msgid "Horizontal slider - Move to last position" +#, possible-c-format, possible-boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, possible-c-format, possible-boost-format +msgid "Already assigned to %s. Press OK to reassign it." msgstr "" msgid "Release Note" @@ -15921,7 +15850,7 @@ msgstr "" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "" -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." msgstr "" msgid "Start G-code" @@ -17330,12 +17259,36 @@ msgstr "" msgid "Total length of filament used in the print." msgstr "" -msgid "Print time (seconds)" +msgid "Print time (total seconds)" msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "" +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "" @@ -19016,6 +18969,9 @@ msgstr "" msgid "Success!" msgstr "" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "" @@ -19225,12 +19181,6 @@ msgstr "" msgid "Could not connect to Duet" msgstr "" -msgid "Connection to Ultimaker is working correctly." -msgstr "" - -msgid "Could not connect to Ultimaker" -msgstr "" - msgid "Unknown error occurred" msgstr "" @@ -19958,12 +19908,6 @@ msgstr "" msgid "Error: %s" msgstr "" -msgid "Show details" -msgstr "" - -msgid "Hide details" -msgstr "" - msgid "Version to install:" msgstr "" @@ -22542,6 +22486,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -22554,6 +22504,210 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "" + +msgid "Select all objects" +msgstr "" + +msgid "Paste from clipboard" +msgstr "" + +msgid "Toggle printable for object/part" +msgstr "" + +msgid "Move selection 10mm in negative X direction" +msgstr "" + +msgid "Move selection 10mm in positive X direction" +msgstr "" + +msgid "Move selection 10mm in positive Y direction" +msgstr "" + +msgid "Move selection 10mm in negative Y direction" +msgstr "" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "" + +msgid "Gizmo rotate" +msgstr "" + +msgid "Gizmo scale" +msgstr "" + +msgid "Gizmo place face on bed" +msgstr "" + +msgid "Gizmo cut" +msgstr "" + +msgid "Gizmo mesh boolean" +msgstr "" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "" + +msgid "Gizmo measure" +msgstr "" + +msgid "Gizmo assemble" +msgstr "" + +msgid "Gizmo brim ears" +msgstr "" + +msgid "Vertical slider - Move active thumb Up" +msgstr "" + +msgid "Vertical slider - Move active thumb Down" +msgstr "" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "" + +msgid "Horizontal slider - Move to start position" +msgstr "" + +msgid "Horizontal slider - Move to last position" +msgstr "" + +msgid "Camera view - Default" +msgstr "" + +msgid "Camera view - Top" +msgstr "" + +msgid "Camera view - Bottom" +msgstr "" + +msgid "Camera view - Front" +msgstr "" + +msgid "Camera view - Behind" +msgstr "" + +msgid "Camera Angle - Left side" +msgstr "" + +msgid "Camera Angle - Right side" +msgstr "" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "" + +msgid "Zoom out" +msgstr "" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "" + +msgid "Switch between Prepare/Preview" +msgstr "" + +msgid "Collapse/Expand the sidebar" +msgstr "" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "Precise wall\nDid you know that turning on precise wall can improve precision and layer consistency?" msgstr "" diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index dedb57fff3..27a9d805d7 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2025-03-15 10:55+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -6015,12 +6015,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Dreta" -msgid "Add" -msgstr "Afegir" - msgid "Add plate" msgstr "Afegir placa" +msgid "Split to objects" +msgstr "Separar en objectes" + +msgid "Add" +msgstr "Afegir" + msgid "Auto orient all/selected objects" msgstr "Auto-orientació tots/seleccionats objectes" @@ -6033,9 +6036,6 @@ msgstr "Ordenar tots els objectes" msgid "Arrange objects on selected plates" msgstr "Ordenar els objectes en plaques seleccionades" -msgid "Split to objects" -msgstr "Separar en objectes" - msgid "Assembly View" msgstr "Vista de muntatge" @@ -6092,6 +6092,9 @@ msgstr "Contorn" msgid "Wireframe" msgstr "Malla alàmbrica" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "Vista realista" @@ -6634,7 +6637,7 @@ msgstr "Mostrar el contorn al voltant de l'objecte seleccionat a l'escena 3D" msgid "Preferences" msgstr "Preferències" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8469,10 +8472,6 @@ msgstr "Expandir la barra lateral" msgid "Collapse sidebar" msgstr "Replegar barra lateral" -# AI Translated -msgid "Tab" -msgstr "Pestanya" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Carregant fitxer: %s" @@ -9510,10 +9509,10 @@ msgstr "Gestió multidispositiu" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Amb aquesta opció habilitada, podeu enviar una tasca a diversos dispositius alhora i gestionar múltiples dispositius." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9652,6 +9651,15 @@ msgstr "Arrossegament amb el botó dret del ratolí" msgid "Set the action that dragging the right mouse button should perform." msgstr "Estableix l'acció que ha de fer l'arrossegament amb el botó dret del ratolí." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Esborra la meva elecció a..." @@ -9776,13 +9784,40 @@ msgstr "" "Limita la velocitat de fotogrames de la vista per reduir la càrrega de la GPU i el consum.\n" "Establiu-ho a 0 per a una velocitat de fotogrames sense límit." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "Mostrar la superposició d'FPS" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Mostra els FPS actuals de la vista a la cantonada superior dreta." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10261,13 +10296,8 @@ msgstr "Publicar 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Seleccioneu quines opcions es publicaran al fitxer 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki de Publicar 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Guia en vídeo de Publicar 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10469,6 +10499,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Mostra detalls" + +# AI Translated +msgid "Hide details" +msgstr "Amagar els detalls" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12336,41 +12373,6 @@ msgstr "El paquet de configuració s'ha canviat a la Guia de Configuració anter msgid "Configuration package changed" msgstr "S'ha canviat el paquet de configuració" -msgid "Toolbar" -msgstr "Barra d’eines" - -msgid "Objects list" -msgstr "Llista d'objectes" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Importar dades de geometria des de fitxers STL/STEP/3MF/OBJ/AMF" - -msgid "Paste from clipboard" -msgstr "Enganxa des del porta-retalls" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Mostrar/Amagar quadre de diàleg Configuració de Dispositius 3Dconnexion" - -msgid "Switch table page" -msgstr "Canviar de pàgina de taula" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Espai" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Mostrar la llista de dreceres de teclat" - -msgid "Global shortcuts" -msgstr "Dreceres Globals" - # AI Translated msgid "Pan View" msgstr "Desplaçament de la vista" @@ -12379,28 +12381,33 @@ msgstr "Desplaçament de la vista" msgid "Rotate View" msgstr "Rotació de la vista" -# AI Translated -msgid "Middle mouse button" -msgstr "Botó central del ratolí" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" + +msgid "Left mouse" +msgstr "" + +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" + +msgid "Run a speed dial favorite while the dial is open" +msgstr "" # AI Translated -msgid "Zoom View" -msgstr "Zoom de la vista" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Orienta/alinea automàticament els objectes seleccionats o tots els objectes. Si hi ha objectes seleccionats, només orientarà/alinearà els seleccionats. En cas contrari, orientarà/alinearà tots els objectes del projecte actual." +msgid "Switch to the next main tab" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Orienta/alinea automàticament tots els objectes de la placa actual." - -msgid "Collapse/Expand the sidebar" -msgstr "Replegar/Expandir barra lateral" - -msgid "Any arrow" -msgstr "Qualsevol fletxa" - -msgid "Movement in camera space" -msgstr "Moviment a l'espai de la càmera" +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Seleccionar una peça" @@ -12411,127 +12418,30 @@ msgstr "Seleccionar múltiples objectes" msgid "Select objects by rectangle" msgstr "Seleccionar objectes per rectangle" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Fletxa amunt" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Moure la selecció 10 mm en direcció Y positiva" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Fletxa avall" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Moure la selecció 10 mm en direcció Y negativa" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Fletxa esquerra" - -msgid "Move selection 10mm in negative X direction" -msgstr "Moure la selecció 10 mm en direcció X negativa" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Fletxa dreta" - -msgid "Move selection 10mm in positive X direction" -msgstr "Moure la selecció 10 mm en direcció X positiva" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "teclat 1-9: establir filament per a objecte/peça" msgid "Movement step set to 1mm" msgstr "Pas de moviment configurat a 1 mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "teclat 1-9: establir filament per a objecte/peça" +msgid "Movement in camera space" +msgstr "Moviment a l'espai de la càmera" -msgid "Camera view - Default" -msgstr "Vista de càmera - Predeterminada" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Vista de càmera - Part Superior" - -msgid "Camera view - Bottom" -msgstr "Vista de càmera - Part Inferior" - -msgid "Camera view - Front" -msgstr "Vista de càmera - Frontal" - -msgid "Camera view - Behind" -msgstr "Vista de càmera - Darrere" - -msgid "Camera Angle - Left side" -msgstr "Angle de càmera - Costat Esquerre" - -msgid "Camera Angle - Right side" -msgstr "Angle de càmera - Costat Dret" - -msgid "Select all objects" -msgstr "Seleccionar tots els objectes" - -msgid "Gizmo move" -msgstr "Gizmo de Moviment" - -msgid "Gizmo rotate" -msgstr "Gizmo de Rotació" - -msgid "Gizmo scale" -msgstr "Gizmo d'Escala" - -msgid "Gizmo place face on bed" -msgstr "Gizmo de recolzament sobre la Cara a la placa" - -msgid "Gizmo cut" -msgstr "Gizmo de Tall" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo booleà de malla" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Eina FDM per a pell difusa pintada" - -msgid "Gizmo SLA support points" -msgstr "Gizmo de Punts de suport SLA" - -msgid "Gizmo FDM paint-on seam" -msgstr "Eina de Pintat de costures FDM" - -msgid "Gizmo text emboss/engrave" -msgstr "Gizmo de text en relleu/gravat" - -msgid "Gizmo measure" -msgstr "Gizmo mesurar" - -msgid "Gizmo assemble" -msgstr "Gizmo ensamblar" - -msgid "Gizmo brim ears" -msgstr "Gizmo orelles de la Vora d'Adherència" - -msgid "Zoom in" -msgstr "Augmentar zoom" - -msgid "Zoom out" -msgstr "Reduir zoom" +msgid "Right mouse" +msgstr "" # AI Translated -msgid "Toggle printable for object/part" -msgstr "Commutar la impressibilitat de l'objecte/peça" +msgid "Zoom View" +msgstr "Zoom de la vista" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" +msgid "Painting" +msgstr "" -msgid "Switch between Prepare/Preview" -msgstr "Canviar entre Preparar/Previsualitzar" - -msgid "Plater" -msgstr "Plataforma" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Moure: Clicka per ajustar en passos d'1 mm" @@ -12542,15 +12452,19 @@ msgstr "Suport/Pintat de color: configuració del radi de la ploma" msgid "Support/Color Painting: adjust section position" msgstr "Suport/Pintat de color: configuració de la posició de la secció" -# AI Translated -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Llista d'objectes" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Establir el número d'extrusor per als objectes i les peces" -msgid "Delete objects, parts, modifiers" -msgstr "Eliminar objectes, peces, modificadors" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Espai" msgid "Select the object/part and press space to change the name" msgstr "Seleccioneu l'objecte/peça i premeu espai per canviar-ne el nom" @@ -12561,45 +12475,48 @@ msgstr "Feu clic amb el ratolí" msgid "Select the object/part and mouse click to change the name" msgstr "Seleccioneu l'objecte/peça i feu clic amb el ratolí per canviar el nom" -msgid "Objects List" -msgstr "Llista d'Objectes" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Barra de desplaçament Vertical - Mou el barra de desplaçament actiu cap Amunt" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Barra de desplaçament Vertical - Mou el barra de desplaçament actiu cap Avall" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Barra de desplaçament Horitzontal - Mou el barra de desplaçament actiu cap a l'Esquerra" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Barra de desplaçament Horitzontal - Mou la barra de desplaçament activa cap a la Dreta" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Activar/desactivar el mode de capa única de la barra de desplaçament vertical" - -msgid "On/Off G-code window" -msgstr "Activar/Desactivar finestra de Codi-G" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Moure la barra de desplaçament 5 vegades més ràpid" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Inici" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Control lliscant horitzontal - Mou fins a la posició inicial" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "Fi" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Control lliscant horitzontal - Mou a l'última posició" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Notes de la versió" @@ -17594,8 +17511,8 @@ msgstr "Passos de preescalfament" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Inseriu diverses ordres de preescalfament (p. ex., M104.1). Només útil per a Prusa XL. Per a altres impressores, poseu-la a 1." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code escrit al començament del fitxer de sortida, abans de qualsevol altre contingut. Útil per afegir metadades que el firmware de la impressora llegeix de les primeres línies del fitxer (p. ex. temps d'impressió estimat, ús de filament). Admet espais reservats com {print_time_sec} i {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "Codi-G inicial" @@ -19154,12 +19071,36 @@ msgstr "Filament usat" msgid "Total length of filament used in the print." msgstr "Longitud total de filament utilitzat a la impressió." -msgid "Print time (seconds)" -msgstr "Temps d'impressió (segons)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Temps d'impressió estimat total en segons. Substituït pel valor real durant el post-processament." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Longitud del filament (metres)" @@ -21033,6 +20974,9 @@ msgstr "No s'ha detectat cap sessió vàlida. Voleu continuar amb l'inici de ses msgid "Success!" msgstr "Èxit!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Estàs segur de tancar sessió?" @@ -22088,13 +22032,6 @@ msgstr "El connector de xarxa Bambu és necessari per a les funcions del núvol, msgid "Error: %s" msgstr "Error: %s" -msgid "Show details" -msgstr "Mostra detalls" - -# AI Translated -msgid "Hide details" -msgstr "Amagar els detalls" - msgid "Version to install:" msgstr "Versió a instal·lar:" @@ -24751,6 +24688,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24763,6 +24706,217 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Inici" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "Fi" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Fletxa esquerra" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Fletxa dreta" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Fletxa amunt" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Fletxa avall" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Importar dades de geometria des de fitxers STL/STEP/3MF/OBJ/AMF" + +msgid "Select all objects" +msgstr "Seleccionar tots els objectes" + +msgid "Paste from clipboard" +msgstr "Enganxa des del porta-retalls" + +# AI Translated +msgid "Toggle printable for object/part" +msgstr "Commutar la impressibilitat de l'objecte/peça" + +msgid "Move selection 10mm in negative X direction" +msgstr "Moure la selecció 10 mm en direcció X negativa" + +msgid "Move selection 10mm in positive X direction" +msgstr "Moure la selecció 10 mm en direcció X positiva" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Moure la selecció 10 mm en direcció Y positiva" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Moure la selecció 10 mm en direcció Y negativa" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Gizmo de Moviment" + +msgid "Gizmo rotate" +msgstr "Gizmo de Rotació" + +msgid "Gizmo scale" +msgstr "Gizmo d'Escala" + +msgid "Gizmo place face on bed" +msgstr "Gizmo de recolzament sobre la Cara a la placa" + +msgid "Gizmo cut" +msgstr "Gizmo de Tall" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo booleà de malla" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Eina de Pintat de costures FDM" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Eina FDM per a pell difusa pintada" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Gizmo de text en relleu/gravat" + +msgid "Gizmo measure" +msgstr "Gizmo mesurar" + +msgid "Gizmo assemble" +msgstr "Gizmo ensamblar" + +msgid "Gizmo brim ears" +msgstr "Gizmo orelles de la Vora d'Adherència" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Barra de desplaçament Vertical - Mou el barra de desplaçament actiu cap Amunt" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Barra de desplaçament Vertical - Mou el barra de desplaçament actiu cap Avall" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Barra de desplaçament Horitzontal - Mou el barra de desplaçament actiu cap a l'Esquerra" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Barra de desplaçament Horitzontal - Mou la barra de desplaçament activa cap a la Dreta" + +msgid "Horizontal slider - Move to start position" +msgstr "Control lliscant horitzontal - Mou fins a la posició inicial" + +msgid "Horizontal slider - Move to last position" +msgstr "Control lliscant horitzontal - Mou a l'última posició" + +msgid "Camera view - Default" +msgstr "Vista de càmera - Predeterminada" + +msgid "Camera view - Top" +msgstr "Vista de càmera - Part Superior" + +msgid "Camera view - Bottom" +msgstr "Vista de càmera - Part Inferior" + +msgid "Camera view - Front" +msgstr "Vista de càmera - Frontal" + +msgid "Camera view - Behind" +msgstr "Vista de càmera - Darrere" + +msgid "Camera Angle - Left side" +msgstr "Angle de càmera - Costat Esquerre" + +msgid "Camera Angle - Right side" +msgstr "Angle de càmera - Costat Dret" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Augmentar zoom" + +msgid "Zoom out" +msgstr "Reduir zoom" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Mostrar/Amagar quadre de diàleg Configuració de Dispositius 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Activar/Desactivar finestra de Codi-G" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Activar/desactivar el mode de capa única de la barra de desplaçament vertical" + +msgid "Switch between Prepare/Preview" +msgstr "Canviar entre Preparar/Previsualitzar" + +msgid "Collapse/Expand the sidebar" +msgstr "Replegar/Expandir barra lateral" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Mostrar la llista de dreceres de teclat" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -25064,6 +25218,66 @@ msgstr "" "Evitar la deformació( warping )\n" "Sabíeu que quan imprimiu materials propensos a deformar-se, com ara l'ABS, augmentar adequadament la temperatura del llit pot reduir la probabilitat de deformació?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "Pestanya" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Mostra els FPS actuals de la vista a la cantonada superior dreta." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki de Publicar 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Guia en vídeo de Publicar 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Barra d’eines" + +#~ msgid "Switch table page" +#~ msgstr "Canviar de pàgina de taula" + +#~ msgid "Global shortcuts" +#~ msgstr "Dreceres Globals" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "Botó central del ratolí" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Orienta/alinea automàticament els objectes seleccionats o tots els objectes. Si hi ha objectes seleccionats, només orientarà/alinearà els seleccionats. En cas contrari, orientarà/alinearà tots els objectes del projecte actual." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Orienta/alinea automàticament tots els objectes de la placa actual." + +#~ msgid "Any arrow" +#~ msgstr "Qualsevol fletxa" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Gizmo de Punts de suport SLA" + +#~ msgid "Plater" +#~ msgstr "Plataforma" + +# AI Translated +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Eliminar objectes, peces, modificadors" + +#~ msgid "Objects List" +#~ msgstr "Llista d'Objectes" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code escrit al començament del fitxer de sortida, abans de qualsevol altre contingut. Útil per afegir metadades que el firmware de la impressora llegeix de les primeres línies del fitxer (p. ex. temps d'impressió estimat, ús de filament). Admet espais reservats com {print_time_sec} i {used_filament_length}." + +#~ msgid "Print time (seconds)" +#~ msgstr "Temps d'impressió (segons)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Obrir el marcatge ràpid d'accions" diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index 5518d1d81e..c676d09a9a 100644 --- a/localization/i18n/cs/OrcaSlicer_cs.po +++ b/localization/i18n/cs/OrcaSlicer_cs.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: Jakub Hencl\n" "Language-Team: \n" @@ -5976,12 +5976,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Pravý" -msgid "Add" -msgstr "Přidat" - msgid "Add plate" msgstr "Přidat desku" +msgid "Split to objects" +msgstr "Rozdělit na objekty" + +msgid "Add" +msgstr "Přidat" + msgid "Auto orient all/selected objects" msgstr "Automaticky orientovat všechny/vybrané objekty" @@ -5994,9 +5997,6 @@ msgstr "Rozložit všechny objekty" msgid "Arrange objects on selected plates" msgstr "Rozložit objekty na vybraných deskách" -msgid "Split to objects" -msgstr "Rozdělit na objekty" - msgid "Assembly View" msgstr "Zobrazení sestavy" @@ -6054,6 +6054,9 @@ msgstr "Obrys" msgid "Wireframe" msgstr "Drátový model" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "Realistické zobrazení" @@ -6599,7 +6602,7 @@ msgstr "Zobrazit obrys kolem vybraného objektu ve 3D scéně." msgid "Preferences" msgstr "Předvolby" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8436,10 +8439,6 @@ msgstr "Rozbalit postranní panel" msgid "Collapse sidebar" msgstr "Sbalit postranní panel" -# AI Translated -msgid "Tab" -msgstr "Tab" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Načítání souboru: %s" @@ -9463,10 +9462,10 @@ msgstr "Správa více zařízení" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Pokud je tato volba povolena, můžete odeslat úlohu na více zařízení současně a spravovat více zařízení." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9606,6 +9605,15 @@ msgstr "Tažení pravým tlačítkem myši" msgid "Set the action that dragging the right mouse button should perform." msgstr "Nastavte akci, kterou má provádět tažení pravým tlačítkem myši." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Vymazat mou volbu pro..." @@ -9730,13 +9738,40 @@ msgstr "" "Omezuje snímkovou frekvenci zobrazení, aby se snížila zátěž GPU a spotřeba energie.\n" "Nastavte 0 pro neomezenou snímkovou frekvenci." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "Zobrazit překryv s FPS" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Zobrazuje aktuální FPS zobrazení v pravém horním rohu." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10208,13 +10243,8 @@ msgstr "Publikovat 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Vyberte, která nastavení se mají publikovat v souboru 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki k publikování 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Videonávod k publikování 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10417,6 +10447,14 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +# AI Translated +msgid "Show details" +msgstr "Zobrazit podrobnosti" + +# AI Translated +msgid "Hide details" +msgstr "Skrýt podrobnosti" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12321,68 +12359,39 @@ msgstr "Konfigurační balíček byl změněn v předchozím průvodci nastaven msgid "Configuration package changed" msgstr "Balíček konfigurace byl změněn" -msgid "Toolbar" -msgstr "Panel nástrojů" - -msgid "Objects list" -msgstr "Seznam objektů" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Importovat geometrická data ze souborů STL/STEP/3MF/OBJ/AMF" - -msgid "Paste from clipboard" -msgstr "Vložit ze schránky" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Zobrazit/Skrýt dialog nastavení zařízení 3Dconnexion" - -msgid "Switch table page" -msgstr "Přepnout stránku tabulky" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Mezerník" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Zobrazit seznam klávesových zkratek" - -msgid "Global shortcuts" -msgstr "Globální klávesové zkratky" - msgid "Pan View" msgstr "Posun pohledu" msgid "Rotate View" msgstr "Otočit pohled" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" + +msgid "Left mouse" +msgstr "" + +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" + +msgid "Run a speed dial favorite while the dial is open" +msgstr "" + # AI Translated -msgid "Middle mouse button" -msgstr "Prostřední tlačítko myši" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Zoom View" -msgstr "Přiblížení pohledu" +msgid "Switch to the next main tab" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Automaticky orientuje vybrané nebo všechny objekty. Pokud jsou vybrané objekty, orientuje pouze tyto. Jinak orientuje všechny objekty v aktuálním projektu." - -msgid "Auto orients all objects on the active plate." -msgstr "Automaticky orientuje všechny objekty na aktivní desce." - -msgid "Collapse/Expand the sidebar" -msgstr "Sbalit/rozbalit postranní panel" - -msgid "Any arrow" -msgstr "Libovolná šipka" - -msgid "Movement in camera space" -msgstr "Pohyb v prostoru kamery" +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Vyberte část" @@ -12393,127 +12402,29 @@ msgstr "Vyberte více objektů" msgid "Select objects by rectangle" msgstr "Vyberte objekty obdélníkem" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Šipka nahoru" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Přesuňte výběr o 10 mm v kladném směru osy Y" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Šipka dolů" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Přesuňte výběr o 10 mm v záporném směru osy Y" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Šipka vlevo" - -msgid "Move selection 10mm in negative X direction" -msgstr "Přesuňte výběr o 10 mm v záporném směru osy X" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Šipka vpravo" - -msgid "Move selection 10mm in positive X direction" -msgstr "Přesuňte výběr o 10 mm v kladném směru osy X" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "Klávesy 1–9: nastavit filament pro objekt/část" msgid "Movement step set to 1mm" msgstr "Krok pohybu nastaven na 1 mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "Klávesy 1–9: nastavit filament pro objekt/část" +msgid "Movement in camera space" +msgstr "Pohyb v prostoru kamery" -msgid "Camera view - Default" -msgstr "Pohled kamery – výchozí" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Pohled kamery – shora" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Pohled kamery – zespodu" +msgid "Zoom View" +msgstr "Přiblížení pohledu" -msgid "Camera view - Front" -msgstr "Pohled kamery – zepředu" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Pohled kamery – zezadu" - -msgid "Camera Angle - Left side" -msgstr "Úhel kamery – levá strana" - -msgid "Camera Angle - Right side" -msgstr "Úhel kamery – pravá strana" - -msgid "Select all objects" -msgstr "Vybrat všechny objekty" - -msgid "Gizmo move" -msgstr "Gizmo posouvat" - -msgid "Gizmo rotate" -msgstr "Gizmo otočit" - -msgid "Gizmo scale" -msgstr "Gizmo změnit měřítko" - -msgid "Gizmo place face on bed" -msgstr "Gizmo umístit plochu na podložku" - -msgid "Gizmo cut" -msgstr "Gizmo řezat" - -# AI Translated -msgid "Gizmo mesh boolean" -msgstr "Gizmo booleovské operace se sítí" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM malování efektu chlupatého povrchu" - -msgid "Gizmo SLA support points" -msgstr "Gizmo SLA podpůrné body" - -msgid "Gizmo FDM paint-on seam" -msgstr "Gizmo FDM malování švu" - -msgid "Gizmo text emboss/engrave" -msgstr "Gizmo text vystouplý/gravírovaný" - -msgid "Gizmo measure" -msgstr "Gizmo měření" - -msgid "Gizmo assemble" -msgstr "Gizmo sestavit" - -msgid "Gizmo brim ears" -msgstr "Gizmo ouška lemu" - -msgid "Zoom in" -msgstr "Přiblížit" - -msgid "Zoom out" -msgstr "Oddálit" - -msgid "Toggle printable for object/part" -msgstr "Přepnout tisknutelnost objektu/části" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Přepnout mezi Přípravou/Náhledem" - -msgid "Plater" -msgstr "Deska" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Pohyb: stiskněte pro posun o 1 mm" @@ -12524,15 +12435,19 @@ msgstr "Podpora/barva malování: nastavení poloměru pera" msgid "Support/Color Painting: adjust section position" msgstr "Podpora/barva malování: nastavení pozice úseku" -# AI Translated -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Seznam objektů" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Nastavit číslo extruderu pro objekty a části" -msgid "Delete objects, parts, modifiers" -msgstr "Smazat objekty, části, modifikátory" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Mezerník" msgid "Select the object/part and press space to change the name" msgstr "Vyberte objekt/část a stiskněte mezerník pro změnu názvu" @@ -12543,45 +12458,48 @@ msgstr "Kliknutí myší" msgid "Select the object/part and mouse click to change the name" msgstr "Vyberte objekt/část a klikněte myší pro změnu názvu" -msgid "Objects List" -msgstr "Seznam objektů" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Vertikální posuvník – Posuňte aktivní jezdec nahoru" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Vertikální posuvník – posuňte aktivní jezdec dolů" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Vodorovný posuvník – posunout aktivní jezdec vlevo" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Vodorovný posuvník – posunout aktivní jezdec vpravo" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Zapnout/vypnout režim jedné vrstvy na vertikálním posuvníku" - -msgid "On/Off G-code window" -msgstr "Zapnout/vypnout okno G-code" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Posouvejte posuvník 5× rychleji" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Vodorovný posuvník – přesunout na začátek" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Vodorovný posuvník – přesunout na poslední pozici" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Poznámky k vydání" @@ -17532,8 +17450,8 @@ msgstr "Kroky předehřevu" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Vložte více příkazů pro předehřev (např. M104.1). Pouze pro Prusa XL. U ostatních tiskáren nastavte na 1." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code zapsaný na úplný začátek výstupního souboru před jakýkoli další obsah. Užitečné pro přidání metadat, která firmware tiskárny čte z prvních řádků souboru (např. odhadovaná doba tisku nebo spotřeba filamentu). Podporuje zástupné proměnné jako {print_time_sec} a {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" # AI Translated msgid "Start G-code" @@ -19075,12 +18993,36 @@ msgstr "Použitý filament" msgid "Total length of filament used in the print." msgstr "Celková délka filamentu použitého při tisku." -msgid "Print time (seconds)" -msgstr "Doba tisku (sekundy)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Celková odhadovaná doba tisku v sekundách. Během následného zpracování bude nahrazena skutečnou hodnotou." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Délka filamentu (metry)" @@ -20950,6 +20892,9 @@ msgstr "Nebyla zjištěna platná relace. Pokračovat přihlášením do 3DPrint msgid "Success!" msgstr "Úspěch!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Opravdu se chcete odhlásit?" @@ -22041,14 +21986,6 @@ msgstr "Síťový plug-in Bambu je nutný pro cloudové funkce, vyhledávání t msgid "Error: %s" msgstr "Chyba: %s" -# AI Translated -msgid "Show details" -msgstr "Zobrazit podrobnosti" - -# AI Translated -msgid "Hide details" -msgstr "Skrýt podrobnosti" - # AI Translated msgid "Version to install:" msgstr "Verze k instalaci:" @@ -24731,6 +24668,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24743,6 +24686,217 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Šipka vlevo" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Šipka vpravo" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Šipka nahoru" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Šipka dolů" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Importovat geometrická data ze souborů STL/STEP/3MF/OBJ/AMF" + +msgid "Select all objects" +msgstr "Vybrat všechny objekty" + +msgid "Paste from clipboard" +msgstr "Vložit ze schránky" + +msgid "Toggle printable for object/part" +msgstr "Přepnout tisknutelnost objektu/části" + +msgid "Move selection 10mm in negative X direction" +msgstr "Přesuňte výběr o 10 mm v záporném směru osy X" + +msgid "Move selection 10mm in positive X direction" +msgstr "Přesuňte výběr o 10 mm v kladném směru osy X" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Přesuňte výběr o 10 mm v kladném směru osy Y" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Přesuňte výběr o 10 mm v záporném směru osy Y" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Gizmo posouvat" + +msgid "Gizmo rotate" +msgstr "Gizmo otočit" + +msgid "Gizmo scale" +msgstr "Gizmo změnit měřítko" + +msgid "Gizmo place face on bed" +msgstr "Gizmo umístit plochu na podložku" + +msgid "Gizmo cut" +msgstr "Gizmo řezat" + +# AI Translated +msgid "Gizmo mesh boolean" +msgstr "Gizmo booleovské operace se sítí" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Gizmo FDM malování švu" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo FDM malování efektu chlupatého povrchu" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Gizmo text vystouplý/gravírovaný" + +msgid "Gizmo measure" +msgstr "Gizmo měření" + +msgid "Gizmo assemble" +msgstr "Gizmo sestavit" + +msgid "Gizmo brim ears" +msgstr "Gizmo ouška lemu" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Vertikální posuvník – Posuňte aktivní jezdec nahoru" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Vertikální posuvník – posuňte aktivní jezdec dolů" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Vodorovný posuvník – posunout aktivní jezdec vlevo" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Vodorovný posuvník – posunout aktivní jezdec vpravo" + +msgid "Horizontal slider - Move to start position" +msgstr "Vodorovný posuvník – přesunout na začátek" + +msgid "Horizontal slider - Move to last position" +msgstr "Vodorovný posuvník – přesunout na poslední pozici" + +msgid "Camera view - Default" +msgstr "Pohled kamery – výchozí" + +msgid "Camera view - Top" +msgstr "Pohled kamery – shora" + +msgid "Camera view - Bottom" +msgstr "Pohled kamery – zespodu" + +msgid "Camera view - Front" +msgstr "Pohled kamery – zepředu" + +msgid "Camera view - Behind" +msgstr "Pohled kamery – zezadu" + +msgid "Camera Angle - Left side" +msgstr "Úhel kamery – levá strana" + +msgid "Camera Angle - Right side" +msgstr "Úhel kamery – pravá strana" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Přiblížit" + +msgid "Zoom out" +msgstr "Oddálit" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Zobrazit/Skrýt dialog nastavení zařízení 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Zapnout/vypnout okno G-code" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Zapnout/vypnout režim jedné vrstvy na vertikálním posuvníku" + +msgid "Switch between Prepare/Preview" +msgstr "Přepnout mezi Přípravou/Náhledem" + +msgid "Collapse/Expand the sidebar" +msgstr "Sbalit/rozbalit postranní panel" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Zobrazit seznam klávesových zkratek" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -25045,6 +25199,66 @@ msgstr "" "Zamezte kroucení\n" "Víte, že při tisku materiálů náchylných ke kroucení, jako je ABS, může vhodné zvýšení teploty vyhřívané desky snížit pravděpodobnost kroucení?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "Tab" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Zobrazuje aktuální FPS zobrazení v pravém horním rohu." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki k publikování 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Videonávod k publikování 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Panel nástrojů" + +#~ msgid "Switch table page" +#~ msgstr "Přepnout stránku tabulky" + +#~ msgid "Global shortcuts" +#~ msgstr "Globální klávesové zkratky" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "Prostřední tlačítko myši" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Automaticky orientuje vybrané nebo všechny objekty. Pokud jsou vybrané objekty, orientuje pouze tyto. Jinak orientuje všechny objekty v aktuálním projektu." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Automaticky orientuje všechny objekty na aktivní desce." + +#~ msgid "Any arrow" +#~ msgstr "Libovolná šipka" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Gizmo SLA podpůrné body" + +#~ msgid "Plater" +#~ msgstr "Deska" + +# AI Translated +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Smazat objekty, části, modifikátory" + +#~ msgid "Objects List" +#~ msgstr "Seznam objektů" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code zapsaný na úplný začátek výstupního souboru před jakýkoli další obsah. Užitečné pro přidání metadat, která firmware tiskárny čte z prvních řádků souboru (např. odhadovaná doba tisku nebo spotřeba filamentu). Podporuje zástupné proměnné jako {print_time_sec} a {used_filament_length}." + +#~ msgid "Print time (seconds)" +#~ msgstr "Doba tisku (sekundy)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Otevřít rychlou nabídku akcí" diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index 4957eef170..7fefd18081 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: Heiko Liebscher \n" "Language-Team: \n" @@ -5873,12 +5873,15 @@ msgctxt "Camera View" msgid "Right" msgstr "rechts" -msgid "Add" -msgstr "Hinzufügen" - msgid "Add plate" msgstr "Druckplatte hinzufügen" +msgid "Split to objects" +msgstr "In Objekte trennen" + +msgid "Add" +msgstr "Hinzufügen" + msgid "Auto orient all/selected objects" msgstr "Alle/ausgewählte Objekte automatische Ausrichtung" @@ -5891,9 +5894,6 @@ msgstr "Alle Objekte anordnen" msgid "Arrange objects on selected plates" msgstr "Objekte auf ausgewählten Druckplatten anordnen" -msgid "Split to objects" -msgstr "In Objekte trennen" - msgid "Assembly View" msgstr "Montageansicht" @@ -5949,6 +5949,9 @@ msgstr "Umriss" msgid "Wireframe" msgstr "Gittermodell" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "Realistische Ansicht" @@ -6487,7 +6490,7 @@ msgstr "Kontur um das ausgewählte Objekt in der 3D-Szene anzeigen." msgid "Preferences" msgstr "Einstellungen" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8304,10 +8307,6 @@ msgstr "Seitenleiste erweitern" msgid "Collapse sidebar" msgstr "Seitenleiste reduzieren" -# AI Translated -msgid "Tab" -msgstr "Tab" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Datei wird geladen: %s" @@ -9334,10 +9333,10 @@ msgstr "Multi-Geräte-Verwaltung" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Wenn diese Option aktiviert ist, können Sie eine Aufgabe gleichzeitig an mehrere Geräte senden und mehrere Geräte verwalten." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9469,6 +9468,15 @@ msgstr "Rechte Maustaste drücken" msgid "Set the action that dragging the right mouse button should perform." msgstr "Legen Sie die Aktion fest, die das Ziehen der rechten Maustaste ausführen soll." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Meine Auswahl löschen bei ..." @@ -9579,11 +9587,39 @@ msgstr "" "Begrenzt die Bildrate des Viewports, um die GPU-Auslastung und den Energieverbrauch zu reduzieren.\n" "Auf 0 setzen für unbegrenzte Bildrate." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "FPS-Overlay anzeigen" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Zeigt die aktuelle FPS des Viewports in der oberen rechten Ecke an." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10042,13 +10078,8 @@ msgstr "3MF veröffentlichen..." msgid "Select which settings to be published in the 3MF file" msgstr "Wählen Sie aus, welche Einstellungen in der 3MF-Datei veröffentlicht werden" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki: 3MF veröffentlichen" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Videoanleitung: 3MF veröffentlichen" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10250,6 +10281,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Zeige Details" + +# AI Translated +msgid "Hide details" +msgstr "Details ausblenden" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12080,67 +12118,39 @@ msgstr "Das Konfigurationspaket wurde im vorherigen Konfigurationsleitfaden geä msgid "Configuration package changed" msgstr "Konfigurationspaket geändert" -msgid "Toolbar" -msgstr "Werkzeugleiste" - -msgid "Objects list" -msgstr "Liste der Objekte" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Importiere Geometriedaten aus STL/STEP/3MF/OBJ/AMF-Dateien" - -msgid "Paste from clipboard" -msgstr "Aus Zwischenablage einfügen" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Dialogfeld für 3Dconnexion Geräteeinstellungen anzeigen/ausblenden" - -msgid "Switch table page" -msgstr "Seitenwechsel" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Leertaste" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Liste der Tastaturkürzel anzeigen" - -msgid "Global shortcuts" -msgstr "Globale Tastaturkürzel" - msgid "Pan View" msgstr "Ansicht verschieben" msgid "Rotate View" msgstr "Ansicht drehen" -msgid "Middle mouse button" -msgstr "Mittlere Maustaste" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "Ansicht zoomen" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Diese Funktion richtet ausgewählte Objekte oder alle Objekte automatisch aus. Wenn es ausgewählte Objekte gibt, werden nur die ausgewählten Objekte ausgerichtet. Andernfalls werden alle Objekte auf das aktuelle Projekt ausgerichtet." +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Diese Funktion richtet alle Objekte auf der aktuellen Druckplatte ausgerichtet." +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "Seitenleiste zu-/aufklappen" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" -msgid "Any arrow" -msgstr "Beliebiger Pfeil" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Movement in camera space" -msgstr "Bewegung im Kameraraum" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Teil auswählen" @@ -12151,126 +12161,29 @@ msgstr "Mehrere Objekte auswählen" msgid "Select objects by rectangle" msgstr "Objekte per Rechteck auswählen" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Pfeil nach oben" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Auswahl 10 mm in positiver Y-Richtung verschieben" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Pfeil nach unten" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Auswahl 10 mm in negativer Y-Richtung verschieben" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Pfeil nach links" - -msgid "Move selection 10mm in negative X direction" -msgstr "Auswahl 10 mm in negativer X-Richtung verschieben" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Pfeil nach rechts" - -msgid "Move selection 10mm in positive X direction" -msgstr "Auswahl 10 mm in positiver X-Richtung verschieben" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "Tastatur 1-9: Filament für Objekt/Teil einstellen" msgid "Movement step set to 1mm" msgstr "Bewegungsschritt auf 1 mm eingestellt" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "Tastatur 1-9: Filament für Objekt/Teil einstellen" +msgid "Movement in camera space" +msgstr "Bewegung im Kameraraum" -msgid "Camera view - Default" -msgstr "Kameraperspektive - Standard" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Kameraperspektive - Oben" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Kameraperspektive - Unten" +msgid "Zoom View" +msgstr "Ansicht zoomen" -msgid "Camera view - Front" -msgstr "Kameraperspektive - Vorderseite" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Kameraperspektive - Hinten" - -msgid "Camera Angle - Left side" -msgstr "Kameraperspektive - Links" - -msgid "Camera Angle - Right side" -msgstr "Kameraperspektive - Rechts" - -msgid "Select all objects" -msgstr "Alle Objekte auswählen" - -msgid "Gizmo move" -msgstr "Bewegen" - -msgid "Gizmo rotate" -msgstr "Rotieren" - -msgid "Gizmo scale" -msgstr "Skalieren" - -msgid "Gizmo place face on bed" -msgstr "Fläche auf druckbett platzieren" - -msgid "Gizmo cut" -msgstr "Trennen" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo mesh-boolesche" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "FDM Pinsel auf Fuzzy Oberfläche" - -msgid "Gizmo SLA support points" -msgstr "SLA Stützpunkte" - -msgid "Gizmo FDM paint-on seam" -msgstr "FDM Naht aufmalen" - -msgid "Gizmo text emboss/engrave" -msgstr "Text prägen/gravieren" - -msgid "Gizmo measure" -msgstr "Gizmo messen" - -msgid "Gizmo assemble" -msgstr "Gizmo Zusammenbauen" - -msgid "Gizmo brim ears" -msgstr "Gizmo mausohren" - -msgid "Zoom in" -msgstr "Vergrößern" - -msgid "Zoom out" -msgstr "Verkleinern" - -msgid "Toggle printable for object/part" -msgstr "Druckbar für Objekt/Teil umschalten" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Zwischen Vorbereiten/ Vorschau wechseln" - -msgid "Plater" -msgstr "Druckplatte" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Verschieben: Drücken, um in 1 mm einzurasten" @@ -12281,14 +12194,19 @@ msgstr "Stützen/Farbmalen: Stiftradius einstellen" msgid "Support/Color Painting: adjust section position" msgstr "Stützen/Farbmalen: Position des Abschnitts anpassen" -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Liste der Objekte" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Extrudernummer für die Objekte und Teile einstellen" -msgid "Delete objects, parts, modifiers" -msgstr "Objekte, Teile, Modifikatoren löschen" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Leertaste" msgid "Select the object/part and press space to change the name" msgstr "Wähle das Objekt/Teil aus und drücke die Leertaste, um den Namen zu ändern" @@ -12299,45 +12217,48 @@ msgstr "Mausklick" msgid "Select the object/part and mouse click to change the name" msgstr "Wähle das Objekt/Teil aus und klicke mit der Maus, um den Namen zu ändern" -msgid "Objects List" -msgstr "Objektliste" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Vertikaler Schieberegler - Aktiven Schieber nach oben bewegen" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Vertikaler Schieberegler - Aktiven Schieber nach unten bewegen" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Horizontaler Schieberegler - Aktiven Schieber nach links bewegen" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Horizontaler Schieberegler - Aktiven Schieber nach rechts bewegen" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Ein/Aus Einschichtmodus des vertikalen Schiebereglers" - -msgid "On/Off G-code window" -msgstr "Ein-/Ausblenden des G-Code-Fensters" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Schieberegler 5x schneller bewegen" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Pos1" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Horizontaler Schieberegler - Zur Startposition bewegen" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "Ende" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Horizontaler Schieberegler - Zur letzten Position bewegen" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Hinweis zur Veröffentlichung" @@ -17194,8 +17115,8 @@ msgstr "Vorheizschritte" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Fügen Sie mehrere Vorheizbefehle ein (z.B. M104.1). Nur nützlich für Prusa XL. Für andere Drucker bitte auf 1 setzen." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-Code, der ganz oben in die Ausgabedatei geschrieben wird, vor allen anderen Inhalten. Nützlich zum Hinzufügen von Metadaten, die die Druckerfirmware aus den ersten Zeilen der Datei liest (z.B. geschätzte Druckzeit, Filamentverbrauch). Unterstützt Platzhalter wie {print_time_sec} und {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" # AI Translated msgid "Start G-code" @@ -18724,12 +18645,36 @@ msgstr "Genutztes Filament" msgid "Total length of filament used in the print." msgstr "Gesamtlänge des im Druck verwendeten Filaments." -msgid "Print time (seconds)" -msgstr "Druckzeit (Sekunden)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Gesammt geschätzte Druckzeit in Sekunden. Ersetzt durch den tatsächlichen Wert während der Nachbearbeitung." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Filamentlänge (Meter)" @@ -20563,6 +20508,9 @@ msgstr "Keine gültige Sitzung erkannt. Mit dem Login bei 3DPrinterOS fortfahren msgid "Success!" msgstr "Erfolgreich!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Sind Sie sicher, dass Sie sich abmelden möchten?" @@ -21518,13 +21466,6 @@ msgstr "Das Bambu Netzwerk Plug-in ist erforderlich für Cloud-Funktionen, Druck msgid "Error: %s" msgstr "Fehler: %s" -msgid "Show details" -msgstr "Zeige Details" - -# AI Translated -msgid "Hide details" -msgstr "Details ausblenden" - msgid "Version to install:" msgstr "Version zum Installieren:" @@ -24155,6 +24096,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24167,6 +24114,216 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Pos1" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "Ende" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Pfeil nach links" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Pfeil nach rechts" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Pfeil nach oben" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Pfeil nach unten" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Importiere Geometriedaten aus STL/STEP/3MF/OBJ/AMF-Dateien" + +msgid "Select all objects" +msgstr "Alle Objekte auswählen" + +msgid "Paste from clipboard" +msgstr "Aus Zwischenablage einfügen" + +msgid "Toggle printable for object/part" +msgstr "Druckbar für Objekt/Teil umschalten" + +msgid "Move selection 10mm in negative X direction" +msgstr "Auswahl 10 mm in negativer X-Richtung verschieben" + +msgid "Move selection 10mm in positive X direction" +msgstr "Auswahl 10 mm in positiver X-Richtung verschieben" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Auswahl 10 mm in positiver Y-Richtung verschieben" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Auswahl 10 mm in negativer Y-Richtung verschieben" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Bewegen" + +msgid "Gizmo rotate" +msgstr "Rotieren" + +msgid "Gizmo scale" +msgstr "Skalieren" + +msgid "Gizmo place face on bed" +msgstr "Fläche auf druckbett platzieren" + +msgid "Gizmo cut" +msgstr "Trennen" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo mesh-boolesche" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "FDM Naht aufmalen" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "FDM Pinsel auf Fuzzy Oberfläche" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Text prägen/gravieren" + +msgid "Gizmo measure" +msgstr "Gizmo messen" + +msgid "Gizmo assemble" +msgstr "Gizmo Zusammenbauen" + +msgid "Gizmo brim ears" +msgstr "Gizmo mausohren" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Vertikaler Schieberegler - Aktiven Schieber nach oben bewegen" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Vertikaler Schieberegler - Aktiven Schieber nach unten bewegen" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Horizontaler Schieberegler - Aktiven Schieber nach links bewegen" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Horizontaler Schieberegler - Aktiven Schieber nach rechts bewegen" + +msgid "Horizontal slider - Move to start position" +msgstr "Horizontaler Schieberegler - Zur Startposition bewegen" + +msgid "Horizontal slider - Move to last position" +msgstr "Horizontaler Schieberegler - Zur letzten Position bewegen" + +msgid "Camera view - Default" +msgstr "Kameraperspektive - Standard" + +msgid "Camera view - Top" +msgstr "Kameraperspektive - Oben" + +msgid "Camera view - Bottom" +msgstr "Kameraperspektive - Unten" + +msgid "Camera view - Front" +msgstr "Kameraperspektive - Vorderseite" + +msgid "Camera view - Behind" +msgstr "Kameraperspektive - Hinten" + +msgid "Camera Angle - Left side" +msgstr "Kameraperspektive - Links" + +msgid "Camera Angle - Right side" +msgstr "Kameraperspektive - Rechts" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Vergrößern" + +msgid "Zoom out" +msgstr "Verkleinern" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Dialogfeld für 3Dconnexion Geräteeinstellungen anzeigen/ausblenden" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Ein-/Ausblenden des G-Code-Fensters" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Ein/Aus Einschichtmodus des vertikalen Schiebereglers" + +msgid "Switch between Prepare/Preview" +msgstr "Zwischen Vorbereiten/ Vorschau wechseln" + +msgid "Collapse/Expand the sidebar" +msgstr "Seitenleiste zu-/aufklappen" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Liste der Tastaturkürzel anzeigen" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24467,6 +24624,63 @@ msgstr "" "Verwerfungen vermeiden\n" "Wussten Sie, dass beim Drucken von Materialien, die zu Verwerfungen neigen, wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die Wahrscheinlichkeit von Verwerfungen verringert werden kann?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "Tab" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Zeigt die aktuelle FPS des Viewports in der oberen rechten Ecke an." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki: 3MF veröffentlichen" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Videoanleitung: 3MF veröffentlichen" + +#~ msgid "Toolbar" +#~ msgstr "Werkzeugleiste" + +#~ msgid "Switch table page" +#~ msgstr "Seitenwechsel" + +#~ msgid "Global shortcuts" +#~ msgstr "Globale Tastaturkürzel" + +#~ msgid "Middle mouse button" +#~ msgstr "Mittlere Maustaste" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Diese Funktion richtet ausgewählte Objekte oder alle Objekte automatisch aus. Wenn es ausgewählte Objekte gibt, werden nur die ausgewählten Objekte ausgerichtet. Andernfalls werden alle Objekte auf das aktuelle Projekt ausgerichtet." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Diese Funktion richtet alle Objekte auf der aktuellen Druckplatte ausgerichtet." + +#~ msgid "Any arrow" +#~ msgstr "Beliebiger Pfeil" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "SLA Stützpunkte" + +#~ msgid "Plater" +#~ msgstr "Druckplatte" + +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Objekte, Teile, Modifikatoren löschen" + +#~ msgid "Objects List" +#~ msgstr "Objektliste" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-Code, der ganz oben in die Ausgabedatei geschrieben wird, vor allen anderen Inhalten. Nützlich zum Hinzufügen von Metadaten, die die Druckerfirmware aus den ersten Zeilen der Datei liest (z.B. geschätzte Druckzeit, Filamentverbrauch). Unterstützt Platzhalter wie {print_time_sec} und {used_filament_length}." + +#~ msgid "Print time (seconds)" +#~ msgstr "Druckzeit (Sekunden)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Aktions-Schnellwahl öffnen" diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index 080cae9632..3b915b2fcd 100644 --- a/localization/i18n/en/OrcaSlicer_en.po +++ b/localization/i18n/en/OrcaSlicer_en.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2026-06-17 15:44-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: \n" @@ -5550,10 +5550,13 @@ msgctxt "Camera View" msgid "Right" msgstr "" -msgid "Add" +msgid "Add plate" msgstr "" -msgid "Add plate" +msgid "Split to objects" +msgstr "" + +msgid "Add" msgstr "" msgid "Auto orient all/selected objects" @@ -5568,9 +5571,6 @@ msgstr "" msgid "Arrange objects on selected plates" msgstr "" -msgid "Split to objects" -msgstr "" - msgid "Assembly View" msgstr "" @@ -5625,6 +5625,9 @@ msgstr "" msgid "Wireframe" msgstr "" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "" @@ -6154,7 +6157,7 @@ msgstr "" msgid "Preferences" msgstr "" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" msgctxt "Menu" @@ -7882,9 +7885,6 @@ msgstr "" msgid "Collapse sidebar" msgstr "" -msgid "Tab" -msgstr "" - #, c-format, boost-format msgid "Loading file: %s" msgstr "" @@ -8823,10 +8823,10 @@ msgstr "" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "" -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -8952,6 +8952,15 @@ msgstr "" msgid "Set the action that dragging the right mouse button should perform." msgstr "" +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "" @@ -9045,10 +9054,38 @@ msgid "" "Set to 0 for unlimited frame rate." msgstr "" +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "" -msgid "Displays current viewport FPS in the top-right corner." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." msgstr "" msgid "G-code Preview" @@ -9476,10 +9513,7 @@ msgstr "" msgid "Select which settings to be published in the 3MF file" msgstr "" -msgid "Publish 3MF Wiki" -msgstr "" - -msgid "Publish 3MF Video Guide" +msgid "Video Guide" msgstr "" msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -9671,6 +9705,12 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "" + +msgid "Hide details" +msgstr "" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -11369,65 +11409,37 @@ msgstr "" msgid "Configuration package changed" msgstr "" -msgid "Toolbar" -msgstr "" - -msgid "Objects list" -msgstr "" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "" - -msgid "Paste from clipboard" -msgstr "" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "" - -msgid "Switch table page" -msgstr "" - -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "" - -msgid "Global shortcuts" -msgstr "" - msgid "Pan View" msgstr "" msgid "Rotate View" msgstr "" -msgid "Middle mouse button" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." msgstr "" -msgid "Zoom View" +msgctxt "Keyboard Shortcut" +msgid "Key" msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +msgid "Left mouse" msgstr "" -msgid "Auto orients all objects on the active plate." +msgid "Available anywhere in the window, even while typing in a text field." msgstr "" -msgid "Collapse/Expand the sidebar" +msgid "Run a speed dial favorite while the dial is open" msgstr "" -msgid "Any arrow" +msgctxt "Keyboard Shortcut" +msgid "Tab" msgstr "" -msgid "Movement in camera space" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." msgstr "" msgid "Select a part" @@ -11439,120 +11451,28 @@ msgstr "" msgid "Select objects by rectangle" msgstr "" -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "" - -msgid "Move selection 10mm in positive Y direction" -msgstr "" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "" - -msgid "Move selection 10mm in negative Y direction" -msgstr "" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "" - -msgid "Move selection 10mm in negative X direction" -msgstr "" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "" - -msgid "Move selection 10mm in positive X direction" +msgid "Keyboard 1-9: set filament for object/part" msgstr "" msgid "Movement step set to 1mm" msgstr "" -msgid "Keyboard 1-9: set filament for object/part" +msgid "Movement in camera space" msgstr "" -msgid "Camera view - Default" +msgid "Middle mouse" msgstr "" -msgid "Camera view - Top" +msgid "Right mouse" msgstr "" -msgid "Camera view - Bottom" +msgid "Zoom View" msgstr "" -msgid "Camera view - Front" +msgid "Painting" msgstr "" -msgid "Camera view - Behind" -msgstr "" - -msgid "Camera Angle - Left side" -msgstr "" - -msgid "Camera Angle - Right side" -msgstr "" - -msgid "Select all objects" -msgstr "" - -msgid "Gizmo move" -msgstr "" - -msgid "Gizmo rotate" -msgstr "" - -msgid "Gizmo scale" -msgstr "" - -msgid "Gizmo place face on bed" -msgstr "" - -msgid "Gizmo cut" -msgstr "" - -msgid "Gizmo mesh boolean" -msgstr "" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "" - -msgid "Gizmo SLA support points" -msgstr "" - -msgid "Gizmo FDM paint-on seam" -msgstr "" - -msgid "Gizmo text emboss/engrave" -msgstr "" - -msgid "Gizmo measure" -msgstr "" - -msgid "Gizmo assemble" -msgstr "" - -msgid "Gizmo brim ears" -msgstr "" - -msgid "Zoom in" -msgstr "" - -msgid "Zoom out" -msgstr "" - -msgid "Toggle printable for object/part" -msgstr "" - -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "" - -msgid "Switch between Prepare/Preview" -msgstr "" - -msgid "Plater" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." msgstr "" msgid "Move: press to snap by 1mm" @@ -11564,13 +11484,17 @@ msgstr "" msgid "Support/Color Painting: adjust section position" msgstr "" -msgid "Gizmo" +msgid "Objects list" +msgstr "" + +msgid "Available while the object list has focus." msgstr "" msgid "Set extruder number for the objects and parts" msgstr "" -msgid "Delete objects, parts, modifiers" +msgctxt "Keyboard Shortcut" +msgid "Space" msgstr "" msgid "Select the object/part and press space to change the name" @@ -11582,42 +11506,47 @@ msgstr "" msgid "Select the object/part and mouse click to change the name" msgstr "" -msgid "Objects List" -msgstr "" - -msgid "Vertical slider - Move active thumb Up" -msgstr "" - -msgid "Vertical slider - Move active thumb Down" -msgstr "" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "" - -msgid "On/Off G-code window" +msgid "Available while the 3D view on the Preview tab has focus." msgstr "" msgid "Move slider 5x faster" msgstr "" -msgctxt "Keyboard Shortcut" -msgid "Home" +msgid "Scroll slider 5x faster" msgstr "" -msgid "Horizontal slider - Move to start position" +msgid "Not customizable" msgstr "" -msgctxt "Keyboard Shortcut" -msgid "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" msgstr "" -msgid "Horizontal slider - Move to last position" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." msgstr "" msgid "Release Note" @@ -15917,7 +15846,7 @@ msgstr "" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "" -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." msgstr "" msgid "Start G-code" @@ -17326,12 +17255,36 @@ msgstr "" msgid "Total length of filament used in the print." msgstr "" -msgid "Print time (seconds)" +msgid "Print time (total seconds)" msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "" +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "" @@ -19012,6 +18965,9 @@ msgstr "" msgid "Success!" msgstr "" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "" @@ -19948,12 +19904,6 @@ msgstr "" msgid "Error: %s" msgstr "" -msgid "Show details" -msgstr "" - -msgid "Hide details" -msgstr "" - msgid "Version to install:" msgstr "" @@ -22532,6 +22482,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -22544,6 +22500,210 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "" + +msgid "Select all objects" +msgstr "" + +msgid "Paste from clipboard" +msgstr "" + +msgid "Toggle printable for object/part" +msgstr "" + +msgid "Move selection 10mm in negative X direction" +msgstr "" + +msgid "Move selection 10mm in positive X direction" +msgstr "" + +msgid "Move selection 10mm in positive Y direction" +msgstr "" + +msgid "Move selection 10mm in negative Y direction" +msgstr "" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "" + +msgid "Gizmo rotate" +msgstr "" + +msgid "Gizmo scale" +msgstr "" + +msgid "Gizmo place face on bed" +msgstr "" + +msgid "Gizmo cut" +msgstr "" + +msgid "Gizmo mesh boolean" +msgstr "" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "" + +msgid "Gizmo measure" +msgstr "" + +msgid "Gizmo assemble" +msgstr "" + +msgid "Gizmo brim ears" +msgstr "" + +msgid "Vertical slider - Move active thumb Up" +msgstr "" + +msgid "Vertical slider - Move active thumb Down" +msgstr "" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "" + +msgid "Horizontal slider - Move to start position" +msgstr "" + +msgid "Horizontal slider - Move to last position" +msgstr "" + +msgid "Camera view - Default" +msgstr "" + +msgid "Camera view - Top" +msgstr "" + +msgid "Camera view - Bottom" +msgstr "" + +msgid "Camera view - Front" +msgstr "" + +msgid "Camera view - Behind" +msgstr "" + +msgid "Camera Angle - Left side" +msgstr "" + +msgid "Camera Angle - Right side" +msgstr "" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "" + +msgid "Zoom out" +msgstr "" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "" + +msgid "Switch between Prepare/Preview" +msgstr "" + +msgid "Collapse/Expand the sidebar" +msgstr "" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index 5d864aa200..0b337641b8 100644 --- a/localization/i18n/es/OrcaSlicer_es.po +++ b/localization/i18n/es/OrcaSlicer_es.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: Ian A. Bassi <>\n" "Language-Team: \n" @@ -5729,12 +5729,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Derecha" -msgid "Add" -msgstr "Añadir" - msgid "Add plate" msgstr "Añadir cama" +msgid "Split to objects" +msgstr "Separar en objetos" + +msgid "Add" +msgstr "Añadir" + msgid "Auto orient all/selected objects" msgstr "Orientar automáticamente todos/seleccionados objetos" @@ -5747,9 +5750,6 @@ msgstr "Ordenar todos los objetos" msgid "Arrange objects on selected plates" msgstr "Organizar los objetos en las camas seleccionadas" -msgid "Split to objects" -msgstr "Separar en objetos" - msgid "Assembly View" msgstr "Vista de Emsamblado" @@ -5804,6 +5804,9 @@ msgstr "Contorno" msgid "Wireframe" msgstr "Malla alámbrica" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "Vista realista" @@ -6343,7 +6346,7 @@ msgstr "Mostrar el contorno alrededor del objeto seleccionado en la escena 3D." msgid "Preferences" msgstr "Preferencias" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" msgctxt "Menu" @@ -8109,9 +8112,6 @@ msgstr "Expandir barra lateral" msgid "Collapse sidebar" msgstr "Colapsar barra lateral" -msgid "Tab" -msgstr "Pestaña" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Cargando archivo: %s" @@ -9102,10 +9102,10 @@ msgstr "Gestión multidispositivo" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Con esta opción activada, puede enviar una tarea a varios dispositivos al mismo tiempo y gestionar varios dispositivos." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9237,6 +9237,15 @@ msgstr "Arrastrar con el botón derecho del ratón" msgid "Set the action that dragging the right mouse button should perform." msgstr "Establece la acción que se debe realizar al arrastrar el botón derecho del ratón." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Limpiar mi elección en..." @@ -9345,11 +9354,39 @@ msgstr "" "Limita la frecuencia de fotogramas de la ventana gráfica para reducir la carga de la GPU y el consumo de energía.\n" "Establece el valor en 0 para una frecuencia de fotogramas ilimitada." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "Mostrar FPS en pantalla" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Muestra los FPS en la esquina superior derecha." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" msgid "G-code Preview" msgstr "Vista previa del G-code" @@ -9800,13 +9837,8 @@ msgstr "Publicar 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Seleccione qué ajustes se publicarán en el archivo 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki de Publicar 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Guía en vídeo de Publicar 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10008,6 +10040,12 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Mostrar detalles" + +msgid "Hide details" +msgstr "Ocultar detalles" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -11783,66 +11821,38 @@ msgstr "El paquete de configuración se cambia en la Guía de configuración ant msgid "Configuration package changed" msgstr "Paquete de configuración cambiado" -msgid "Toolbar" -msgstr "Barra de herramientas" - -msgid "Objects list" -msgstr "Lista de objetos" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Importar datos de geometría de los archivos STL/STEP/3MF/OBJ/AMF" - -msgid "Paste from clipboard" -msgstr "Pegar desde el portapapeles" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Mostrar/Ocultar el diálogo de ajustes de los dispositivos 3Dconnexion" - -msgid "Switch table page" -msgstr "Cambiar de página de tabla" - -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Espacio" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Muestra lista de atajos de teclado" - -msgid "Global shortcuts" -msgstr "Atajos globales" - msgid "Pan View" msgstr "Movimiento de la vista" msgid "Rotate View" msgstr "Rotación de vista" -msgid "Middle mouse button" -msgstr "Botón central del ratón" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "Zoom de vista" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Orienta automáticamente los objetos seleccionados o todos los objetos. Si hay objetos seleccionados, sólo orienta los seleccionados. En caso contrario, orientará todos los objetos del proyecto actual." +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Orienta automáticamente todos los objetos de la placa actual." +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "Ocultar/Expandir barra lateral" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" -msgid "Any arrow" -msgstr "⌘+Cualquier flecha" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Movement in camera space" -msgstr "Movimiento en el espacio de la cámara" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Seleccionar una pieza" @@ -11853,121 +11863,29 @@ msgstr "Seleccionar varios objetos" msgid "Select objects by rectangle" msgstr "Seleccionar objetos por rectángulo" -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Flecha arriba" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Mover la selección 10 mm en dirección Y positiva" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Flecha abajo" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Mover la selección 10 mm en dirección Y negativa" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Flecha izquierda" - -msgid "Move selection 10mm in negative X direction" -msgstr "Mover la selección 10 mm en dirección X negativa" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Flecha derecha" - -msgid "Move selection 10mm in positive X direction" -msgstr "Mover la selección 10 mm en dirección X positiva" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "Teclado 1-9: ajustar el filamento para el objeto/pieza" msgid "Movement step set to 1mm" msgstr "Paso de movimiento configurado a 1 mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "Teclado 1-9: ajustar el filamento para el objeto/pieza" +msgid "Movement in camera space" +msgstr "Movimiento en el espacio de la cámara" -msgid "Camera view - Default" -msgstr "Vista de la cámara - Por defecto" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Vista de la cámara - Parte Superior" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Vista de la cámara - Parte inferior" +msgid "Zoom View" +msgstr "Zoom de vista" -msgid "Camera view - Front" -msgstr "Vista de la cámara - Frontal" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Vista de la cámara - Posterior" - -msgid "Camera Angle - Left side" -msgstr "Ángulo de la cámara - Lado izquierdo" - -msgid "Camera Angle - Right side" -msgstr "Ángulo de la cámara - Lado derecho" - -msgid "Select all objects" -msgstr "Seleccionar todos los objetos" - -msgid "Gizmo move" -msgstr "Herramienta de movimiento" - -msgid "Gizmo rotate" -msgstr "Herramienta de rotación" - -msgid "Gizmo scale" -msgstr "Herramienta de escala" - -msgid "Gizmo place face on bed" -msgstr "Herramienta de situar cara en cama" - -msgid "Gizmo cut" -msgstr "Herramienta de corte" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo buleana de malla" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Herramienta FDM para pintar piel rugosa" - -msgid "Gizmo SLA support points" -msgstr "Herramienta de puntos de soporte SLA" - -msgid "Gizmo FDM paint-on seam" -msgstr "Herramienta de pintado de costuras FDM" - -msgid "Gizmo text emboss/engrave" -msgstr "Herramienta de texto en relieve/grabado" - -msgid "Gizmo measure" -msgstr "Gizmo medir" - -msgid "Gizmo assemble" -msgstr "Gizmo ensamblar" - -msgid "Gizmo brim ears" -msgstr "Gizmo orejas de borde" - -msgid "Zoom in" -msgstr "Acercar" - -msgid "Zoom out" -msgstr "Alejar" - -msgid "Toggle printable for object/part" -msgstr "Activar/desactivar la impresión para el objeto/pieza" - -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Cambiar entre Preparar/Previsualizar" - -msgid "Plater" -msgstr "Cama" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Mover: pulsar para ajustar 1mm" @@ -11978,14 +11896,18 @@ msgstr "Soporte/Pintado en color: ajuste del radio del pincel" msgid "Support/Color Painting: adjust section position" msgstr "Soporte/Pintado de color: ajuste de la posición de la sección" -msgid "Gizmo" -msgstr "Herramienta" +msgid "Objects list" +msgstr "Lista de objetos" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Ajustar el número de extrusor para los objetos y las piezas" -msgid "Delete objects, parts, modifiers" -msgstr "Eliminar objetos, piezas, modificadores" +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Espacio" msgid "Select the object/part and press space to change the name" msgstr "Seleccione el objeto/pieza y pulse la barra espaciadora para cambiar el nombre" @@ -11996,43 +11918,48 @@ msgstr "Clic del ratón" msgid "Select the object/part and mouse click to change the name" msgstr "Seleccione el objeto/pieza y haga clic con el ratón para cambiar el nombre" -msgid "Objects List" -msgstr "Lista de Objetos" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Control deslizante vertical - Mover el pulgar activo hacia Arriba" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Control deslizante vertical - Mover el pulgar activo hacia Abajo" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Control deslizante horizontal - Mover el pulgar activo hacia la Izquierda" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Control deslizante horizontal - Mover el pulgar activo hacia la Derecha" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Activar/Desactivar el modo de una capa del control deslizante vertical" - -msgid "On/Off G-code window" -msgstr "Activar/Desactivar ventana de G-Code" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Mover el deslizador 5 veces más rápido" -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Inicio" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Deslizador horizontal - Desplazarse a la posición inicial" +msgid "Not customizable" +msgstr "" -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "Fin" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Deslizador horizontal - Desplazarse a la última posición" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Notas de versión" @@ -16817,8 +16744,8 @@ msgstr "Pasos de precalentamiento" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Insertar múltiples comandos de precalentamiento (por ejemplo, M104.1). Sólo útil para Prusa XL. Para otras impresoras, por favor ajústar a 1." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code escrito en la parte superior del archivo de salida, antes de cualquier otro contenido. Útil para añadir metadatos que el firmware de la impresora lea desde las primeras líneas del archivo (por ejemplo, tiempo estimado de impresión, uso de filamento). Soporta marcadores como {print_time_sec} y {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "G-Code inicial" @@ -18326,12 +18253,36 @@ msgstr "Filamento usado" msgid "Total length of filament used in the print." msgstr "Longitud total de filamento utilizado en la impresión." -msgid "Print time (seconds)" -msgstr "Tiempo de impresión (segundos)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Tiempo total estimado de impresión en segundos. Reemplazado con valor real durante el post-procesamiento." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Longitud de filamento (metros)" @@ -20165,6 +20116,9 @@ msgstr "No se ha detectado una sesión válida. ¿Desea iniciar sesión en 3DPri msgid "Success!" msgstr "¡Éxito!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "¿Estás seguro de cerrar la sesión?" @@ -21115,12 +21069,6 @@ msgstr "El Plug-in de Bambu Network es necesario para las funciones en la nube, msgid "Error: %s" msgstr "Error: %s" -msgid "Show details" -msgstr "Mostrar detalles" - -msgid "Hide details" -msgstr "Ocultar detalles" - msgid "Version to install:" msgstr "Versión a instalar:" @@ -23704,6 +23652,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -23716,6 +23670,210 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Inicio" + +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "Fin" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Flecha izquierda" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Flecha derecha" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Flecha arriba" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Flecha abajo" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Importar datos de geometría de los archivos STL/STEP/3MF/OBJ/AMF" + +msgid "Select all objects" +msgstr "Seleccionar todos los objetos" + +msgid "Paste from clipboard" +msgstr "Pegar desde el portapapeles" + +msgid "Toggle printable for object/part" +msgstr "Activar/desactivar la impresión para el objeto/pieza" + +msgid "Move selection 10mm in negative X direction" +msgstr "Mover la selección 10 mm en dirección X negativa" + +msgid "Move selection 10mm in positive X direction" +msgstr "Mover la selección 10 mm en dirección X positiva" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Mover la selección 10 mm en dirección Y positiva" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Mover la selección 10 mm en dirección Y negativa" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Herramienta de movimiento" + +msgid "Gizmo rotate" +msgstr "Herramienta de rotación" + +msgid "Gizmo scale" +msgstr "Herramienta de escala" + +msgid "Gizmo place face on bed" +msgstr "Herramienta de situar cara en cama" + +msgid "Gizmo cut" +msgstr "Herramienta de corte" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo buleana de malla" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Herramienta de pintado de costuras FDM" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Herramienta FDM para pintar piel rugosa" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Herramienta de texto en relieve/grabado" + +msgid "Gizmo measure" +msgstr "Gizmo medir" + +msgid "Gizmo assemble" +msgstr "Gizmo ensamblar" + +msgid "Gizmo brim ears" +msgstr "Gizmo orejas de borde" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Control deslizante vertical - Mover el pulgar activo hacia Arriba" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Control deslizante vertical - Mover el pulgar activo hacia Abajo" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Control deslizante horizontal - Mover el pulgar activo hacia la Izquierda" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Control deslizante horizontal - Mover el pulgar activo hacia la Derecha" + +msgid "Horizontal slider - Move to start position" +msgstr "Deslizador horizontal - Desplazarse a la posición inicial" + +msgid "Horizontal slider - Move to last position" +msgstr "Deslizador horizontal - Desplazarse a la última posición" + +msgid "Camera view - Default" +msgstr "Vista de la cámara - Por defecto" + +msgid "Camera view - Top" +msgstr "Vista de la cámara - Parte Superior" + +msgid "Camera view - Bottom" +msgstr "Vista de la cámara - Parte inferior" + +msgid "Camera view - Front" +msgstr "Vista de la cámara - Frontal" + +msgid "Camera view - Behind" +msgstr "Vista de la cámara - Posterior" + +msgid "Camera Angle - Left side" +msgstr "Ángulo de la cámara - Lado izquierdo" + +msgid "Camera Angle - Right side" +msgstr "Ángulo de la cámara - Lado derecho" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Acercar" + +msgid "Zoom out" +msgstr "Alejar" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Mostrar/Ocultar el diálogo de ajustes de los dispositivos 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Activar/Desactivar ventana de G-Code" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Activar/Desactivar el modo de una capa del control deslizante vertical" + +msgid "Switch between Prepare/Preview" +msgstr "Cambiar entre Preparar/Previsualizar" + +msgid "Collapse/Expand the sidebar" +msgstr "Ocultar/Expandir barra lateral" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Muestra lista de atajos de teclado" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24016,6 +24174,62 @@ 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 "Tab" +#~ msgstr "Pestaña" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Muestra los FPS en la esquina superior derecha." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki de Publicar 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Guía en vídeo de Publicar 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Barra de herramientas" + +#~ msgid "Switch table page" +#~ msgstr "Cambiar de página de tabla" + +#~ msgid "Global shortcuts" +#~ msgstr "Atajos globales" + +#~ msgid "Middle mouse button" +#~ msgstr "Botón central del ratón" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Orienta automáticamente los objetos seleccionados o todos los objetos. Si hay objetos seleccionados, sólo orienta los seleccionados. En caso contrario, orientará todos los objetos del proyecto actual." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Orienta automáticamente todos los objetos de la placa actual." + +#~ msgid "Any arrow" +#~ msgstr "⌘+Cualquier flecha" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Herramienta de puntos de soporte SLA" + +#~ msgid "Plater" +#~ msgstr "Cama" + +#~ msgid "Gizmo" +#~ msgstr "Herramienta" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Eliminar objetos, piezas, modificadores" + +#~ msgid "Objects List" +#~ msgstr "Lista de Objetos" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code escrito en la parte superior del archivo de salida, antes de cualquier otro contenido. Útil para añadir metadatos que el firmware de la impresora lea desde las primeras líneas del archivo (por ejemplo, tiempo estimado de impresión, uso de filamento). Soporta marcadores como {print_time_sec} y {used_filament_length}." + +#~ msgid "Print time (seconds)" +#~ msgstr "Tiempo de impresión (segundos)" + #~ msgid "Open actions speed dial" #~ msgstr "Abrir el menú rápido de acciones" diff --git a/localization/i18n/eu/OrcaSlicer_eu.po b/localization/i18n/eu/OrcaSlicer_eu.po index a3b02f9e87..717e55078a 100644 --- a/localization/i18n/eu/OrcaSlicer_eu.po +++ b/localization/i18n/eu/OrcaSlicer_eu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2026-07-20 13:33+0200\n" "Last-Translator: Manu Goiogana \n" "Language-Team: \n" @@ -5779,12 +5779,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Eskuinekoa" -msgid "Add" -msgstr "Gehitu" - msgid "Add plate" msgstr "Plaka gehitu" +msgid "Split to objects" +msgstr "Objektuetan zatitu" + +msgid "Add" +msgstr "Gehitu" + msgid "Auto orient all/selected objects" msgstr "Automatikoki orientatu hautatutako objektuak/objektu guztiak" @@ -5797,9 +5800,6 @@ msgstr "Antolatu objektu guztiak" msgid "Arrange objects on selected plates" msgstr "Antolatu hautatutako plaketako objektu guztiak" -msgid "Split to objects" -msgstr "Objektuetan zatitu" - msgid "Assembly View" msgstr "Multzoaren Ikuspegia" @@ -5854,6 +5854,9 @@ msgstr "Ingerada" msgid "Wireframe" msgstr "Alanbre-egitura" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "Ikuspegi errealista" @@ -6389,7 +6392,7 @@ msgstr "Erakutsi hautatutako objektuaren inguruko ingerada 3D eszenan." msgid "Preferences" msgstr "Hobespenak" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8186,9 +8189,6 @@ msgstr "Zabaldu alboko barra" msgid "Collapse sidebar" msgstr "Tolestu alboko barra" -msgid "Tab" -msgstr "Fitxa" - #, c-format, boost-format msgid "Loading file: %s" msgstr "%s fitxategia kargatzen" @@ -9183,10 +9183,10 @@ msgstr "Gailu anitzen kudeaketa" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Aukera hau gaituta, zeregin bat hainbat gailutara bidali eta hainbat gailu kudea ditzakezu aldi berean." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9318,6 +9318,15 @@ msgstr "Saguaren eskuineko botoiarekin arrastatu" msgid "Set the action that dragging the right mouse button should perform." msgstr "Ezarri saguaren eskuineko botoia arrastatzean egin beharreko ekintza." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Garbitu nire aukera hemen..." @@ -9426,11 +9435,39 @@ msgstr "" "Ikuspegiaren fotograma-tasa mugatzen du GPUaren karga eta energia-kontsumoa murrizteko.\n" "Ezarri 0 fotograma-tasa mugagabea erabiltzeko." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "Erakutsi FPS gainjartzea" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Uneko ikuspegiaren FPSa goiko eskuineko izkinan erakusten du." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -9886,13 +9923,8 @@ msgstr "Argitaratu 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Hautatu zein ezarpen argitaratuko diren 3MF fitxategian" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "3MF argitaratzeko wikia" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "3MF argitaratzeko bideo-gida" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10094,6 +10126,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Erakutsi xehetasunak" + +# AI Translated +msgid "Hide details" +msgstr "Ezkutatu xehetasunak" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -11893,67 +11932,39 @@ msgstr "Konfigurazio-paketea aldatu da aurreko Konfigurazio Gidan" msgid "Configuration package changed" msgstr "Konfigurazio-paketea aldatu da" -msgid "Toolbar" -msgstr "Tresna-barra" - -msgid "Objects list" -msgstr "Objektuen zerrenda" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Inportatu geometriaren datuak STL/STEP/3MF/OBJ/AMF fitxategietatik" - -msgid "Paste from clipboard" -msgstr "Itsatsi arbeletik" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Erakutsi/Ezkutatu 3Dconnexion gailuen ezarpenen elkarrizketa-koadroa" - -msgid "Switch table page" -msgstr "Aldatu taula-orria" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Zuriunea" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Erakutsi teklatu-lasterbideen zerrenda" - -msgid "Global shortcuts" -msgstr "Lasterbide globalak" - msgid "Pan View" msgstr "Mugitu ikuspegia" msgid "Rotate View" msgstr "Biratu ikuspegia" -msgid "Middle mouse button" -msgstr "Saguaren erdiko botoia" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "Zooma ikuspegian" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Hautatutako objektuak edo objektu guztiak automatikoki orientatzen ditu. Objektuak hautatuta badaude, hautatutakoak bakarrik orientatzen ditu. Bestela, uneko proiektuko objektu guztiak orientatuko ditu." +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Objektu guztiak automatikoki orientatzen ditu plaka aktiboan." +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "Tolestu/Zabaldu alboko barra" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" -msgid "Any arrow" -msgstr "Edozein gezi" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Movement in camera space" -msgstr "Mugimendua kameraren espazioan" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Hautatu pieza bat" @@ -11964,126 +11975,29 @@ msgstr "Hautatu objektu bat baino gehiago" msgid "Select objects by rectangle" msgstr "Hautatu objektuak laukizuzen bidez" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Gora gezia" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Mugitu hautapena 10 mm Y noranzko positiboan" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Behera gezia" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Mugitu hautapena 10 mm Y noranzko negatiboan" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Ezkerrera gezia" - -msgid "Move selection 10mm in negative X direction" -msgstr "Mugitu hautapena 10 mm X noranzko negatiboan" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Eskuinera gezia" - -msgid "Move selection 10mm in positive X direction" -msgstr "Mugitu hautapena 10 mm X noranzko positiboan" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "1-9 teklak: ezarri filamentua objektuari/piezari" msgid "Movement step set to 1mm" msgstr "Mugimendu-urratsa 1 mm-an ezarri da" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "1-9 teklak: ezarri filamentua objektuari/piezari" +msgid "Movement in camera space" +msgstr "Mugimendua kameraren espazioan" -msgid "Camera view - Default" -msgstr "Kameraren ikuspegia - Lehenetsia" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Kameraren ikuspegia - Goia" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Kameraren ikuspegia - Behea" +msgid "Zoom View" +msgstr "Zooma ikuspegian" -msgid "Camera view - Front" -msgstr "Kameraren ikuspegia - Aurrea" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Kameraren ikuspegia - Atzea" - -msgid "Camera Angle - Left side" -msgstr "Kameraren angelua - Ezker aldea" - -msgid "Camera Angle - Right side" -msgstr "Kameraren angelua - Eskuin aldea" - -msgid "Select all objects" -msgstr "Hautatu objektu guztiak" - -msgid "Gizmo move" -msgstr "Mugitzeko tresna" - -msgid "Gizmo rotate" -msgstr "Biraketa tresna" - -msgid "Gizmo scale" -msgstr "Eskalarako tresna" - -msgid "Gizmo place face on bed" -msgstr "Aurpegia ohean kokatzeko tresna" - -msgid "Gizmo cut" -msgstr "Ebakitzeko tresna" - -msgid "Gizmo mesh boolean" -msgstr "Sare boolearrerako tresna" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "FDM gainazal zimurra margotzeko tresna" - -msgid "Gizmo SLA support points" -msgstr "SLA euskarri-puntuentzako tresna" - -msgid "Gizmo FDM paint-on seam" -msgstr "FDM josturak margotzeko tresna" - -msgid "Gizmo text emboss/engrave" -msgstr "Testua erliebean/grabatuta ipintzeko tresna" - -msgid "Gizmo measure" -msgstr "Neurtzeko tresna" - -msgid "Gizmo assemble" -msgstr "Muntatzeko tresna" - -msgid "Gizmo brim ears" -msgstr "Belarri ertzen tresna" - -msgid "Zoom in" -msgstr "Zooma handitu" - -msgid "Zoom out" -msgstr "Txikiagotu zooma" - -msgid "Toggle printable for object/part" -msgstr "Txandakatu objektuaren/piezaren inprimagarritasuna" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Aldatu Prestatu/Aurrebista artean" - -msgid "Plater" -msgstr "Plaka-antolatzailea" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Mugitu: sakatu 1 mm-ko jauzietan atxikitzeko" @@ -12094,14 +12008,19 @@ msgstr "Euskarri/Kolore margotzea: doitu boligrafoaren erradioa" msgid "Support/Color Painting: adjust section position" msgstr "Euskarri/Kolore-margotzea: doitu sekzioaren posizioa" -msgid "Gizmo" -msgstr "Tresna" +msgid "Objects list" +msgstr "Objektuen zerrenda" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Ezarri objektuen eta piezen estrusore zenbakia" -msgid "Delete objects, parts, modifiers" -msgstr "Ezabatu objektuak, piezak eta aldatzaileak" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Zuriunea" msgid "Select the object/part and press space to change the name" msgstr "Hautatu objektua/partea eta sakatu zuriunea izena aldatzeko" @@ -12112,45 +12031,48 @@ msgstr "Saguaren klika" msgid "Select the object/part and mouse click to change the name" msgstr "Hautatu objektua/pieza eta egin klik izena aldatzeko" -msgid "Objects List" -msgstr "Objektuen zerrenda" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Graduatzaile bertikala - Mugitu hatz aktiboa gora" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Graduatzaile bertikala - Mugitu hatz aktiboa behera" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Graduatzaile horizontala - Mugitu hatz aktiboa ezkerrera" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Graduatzaile horizontala - Mugitu hatz aktiboa eskuinera" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Aktibatu/Desaktibatu graduatzaile bertikalaren geruza bakarreko modua" - -msgid "On/Off G-code window" -msgstr "G-code leihoa aktibatu/desaktibatu" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Mugitu graduatzailea 5 aldiz azkarrago" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Hasiera" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Graduatzaile horizontala - Mugitu hasierako posiziora" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "Amaiera" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Graduatzaile horizontala - Mugitu azken posiziora" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Argitalpen-oharra" @@ -16987,8 +16909,8 @@ msgstr "Aurrez berotzeko urratsak" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Txertatu aurrez berotzeko hainbat komando (adib. M104.1). Prusa XL-rakobakarrik da erabilgarria. Beste inprimagailuetarako, ezarri 1." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "Irteerako fitxategiaren hasiera-hasieran idatzitako G-codea, beste edozein eduki baino lehen. Inprimagailuaren firmwareak fitxategiaren lehen lerroetatik irakurtzen dituen metadatuak gehitzeko erabilgarria da (adibidez, zenbatetsitako inprimatze-denbora edo filamentuen erabilera). {print_time_sec} eta {used_filament_length} moduko leku-markak onartzen ditu." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "Hasierako G-codea" @@ -18505,12 +18427,36 @@ msgstr "Erabilitako filamentua" msgid "Total length of filament used in the print." msgstr "Inprimaketan erabilitako filamentuen luzera osoa." -msgid "Print time (seconds)" -msgstr "Inprimatze-denbora (segundoak)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Kalkulatutako guztizko inprimatze-denbora, segundotan. Benetako balioarekin ordezten da osteko prozesatzean." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Filamentuaren luzera (metroak)" @@ -20345,6 +20291,9 @@ msgstr "Ez da baliozko saiorik detektatu. 3DPrinterOS-en saioa hasi nahi duzu?" msgid "Success!" msgstr "Ondo egin da!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Ziur saioa amaitu nahi duzula?" @@ -21300,13 +21249,6 @@ msgstr "Bambu sareko plugina beharrezkoa da hodeiko funtzioetarako, inprimagailu msgid "Error: %s" msgstr "Errorea: %s" -msgid "Show details" -msgstr "Erakutsi xehetasunak" - -# AI Translated -msgid "Hide details" -msgstr "Ezkutatu xehetasunak" - msgid "Version to install:" msgstr "Instalatu beharreko bertsioa:" @@ -23891,6 +23833,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -23903,6 +23851,216 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Hasiera" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "Amaiera" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Ezkerrera gezia" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Eskuinera gezia" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Gora gezia" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Behera gezia" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Inportatu geometriaren datuak STL/STEP/3MF/OBJ/AMF fitxategietatik" + +msgid "Select all objects" +msgstr "Hautatu objektu guztiak" + +msgid "Paste from clipboard" +msgstr "Itsatsi arbeletik" + +msgid "Toggle printable for object/part" +msgstr "Txandakatu objektuaren/piezaren inprimagarritasuna" + +msgid "Move selection 10mm in negative X direction" +msgstr "Mugitu hautapena 10 mm X noranzko negatiboan" + +msgid "Move selection 10mm in positive X direction" +msgstr "Mugitu hautapena 10 mm X noranzko positiboan" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Mugitu hautapena 10 mm Y noranzko positiboan" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Mugitu hautapena 10 mm Y noranzko negatiboan" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Mugitzeko tresna" + +msgid "Gizmo rotate" +msgstr "Biraketa tresna" + +msgid "Gizmo scale" +msgstr "Eskalarako tresna" + +msgid "Gizmo place face on bed" +msgstr "Aurpegia ohean kokatzeko tresna" + +msgid "Gizmo cut" +msgstr "Ebakitzeko tresna" + +msgid "Gizmo mesh boolean" +msgstr "Sare boolearrerako tresna" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "FDM josturak margotzeko tresna" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "FDM gainazal zimurra margotzeko tresna" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Testua erliebean/grabatuta ipintzeko tresna" + +msgid "Gizmo measure" +msgstr "Neurtzeko tresna" + +msgid "Gizmo assemble" +msgstr "Muntatzeko tresna" + +msgid "Gizmo brim ears" +msgstr "Belarri ertzen tresna" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Graduatzaile bertikala - Mugitu hatz aktiboa gora" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Graduatzaile bertikala - Mugitu hatz aktiboa behera" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Graduatzaile horizontala - Mugitu hatz aktiboa ezkerrera" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Graduatzaile horizontala - Mugitu hatz aktiboa eskuinera" + +msgid "Horizontal slider - Move to start position" +msgstr "Graduatzaile horizontala - Mugitu hasierako posiziora" + +msgid "Horizontal slider - Move to last position" +msgstr "Graduatzaile horizontala - Mugitu azken posiziora" + +msgid "Camera view - Default" +msgstr "Kameraren ikuspegia - Lehenetsia" + +msgid "Camera view - Top" +msgstr "Kameraren ikuspegia - Goia" + +msgid "Camera view - Bottom" +msgstr "Kameraren ikuspegia - Behea" + +msgid "Camera view - Front" +msgstr "Kameraren ikuspegia - Aurrea" + +msgid "Camera view - Behind" +msgstr "Kameraren ikuspegia - Atzea" + +msgid "Camera Angle - Left side" +msgstr "Kameraren angelua - Ezker aldea" + +msgid "Camera Angle - Right side" +msgstr "Kameraren angelua - Eskuin aldea" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Zooma handitu" + +msgid "Zoom out" +msgstr "Txikiagotu zooma" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Erakutsi/Ezkutatu 3Dconnexion gailuen ezarpenen elkarrizketa-koadroa" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "G-code leihoa aktibatu/desaktibatu" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Aktibatu/Desaktibatu graduatzaile bertikalaren geruza bakarreko modua" + +msgid "Switch between Prepare/Preview" +msgstr "Aldatu Prestatu/Aurrebista artean" + +msgid "Collapse/Expand the sidebar" +msgstr "Tolestu/Zabaldu alboko barra" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Erakutsi teklatu-lasterbideen zerrenda" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24203,6 +24361,62 @@ msgstr "" "Saihestu okertzea\n" "Ba al zenekien ABS bezalako okertzeko joera duten materialak inprimatzean ohe beroaren tenperatura egoki igotzeak okertzeko probabilitatea murriztu dezakeela?" +#~ msgid "Tab" +#~ msgstr "Fitxa" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Uneko ikuspegiaren FPSa goiko eskuineko izkinan erakusten du." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "3MF argitaratzeko wikia" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "3MF argitaratzeko bideo-gida" + +#~ msgid "Toolbar" +#~ msgstr "Tresna-barra" + +#~ msgid "Switch table page" +#~ msgstr "Aldatu taula-orria" + +#~ msgid "Global shortcuts" +#~ msgstr "Lasterbide globalak" + +#~ msgid "Middle mouse button" +#~ msgstr "Saguaren erdiko botoia" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Hautatutako objektuak edo objektu guztiak automatikoki orientatzen ditu. Objektuak hautatuta badaude, hautatutakoak bakarrik orientatzen ditu. Bestela, uneko proiektuko objektu guztiak orientatuko ditu." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Objektu guztiak automatikoki orientatzen ditu plaka aktiboan." + +#~ msgid "Any arrow" +#~ msgstr "Edozein gezi" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "SLA euskarri-puntuentzako tresna" + +#~ msgid "Plater" +#~ msgstr "Plaka-antolatzailea" + +#~ msgid "Gizmo" +#~ msgstr "Tresna" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Ezabatu objektuak, piezak eta aldatzaileak" + +#~ msgid "Objects List" +#~ msgstr "Objektuen zerrenda" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "Irteerako fitxategiaren hasiera-hasieran idatzitako G-codea, beste edozein eduki baino lehen. Inprimagailuaren firmwareak fitxategiaren lehen lerroetatik irakurtzen dituen metadatuak gehitzeko erabilgarria da (adibidez, zenbatetsitako inprimatze-denbora edo filamentuen erabilera). {print_time_sec} eta {used_filament_length} moduko leku-markak onartzen ditu." + +#~ msgid "Print time (seconds)" +#~ msgstr "Inprimatze-denbora (segundoak)" + #~ msgid "Open actions speed dial" #~ msgstr "Ekintzen markatze azkarra ireki" diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index a4c3c88954..f9f5f38865 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: Guislain Cyril, Thomas Lété\n" @@ -5822,12 +5822,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Droite" -msgid "Add" -msgstr "Ajouter" - msgid "Add plate" msgstr "Ajouter un plateau" +msgid "Split to objects" +msgstr "Diviser en objets individuels" + +msgid "Add" +msgstr "Ajouter" + msgid "Auto orient all/selected objects" msgstr "Orientation automatique de tous les objets sélectionnés" @@ -5840,9 +5843,6 @@ msgstr "Organiser tous les objets" msgid "Arrange objects on selected plates" msgstr "Organiser les objets sur les plaques sélectionnées" -msgid "Split to objects" -msgstr "Diviser en objets individuels" - msgid "Assembly View" msgstr "Vue de l'assemblage" @@ -5897,6 +5897,9 @@ msgstr "Contour" msgid "Wireframe" msgstr "Fil de fer" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "Vue réaliste" @@ -6436,7 +6439,7 @@ msgstr "Afficher le tracé contour de l’objet sélectionné dans la scène 3D. msgid "Preferences" msgstr "Préférences" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8242,9 +8245,6 @@ msgstr "Agrandir la barre latérale" msgid "Collapse sidebar" msgstr "Réduire la barre latérale" -msgid "Tab" -msgstr "Onglet" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Chargement du fichier : %s" @@ -9250,10 +9250,10 @@ msgstr "Gestion multi appareils" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Si cette option est activée, vous pouvez envoyer une tâche à plusieurs appareils en même temps et gérer plusieurs appareils." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9385,6 +9385,15 @@ msgstr "Glisser avec le bouton droit de la souris" msgid "Set the action that dragging the right mouse button should perform." msgstr "Définit l’action effectuée en faisant glisser le bouton droit de la souris." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Effacer mon choix sur…" @@ -9495,11 +9504,39 @@ msgstr "" "Limite la fréquence d’images de la vue pour réduire la charge du GPU et la consommation d’énergie.\n" "Réglez sur 0 pour une fréquence d’images illimitée." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "Afficher la superposition des FPS" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Affiche les FPS actuels de la vue dans le coin supérieur droit." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -9956,13 +9993,8 @@ msgstr "Publier 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Sélectionnez les réglages à publier dans le fichier 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki de Publier 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Guide vidéo de Publier 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10164,6 +10196,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Afficher les détails" + +# AI Translated +msgid "Hide details" +msgstr "Masquer les détails" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -11988,67 +12027,39 @@ msgstr "Le paquet de configuration a été modifié dans le guide de configurati msgid "Configuration package changed" msgstr "Package de configuration modifié" -msgid "Toolbar" -msgstr "Barre d'outils" - -msgid "Objects list" -msgstr "Liste des objets" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Importez des données de géométrie à partir de fichiers STL/STEP/3MF/OBJ/AMF" - -msgid "Paste from clipboard" -msgstr "Coller depuis le presse-papier" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Afficher/Masquer la boîte de dialogue des paramètres des périphériques 3Dconnexion" - -msgid "Switch table page" -msgstr "Page du tableau de commutation" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Espace" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Afficher la liste des raccourcis clavier" - -msgid "Global shortcuts" -msgstr "Raccourcis globaux" - msgid "Pan View" msgstr "Déplacement de la vue" msgid "Rotate View" msgstr "Rotation de la vue" -msgid "Middle mouse button" -msgstr "Bouton central de la souris" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "Zoom de la vue" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Oriente automatiquement les objets sélectionnés ou tous les objets. S’il y a des objets sélectionnés, seuls ceux-ci sont orientés. Sinon, tous les objets du projet en cours sont orientés." +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Oriente automatiquement tous les objets de la plaque actuelle." +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "Réduire/développer la barre latérale" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" -msgid "Any arrow" -msgstr "Toutes les flèches" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Movement in camera space" -msgstr "Mouvement dans l'espace de la caméra" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Sélectionner une pièce" @@ -12059,126 +12070,29 @@ msgstr "Sélectionner plusieurs objets" msgid "Select objects by rectangle" msgstr "Sélectionner les objets par rectangle" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Flèche haut" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Déplacer la sélection de 10 mm dans la direction positive Y" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Flèche bas" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Déplacer la sélection de 10 mm dans la direction négative Y" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Flèche gauche" - -msgid "Move selection 10mm in negative X direction" -msgstr "Déplacer la sélection de 10 mm dans la direction négative X" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Flèche droite" - -msgid "Move selection 10mm in positive X direction" -msgstr "Déplacer la sélection de 10 mm dans la direction positive X" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "clavier 1-9 : définir le filament pour l'objet/la pièce" msgid "Movement step set to 1mm" msgstr "Pas du mouvement réglé sur 1 mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "clavier 1-9 : définir le filament pour l'objet/la pièce" +msgid "Movement in camera space" +msgstr "Mouvement dans l'espace de la caméra" -msgid "Camera view - Default" -msgstr "Vue caméra - Par défaut" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Vue caméra - Haut" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Vue caméra - Bas" +msgid "Zoom View" +msgstr "Zoom de la vue" -msgid "Camera view - Front" -msgstr "Vue de la caméra - Avant" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Vue caméra - Derrière" - -msgid "Camera Angle - Left side" -msgstr "Angle de caméra - Côté gauche" - -msgid "Camera Angle - Right side" -msgstr "Angle de caméra - Côté droit" - -msgid "Select all objects" -msgstr "Sélectionner tous les objets" - -msgid "Gizmo move" -msgstr "Gizmo déplacer" - -msgid "Gizmo rotate" -msgstr "Gizmo pivoter" - -msgid "Gizmo scale" -msgstr "Gizmo redimensionner" - -msgid "Gizmo place face on bed" -msgstr "Gizmo placer la face sur le plateau" - -msgid "Gizmo cut" -msgstr "Gizmo couper" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo booléennes" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Outil FDM de surface irrégulière peinte" - -msgid "Gizmo SLA support points" -msgstr "Gizmo Point de support SLA" - -msgid "Gizmo FDM paint-on seam" -msgstr "Gizmo Peinture de la couture FDM" - -msgid "Gizmo text emboss/engrave" -msgstr "Gizmo embosser/graver du texte" - -msgid "Gizmo measure" -msgstr "Gizmo mesurer" - -msgid "Gizmo assemble" -msgstr "Gizmo assembler" - -msgid "Gizmo brim ears" -msgstr "Gizmo bordure à oreilles" - -msgid "Zoom in" -msgstr "Zoom avant" - -msgid "Zoom out" -msgstr "Zoom arrière" - -msgid "Toggle printable for object/part" -msgstr "Basculer l’état imprimable de l’objet/de la pièce" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Basculer entre Préparer/Aperçu" - -msgid "Plater" -msgstr "Plateau" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Déplacer : appuyez pour aligner de 1 mm" @@ -12189,14 +12103,19 @@ msgstr "Support/Peinture couleur : ajustez le rayon du stylet" msgid "Support/Color Painting: adjust section position" msgstr "Support/Peinture couleur : ajuster la position de la section" -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Liste des objets" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Définir le numéro d'extrudeur pour les objets et les pièces" -msgid "Delete objects, parts, modifiers" -msgstr "Supprimer des objets, des pièces, des modificateurs" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Espace" msgid "Select the object/part and press space to change the name" msgstr "Sélectionnez l'objet/la pièce et appuyez sur espace pour changer le nom" @@ -12207,45 +12126,48 @@ msgstr "Clic de souris" msgid "Select the object/part and mouse click to change the name" msgstr "Sélectionnez l'objet/la pièce et cliquez avec la souris pour changer le nom" -msgid "Objects List" -msgstr "Liste des objets" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Barre de défilement verticale - Déplacer le curseur actif vers le Haut" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Barre de défilement verticale - Déplacer le curseur actif vers le Bas" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Barre de défilement horizontale - Déplacer le curseur actif vers la Gauche" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Barre de défilement horizontale - Déplacer le curseur actif vers la Droite" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "On/Off mode couche unique de la barre de défilement verticale" - -msgid "On/Off G-code window" -msgstr "On/Off Fenêtre G-code" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Déplacez le curseur 5 fois plus vite" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Début" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Curseur horizontal - Déplacement vers la position de départ" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "Fin" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Curseur horizontal - Déplacer vers la dernière position" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Note de version" @@ -17090,8 +17012,8 @@ msgstr "Étapes de préchauffage" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Insérer plusieurs commandes de préchauffage (par exemple M104.1). Uniquement utile pour la Prusa XL. Pour les autres imprimantes, veuillez le régler sur 1." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code écrit tout en haut du fichier de sortie, avant tout autre contenu. Utile pour ajouter des métadonnées que le firmware de l'imprimante lit depuis les premières lignes du fichier (ex. temps d'impression estimé, utilisation du filament). Prend en charge les espaces réservés comme {print_time_sec} et {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "G-code de démarrage" @@ -18615,12 +18537,36 @@ msgstr "Filament utilisé" msgid "Total length of filament used in the print." msgstr "Longueur totale de filament utilisé dans l'impression." -msgid "Print time (seconds)" -msgstr "Temps d'impression (secondes)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Temps d'impression total estimé en secondes. Remplacé par la valeur réelle lors du post-traitement." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Longueur de filament (mètres)" @@ -20455,6 +20401,9 @@ msgstr "Aucune session valide détectée. Procéder à la connexion à 3DPrinter msgid "Success!" msgstr "Succès !" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Voulez-vous vraiment vous déconnecter ?" @@ -21410,13 +21359,6 @@ msgstr "Le plug-in réseau Bambu est requis pour les fonctionnalités cloud, la msgid "Error: %s" msgstr "Erreur : %s" -msgid "Show details" -msgstr "Afficher les détails" - -# AI Translated -msgid "Hide details" -msgstr "Masquer les détails" - msgid "Version to install:" msgstr "Version à installer :" @@ -24045,6 +23987,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24057,6 +24005,216 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Début" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "Fin" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Flèche gauche" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Flèche droite" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Flèche haut" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Flèche bas" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Importez des données de géométrie à partir de fichiers STL/STEP/3MF/OBJ/AMF" + +msgid "Select all objects" +msgstr "Sélectionner tous les objets" + +msgid "Paste from clipboard" +msgstr "Coller depuis le presse-papier" + +msgid "Toggle printable for object/part" +msgstr "Basculer l’état imprimable de l’objet/de la pièce" + +msgid "Move selection 10mm in negative X direction" +msgstr "Déplacer la sélection de 10 mm dans la direction négative X" + +msgid "Move selection 10mm in positive X direction" +msgstr "Déplacer la sélection de 10 mm dans la direction positive X" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Déplacer la sélection de 10 mm dans la direction positive Y" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Déplacer la sélection de 10 mm dans la direction négative Y" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Gizmo déplacer" + +msgid "Gizmo rotate" +msgstr "Gizmo pivoter" + +msgid "Gizmo scale" +msgstr "Gizmo redimensionner" + +msgid "Gizmo place face on bed" +msgstr "Gizmo placer la face sur le plateau" + +msgid "Gizmo cut" +msgstr "Gizmo couper" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo booléennes" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Gizmo Peinture de la couture FDM" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Outil FDM de surface irrégulière peinte" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Gizmo embosser/graver du texte" + +msgid "Gizmo measure" +msgstr "Gizmo mesurer" + +msgid "Gizmo assemble" +msgstr "Gizmo assembler" + +msgid "Gizmo brim ears" +msgstr "Gizmo bordure à oreilles" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Barre de défilement verticale - Déplacer le curseur actif vers le Haut" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Barre de défilement verticale - Déplacer le curseur actif vers le Bas" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Barre de défilement horizontale - Déplacer le curseur actif vers la Gauche" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Barre de défilement horizontale - Déplacer le curseur actif vers la Droite" + +msgid "Horizontal slider - Move to start position" +msgstr "Curseur horizontal - Déplacement vers la position de départ" + +msgid "Horizontal slider - Move to last position" +msgstr "Curseur horizontal - Déplacer vers la dernière position" + +msgid "Camera view - Default" +msgstr "Vue caméra - Par défaut" + +msgid "Camera view - Top" +msgstr "Vue caméra - Haut" + +msgid "Camera view - Bottom" +msgstr "Vue caméra - Bas" + +msgid "Camera view - Front" +msgstr "Vue de la caméra - Avant" + +msgid "Camera view - Behind" +msgstr "Vue caméra - Derrière" + +msgid "Camera Angle - Left side" +msgstr "Angle de caméra - Côté gauche" + +msgid "Camera Angle - Right side" +msgstr "Angle de caméra - Côté droit" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Zoom avant" + +msgid "Zoom out" +msgstr "Zoom arrière" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Afficher/Masquer la boîte de dialogue des paramètres des périphériques 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "On/Off Fenêtre G-code" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "On/Off mode couche unique de la barre de défilement verticale" + +msgid "Switch between Prepare/Preview" +msgstr "Basculer entre Préparer/Aperçu" + +msgid "Collapse/Expand the sidebar" +msgstr "Réduire/développer la barre latérale" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Afficher la liste des raccourcis clavier" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24357,6 +24515,62 @@ msgstr "" "Éviter la déformation\n" "Saviez-vous que lors de l’impression de matériaux susceptibles de se déformer, tels que l’ABS, une augmentation appropriée de la température du plateau chauffant peut réduire la probabilité de déformation?" +#~ msgid "Tab" +#~ msgstr "Onglet" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Affiche les FPS actuels de la vue dans le coin supérieur droit." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki de Publier 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Guide vidéo de Publier 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Barre d'outils" + +#~ msgid "Switch table page" +#~ msgstr "Page du tableau de commutation" + +#~ msgid "Global shortcuts" +#~ msgstr "Raccourcis globaux" + +#~ msgid "Middle mouse button" +#~ msgstr "Bouton central de la souris" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Oriente automatiquement les objets sélectionnés ou tous les objets. S’il y a des objets sélectionnés, seuls ceux-ci sont orientés. Sinon, tous les objets du projet en cours sont orientés." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Oriente automatiquement tous les objets de la plaque actuelle." + +#~ msgid "Any arrow" +#~ msgstr "Toutes les flèches" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Gizmo Point de support SLA" + +#~ msgid "Plater" +#~ msgstr "Plateau" + +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Supprimer des objets, des pièces, des modificateurs" + +#~ msgid "Objects List" +#~ msgstr "Liste des objets" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code écrit tout en haut du fichier de sortie, avant tout autre contenu. Utile pour ajouter des métadonnées que le firmware de l'imprimante lit depuis les premières lignes du fichier (ex. temps d'impression estimé, utilisation du filament). Prend en charge les espaces réservés comme {print_time_sec} et {used_filament_length}." + +#~ msgid "Print time (seconds)" +#~ msgstr "Temps d'impression (secondes)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Ouvrir le menu d'actions rapides" diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index f83b1679e5..4299ad09e8 100644 --- a/localization/i18n/hu/OrcaSlicer_hu.po +++ b/localization/i18n/hu/OrcaSlicer_hu.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -5919,12 +5919,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Jobb" -msgid "Add" -msgstr "Hozzáadás" - msgid "Add plate" msgstr "Tálca hozzáadása" +msgid "Split to objects" +msgstr "Felosztás objektumokra" + +msgid "Add" +msgstr "Hozzáadás" + msgid "Auto orient all/selected objects" msgstr "Az összes/kiválasztott objektum automatikus tájolása" @@ -5937,9 +5940,6 @@ msgstr "Összes objektum elrendezése" msgid "Arrange objects on selected plates" msgstr "Objektumok elrendezése a kiválasztott tálcákon" -msgid "Split to objects" -msgstr "Felosztás objektumokra" - msgid "Assembly View" msgstr "Összeszerelési nézet" @@ -5996,6 +5996,9 @@ msgstr "Körvonal" msgid "Wireframe" msgstr "Drótváz" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "Valósághű nézet" @@ -6538,7 +6541,7 @@ msgstr "Körvonal megjelenítése a kijelölt objektum körül a 3D nézetben." msgid "Preferences" msgstr "Beállítások" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8358,10 +8361,6 @@ msgstr "Az oldalsáv kibontása" msgid "Collapse sidebar" msgstr "&Az oldalsáv összecsukása" -# AI Translated -msgid "Tab" -msgstr "Tab" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Fájl betöltése: %s" @@ -9386,10 +9385,10 @@ msgstr "Többeszközös kezelés" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Ezzel az opcióval egyszerre több eszközre küldhetsz feladatot és több eszközt kezelhetsz." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9521,6 +9520,15 @@ msgstr "Jobb egérhúzás" msgid "Set the action that dragging the right mouse button should perform." msgstr "Állítsd be a jobb egérgomb húzásával végrehajtandó műveletet." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Választásom törlése ennél..." @@ -9637,11 +9645,39 @@ msgstr "" "Korlátozza a nézetablak képsebességét a GPU terhelés és az energiafogyasztás csökkentése érdekében.\n" "Állítsd 0-ra a korlátlan képkockasebességhez." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "FPS fedvény megjelenítése" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Megjeleníti az aktuális nézetablak FPS-t a jobb felső sarokban." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10116,13 +10152,8 @@ msgstr "3MF közzététele..." msgid "Select which settings to be published in the 3MF file" msgstr "Válaszd ki, mely beállítások kerüljenek közzétételre a 3MF fájlban" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "3MF közzététele wiki" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "3MF közzététele videós útmutató" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10324,6 +10355,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Részletek megjelenítése" + +# AI Translated +msgid "Hide details" +msgstr "Részletek elrejtése" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12170,67 +12208,39 @@ msgstr "A konfigurációs csomag az előző konfigurációs útmutatóban módos msgid "Configuration package changed" msgstr "Konfigurációs csomag megváltozott" -msgid "Toolbar" -msgstr "Eszköztár" - -msgid "Objects list" -msgstr "Objektumok listája" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Geometriai adatok importálása STL/STEP/3MF/OBJ/AMF fájlokból" - -msgid "Paste from clipboard" -msgstr "Beillesztés a vágólapról" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "3Dconnexion-eszközbeállítások párbeszédablak megjelenítése/elrejtése" - -msgid "Switch table page" -msgstr "Váltás táblázatra" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Szóköz" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Gyorsgombok listájának megjelenítése" - -msgid "Global shortcuts" -msgstr "Globális gyorsbillentyűk" - msgid "Pan View" msgstr "Pásztázó nézet" msgid "Rotate View" msgstr "Forgató nézet" -msgid "Middle mouse button" -msgstr "Középső egérgomb" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "Nagyító nézet" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Automatikusan beállítja a kijelölt objektumok vagy az összes objektum tájolását. Ha vannak kijelölt objektumok, akkor csak a kijelölteket, ellenkező esetben pedig a projektben levő összes objektumot orientálja." +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Automatikusan orientálja az aktuális tálcán levő összes objektumot." +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "Az oldalsáv összecsukása/kinyitása" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" -msgid "Any arrow" -msgstr "Bármelyik nyílbillentyű" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Movement in camera space" -msgstr "Mozgás a kameratérben" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Válassz egy tárgyat" @@ -12241,126 +12251,29 @@ msgstr "Több objektum kijelölése" msgid "Select objects by rectangle" msgstr "Objektumok kijelölése téglalapok alapján" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Felfelé nyíl" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Kijelölés mozgatása 10 mm-rel pozitív Y irányban" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Lefelé nyíl" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Kijelölés mozgatása 10 mm-rel negatív Y irányban" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Balra nyíl" - -msgid "Move selection 10mm in negative X direction" -msgstr "Kijelölés mozgatása 10 mm-rel negatív X irányban" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Jobbra nyíl" - -msgid "Move selection 10mm in positive X direction" -msgstr "Kijelölés mozgatása 10 mm-rel pozitív X irányban" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "filament hozzárendelése az objektumhoz/tárgyhoz" msgid "Movement step set to 1mm" msgstr "Mozgatás lépéstávolsága 1mm-re állítva" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "filament hozzárendelése az objektumhoz/tárgyhoz" +msgid "Movement in camera space" +msgstr "Mozgás a kameratérben" -msgid "Camera view - Default" -msgstr "Kameranézet - Alapértelmezett" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Kameranézet - Felülről" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Kameranézet - Alulról" +msgid "Zoom View" +msgstr "Nagyító nézet" -msgid "Camera view - Front" -msgstr "Kameranézet - Elölről" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Kameranézet - Hátulról" - -msgid "Camera Angle - Left side" -msgstr "Kameranézet - Bal oldal" - -msgid "Camera Angle - Right side" -msgstr "Kameranézet - Jobb oldal" - -msgid "Select all objects" -msgstr "Összes objektum kijelölése" - -msgid "Gizmo move" -msgstr "Gizmo mozgatás" - -msgid "Gizmo rotate" -msgstr "Gizmo forgatás" - -msgid "Gizmo scale" -msgstr "Gizmo átméretezés" - -msgid "Gizmo place face on bed" -msgstr "Gizmo felület asztalra illesztése" - -msgid "Gizmo cut" -msgstr "Gizmo vágás" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo modellháló logikai műveletek" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM barázdált felület festése" - -msgid "Gizmo SLA support points" -msgstr "Gizmo SLA támaszpontok" - -msgid "Gizmo FDM paint-on seam" -msgstr "Gizmo FDM varrat festés" - -msgid "Gizmo text emboss/engrave" -msgstr "Gizmo szöveg dombornyomás/gravírozás" - -msgid "Gizmo measure" -msgstr "Gizmo mérés" - -msgid "Gizmo assemble" -msgstr "Gizmo összeállítás" - -msgid "Gizmo brim ears" -msgstr "Gizmo peremfülek" - -msgid "Zoom in" -msgstr "Zoom közelítés" - -msgid "Zoom out" -msgstr "Zoom távolítás" - -msgid "Toggle printable for object/part" -msgstr "Nyomtathatóság váltása objektumhoz/alkatrészhez" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Váltás előkészítés/előnézet között" - -msgid "Plater" -msgstr "Tálca" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Mozgatás: lenyomva 1 mm-es lépésekre illeszt" @@ -12371,15 +12284,19 @@ msgstr "Támasz/Színfestés: toll méretének beállítása" msgid "Support/Color Painting: adjust section position" msgstr "Támasz/Színfestés: metszet pozíciójának beállítása" -# AI Translated -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Objektumok listája" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Extruder szám beállítása az objektumok és tárgyak számára" -msgid "Delete objects, parts, modifiers" -msgstr "Objektumok, tárgyak, módosítók törlése" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Szóköz" msgid "Select the object/part and press space to change the name" msgstr "Válaszd ki az objektumot vagy alkatrészt, majd nyomd meg a szóközt a név megváltoztatásához" @@ -12390,45 +12307,48 @@ msgstr "Egérkattintás" msgid "Select the object/part and mouse click to change the name" msgstr "Válaszd ki az objektumot vagy alkatrészt, majd kattints a nevére az átnevezéshez" -msgid "Objects List" -msgstr "Tárgyak listája" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Függőleges csúszka - Az aktív csúszka felfelé mozgatása" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Függőleges csúszka - Az aktív csúszka lefelé mozgatása" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Vízszintes csúszka - Az aktív csúszka balra mozgatása" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Vízszintes csúszka - Az aktív csúszka jobbra mozgatása" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Függőleges csúszka egyréteges módjának ki/bekapcsolása" - -msgid "On/Off G-code window" -msgstr "G-kód ablak be/ki" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Csúszka 5x gyorsabb mozgatása" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Vízszintes csúszka - Ugrás a kezdőpozícióra" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Vízszintes csúszka - Ugrás az utolsó pozícióra" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Verzióinformáció" @@ -17350,8 +17270,8 @@ msgstr "Előmelegítési lépések" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Több előmelegítési parancs beszúrása (pl. M104.1). Ez csak a Prusa XL esetén hasznos. Más nyomtatóknál állítsd 1-re." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "A kimeneti fájl legelejére írt G-kód, minden más tartalom előtt. Hasznos olyan metaadatok hozzáadására, amelyeket a nyomtató firmware-e a fájl első soraiból olvas ki (pl. becsült nyomtatási idő, filamentfelhasználás). Támogatja az olyan helyőrzőket, mint a {print_time_sec} és a {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "Kezdő G-kód" @@ -18888,12 +18808,36 @@ msgstr "Használt filament" msgid "Total length of filament used in the print." msgstr "A nyomtatás során felhasznált filament teljes hossza." -msgid "Print time (seconds)" -msgstr "Nyomtatási idő (másodperc)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "A teljes becsült nyomtatási idő másodpercben. Az utófeldolgozás során a tényleges értékre cserélődik." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Filament hossza (méter)" @@ -20761,6 +20705,9 @@ msgstr "Nem található érvényes munkamenet. Folytatod a bejelentkezést a 3DP msgid "Success!" msgstr "Sikerült!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Biztosan kijelentkezel?" @@ -21810,13 +21757,6 @@ msgstr "A Bambu hálózati bővítmény szükséges a felhőfunkciókhoz, a nyom msgid "Error: %s" msgstr "Hiba: %s" -msgid "Show details" -msgstr "Részletek megjelenítése" - -# AI Translated -msgid "Hide details" -msgstr "Részletek elrejtése" - msgid "Version to install:" msgstr "Telepítendő verzió:" @@ -24473,6 +24413,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24485,6 +24431,216 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Balra nyíl" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Jobbra nyíl" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Felfelé nyíl" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Lefelé nyíl" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Geometriai adatok importálása STL/STEP/3MF/OBJ/AMF fájlokból" + +msgid "Select all objects" +msgstr "Összes objektum kijelölése" + +msgid "Paste from clipboard" +msgstr "Beillesztés a vágólapról" + +msgid "Toggle printable for object/part" +msgstr "Nyomtathatóság váltása objektumhoz/alkatrészhez" + +msgid "Move selection 10mm in negative X direction" +msgstr "Kijelölés mozgatása 10 mm-rel negatív X irányban" + +msgid "Move selection 10mm in positive X direction" +msgstr "Kijelölés mozgatása 10 mm-rel pozitív X irányban" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Kijelölés mozgatása 10 mm-rel pozitív Y irányban" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Kijelölés mozgatása 10 mm-rel negatív Y irányban" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Gizmo mozgatás" + +msgid "Gizmo rotate" +msgstr "Gizmo forgatás" + +msgid "Gizmo scale" +msgstr "Gizmo átméretezés" + +msgid "Gizmo place face on bed" +msgstr "Gizmo felület asztalra illesztése" + +msgid "Gizmo cut" +msgstr "Gizmo vágás" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo modellháló logikai műveletek" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Gizmo FDM varrat festés" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo FDM barázdált felület festése" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Gizmo szöveg dombornyomás/gravírozás" + +msgid "Gizmo measure" +msgstr "Gizmo mérés" + +msgid "Gizmo assemble" +msgstr "Gizmo összeállítás" + +msgid "Gizmo brim ears" +msgstr "Gizmo peremfülek" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Függőleges csúszka - Az aktív csúszka felfelé mozgatása" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Függőleges csúszka - Az aktív csúszka lefelé mozgatása" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Vízszintes csúszka - Az aktív csúszka balra mozgatása" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Vízszintes csúszka - Az aktív csúszka jobbra mozgatása" + +msgid "Horizontal slider - Move to start position" +msgstr "Vízszintes csúszka - Ugrás a kezdőpozícióra" + +msgid "Horizontal slider - Move to last position" +msgstr "Vízszintes csúszka - Ugrás az utolsó pozícióra" + +msgid "Camera view - Default" +msgstr "Kameranézet - Alapértelmezett" + +msgid "Camera view - Top" +msgstr "Kameranézet - Felülről" + +msgid "Camera view - Bottom" +msgstr "Kameranézet - Alulról" + +msgid "Camera view - Front" +msgstr "Kameranézet - Elölről" + +msgid "Camera view - Behind" +msgstr "Kameranézet - Hátulról" + +msgid "Camera Angle - Left side" +msgstr "Kameranézet - Bal oldal" + +msgid "Camera Angle - Right side" +msgstr "Kameranézet - Jobb oldal" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Zoom közelítés" + +msgid "Zoom out" +msgstr "Zoom távolítás" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "3Dconnexion-eszközbeállítások párbeszédablak megjelenítése/elrejtése" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "G-kód ablak be/ki" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Függőleges csúszka egyréteges módjának ki/bekapcsolása" + +msgid "Switch between Prepare/Preview" +msgstr "Váltás előkészítés/előnézet között" + +msgid "Collapse/Expand the sidebar" +msgstr "Az oldalsáv összecsukása/kinyitása" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Gyorsgombok listájának megjelenítése" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24786,6 +24942,64 @@ msgstr "" "Kunkorodás elkerülése\n" "Tudtad, hogy a kunkorodásra hajlamos anyagok (például ABS) nyomtatásakor az asztal hőmérsékletének növelése csökkentheti a kunkorodás valószínűségét?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "Tab" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Megjeleníti az aktuális nézetablak FPS-t a jobb felső sarokban." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "3MF közzététele wiki" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "3MF közzététele videós útmutató" + +#~ msgid "Toolbar" +#~ msgstr "Eszköztár" + +#~ msgid "Switch table page" +#~ msgstr "Váltás táblázatra" + +#~ msgid "Global shortcuts" +#~ msgstr "Globális gyorsbillentyűk" + +#~ msgid "Middle mouse button" +#~ msgstr "Középső egérgomb" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Automatikusan beállítja a kijelölt objektumok vagy az összes objektum tájolását. Ha vannak kijelölt objektumok, akkor csak a kijelölteket, ellenkező esetben pedig a projektben levő összes objektumot orientálja." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Automatikusan orientálja az aktuális tálcán levő összes objektumot." + +#~ msgid "Any arrow" +#~ msgstr "Bármelyik nyílbillentyű" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Gizmo SLA támaszpontok" + +#~ msgid "Plater" +#~ msgstr "Tálca" + +# AI Translated +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Objektumok, tárgyak, módosítók törlése" + +#~ msgid "Objects List" +#~ msgstr "Tárgyak listája" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "A kimeneti fájl legelejére írt G-kód, minden más tartalom előtt. Hasznos olyan metaadatok hozzáadására, amelyeket a nyomtató firmware-e a fájl első soraiból olvas ki (pl. becsült nyomtatási idő, filamentfelhasználás). Támogatja az olyan helyőrzőket, mint a {print_time_sec} és a {used_filament_length}." + +#~ msgid "Print time (seconds)" +#~ msgstr "Nyomtatási idő (másodperc)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Műveletek gyorsmenüjének megnyitása" diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index 087189ae93..c8dd94c407 100644 --- a/localization/i18n/it/OrcaSlicer_it.po +++ b/localization/i18n/it/OrcaSlicer_it.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -5920,12 +5920,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Destra" -msgid "Add" -msgstr "Aggiungi" - msgid "Add plate" msgstr "Aggiungi piatto" +msgid "Split to objects" +msgstr "Dividi in oggetti" + +msgid "Add" +msgstr "Aggiungi" + msgid "Auto orient all/selected objects" msgstr "Orientamento automatico tutti/selezionati oggetti" @@ -5938,9 +5941,6 @@ msgstr "Disponi tutti gli oggetti" msgid "Arrange objects on selected plates" msgstr "Disponi gli oggetti sui piatti selezionati" -msgid "Split to objects" -msgstr "Dividi in oggetti" - msgid "Assembly View" msgstr "Vista di montaggio" @@ -5997,6 +5997,9 @@ msgstr "Contorno" msgid "Wireframe" msgstr "Modello reticolato" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "Vista realistica" @@ -6540,7 +6543,7 @@ msgstr "Mostra il contorno attorno all'oggetto selezionato nella scena 3D." msgid "Preferences" msgstr "Preferenze" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8362,10 +8365,6 @@ msgstr "Espandi barra laterale" msgid "Collapse sidebar" msgstr "Riduci barra laterale" -# AI Translated -msgid "Tab" -msgstr "Tab" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Caricamento file: %s" @@ -9388,10 +9387,10 @@ msgstr "Gestione multi-dispositivo" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Abilitando questa opzione, puoi inviare un'attività a più dispositivi contemporaneamente e gestire più dispositivi." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9530,6 +9529,15 @@ msgstr "Trascinamento con il tasto destro del mouse" msgid "Set the action that dragging the right mouse button should perform." msgstr "Imposta l'azione che deve eseguire il trascinamento con il tasto destro del mouse." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Cancella la mia scelta su..." @@ -9654,13 +9662,40 @@ msgstr "" "Limita la frequenza dei fotogrammi della vista per ridurre il carico della GPU e il consumo energetico.\n" "Imposta a 0 per una frequenza dei fotogrammi illimitata." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "Mostra overlay FPS" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Mostra gli FPS correnti della vista nell'angolo in alto a destra." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10134,13 +10169,8 @@ msgstr "Pubblica 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Seleziona quali impostazioni pubblicare nel file 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki di Pubblica 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Guida video di Pubblica 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10342,6 +10372,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Mostra dettagli" + +# AI Translated +msgid "Hide details" +msgstr "Nascondi dettagli" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12190,68 +12227,39 @@ msgstr "Il pacchetto di configurazione è stato modificato nella precedente Guid msgid "Configuration package changed" msgstr "Pacchetto di configurazione modificato" -msgid "Toolbar" -msgstr "Barra degli strumenti" - -msgid "Objects list" -msgstr "Elenco oggetti" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Importa geometrie da file STL/STEP/3MF/OBJ/AMF" - -msgid "Paste from clipboard" -msgstr "Incolla dagli appunti" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Mostra/nascondi la finestra di dialogo delle impostazioni dei dispositivi 3Dconnexion" - -msgid "Switch table page" -msgstr "Cambia pagina tabella" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Spazio" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Mostra elenco scorciatoie da tastiera" - -msgid "Global shortcuts" -msgstr "Scorciatoie globali" - msgid "Pan View" msgstr "Vista panoramica" msgid "Rotate View" msgstr "Ruota vista" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" + +msgid "Left mouse" +msgstr "" + +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" + +msgid "Run a speed dial favorite while the dial is open" +msgstr "" + # AI Translated -msgid "Middle mouse button" -msgstr "Tasto centrale del mouse" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Zoom View" -msgstr "Vista Zoom" +msgid "Switch to the next main tab" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Questo orienta automaticamente gli oggetti selezionati o tutti gli oggetti. Se ci sono oggetti selezionati, orienta solo quelli selezionati. Altrimenti, orienterà tutti gli elementi nel progetto corrente." - -msgid "Auto orients all objects on the active plate." -msgstr "Questo orienta tutti gli oggetti nel piatto corrente." - -msgid "Collapse/Expand the sidebar" -msgstr "Riduci/Espandi barra laterale" - -msgid "Any arrow" -msgstr "Qualsiasi freccia" - -msgid "Movement in camera space" -msgstr "Movimento nello spazio della telecamera" +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Seleziona parte" @@ -12262,126 +12270,29 @@ msgstr "Seleziona più oggetti" msgid "Select objects by rectangle" msgstr "Seleziona oggetti per rettangolo" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Freccia su" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Sposta selezione di 10 mm in direzione Y positiva" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Freccia giù" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Sposta selezione di 10 mm in direzione Y negativa" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Freccia sinistra" - -msgid "Move selection 10mm in negative X direction" -msgstr "Sposta selezione di 10 mm in direzione X negativa" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Freccia destra" - -msgid "Move selection 10mm in positive X direction" -msgstr "Sposta selezione di 10 mm in direzione X positiva" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "Tastiera 1-9: imposta il filamento per l'oggetto/parte" msgid "Movement step set to 1mm" msgstr "Passo movimento impostato a 1 mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "Tastiera 1-9: imposta il filamento per l'oggetto/parte" +msgid "Movement in camera space" +msgstr "Movimento nello spazio della telecamera" -msgid "Camera view - Default" -msgstr "Vista telecamera - Predefinito" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Vista telecamera - In Alto" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Vista telecamera - In Basso" +msgid "Zoom View" +msgstr "Vista Zoom" -msgid "Camera view - Front" -msgstr "Vista telecamera - Anteriore" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Vista telecamera - Posteriore" - -msgid "Camera Angle - Left side" -msgstr "Angolo della camera - Lato sinistro" - -msgid "Camera Angle - Right side" -msgstr "Angolo della camera - Lato destro" - -msgid "Select all objects" -msgstr "Seleziona tutti gli oggetti" - -msgid "Gizmo move" -msgstr "Strumento Muovi" - -msgid "Gizmo rotate" -msgstr "Strumento Ruota" - -msgid "Gizmo scale" -msgstr "Strumento Scala" - -msgid "Gizmo place face on bed" -msgstr "Strumento posiziona faccia sul piatto" - -msgid "Gizmo cut" -msgstr "Strumento Taglia" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo maglia booleana" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Strumento FDM per superficie ruvida dipinta" - -msgid "Gizmo SLA support points" -msgstr "Strumento Punti di supporto SLA" - -msgid "Gizmo FDM paint-on seam" -msgstr "Strumento Dipingi cucitura FDM" - -msgid "Gizmo text emboss/engrave" -msgstr "Strumento testo in rilievo/incisione" - -msgid "Gizmo measure" -msgstr "Gizmo misura" - -msgid "Gizmo assemble" -msgstr "Gizmo assemblaggio" - -msgid "Gizmo brim ears" -msgstr "Gizmo tese ad orecchio" - -msgid "Zoom in" -msgstr "Ingrandisci" - -msgid "Zoom out" -msgstr "Rimpicciolisci" - -msgid "Toggle printable for object/part" -msgstr "Attiva/disattiva stampa per oggetto/parte" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Passa tra Prepara e Anteprima" - -msgid "Plater" -msgstr "Piatto" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Sposta: premi per muovere di 1 mm" @@ -12392,14 +12303,19 @@ msgstr "Supporto/Pittura a colori: regola il raggio della penna" msgid "Support/Color Painting: adjust section position" msgstr "Supporto/Pittura a colori: regola la posizione della sezione" -msgid "Gizmo" -msgstr "Strumento" +msgid "Objects list" +msgstr "Elenco oggetti" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Imposta il numero dell'estrusore per gli oggetti e le parti" -msgid "Delete objects, parts, modifiers" -msgstr "Elimina oggetti, parti, modificatori" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Spazio" msgid "Select the object/part and press space to change the name" msgstr "Seleziona l'oggetto/la parte e premi la barra spaziatrice per modificare il nome" @@ -12410,45 +12326,48 @@ msgstr "Clic del mouse" msgid "Select the object/part and mouse click to change the name" msgstr "Seleziona l'oggetto/la parte e fai clic con il mouse per modificare il nome" -msgid "Objects List" -msgstr "Elenco oggetti" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Cursore di scorrimento verticale - Solleva cursore attivo" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Cursore di scorrimento verticale - Abbassa cursore attivo" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Cursore di scorrimento orizzontale - Sposta a sinistra il cursore attivo" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Cursore di scorrimento orizzontale - Sposta a destra il cursore attivo" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Attiva/Disattiva modalità singolo strato del cursore di scorrimento verticale" - -msgid "On/Off G-code window" -msgstr "Attiva/Disattiva finestra G-code" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Sposta il cursore 5 volte più velocemente" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Cursore di scorrimento orizzontale - Sposta alla posizione iniziale" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "Fine" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Cursore di scorrimento orizzontale - Sposta alla posizione finale" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Note di rilascio" @@ -17372,8 +17291,8 @@ msgstr "Fasi preriscaldamento" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Inserisci più comandi di preriscaldamento (ad esempio M104.1). Utile solo per Prusa XL. Per altre stampanti, impostalo su 1." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code scritto all'inizio del file di output, prima di qualsiasi altro contenuto. Utile per aggiungere metadati che il firmware della stampante legge dalle prime righe del file (ad es. tempo di stampa stimato, utilizzo filamento). Supporta segnaposto come {print_time_sec} e {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "G-code iniziale" @@ -18911,12 +18830,36 @@ msgstr "Filamento usato" msgid "Total length of filament used in the print." msgstr "Lunghezza totale di filamento utilizzato nella stampa." -msgid "Print time (seconds)" -msgstr "Tempo di stampa (secondi)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Tempo di stampa stimato totale in secondi. Sostituito con il valore effettivo durante la post-elaborazione." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Lunghezza filamento (metri)" @@ -20779,6 +20722,9 @@ msgstr "Nessuna sessione valida rilevata. Procedere con l'accesso a 3DPrinterOS? msgid "Success!" msgstr "Successo!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Sei sicuro di volerti disconnettere?" @@ -21834,13 +21780,6 @@ msgstr "Il modulo di rete Bambu è necessario per le funzionalità cloud, il ril msgid "Error: %s" msgstr "Errore: %s" -msgid "Show details" -msgstr "Mostra dettagli" - -# AI Translated -msgid "Hide details" -msgstr "Nascondi dettagli" - msgid "Version to install:" msgstr "Versione da installare:" @@ -24497,6 +24436,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24509,6 +24454,216 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "Fine" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Freccia sinistra" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Freccia destra" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Freccia su" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Freccia giù" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Importa geometrie da file STL/STEP/3MF/OBJ/AMF" + +msgid "Select all objects" +msgstr "Seleziona tutti gli oggetti" + +msgid "Paste from clipboard" +msgstr "Incolla dagli appunti" + +msgid "Toggle printable for object/part" +msgstr "Attiva/disattiva stampa per oggetto/parte" + +msgid "Move selection 10mm in negative X direction" +msgstr "Sposta selezione di 10 mm in direzione X negativa" + +msgid "Move selection 10mm in positive X direction" +msgstr "Sposta selezione di 10 mm in direzione X positiva" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Sposta selezione di 10 mm in direzione Y positiva" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Sposta selezione di 10 mm in direzione Y negativa" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Strumento Muovi" + +msgid "Gizmo rotate" +msgstr "Strumento Ruota" + +msgid "Gizmo scale" +msgstr "Strumento Scala" + +msgid "Gizmo place face on bed" +msgstr "Strumento posiziona faccia sul piatto" + +msgid "Gizmo cut" +msgstr "Strumento Taglia" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo maglia booleana" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Strumento Dipingi cucitura FDM" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Strumento FDM per superficie ruvida dipinta" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Strumento testo in rilievo/incisione" + +msgid "Gizmo measure" +msgstr "Gizmo misura" + +msgid "Gizmo assemble" +msgstr "Gizmo assemblaggio" + +msgid "Gizmo brim ears" +msgstr "Gizmo tese ad orecchio" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Cursore di scorrimento verticale - Solleva cursore attivo" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Cursore di scorrimento verticale - Abbassa cursore attivo" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Cursore di scorrimento orizzontale - Sposta a sinistra il cursore attivo" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Cursore di scorrimento orizzontale - Sposta a destra il cursore attivo" + +msgid "Horizontal slider - Move to start position" +msgstr "Cursore di scorrimento orizzontale - Sposta alla posizione iniziale" + +msgid "Horizontal slider - Move to last position" +msgstr "Cursore di scorrimento orizzontale - Sposta alla posizione finale" + +msgid "Camera view - Default" +msgstr "Vista telecamera - Predefinito" + +msgid "Camera view - Top" +msgstr "Vista telecamera - In Alto" + +msgid "Camera view - Bottom" +msgstr "Vista telecamera - In Basso" + +msgid "Camera view - Front" +msgstr "Vista telecamera - Anteriore" + +msgid "Camera view - Behind" +msgstr "Vista telecamera - Posteriore" + +msgid "Camera Angle - Left side" +msgstr "Angolo della camera - Lato sinistro" + +msgid "Camera Angle - Right side" +msgstr "Angolo della camera - Lato destro" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Ingrandisci" + +msgid "Zoom out" +msgstr "Rimpicciolisci" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Mostra/nascondi la finestra di dialogo delle impostazioni dei dispositivi 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Attiva/Disattiva finestra G-code" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Attiva/Disattiva modalità singolo strato del cursore di scorrimento verticale" + +msgid "Switch between Prepare/Preview" +msgstr "Passa tra Prepara e Anteprima" + +msgid "Collapse/Expand the sidebar" +msgstr "Riduci/Espandi barra laterale" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Mostra elenco scorciatoie da tastiera" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24810,6 +24965,65 @@ msgstr "" "Evita le deformazioni\n" "Sapevi che quando si stampano materiali soggetti a deformazioni come l'ABS, aumentare in modo appropriato la temperatura del piano riscaldato può ridurre la probabilità di deformazione?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "Tab" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Mostra gli FPS correnti della vista nell'angolo in alto a destra." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki di Pubblica 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Guida video di Pubblica 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Barra degli strumenti" + +#~ msgid "Switch table page" +#~ msgstr "Cambia pagina tabella" + +#~ msgid "Global shortcuts" +#~ msgstr "Scorciatoie globali" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "Tasto centrale del mouse" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Questo orienta automaticamente gli oggetti selezionati o tutti gli oggetti. Se ci sono oggetti selezionati, orienta solo quelli selezionati. Altrimenti, orienterà tutti gli elementi nel progetto corrente." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Questo orienta tutti gli oggetti nel piatto corrente." + +#~ msgid "Any arrow" +#~ msgstr "Qualsiasi freccia" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Strumento Punti di supporto SLA" + +#~ msgid "Plater" +#~ msgstr "Piatto" + +#~ msgid "Gizmo" +#~ msgstr "Strumento" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Elimina oggetti, parti, modificatori" + +#~ msgid "Objects List" +#~ msgstr "Elenco oggetti" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code scritto all'inizio del file di output, prima di qualsiasi altro contenuto. Utile per aggiungere metadati che il firmware della stampante legge dalle prime righe del file (ad es. tempo di stampa stimato, utilizzo filamento). Supporta segnaposto come {print_time_sec} e {used_filament_length}." + +#~ msgid "Print time (seconds)" +#~ msgstr "Tempo di stampa (secondi)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Apri la selezione rapida delle azioni" diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index 98f937fc6d..78a5d55307 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -5937,12 +5937,15 @@ msgctxt "Camera View" msgid "Right" msgstr "右" -msgid "Add" -msgstr "追加" - msgid "Add plate" msgstr "プレートを追加" +msgid "Split to objects" +msgstr "オブジェクトに分割" + +msgid "Add" +msgstr "追加" + msgid "Auto orient all/selected objects" msgstr "すべてのオブジェクト/選択したオブジェクトの方向を自動設定する" @@ -5955,9 +5958,6 @@ msgstr "全てをレイアウト" msgid "Arrange objects on selected plates" msgstr "選択したプレートをレイアウト" -msgid "Split to objects" -msgstr "オブジェクトに分割" - msgid "Assembly View" msgstr "組立て" @@ -6014,6 +6014,9 @@ msgstr "アウトライン" msgid "Wireframe" msgstr "ワイヤフレーム" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "リアルビュー" @@ -6550,7 +6553,7 @@ msgstr "3Dシーンで選択したオブジェクトの周りにアウトライ msgid "Preferences" msgstr "設定" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8373,10 +8376,6 @@ msgstr "サイドバーを展開" msgid "Collapse sidebar" msgstr "サイドバーを折りたたむ" -# AI Translated -msgid "Tab" -msgstr "Tab" - #, c-format, boost-format msgid "Loading file: %s" msgstr "ファイルを読込む: %s" @@ -9411,10 +9410,10 @@ msgstr "マルチデバイス管理" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "このオプションを有効にすると、複数のデバイスに同時にタスクを送信し、複数のデバイスを管理できます。" -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9553,6 +9552,15 @@ msgstr "マウス右ドラッグ" msgid "Set the action that dragging the right mouse button should perform." msgstr "マウス右ボタンのドラッグで実行する操作を設定します。" +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "選択をクリア..." @@ -9677,13 +9685,40 @@ msgstr "" "ビューポートのフレームレートを制限し、GPU負荷と消費電力を抑えます。\n" "0に設定するとフレームレートは無制限になります。" +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "FPSオーバーレイを表示" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "現在のビューポートのFPSを右上に表示します。" +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10159,13 +10194,8 @@ msgstr "3MFを公開..." msgid "Select which settings to be published in the 3MF file" msgstr "3MFファイルで公開する設定を選択してください" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "3MF公開のWiki" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "3MF公開のビデオガイド" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10367,6 +10397,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "詳細を表示" + +# AI Translated +msgid "Hide details" +msgstr "詳細を隠す" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12214,68 +12251,39 @@ msgstr "構成パッケージが前のコンフィグガイドに変更されま msgid "Configuration package changed" msgstr "構成パッケージが変更されました" -msgid "Toolbar" -msgstr "ツールバー" - -msgid "Objects list" -msgstr "オブジェクト一覧" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "STL/STEP/3MF/OBJ/AMFファイルからジオメトリデータをインポート" - -msgid "Paste from clipboard" -msgstr "貼り付け" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "3Dconnexion設定を表示/非表示" - -msgid "Switch table page" -msgstr "テーブルページを切り替え" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "ショートカット一覧を表示" - -msgid "Global shortcuts" -msgstr "ショートカット" - msgid "Pan View" msgstr "移動" msgid "Rotate View" msgstr "回転" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" + +msgid "Left mouse" +msgstr "" + +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" + +msgid "Run a speed dial favorite while the dial is open" +msgstr "" + # AI Translated -msgid "Middle mouse button" -msgstr "マウス中ボタン" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Zoom View" -msgstr "ズーム" +msgid "Switch to the next main tab" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "選択したオブジェクトまたはプロジェクト内のすべてのオブジェクトの方向を自動的に設定します。" - -msgid "Auto orients all objects on the active plate." -msgstr "現在のプレート上のすべてのオブジェクトの方向を自動的に設定します。" - -msgid "Collapse/Expand the sidebar" -msgstr "サイドバーを展開/隠す" - -msgid "Any arrow" -msgstr "任意の矢印キー" - -msgid "Movement in camera space" -msgstr "オブジェクト移動" +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "パーツを選択" @@ -12286,127 +12294,29 @@ msgstr "複数のオブジェクトを選択" msgid "Select objects by rectangle" msgstr "矩形でオブジェクトを選択" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "↑" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Y方向 10mm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "↓" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Y方向 -10mm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "←" - -msgid "Move selection 10mm in negative X direction" -msgstr "X方向 -10mm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "→" - -msgid "Move selection 10mm in positive X direction" -msgstr "X方向 10mm" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "キー1-9: オブジェクト/パーツのフィラメントを設定" msgid "Movement step set to 1mm" msgstr "移動ステップを1mmに設定" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "キー1-9: オブジェクト/パーツのフィラメントを設定" +msgid "Movement in camera space" +msgstr "オブジェクト移動" -msgid "Camera view - Default" -msgstr "デフォルト" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "トップ" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "底面" +msgid "Zoom View" +msgstr "ズーム" -msgid "Camera view - Front" -msgstr "正面" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "背面" - -msgid "Camera Angle - Left side" -msgstr "左側" - -msgid "Camera Angle - Right side" -msgstr "右側" - -msgid "Select all objects" -msgstr "すべてのオブジェクトを選択" - -msgid "Gizmo move" -msgstr "移動" - -msgid "Gizmo rotate" -msgstr "回転" - -msgid "Gizmo scale" -msgstr "スケール" - -msgid "Gizmo place face on bed" -msgstr "底面選択" - -msgid "Gizmo cut" -msgstr "カット" - -msgid "Gizmo mesh boolean" -msgstr "メッシュブール" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "ギズモ FDMファジースキンペイント" - -msgid "Gizmo SLA support points" -msgstr "SLAサポートポイント" - -msgid "Gizmo FDM paint-on seam" -msgstr "継ぎ目ペイント" - -msgid "Gizmo text emboss/engrave" -msgstr "ギズモ・テキストのエンボス/エングレーブ" - -msgid "Gizmo measure" -msgstr "測る" - -msgid "Gizmo assemble" -msgstr "組立てる" - -msgid "Gizmo brim ears" -msgstr "ブリム" - -msgid "Zoom in" -msgstr "ズームイン" - -msgid "Zoom out" -msgstr "縮小" - -# AI Translated -msgid "Toggle printable for object/part" -msgstr "オブジェクト/パーツの印刷可否を切り替え" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "準備/プレビュー間の切り替え" - -msgid "Plater" -msgstr "準備" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "1mm単位で移動" @@ -12417,15 +12327,19 @@ msgstr "サポート/色塗り: 半径のサイズ" msgid "Support/Color Painting: adjust section position" msgstr "サポート/色塗り: 断面の位置" -# AI Translated -msgid "Gizmo" -msgstr "ギズモ" +msgid "Objects list" +msgstr "オブジェクト一覧" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "オブジェクトとパーツ造形用の押出機番号を設定" -msgid "Delete objects, parts, modifiers" -msgstr "オブジェクト、パーツ、モディファイヤを削除" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" msgid "Select the object/part and press space to change the name" msgstr "オブジェクト/パーツを選択し、名前を変更します" @@ -12436,45 +12350,48 @@ msgstr "マウスクリック" msgid "Select the object/part and mouse click to change the name" msgstr "オブジェクト/パーツを選択し、名前を変更します" -msgid "Objects List" -msgstr "オブジェクト一覧" - -msgid "Vertical slider - Move active thumb Up" -msgstr "垂直スライダー" - -msgid "Vertical slider - Move active thumb Down" -msgstr "垂直スライダー" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "水平スライダー (左)" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "水平スライダー (右)" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "垂直スライダーの1レイヤーモードのオン/オフ" - -msgid "On/Off G-code window" -msgstr "G-codeウィンドウのオン/オフ" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "5x" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "水平スライダー - 開始位置に移動" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "水平スライダー - 最後の位置に移動" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "リリースノート" @@ -17711,9 +17628,8 @@ msgstr "予熱ステップ数" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "複数の予熱コマンド (M104.1など) を挿入します。Prusa XLでのみ有効です。その他のプリンターでは1に設定してください。" -# AI Translated -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "出力ファイルの先頭、他のどの内容よりも前に書き込まれるG-codeです。プリンターのファームウェアがファイル先頭の数行から読み取るメタデータ (推定印刷時間、フィラメント使用量など) を追加するのに便利です。{print_time_sec}や{used_filament_length}などのプレースホルダーに対応しています。" +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "スタートG-code" @@ -19371,14 +19287,37 @@ msgstr "フィラメント使用量" msgid "Total length of filament used in the print." msgstr "プリントに使用されるフィラメントの全長。" -# AI Translated -msgid "Print time (seconds)" -msgstr "印刷時間 (秒)" +msgid "Print time (total seconds)" +msgstr "" # AI Translated msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "推定される総印刷時間 (秒) です。後処理時に実際の値に置き換えられます。" +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + # AI Translated msgid "Filament length (meters)" msgstr "フィラメント長 (メートル)" @@ -21296,6 +21235,9 @@ msgstr "有効なセッションが検出されませんでした。3DPrinterOS msgid "Success!" msgstr "成功!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "本当にログアウトしますか?" @@ -22379,13 +22321,6 @@ msgstr "Bambuネットワークプラグインはクラウド機能、プリン msgid "Error: %s" msgstr "エラー: %s" -msgid "Show details" -msgstr "詳細を表示" - -# AI Translated -msgid "Hide details" -msgstr "詳細を隠す" - msgid "Version to install:" msgstr "インストールするバージョン:" @@ -25042,6 +24977,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -25054,6 +24995,217 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "←" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "→" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "↑" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "↓" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "STL/STEP/3MF/OBJ/AMFファイルからジオメトリデータをインポート" + +msgid "Select all objects" +msgstr "すべてのオブジェクトを選択" + +msgid "Paste from clipboard" +msgstr "貼り付け" + +# AI Translated +msgid "Toggle printable for object/part" +msgstr "オブジェクト/パーツの印刷可否を切り替え" + +msgid "Move selection 10mm in negative X direction" +msgstr "X方向 -10mm" + +msgid "Move selection 10mm in positive X direction" +msgstr "X方向 10mm" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Y方向 10mm" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Y方向 -10mm" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "移動" + +msgid "Gizmo rotate" +msgstr "回転" + +msgid "Gizmo scale" +msgstr "スケール" + +msgid "Gizmo place face on bed" +msgstr "底面選択" + +msgid "Gizmo cut" +msgstr "カット" + +msgid "Gizmo mesh boolean" +msgstr "メッシュブール" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "継ぎ目ペイント" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "ギズモ FDMファジースキンペイント" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "ギズモ・テキストのエンボス/エングレーブ" + +msgid "Gizmo measure" +msgstr "測る" + +msgid "Gizmo assemble" +msgstr "組立てる" + +msgid "Gizmo brim ears" +msgstr "ブリム" + +msgid "Vertical slider - Move active thumb Up" +msgstr "垂直スライダー" + +msgid "Vertical slider - Move active thumb Down" +msgstr "垂直スライダー" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "水平スライダー (左)" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "水平スライダー (右)" + +msgid "Horizontal slider - Move to start position" +msgstr "水平スライダー - 開始位置に移動" + +msgid "Horizontal slider - Move to last position" +msgstr "水平スライダー - 最後の位置に移動" + +msgid "Camera view - Default" +msgstr "デフォルト" + +msgid "Camera view - Top" +msgstr "トップ" + +msgid "Camera view - Bottom" +msgstr "底面" + +msgid "Camera view - Front" +msgstr "正面" + +msgid "Camera view - Behind" +msgstr "背面" + +msgid "Camera Angle - Left side" +msgstr "左側" + +msgid "Camera Angle - Right side" +msgstr "右側" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "ズームイン" + +msgid "Zoom out" +msgstr "縮小" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "3Dconnexion設定を表示/非表示" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "G-codeウィンドウのオン/オフ" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "垂直スライダーの1レイヤーモードのオン/オフ" + +msgid "Switch between Prepare/Preview" +msgstr "準備/プレビュー間の切り替え" + +msgid "Collapse/Expand the sidebar" +msgstr "サイドバーを展開/隠す" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "ショートカット一覧を表示" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + # AI Translated #: resources/data/hints.ini: [hint:Precise wall] msgid "" @@ -25366,6 +25518,68 @@ msgstr "" "反りを避ける\n" "ABSのような反りやすい素材を印刷する場合、ヒートベッドの温度を適切に上げることで、反りが発生する確率を下げることができることをご存知ですか?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "Tab" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "現在のビューポートのFPSを右上に表示します。" + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "3MF公開のWiki" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "3MF公開のビデオガイド" + +#~ msgid "Toolbar" +#~ msgstr "ツールバー" + +#~ msgid "Switch table page" +#~ msgstr "テーブルページを切り替え" + +#~ msgid "Global shortcuts" +#~ msgstr "ショートカット" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "マウス中ボタン" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "選択したオブジェクトまたはプロジェクト内のすべてのオブジェクトの方向を自動的に設定します。" + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "現在のプレート上のすべてのオブジェクトの方向を自動的に設定します。" + +#~ msgid "Any arrow" +#~ msgstr "任意の矢印キー" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "SLAサポートポイント" + +#~ msgid "Plater" +#~ msgstr "準備" + +# AI Translated +#~ msgid "Gizmo" +#~ msgstr "ギズモ" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "オブジェクト、パーツ、モディファイヤを削除" + +#~ msgid "Objects List" +#~ msgstr "オブジェクト一覧" + +# AI Translated +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "出力ファイルの先頭、他のどの内容よりも前に書き込まれるG-codeです。プリンターのファームウェアがファイル先頭の数行から読み取るメタデータ (推定印刷時間、フィラメント使用量など) を追加するのに便利です。{print_time_sec}や{used_filament_length}などのプレースホルダーに対応しています。" + +# AI Translated +#~ msgid "Print time (seconds)" +#~ msgstr "印刷時間 (秒)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "アクションスピードダイヤルを開く" diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index 1dda527e28..a6cc7df84a 100644 --- a/localization/i18n/ko/OrcaSlicer_ko.po +++ b/localization/i18n/ko/OrcaSlicer_ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2025-06-02 17:12+0900\n" "Last-Translator: crwusiz \n" "Language-Team: \n" @@ -5949,12 +5949,15 @@ msgctxt "Camera View" msgid "Right" msgstr "오른쪽" -msgid "Add" -msgstr "추가" - msgid "Add plate" msgstr "플레이트 추가" +msgid "Split to objects" +msgstr "객체로 분할" + +msgid "Add" +msgstr "추가" + msgid "Auto orient all/selected objects" msgstr "모든/선택한 객체 자동 방향 지정" @@ -5967,9 +5970,6 @@ msgstr "모든 객체 정렬" msgid "Arrange objects on selected plates" msgstr "선택한 플레이트의 객체 정렬" -msgid "Split to objects" -msgstr "객체로 분할" - msgid "Assembly View" msgstr "조립 보기" @@ -6026,6 +6026,9 @@ msgstr "외곽선" msgid "Wireframe" msgstr "와이어프레임" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "사실적 보기" @@ -6563,7 +6566,7 @@ msgstr "3D 장면에서 선택한 객체 주변에 윤곽선 표시" msgid "Preferences" msgstr "기본 설정" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8387,10 +8390,6 @@ msgstr "사이드바 확장" msgid "Collapse sidebar" msgstr "사이드바 접기" -# AI Translated -msgid "Tab" -msgstr "탭" - #, c-format, boost-format msgid "Loading file: %s" msgstr "파일 로드 중: %s" @@ -9471,10 +9470,10 @@ msgstr "다중 장치 관리" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "활성화하면 여러 장치에 동시에 작업을 보내고 여러 장치를 관리할 수 있습니다." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9622,6 +9621,15 @@ msgstr "마우스 오른쪽 버튼 드래그" msgid "Set the action that dragging the right mouse button should perform." msgstr "마우스 오른쪽 버튼을 드래그할 때 수행할 동작을 설정합니다." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + # AI Translated msgid "Clear my choice on..." msgstr "다음 항목에 대한 선택 지우기..." @@ -9750,13 +9758,40 @@ msgstr "" "뷰포트의 프레임 속도를 제한하여 GPU 부하와 전력 사용량을 줄입니다.\n" "0으로 설정하면 프레임 속도가 무제한이 됩니다." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "FPS 오버레이 표시" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "현재 뷰포트의 FPS를 오른쪽 위 모서리에 표시합니다." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10247,13 +10282,8 @@ msgstr "3MF 게시..." msgid "Select which settings to be published in the 3MF file" msgstr "3MF 파일에 게시할 설정을 선택하세요" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "3MF 게시 위키" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "3MF 게시 비디오 가이드" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10456,6 +10486,14 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +# AI Translated +msgid "Show details" +msgstr "세부 정보 표시" + +# AI Translated +msgid "Hide details" +msgstr "세부 정보 숨기기" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12345,68 +12383,39 @@ msgstr "이전 구성 가이드에서 구성 패키지가 변경되었습니다" msgid "Configuration package changed" msgstr "구성 패키지가 변경됨" -msgid "Toolbar" -msgstr "도구 모음" - -msgid "Objects list" -msgstr "객체 목록" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "STL/STEP/3MF/OBJ/AMF 파일에서 형상 데이터 가져오기" - -msgid "Paste from clipboard" -msgstr "클립보드에서 붙여넣기" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "3D 연결 장치 설정 표시/숨기기 대화상자" - -msgid "Switch table page" -msgstr "테이블 페이지 전환" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "키보드 단축키 목록 보기" - -msgid "Global shortcuts" -msgstr "전역 단축키" - msgid "Pan View" msgstr "보기 이동" msgid "Rotate View" msgstr "보기 회전" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" + +msgid "Left mouse" +msgstr "" + +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" + +msgid "Run a speed dial favorite while the dial is open" +msgstr "" + # AI Translated -msgid "Middle mouse button" -msgstr "마우스 가운데 버튼" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Zoom View" -msgstr "줌 뷰" +msgid "Switch to the next main tab" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "선택한 객체 또는 모든 객체의 방향을 자동으로 조정합니다. 선택한 객체가 있는 경우 선택한 객체만 조정되고, 그렇지 않은 경우 프로젝트의 모든 객체가 조정됩니다." - -msgid "Auto orients all objects on the active plate." -msgstr "현재 플레이트에 있는 모든 객체의 방향을 자동으로 지정합니다." - -msgid "Collapse/Expand the sidebar" -msgstr "사이드바 접기/펼치기" - -msgid "Any arrow" -msgstr "모든 화살표" - -msgid "Movement in camera space" -msgstr "카메라 공간에서 이동" +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "부품 선택" @@ -12417,129 +12426,30 @@ msgstr "여러 객체 선택" msgid "Select objects by rectangle" msgstr "사각형으로 객체 선택" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "↑" - -msgid "Move selection 10mm in positive Y direction" -msgstr "선택 항목을 +Y 방향으로 10mm 이동" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "↓" - -msgid "Move selection 10mm in negative Y direction" -msgstr "선택 항목을 -Y 방향으로 10mm 이동" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "←" - -msgid "Move selection 10mm in negative X direction" -msgstr "선택 항목을 -X 방향으로 10mm 이동" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "→" - -msgid "Move selection 10mm in positive X direction" -msgstr "선택 항목을 +X 방향으로 10mm 이동" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "키보드 1-9: 객체/부품에 필라멘트 할당" # AI Translated msgid "Movement step set to 1mm" msgstr "이동 단위를 1mm로 설정" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "키보드 1-9: 객체/부품에 필라멘트 할당" +msgid "Movement in camera space" +msgstr "카메라 공간에서 이동" -msgid "Camera view - Default" -msgstr "카메라 시점 - 기본" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "카메라 시점 - 위" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "카메라 시점 - 아래" +msgid "Zoom View" +msgstr "줌 뷰" -msgid "Camera view - Front" -msgstr "카메라 시점 - 앞" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "카메라 시점 - 뒤" - -msgid "Camera Angle - Left side" -msgstr "카메라 각도 - 좌측" - -msgid "Camera Angle - Right side" -msgstr "카메라 각도 - 우측" - -msgid "Select all objects" -msgstr "모든 객체 선택" - -msgid "Gizmo move" -msgstr "변형도구 이동" - -msgid "Gizmo rotate" -msgstr "변형도구 회전" - -msgid "Gizmo scale" -msgstr "변형도구 배율" - -msgid "Gizmo place face on bed" -msgstr "변형도구 바닥면 선택" - -msgid "Gizmo cut" -msgstr "변형도구 잘라내기" - -msgid "Gizmo mesh boolean" -msgstr "변형도구 합집합/차집합/교집합" - -# AI Translated -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "변형도구 FDM 퍼지 스킨 칠하기" - -msgid "Gizmo SLA support points" -msgstr "변형도구 서포트 칠하기" - -msgid "Gizmo FDM paint-on seam" -msgstr "변형도구 재봉선 칠하기" - -msgid "Gizmo text emboss/engrave" -msgstr "변형도구 - 텍스트 엠보싱/인그레이빙" - -msgid "Gizmo measure" -msgstr "변형도구 측정" - -msgid "Gizmo assemble" -msgstr "변형도구 병합" - -msgid "Gizmo brim ears" -msgstr "변형도구 브림 귀" - -msgid "Zoom in" -msgstr "확대" - -msgid "Zoom out" -msgstr "축소" - -# AI Translated -msgid "Toggle printable for object/part" -msgstr "객체/부품의 출력 가능 여부 전환" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "준비 하기/미리 보기 전환" - -msgid "Plater" -msgstr "출력판" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "이동: 눌러서 1mm씩 이동" @@ -12550,14 +12460,19 @@ msgstr "서포트/색상 칠하기: 펜 반경 조정" msgid "Support/Color Painting: adjust section position" msgstr "서포트/색상 칠하기: 단면 위치 조정" -msgid "Gizmo" -msgstr "변형도구" +msgid "Objects list" +msgstr "객체 목록" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "객체 및 부품에 대한 압출기 번호 설정" -msgid "Delete objects, parts, modifiers" -msgstr "객체, 부품, 수정자 삭제" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" msgid "Select the object/part and press space to change the name" msgstr "객체/부품을 선택하고 스페이스바를 눌러 이름을 변경합니다" @@ -12568,45 +12483,48 @@ msgstr "마우스 클릭" msgid "Select the object/part and mouse click to change the name" msgstr "객체/부품을 선택하고 마우스를 클릭하여 이름을 변경합니다" -msgid "Objects List" -msgstr "객체 목록" - -msgid "Vertical slider - Move active thumb Up" -msgstr "수직 슬라이더 - 활성 레이어 위로 이동" - -msgid "Vertical slider - Move active thumb Down" -msgstr "수직 슬라이더 - 활성 레이어 아래로 이동" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "수평 슬라이더 - 활성 라인 왼쪽으로 이동" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "수평 슬라이더 - 활성 라인 오른쪽으로 이동" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "수직 슬라이더의 한 레이어 모드 켜기/끄기" - -msgid "On/Off G-code window" -msgstr "Gcode 창 켜기/끄기" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "슬라이더를 5배 빠르게 이동" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "수평 슬라이더 - 시작 위치로 이동" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "수평 슬라이더 - 마지막 위치로 이동" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "릴리스 노트" @@ -17678,9 +17596,8 @@ msgstr "예열 단계" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "여러 예열 명령(예: M104.1)을 삽입하세요. Prusa XL에만 유용합니다. 다른 프린터의 경우 1로 설정하세요." -# AI Translated -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "출력 파일의 가장 앞부분, 다른 모든 내용보다 먼저 기록되는 G-code입니다. 프린터 펌웨어가 파일의 첫 줄에서 읽는 메타데이터(예: 예상 출력 시간, 필라멘트 사용량)를 추가하는 데 유용합니다. {print_time_sec}, {used_filament_length}와 같은 자리 표시자를 지원합니다." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "시작 Gcode" @@ -19257,14 +19174,37 @@ msgstr "사용된 필라멘트" msgid "Total length of filament used in the print." msgstr "출력에 사용된 필라멘트의 총 길이입니다." -# AI Translated -msgid "Print time (seconds)" -msgstr "출력 시간(초)" +msgid "Print time (total seconds)" +msgstr "" # AI Translated msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "초 단위의 총 예상 출력 시간입니다. 후처리 중에 실제 값으로 대체됩니다." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + # AI Translated msgid "Filament length (meters)" msgstr "필라멘트 길이(미터)" @@ -21172,6 +21112,9 @@ msgstr "유효한 세션이 감지되지 않았습니다. 3DPrinterOS에 로그 msgid "Success!" msgstr "성공!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "정말 로그아웃하시겠습니까?" @@ -22241,14 +22184,6 @@ msgstr "클라우드 기능, 프린터 검색, 원격 출력에는 Bambu 네트 msgid "Error: %s" msgstr "오류: %s" -# AI Translated -msgid "Show details" -msgstr "세부 정보 표시" - -# AI Translated -msgid "Hide details" -msgstr "세부 정보 숨기기" - # AI Translated msgid "Version to install:" msgstr "설치할 버전:" @@ -24918,6 +24853,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24930,6 +24871,218 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "←" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "→" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "↑" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "↓" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "STL/STEP/3MF/OBJ/AMF 파일에서 형상 데이터 가져오기" + +msgid "Select all objects" +msgstr "모든 객체 선택" + +msgid "Paste from clipboard" +msgstr "클립보드에서 붙여넣기" + +# AI Translated +msgid "Toggle printable for object/part" +msgstr "객체/부품의 출력 가능 여부 전환" + +msgid "Move selection 10mm in negative X direction" +msgstr "선택 항목을 -X 방향으로 10mm 이동" + +msgid "Move selection 10mm in positive X direction" +msgstr "선택 항목을 +X 방향으로 10mm 이동" + +msgid "Move selection 10mm in positive Y direction" +msgstr "선택 항목을 +Y 방향으로 10mm 이동" + +msgid "Move selection 10mm in negative Y direction" +msgstr "선택 항목을 -Y 방향으로 10mm 이동" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "변형도구 이동" + +msgid "Gizmo rotate" +msgstr "변형도구 회전" + +msgid "Gizmo scale" +msgstr "변형도구 배율" + +msgid "Gizmo place face on bed" +msgstr "변형도구 바닥면 선택" + +msgid "Gizmo cut" +msgstr "변형도구 잘라내기" + +msgid "Gizmo mesh boolean" +msgstr "변형도구 합집합/차집합/교집합" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "변형도구 재봉선 칠하기" + +# AI Translated +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "변형도구 FDM 퍼지 스킨 칠하기" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "변형도구 - 텍스트 엠보싱/인그레이빙" + +msgid "Gizmo measure" +msgstr "변형도구 측정" + +msgid "Gizmo assemble" +msgstr "변형도구 병합" + +msgid "Gizmo brim ears" +msgstr "변형도구 브림 귀" + +msgid "Vertical slider - Move active thumb Up" +msgstr "수직 슬라이더 - 활성 레이어 위로 이동" + +msgid "Vertical slider - Move active thumb Down" +msgstr "수직 슬라이더 - 활성 레이어 아래로 이동" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "수평 슬라이더 - 활성 라인 왼쪽으로 이동" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "수평 슬라이더 - 활성 라인 오른쪽으로 이동" + +msgid "Horizontal slider - Move to start position" +msgstr "수평 슬라이더 - 시작 위치로 이동" + +msgid "Horizontal slider - Move to last position" +msgstr "수평 슬라이더 - 마지막 위치로 이동" + +msgid "Camera view - Default" +msgstr "카메라 시점 - 기본" + +msgid "Camera view - Top" +msgstr "카메라 시점 - 위" + +msgid "Camera view - Bottom" +msgstr "카메라 시점 - 아래" + +msgid "Camera view - Front" +msgstr "카메라 시점 - 앞" + +msgid "Camera view - Behind" +msgstr "카메라 시점 - 뒤" + +msgid "Camera Angle - Left side" +msgstr "카메라 각도 - 좌측" + +msgid "Camera Angle - Right side" +msgstr "카메라 각도 - 우측" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "확대" + +msgid "Zoom out" +msgstr "축소" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "3D 연결 장치 설정 표시/숨기기 대화상자" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Gcode 창 켜기/끄기" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "수직 슬라이더의 한 레이어 모드 켜기/끄기" + +msgid "Switch between Prepare/Preview" +msgstr "준비 하기/미리 보기 전환" + +msgid "Collapse/Expand the sidebar" +msgstr "사이드바 접기/펼치기" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "키보드 단축키 목록 보기" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -25232,6 +25385,67 @@ msgstr "" "뒤틀림 방지\n" "ABS와 같이 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "탭" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "현재 뷰포트의 FPS를 오른쪽 위 모서리에 표시합니다." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "3MF 게시 위키" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "3MF 게시 비디오 가이드" + +#~ msgid "Toolbar" +#~ msgstr "도구 모음" + +#~ msgid "Switch table page" +#~ msgstr "테이블 페이지 전환" + +#~ msgid "Global shortcuts" +#~ msgstr "전역 단축키" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "마우스 가운데 버튼" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "선택한 객체 또는 모든 객체의 방향을 자동으로 조정합니다. 선택한 객체가 있는 경우 선택한 객체만 조정되고, 그렇지 않은 경우 프로젝트의 모든 객체가 조정됩니다." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "현재 플레이트에 있는 모든 객체의 방향을 자동으로 지정합니다." + +#~ msgid "Any arrow" +#~ msgstr "모든 화살표" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "변형도구 서포트 칠하기" + +#~ msgid "Plater" +#~ msgstr "출력판" + +#~ msgid "Gizmo" +#~ msgstr "변형도구" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "객체, 부품, 수정자 삭제" + +#~ msgid "Objects List" +#~ msgstr "객체 목록" + +# AI Translated +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "출력 파일의 가장 앞부분, 다른 모든 내용보다 먼저 기록되는 G-code입니다. 프린터 펌웨어가 파일의 첫 줄에서 읽는 메타데이터(예: 예상 출력 시간, 필라멘트 사용량)를 추가하는 데 유용합니다. {print_time_sec}, {used_filament_length}와 같은 자리 표시자를 지원합니다." + +# AI Translated +#~ msgid "Print time (seconds)" +#~ msgstr "출력 시간(초)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "작업 스피드 다이얼 열기" diff --git a/localization/i18n/list.txt b/localization/i18n/list.txt index 7636bf2484..ef049fa48e 100644 --- a/localization/i18n/list.txt +++ b/localization/i18n/list.txt @@ -300,3 +300,5 @@ src/slic3r/GUI/CAD/DesignPanel.cpp src/slic3r/GUI/CAD/SketchInlineEditor.cpp src/slic3r/GUI/Gizmos/GLGizmoPrimitive.cpp src/slic3r/GUI/Gizmos/GLGizmoSketch.cpp +src/slic3r/GUI/KeyChord.cpp +src/slic3r/GUI/Shortcuts.cpp diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po index 6fe2933981..49deda164c 100644 --- a/localization/i18n/lt/OrcaSlicer_lt.po +++ b/localization/i18n/lt/OrcaSlicer_lt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2026-07-02 14:13+0300\n" "Last-Translator: Gintaras Kučinskas \n" "Language-Team: \n" @@ -5911,12 +5911,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Dešinė" -msgid "Add" -msgstr "Įtraukti" - msgid "Add plate" msgstr "Įtraukti plokštę" +msgid "Split to objects" +msgstr "Padalinti į objektus" + +msgid "Add" +msgstr "Įtraukti" + msgid "Auto orient all/selected objects" msgstr "Automatiškai orientuoti visus / pasirinktus objektus" @@ -5929,9 +5932,6 @@ msgstr "Išdėstyti visus objektus" msgid "Arrange objects on selected plates" msgstr "Išdėstyti objektus pasirinktose plokštėse" -msgid "Split to objects" -msgstr "Padalinti į objektus" - msgid "Assembly View" msgstr "Surinkimo vaizdas" @@ -5986,6 +5986,9 @@ msgstr "Kontūras" msgid "Wireframe" msgstr "Rodyti karkasinį vaizdą" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "Realistiškas vaizdas" @@ -6525,7 +6528,7 @@ msgstr "Rodyti kontūrą aplink pasirinktą objektą 3D scenoje." msgid "Preferences" msgstr "Parinktys" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8353,9 +8356,6 @@ msgstr "Išskleisti šoninę juostą" msgid "Collapse sidebar" msgstr "Sutraukti šoninę juostą" -msgid "Tab" -msgstr "Tab" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Įkeliamas failas: %s" @@ -9369,10 +9369,10 @@ msgstr "Kelių įrenginių valdymas" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Kai įjungta ši funkcija, jūs galite siųsti užduotį keliems įrenginiams vienu metu, taip apt kontroliuoti keletą įrenginių." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9504,6 +9504,15 @@ msgstr "Vilkti dešiniuoju pelės mygtuku" msgid "Set the action that dragging the right mouse button should perform." msgstr "Nustatykite veiksmą, kuris turi būti atliktas, velkant dešinįjį pelės mygtuką." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Išvalyti mano pasirinkimą..." @@ -9612,11 +9621,39 @@ msgid "" "Set to 0 for unlimited frame rate." msgstr "Riboja vaizdo srities kadrų dažnį, kad sumažintų vaizdo plokštės (GPU) apkrovą ir energijos sąnaudas. Įveskite 0, jei kadrų dažnis neribojamas." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "Rodyti KPS (FPS) indikatorių" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Viršutiniame dešiniajame kampe rodo esamą vaizdo srities kadrų dažnį." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10073,13 +10110,8 @@ msgstr "Talpinti 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Pasirinkite, kuriuos parametrus talpinti 3MF faile" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "3MF talpinimo wiki" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "3MF talpinimo vaizdo vadovas" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10281,6 +10313,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Rodyti išsamiau" + +# AI Translated +msgid "Hide details" +msgstr "Slėpti išsamią informaciją" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12117,67 +12156,39 @@ msgstr "Konfigūracijos paketas buvo pakeistas ankstesniame konfigūravimo vadov msgid "Configuration package changed" msgstr "Pakeistas konfigūracijos paketas" -msgid "Toolbar" -msgstr "Įrankių juosta" - -msgid "Objects list" -msgstr "Objektų sąrašas" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Importuoti geometrijos duomenis iš STL/STEP/3MF/OBJ/AMF failų" - -msgid "Paste from clipboard" -msgstr "Įklijuoti iš mainų srities" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Rodyti/slėpti 3DConnexion įrenginių nustatymų dialogo langą" - -msgid "Switch table page" -msgstr "Perjungti lentelės puslapį" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Tarpas" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Rodyti sparčiųjų klavišų sąrašą" - -msgid "Global shortcuts" -msgstr "Bendrieji spartieji klavišai" - msgid "Pan View" msgstr "Vaizdo stūmimas (panoraminis vaizdas)" msgid "Rotate View" msgstr "Vaizdo pasukimas" -msgid "Middle mouse button" -msgstr "Vidurinis pelės mygtukas" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "Vaizdo mastelio keitimas (zoom)" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Automatiškai orientuoja pasirinktus objektus arba visus objektus. Jei yra pasirinkti objektai, orientuoja tik pasirinktus. Kitais atvejais orientuoja visus esamo projekto objektus." +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Automatiškai orientuoja visus objektus aktyvioje plokštėje." +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "Sutraukti / išskleisti šoninę juostą" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" -msgid "Any arrow" -msgstr "Bet kuri rodyklė" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Movement in camera space" -msgstr "Judėjimas kameros erdvėje" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Pasirinkti dalį" @@ -12188,126 +12199,29 @@ msgstr "Pasirinkite kelis objektus" msgid "Select objects by rectangle" msgstr "Pasirinkti objektus stačiakampio rėmeliu" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Rodyklė aukštyn" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Perkelti pasirinkimą 10 mm teigiama Y kryptimi" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Rodyklė žemyn" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Perkelti pasirinkimą 10 mm neigiama Y kryptimi" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Rodyklė kairėn" - -msgid "Move selection 10mm in negative X direction" -msgstr "Perkelti pasirinkimą 10 mm neigiama X kryptimi" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Rodyklė dešinėn" - -msgid "Move selection 10mm in positive X direction" -msgstr "Perkelti pasirinkimą 10 mm teigiama X kryptimi" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "Klaviatūra 1-9: nustatyti objekto/dalies giją" msgid "Movement step set to 1mm" msgstr "Judėjimo žingsnis nustatytas į 1 mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "Klaviatūra 1-9: nustatyti objekto/dalies giją" +msgid "Movement in camera space" +msgstr "Judėjimas kameros erdvėje" -msgid "Camera view - Default" -msgstr "Kameros vaizdas - Numatytasis" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Kameros vaizdas - Viršus" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Kameros vaizdas - Apačia" +msgid "Zoom View" +msgstr "Vaizdo mastelio keitimas (zoom)" -msgid "Camera view - Front" -msgstr "Kameros vaizdas - Priekis" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Kameros vaizdas – iš galo" - -msgid "Camera Angle - Left side" -msgstr "Kameros kampas – iš kairės" - -msgid "Camera Angle - Right side" -msgstr "Kameros kampas – iš dešinės" - -msgid "Select all objects" -msgstr "Pasirinkti visus objektus" - -msgid "Gizmo move" -msgstr "Perkėlimo manipuliatorius" - -msgid "Gizmo rotate" -msgstr "Pasukimo manipuliatorius" - -msgid "Gizmo scale" -msgstr "Mastelio keitimo manipuliatorius" - -msgid "Gizmo place face on bed" -msgstr "Paviršiaus dėjimo ant pagrindo manipuliatorius" - -msgid "Gizmo cut" -msgstr "Pjovimo manipuliatorius" - -msgid "Gizmo mesh boolean" -msgstr "Loginių tinklelio veiksmų (Boolean) manipuliatorius" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "FDM užtepamo grublėto paviršiaus (fuzzy skin) manipuliatorius" - -msgid "Gizmo SLA support points" -msgstr "SLA atramų taškų manipuliatorius" - -msgid "Gizmo FDM paint-on seam" -msgstr "FDM užtepamos siūlės (seam) manipuliatorius" - -msgid "Gizmo text emboss/engrave" -msgstr "Teksto iškėlimo ir įspaudimo (emboss/engrave) manipuliatorius" - -msgid "Gizmo measure" -msgstr "Matavimo manipuliatorius" - -msgid "Gizmo assemble" -msgstr "Surinkimo manipuliatorius" - -msgid "Gizmo brim ears" -msgstr "Krašto „auselių“ (brim ears) manipuliatorius" - -msgid "Zoom in" -msgstr "Padidinti" - -msgid "Zoom out" -msgstr "Nutolinti" - -msgid "Toggle printable for object/part" -msgstr "Perjungti objekto / dalies spausdinimą" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Perjungimas tarp Paruošti / Peržiūrėti" - -msgid "Plater" -msgstr "Plokštė" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Perkėlimas: paspauskite, kad pritrauktumėte kas 1 mm" @@ -12318,14 +12232,19 @@ msgstr "Atramų ir spalvų užtepimas: keisti teptuko spindulį" msgid "Support/Color Painting: adjust section position" msgstr "Atramų ir spalvų užtepimas: keisti pjūvio padėtį" -msgid "Gizmo" -msgstr "Manipuliatorius" +msgid "Objects list" +msgstr "Objektų sąrašas" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Nustatykite ekstruderio numerį objektams ir dalims" -msgid "Delete objects, parts, modifiers" -msgstr "Ištrinti objektus, dalis, modifikatorius" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Tarpas" msgid "Select the object/part and press space to change the name" msgstr "Pasirinkite objektą ir (arba) dalį ir paspauskite tarpo klavišą, kad pakeistumėte pavadinimą" @@ -12336,45 +12255,48 @@ msgstr "Pelės paspaudimas" msgid "Select the object/part and mouse click to change the name" msgstr "Pasirinkite objektą/dalį ir spustelėkite pele, kad pakeistumėte pavadinimą" -msgid "Objects List" -msgstr "Objektų sąrašas" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Vertikalus slankiklis – kelti aktyvų žymeklį aukštyn" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Vertikalus slankiklis – nuleisti aktyvų žymeklį žemyn" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Horizontalus slankiklis – stumti aktyvų žymeklį kairėn" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Horizontalus slankiklis – stumti aktyvų žymeklį dešinėn" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Vertikalaus slankiklio vieno sluoksnio režimas įjungimas / išjungimas" - -msgid "On/Off G-code window" -msgstr "G-kodo lango įjungimas / išjungimas" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Judinkite slankiklį 5 kartus greičiau" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Horizontalus slankiklis – perkelti į pradinę padėtį" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Horizontalus slankiklis – perkelti į paskutinę padėtį" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Versijos pastabos (Release notes)" @@ -17222,8 +17144,8 @@ msgstr "Įkaitinimo etapai" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Įterpkite kelias įkaitinimo komandas (pvz., M104.1). Naudinga tik „Prusa XL“. Kitiems spausdintuvams nustatykite 1." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-kodas, įrašomas pačiame išvesties failo viršuje, prieš bet kokį kitą turinį. Naudingas įterpti metaduomenims, kuriuos spausdintuvo aparatinė programinė įranga nuskaito iš pirmųjų failo eilučių (pvz., numatomą spausdinimo laiką, gijos sąnaudas). Palaiko kintamuosius (placeholders), tokius kaip {print_time_sec} ir {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "Pradžios G-kodas" @@ -18765,12 +18687,36 @@ msgstr "Naudota gija" msgid "Total length of filament used in the print." msgstr "Bendras viso spausdinimo metu sunaudotos gijos ilgis." -msgid "Print time (seconds)" -msgstr "Spausdinimo laikas (sekundėmis)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Bendras numatomas spausdinimo laikas sekundėmis. Papildomo apdorojimo (post-processing) metu pakeičiama faktine reikšme." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Gijos ilgis (metrais)" @@ -20612,6 +20558,9 @@ msgstr "Nerasta galiojančios sesijos. Prisijungti prie „3DPrinterOS“?" msgid "Success!" msgstr "Pavyko!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Ar tikrai norite atsijungti?" @@ -21567,13 +21516,6 @@ msgstr "„Bambu“ tinklo papildinys yra būtinas, kad veiktų debesijos funkci msgid "Error: %s" msgstr "Klaida: %s" -msgid "Show details" -msgstr "Rodyti išsamiau" - -# AI Translated -msgid "Hide details" -msgstr "Slėpti išsamią informaciją" - msgid "Version to install:" msgstr "Diegiama versija:" @@ -24202,6 +24144,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24214,6 +24162,216 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Rodyklė kairėn" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Rodyklė dešinėn" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Rodyklė aukštyn" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Rodyklė žemyn" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Importuoti geometrijos duomenis iš STL/STEP/3MF/OBJ/AMF failų" + +msgid "Select all objects" +msgstr "Pasirinkti visus objektus" + +msgid "Paste from clipboard" +msgstr "Įklijuoti iš mainų srities" + +msgid "Toggle printable for object/part" +msgstr "Perjungti objekto / dalies spausdinimą" + +msgid "Move selection 10mm in negative X direction" +msgstr "Perkelti pasirinkimą 10 mm neigiama X kryptimi" + +msgid "Move selection 10mm in positive X direction" +msgstr "Perkelti pasirinkimą 10 mm teigiama X kryptimi" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Perkelti pasirinkimą 10 mm teigiama Y kryptimi" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Perkelti pasirinkimą 10 mm neigiama Y kryptimi" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Perkėlimo manipuliatorius" + +msgid "Gizmo rotate" +msgstr "Pasukimo manipuliatorius" + +msgid "Gizmo scale" +msgstr "Mastelio keitimo manipuliatorius" + +msgid "Gizmo place face on bed" +msgstr "Paviršiaus dėjimo ant pagrindo manipuliatorius" + +msgid "Gizmo cut" +msgstr "Pjovimo manipuliatorius" + +msgid "Gizmo mesh boolean" +msgstr "Loginių tinklelio veiksmų (Boolean) manipuliatorius" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "FDM užtepamos siūlės (seam) manipuliatorius" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "FDM užtepamo grublėto paviršiaus (fuzzy skin) manipuliatorius" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Teksto iškėlimo ir įspaudimo (emboss/engrave) manipuliatorius" + +msgid "Gizmo measure" +msgstr "Matavimo manipuliatorius" + +msgid "Gizmo assemble" +msgstr "Surinkimo manipuliatorius" + +msgid "Gizmo brim ears" +msgstr "Krašto „auselių“ (brim ears) manipuliatorius" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Vertikalus slankiklis – kelti aktyvų žymeklį aukštyn" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Vertikalus slankiklis – nuleisti aktyvų žymeklį žemyn" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Horizontalus slankiklis – stumti aktyvų žymeklį kairėn" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Horizontalus slankiklis – stumti aktyvų žymeklį dešinėn" + +msgid "Horizontal slider - Move to start position" +msgstr "Horizontalus slankiklis – perkelti į pradinę padėtį" + +msgid "Horizontal slider - Move to last position" +msgstr "Horizontalus slankiklis – perkelti į paskutinę padėtį" + +msgid "Camera view - Default" +msgstr "Kameros vaizdas - Numatytasis" + +msgid "Camera view - Top" +msgstr "Kameros vaizdas - Viršus" + +msgid "Camera view - Bottom" +msgstr "Kameros vaizdas - Apačia" + +msgid "Camera view - Front" +msgstr "Kameros vaizdas - Priekis" + +msgid "Camera view - Behind" +msgstr "Kameros vaizdas – iš galo" + +msgid "Camera Angle - Left side" +msgstr "Kameros kampas – iš kairės" + +msgid "Camera Angle - Right side" +msgstr "Kameros kampas – iš dešinės" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Padidinti" + +msgid "Zoom out" +msgstr "Nutolinti" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Rodyti/slėpti 3DConnexion įrenginių nustatymų dialogo langą" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "G-kodo lango įjungimas / išjungimas" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Vertikalaus slankiklio vieno sluoksnio režimas įjungimas / išjungimas" + +msgid "Switch between Prepare/Preview" +msgstr "Perjungimas tarp Paruošti / Peržiūrėti" + +msgid "Collapse/Expand the sidebar" +msgstr "Sutraukti / išskleisti šoninę juostą" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Rodyti sparčiųjų klavišų sąrašą" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24514,6 +24672,62 @@ msgstr "" "Venkite deformacijų (warping)\n" "Ar žinojote, kad spausdinant medžiagas, kurios yra linkusios trauktis ir riestis (pvz., ABS), tinkamas kaitinamojo pagrindo temperatūros padidinimas gali sumažinti deformacijų (warping) tikimybę?" +#~ msgid "Tab" +#~ msgstr "Tab" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Viršutiniame dešiniajame kampe rodo esamą vaizdo srities kadrų dažnį." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "3MF talpinimo wiki" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "3MF talpinimo vaizdo vadovas" + +#~ msgid "Toolbar" +#~ msgstr "Įrankių juosta" + +#~ msgid "Switch table page" +#~ msgstr "Perjungti lentelės puslapį" + +#~ msgid "Global shortcuts" +#~ msgstr "Bendrieji spartieji klavišai" + +#~ msgid "Middle mouse button" +#~ msgstr "Vidurinis pelės mygtukas" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Automatiškai orientuoja pasirinktus objektus arba visus objektus. Jei yra pasirinkti objektai, orientuoja tik pasirinktus. Kitais atvejais orientuoja visus esamo projekto objektus." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Automatiškai orientuoja visus objektus aktyvioje plokštėje." + +#~ msgid "Any arrow" +#~ msgstr "Bet kuri rodyklė" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "SLA atramų taškų manipuliatorius" + +#~ msgid "Plater" +#~ msgstr "Plokštė" + +#~ msgid "Gizmo" +#~ msgstr "Manipuliatorius" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Ištrinti objektus, dalis, modifikatorius" + +#~ msgid "Objects List" +#~ msgstr "Objektų sąrašas" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-kodas, įrašomas pačiame išvesties failo viršuje, prieš bet kokį kitą turinį. Naudingas įterpti metaduomenims, kuriuos spausdintuvo aparatinė programinė įranga nuskaito iš pirmųjų failo eilučių (pvz., numatomą spausdinimo laiką, gijos sąnaudas). Palaiko kintamuosius (placeholders), tokius kaip {print_time_sec} ir {used_filament_length}." + +#~ msgid "Print time (seconds)" +#~ msgstr "Spausdinimo laikas (sekundėmis)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Atidaryti veiksmų greitosios prieigos meniu" diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index 685be64863..2800bcda36 100644 --- a/localization/i18n/nl/OrcaSlicer_nl.po +++ b/localization/i18n/nl/OrcaSlicer_nl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -6454,12 +6454,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Rechts" -msgid "Add" -msgstr "Toevoegen" - msgid "Add plate" msgstr "Printbed toevoegen" +msgid "Split to objects" +msgstr "Opsplitsen in objecten" + +msgid "Add" +msgstr "Toevoegen" + msgid "Auto orient all/selected objects" msgstr "Automatisch oriënteren alle/geselecteerde objecten" @@ -6472,9 +6475,6 @@ msgstr "Alle objecten rangschikken" msgid "Arrange objects on selected plates" msgstr "Rangschikt de objecten op de gelecteerde printbedden" -msgid "Split to objects" -msgstr "Opsplitsen in objecten" - msgid "Assembly View" msgstr "Montageweergave" @@ -6533,6 +6533,9 @@ msgstr "Omtrek" msgid "Wireframe" msgstr "Draadmodel" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "Realistische weergave" @@ -7119,7 +7122,7 @@ msgstr "Toon een omtrek rond het geselecteerde object in de 3D-scène." msgid "Preferences" msgstr "Voorkeuren" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -9088,10 +9091,6 @@ msgstr "Zijbalk uitklappen" msgid "Collapse sidebar" msgstr "Zijbalk inklappen" -# AI Translated -msgid "Tab" -msgstr "Tab" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Bestand laden: %s" @@ -10218,10 +10217,10 @@ msgstr "Beheer van meerdere apparaten" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Met deze optie ingeschakeld kunt u een taak tegelijkertijd naar meerdere apparaten sturen en meerdere apparaten beheren." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -10371,6 +10370,15 @@ msgstr "Slepen met rechtermuisknop" msgid "Set the action that dragging the right mouse button should perform." msgstr "Stel de actie in die het slepen met de rechtermuisknop moet uitvoeren." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + # AI Translated msgid "Clear my choice on..." msgstr "Mijn keuze wissen voor..." @@ -10500,13 +10508,40 @@ msgstr "" "Beperkt de framesnelheid van de viewport om de GPU-belasting en het stroomverbruik te verlagen.\n" "Stel in op 0 voor een onbeperkte framesnelheid." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "FPS-overlay tonen" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Toont de huidige FPS van de viewport in de rechterbovenhoek." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -11006,13 +11041,8 @@ msgstr "3MF publiceren..." msgid "Select which settings to be published in the 3MF file" msgstr "Selecteer welke instellingen in het 3MF-bestand worden gepubliceerd" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki over 3MF publiceren" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Videohandleiding over 3MF publiceren" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -11215,6 +11245,14 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +# AI Translated +msgid "Show details" +msgstr "Details tonen" + +# AI Translated +msgid "Hide details" +msgstr "Details verbergen" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -13238,71 +13276,39 @@ msgstr "Het configuratiebestand is aangepast in de vorige Config Guide" msgid "Configuration package changed" msgstr "Het configuratiepakket is gewijzigd" -msgid "Toolbar" -msgstr "Gereedschapsbalk" - -msgid "Objects list" -msgstr "Object lijst" - -# AI Translated -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Importeer geometriegegevens uit STL-/STEP-/3MF-/OBJ-/AMF-bestanden" - -msgid "Paste from clipboard" -msgstr "Plakken vanuit klembord" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Dialoogvenster met instellingen voor 3Dconnexion-apparaten weergeven/verbergen" - -msgid "Switch table page" -msgstr "Schakeltabel pagina" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Spatie" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Toon lijst met sneltoetsen" - -msgid "Global shortcuts" -msgstr "Globale snelkoppelingen" - msgid "Pan View" msgstr "Panweergave" msgid "Rotate View" msgstr "Weergave roteren" -# AI Translated -msgid "Middle mouse button" -msgstr "Middelste muisknop" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "Zoom weergave" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Oriënteert automatisch geselecteerde objecten of alle objecten. Als er geselecteerde objecten zijn, oriënteert het alleen de geselecteerde objecten. Anders worden alle objecten van het project georiënteerd." +msgid "Left mouse" +msgstr "" + +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" + +msgid "Run a speed dial favorite while the dial is open" +msgstr "" # AI Translated -msgid "Auto orients all objects on the active plate." -msgstr "Oriënteert alle objecten op het actieve printbed automatisch." +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Collapse/Expand the sidebar" -msgstr "De menubalk in-/uitschuiven" +msgid "Switch to the next main tab" +msgstr "" -# AI Translated -msgid "Any arrow" -msgstr "Willekeurige pijltoets" - -msgid "Movement in camera space" -msgstr "Beweging in cameragebied" +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Selecteer een onderdeel" @@ -13313,130 +13319,29 @@ msgstr "Selecteer meerdere objecten" msgid "Select objects by rectangle" msgstr "Objecten selecteren door rechthoek" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Pijl omhoog" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Verplaats de selectie 10mm in een positieve Y richting" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Pijl omlaag" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Verplaats de selectie 10mm in een negatieve Y richting" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Pijl links" - -msgid "Move selection 10mm in negative X direction" -msgstr "Verplaats de selectie 10mm in een negatieve X richting" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Pijl rechts" - -msgid "Move selection 10mm in positive X direction" -msgstr "Verplaats de selectie 10mm in een positieve X richting" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "Toets 1-9: kies filament voor het object/onderdeel" msgid "Movement step set to 1mm" msgstr "Bewegingsinterval ingesteld op 1mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "Toets 1-9: kies filament voor het object/onderdeel" +msgid "Movement in camera space" +msgstr "Beweging in cameragebied" -msgid "Camera view - Default" -msgstr "Camera hoek - Standaard" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Camera hoek - Bovenkant" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Camera hoek - Onderkant" +msgid "Zoom View" +msgstr "Zoom weergave" -msgid "Camera view - Front" -msgstr "Camera hoek - Voorkant" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Camera hoek - Achter" - -msgid "Camera Angle - Left side" -msgstr "Camera hoek - Linker zijde" - -msgid "Camera Angle - Right side" -msgstr "Camera hoek - Rechter zijde" - -msgid "Select all objects" -msgstr "Selecteer alle objecten" - -msgid "Gizmo move" -msgstr "Gizmo bewegen" - -msgid "Gizmo rotate" -msgstr "Gizmo roteren" - -msgid "Gizmo scale" -msgstr "Gizmo schalen" - -msgid "Gizmo place face on bed" -msgstr "Gizmo plaats gebied op het bed" - -msgid "Gizmo cut" -msgstr "Gizmo snijden" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo mesh booleaan" - -# AI Translated -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM vage buitenkant schilderen" - -msgid "Gizmo SLA support points" -msgstr "Gizmo SLA-ondersteuningspunten" - -msgid "Gizmo FDM paint-on seam" -msgstr "Gizmo FDM seam schilderen" - -msgid "Gizmo text emboss/engrave" -msgstr "Gizmo tekst reliëf/graveren" - -msgid "Gizmo measure" -msgstr "Gizmo maatregel" - -msgid "Gizmo assemble" -msgstr "Gizmo monteren" - -msgid "Gizmo brim ears" -msgstr "Gizmo rand oren" - -# AI Translated -msgid "Zoom in" -msgstr "Inzoomen" - -msgid "Zoom out" -msgstr "Zoom uit" - -# AI Translated -msgid "Toggle printable for object/part" -msgstr "Printbaar in-/uitschakelen voor object/onderdeel" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -# AI Translated -msgid "Switch between Prepare/Preview" -msgstr "Wisselen tussen Voorbereiden/Voorvertoning" - -msgid "Plater" -msgstr "Plaat" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Verplaatsen: druk om 1 mm te verplaatsen" @@ -13447,15 +13352,19 @@ msgstr "Support/kleur intekenen: pas de pen diameter aan" msgid "Support/Color Painting: adjust section position" msgstr "Support/kleur intekenen: pas de sectie positie aan" -# AI Translated -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Object lijst" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Stel het extrudernnumer in voor de objecten en onderdelen" -msgid "Delete objects, parts, modifiers" -msgstr "Verwijder objecten, onderdelen, aanpassingen" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Spatie" msgid "Select the object/part and press space to change the name" msgstr "Selecteer het object/onderdeel en druk op de spatiebalk om de naam aan te passen" @@ -13466,48 +13375,48 @@ msgstr "Muisklik" msgid "Select the object/part and mouse click to change the name" msgstr "Selecteer het object/onderdeel en rechtermuisklik om de naam aan te passen" -msgid "Objects List" -msgstr "Objecten lijst" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Verticale schuifregelaar - Actieve thumb omhoog bewegen" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Verticale schuifregelaar - Actieve thumb omlaag bewegen" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Horizontale schuifbalk - Beweeg actieve duim naar links" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Horizontale schuifbalk - Beweeg actieve duim naar rechts" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Aan/uit één laagmodus van de verticale schuifregelaar" - -# AI Translated -msgid "On/Off G-code window" -msgstr "G-code-venster aan/uit" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Schuifregelaar 5x sneller verplaatsen" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -# AI Translated -msgid "Horizontal slider - Move to start position" -msgstr "Horizontale schuifregelaar - Naar de startpositie" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -# AI Translated -msgid "Horizontal slider - Move to last position" -msgstr "Horizontale schuifregelaar - Naar de laatste positie" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Release-opmerkingen" @@ -18992,9 +18901,8 @@ msgstr "Voorverwarmstappen" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Voeg meerdere voorverwarmopdrachten in (bijv. M104.1). Alleen nuttig voor de Prusa XL. Stel dit voor andere printers in op 1." -# AI Translated -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code die helemaal bovenaan het uitvoerbestand wordt geschreven, vóór alle andere inhoud. Nuttig voor het toevoegen van metagegevens die de printerfirmware uit de eerste regels van het bestand leest (bijv. geschatte printtijd, filamentverbruik). Ondersteunt plaatshouders zoals {print_time_sec} en {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" # AI Translated msgid "Start G-code" @@ -20730,14 +20638,37 @@ msgstr "Verbruikt filament" msgid "Total length of filament used in the print." msgstr "Totale lengte filament die in de print is gebruikt." -# AI Translated -msgid "Print time (seconds)" -msgstr "Printtijd (seconden)" +msgid "Print time (total seconds)" +msgstr "" # AI Translated msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Totale geschatte printtijd in seconden. Wordt tijdens de nabewerking vervangen door de werkelijke waarde." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + # AI Translated msgid "Filament length (meters)" msgstr "Filamentlengte (meters)" @@ -22761,6 +22692,9 @@ msgstr "Er is geen geldige sessie gedetecteerd. Doorgaan met inloggen op 3DPrint msgid "Success!" msgstr "Succes!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Weet u zeker dat u wilt uitloggen?" @@ -23943,14 +23877,6 @@ msgstr "De Bambu-netwerkplug-in is vereist voor cloudfuncties, het vinden van pr msgid "Error: %s" msgstr "Fout: %s" -# AI Translated -msgid "Show details" -msgstr "Details tonen" - -# AI Translated -msgid "Hide details" -msgstr "Details verbergen" - # AI Translated msgid "Version to install:" msgstr "Te installeren versie:" @@ -26633,6 +26559,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -26645,6 +26577,224 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Pijl links" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Pijl rechts" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Pijl omhoog" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Pijl omlaag" + +# AI Translated +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Importeer geometriegegevens uit STL-/STEP-/3MF-/OBJ-/AMF-bestanden" + +msgid "Select all objects" +msgstr "Selecteer alle objecten" + +msgid "Paste from clipboard" +msgstr "Plakken vanuit klembord" + +# AI Translated +msgid "Toggle printable for object/part" +msgstr "Printbaar in-/uitschakelen voor object/onderdeel" + +msgid "Move selection 10mm in negative X direction" +msgstr "Verplaats de selectie 10mm in een negatieve X richting" + +msgid "Move selection 10mm in positive X direction" +msgstr "Verplaats de selectie 10mm in een positieve X richting" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Verplaats de selectie 10mm in een positieve Y richting" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Verplaats de selectie 10mm in een negatieve Y richting" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Gizmo bewegen" + +msgid "Gizmo rotate" +msgstr "Gizmo roteren" + +msgid "Gizmo scale" +msgstr "Gizmo schalen" + +msgid "Gizmo place face on bed" +msgstr "Gizmo plaats gebied op het bed" + +msgid "Gizmo cut" +msgstr "Gizmo snijden" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo mesh booleaan" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Gizmo FDM seam schilderen" + +# AI Translated +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo FDM vage buitenkant schilderen" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Gizmo tekst reliëf/graveren" + +msgid "Gizmo measure" +msgstr "Gizmo maatregel" + +msgid "Gizmo assemble" +msgstr "Gizmo monteren" + +msgid "Gizmo brim ears" +msgstr "Gizmo rand oren" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Verticale schuifregelaar - Actieve thumb omhoog bewegen" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Verticale schuifregelaar - Actieve thumb omlaag bewegen" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Horizontale schuifbalk - Beweeg actieve duim naar links" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Horizontale schuifbalk - Beweeg actieve duim naar rechts" + +# AI Translated +msgid "Horizontal slider - Move to start position" +msgstr "Horizontale schuifregelaar - Naar de startpositie" + +# AI Translated +msgid "Horizontal slider - Move to last position" +msgstr "Horizontale schuifregelaar - Naar de laatste positie" + +msgid "Camera view - Default" +msgstr "Camera hoek - Standaard" + +msgid "Camera view - Top" +msgstr "Camera hoek - Bovenkant" + +msgid "Camera view - Bottom" +msgstr "Camera hoek - Onderkant" + +msgid "Camera view - Front" +msgstr "Camera hoek - Voorkant" + +msgid "Camera view - Behind" +msgstr "Camera hoek - Achter" + +msgid "Camera Angle - Left side" +msgstr "Camera hoek - Linker zijde" + +msgid "Camera Angle - Right side" +msgstr "Camera hoek - Rechter zijde" + +msgid "Camera view - Current plate" +msgstr "" + +# AI Translated +msgid "Zoom in" +msgstr "Inzoomen" + +msgid "Zoom out" +msgstr "Zoom uit" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Dialoogvenster met instellingen voor 3Dconnexion-apparaten weergeven/verbergen" + +msgid "Show/Hide wireframe" +msgstr "" + +# AI Translated +msgid "On/Off G-code window" +msgstr "G-code-venster aan/uit" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Aan/uit één laagmodus van de verticale schuifregelaar" + +# AI Translated +msgid "Switch between Prepare/Preview" +msgstr "Wisselen tussen Voorbereiden/Voorvertoning" + +msgid "Collapse/Expand the sidebar" +msgstr "De menubalk in-/uitschuiven" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Toon lijst met sneltoetsen" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -26946,6 +27096,70 @@ msgstr "" "Kromtrekken voorkomen\n" "Wist je dat bij het printen van materialen die gevoelig zijn voor kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het warmtebed de kans op kromtrekken kan verkleinen?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "Tab" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Toont de huidige FPS van de viewport in de rechterbovenhoek." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki over 3MF publiceren" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Videohandleiding over 3MF publiceren" + +#~ msgid "Toolbar" +#~ msgstr "Gereedschapsbalk" + +#~ msgid "Switch table page" +#~ msgstr "Schakeltabel pagina" + +#~ msgid "Global shortcuts" +#~ msgstr "Globale snelkoppelingen" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "Middelste muisknop" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Oriënteert automatisch geselecteerde objecten of alle objecten. Als er geselecteerde objecten zijn, oriënteert het alleen de geselecteerde objecten. Anders worden alle objecten van het project georiënteerd." + +# AI Translated +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Oriënteert alle objecten op het actieve printbed automatisch." + +# AI Translated +#~ msgid "Any arrow" +#~ msgstr "Willekeurige pijltoets" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Gizmo SLA-ondersteuningspunten" + +#~ msgid "Plater" +#~ msgstr "Plaat" + +# AI Translated +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Verwijder objecten, onderdelen, aanpassingen" + +#~ msgid "Objects List" +#~ msgstr "Objecten lijst" + +# AI Translated +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code die helemaal bovenaan het uitvoerbestand wordt geschreven, vóór alle andere inhoud. Nuttig voor het toevoegen van metagegevens die de printerfirmware uit de eerste regels van het bestand leest (bijv. geschatte printtijd, filamentverbruik). Ondersteunt plaatshouders zoals {print_time_sec} en {used_filament_length}." + +# AI Translated +#~ msgid "Print time (seconds)" +#~ msgstr "Printtijd (seconden)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Snelmenu met acties openen" diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index 25b5b664cf..c00b9df1c3 100644 --- a/localization/i18n/pl/OrcaSlicer_pl.po +++ b/localization/i18n/pl/OrcaSlicer_pl.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer 2.3.0-rc\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: Krzysztof Morga <>\n" "Language-Team: \n" @@ -6047,12 +6047,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Prawy" -msgid "Add" -msgstr "Dodaj" - msgid "Add plate" msgstr "Dodaj płytę" +msgid "Split to objects" +msgstr "Podziel na obiekty" + +msgid "Add" +msgstr "Dodaj" + msgid "Auto orient all/selected objects" msgstr "Automatyczna orientacja wszystkie/wybrane obiekty" @@ -6065,9 +6068,6 @@ msgstr "Rozmieść wszystkie obiekty" msgid "Arrange objects on selected plates" msgstr "Rozmieść obiekty na wybranych płytach" -msgid "Split to objects" -msgstr "Podziel na obiekty" - msgid "Assembly View" msgstr "Widok montażu" @@ -6130,6 +6130,9 @@ msgstr "kontur" msgid "Wireframe" msgstr "Siatka" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "Widok realistyczny" @@ -6686,7 +6689,7 @@ msgstr "Przełącza wyświetlanie konturu wokół zaznaczonego obiektu w scenie msgid "Preferences" msgstr "Preferencje" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8546,9 +8549,6 @@ msgstr "Rozwiń pasek boczny" msgid "Collapse sidebar" msgstr "Zwiń pasek boczny" -msgid "Tab" -msgstr "Karty" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Wczytywanie pliku: %s" @@ -9626,10 +9626,10 @@ msgstr "Obsługiwanie wielu urządzeń" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Umożliwia wysyłanie zadania do wielu urządzeń jednocześnie i zarządzanie nimi." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9777,6 +9777,15 @@ msgstr "Przeciąganie prawym przyciskiem myszy" msgid "Set the action that dragging the right mouse button should perform." msgstr "Ustaw akcję wykonywaną przy przeciąganiu prawym przyciskiem myszy." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + # AI Translated msgid "Clear my choice on..." msgstr "Wyczyść mój wybór dla..." @@ -9905,13 +9914,40 @@ msgstr "" "Ogranicza liczbę klatek w widoku, aby zmniejszyć obciążenie GPU i zużycie energii.\n" "Ustaw 0, aby nie ograniczać liczby klatek." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "Pokaż nakładkę FPS" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Wyświetla bieżącą wartość FPS widoku w prawym górnym rogu." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10403,13 +10439,8 @@ msgstr "Opublikuj 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Wybierz, które ustawienia zostaną opublikowane w pliku 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki publikowania 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Poradnik wideo publikowania 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10612,6 +10643,14 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +# AI Translated +msgid "Show details" +msgstr "Pokaż szczegóły" + +# AI Translated +msgid "Hide details" +msgstr "Ukryj szczegóły" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12518,68 +12557,39 @@ msgstr "Pakiet konfiguracyjny został zmieniony w poprzednim Przewodniku konfigu msgid "Configuration package changed" msgstr "Zmieniono pakiet konfiguracyjny" -msgid "Toolbar" -msgstr "Pasek narzędzi" - -msgid "Objects list" -msgstr "Lista obiektów" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Import danych geometrycznych z plików STL/STEP/3MF/OBJ/AMF" - -msgid "Paste from clipboard" -msgstr "Wklej z schowka" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Pokaż/ukryj okno dialogowe ustawień urządzeń 3Dconnexion" - -msgid "Switch table page" -msgstr "Przełącz stronę tabeli" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Spacja" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Pokaż listę skrótów klawiszowych" - -msgid "Global shortcuts" -msgstr "Globalne skróty" - msgid "Pan View" msgstr "Przesuń widok" msgid "Rotate View" msgstr "Obróć widok" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" + +msgid "Left mouse" +msgstr "" + +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" + +msgid "Run a speed dial favorite while the dial is open" +msgstr "" + # AI Translated -msgid "Middle mouse button" -msgstr "Środkowy przycisk myszy" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Zoom View" -msgstr "Powiększ widok" +msgid "Switch to the next main tab" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Ta funkcja automatycznie ustawia orientację zaznaczonych lub wszystkich obiektów. Jeśli są wybrane obiekty, ustawi tylko te wybrane. W przeciwnym razie ustawi wszystkie obiekty bieżącego projektu." - -msgid "Auto orients all objects on the active plate." -msgstr "Ta funkcja automatycznie ustawia orientację wszystkie obiekty na aktualnej płycie roboczej." - -msgid "Collapse/Expand the sidebar" -msgstr "Zwiń/Rozwiń pasek boczny" - -msgid "Any arrow" -msgstr "Dowolna strzałka" - -msgid "Movement in camera space" -msgstr "Ruch w przestrzeni kamery" +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Wybierz część" @@ -12590,127 +12600,29 @@ msgstr "Wybierz wiele obiektów" msgid "Select objects by rectangle" msgstr "Wybierz obiekty prostokątem" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Strzałka w górę" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Przesuń wybrane o 10 mm w kierunku dodatnim osi Y" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Strzałka w dół" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Przesuń wybrane o 10 mm w kierunku ujemnym osi Y" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Strzałka w lewo" - -msgid "Move selection 10mm in negative X direction" -msgstr "Przesuń wybrane o 10 mm w kierunku ujemnym osi X" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Strzałka w prawo" - -msgid "Move selection 10mm in positive X direction" -msgstr "Przesuń wybrane o 10 mm w kierunku dodatnim osi X" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "klawiatura 1-9: ustaw filament dla obiektu/części" msgid "Movement step set to 1mm" msgstr "Ustaw krok ruchu na 1 mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "klawiatura 1-9: ustaw filament dla obiektu/części" +msgid "Movement in camera space" +msgstr "Ruch w przestrzeni kamery" -msgid "Camera view - Default" -msgstr "Widok kamery - Domyślny" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Widok kamery - Z góry" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Widok kamery - Z dołu" +msgid "Zoom View" +msgstr "Powiększ widok" -msgid "Camera view - Front" -msgstr "Widok kamery - Z przodu" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Widok kamery - Z tyłu" - -msgid "Camera Angle - Left side" -msgstr "Kąt kamery - Lewa strona" - -msgid "Camera Angle - Right side" -msgstr "Kąt kamery - Prawa strona" - -msgid "Select all objects" -msgstr "Wybierz wszystkie obiekty" - -msgid "Gizmo move" -msgstr "Przenoszenie za pomocą „uchwytów”" - -msgid "Gizmo rotate" -msgstr "Obracanie za pomocą „uchwytów”" - -msgid "Gizmo scale" -msgstr "Skalowanie za pomocą „uchwytów”" - -msgid "Gizmo place face on bed" -msgstr "Położenie na płaszczyźnie za pomocą „uchwytów”" - -msgid "Gizmo cut" -msgstr "Cięcie za pomocą „uchwytów”" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo operacje boolowskie na siatce" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Uchwyt malowania Fuzzy Skin FDM" - -msgid "Gizmo SLA support points" -msgstr "Punkty podpór SLA za pomocą „uchwytów”" - -msgid "Gizmo FDM paint-on seam" -msgstr "Uchwyt malowania szwu FDM" - -msgid "Gizmo text emboss/engrave" -msgstr "Uchwyt wytłaczania/grawerowania tekstu" - -msgid "Gizmo measure" -msgstr "Gizmo mierzyć" - -msgid "Gizmo assemble" -msgstr "Gizmo montować" - -msgid "Gizmo brim ears" -msgstr "Gizmo uszy brim" - -msgid "Zoom in" -msgstr "Przybliżenie" - -msgid "Zoom out" -msgstr "Oddalenie" - -# AI Translated -msgid "Toggle printable for object/part" -msgstr "Przełącz drukowalność obiektu/części" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Przełączanie między przygotowaniem/podglądem" - -msgid "Plater" -msgstr "Płyta" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Przesuń: naciśnij, aby przyciągnąć co 1 mm" @@ -12721,14 +12633,19 @@ msgstr "Podpory/Kolorowanie: dostosuj promień pędzla" msgid "Support/Color Painting: adjust section position" msgstr "Podpory/Kolorowanie: dostosuj pozycję sekcji" -msgid "Gizmo" -msgstr "Uchwyt" +msgid "Objects list" +msgstr "Lista obiektów" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Ustaw numer extrudera dla obiektów i części" -msgid "Delete objects, parts, modifiers" -msgstr "Usuń obiekty, części, modyfikatory" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Spacja" msgid "Select the object/part and press space to change the name" msgstr "Wybierz obiekt/część i naciśnij spację, aby zmienić nazwę" @@ -12739,45 +12656,48 @@ msgstr "Kliknięcie myszą" msgid "Select the object/part and mouse click to change the name" msgstr "Wybierz obiekt/część i kliknij myszą, aby zmienić nazwę" -msgid "Objects List" -msgstr "Lista obiektów" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Pionowy suwak - Przesuń aktywny punkt w górę" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Pionowy suwak - Przesuń aktywny punkt w dół" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Poziomy suwak - Przesuń aktywny punkt w lewo" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Poziomy suwak - Przesuń aktywny punkt w prawo" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Włącz/wyłącz wyświetlanie jednej warstwy suwaka pionowego" - -msgid "On/Off G-code window" -msgstr "Włącz/Wyłącz okno G-code" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Przesuń suwak 5x szybciej" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Suwak poziomy - Przesuń do pozycji początkowej" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Suwak poziomy - Przesuń do ostatniej pozycji" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Informacje o wydaniu" @@ -17852,9 +17772,8 @@ msgstr "Kroki wstępnego podgrzewania" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Wprowadź wiele poleceń dotyczących podgrzewania (np. M104.1). Funkcja ta działa tylko w drukarce Prusa XL. Dla pozostałych drukarek ustaw wartość na 1." -# AI Translated -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code zapisywany na samej górze pliku wyjściowego, przed jakąkolwiek inną treścią. Przydatny do dodawania metadanych, które oprogramowanie sprzętowe drukarki odczytuje z pierwszych wierszy pliku (np. szacowany czas druku, zużycie filamentu). Obsługuje symbole zastępcze, takie jak {print_time_sec} i {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "Początkowy G-code" @@ -19433,14 +19352,37 @@ msgstr "Użyty filament" msgid "Total length of filament used in the print." msgstr "Całkowita długość filamentu użytego w wydruku." -# AI Translated -msgid "Print time (seconds)" -msgstr "Czas druku (sekundy)" +msgid "Print time (total seconds)" +msgstr "" # AI Translated msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Całkowity szacowany czas druku w sekundach. Zastępowany rzeczywistą wartością podczas postprocessingu." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + # AI Translated msgid "Filament length (meters)" msgstr "Długość filamentu (metry)" @@ -21356,6 +21298,9 @@ msgstr "Nie wykryto prawidłowej sesji. Kontynuować logowaniem do 3DPrinterOS?" msgid "Success!" msgstr "Powodzenie!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Czy na pewno wylogować?" @@ -22427,14 +22372,6 @@ msgstr "Wtyczka Bambu Network jest wymagana do funkcji chmurowych, wykrywania dr msgid "Error: %s" msgstr "Błąd: %s" -# AI Translated -msgid "Show details" -msgstr "Pokaż szczegóły" - -# AI Translated -msgid "Hide details" -msgstr "Ukryj szczegóły" - # AI Translated msgid "Version to install:" msgstr "Wersja do zainstalowania:" @@ -25096,6 +25033,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -25108,6 +25051,217 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Strzałka w lewo" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Strzałka w prawo" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Strzałka w górę" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Strzałka w dół" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Import danych geometrycznych z plików STL/STEP/3MF/OBJ/AMF" + +msgid "Select all objects" +msgstr "Wybierz wszystkie obiekty" + +msgid "Paste from clipboard" +msgstr "Wklej z schowka" + +# AI Translated +msgid "Toggle printable for object/part" +msgstr "Przełącz drukowalność obiektu/części" + +msgid "Move selection 10mm in negative X direction" +msgstr "Przesuń wybrane o 10 mm w kierunku ujemnym osi X" + +msgid "Move selection 10mm in positive X direction" +msgstr "Przesuń wybrane o 10 mm w kierunku dodatnim osi X" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Przesuń wybrane o 10 mm w kierunku dodatnim osi Y" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Przesuń wybrane o 10 mm w kierunku ujemnym osi Y" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Przenoszenie za pomocą „uchwytów”" + +msgid "Gizmo rotate" +msgstr "Obracanie za pomocą „uchwytów”" + +msgid "Gizmo scale" +msgstr "Skalowanie za pomocą „uchwytów”" + +msgid "Gizmo place face on bed" +msgstr "Położenie na płaszczyźnie za pomocą „uchwytów”" + +msgid "Gizmo cut" +msgstr "Cięcie za pomocą „uchwytów”" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo operacje boolowskie na siatce" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Uchwyt malowania szwu FDM" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Uchwyt malowania Fuzzy Skin FDM" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Uchwyt wytłaczania/grawerowania tekstu" + +msgid "Gizmo measure" +msgstr "Gizmo mierzyć" + +msgid "Gizmo assemble" +msgstr "Gizmo montować" + +msgid "Gizmo brim ears" +msgstr "Gizmo uszy brim" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Pionowy suwak - Przesuń aktywny punkt w górę" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Pionowy suwak - Przesuń aktywny punkt w dół" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Poziomy suwak - Przesuń aktywny punkt w lewo" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Poziomy suwak - Przesuń aktywny punkt w prawo" + +msgid "Horizontal slider - Move to start position" +msgstr "Suwak poziomy - Przesuń do pozycji początkowej" + +msgid "Horizontal slider - Move to last position" +msgstr "Suwak poziomy - Przesuń do ostatniej pozycji" + +msgid "Camera view - Default" +msgstr "Widok kamery - Domyślny" + +msgid "Camera view - Top" +msgstr "Widok kamery - Z góry" + +msgid "Camera view - Bottom" +msgstr "Widok kamery - Z dołu" + +msgid "Camera view - Front" +msgstr "Widok kamery - Z przodu" + +msgid "Camera view - Behind" +msgstr "Widok kamery - Z tyłu" + +msgid "Camera Angle - Left side" +msgstr "Kąt kamery - Lewa strona" + +msgid "Camera Angle - Right side" +msgstr "Kąt kamery - Prawa strona" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Przybliżenie" + +msgid "Zoom out" +msgstr "Oddalenie" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Pokaż/ukryj okno dialogowe ustawień urządzeń 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Włącz/Wyłącz okno G-code" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Włącz/wyłącz wyświetlanie jednej warstwy suwaka pionowego" + +msgid "Switch between Prepare/Preview" +msgstr "Przełączanie między przygotowaniem/podglądem" + +msgid "Collapse/Expand the sidebar" +msgstr "Zwiń/Rozwiń pasek boczny" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Pokaż listę skrótów klawiszowych" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -25409,6 +25563,66 @@ msgstr "" "Unikaj odkształceń\n" "Czy wiesz, że podczas drukowania filamentami podatnymi na odkształcenia, takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może zmniejszyć prawdopodobieństwo odkształceń?" +#~ msgid "Tab" +#~ msgstr "Karty" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Wyświetla bieżącą wartość FPS widoku w prawym górnym rogu." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki publikowania 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Poradnik wideo publikowania 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Pasek narzędzi" + +#~ msgid "Switch table page" +#~ msgstr "Przełącz stronę tabeli" + +#~ msgid "Global shortcuts" +#~ msgstr "Globalne skróty" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "Środkowy przycisk myszy" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Ta funkcja automatycznie ustawia orientację zaznaczonych lub wszystkich obiektów. Jeśli są wybrane obiekty, ustawi tylko te wybrane. W przeciwnym razie ustawi wszystkie obiekty bieżącego projektu." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Ta funkcja automatycznie ustawia orientację wszystkie obiekty na aktualnej płycie roboczej." + +#~ msgid "Any arrow" +#~ msgstr "Dowolna strzałka" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Punkty podpór SLA za pomocą „uchwytów”" + +#~ msgid "Plater" +#~ msgstr "Płyta" + +#~ msgid "Gizmo" +#~ msgstr "Uchwyt" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Usuń obiekty, części, modyfikatory" + +#~ msgid "Objects List" +#~ msgstr "Lista obiektów" + +# AI Translated +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code zapisywany na samej górze pliku wyjściowego, przed jakąkolwiek inną treścią. Przydatny do dodawania metadanych, które oprogramowanie sprzętowe drukarki odczytuje z pierwszych wierszy pliku (np. szacowany czas druku, zużycie filamentu). Obsługuje symbole zastępcze, takie jak {print_time_sec} i {used_filament_length}." + +# AI Translated +#~ msgid "Print time (seconds)" +#~ msgstr "Czas druku (sekundy)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Otwórz szybkie menu akcji" diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index db28922786..3deb6bc7d0 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2026-07-26 11:14-0300\n" "Last-Translator: Alexandre Folle de Menezes\n" "Language-Team: Portuguese, Brazilian\n" @@ -5745,12 +5745,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Direita" -msgid "Add" -msgstr "Adicionar" - msgid "Add plate" msgstr "Adicionar placa" +msgid "Split to objects" +msgstr "Dividir em objetos" + +msgid "Add" +msgstr "Adicionar" + msgid "Auto orient all/selected objects" msgstr "Orientação automática todos/selecionados objetos" @@ -5763,9 +5766,6 @@ msgstr "Organizar todos os objetos" msgid "Arrange objects on selected plates" msgstr "Organizar objetos nas placas selecionadas" -msgid "Split to objects" -msgstr "Dividir em objetos" - msgid "Assembly View" msgstr "Vista de Montagem" @@ -5821,6 +5821,9 @@ msgstr "Contorno" msgid "Wireframe" msgstr "Malha" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "Visualização Realista" @@ -6360,7 +6363,7 @@ msgstr "Mostrar contorno ao redor do objeto selecionado na cena 3D." msgid "Preferences" msgstr "Preferências" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" msgctxt "Menu" @@ -8142,9 +8145,6 @@ msgstr "Expandir barra lateral" msgid "Collapse sidebar" msgstr "Recolher barra lateral" -msgid "Tab" -msgstr "Tab" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Carregando arquivo: %s" @@ -9154,10 +9154,10 @@ msgstr "Gerenciamento de multi dispositivos" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Com esta opção habilitada, você pode enviar uma tarefa para vários dispositivos ao mesmo tempo e gerenciar vários dispositivos." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9289,6 +9289,15 @@ msgstr "Arrastar com Mouse Direito" msgid "Set the action that dragging the right mouse button should perform." msgstr "Defina a ação que arrastar com o botão direito do mouse deve executar." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Limpar minha escolha em…" @@ -9399,11 +9408,39 @@ msgstr "" "Limita a taxa de quadros da janela de visualização para reduzir a carga da GPU e o consumo de energia.\n" "Defina como 0 para taxa de quadros ilimitada." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "Mostrar painel de FPS" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Exibe o FPS atual da janela de visualização no canto superior direito." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" msgid "G-code Preview" msgstr "Pré-visualização de G-code" @@ -9859,13 +9896,8 @@ msgstr "Publicar 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Selecione quais configurações serão publicadas no arquivo 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Documentação de Publicar 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Guia em vídeo de Publicar 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10067,6 +10099,12 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Mostrar detalhes" + +msgid "Hide details" +msgstr "Esconder detalhes" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -11853,66 +11891,38 @@ msgstr "O pacote de configuração é alterado no Guia de Configuração anterio msgid "Configuration package changed" msgstr "Pacote de configuração alterado" -msgid "Toolbar" -msgstr "Barra de Ferramentas" - -msgid "Objects list" -msgstr "Lista de objetos" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Importar dados de geometria de arquivos STL/STEP/3MF/OBJ/AMF" - -msgid "Paste from clipboard" -msgstr "Colar da área de transferência" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Mostrar/Ocultar diálogo de configurações de dispositivos 3Dconnexion" - -msgid "Switch table page" -msgstr "Trocar página da tabela" - -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Espaço" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Mostrar lista de atalhos de teclado" - -msgid "Global shortcuts" -msgstr "Atalhos globais" - msgid "Pan View" msgstr "Mover Vista" msgid "Rotate View" msgstr "Rotacionar Vista" -msgid "Middle mouse button" -msgstr "Botão do meio do mouse" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "Aproximar Vista" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Orienta automaticamente os objetos selecionados ou todos os objetos. Se houver objetos selecionados, ele apenas orientará os selecionados. Caso contrário, ele orientará todos os objetos do projeto atual." +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Orienta automaticamente todos os objetos na placa atual." +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "Recolher/Expandir a barra lateral" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" -msgid "Any arrow" -msgstr "Qualquer seta" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Movement in camera space" -msgstr "Movimento no espaço da câmera" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Selecionar uma peça" @@ -11923,121 +11933,29 @@ msgstr "Selecionar vários objetos" msgid "Select objects by rectangle" msgstr "Selecionar objetos por retângulo" -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Seta para Cima" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Mover seleção 10mm na direção Y positiva" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Seta para Baixo" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Mover seleção 10mm na direção Y negativa" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Seta para Esquerda" - -msgid "Move selection 10mm in negative X direction" -msgstr "Mover seleção 10mm na direção X negativa" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Seta para Direita" - -msgid "Move selection 10mm in positive X direction" -msgstr "Mover seleção 10mm na direção X positiva" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "Teclado 1-9: ajustar filamento para objeto/peça" msgid "Movement step set to 1mm" msgstr "Passo de movimento definido para 1mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "Teclado 1-9: ajustar filamento para objeto/peça" +msgid "Movement in camera space" +msgstr "Movimento no espaço da câmera" -msgid "Camera view - Default" -msgstr "Vista da câmera - Padrão" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Vista da câmera - Superior" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Vista da câmera - Inferior" +msgid "Zoom View" +msgstr "Aproximar Vista" -msgid "Camera view - Front" -msgstr "Vista da câmera - Frontal" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Vista da câmera - Posterior" - -msgid "Camera Angle - Left side" -msgstr "Ângulo da câmera - Lado esquerdo" - -msgid "Camera Angle - Right side" -msgstr "Ângulo da câmera - Lado direito" - -msgid "Select all objects" -msgstr "Selecionar todos os objetos" - -msgid "Gizmo move" -msgstr "Gizmo mover" - -msgid "Gizmo rotate" -msgstr "Gizmo rotacionar" - -msgid "Gizmo scale" -msgstr "Gizmo escala" - -msgid "Gizmo place face on bed" -msgstr "Gizmo posicionar face na mesa" - -msgid "Gizmo cut" -msgstr "Gizmo cortar" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo malha booleana" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo de pintura de textura difusa FDM" - -msgid "Gizmo SLA support points" -msgstr "Gizmo de pontos de suporte SLA" - -msgid "Gizmo FDM paint-on seam" -msgstr "Gizmo de pintura de costura FDM" - -msgid "Gizmo text emboss/engrave" -msgstr "Gizmo Texturizar/gravar texto" - -msgid "Gizmo measure" -msgstr "Gizmo medir" - -msgid "Gizmo assemble" -msgstr "Gizmo montar" - -msgid "Gizmo brim ears" -msgstr "Gizmo orelhas da borda" - -msgid "Zoom in" -msgstr "Aproximar zoom" - -msgid "Zoom out" -msgstr "Afastar zoom" - -msgid "Toggle printable for object/part" -msgstr "Alternar modo de impressão para objeto/peça" - -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Alternar entre Preparar/Pré-visualizar" - -msgid "Plater" -msgstr "Mesa" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Mover: pressione para ajustar em 1mm" @@ -12048,14 +11966,18 @@ msgstr "Suporte/Pintura em cores: ajustar o raio da caneta" msgid "Support/Color Painting: adjust section position" msgstr "Suporte/Pintura em cores: ajustar a posição da seção" -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Lista de objetos" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Definir o número da extrusora para os objetos e peças" -msgid "Delete objects, parts, modifiers" -msgstr "Excluir objetos, peças, modificadores" +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Espaço" msgid "Select the object/part and press space to change the name" msgstr "Selecione o objeto/peça e pressione espaço para mudar o nome" @@ -12066,43 +11988,48 @@ msgstr "Clique do mouse" msgid "Select the object/part and mouse click to change the name" msgstr "Selecione o objeto/peça e clique do mouse para mudar o nome" -msgid "Objects List" -msgstr "Lista de Objetos" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Controle deslizante vertical - Mover o polegar ativo para cima" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Controle deslizante vertical - Mover o polegar ativo para baixo" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Controle deslizante horizontal - Mover o polegar ativo para a esquerda" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Controle deslizante horizontal - Mover o polegar ativo para a direita" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Ativar/Desativar modo de uma camada do controle deslizante vertical" - -msgid "On/Off G-code window" -msgstr "Ativar/Desativar janela de G-code" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Mover o controle deslizante 5 vezes mais rápido" -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Barra deslizante horizontal — Mover para a posição inicial" +msgid "Not customizable" +msgstr "" -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Barra deslizante horizontal — Mover para a última posição" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Nota de lançamento" @@ -16888,8 +16815,8 @@ msgstr "Passos de pré-aquecimento" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Insire múltiplos comandos de pré-aquecimento (ex.: M104.1). Útil apenas para Prusa XL. Para outras impressoras, defina como 1." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "Código G escrito no início do arquivo de saída, antes de qualquer outro conteúdo. Útil para adicionar metadados que o firmware da impressora lê das primeiras linhas do arquivo (ex.: tempo estimado de impressão, consumo de filamento). Suporta marcadores como {print_time_sec} e {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "G-code Inicial" @@ -18389,12 +18316,36 @@ msgstr "Fil. usado" msgid "Total length of filament used in the print." msgstr "Comprimento total de filamento usado na impressão." -msgid "Print time (seconds)" -msgstr "Tempo de impressão (segundos)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Tempo total estimado de impressão em segundos. Substituído pelo valor real durante o pós-processamento." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Comprimento do filamento (metros)" @@ -20218,6 +20169,9 @@ msgstr "Sessão válida não detectada. Prosseguir com o login no 3DPrinterOS?" msgid "Success!" msgstr "Sucesso!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Tem certeza de que deseja sair?" @@ -21167,12 +21121,6 @@ msgstr "O Plug-in de Rede Bambu é necessário para recursos de nuvem, detecçã msgid "Error: %s" msgstr "Erro: %s" -msgid "Show details" -msgstr "Mostrar detalhes" - -msgid "Hide details" -msgstr "Esconder detalhes" - msgid "Version to install:" msgstr "Versão para instalar:" @@ -23756,6 +23704,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -23768,6 +23722,210 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Seta para Esquerda" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Seta para Direita" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Seta para Cima" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Seta para Baixo" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Importar dados de geometria de arquivos STL/STEP/3MF/OBJ/AMF" + +msgid "Select all objects" +msgstr "Selecionar todos os objetos" + +msgid "Paste from clipboard" +msgstr "Colar da área de transferência" + +msgid "Toggle printable for object/part" +msgstr "Alternar modo de impressão para objeto/peça" + +msgid "Move selection 10mm in negative X direction" +msgstr "Mover seleção 10mm na direção X negativa" + +msgid "Move selection 10mm in positive X direction" +msgstr "Mover seleção 10mm na direção X positiva" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Mover seleção 10mm na direção Y positiva" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Mover seleção 10mm na direção Y negativa" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Gizmo mover" + +msgid "Gizmo rotate" +msgstr "Gizmo rotacionar" + +msgid "Gizmo scale" +msgstr "Gizmo escala" + +msgid "Gizmo place face on bed" +msgstr "Gizmo posicionar face na mesa" + +msgid "Gizmo cut" +msgstr "Gizmo cortar" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo malha booleana" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Gizmo de pintura de costura FDM" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo de pintura de textura difusa FDM" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Gizmo Texturizar/gravar texto" + +msgid "Gizmo measure" +msgstr "Gizmo medir" + +msgid "Gizmo assemble" +msgstr "Gizmo montar" + +msgid "Gizmo brim ears" +msgstr "Gizmo orelhas da borda" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Controle deslizante vertical - Mover o polegar ativo para cima" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Controle deslizante vertical - Mover o polegar ativo para baixo" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Controle deslizante horizontal - Mover o polegar ativo para a esquerda" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Controle deslizante horizontal - Mover o polegar ativo para a direita" + +msgid "Horizontal slider - Move to start position" +msgstr "Barra deslizante horizontal — Mover para a posição inicial" + +msgid "Horizontal slider - Move to last position" +msgstr "Barra deslizante horizontal — Mover para a última posição" + +msgid "Camera view - Default" +msgstr "Vista da câmera - Padrão" + +msgid "Camera view - Top" +msgstr "Vista da câmera - Superior" + +msgid "Camera view - Bottom" +msgstr "Vista da câmera - Inferior" + +msgid "Camera view - Front" +msgstr "Vista da câmera - Frontal" + +msgid "Camera view - Behind" +msgstr "Vista da câmera - Posterior" + +msgid "Camera Angle - Left side" +msgstr "Ângulo da câmera - Lado esquerdo" + +msgid "Camera Angle - Right side" +msgstr "Ângulo da câmera - Lado direito" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Aproximar zoom" + +msgid "Zoom out" +msgstr "Afastar zoom" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Mostrar/Ocultar diálogo de configurações de dispositivos 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Ativar/Desativar janela de G-code" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Ativar/Desativar modo de uma camada do controle deslizante vertical" + +msgid "Switch between Prepare/Preview" +msgstr "Alternar entre Preparar/Pré-visualizar" + +msgid "Collapse/Expand the sidebar" +msgstr "Recolher/Expandir a barra lateral" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Mostrar lista de atalhos de teclado" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24068,6 +24226,62 @@ msgstr "" "Evitar empenamento\n" "Você sabia que ao imprimir materiais propensos ao empenamento como ABS, aumentar adequadamente a temperatura da mesa aquecida pode reduzir a probabilidade de empenamento?" +#~ msgid "Tab" +#~ msgstr "Tab" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Exibe o FPS atual da janela de visualização no canto superior direito." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Documentação de Publicar 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Guia em vídeo de Publicar 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Barra de Ferramentas" + +#~ msgid "Switch table page" +#~ msgstr "Trocar página da tabela" + +#~ msgid "Global shortcuts" +#~ msgstr "Atalhos globais" + +#~ msgid "Middle mouse button" +#~ msgstr "Botão do meio do mouse" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Orienta automaticamente os objetos selecionados ou todos os objetos. Se houver objetos selecionados, ele apenas orientará os selecionados. Caso contrário, ele orientará todos os objetos do projeto atual." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Orienta automaticamente todos os objetos na placa atual." + +#~ msgid "Any arrow" +#~ msgstr "Qualquer seta" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Gizmo de pontos de suporte SLA" + +#~ msgid "Plater" +#~ msgstr "Mesa" + +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Excluir objetos, peças, modificadores" + +#~ msgid "Objects List" +#~ msgstr "Lista de Objetos" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "Código G escrito no início do arquivo de saída, antes de qualquer outro conteúdo. Útil para adicionar metadados que o firmware da impressora lê das primeiras linhas do arquivo (ex.: tempo estimado de impressão, consumo de filamento). Suporta marcadores como {print_time_sec} e {used_filament_length}." + +#~ msgid "Print time (seconds)" +#~ msgstr "Tempo de impressão (segundos)" + #~ msgid "Open actions speed dial" #~ msgstr "Abrir menu rápido de ações" diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index 6b28f87f7e..4abcbda540 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: OrcaSlicer V2.5.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2026-02-25 13:38+0300\n" "Last-Translator: Felix14_v2\n" "Language-Team: Felix14_v2 (ДС/ТГ: @felix14_v2, почта: aleks111001@list.ru), Andylg \n" @@ -5938,12 +5938,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Справа" -msgid "Add" -msgstr "Добавить" - msgid "Add plate" msgstr "Добавить стол" +msgid "Split to objects" +msgstr "Разделить на модели" + +msgid "Add" +msgstr "Добавить" + msgid "Auto orient all/selected objects" msgstr "Положить все/выбранные модели" @@ -5956,9 +5959,6 @@ msgstr "Расставить все модели" msgid "Arrange objects on selected plates" msgstr "Расставить модели на активном столе" -msgid "Split to objects" -msgstr "Разделить на модели" - msgid "Assembly View" msgstr "Сборочный вид" @@ -6018,6 +6018,9 @@ msgstr "Обводка выбранного" msgid "Wireframe" msgstr "Сетка модели" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "Продвинутая графика" @@ -6594,7 +6597,7 @@ msgstr "Отображение контура вокруг выбранных м msgid "Preferences" msgstr "Настройки" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" msgctxt "Menu" @@ -8405,11 +8408,6 @@ msgstr "Развернуть боковую панель" msgid "Collapse sidebar" msgstr "Свернуть боковую панель" -# Название кнопки на клавиатуре, на момент 2.3.2 используется в 5 местах в -# значении названия кнопки -msgid "Tab" -msgstr "Tab" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Загрузка файла: %s" @@ -9433,10 +9431,10 @@ msgstr "Управление несколькими устройствами Bam msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Если включено, вы сможете управлять несколькими устройствами и отправлять задания на печать на несколько устройств одновременно." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9571,6 +9569,15 @@ msgstr "Перетаскивание правой кнопкой мыши" msgid "Set the action that dragging the right mouse button should perform." msgstr "Действие при перемещении курсора с зажатой правой кнопкой мыши." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Сброс выбора по умолчанию" @@ -9685,11 +9692,39 @@ msgstr "" "Ограничить частоту отрисовки рабочего пространства для снижения энергопотребления и нагрузки на ГП.\n" "0 – не ограничивать частоту кадров." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "Отображать частоту кадров" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Выводить частоту кадров рабочего пространства в правом верхнем углу." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" msgid "G-code Preview" msgstr "Просмотр нарезки" @@ -10151,13 +10186,8 @@ msgstr "Опубликовать 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Выберите, какие настройки будут опубликованы в файле 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki по публикации 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Видеоруководство по публикации 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10363,6 +10393,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Подробнее" + +# В информации о сетевом плагине +msgid "Hide details" +msgstr "Скрыть подробности" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12206,66 +12243,38 @@ msgstr "Пакет профилей был изменён при предыду msgid "Configuration package changed" msgstr "Пакет профилей изменён" -msgid "Toolbar" -msgstr "Панель инструментов" - -msgid "Objects list" -msgstr "Список моделей" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Импорт геометрических данных из STL/STEP/3MF/OBJ/AMF файлов" - -msgid "Paste from clipboard" -msgstr "Вставить из буфера обмена" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Показать/скрыть диалоговое окно настроек и устройств 3Dconnexion" - -msgid "Switch table page" -msgstr "Переключение между вкладками" - -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Пробел" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Показать список сочетаний клавиш" - -msgid "Global shortcuts" -msgstr "Глобальные горячие клавиши" - msgid "Pan View" msgstr "Перемещение камеры" msgid "Rotate View" msgstr "Вращение камеры" -msgid "Middle mouse button" -msgstr "Средняя кнопка мыши" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "Масштабирование вида" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Попытаться положить модели на стол. При выборе отдельных моделей операция применяется только к ним." +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Положить все модели только на активном столе" +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "Свернуть/развернуть боковую панель" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" -msgid "Any arrow" -msgstr "Любая стрелка" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Movement in camera space" -msgstr "Перемещение выбранного по отношению к камере" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Выбор части модели" @@ -12276,123 +12285,29 @@ msgstr "Выбор нескольких моделей" msgid "Select objects by rectangle" msgstr "Выбор прямоугольником" -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Стрелка вверх" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Перемещение выбранного на +10 мм по оси Y" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Стрелка вниз" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Перемещение выбранного на -10 мм по оси Y" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Стрелка влево" - -msgid "Move selection 10mm in negative X direction" -msgstr "Перемещение выбранного на -10 мм по оси X" - -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Стрелка вправо" - -msgid "Move selection 10mm in positive X direction" -msgstr "Перемещение выбранного на +10 мм по оси X" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "Клавиши 1-9: задать материал для модели/части модели" msgid "Movement step set to 1mm" msgstr "Зафиксировать шаг перемещения на 1 мм" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "Клавиши 1-9: задать материал для модели/части модели" +msgid "Movement in camera space" +msgstr "Перемещение выбранного по отношению к камере" -msgid "Camera view - Default" -msgstr "Камера по умолчанию" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Камера сверху" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Камера снизу" +msgid "Zoom View" +msgstr "Масштабирование вида" -msgid "Camera view - Front" -msgstr "Камера спереди" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Камера сзади" - -msgid "Camera Angle - Left side" -msgstr "Камера слева" - -msgid "Camera Angle - Right side" -msgstr "Камера справа" - -msgid "Select all objects" -msgstr "Выбрать все модели" - -msgid "Gizmo move" -msgstr "Инструмент перемещения" - -msgid "Gizmo rotate" -msgstr "Инструмент вращения" - -msgid "Gizmo scale" -msgstr "Инструмент масштабирования" - -msgid "Gizmo place face on bed" -msgstr "Выбор контактной поверхности" - -msgid "Gizmo cut" -msgstr "Инструмент разрезания" - -msgid "Gizmo mesh boolean" -msgstr "Булевы операции" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Рисование нечёткой оболочки" - -msgid "Gizmo SLA support points" -msgstr "Размещение поддержек (SLA)" - -msgid "Gizmo FDM paint-on seam" -msgstr "Рисование шва (FDM)" - -msgid "Gizmo text emboss/engrave" -msgstr "Инструмент размещения текста" - -msgid "Gizmo measure" -msgstr "Инструмент измерения" - -msgid "Gizmo assemble" -msgstr "Размещение частей сборки" - -msgid "Gizmo brim ears" -msgstr "Размещение «мышиных ушек»" - -msgid "Zoom in" -msgstr "Приблизить" - -msgid "Zoom out" -msgstr "Отдалить" - -# Ошибка в оригинале – переключить печать частей невозможно, функция работает только для всей сборки -msgid "Toggle printable for object/part" -msgstr "Переключить печать модели" - -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Переключение между подготовкой и просмотром нарезки" - -# Plater – это название библиотеки. Используется в меню горячих клавиш в качестве заголовка сочетаний клавиш, которые работают внутри пространства Plater. Как минимум на Windows не отображается. -msgid "Plater" -msgstr "Рабочая область" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Перемещение: Фиксация перемещения на 1 мм" @@ -12403,14 +12318,18 @@ msgstr "Рисование поддержек/Шва/Покраски: регу msgid "Support/Color Painting: adjust section position" msgstr "Рисование поддержек/Шва/Покраски: регулировка положения сечения" -msgid "Gizmo" -msgstr "Инструмент" +msgid "Objects list" +msgstr "Список моделей" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Задать номер экструдера для моделей/частей" -msgid "Delete objects, parts, modifiers" -msgstr "Удаление моделей, частей, модификаторов" +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Пробел" msgid "Select the object/part and press space to change the name" msgstr "Выберите модель/часть и нажмите пробел, чтобы изменить имя" @@ -12421,43 +12340,48 @@ msgstr "Левая кнопка мыши" msgid "Select the object/part and mouse click to change the name" msgstr "Выберите модель/часть и нажмите левую клавишу мыши, чтобы изменить имя" -msgid "Objects List" -msgstr "Список моделей" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Вертикальный ползунок - Сдвинуть активный ползунок вверх" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Вертикальный ползунок - Сдвинуть активный ползунок вниз" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Горизонтальный ползунок - Сдвинуть активный ползунок влево" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Горизонтальный ползунок - Сдвинуть активный ползунок вправо" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Включение/отключение функции «Режим одного слоя» у вертикального ползунка" - -msgid "On/Off G-code window" -msgstr "Показать/скрыть окно отображения G-кода" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Перемещение ползунка быстрее в 5 раз" -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Горизонтальный ползунок - перемещение в начальную позицию" +msgid "Not customizable" +msgstr "" -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Горизонтальный ползунок - перемещение в конечную позицию" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Информация о версии" @@ -17716,8 +17640,8 @@ msgstr "Шагов преднагрева" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Задание нескольких команд преднагрева (например, M104.1). Полезно только для Prusa XL. Для других принтеров установите значение 1." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "Код для вставки в первые строки файла (перед началом всего остального содержимого). Полезно для добавления метаданных для считывания прошивкой принтера, таких как время печати или расход материала. Можно использовать вставку переменных (например, {print_time_sec} и {used_filament_length} соответственно)." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "Стартовый G-код" @@ -19394,8 +19318,8 @@ msgstr "Расход прутка" msgid "Total length of filament used in the print." msgstr "Общая длина прутка, затрачиваемая для печати." -msgid "Print time (seconds)" -msgstr "Время печати (в секундах)" +msgid "Print time (total seconds)" +msgstr "" # Пользователи даже не знают, что и как там слайсер у себя под капотом пост- # процессит после генерации кода до его парсинга и визуализации, не нужно этим @@ -19403,6 +19327,30 @@ msgstr "Время печати (в секундах)" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Оценка полного времени печати (в секундах). Заменяется числом при генерации G-кода." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Длина материала (в метрах)" @@ -21277,6 +21225,9 @@ msgstr "Недействительная сессия. Выполнить вхо msgid "Success!" msgstr "Успешно!" +msgid "Generate API Key" +msgstr "" + # ??? Вы уверены, что хотите разлогиниться, Вы уверены, что хотите выйти из # аккаунта?" msgid "Are you sure to log out?" @@ -22243,13 +22194,6 @@ msgstr "Для удалённой печати, облачных функций msgid "Error: %s" msgstr "Ошибка: %s" -msgid "Show details" -msgstr "Подробнее" - -# В информации о сетевом плагине -msgid "Hide details" -msgstr "Скрыть подробности" - msgid "Version to install:" msgstr "Версия для установки:" @@ -24855,6 +24799,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24867,6 +24817,211 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Стрелка влево" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Стрелка вправо" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Стрелка вверх" + +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Стрелка вниз" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Импорт геометрических данных из STL/STEP/3MF/OBJ/AMF файлов" + +msgid "Select all objects" +msgstr "Выбрать все модели" + +msgid "Paste from clipboard" +msgstr "Вставить из буфера обмена" + +# Ошибка в оригинале – переключить печать частей невозможно, функция работает только для всей сборки +msgid "Toggle printable for object/part" +msgstr "Переключить печать модели" + +msgid "Move selection 10mm in negative X direction" +msgstr "Перемещение выбранного на -10 мм по оси X" + +msgid "Move selection 10mm in positive X direction" +msgstr "Перемещение выбранного на +10 мм по оси X" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Перемещение выбранного на +10 мм по оси Y" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Перемещение выбранного на -10 мм по оси Y" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Инструмент перемещения" + +msgid "Gizmo rotate" +msgstr "Инструмент вращения" + +msgid "Gizmo scale" +msgstr "Инструмент масштабирования" + +msgid "Gizmo place face on bed" +msgstr "Выбор контактной поверхности" + +msgid "Gizmo cut" +msgstr "Инструмент разрезания" + +msgid "Gizmo mesh boolean" +msgstr "Булевы операции" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Рисование шва (FDM)" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Рисование нечёткой оболочки" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Инструмент размещения текста" + +msgid "Gizmo measure" +msgstr "Инструмент измерения" + +msgid "Gizmo assemble" +msgstr "Размещение частей сборки" + +msgid "Gizmo brim ears" +msgstr "Размещение «мышиных ушек»" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Вертикальный ползунок - Сдвинуть активный ползунок вверх" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Вертикальный ползунок - Сдвинуть активный ползунок вниз" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Горизонтальный ползунок - Сдвинуть активный ползунок влево" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Горизонтальный ползунок - Сдвинуть активный ползунок вправо" + +msgid "Horizontal slider - Move to start position" +msgstr "Горизонтальный ползунок - перемещение в начальную позицию" + +msgid "Horizontal slider - Move to last position" +msgstr "Горизонтальный ползунок - перемещение в конечную позицию" + +msgid "Camera view - Default" +msgstr "Камера по умолчанию" + +msgid "Camera view - Top" +msgstr "Камера сверху" + +msgid "Camera view - Bottom" +msgstr "Камера снизу" + +msgid "Camera view - Front" +msgstr "Камера спереди" + +msgid "Camera view - Behind" +msgstr "Камера сзади" + +msgid "Camera Angle - Left side" +msgstr "Камера слева" + +msgid "Camera Angle - Right side" +msgstr "Камера справа" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Приблизить" + +msgid "Zoom out" +msgstr "Отдалить" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Показать/скрыть диалоговое окно настроек и устройств 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Показать/скрыть окно отображения G-кода" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Включение/отключение функции «Режим одного слоя» у вертикального ползунка" + +msgid "Switch between Prepare/Preview" +msgstr "Переключение между подготовкой и просмотром нарезки" + +msgid "Collapse/Expand the sidebar" +msgstr "Свернуть/развернуть боковую панель" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Показать список сочетаний клавиш" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -25165,6 +25320,65 @@ msgstr "" "Предотвращение коробления материала\n" "Знаете ли вы, что при печати материалами, склонными к короблению, таких как ABS, повышение температуры подогреваемого стола может снизить эту вероятность?" +# Название кнопки на клавиатуре, на момент 2.3.2 используется в 5 местах в +# значении названия кнопки +#~ msgid "Tab" +#~ msgstr "Tab" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Выводить частоту кадров рабочего пространства в правом верхнем углу." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki по публикации 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Видеоруководство по публикации 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Панель инструментов" + +#~ msgid "Switch table page" +#~ msgstr "Переключение между вкладками" + +#~ msgid "Global shortcuts" +#~ msgstr "Глобальные горячие клавиши" + +#~ msgid "Middle mouse button" +#~ msgstr "Средняя кнопка мыши" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Попытаться положить модели на стол. При выборе отдельных моделей операция применяется только к ним." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Положить все модели только на активном столе" + +#~ msgid "Any arrow" +#~ msgstr "Любая стрелка" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Размещение поддержек (SLA)" + +# Plater – это название библиотеки. Используется в меню горячих клавиш в качестве заголовка сочетаний клавиш, которые работают внутри пространства Plater. Как минимум на Windows не отображается. +#~ msgid "Plater" +#~ msgstr "Рабочая область" + +#~ msgid "Gizmo" +#~ msgstr "Инструмент" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Удаление моделей, частей, модификаторов" + +#~ msgid "Objects List" +#~ msgstr "Список моделей" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "Код для вставки в первые строки файла (перед началом всего остального содержимого). Полезно для добавления метаданных для считывания прошивкой принтера, таких как время печати или расход материала. Можно использовать вставку переменных (например, {print_time_sec} и {used_filament_length} соответственно)." + +#~ msgid "Print time (seconds)" +#~ msgstr "Время печати (в секундах)" + #~ msgid "Open actions speed dial" #~ msgstr "Открыть строку быстрых действий" diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index e4f3079704..3ac55320d9 100644 --- a/localization/i18n/sv/OrcaSlicer_sv.po +++ b/localization/i18n/sv/OrcaSlicer_sv.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -6535,12 +6535,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Höger" -msgid "Add" -msgstr "Lägg till" - msgid "Add plate" msgstr "Lägg till byggplata" +msgid "Split to objects" +msgstr "Dela upp till objekt" + +msgid "Add" +msgstr "Lägg till" + msgid "Auto orient all/selected objects" msgstr "Autoorientering alla/valda objekt" @@ -6553,9 +6556,6 @@ msgstr "Ordna alla objekt" msgid "Arrange objects on selected plates" msgstr "Ordna alla objekt på vald platta" -msgid "Split to objects" -msgstr "Dela upp till objekt" - msgid "Assembly View" msgstr "Monterings vy" @@ -6617,6 +6617,9 @@ msgstr "Kontur" msgid "Wireframe" msgstr "Trådram" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "Realistisk vy" @@ -7202,7 +7205,7 @@ msgstr "Visa en kontur runt det markerade objektet i 3D-scenen." msgid "Preferences" msgstr "Inställningar" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -9182,10 +9185,6 @@ msgstr "Expandera sidopanelen" msgid "Collapse sidebar" msgstr "Fäll ihop sidopanelen" -# AI Translated -msgid "Tab" -msgstr "Tabb" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Laddar fil: %s" @@ -10324,10 +10323,10 @@ msgstr "Hantering av flera enheter" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Med det här alternativet aktiverat kan du skicka en uppgift till flera enheter samtidigt och hantera flera enheter." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -10481,6 +10480,15 @@ msgstr "Dra med höger musknapp" msgid "Set the action that dragging the right mouse button should perform." msgstr "Ange vilken åtgärd som ska utföras när du drar med höger musknapp." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + # AI Translated msgid "Clear my choice on..." msgstr "Rensa mitt val för..." @@ -10611,13 +10619,40 @@ msgstr "" "Begränsar vyns bildfrekvens för att minska GPU-belastning och strömförbrukning.\n" "Sätt till 0 för obegränsad bildfrekvens." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "Visa FPS-överlägg" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Visar vyns aktuella FPS i det övre högra hörnet." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -11120,13 +11155,8 @@ msgstr "Publicera 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Välj vilka inställningar som ska publiceras i 3MF-filen" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki för Publicera 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Videoguide för Publicera 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -11329,6 +11359,14 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +# AI Translated +msgid "Show details" +msgstr "Visa detaljer" + +# AI Translated +msgid "Hide details" +msgstr "Dölj detaljer" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -13403,69 +13441,39 @@ msgstr "Konfigurations paketet är ändrat i föregående Kofigurations Guide" msgid "Configuration package changed" msgstr "Konfigurations paketet är ändrat" -msgid "Toolbar" -msgstr "Verktygsfält" - -msgid "Objects list" -msgstr "Objektlista" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Importera geometri data från STL/STEP/3MF/OBJ/AMF filer" - -msgid "Paste from clipboard" -msgstr "Klistra in ifrån urklipp" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Visa/Dölj 3Dconnexion enheternas inställnings dialogruta" - -msgid "Switch table page" -msgstr "Byt tabellsida" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Blanksteg" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Visa tangentbordets genvägs lista" - -msgid "Global shortcuts" -msgstr "Övergripande genvägar" - msgid "Pan View" msgstr "Panoreringsvy" msgid "Rotate View" msgstr "Rotera vy" -# AI Translated -msgid "Middle mouse button" -msgstr "Mittersta musknappen" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "Zoomvy" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Auto placera valda objekt eller alla objekt. Om det finns valda objekt så placeras endast dem. Annars kommer den att orientera alla objekt i det aktuella projektet." +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Placera alla föremål automatiskt på aktuell tallrik." +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "Dölj/Visa meny" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" # AI Translated -msgid "Any arrow" -msgstr "Valfri piltangent" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tabb" -msgid "Movement in camera space" -msgstr "Rörelse i kamera område" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Välj del" @@ -13476,129 +13484,29 @@ msgstr "Välj flera objekt" msgid "Select objects by rectangle" msgstr "Välj objekt efter rektangel" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Uppåtpil" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Flytta markeringen 10mm i positiv Y riktning" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Nedåtpil" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Flytta markeringen 10mm i negativ Y riktning" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Vänsterpil" - -msgid "Move selection 10mm in negative X direction" -msgstr "Flytta markeringen 10mm i negativ X riktning" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Högerpil" - -msgid "Move selection 10mm in positive X direction" -msgstr "Flytta markeringen 10mm i positiv X riktning" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "tangentbord 1-9: fastställer filament för objekt/del" msgid "Movement step set to 1mm" msgstr "Rörelse steg är vald till 1mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "tangentbord 1-9: fastställer filament för objekt/del" +msgid "Movement in camera space" +msgstr "Rörelse i kamera område" -msgid "Camera view - Default" -msgstr "Kamera vy - Standard" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Kamera vy - Topp" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Kamera vy - Botten" +msgid "Zoom View" +msgstr "Zoomvy" -msgid "Camera view - Front" -msgstr "Kamera vy - Fram" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Kamera vy - Bakom" - -msgid "Camera Angle - Left side" -msgstr "Kamera vy - Vänster sida" - -msgid "Camera Angle - Right side" -msgstr "Kamera vy - Höger sida" - -msgid "Select all objects" -msgstr "Välj alla objekt" - -msgid "Gizmo move" -msgstr "Gizmo flytta" - -msgid "Gizmo rotate" -msgstr "Gizmo rotera" - -msgid "Gizmo scale" -msgstr "Gizmo skala" - -msgid "Gizmo place face on bed" -msgstr "Gizmo placera ansiktet på byggytan" - -msgid "Gizmo cut" -msgstr "Gizmo skär" - -# AI Translated -msgid "Gizmo mesh boolean" -msgstr "Gizmo boolesk mesh-operation" - -# AI Translated -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM måla ojämn yta" - -msgid "Gizmo SLA support points" -msgstr "Gizmo SLA support punkter" - -msgid "Gizmo FDM paint-on seam" -msgstr "Gizmo FDM målad söm" - -msgid "Gizmo text emboss/engrave" -msgstr "Gizmo textprägling/gravering" - -msgid "Gizmo measure" -msgstr "Gizmo mäta" - -msgid "Gizmo assemble" -msgstr "Gizmo montera" - -msgid "Gizmo brim ears" -msgstr "Gizmo brätte öron" - -msgid "Zoom in" -msgstr "Zooma in" - -msgid "Zoom out" -msgstr "Zooma ut" - -# AI Translated -msgid "Toggle printable for object/part" -msgstr "Växla utskrivbar för objekt/del" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tabb" - -msgid "Switch between Prepare/Preview" -msgstr "Växla mellan Förbered/Förhandsgranska" - -msgid "Plater" -msgstr "Plätering/Förgyllning" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Flytta: tryck för att låsa med 1mm" @@ -13609,15 +13517,19 @@ msgstr "Support/Färgläggning: justera penn radie" msgid "Support/Color Painting: adjust section position" msgstr "Support/Färgläggning:justera sektions positionen" -# AI Translated -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Objektlista" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Välj extruder nummer för objekten och delarna" -msgid "Delete objects, parts, modifiers" -msgstr "Radera objekten, delarna och anpassningar" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Blanksteg" msgid "Select the object/part and press space to change the name" msgstr "Välj objektet/delen och tryck space för att ändra namnet" @@ -13628,48 +13540,48 @@ msgstr "Mus klick" msgid "Select the object/part and mouse click to change the name" msgstr "Välj objektet/delen och mus klicka för att ändra namnet" -msgid "Objects List" -msgstr "Objekts lista" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Vertikal reglage - Flytta aktivt tryck Upp" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Vertikal reglage - Flytta aktivt tryck Ner" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Horisontell reglage - Flytta aktivt tryck Vänster" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Horisontell reglage - Flytta aktivt tryck Höger" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "På/Av 1 lager läge för det vertikala reglaget" - -# AI Translated -msgid "On/Off G-code window" -msgstr "På/av för G-code-fönstret" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Flytta reglage 5x snabbare" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -# AI Translated -msgid "Horizontal slider - Move to start position" -msgstr "Horisontellt reglage – flytta till startpositionen" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -# AI Translated -msgid "Horizontal slider - Move to last position" -msgstr "Horisontellt reglage – flytta till sista positionen" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Meddelande om utgåvan" @@ -19215,9 +19127,8 @@ msgstr "Förvärmningssteg" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Infoga flera förvärmningskommandon (t.ex. M104.1). Endast användbart för Prusa XL. Ställ in det på 1 för andra skrivare." -# AI Translated -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code som skrivs allra överst i utdatafilen, före allt annat innehåll. Användbart för att lägga till metadata som skrivarens fasta programvara läser från filens första rader (t.ex. beräknad utskriftstid, filamentåtgång). Stöder platshållare som {print_time_sec} och {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "Starta G-kod" @@ -20963,14 +20874,37 @@ msgstr "Använt filament" msgid "Total length of filament used in the print." msgstr "Total längd filament som används i utskriften." -# AI Translated -msgid "Print time (seconds)" -msgstr "Utskriftstid (sekunder)" +msgid "Print time (total seconds)" +msgstr "" # AI Translated msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Total beräknad utskriftstid i sekunder. Ersätts med det faktiska värdet under efterbearbetningen." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + # AI Translated msgid "Filament length (meters)" msgstr "Filamentlängd (meter)" @@ -23000,6 +22934,9 @@ msgstr "Ingen giltig session upptäcktes. Vill du fortsätta med inloggning till msgid "Success!" msgstr "Lyckades!" +msgid "Generate API Key" +msgstr "" + # AI Translated msgid "Are you sure to log out?" msgstr "Är du säker på att du vill logga ut?" @@ -24215,14 +24152,6 @@ msgstr "Bambu Network Plug-in krävs för molnfunktioner, upptäckt av skrivare msgid "Error: %s" msgstr "Fel: %s" -# AI Translated -msgid "Show details" -msgstr "Visa detaljer" - -# AI Translated -msgid "Hide details" -msgstr "Dölj detaljer" - # AI Translated msgid "Version to install:" msgstr "Version att installera:" @@ -26906,6 +26835,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -26918,6 +26853,222 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Vänsterpil" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Högerpil" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Uppåtpil" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Nedåtpil" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Importera geometri data från STL/STEP/3MF/OBJ/AMF filer" + +msgid "Select all objects" +msgstr "Välj alla objekt" + +msgid "Paste from clipboard" +msgstr "Klistra in ifrån urklipp" + +# AI Translated +msgid "Toggle printable for object/part" +msgstr "Växla utskrivbar för objekt/del" + +msgid "Move selection 10mm in negative X direction" +msgstr "Flytta markeringen 10mm i negativ X riktning" + +msgid "Move selection 10mm in positive X direction" +msgstr "Flytta markeringen 10mm i positiv X riktning" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Flytta markeringen 10mm i positiv Y riktning" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Flytta markeringen 10mm i negativ Y riktning" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Gizmo flytta" + +msgid "Gizmo rotate" +msgstr "Gizmo rotera" + +msgid "Gizmo scale" +msgstr "Gizmo skala" + +msgid "Gizmo place face on bed" +msgstr "Gizmo placera ansiktet på byggytan" + +msgid "Gizmo cut" +msgstr "Gizmo skär" + +# AI Translated +msgid "Gizmo mesh boolean" +msgstr "Gizmo boolesk mesh-operation" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Gizmo FDM målad söm" + +# AI Translated +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo FDM måla ojämn yta" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Gizmo textprägling/gravering" + +msgid "Gizmo measure" +msgstr "Gizmo mäta" + +msgid "Gizmo assemble" +msgstr "Gizmo montera" + +msgid "Gizmo brim ears" +msgstr "Gizmo brätte öron" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Vertikal reglage - Flytta aktivt tryck Upp" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Vertikal reglage - Flytta aktivt tryck Ner" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Horisontell reglage - Flytta aktivt tryck Vänster" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Horisontell reglage - Flytta aktivt tryck Höger" + +# AI Translated +msgid "Horizontal slider - Move to start position" +msgstr "Horisontellt reglage – flytta till startpositionen" + +# AI Translated +msgid "Horizontal slider - Move to last position" +msgstr "Horisontellt reglage – flytta till sista positionen" + +msgid "Camera view - Default" +msgstr "Kamera vy - Standard" + +msgid "Camera view - Top" +msgstr "Kamera vy - Topp" + +msgid "Camera view - Bottom" +msgstr "Kamera vy - Botten" + +msgid "Camera view - Front" +msgstr "Kamera vy - Fram" + +msgid "Camera view - Behind" +msgstr "Kamera vy - Bakom" + +msgid "Camera Angle - Left side" +msgstr "Kamera vy - Vänster sida" + +msgid "Camera Angle - Right side" +msgstr "Kamera vy - Höger sida" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Zooma in" + +msgid "Zoom out" +msgstr "Zooma ut" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Visa/Dölj 3Dconnexion enheternas inställnings dialogruta" + +msgid "Show/Hide wireframe" +msgstr "" + +# AI Translated +msgid "On/Off G-code window" +msgstr "På/av för G-code-fönstret" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "På/Av 1 lager läge för det vertikala reglaget" + +msgid "Switch between Prepare/Preview" +msgstr "Växla mellan Förbered/Förhandsgranska" + +msgid "Collapse/Expand the sidebar" +msgstr "Dölj/Visa meny" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Visa tangentbordets genvägs lista" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + # AI Translated #: resources/data/hints.ini: [hint:Precise wall] msgid "" @@ -27233,6 +27384,69 @@ msgstr "" "Undvik vridning\n" "Visste du att när du skriver ut material som är benägna att vrida, såsom ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten för vridning?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "Tabb" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Visar vyns aktuella FPS i det övre högra hörnet." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki för Publicera 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Videoguide för Publicera 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Verktygsfält" + +#~ msgid "Switch table page" +#~ msgstr "Byt tabellsida" + +#~ msgid "Global shortcuts" +#~ msgstr "Övergripande genvägar" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "Mittersta musknappen" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Auto placera valda objekt eller alla objekt. Om det finns valda objekt så placeras endast dem. Annars kommer den att orientera alla objekt i det aktuella projektet." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Placera alla föremål automatiskt på aktuell tallrik." + +# AI Translated +#~ msgid "Any arrow" +#~ msgstr "Valfri piltangent" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Gizmo SLA support punkter" + +#~ msgid "Plater" +#~ msgstr "Plätering/Förgyllning" + +# AI Translated +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Radera objekten, delarna och anpassningar" + +#~ msgid "Objects List" +#~ msgstr "Objekts lista" + +# AI Translated +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code som skrivs allra överst i utdatafilen, före allt annat innehåll. Användbart för att lägga till metadata som skrivarens fasta programvara läser från filens första rader (t.ex. beräknad utskriftstid, filamentåtgång). Stöder platshållare som {print_time_sec} och {used_filament_length}." + +# AI Translated +#~ msgid "Print time (seconds)" +#~ msgstr "Utskriftstid (sekunder)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Öppna snabbvalsmenyn för åtgärder" diff --git a/localization/i18n/th/OrcaSlicer_th.po b/localization/i18n/th/OrcaSlicer_th.po index 47aa50fb13..d946726cba 100644 --- a/localization/i18n/th/OrcaSlicer_th.po +++ b/localization/i18n/th/OrcaSlicer_th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2026-06-19 13:40+0700\n" "Last-Translator: Icezaza\n" "Language-Team: Thai\n" @@ -5901,12 +5901,15 @@ msgctxt "Camera View" msgid "Right" msgstr "ขวา" -msgid "Add" -msgstr "เพิ่ม" - msgid "Add plate" msgstr "เพิ่มจาน" +msgid "Split to objects" +msgstr "แยกเป็นวัตถุ" + +msgid "Add" +msgstr "เพิ่ม" + msgid "Auto orient all/selected objects" msgstr "ปรับทิศทางวัตถุทั้งหมด/ที่เลือกโดยอัตโนมัติ" @@ -5919,9 +5922,6 @@ msgstr "จัดเรียงวัตถุทั้งหมด" msgid "Arrange objects on selected plates" msgstr "จัดเรียงวัตถุบนจานที่เลือก" -msgid "Split to objects" -msgstr "แยกเป็นวัตถุ" - msgid "Assembly View" msgstr "มุมมองการประกอบ" @@ -5978,6 +5978,9 @@ msgstr "เส้นขอบ" msgid "Wireframe" msgstr "โครงลวด" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "มุมมองสมจริง" @@ -6517,7 +6520,7 @@ msgstr "แสดงเค้าร่างรอบๆ วัตถุที msgid "Preferences" msgstr "การตั้งค่า" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8318,9 +8321,6 @@ msgstr "ขยายแถบด้านข้าง" msgid "Collapse sidebar" msgstr "ยุบแถบด้านข้าง" -msgid "Tab" -msgstr "แท็บ" - #, c-format, boost-format msgid "Loading file: %s" msgstr "กำลังโหลดไฟล์: %s" @@ -9338,10 +9338,10 @@ msgstr "การจัดการอุปกรณ์หลายเครื msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "เมื่อเปิดใช้งานตัวเลือกนี้ คุณสามารถส่งงานไปยังอุปกรณ์หลายเครื่องพร้อมกันและจัดการอุปกรณ์หลายเครื่องได้" -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9473,6 +9473,15 @@ msgstr "ลากเมาส์ขวา" msgid "Set the action that dragging the right mouse button should perform." msgstr "ตั้งค่าการดำเนินการที่ควรดำเนินการด้วยการลากปุ่มเมาส์ขวา" +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "ล้างตัวเลือกของฉันใน..." @@ -9583,11 +9592,39 @@ msgstr "" "จำกัดอัตราเฟรมวิวพอร์ตเพื่อลดภาระของ GPU และการใช้พลังงาน\n" "ตั้งค่าเป็น 0 สำหรับอัตราเฟรมไม่จำกัด" +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "แสดงการซ้อนทับ FPS" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "แสดงวิวพอร์ต FPS ปัจจุบันที่มุมขวาบน" +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10047,13 +10084,8 @@ msgstr "เผยแพร่ 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "เลือกว่าจะเผยแพร่การตั้งค่าใดในไฟล์ 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "วิกิการเผยแพร่ 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "คู่มือวีดีโอการเผยแพร่ 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10255,6 +10287,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "แสดงรายละเอียด" + +# AI Translated +msgid "Hide details" +msgstr "ซ่อนรายละเอียด" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12087,67 +12126,39 @@ msgstr "แพ็คเกจการกำหนดค่ามีการเ msgid "Configuration package changed" msgstr "แพ็คเกจการกำหนดค่ามีการเปลี่ยนแปลง" -msgid "Toolbar" -msgstr "แถบเครื่องมือ" - -msgid "Objects list" -msgstr "รายการวัตถุ" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "นำเข้าข้อมูลเรขาคณิตจากไฟล์ STL/STEP/3MF/OBJ/AMF" - -msgid "Paste from clipboard" -msgstr "วางจากคลิปบอร์ด" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "แสดง/ซ่อนกล่องโต้ตอบการตั้งค่าอุปกรณ์ 3Dconnexion" - -msgid "Switch table page" -msgstr "สลับหน้าตาราง" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "แสดงรายการแป้นพิมพ์ลัด" - -msgid "Global shortcuts" -msgstr "ทางลัดทั่วโลก" - msgid "Pan View" msgstr "แพนวิว" msgid "Rotate View" msgstr "หมุนมุมมอง" -msgid "Middle mouse button" -msgstr "ปุ่มกลางของเมาส์" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "ซูมดู" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "ปรับทิศทางวัตถุที่เลือกหรือวัตถุทั้งหมดโดยอัตโนมัติ หากมีวัตถุที่เลือกไว้ วัตถุนั้นจะปรับทิศทางวัตถุที่เลือกเท่านั้น มิฉะนั้นจะวางแนววัตถุทั้งหมดในโปรเจ็กต์ปัจจุบัน" +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "ปรับทิศทางวัตถุทั้งหมดบนเพลตที่ใช้งานอยู่โดยอัตโนมัติ" +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "ยุบ/ขยายแถบด้านข้าง" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" -msgid "Any arrow" -msgstr "ลูกศรอะไรก็ได้" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Movement in camera space" -msgstr "การเคลื่อนไหวในพื้นที่กล้อง" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "เลือกส่วนหนึ่ง" @@ -12158,126 +12169,29 @@ msgstr "เลือกหลายวัตถุ" msgid "Select objects by rectangle" msgstr "เลือกวัตถุตามสี่เหลี่ยม" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "ลูกศรขึ้น" - -msgid "Move selection 10mm in positive Y direction" -msgstr "เลื่อนส่วนที่เลือกไป 10 มม. ในทิศทางบวก Y" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "ลูกศรลง" - -msgid "Move selection 10mm in negative Y direction" -msgstr "ย้ายส่วนที่เลือกไป 10 มม. ในทิศทางลบ Y" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "ลูกศรซ้าย" - -msgid "Move selection 10mm in negative X direction" -msgstr "ย้ายส่วนที่เลือกไป 10 มม. ในทิศทาง X ลบ" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "ลูกศรขวา" - -msgid "Move selection 10mm in positive X direction" -msgstr "เลื่อนส่วนที่เลือกไป 10 มม. ในทิศทาง X บวก" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "แป้นพิมพ์ 1-9: ตั้งค่าเส้นพลาสติกสำหรับวัตถุ/ชิ้นส่วน" msgid "Movement step set to 1mm" msgstr "ตั้งระยะขยับเป็น 1 มม." -msgid "Keyboard 1-9: set filament for object/part" -msgstr "แป้นพิมพ์ 1-9: ตั้งค่าเส้นพลาสติกสำหรับวัตถุ/ชิ้นส่วน" +msgid "Movement in camera space" +msgstr "การเคลื่อนไหวในพื้นที่กล้อง" -msgid "Camera view - Default" -msgstr "มุมมองกล้อง - ค่าเริ่มต้น" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "มุมมองกล้อง - ด้านบน" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "มุมมองกล้อง - ด้านล่าง" +msgid "Zoom View" +msgstr "ซูมดู" -msgid "Camera view - Front" -msgstr "มุมมองกล้อง - ด้านหน้า" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "มุมมองกล้อง - ด้านหลัง" - -msgid "Camera Angle - Left side" -msgstr "มุมกล้อง - ด้านซ้าย" - -msgid "Camera Angle - Right side" -msgstr "มุมกล้อง - ด้านขวา" - -msgid "Select all objects" -msgstr "เลือกวัตถุทั้งหมด" - -msgid "Gizmo move" -msgstr "กิสโม่ย้าย" - -msgid "Gizmo rotate" -msgstr "กิสโม่หมุน" - -msgid "Gizmo scale" -msgstr "ขนาดกิสโม่" - -msgid "Gizmo place face on bed" -msgstr "กิสโมวางหน้าบนฐานพิมพ์" - -msgid "Gizmo cut" -msgstr "กิสโม่ตัด" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo mesh บูลีน" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM เพ้นท์ผิวฟัซซี" - -msgid "Gizmo SLA support points" -msgstr "จุดส่วนรองรับ Gizmo SLA" - -msgid "Gizmo FDM paint-on seam" -msgstr "รอยตะเข็บทาสี Gizmo FDM" - -msgid "Gizmo text emboss/engrave" -msgstr "ข้อความ Gizmo นูน/แกะสลัก" - -msgid "Gizmo measure" -msgstr "เครื่องวัดกิสโม่" - -msgid "Gizmo assemble" -msgstr "กิสโมประกอบ" - -msgid "Gizmo brim ears" -msgstr "Gizmo หูขอบยึดชิ้นงาน (Brim Ears)" - -msgid "Zoom in" -msgstr "ซูมเข้า" - -msgid "Zoom out" -msgstr "ซูมออก" - -msgid "Toggle printable for object/part" -msgstr "สลับการพิมพ์สำหรับวัตถุ/ชิ้นส่วน" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "สลับระหว่างการเตรียม/ดูตัวอย่าง" - -msgid "Plater" -msgstr "เพลเตอร์" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "ย้าย: กดเพื่อสแน็ป 1 มม" @@ -12288,14 +12202,19 @@ msgstr "ส่วนรองรับ / การวาดภาพสี: ป msgid "Support/Color Painting: adjust section position" msgstr "ส่วนรองรับ / การวาดภาพสี: ปรับตำแหน่งส่วน" -msgid "Gizmo" -msgstr "กิสโม่" +msgid "Objects list" +msgstr "รายการวัตถุ" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "กำหนดหมายเลขชุดดันเส้นสำหรับวัตถุและชิ้นส่วน" -msgid "Delete objects, parts, modifiers" -msgstr "ลบวัตถุ ชิ้นส่วน ตัวดัดแปลง" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" msgid "Select the object/part and press space to change the name" msgstr "เลือกวัตถุ/ชิ้นส่วนแล้วกด Space เพื่อเปลี่ยนชื่อ" @@ -12306,45 +12225,48 @@ msgstr "คลิกเมาส์" msgid "Select the object/part and mouse click to change the name" msgstr "เลือกวัตถุ/ชิ้นส่วนแล้วคลิกเมาส์เพื่อเปลี่ยนชื่อ" -msgid "Objects List" -msgstr "รายการวัตถุ" - -msgid "Vertical slider - Move active thumb Up" -msgstr "แถบเลื่อนแนวตั้ง - เลื่อนนิ้วโป้งที่ใช้งานอยู่ขึ้น" - -msgid "Vertical slider - Move active thumb Down" -msgstr "แถบเลื่อนแนวตั้ง - เลื่อนนิ้วโป้งที่ใช้งานอยู่ลง" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "แถบเลื่อนแนวนอน - เลื่อนนิ้วหัวแม่มือที่ใช้งานไปทางซ้าย" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "แถบเลื่อนแนวนอน - เลื่อนนิ้วหัวแม่มือที่ใช้งานไปทางขวา" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "เปิด/ปิดโหมดเลเยอร์เดียวของแถบเลื่อนแนวตั้ง" - -msgid "On/Off G-code window" -msgstr "เปิด/ปิดหน้าต่างรหัส G" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "เลื่อนตัวเลื่อนเร็วขึ้น 5 เท่า" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "แถบเลื่อนแนวนอน - เลื่อนไปยังตำแหน่งเริ่มต้น" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "แถบเลื่อนแนวนอน - เลื่อนไปยังตำแหน่งสุดท้าย" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "บันทึกประจำรุ่น" @@ -17213,8 +17135,8 @@ msgstr "อุ่นเครื่องตามขั้นตอน" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "ใส่คำสั่งอุ่นล่วงหน้าหลายคำสั่ง (เช่น M104.1) มีประโยชน์สำหรับ Prusa XL เท่านั้น สำหรับเครื่องพิมพ์อื่นๆ โปรดตั้งค่าเป็น 1" -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code เขียนไว้ที่ด้านบนสุดของไฟล์เอาต์พุต ก่อนเนื้อหาอื่นๆ มีประโยชน์สำหรับการเพิ่มข้อมูลเมตาที่เฟิร์มแวร์เครื่องพิมพ์อ่านจากบรรทัดแรกของไฟล์ (เช่น เวลาในการพิมพ์โดยประมาณ การใช้เส้นพลาสติก) รองรับตัวยึดตำแหน่ง เช่น {print_time_sec} และ {used_filament_length}" +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "เริ่ม G-code" @@ -18753,12 +18675,36 @@ msgstr "เส้นพลาสติกที่ใช้แล้ว" msgid "Total length of filament used in the print." msgstr "ความยาวรวมของเส้นพลาสติกที่ใช้ในการพิมพ์" -msgid "Print time (seconds)" -msgstr "เวลาในการพิมพ์ (วินาที)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "เวลาพิมพ์ทั้งหมดโดยประมาณเป็นวินาที แทนที่ด้วยค่าจริงระหว่างการประมวลผลภายหลัง" +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "ความยาวเส้นพลาสติก (เมตร)" @@ -20592,6 +20538,9 @@ msgstr "ไม่พบเซสชันที่ถูกต้อง ดำ msgid "Success!" msgstr "สำเร็จ!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "คุณแน่ใจหรือว่าจะออกจากระบบ?" @@ -21591,13 +21540,6 @@ msgstr "ปลั๊กอินเครือข่าย Bambu จำเป msgid "Error: %s" msgstr "ข้อผิดพลาด: %s" -msgid "Show details" -msgstr "แสดงรายละเอียด" - -# AI Translated -msgid "Hide details" -msgstr "ซ่อนรายละเอียด" - msgid "Version to install:" msgstr "เวอร์ชันที่จะติดตั้ง:" @@ -24228,6 +24170,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24240,6 +24188,216 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "ลูกศรซ้าย" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "ลูกศรขวา" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "ลูกศรขึ้น" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "ลูกศรลง" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "นำเข้าข้อมูลเรขาคณิตจากไฟล์ STL/STEP/3MF/OBJ/AMF" + +msgid "Select all objects" +msgstr "เลือกวัตถุทั้งหมด" + +msgid "Paste from clipboard" +msgstr "วางจากคลิปบอร์ด" + +msgid "Toggle printable for object/part" +msgstr "สลับการพิมพ์สำหรับวัตถุ/ชิ้นส่วน" + +msgid "Move selection 10mm in negative X direction" +msgstr "ย้ายส่วนที่เลือกไป 10 มม. ในทิศทาง X ลบ" + +msgid "Move selection 10mm in positive X direction" +msgstr "เลื่อนส่วนที่เลือกไป 10 มม. ในทิศทาง X บวก" + +msgid "Move selection 10mm in positive Y direction" +msgstr "เลื่อนส่วนที่เลือกไป 10 มม. ในทิศทางบวก Y" + +msgid "Move selection 10mm in negative Y direction" +msgstr "ย้ายส่วนที่เลือกไป 10 มม. ในทิศทางลบ Y" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "กิสโม่ย้าย" + +msgid "Gizmo rotate" +msgstr "กิสโม่หมุน" + +msgid "Gizmo scale" +msgstr "ขนาดกิสโม่" + +msgid "Gizmo place face on bed" +msgstr "กิสโมวางหน้าบนฐานพิมพ์" + +msgid "Gizmo cut" +msgstr "กิสโม่ตัด" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo mesh บูลีน" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "รอยตะเข็บทาสี Gizmo FDM" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo FDM เพ้นท์ผิวฟัซซี" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "ข้อความ Gizmo นูน/แกะสลัก" + +msgid "Gizmo measure" +msgstr "เครื่องวัดกิสโม่" + +msgid "Gizmo assemble" +msgstr "กิสโมประกอบ" + +msgid "Gizmo brim ears" +msgstr "Gizmo หูขอบยึดชิ้นงาน (Brim Ears)" + +msgid "Vertical slider - Move active thumb Up" +msgstr "แถบเลื่อนแนวตั้ง - เลื่อนนิ้วโป้งที่ใช้งานอยู่ขึ้น" + +msgid "Vertical slider - Move active thumb Down" +msgstr "แถบเลื่อนแนวตั้ง - เลื่อนนิ้วโป้งที่ใช้งานอยู่ลง" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "แถบเลื่อนแนวนอน - เลื่อนนิ้วหัวแม่มือที่ใช้งานไปทางซ้าย" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "แถบเลื่อนแนวนอน - เลื่อนนิ้วหัวแม่มือที่ใช้งานไปทางขวา" + +msgid "Horizontal slider - Move to start position" +msgstr "แถบเลื่อนแนวนอน - เลื่อนไปยังตำแหน่งเริ่มต้น" + +msgid "Horizontal slider - Move to last position" +msgstr "แถบเลื่อนแนวนอน - เลื่อนไปยังตำแหน่งสุดท้าย" + +msgid "Camera view - Default" +msgstr "มุมมองกล้อง - ค่าเริ่มต้น" + +msgid "Camera view - Top" +msgstr "มุมมองกล้อง - ด้านบน" + +msgid "Camera view - Bottom" +msgstr "มุมมองกล้อง - ด้านล่าง" + +msgid "Camera view - Front" +msgstr "มุมมองกล้อง - ด้านหน้า" + +msgid "Camera view - Behind" +msgstr "มุมมองกล้อง - ด้านหลัง" + +msgid "Camera Angle - Left side" +msgstr "มุมกล้อง - ด้านซ้าย" + +msgid "Camera Angle - Right side" +msgstr "มุมกล้อง - ด้านขวา" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "ซูมเข้า" + +msgid "Zoom out" +msgstr "ซูมออก" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "แสดง/ซ่อนกล่องโต้ตอบการตั้งค่าอุปกรณ์ 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "เปิด/ปิดหน้าต่างรหัส G" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "เปิด/ปิดโหมดเลเยอร์เดียวของแถบเลื่อนแนวตั้ง" + +msgid "Switch between Prepare/Preview" +msgstr "สลับระหว่างการเตรียม/ดูตัวอย่าง" + +msgid "Collapse/Expand the sidebar" +msgstr "ยุบ/ขยายแถบด้านข้าง" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "แสดงรายการแป้นพิมพ์ลัด" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24540,6 +24698,62 @@ msgstr "" "หลีกเลี่ยงการบิดเบี้ยว\n" "คุณรู้หรือไม่ว่าเมื่อพิมพ์วัสดุที่มีแนวโน้มที่จะเกิดการบิดเบี้ยว เช่น ABS การเพิ่มอุณหภูมิฐานพิมพ์อย่างเหมาะสมสามารถลดความน่าจะเป็นของการบิดเบี้ยวได้" +#~ msgid "Tab" +#~ msgstr "แท็บ" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "แสดงวิวพอร์ต FPS ปัจจุบันที่มุมขวาบน" + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "วิกิการเผยแพร่ 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "คู่มือวีดีโอการเผยแพร่ 3MF" + +#~ msgid "Toolbar" +#~ msgstr "แถบเครื่องมือ" + +#~ msgid "Switch table page" +#~ msgstr "สลับหน้าตาราง" + +#~ msgid "Global shortcuts" +#~ msgstr "ทางลัดทั่วโลก" + +#~ msgid "Middle mouse button" +#~ msgstr "ปุ่มกลางของเมาส์" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "ปรับทิศทางวัตถุที่เลือกหรือวัตถุทั้งหมดโดยอัตโนมัติ หากมีวัตถุที่เลือกไว้ วัตถุนั้นจะปรับทิศทางวัตถุที่เลือกเท่านั้น มิฉะนั้นจะวางแนววัตถุทั้งหมดในโปรเจ็กต์ปัจจุบัน" + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "ปรับทิศทางวัตถุทั้งหมดบนเพลตที่ใช้งานอยู่โดยอัตโนมัติ" + +#~ msgid "Any arrow" +#~ msgstr "ลูกศรอะไรก็ได้" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "จุดส่วนรองรับ Gizmo SLA" + +#~ msgid "Plater" +#~ msgstr "เพลเตอร์" + +#~ msgid "Gizmo" +#~ msgstr "กิสโม่" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "ลบวัตถุ ชิ้นส่วน ตัวดัดแปลง" + +#~ msgid "Objects List" +#~ msgstr "รายการวัตถุ" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code เขียนไว้ที่ด้านบนสุดของไฟล์เอาต์พุต ก่อนเนื้อหาอื่นๆ มีประโยชน์สำหรับการเพิ่มข้อมูลเมตาที่เฟิร์มแวร์เครื่องพิมพ์อ่านจากบรรทัดแรกของไฟล์ (เช่น เวลาในการพิมพ์โดยประมาณ การใช้เส้นพลาสติก) รองรับตัวยึดตำแหน่ง เช่น {print_time_sec} และ {used_filament_length}" + +#~ msgid "Print time (seconds)" +#~ msgstr "เวลาในการพิมพ์ (วินาที)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "เปิดสปีดไดอัลการดำเนินการ" diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index 91c5660328..34bee95de3 100644 --- a/localization/i18n/tr/OrcaSlicer_tr.po +++ b/localization/i18n/tr/OrcaSlicer_tr.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2026-08-21 23:18+0300\n" "Last-Translator: GlauTech\n" "Language-Team: \n" @@ -5967,12 +5967,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Sağ" -msgid "Add" -msgstr "Ekle" - msgid "Add plate" msgstr "Plaka ekle" +msgid "Split to objects" +msgstr "Nesnelere böl" + +msgid "Add" +msgstr "Ekle" + msgid "Auto orient all/selected objects" msgstr "Otomatik yönlendir tüm/seçili nesneler" @@ -5985,9 +5988,6 @@ msgstr "Tüm nesneleri hizala" msgid "Arrange objects on selected plates" msgstr "Seçilen plakalardaki nesneleri hizala" -msgid "Split to objects" -msgstr "Nesnelere böl" - msgid "Assembly View" msgstr "Montaj görünümü" @@ -6044,6 +6044,9 @@ msgstr "Taslak" msgid "Wireframe" msgstr "Wireframe" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "Gerçekçi Görünüm" @@ -6585,7 +6588,7 @@ msgstr "3D sahnede seçilen nesnenin etrafındaki ana hatları göster." msgid "Preferences" msgstr "Tercihler" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8409,10 +8412,6 @@ msgstr "Kenar çubuğunu genişlet" msgid "Collapse sidebar" msgstr "Kenar çubuğunu daralt" -# AI Translated -msgid "Tab" -msgstr "Sekme" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Dosya yükleniyor: %s" @@ -9444,10 +9443,10 @@ msgstr "Çoklu cihaz yönetimi" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Bu seçenek etkinleştirildiğinde, aynı anda birden fazla cihaza bir görev gönderebilir ve birden fazla cihazı yönetebilirsiniz." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9586,6 +9585,15 @@ msgstr "Sağ fare sürükleme" msgid "Set the action that dragging the right mouse button should perform." msgstr "Sağ fare düğmesiyle sürüklemenin gerçekleştireceği eylemi ayarlayın." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "Seçimimi Temizle" @@ -9710,13 +9718,40 @@ msgstr "" "GPU yükünü ve güç tüketimini azaltmak için görünüm penceresinin kare hızını sınırlar.\n" "Sınırsız kare hızı için 0 olarak ayarlayın." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "FPS göstergesini göster" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Geçerli görünüm penceresinin FPS değerini sağ üst köşede gösterir." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10192,13 +10227,8 @@ msgstr "3MF Yayınla..." msgid "Select which settings to be published in the 3MF file" msgstr "3MF dosyasında hangi ayarların yayınlanacağını seçin" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "3MF Yayınlama Wiki" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "3MF Yayınlama Video Kılavuzu" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10400,6 +10430,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Ayrıntıları göster" + +# AI Translated +msgid "Hide details" +msgstr "Ayrıntıları gizle" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12274,68 +12311,39 @@ msgstr "Yapılandırma paketi önceki Yapılandırma Kılavuzu'nda değiştirild msgid "Configuration package changed" msgstr "Yapılandırma paketi değiştirildi" -msgid "Toolbar" -msgstr "Araç Çubuğu" - -msgid "Objects list" -msgstr "Nesne listesi" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "STL/STEP/3MF/OBJ/AMF dosyalarından geometri verilerini içe aktarın" - -msgid "Paste from clipboard" -msgstr "Panodan yapıştır" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "3Dconnexion cihazları ayarları iletişim kutusunu Göster/Gizle" - -msgid "Switch table page" -msgstr "Tablo sayfasını değiştir" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Boşluk" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Klavye kısayolları listesini göster" - -msgid "Global shortcuts" -msgstr "Genel kısayollar" - msgid "Pan View" msgstr "Pan Görünümü" msgid "Rotate View" msgstr "Görüntüyü döndür" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" + +msgid "Left mouse" +msgstr "" + +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" + +msgid "Run a speed dial favorite while the dial is open" +msgstr "" + # AI Translated -msgid "Middle mouse button" -msgstr "Orta fare düğmesi" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Zoom View" -msgstr "Zoom Görünümü" +msgid "Switch to the next main tab" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Seçilen nesneleri veya tüm nesneleri otomatik olarak yönlendirir. Seçilen nesneler varsa, yalnızca seçilenleri yönlendirir. Aksi takdirde mevcut projedeki tüm nesneler yönlendirilecektir." - -msgid "Auto orients all objects on the active plate." -msgstr "Aktif plakadaki tüm nesneleri otomatik olarak yönlendirir." - -msgid "Collapse/Expand the sidebar" -msgstr "Kenar çubuğunu daralt/genişlet" - -msgid "Any arrow" -msgstr "Herhangi bir ok" - -msgid "Movement in camera space" -msgstr "Kamera alanında hareket" +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Parça seçin" @@ -12346,127 +12354,29 @@ msgstr "Birden fazla nesne seç" msgid "Select objects by rectangle" msgstr "Nesneleri dikdörtgene göre seç" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Yukarı Ok" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Seçimi pozitif Y yönünde 10 mm taşı" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Aşağı Ok" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Seçimi negatif Y yönünde 10 mm taşı" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Sol Ok" - -msgid "Move selection 10mm in negative X direction" -msgstr "Seçimi negatif X yönünde 10 mm taşı" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Sağ Ok" - -msgid "Move selection 10mm in positive X direction" -msgstr "Seçimi pozitif X yönünde 10 mm taşı" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "Klavye 1-9: nesneye/parçaya filament ata" msgid "Movement step set to 1mm" msgstr "Hareket adımı 1 mm'ye ayarlandı" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "Klavye 1-9: nesneye/parçaya filament ata" +msgid "Movement in camera space" +msgstr "Kamera alanında hareket" -msgid "Camera view - Default" -msgstr "Kamera görünümü - Varsayılan" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Kamera görünümü - Üst" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Kamera görünümü - Alt" +msgid "Zoom View" +msgstr "Zoom Görünümü" -msgid "Camera view - Front" -msgstr "Kamera görünümü - Ön" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Kamera görünümü - Arka" - -msgid "Camera Angle - Left side" -msgstr "Kamera Açısı - Sol" - -msgid "Camera Angle - Right side" -msgstr "Kamera Açısı - Sağ" - -msgid "Select all objects" -msgstr "Tüm nesneleri seç" - -msgid "Gizmo move" -msgstr "Gizmo hareket" - -msgid "Gizmo rotate" -msgstr "Gizmo döndürme" - -msgid "Gizmo scale" -msgstr "Gizmo ölçek" - -msgid "Gizmo place face on bed" -msgstr "Gizmo yüzünüzü yatağa yerleştirin" - -msgid "Gizmo cut" -msgstr "Gizmo kesim" - -msgid "Gizmo mesh boolean" -msgstr "Gizmo mesh bölme" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM boyama ile uygulanan pütürlü yüzey" - -msgid "Gizmo SLA support points" -msgstr "Gizmo SLA destek noktaları" - -msgid "Gizmo FDM paint-on seam" -msgstr "Gizmo FDM boyalı dikiş" - -msgid "Gizmo text emboss/engrave" -msgstr "Gizmo metin kabartma/kazıma" - -msgid "Gizmo measure" -msgstr "Gizmo ölçüm" - -msgid "Gizmo assemble" -msgstr "Gizmo birleştir" - -msgid "Gizmo brim ears" -msgstr "Gizmo lenarlık kulakları" - -msgid "Zoom in" -msgstr "Yakınlaştır" - -msgid "Zoom out" -msgstr "Uzaklaştır" - -# AI Translated -msgid "Toggle printable for object/part" -msgstr "Nesne/parça için yazdırılabilirliği aç/kapat" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Hazırlama/Önizleme arasında geçiş yap" - -msgid "Plater" -msgstr "Plakacı" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Hareket Ettir: 1 mm kadar yaslamak için basın" @@ -12477,15 +12387,19 @@ msgstr "Destek/Renkli Boyama: kalem yarıçapını ayarlayın" msgid "Support/Color Painting: adjust section position" msgstr "Destek/Renkli Boyama: bölüm konumunu ayarlayın" -# AI Translated -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Nesne listesi" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Nesneler ve parçalar için ekstruder numarasını ayarlayın" -msgid "Delete objects, parts, modifiers" -msgstr "Nesneleri, parçaları, değiştiricileri silin" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Boşluk" msgid "Select the object/part and press space to change the name" msgstr "Nesneyi/parçayı seçin ve adını değiştirmek için boşluk tuşuna basın" @@ -12496,45 +12410,48 @@ msgstr "Fare tıklaması" msgid "Select the object/part and mouse click to change the name" msgstr "Nesneyi/parçayı seçin ve adını değiştirmek için fareye tıklayın" -msgid "Objects List" -msgstr "Nesne Listesi" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Dikey kaydırıcı - Etkin başparmağı yukarı hareket ettir" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Dikey kaydırıcı - Etkin başparmağı Aşağı hareket ettir" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Yatay kaydırıcı - Etkin başparmağı sola taşı" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Yatay kaydırıcı - Etkin başparmağı sağa taşı" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Dikey kaydırıcının tek katman modunu açma/kapama" - -msgid "On/Off G-code window" -msgstr "G-code penceresini aç/kapat" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Kaydırıcıyı 5 kat daha hızlı hareket ettirin" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Yatay kaydırıcı - Başlangıç konumuna taşıyın" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Yatay kaydırıcı - Son konuma git" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Sürüm notu" @@ -17528,8 +17445,8 @@ msgstr "Ön ısıtma adımları" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Birden fazla ön ısıtma komutu ekleyin (örn. M104.1). Yalnızca Prusa XL için kullanışlıdır. Diğer yazıcılar için lütfen 1’e ayarlayın." -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code, çıktı dosyasının en üstünde, diğer içeriklerden önce yazılır. Yazıcı ürün yazılımının dosyanın ilk satırlarından okuduğu meta verileri (ör. tahmini yazdırma süresi, filament kullanımı) eklemek için kullanışlıdır. {print_time_sec} ve {used_filament_length} gibi yer tutucuları destekler." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "Başlangıç G-code" @@ -19087,12 +19004,36 @@ msgstr "Kullanılan" msgid "Total length of filament used in the print." msgstr "Baskıda kullanılan filamentin toplam uzunluğu." -msgid "Print time (seconds)" -msgstr "Yazdırma süresi (saniye)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Saniye cinsinden toplam tahmini yazdırma süresi. Son işlem sırasında gerçek değerle değiştirilir." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Filament uzunluğu (metre)" @@ -20965,6 +20906,9 @@ msgstr "Geçerli oturum algılanmadı. 3DPrinterOS'a giriş yapılsın mı?" msgid "Success!" msgstr "Başarılı!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Çıkış yaptığınızdan emin misiniz?" @@ -22018,13 +21962,6 @@ msgstr "Bulut özellikleri, yazıcı keşfi ve uzaktan yazdırma için Bambu Ağ msgid "Error: %s" msgstr "Hata: %s" -msgid "Show details" -msgstr "Ayrıntıları göster" - -# AI Translated -msgid "Hide details" -msgstr "Ayrıntıları gizle" - msgid "Version to install:" msgstr "Yüklenecek sürüm:" @@ -24681,6 +24618,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24693,6 +24636,217 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Sol Ok" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Sağ Ok" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Yukarı Ok" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Aşağı Ok" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "STL/STEP/3MF/OBJ/AMF dosyalarından geometri verilerini içe aktarın" + +msgid "Select all objects" +msgstr "Tüm nesneleri seç" + +msgid "Paste from clipboard" +msgstr "Panodan yapıştır" + +# AI Translated +msgid "Toggle printable for object/part" +msgstr "Nesne/parça için yazdırılabilirliği aç/kapat" + +msgid "Move selection 10mm in negative X direction" +msgstr "Seçimi negatif X yönünde 10 mm taşı" + +msgid "Move selection 10mm in positive X direction" +msgstr "Seçimi pozitif X yönünde 10 mm taşı" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Seçimi pozitif Y yönünde 10 mm taşı" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Seçimi negatif Y yönünde 10 mm taşı" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Gizmo hareket" + +msgid "Gizmo rotate" +msgstr "Gizmo döndürme" + +msgid "Gizmo scale" +msgstr "Gizmo ölçek" + +msgid "Gizmo place face on bed" +msgstr "Gizmo yüzünüzü yatağa yerleştirin" + +msgid "Gizmo cut" +msgstr "Gizmo kesim" + +msgid "Gizmo mesh boolean" +msgstr "Gizmo mesh bölme" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Gizmo FDM boyalı dikiş" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo FDM boyama ile uygulanan pütürlü yüzey" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Gizmo metin kabartma/kazıma" + +msgid "Gizmo measure" +msgstr "Gizmo ölçüm" + +msgid "Gizmo assemble" +msgstr "Gizmo birleştir" + +msgid "Gizmo brim ears" +msgstr "Gizmo lenarlık kulakları" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Dikey kaydırıcı - Etkin başparmağı yukarı hareket ettir" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Dikey kaydırıcı - Etkin başparmağı Aşağı hareket ettir" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Yatay kaydırıcı - Etkin başparmağı sola taşı" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Yatay kaydırıcı - Etkin başparmağı sağa taşı" + +msgid "Horizontal slider - Move to start position" +msgstr "Yatay kaydırıcı - Başlangıç konumuna taşıyın" + +msgid "Horizontal slider - Move to last position" +msgstr "Yatay kaydırıcı - Son konuma git" + +msgid "Camera view - Default" +msgstr "Kamera görünümü - Varsayılan" + +msgid "Camera view - Top" +msgstr "Kamera görünümü - Üst" + +msgid "Camera view - Bottom" +msgstr "Kamera görünümü - Alt" + +msgid "Camera view - Front" +msgstr "Kamera görünümü - Ön" + +msgid "Camera view - Behind" +msgstr "Kamera görünümü - Arka" + +msgid "Camera Angle - Left side" +msgstr "Kamera Açısı - Sol" + +msgid "Camera Angle - Right side" +msgstr "Kamera Açısı - Sağ" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Yakınlaştır" + +msgid "Zoom out" +msgstr "Uzaklaştır" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "3Dconnexion cihazları ayarları iletişim kutusunu Göster/Gizle" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "G-code penceresini aç/kapat" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Dikey kaydırıcının tek katman modunu açma/kapama" + +msgid "Switch between Prepare/Preview" +msgstr "Hazırlama/Önizleme arasında geçiş yap" + +msgid "Collapse/Expand the sidebar" +msgstr "Kenar çubuğunu daralt/genişlet" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Klavye kısayolları listesini göster" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24995,6 +25149,66 @@ msgstr "" "Eğilmeyi önleyin\n" "ABS gibi bükülmeye yatkın malzemelere baskı yaparken, ısıtma yatağı sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını azaltabileceğini biliyor muydunuz?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "Sekme" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Geçerli görünüm penceresinin FPS değerini sağ üst köşede gösterir." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "3MF Yayınlama Wiki" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "3MF Yayınlama Video Kılavuzu" + +#~ msgid "Toolbar" +#~ msgstr "Araç Çubuğu" + +#~ msgid "Switch table page" +#~ msgstr "Tablo sayfasını değiştir" + +#~ msgid "Global shortcuts" +#~ msgstr "Genel kısayollar" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "Orta fare düğmesi" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Seçilen nesneleri veya tüm nesneleri otomatik olarak yönlendirir. Seçilen nesneler varsa, yalnızca seçilenleri yönlendirir. Aksi takdirde mevcut projedeki tüm nesneler yönlendirilecektir." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Aktif plakadaki tüm nesneleri otomatik olarak yönlendirir." + +#~ msgid "Any arrow" +#~ msgstr "Herhangi bir ok" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Gizmo SLA destek noktaları" + +#~ msgid "Plater" +#~ msgstr "Plakacı" + +# AI Translated +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Nesneleri, parçaları, değiştiricileri silin" + +#~ msgid "Objects List" +#~ msgstr "Nesne Listesi" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code, çıktı dosyasının en üstünde, diğer içeriklerden önce yazılır. Yazıcı ürün yazılımının dosyanın ilk satırlarından okuduğu meta verileri (ör. tahmini yazdırma süresi, filament kullanımı) eklemek için kullanışlıdır. {print_time_sec} ve {used_filament_length} gibi yer tutucuları destekler." + +#~ msgid "Print time (seconds)" +#~ msgstr "Yazdırma süresi (saniye)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Eylem hızlı erişim menüsünü aç" diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index ffa055a2ff..20de6f7523 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: orcaslicerua\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2026-07-17 16:25+0300\n" "Last-Translator: Andrij Mizyk \n" "Language-Team: Ukrainian\n" @@ -5926,12 +5926,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Право" -msgid "Add" -msgstr "Додати" - msgid "Add plate" msgstr "Додати пластину" +msgid "Split to objects" +msgstr "Розділити на обʼєкти" + +msgid "Add" +msgstr "Додати" + msgid "Auto orient all/selected objects" msgstr "Автоорієнтація всі/вибрані обʼєкти" @@ -5944,9 +5947,6 @@ msgstr "Впорядкувати всі обʼєкти" msgid "Arrange objects on selected plates" msgstr "Впорядкувати обʼєкти на вибраних пластинах" -msgid "Split to objects" -msgstr "Розділити на обʼєкти" - msgid "Assembly View" msgstr "Вигляд збирання" @@ -6002,6 +6002,9 @@ msgstr "Контур" msgid "Wireframe" msgstr "Каркас" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "Реалістичний вигляд" @@ -6554,7 +6557,7 @@ msgstr "Показувати контур навколо виділеного о msgid "Preferences" msgstr "Налаштування" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8411,9 +8414,6 @@ msgstr "Розгорнути бічну панель" msgid "Collapse sidebar" msgstr "Згорнути бічну панель" -msgid "Tab" -msgstr "Табуляції" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Завантаження файлу: %s" @@ -9462,10 +9462,10 @@ msgstr "Керування кількома пристроями" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "З цією опцією ввімкненою, ви можете відправляти завдання на кілька пристроїв одночасно та керувати декількома пристроями." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9609,6 +9609,15 @@ msgstr "Перетягування правою кнопкою миші" msgid "Set the action that dragging the right mouse button should perform." msgstr "Задає дію, яку має виконувати перетягування правою кнопкою миші." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + # AI Translated msgid "Clear my choice on..." msgstr "Очистити мій вибір для..." @@ -9723,13 +9732,40 @@ msgstr "" "Обмежує частоту кадрів вікна перегляду, щоб зменшити навантаження на GPU та енергоспоживання.\n" "Встановіть 0 для необмеженої частоти кадрів." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "Показувати накладку FPS" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Показує поточний FPS вікна перегляду у верхньому правому куті." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10195,13 +10231,8 @@ msgstr "Публікувати 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Виберіть, які налаштування буде опубліковано у файлі 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Енциклопедія з публікації 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Відеопосібник з публікації 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10404,6 +10435,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "Показати подробиці" + +# AI Translated +msgid "Hide details" +msgstr "Сховати подробиці" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12338,68 +12376,39 @@ msgstr "Пакет конфігурації змінено в попереднь msgid "Configuration package changed" msgstr "Змінено пакет конфігурації" -msgid "Toolbar" -msgstr "Панель інструментів" - -msgid "Objects list" -msgstr "Список обʼєктів" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Імпорт геометричних даних із файлів STL/STEP/3MF/OBJ/AMF" - -msgid "Paste from clipboard" -msgstr "Вставити з буфера обміну" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Показати/приховати діалог налаштувань пристроїв 3Dconnexion" - -msgid "Switch table page" -msgstr "Перемкнути сторінку таблиці" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Пробіл" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Показати список клавіш" - -msgid "Global shortcuts" -msgstr "Глобальні ярлики" - msgid "Pan View" msgstr "Панорамний вигляд" msgid "Rotate View" msgstr "Повернути вигляд" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" + +msgid "Left mouse" +msgstr "" + +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" + +msgid "Run a speed dial favorite while the dial is open" +msgstr "" + # AI Translated -msgid "Middle mouse button" -msgstr "Середня кнопка миші" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Zoom View" -msgstr "Перегляд масштабу" +msgid "Switch to the next main tab" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Автоматично орієнтує вибрані обʼєкти або всі обʼєкти. Якщо вибрано обʼєкти, він просто орієнтує обрані. В іншому випадку він будеОрієнтувати всі обʼєкти на поточному проєкт." - -msgid "Auto orients all objects on the active plate." -msgstr "Автоматично орієнтує всі обʼєкти на поточному диску." - -msgid "Collapse/Expand the sidebar" -msgstr "Згорнути/розгорнути бічну панель" - -msgid "Any arrow" -msgstr "Будь-яка стрілка" - -msgid "Movement in camera space" -msgstr "Рух у просторі камери" +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Виберіть частину" @@ -12410,127 +12419,29 @@ msgstr "Вибрати кілька обʼєктів" msgid "Select objects by rectangle" msgstr "Виділити обʼєкти прямокутником" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Стрілка вгору" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Перемістити виділення на 10 мм у позитивному напрямку Y" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Стрілка вниз" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Перемістити виділення на 10 мм у негативному напрямку Y" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Стрілка вліво" - -msgid "Move selection 10mm in negative X direction" -msgstr "Перемістити виділення на 10 мм у негативному напрямку по осі X" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Стрілка вправо" - -msgid "Move selection 10mm in positive X direction" -msgstr "Перемістити виділення на 10 мм у позитивному напрямку X" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "клавіатура 1-9: встановити філамент для обʼєкта/деталі" msgid "Movement step set to 1mm" msgstr "Крок переміщення встановлено на 1 мм" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "клавіатура 1-9: встановити філамент для обʼєкта/деталі" +msgid "Movement in camera space" +msgstr "Рух у просторі камери" -msgid "Camera view - Default" -msgstr "Вигляд камери - Типовий" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Вигляд камери - Верх" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "Вигляд камери - Низ" +msgid "Zoom View" +msgstr "Перегляд масштабу" -msgid "Camera view - Front" -msgstr "Вигляд камери - Перед" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "Вигляд камери - Зад" - -msgid "Camera Angle - Left side" -msgstr "Кут камери – Лівий бік" - -msgid "Camera Angle - Right side" -msgstr "Кут камери - Правий бік" - -msgid "Select all objects" -msgstr "Вибрати всі обʼєкти" - -msgid "Gizmo move" -msgstr "Рух Gizmo" - -msgid "Gizmo rotate" -msgstr "Поворот Gizmo" - -msgid "Gizmo scale" -msgstr "Шкала Gizmo" - -msgid "Gizmo place face on bed" -msgstr "Покласти грань на стіл Gizmo" - -msgid "Gizmo cut" -msgstr "Виріз Gizmo" - -msgid "Gizmo mesh boolean" -msgstr "Булеві операції Gizmo" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo Малювання шорсткої поверхні" - -msgid "Gizmo SLA support points" -msgstr "Точки підтримки Gizmo SL" - -msgid "Gizmo FDM paint-on seam" -msgstr "Швид, що фарбується Gizmo FDM" - -msgid "Gizmo text emboss/engrave" -msgstr "Текстове тиснення/гравіювання Gizmo" - -msgid "Gizmo measure" -msgstr "виміряти Gizmo" - -msgid "Gizmo assemble" -msgstr "Зібрати Gizmo" - -msgid "Gizmo brim ears" -msgstr "Краєчки Gizmo" - -msgid "Zoom in" -msgstr "Приблизити" - -msgid "Zoom out" -msgstr "Віддалити" - -# AI Translated -msgid "Toggle printable for object/part" -msgstr "Перемкнути можливість друку для обʼєкта/частини" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Переключення між Підготовка/Попередній перегляд" - -msgid "Plater" -msgstr "Тарілка" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Переміщення: натисніть для переміщення на 1 мм" @@ -12541,14 +12452,19 @@ msgstr "Підтримка/Фарбування: регулювання раді msgid "Support/Color Painting: adjust section position" msgstr "Підтримка/Фарбування: регулювання положення секцій" -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Список обʼєктів" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Встановіть номер екструдера для обʼєктів та деталей" -msgid "Delete objects, parts, modifiers" -msgstr "Видалення обʼєктів, частин, модифікаторів" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Пробіл" msgid "Select the object/part and press space to change the name" msgstr "Виберіть обʼєкт/деталь і натисніть пробіл, щоб змінити назву" @@ -12559,45 +12475,48 @@ msgstr "Клацання миші" msgid "Select the object/part and mouse click to change the name" msgstr "Виберіть обʼєкт/деталь і клацніть, щоб змінити назву" -msgid "Objects List" -msgstr "Список обʼєктів" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Вертикальний повзунок - рух активного великого пальця вгору" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Вертикальний повзунок - Перемістити активний палець вниз" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Горизонтальний повзунок - Перемістити активний палець вліво" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Горизонтальний повзунок - Перемістити активний палець праворуч" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Увімкнення/вимкнення одношарового режиму вертикального повзунка" - -msgid "On/Off G-code window" -msgstr "Увімкнення/вимкнення вікна G-коду" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Переміщення повзунка в 5 разів швидше" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Горизонтальний повзунок - Перемістити в початкове положення" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Горизонтальний повзунок - Перемістити в останню позицію" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Примітка до випуску" @@ -17717,9 +17636,8 @@ msgstr "Кроки підігріву" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Вставляє кілька команд попереднього нагріву (наприклад, M104.1). Корисно лише для Prusa XL. Для інших принтерів слід встановити значення 1." -# AI Translated -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-код, що записується на самому початку вихідного файлу, перед будь-яким іншим вмістом. Корисно для додавання метаданих, які прошивка принтера читає з перших рядків файлу (наприклад, орієнтовний час друку, витрата філаменту). Підтримує підстановки на кшталт {print_time_sec} та {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "Початковий G-код" @@ -19307,13 +19225,37 @@ msgstr "Філамент, що використовується" msgid "Total length of filament used in the print." msgstr "Загальна довжина філаменту, використаної під час друку." -msgid "Print time (seconds)" -msgstr "Час друку (в секундах)" +msgid "Print time (total seconds)" +msgstr "" # AI Translated msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Загальний орієнтовний час друку в секундах. Замінюється фактичним значенням під час постобробки." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "Довжина філаменту (в метрах)" @@ -21216,6 +21158,9 @@ msgstr "Дійсний сеанс не виявлено. Продовжити в msgid "Success!" msgstr "Успішно!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Ви впевнені, що вийшли?" @@ -22197,13 +22142,6 @@ msgstr "Мережевий плагін Bambu потрібен для можли msgid "Error: %s" msgstr "Помилка: %s" -msgid "Show details" -msgstr "Показати подробиці" - -# AI Translated -msgid "Hide details" -msgstr "Сховати подробиці" - msgid "Version to install:" msgstr "Версія для встановлення:" @@ -24841,6 +24779,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24853,6 +24797,217 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Стрілка вліво" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Стрілка вправо" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Стрілка вгору" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Стрілка вниз" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Імпорт геометричних даних із файлів STL/STEP/3MF/OBJ/AMF" + +msgid "Select all objects" +msgstr "Вибрати всі обʼєкти" + +msgid "Paste from clipboard" +msgstr "Вставити з буфера обміну" + +# AI Translated +msgid "Toggle printable for object/part" +msgstr "Перемкнути можливість друку для обʼєкта/частини" + +msgid "Move selection 10mm in negative X direction" +msgstr "Перемістити виділення на 10 мм у негативному напрямку по осі X" + +msgid "Move selection 10mm in positive X direction" +msgstr "Перемістити виділення на 10 мм у позитивному напрямку X" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Перемістити виділення на 10 мм у позитивному напрямку Y" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Перемістити виділення на 10 мм у негативному напрямку Y" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Рух Gizmo" + +msgid "Gizmo rotate" +msgstr "Поворот Gizmo" + +msgid "Gizmo scale" +msgstr "Шкала Gizmo" + +msgid "Gizmo place face on bed" +msgstr "Покласти грань на стіл Gizmo" + +msgid "Gizmo cut" +msgstr "Виріз Gizmo" + +msgid "Gizmo mesh boolean" +msgstr "Булеві операції Gizmo" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Швид, що фарбується Gizmo FDM" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo Малювання шорсткої поверхні" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Текстове тиснення/гравіювання Gizmo" + +msgid "Gizmo measure" +msgstr "виміряти Gizmo" + +msgid "Gizmo assemble" +msgstr "Зібрати Gizmo" + +msgid "Gizmo brim ears" +msgstr "Краєчки Gizmo" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Вертикальний повзунок - рух активного великого пальця вгору" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Вертикальний повзунок - Перемістити активний палець вниз" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Горизонтальний повзунок - Перемістити активний палець вліво" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Горизонтальний повзунок - Перемістити активний палець праворуч" + +msgid "Horizontal slider - Move to start position" +msgstr "Горизонтальний повзунок - Перемістити в початкове положення" + +msgid "Horizontal slider - Move to last position" +msgstr "Горизонтальний повзунок - Перемістити в останню позицію" + +msgid "Camera view - Default" +msgstr "Вигляд камери - Типовий" + +msgid "Camera view - Top" +msgstr "Вигляд камери - Верх" + +msgid "Camera view - Bottom" +msgstr "Вигляд камери - Низ" + +msgid "Camera view - Front" +msgstr "Вигляд камери - Перед" + +msgid "Camera view - Behind" +msgstr "Вигляд камери - Зад" + +msgid "Camera Angle - Left side" +msgstr "Кут камери – Лівий бік" + +msgid "Camera Angle - Right side" +msgstr "Кут камери - Правий бік" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Приблизити" + +msgid "Zoom out" +msgstr "Віддалити" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Показати/приховати діалог налаштувань пристроїв 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Увімкнення/вимкнення вікна G-коду" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Увімкнення/вимкнення одношарового режиму вертикального повзунка" + +msgid "Switch between Prepare/Preview" +msgstr "Переключення між Підготовка/Попередній перегляд" + +msgid "Collapse/Expand the sidebar" +msgstr "Згорнути/розгорнути бічну панель" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Показати список клавіш" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -25158,6 +25313,65 @@ msgstr "" "Уникнення деформації\n" "Чи знаєте ви, що при друку матеріалами, схильними до деформації, такими як ABS, відповідне підвищення температури столу може зменшити ймовірність деформації?" +#~ msgid "Tab" +#~ msgstr "Табуляції" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Показує поточний FPS вікна перегляду у верхньому правому куті." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Енциклопедія з публікації 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Відеопосібник з публікації 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Панель інструментів" + +#~ msgid "Switch table page" +#~ msgstr "Перемкнути сторінку таблиці" + +#~ msgid "Global shortcuts" +#~ msgstr "Глобальні ярлики" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "Середня кнопка миші" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Автоматично орієнтує вибрані обʼєкти або всі обʼєкти. Якщо вибрано обʼєкти, він просто орієнтує обрані. В іншому випадку він будеОрієнтувати всі обʼєкти на поточному проєкт." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Автоматично орієнтує всі обʼєкти на поточному диску." + +#~ msgid "Any arrow" +#~ msgstr "Будь-яка стрілка" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Точки підтримки Gizmo SL" + +#~ msgid "Plater" +#~ msgstr "Тарілка" + +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Видалення обʼєктів, частин, модифікаторів" + +#~ msgid "Objects List" +#~ msgstr "Список обʼєктів" + +# AI Translated +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-код, що записується на самому початку вихідного файлу, перед будь-яким іншим вмістом. Корисно для додавання метаданих, які прошивка принтера читає з перших рядків файлу (наприклад, орієнтовний час друку, витрата філаменту). Підтримує підстановки на кшталт {print_time_sec} та {used_filament_length}." + +#~ msgid "Print time (seconds)" +#~ msgstr "Час друку (в секундах)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Відкрити панель швидких дій" diff --git a/localization/i18n/vi/OrcaSlicer_vi.po b/localization/i18n/vi/OrcaSlicer_vi.po index 3263e575c5..6b8451d646 100644 --- a/localization/i18n/vi/OrcaSlicer_vi.po +++ b/localization/i18n/vi/OrcaSlicer_vi.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2025-10-02 17:43+0700\n" "Last-Translator: \n" "Language-Team: hainguyen.ts13@gmail.com\n" @@ -6253,12 +6253,15 @@ msgctxt "Camera View" msgid "Right" msgstr "Phải" -msgid "Add" -msgstr "Thêm" - msgid "Add plate" msgstr "Thêm plate" +msgid "Split to objects" +msgstr "Tách thành vật thể" + +msgid "Add" +msgstr "Thêm" + msgid "Auto orient all/selected objects" msgstr "Tự động định hướng tất cả/các vật thể đã chọn" @@ -6271,9 +6274,6 @@ msgstr "Sắp xếp tất cả vật thể" msgid "Arrange objects on selected plates" msgstr "Sắp xếp vật thể trên các plate đã chọn" -msgid "Split to objects" -msgstr "Tách thành vật thể" - msgid "Assembly View" msgstr "Chế độ xem lắp ráp" @@ -6336,6 +6336,9 @@ msgstr "Đường viền" msgid "Wireframe" msgstr "Khung dây" +msgid "X-Ray" +msgstr "" + # AI Translated msgid "Realistic View" msgstr "Chế độ xem thực tế" @@ -6904,7 +6907,7 @@ msgstr "Hiện đường viền xung quanh vật thể đã chọn trong cảnh msgid "Preferences" msgstr "Tùy chọn" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8820,10 +8823,6 @@ msgstr "Mở rộng thanh bên" msgid "Collapse sidebar" msgstr "Thu gọn thanh bên" -# AI Translated -msgid "Tab" -msgstr "Tab" - #, c-format, boost-format msgid "Loading file: %s" msgstr "Đang tải file: %s" @@ -9923,10 +9922,10 @@ msgstr "Quản lý nhiều thiết bị" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "Với tùy chọn này được bật, bạn có thể gửi tác vụ đến nhiều thiết bị cùng lúc và quản lý nhiều thiết bị." -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -10074,6 +10073,15 @@ msgstr "Kéo chuột phải" msgid "Set the action that dragging the right mouse button should perform." msgstr "Đặt hành động sẽ thực hiện khi kéo nút chuột phải." +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + # AI Translated msgid "Clear my choice on..." msgstr "Xóa lựa chọn của tôi về..." @@ -10203,13 +10211,40 @@ msgstr "" "Giới hạn tốc độ khung hình của khung nhìn để giảm tải GPU và mức tiêu thụ điện.\n" "Đặt 0 để không giới hạn tốc độ khung hình." +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + # AI Translated msgid "Show FPS overlay" msgstr "Hiện lớp phủ FPS" -# AI Translated -msgid "Displays current viewport FPS in the top-right corner." -msgstr "Hiển thị FPS hiện tại của khung nhìn ở góc trên bên phải." +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10706,13 +10741,8 @@ msgstr "Xuất bản 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "Chọn những cài đặt sẽ được xuất bản trong tệp 3MF" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "Wiki về Xuất bản 3MF" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "Hướng dẫn video về Xuất bản 3MF" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10915,6 +10945,14 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +# AI Translated +msgid "Show details" +msgstr "Hiện chi tiết" + +# AI Translated +msgid "Hide details" +msgstr "Ẩn chi tiết" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12886,41 +12924,6 @@ msgstr "Gói cấu hình đã được thay đổi trong hướng dẫn cấu h msgid "Configuration package changed" msgstr "Gói cấu hình đã thay đổi" -msgid "Toolbar" -msgstr "Thanh công cụ" - -msgid "Objects list" -msgstr "Danh sách đối tượng" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "Nhập dữ liệu hình học từ file STL/STEP/3MF/OBJ/AMF" - -msgid "Paste from clipboard" -msgstr "Dán từ clipboard" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "Hiển thị/Ẩn hộp thoại cài đặt thiết bị 3Dconnexion" - -msgid "Switch table page" -msgstr "Chuyển trang bảng" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "Hiển thị danh sách phím tắt" - -msgid "Global shortcuts" -msgstr "Phím tắt toàn cục" - # AI Translated msgid "Pan View" msgstr "Di chuyển khung nhìn" @@ -12929,28 +12932,33 @@ msgstr "Di chuyển khung nhìn" msgid "Rotate View" msgstr "Xoay khung nhìn" -# AI Translated -msgid "Middle mouse button" -msgstr "Nút chuột giữa" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" + +msgid "Left mouse" +msgstr "" + +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" + +msgid "Run a speed dial favorite while the dial is open" +msgstr "" # AI Translated -msgid "Zoom View" -msgstr "Thu phóng khung nhìn" +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "Tự động định hướng đối tượng đã chọn hoặc tất cả đối tượng. Nếu có đối tượng đã chọn, nó chỉ định hướng những đối tượng đã chọn. Nếu không, nó sẽ định hướng tất cả đối tượng trong dự án hiện tại." +msgid "Switch to the next main tab" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "Tự động định hướng tất cả đối tượng trên bản đang hoạt động." - -msgid "Collapse/Expand the sidebar" -msgstr "Thu gọn/Mở rộng thanh bên" - -msgid "Any arrow" -msgstr "Phím mũi tên bất kỳ" - -msgid "Movement in camera space" -msgstr "Di chuyển trong không gian camera" +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "Chọn một phần" @@ -12961,128 +12969,30 @@ msgstr "Chọn nhiều đối tượng" msgid "Select objects by rectangle" msgstr "Chọn đối tượng bằng hình chữ nhật" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Mũi tên lên" - -msgid "Move selection 10mm in positive Y direction" -msgstr "Di chuyển lựa chọn 10 mm theo hướng Y dương" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Mũi tên xuống" - -msgid "Move selection 10mm in negative Y direction" -msgstr "Di chuyển lựa chọn 10 mm theo hướng Y âm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Mũi tên trái" - -msgid "Move selection 10mm in negative X direction" -msgstr "Di chuyển lựa chọn 10 mm theo hướng X âm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Mũi tên phải" - -msgid "Move selection 10mm in positive X direction" -msgstr "Di chuyển lựa chọn 10 mm theo hướng X dương" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "bàn phím 1-9: đặt filament cho đối tượng/phần" msgid "Movement step set to 1mm" msgstr "Bước di chuyển được đặt thành 1 mm" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "bàn phím 1-9: đặt filament cho đối tượng/phần" +msgid "Movement in camera space" +msgstr "Di chuyển trong không gian camera" -msgid "Camera view - Default" -msgstr "Chế độ xem camera - Mặc định" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "Chế độ xem camera - Trên" - -msgid "Camera view - Bottom" -msgstr "Chế độ xem camera - Dưới" - -msgid "Camera view - Front" -msgstr "Chế độ xem camera - Trước" - -msgid "Camera view - Behind" -msgstr "Chế độ xem camera - Sau" - -msgid "Camera Angle - Left side" -msgstr "Góc camera - Bên trái" - -msgid "Camera Angle - Right side" -msgstr "Góc camera - Bên phải" - -msgid "Select all objects" -msgstr "Chọn tất cả đối tượng" - -msgid "Gizmo move" -msgstr "Gizmo di chuyển" - -msgid "Gizmo rotate" -msgstr "Gizmo xoay" - -msgid "Gizmo scale" -msgstr "Gizmo tỷ lệ" - -msgid "Gizmo place face on bed" -msgstr "Gizmo đặt mặt lên bàn" - -msgid "Gizmo cut" -msgstr "Gizmo cắt" +msgid "Right mouse" +msgstr "" # AI Translated -msgid "Gizmo mesh boolean" -msgstr "Gizmo boolean lưới" +msgid "Zoom View" +msgstr "Thu phóng khung nhìn" -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM tô fuzzy skin" +msgid "Painting" +msgstr "" -msgid "Gizmo SLA support points" -msgstr "Gizmo điểm support SLA" - -msgid "Gizmo FDM paint-on seam" -msgstr "Gizmo FDM tô seam" - -msgid "Gizmo text emboss/engrave" -msgstr "Gizmo văn bản emboss/khắc" - -msgid "Gizmo measure" -msgstr "Gizmo đo" - -msgid "Gizmo assemble" -msgstr "Gizmo lắp ráp" - -msgid "Gizmo brim ears" -msgstr "Gizmo tai viền" - -msgid "Zoom in" -msgstr "Phóng to" - -msgid "Zoom out" -msgstr "Thu nhỏ" - -# AI Translated -msgid "Toggle printable for object/part" -msgstr "Bật/tắt khả năng in cho vật thể/phần" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "Chuyển đổi giữa Chuẩn bị/Xem trước" - -msgid "Plater" -msgstr "Bàn in" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "Di chuyển: nhấn để bám theo 1mm" @@ -13093,15 +13003,19 @@ msgstr "Tô support/màu: điều chỉnh bán kính bút" msgid "Support/Color Painting: adjust section position" msgstr "Tô support/màu: điều chỉnh vị trí phần" -# AI Translated -msgid "Gizmo" -msgstr "Gizmo" +msgid "Objects list" +msgstr "Danh sách đối tượng" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "Đặt số extruder cho đối tượng và phần" -msgid "Delete objects, parts, modifiers" -msgstr "Xóa đối tượng, phần, modifier" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" msgid "Select the object/part and press space to change the name" msgstr "Chọn đối tượng/phần và nhấn phím cách để thay đổi tên" @@ -13112,45 +13026,48 @@ msgstr "Nhấp chuột" msgid "Select the object/part and mouse click to change the name" msgstr "Chọn đối tượng/phần và nhấp chuột để thay đổi tên" -msgid "Objects List" -msgstr "Danh sách đối tượng" - -msgid "Vertical slider - Move active thumb Up" -msgstr "Thanh trượt dọc - Di chuyển nút hoạt động lên" - -msgid "Vertical slider - Move active thumb Down" -msgstr "Thanh trượt dọc - Di chuyển nút hoạt động xuống" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "Thanh trượt ngang - Di chuyển nút hoạt động sang trái" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "Thanh trượt ngang - Di chuyển nút hoạt động sang phải" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "Bật/Tắt chế độ một lớp của thanh trượt dọc" - -msgid "On/Off G-code window" -msgstr "Bật/Tắt cửa sổ G-code" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "Di chuyển thanh trượt nhanh hơn 5 lần" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "Thanh trượt ngang - Di chuyển đến vị trí bắt đầu" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "Thanh trượt ngang - Di chuyển đến vị trí cuối cùng" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "Ghi chú phát hành" @@ -18243,9 +18160,8 @@ msgstr "Bước làm nóng trước" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "Chèn nhiều lệnh làm nóng trước (ví dụ M104.1). Chỉ hữu ích cho Prusa XL. Đối với các máy in khác, vui lòng đặt nó thành 1." -# AI Translated -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code được ghi ở ngay đầu file xuất, trước mọi nội dung khác. Hữu ích để thêm siêu dữ liệu mà firmware máy in đọc từ những dòng đầu tiên của file (ví dụ thời gian in ước tính, lượng filament sử dụng). Hỗ trợ các trình giữ chỗ như {print_time_sec} và {used_filament_length}." +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "G-code bắt đầu" @@ -19832,14 +19748,37 @@ msgstr "Filament đã dùng" msgid "Total length of filament used in the print." msgstr "Tổng độ dài filament dùng trong bản in." -# AI Translated -msgid "Print time (seconds)" -msgstr "Thời gian in (giây)" +msgid "Print time (total seconds)" +msgstr "" # AI Translated msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "Tổng thời gian in ước tính tính bằng giây. Được thay bằng giá trị thực tế trong quá trình hậu xử lý." +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + # AI Translated msgid "Filament length (meters)" msgstr "Độ dài filament (mét)" @@ -21758,6 +21697,9 @@ msgstr "Không phát hiện phiên hợp lệ. Tiếp tục đăng nhập vào 3 msgid "Success!" msgstr "Thành công!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "Bạn có chắc chắn đăng xuất không?" @@ -22871,14 +22813,6 @@ msgstr "Bambu Network Plug-in là bắt buộc cho các tính năng cloud, phát msgid "Error: %s" msgstr "Lỗi: %s" -# AI Translated -msgid "Show details" -msgstr "Hiện chi tiết" - -# AI Translated -msgid "Hide details" -msgstr "Ẩn chi tiết" - # AI Translated msgid "Version to install:" msgstr "Phiên bản sẽ cài đặt:" @@ -25562,6 +25496,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -25574,6 +25514,218 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Mũi tên trái" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Mũi tên phải" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Mũi tên lên" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Mũi tên xuống" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "Nhập dữ liệu hình học từ file STL/STEP/3MF/OBJ/AMF" + +msgid "Select all objects" +msgstr "Chọn tất cả đối tượng" + +msgid "Paste from clipboard" +msgstr "Dán từ clipboard" + +# AI Translated +msgid "Toggle printable for object/part" +msgstr "Bật/tắt khả năng in cho vật thể/phần" + +msgid "Move selection 10mm in negative X direction" +msgstr "Di chuyển lựa chọn 10 mm theo hướng X âm" + +msgid "Move selection 10mm in positive X direction" +msgstr "Di chuyển lựa chọn 10 mm theo hướng X dương" + +msgid "Move selection 10mm in positive Y direction" +msgstr "Di chuyển lựa chọn 10 mm theo hướng Y dương" + +msgid "Move selection 10mm in negative Y direction" +msgstr "Di chuyển lựa chọn 10 mm theo hướng Y âm" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "Gizmo di chuyển" + +msgid "Gizmo rotate" +msgstr "Gizmo xoay" + +msgid "Gizmo scale" +msgstr "Gizmo tỷ lệ" + +msgid "Gizmo place face on bed" +msgstr "Gizmo đặt mặt lên bàn" + +msgid "Gizmo cut" +msgstr "Gizmo cắt" + +# AI Translated +msgid "Gizmo mesh boolean" +msgstr "Gizmo boolean lưới" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "Gizmo FDM tô seam" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo FDM tô fuzzy skin" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "Gizmo văn bản emboss/khắc" + +msgid "Gizmo measure" +msgstr "Gizmo đo" + +msgid "Gizmo assemble" +msgstr "Gizmo lắp ráp" + +msgid "Gizmo brim ears" +msgstr "Gizmo tai viền" + +msgid "Vertical slider - Move active thumb Up" +msgstr "Thanh trượt dọc - Di chuyển nút hoạt động lên" + +msgid "Vertical slider - Move active thumb Down" +msgstr "Thanh trượt dọc - Di chuyển nút hoạt động xuống" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "Thanh trượt ngang - Di chuyển nút hoạt động sang trái" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "Thanh trượt ngang - Di chuyển nút hoạt động sang phải" + +msgid "Horizontal slider - Move to start position" +msgstr "Thanh trượt ngang - Di chuyển đến vị trí bắt đầu" + +msgid "Horizontal slider - Move to last position" +msgstr "Thanh trượt ngang - Di chuyển đến vị trí cuối cùng" + +msgid "Camera view - Default" +msgstr "Chế độ xem camera - Mặc định" + +msgid "Camera view - Top" +msgstr "Chế độ xem camera - Trên" + +msgid "Camera view - Bottom" +msgstr "Chế độ xem camera - Dưới" + +msgid "Camera view - Front" +msgstr "Chế độ xem camera - Trước" + +msgid "Camera view - Behind" +msgstr "Chế độ xem camera - Sau" + +msgid "Camera Angle - Left side" +msgstr "Góc camera - Bên trái" + +msgid "Camera Angle - Right side" +msgstr "Góc camera - Bên phải" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "Phóng to" + +msgid "Zoom out" +msgstr "Thu nhỏ" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "Hiển thị/Ẩn hộp thoại cài đặt thiết bị 3Dconnexion" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "Bật/Tắt cửa sổ G-code" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "Bật/Tắt chế độ một lớp của thanh trượt dọc" + +msgid "Switch between Prepare/Preview" +msgstr "Chuyển đổi giữa Chuẩn bị/Xem trước" + +msgid "Collapse/Expand the sidebar" +msgstr "Thu gọn/Mở rộng thanh bên" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "Hiển thị danh sách phím tắt" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -25875,6 +26027,68 @@ msgstr "" "Tránh cong vênh\n" "Bạn có biết rằng khi in vật liệu dễ cong vênh như ABS, tăng nhiệt độ bàn nóng một cách thích hợp có thể giảm xác suất cong vênh không?" +# AI Translated +#~ msgid "Tab" +#~ msgstr "Tab" + +# AI Translated +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "Hiển thị FPS hiện tại của khung nhìn ở góc trên bên phải." + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "Wiki về Xuất bản 3MF" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "Hướng dẫn video về Xuất bản 3MF" + +#~ msgid "Toolbar" +#~ msgstr "Thanh công cụ" + +#~ msgid "Switch table page" +#~ msgstr "Chuyển trang bảng" + +#~ msgid "Global shortcuts" +#~ msgstr "Phím tắt toàn cục" + +# AI Translated +#~ msgid "Middle mouse button" +#~ msgstr "Nút chuột giữa" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "Tự động định hướng đối tượng đã chọn hoặc tất cả đối tượng. Nếu có đối tượng đã chọn, nó chỉ định hướng những đối tượng đã chọn. Nếu không, nó sẽ định hướng tất cả đối tượng trong dự án hiện tại." + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "Tự động định hướng tất cả đối tượng trên bản đang hoạt động." + +#~ msgid "Any arrow" +#~ msgstr "Phím mũi tên bất kỳ" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "Gizmo điểm support SLA" + +#~ msgid "Plater" +#~ msgstr "Bàn in" + +# AI Translated +#~ msgid "Gizmo" +#~ msgstr "Gizmo" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "Xóa đối tượng, phần, modifier" + +#~ msgid "Objects List" +#~ msgstr "Danh sách đối tượng" + +# AI Translated +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code được ghi ở ngay đầu file xuất, trước mọi nội dung khác. Hữu ích để thêm siêu dữ liệu mà firmware máy in đọc từ những dòng đầu tiên của file (ví dụ thời gian in ước tính, lượng filament sử dụng). Hỗ trợ các trình giữ chỗ như {print_time_sec} và {used_filament_length}." + +# AI Translated +#~ msgid "Print time (seconds)" +#~ msgstr "Thời gian in (giây)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "Mở vòng quay thao tác nhanh" diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index d3c0b03ec1..b61846f434 100644 --- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po +++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2026-06-11 12:37-0300\n" "Last-Translator: Handle \n" "Language-Team: \n" @@ -5757,12 +5757,15 @@ msgctxt "Camera View" msgid "Right" msgstr "右" -msgid "Add" -msgstr "添加" - msgid "Add plate" msgstr "添加新盘" +msgid "Split to objects" +msgstr "拆分为对象" + +msgid "Add" +msgstr "添加" + msgid "Auto orient all/selected objects" msgstr "自动定位所有/选定的对象" @@ -5775,9 +5778,6 @@ msgstr "全局整理" msgid "Arrange objects on selected plates" msgstr "单盘整理" -msgid "Split to objects" -msgstr "拆分为对象" - msgid "Assembly View" msgstr "装配体视图" @@ -5833,6 +5833,9 @@ msgstr "轮廓线" msgid "Wireframe" msgstr "线框" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "写实渲染" @@ -6372,7 +6375,7 @@ msgstr "在3D场景中显示选中对象的轮廓" msgid "Preferences" msgstr "偏好设置" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8147,9 +8150,6 @@ msgstr "展开侧边栏" msgid "Collapse sidebar" msgstr "折叠边栏" -msgid "Tab" -msgstr "标签" - #, c-format, boost-format msgid "Loading file: %s" msgstr "加载文件:%s" @@ -9160,10 +9160,10 @@ msgstr "多设备管理" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "启用此选项后,您可以同时向多个设备发送任务并管理多个设备。" -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9295,6 +9295,15 @@ msgstr "鼠标右键拖动" msgid "Set the action that dragging the right mouse button should perform." msgstr "设置拖动鼠标右键时应执行的操作。" +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "清除我的选择..." @@ -9405,11 +9414,39 @@ msgstr "" "限制视口帧率以降低 GPU 负载和功耗。\n" "设置为 0 表示不限制帧率。" +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "显示 FPS 叠加层" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "在右上角显示当前视口的 FPS。" +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -9869,13 +9906,8 @@ msgstr "发布 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "选择要在 3MF 文件中发布的设置" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "发布 3MF Wiki" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "发布 3MF 视频指南" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10077,6 +10109,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "显示详情" + +# AI Translated +msgid "Hide details" +msgstr "隐藏详情" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -11876,70 +11915,39 @@ msgstr "参数配置包在之前的配置向导中发生了变更" msgid "Configuration package changed" msgstr "参数配置包发生变更" -msgid "Toolbar" -msgstr "工具栏" - -msgid "Objects list" -msgstr "对象列表" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "从STL/STEP/3MF/OBJ/AMF文件中导入几何数据" - -msgid "Paste from clipboard" -msgstr "从剪切板粘贴" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "显示/隐藏 3Dconnexion设备的设置对话框" - -msgid "Switch table page" -msgstr "切换标签页" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "显示键盘快捷键列表" - -msgid "Global shortcuts" -msgstr "全局快捷键" - msgid "Pan View" msgstr "移动视角" msgid "Rotate View" msgstr "旋转视角" -msgid "Middle mouse button" -msgstr "鼠标中键" - -msgid "Zoom View" -msgstr "缩放视角" - -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." msgstr "" -"自动调整选定零件/所有零件的方向,\n" -"有选定零件时调整选定零件的朝向,\n" -"没有选择零件时调整当项目所有零件的朝向" -msgid "Auto orients all objects on the active plate." -msgstr "自动调整活动盘上的所有物体的方向。" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "收起/展开 侧边栏" +msgid "Left mouse" +msgstr "" -msgid "Any arrow" -msgstr "任意箭头" +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Movement in camera space" -msgstr "沿相机视角移动对象" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" + +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "选择单个零件" @@ -11950,130 +11958,29 @@ msgstr "选择多个对象" msgid "Select objects by rectangle" msgstr "框选多个零件" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "↑" - -# AI Translated -msgid "Move selection 10mm in positive Y direction" -msgstr "将所选项沿 Y 轴正方向移动 10mm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "↓" - -# AI Translated -msgid "Move selection 10mm in negative Y direction" -msgstr "将所选项沿 Y 轴负方向移动 10mm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "←" - -# AI Translated -msgid "Move selection 10mm in negative X direction" -msgstr "将所选项沿 X 轴负方向移动 10mm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "→" - -# AI Translated -msgid "Move selection 10mm in positive X direction" -msgstr "将所选项沿 X 轴正方向移动 10mm" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "按键1-9:设置对象/零件的耗材丝" msgid "Movement step set to 1mm" msgstr "沿X、Y轴以1mm为步进移动对象" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "按键1-9:设置对象/零件的耗材丝" +msgid "Movement in camera space" +msgstr "沿相机视角移动对象" -msgid "Camera view - Default" -msgstr "摄像机视角 - 默认" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "摄像机视角 - 顶部" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "摄像机视角 - 底部" +msgid "Zoom View" +msgstr "缩放视角" -msgid "Camera view - Front" -msgstr "摄像机视角 - 正面" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "摄像机视角 - 后面" - -msgid "Camera Angle - Left side" -msgstr "摄像机视角 - 左面" - -msgid "Camera Angle - Right side" -msgstr "摄像机视角 - 右面" - -msgid "Select all objects" -msgstr "选择所有对象" - -msgid "Gizmo move" -msgstr "线框移动" - -msgid "Gizmo rotate" -msgstr "旋转物件" - -msgid "Gizmo scale" -msgstr "线框缩放" - -msgid "Gizmo place face on bed" -msgstr "选择底面" - -msgid "Gizmo cut" -msgstr "剪切物件" - -msgid "Gizmo mesh boolean" -msgstr "线框网格布尔操作" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM手绘绒毛表面" - -msgid "Gizmo SLA support points" -msgstr "SLA支撑点" - -msgid "Gizmo FDM paint-on seam" -msgstr "FDM涂装接缝" - -msgid "Gizmo text emboss/engrave" -msgstr "线框文本浮雕/雕刻" - -msgid "Gizmo measure" -msgstr "线框测量" - -msgid "Gizmo assemble" -msgstr "线框组合" - -msgid "Gizmo brim ears" -msgstr "线框耳状帽檐" - -msgid "Zoom in" -msgstr "放大" - -msgid "Zoom out" -msgstr "缩小" - -msgid "Toggle printable for object/part" -msgstr "切换对象/零件的可打印状态" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "准备/预览之间的切换" - -msgid "Plater" -msgstr "准备" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "移动:以1mm为步进移动" @@ -12084,14 +11991,19 @@ msgstr "支撑/颜色绘制:调节画笔半径" msgid "Support/Color Painting: adjust section position" msgstr "支撑/色彩绘制:调节剖面位置" -msgid "Gizmo" -msgstr "小工具" +msgid "Objects list" +msgstr "对象列表" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "设置对象、零件使用的挤出机编号" -msgid "Delete objects, parts, modifiers" -msgstr "删除对象、零件、修改器" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" msgid "Select the object/part and press space to change the name" msgstr "选中对象、零件,按空格可修改名称" @@ -12102,45 +12014,48 @@ msgstr "鼠标点击" msgid "Select the object/part and mouse click to change the name" msgstr "选中对象、零件,双击零件名可修改名称" -msgid "Objects List" -msgstr "对象列表" - -msgid "Vertical slider - Move active thumb Up" -msgstr "垂直滑动条 - 向上移动一层" - -msgid "Vertical slider - Move active thumb Down" -msgstr "垂直滑动条 - 向下移动一层" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "水平滑动条 - 向左移动一步" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "水平滑动条 - 向右移动一步" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "开启/关闭垂直滑动条的单层模式" - -msgid "On/Off G-code window" -msgstr "开启/关闭G-code窗口" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "5倍速移动滑动条" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "水平滑块 - 移动到起始位置" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "水平滑块 - 移动到末尾位置" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "更新说明" @@ -16971,8 +16886,8 @@ msgstr "预热步骤" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "插入多个预热命令(例如 M104.1)。仅适用于 Prusa XL。对于其他打印机,请将其设置为 1。" -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code 写在输出文件的最顶部,位于任何其他内容之前。对于添加打印机固件从文件第一行读取的元数据(例如估计打印时间、耗材使用情况)很有用。支持 {print_time_sec} 和 {used_filament_length} 等占位符。" +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "起始G-code" @@ -18504,12 +18419,36 @@ msgstr "已用耗材" msgid "Total length of filament used in the print." msgstr "打印中使用的耗材的总长度。" -msgid "Print time (seconds)" -msgstr "打印耗时(秒)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "预计总打印耗时(以秒为单位)。在后处理时将替换为实际值。" +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "耗材长度(米)" @@ -20342,6 +20281,9 @@ msgstr "未检测到有效会话。是否继续登录 3DPrinterOS?" msgid "Success!" msgstr "成功!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "您确定要登出吗?" @@ -21339,13 +21281,6 @@ msgstr "Bambu 网络插件用于云功能、打印机发现和远程打印。" msgid "Error: %s" msgstr "错误:%s" -msgid "Show details" -msgstr "显示详情" - -# AI Translated -msgid "Hide details" -msgstr "隐藏详情" - msgid "Version to install:" msgstr "将安装的版本:" @@ -23976,6 +23911,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -23988,6 +23929,220 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "←" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "→" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "↑" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "↓" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "从STL/STEP/3MF/OBJ/AMF文件中导入几何数据" + +msgid "Select all objects" +msgstr "选择所有对象" + +msgid "Paste from clipboard" +msgstr "从剪切板粘贴" + +msgid "Toggle printable for object/part" +msgstr "切换对象/零件的可打印状态" + +# AI Translated +msgid "Move selection 10mm in negative X direction" +msgstr "将所选项沿 X 轴负方向移动 10mm" + +# AI Translated +msgid "Move selection 10mm in positive X direction" +msgstr "将所选项沿 X 轴正方向移动 10mm" + +# AI Translated +msgid "Move selection 10mm in positive Y direction" +msgstr "将所选项沿 Y 轴正方向移动 10mm" + +# AI Translated +msgid "Move selection 10mm in negative Y direction" +msgstr "将所选项沿 Y 轴负方向移动 10mm" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "线框移动" + +msgid "Gizmo rotate" +msgstr "旋转物件" + +msgid "Gizmo scale" +msgstr "线框缩放" + +msgid "Gizmo place face on bed" +msgstr "选择底面" + +msgid "Gizmo cut" +msgstr "剪切物件" + +msgid "Gizmo mesh boolean" +msgstr "线框网格布尔操作" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "FDM涂装接缝" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo FDM手绘绒毛表面" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "线框文本浮雕/雕刻" + +msgid "Gizmo measure" +msgstr "线框测量" + +msgid "Gizmo assemble" +msgstr "线框组合" + +msgid "Gizmo brim ears" +msgstr "线框耳状帽檐" + +msgid "Vertical slider - Move active thumb Up" +msgstr "垂直滑动条 - 向上移动一层" + +msgid "Vertical slider - Move active thumb Down" +msgstr "垂直滑动条 - 向下移动一层" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "水平滑动条 - 向左移动一步" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "水平滑动条 - 向右移动一步" + +msgid "Horizontal slider - Move to start position" +msgstr "水平滑块 - 移动到起始位置" + +msgid "Horizontal slider - Move to last position" +msgstr "水平滑块 - 移动到末尾位置" + +msgid "Camera view - Default" +msgstr "摄像机视角 - 默认" + +msgid "Camera view - Top" +msgstr "摄像机视角 - 顶部" + +msgid "Camera view - Bottom" +msgstr "摄像机视角 - 底部" + +msgid "Camera view - Front" +msgstr "摄像机视角 - 正面" + +msgid "Camera view - Behind" +msgstr "摄像机视角 - 后面" + +msgid "Camera Angle - Left side" +msgstr "摄像机视角 - 左面" + +msgid "Camera Angle - Right side" +msgstr "摄像机视角 - 右面" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "放大" + +msgid "Zoom out" +msgstr "缩小" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "显示/隐藏 3Dconnexion设备的设置对话框" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "开启/关闭G-code窗口" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "开启/关闭垂直滑动条的单层模式" + +msgid "Switch between Prepare/Preview" +msgstr "准备/预览之间的切换" + +msgid "Collapse/Expand the sidebar" +msgstr "收起/展开 侧边栏" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "显示键盘快捷键列表" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24288,6 +24443,65 @@ msgstr "" "避免翘曲\n" "您知道吗?打印ABS这类易翘曲材料时,适当提高热床温度可以降低翘曲的概率。" +#~ msgid "Tab" +#~ msgstr "标签" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "在右上角显示当前视口的 FPS。" + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "发布 3MF Wiki" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "发布 3MF 视频指南" + +#~ msgid "Toolbar" +#~ msgstr "工具栏" + +#~ msgid "Switch table page" +#~ msgstr "切换标签页" + +#~ msgid "Global shortcuts" +#~ msgstr "全局快捷键" + +#~ msgid "Middle mouse button" +#~ msgstr "鼠标中键" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "" +#~ "自动调整选定零件/所有零件的方向,\n" +#~ "有选定零件时调整选定零件的朝向,\n" +#~ "没有选择零件时调整当项目所有零件的朝向" + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "自动调整活动盘上的所有物体的方向。" + +#~ msgid "Any arrow" +#~ msgstr "任意箭头" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "SLA支撑点" + +#~ msgid "Plater" +#~ msgstr "准备" + +#~ msgid "Gizmo" +#~ msgstr "小工具" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "删除对象、零件、修改器" + +#~ msgid "Objects List" +#~ msgstr "对象列表" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code 写在输出文件的最顶部,位于任何其他内容之前。对于添加打印机固件从文件第一行读取的元数据(例如估计打印时间、耗材使用情况)很有用。支持 {print_time_sec} 和 {used_filament_length} 等占位符。" + +#~ msgid "Print time (seconds)" +#~ msgstr "打印耗时(秒)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "打开快捷操作盘" diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index d50ec44d21..1cf114adc7 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Orca Slicer\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 15:50+0800\n" +"POT-Creation-Date: 2026-09-22 12:39+0800\n" "PO-Revision-Date: 2025-11-28 13:48-0600\n" "Last-Translator: tntchn <15895303+tntchn@users.noreply.github.com>\n" "Language-Team: \n" @@ -5886,12 +5886,15 @@ msgctxt "Camera View" msgid "Right" msgstr "右" -msgid "Add" -msgstr "新增" - msgid "Add plate" msgstr "新增列印板" +msgid "Split to objects" +msgstr "拆分為物件" + +msgid "Add" +msgstr "新增" + msgid "Auto orient all/selected objects" msgstr "自動旋轉所有/選取物件的方向" @@ -5904,9 +5907,6 @@ msgstr "全域整理" msgid "Arrange objects on selected plates" msgstr "在選定的列印板上排列物件" -msgid "Split to objects" -msgstr "拆分為物件" - msgid "Assembly View" msgstr "組裝視角" @@ -5962,6 +5962,9 @@ msgstr "輪廓線" msgid "Wireframe" msgstr "線框" +msgid "X-Ray" +msgstr "" + msgid "Realistic View" msgstr "擬真檢視" @@ -6502,7 +6505,7 @@ msgstr "在 3D 場景中顯示選定物件的輪廓" msgid "Preferences" msgstr "偏好設定" -msgid "Open speed dial..." +msgid "Open speed dial" msgstr "" # AI Translated @@ -8310,9 +8313,6 @@ msgstr "展開側邊欄" msgid "Collapse sidebar" msgstr "折疊側邊欄" -msgid "Tab" -msgstr "分頁" - #, c-format, boost-format msgid "Loading file: %s" msgstr "載入檔案:%s" @@ -9333,10 +9333,10 @@ msgstr "多臺裝置管理" msgid "With this option enabled, you can send a task to multiple devices at the same time and manage multiple devices." msgstr "啟用時可以同時傳送到並管理多個機臺。" -msgid "Open the Speed Dial with the Space key" +msgid "Open the Speed Dial from the keyboard" msgstr "" -msgid "When enabled, pressing Space (with no other key held) opens the Speed Dial action search from any page." +msgid "When enabled, the Speed Dial keyboard shortcut (Space by default) opens the action search from any page." msgstr "" msgid "Recent actions" @@ -9468,6 +9468,15 @@ msgstr "滑鼠右鍵拖曳" msgid "Set the action that dragging the right mouse button should perform." msgstr "設定拖曳滑鼠右鍵時應執行的動作。" +msgid "Keyboard" +msgstr "" + +msgid "Keyboard shortcuts" +msgstr "" + +msgid "Choose the key for each action." +msgstr "" + msgid "Clear my choice on..." msgstr "清除我的選擇於..." @@ -9578,11 +9587,39 @@ msgstr "" "限制視埠影格率以降低 GPU 負載與耗電量。\n" "設為 0 表示不限制影格率。" +msgid "Reuse the 3D scene while idle" +msgstr "" + +msgid "" +"Skips redrawing the 3D scene when only the mouse cursor moves over the viewport,\n" +"and reuses the previous frame's scene instead. Reduces GPU load.\n" +"Disable it if the viewport shows stale or missing contents.\n" +"\n" +"Takes effect immediately." +msgstr "" + +msgid "Skip unchanged frames" +msgstr "" + +msgid "" +"Skips drawing a frame altogether when it would be identical to the one already on screen.\n" +"Only applies to frames that reuse the 3D scene, so it needs Reuse the 3D scene while idle.\n" +"Disable it if a hover highlight, tooltip or animation stops updating.\n" +"\n" +"Takes effect immediately." +msgstr "" + msgid "Show FPS overlay" msgstr "顯示 FPS 疊加層" -msgid "Displays current viewport FPS in the top-right corner." -msgstr "在右上角顯示目前視埠的 FPS。" +msgid "Displays rendering counts in the top-right corner of the viewport." +msgstr "" + +msgid "FPS: frames presented to the screen per second." +msgstr "" + +msgid "3D: frames per second that redrew the 3D scene." +msgstr "" # AI Translated msgid "G-code Preview" @@ -10042,13 +10079,8 @@ msgstr "發布 3MF..." msgid "Select which settings to be published in the 3MF file" msgstr "選擇要在 3MF 檔案中發布的設定" -# AI Translated -msgid "Publish 3MF Wiki" -msgstr "發布 3MF Wiki" - -# AI Translated -msgid "Publish 3MF Video Guide" -msgstr "發布 3MF 影片指南" +msgid "Video Guide" +msgstr "" # AI Translated msgid "Mixed filament - published as a whole when \"Enable\" above is selected" @@ -10250,6 +10282,13 @@ msgstr "" msgid "No wiki page for this action" msgstr "" +msgid "Show details" +msgstr "顯示詳細資訊" + +# AI Translated +msgid "Hide details" +msgstr "隱藏詳細資料" + #, c-format, boost-format msgid "\"%s\" is a Developer setting. Enable Developer mode to edit it?" msgstr "" @@ -12084,67 +12123,39 @@ msgstr "設定檔在之前的設定引導過程中已改變" msgid "Configuration package changed" msgstr "設定檔已改變" -msgid "Toolbar" -msgstr "工具欄" - -msgid "Objects list" -msgstr "物件清單" - -msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" -msgstr "從 STL/STEP/3MF/OBJ/AMF 檔案中匯入幾何模型" - -msgid "Paste from clipboard" -msgstr "從剪貼簿貼上" - -msgid "Show/Hide 3Dconnexion devices settings dialog" -msgstr "顯示/隱藏 3Dconnexion 裝置的設定對話框" - -msgid "Switch table page" -msgstr "切換表單頁面" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Space" -msgstr "Space" - -msgid "Open speed dial" -msgstr "" - -msgid "Run a Speed Dial favourite (while the Speed Dial is open)" -msgstr "" - -msgid "Show keyboard shortcuts list" -msgstr "顯示鍵盤快速鍵清單" - -msgid "Global shortcuts" -msgstr "全域快速鍵" - msgid "Pan View" msgstr "移動視角" msgid "Rotate View" msgstr "旋轉視角" -msgid "Middle mouse button" -msgstr "滑鼠中鍵" +#, c-format, boost-format +msgid "Use %s or %s, or a key that does not type a character." +msgstr "" -msgid "Zoom View" -msgstr "縮放視角" +msgctxt "Keyboard Shortcut" +msgid "Key" +msgstr "" -msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." -msgstr "自動旋轉選取的物件或所有物件的方向。當有物件被選取時,僅自動旋轉選取的物件。無選取的物件時,會自動旋轉專案中的所有物件。" +msgid "Left mouse" +msgstr "" -msgid "Auto orients all objects on the active plate." -msgstr "自動旋轉目前板上所有物件的方向" +msgid "Available anywhere in the window, even while typing in a text field." +msgstr "" -msgid "Collapse/Expand the sidebar" -msgstr "摺疊/展開 側邊欄" +msgid "Run a speed dial favorite while the dial is open" +msgstr "" -msgid "Any arrow" -msgstr "任意方向鍵" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Tab" +msgstr "Tab" -msgid "Movement in camera space" -msgstr "沿相機視角移動物件" +msgid "Switch to the next main tab" +msgstr "" + +msgid "Available while the 3D view on the Prepare tab has focus." +msgstr "" msgid "Select a part" msgstr "選擇單一零件" @@ -12155,130 +12166,29 @@ msgstr "選擇多個物件" msgid "Select objects by rectangle" msgstr "框選多個零件" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Up" -msgstr "Arrow Up" - -# AI Translated -msgid "Move selection 10mm in positive Y direction" -msgstr "將選取物件沿 Y 軸正方向移動 10mm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Down" -msgstr "Arrow Down" - -# AI Translated -msgid "Move selection 10mm in negative Y direction" -msgstr "將選取物件沿 Y 軸負方向移動 10mm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Left" -msgstr "Arrow Left" - -# AI Translated -msgid "Move selection 10mm in negative X direction" -msgstr "將選取物件沿 X 軸負方向移動 10mm" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Arrow Right" -msgstr "Arrow Right" - -# AI Translated -msgid "Move selection 10mm in positive X direction" -msgstr "將選取物件沿 X 軸正方向移動 10mm" +msgid "Keyboard 1-9: set filament for object/part" +msgstr "按鍵 1~9:設定物件/零件的線材" msgid "Movement step set to 1mm" msgstr "沿 X、Y 軸以 1mm 為單位步進移動" -msgid "Keyboard 1-9: set filament for object/part" -msgstr "按鍵 1~9:設定物件/零件的線材" +msgid "Movement in camera space" +msgstr "沿相機視角移動物件" -msgid "Camera view - Default" -msgstr "攝影機視角 - 預設" +msgid "Middle mouse" +msgstr "" -msgid "Camera view - Top" -msgstr "攝影機視角 - 頂部" +msgid "Right mouse" +msgstr "" -msgid "Camera view - Bottom" -msgstr "攝影機視角 - 底部" +msgid "Zoom View" +msgstr "縮放視角" -msgid "Camera view - Front" -msgstr "攝影機視角 - 前面" +msgid "Painting" +msgstr "" -msgid "Camera view - Behind" -msgstr "攝影機視角 - 後面" - -msgid "Camera Angle - Left side" -msgstr "攝影機視角 - 左面" - -msgid "Camera Angle - Right side" -msgstr "攝影機視角 - 右面" - -msgid "Select all objects" -msgstr "選擇所有物件" - -msgid "Gizmo move" -msgstr "線框移動" - -msgid "Gizmo rotate" -msgstr "旋轉物件" - -msgid "Gizmo scale" -msgstr "線框縮放" - -msgid "Gizmo place face on bed" -msgstr "選擇底面" - -msgid "Gizmo cut" -msgstr "切割物件" - -msgid "Gizmo mesh boolean" -msgstr "線框網格布林運算" - -msgid "Gizmo FDM paint-on fuzzy skin" -msgstr "Gizmo FDM 塗刷絨毛表面效果" - -msgid "Gizmo SLA support points" -msgstr "SLA 支撐點" - -msgid "Gizmo FDM paint-on seam" -msgstr "FDM 塗裝接縫" - -msgid "Gizmo text emboss/engrave" -msgstr "浮雕/雕刻文字工具" - -msgid "Gizmo measure" -msgstr "測量" - -msgid "Gizmo assemble" -msgstr "組裝" - -msgid "Gizmo brim ears" -msgstr "擴邊耳工具" - -msgid "Zoom in" -msgstr "放大" - -msgid "Zoom out" -msgstr "縮小" - -msgid "Toggle printable for object/part" -msgstr "切換物件/零件的可列印屬性" - -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Tab" -msgstr "Tab" - -msgid "Switch between Prepare/Preview" -msgstr "在準備/預覽模式之中切換" - -msgid "Plater" -msgstr "準備" +msgid "Available while a painting gizmo is open: supports, seam, fuzzy skin or color painting." +msgstr "" msgid "Move: press to snap by 1mm" msgstr "移動:以 1mm 為單位步進移動" @@ -12289,14 +12199,19 @@ msgstr "支撐/顏色繪製:調整筆刷半徑" msgid "Support/Color Painting: adjust section position" msgstr "支撐/色彩繪製:調整剖面位置" -msgid "Gizmo" -msgstr "浮雕" +msgid "Objects list" +msgstr "物件清單" + +msgid "Available while the object list has focus." +msgstr "" msgid "Set extruder number for the objects and parts" msgstr "設定物件、零件使用的擠出機編號" -msgid "Delete objects, parts, modifiers" -msgstr "刪除物件、零件、修改器" +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Space" +msgstr "Space" msgid "Select the object/part and press space to change the name" msgstr "選取物件、零件,按空格可修改名稱" @@ -12307,45 +12222,48 @@ msgstr "滑鼠點選" msgid "Select the object/part and mouse click to change the name" msgstr "選取物件或零件,雙擊可修改名稱" -msgid "Objects List" -msgstr "物件清單" - -msgid "Vertical slider - Move active thumb Up" -msgstr "垂直滑動條 - 向上移動一層" - -msgid "Vertical slider - Move active thumb Down" -msgstr "垂直滑動條 - 向下移動一層" - -msgid "Horizontal slider - Move active thumb Left" -msgstr "水平滑動條 - 向左移動一步" - -msgid "Horizontal slider - Move active thumb Right" -msgstr "水平滑動條 - 向右移動一步" - -msgid "On/Off one layer mode of the vertical slider" -msgstr "開啟/關閉垂直滑動條的單層模式" - -msgid "On/Off G-code window" -msgstr "開啟/關閉 G-code 視窗" +msgid "Available while the 3D view on the Preview tab has focus." +msgstr "" msgid "Move slider 5x faster" msgstr "5 倍速移動滑動條" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "Home" -msgstr "Home" +msgid "Scroll slider 5x faster" +msgstr "" -msgid "Horizontal slider - Move to start position" -msgstr "水平滑動條 - 移動到起始位置" +msgid "Not customizable" +msgstr "" -# AI Translated -msgctxt "Keyboard Shortcut" -msgid "End" -msgstr "End" +#, c-format, boost-format +msgid "%s is assigned to %s. Reassign it to %s?" +msgstr "" -msgid "Horizontal slider - Move to last position" -msgstr "水平滑動條 - 移動到最後位置" +#, c-format, boost-format +msgid "The default %s is assigned to %s. Reassign it to %s?" +msgstr "" + +msgid "Global shortcuts also apply while typing." +msgstr "" + +msgid "A key that types a character cannot be a global shortcut." +msgstr "" + +msgid "Esc cancels, Enter confirms." +msgstr "" + +#, c-format, boost-format +msgid "" +"Press the new shortcut for\n" +"\"%s\"" +msgstr "" + +#, c-format, boost-format +msgid "Already used as a step of %s." +msgstr "" + +#, c-format, boost-format +msgid "Already assigned to %s. Press OK to reassign it." +msgstr "" msgid "Release Note" msgstr "更新說明" @@ -17167,8 +17085,8 @@ msgstr "預熱階段" msgid "Insert multiple preheat commands (e.g. M104.1). Only useful for Prusa XL. For other printers, please set it to 1." msgstr "插入多條預熱指令(例如:M104.1)。此功能僅適用於 Prusa XL。其他列印裝置請將其設為 1。" -msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." -msgstr "G-code 寫在輸出檔案的最頂部,位於任何其他內容之前。對於新增列印裝置韌體從檔案第一行讀取的中繼資料(例如估計列印時間、線材使用情況)很有用。支援 {print_time_sec} 和 {used_filament_length} 等預留位置。" +msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_total_sec}, {print_time_day}, {print_time_hour}, {print_time_minute}, {print_time_sec} and {used_filament_length}." +msgstr "" msgid "Start G-code" msgstr "起始 G-code" @@ -18691,12 +18609,36 @@ msgstr "使用的線材" msgid "Total length of filament used in the print." msgstr "列印所使用的線材總長度" -msgid "Print time (seconds)" -msgstr "列印時間(秒)" +msgid "Print time (total seconds)" +msgstr "" msgid "Total estimated print time in seconds. Replaced with actual value during post-processing." msgstr "預估列印總時間(秒)。後處理時將以實際值取代" +msgid "Print time (days component)" +msgstr "" + +msgid "Estimated print time day component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (hours component)" +msgstr "" + +msgid "Estimated print time hour component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (minutes component)" +msgstr "" + +msgid "Estimated print time minute component (normal mode). Replaced with actual value during post-processing." +msgstr "" + +msgid "Print time (seconds component)" +msgstr "" + +msgid "Estimated print time second component (normal mode). Replaced with actual value during post-processing." +msgstr "" + msgid "Filament length (meters)" msgstr "線材長度(公尺)" @@ -20532,6 +20474,9 @@ msgstr "未偵測到有效的工作階段。要繼續登入 3DPrinterOS 嗎?" msgid "Success!" msgstr "成功!" +msgid "Generate API Key" +msgstr "" + msgid "Are you sure to log out?" msgstr "確認要登出嗎?" @@ -21531,13 +21476,6 @@ msgstr "Bambu 網路外掛程式用於雲端功能、印表機探索和遠端列 msgid "Error: %s" msgstr "錯誤:%s" -msgid "Show details" -msgstr "顯示詳細資訊" - -# AI Translated -msgid "Hide details" -msgstr "隱藏詳細資料" - msgid "Version to install:" msgstr "將安裝的版本:" @@ -24168,6 +24106,12 @@ msgstr "" msgid "No binding for that field" msgstr "" +msgid "Enter a number" +msgstr "" + +msgid "Not a number" +msgstr "" + msgid "Primitive" msgstr "" @@ -24180,6 +24124,220 @@ msgstr "" msgid "Clear All" msgstr "" +msgctxt "Keyboard Shortcut" +msgid "Ins" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Home" +msgstr "Home" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "End" +msgstr "End" + +msgctxt "Keyboard Shortcut" +msgid "PgUp" +msgstr "" + +msgctxt "Keyboard Shortcut" +msgid "PgDn" +msgstr "" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Left" +msgstr "Arrow Left" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Right" +msgstr "Arrow Right" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Up" +msgstr "Arrow Up" + +# AI Translated +msgctxt "Keyboard Shortcut" +msgid "Arrow Down" +msgstr "Arrow Down" + +msgid "Import geometry data from STL/STEP/3MF/OBJ/AMF files" +msgstr "從 STL/STEP/3MF/OBJ/AMF 檔案中匯入幾何模型" + +msgid "Select all objects" +msgstr "選擇所有物件" + +msgid "Paste from clipboard" +msgstr "從剪貼簿貼上" + +msgid "Toggle printable for object/part" +msgstr "切換物件/零件的可列印屬性" + +# AI Translated +msgid "Move selection 10mm in negative X direction" +msgstr "將選取物件沿 X 軸負方向移動 10mm" + +# AI Translated +msgid "Move selection 10mm in positive X direction" +msgstr "將選取物件沿 X 軸正方向移動 10mm" + +# AI Translated +msgid "Move selection 10mm in positive Y direction" +msgstr "將選取物件沿 Y 軸正方向移動 10mm" + +# AI Translated +msgid "Move selection 10mm in negative Y direction" +msgstr "將選取物件沿 Y 軸負方向移動 10mm" + +msgid "Rotate selection 45 degrees counterclockwise" +msgstr "" + +msgid "Rotate selection 45 degrees clockwise" +msgstr "" + +msgid "Gizmo move" +msgstr "線框移動" + +msgid "Gizmo rotate" +msgstr "旋轉物件" + +msgid "Gizmo scale" +msgstr "線框縮放" + +msgid "Gizmo place face on bed" +msgstr "選擇底面" + +msgid "Gizmo cut" +msgstr "切割物件" + +msgid "Gizmo mesh boolean" +msgstr "線框網格布林運算" + +msgid "Gizmo FDM paint-on supports" +msgstr "" + +msgid "Gizmo FDM paint-on seam" +msgstr "FDM 塗裝接縫" + +msgid "Gizmo FDM paint-on fuzzy skin" +msgstr "Gizmo FDM 塗刷絨毛表面效果" + +msgid "Gizmo multi-material painting" +msgstr "" + +msgid "Gizmo text emboss/engrave" +msgstr "浮雕/雕刻文字工具" + +msgid "Gizmo measure" +msgstr "測量" + +msgid "Gizmo assemble" +msgstr "組裝" + +msgid "Gizmo brim ears" +msgstr "擴邊耳工具" + +msgid "Vertical slider - Move active thumb Up" +msgstr "垂直滑動條 - 向上移動一層" + +msgid "Vertical slider - Move active thumb Down" +msgstr "垂直滑動條 - 向下移動一層" + +msgid "Horizontal slider - Move active thumb Left" +msgstr "水平滑動條 - 向左移動一步" + +msgid "Horizontal slider - Move active thumb Right" +msgstr "水平滑動條 - 向右移動一步" + +msgid "Horizontal slider - Move to start position" +msgstr "水平滑動條 - 移動到起始位置" + +msgid "Horizontal slider - Move to last position" +msgstr "水平滑動條 - 移動到最後位置" + +msgid "Camera view - Default" +msgstr "攝影機視角 - 預設" + +msgid "Camera view - Top" +msgstr "攝影機視角 - 頂部" + +msgid "Camera view - Bottom" +msgstr "攝影機視角 - 底部" + +msgid "Camera view - Front" +msgstr "攝影機視角 - 前面" + +msgid "Camera view - Behind" +msgstr "攝影機視角 - 後面" + +msgid "Camera Angle - Left side" +msgstr "攝影機視角 - 左面" + +msgid "Camera Angle - Right side" +msgstr "攝影機視角 - 右面" + +msgid "Camera view - Current plate" +msgstr "" + +msgid "Zoom in" +msgstr "放大" + +msgid "Zoom out" +msgstr "縮小" + +msgid "Show/Hide 3Dconnexion devices settings dialog" +msgstr "顯示/隱藏 3Dconnexion 裝置的設定對話框" + +msgid "Show/Hide wireframe" +msgstr "" + +msgid "On/Off G-code window" +msgstr "開啟/關閉 G-code 視窗" + +msgid "On/Off one layer mode of the vertical slider" +msgstr "開啟/關閉垂直滑動條的單層模式" + +msgid "Switch between Prepare/Preview" +msgstr "在準備/預覽模式之中切換" + +msgid "Collapse/Expand the sidebar" +msgstr "摺疊/展開 側邊欄" + +msgid "Open the speed dial" +msgstr "" + +msgid "Reload the device page" +msgstr "" + +msgid "Show keyboard shortcuts list" +msgstr "顯示鍵盤快速鍵清單" + +msgid "Slicing and printing" +msgstr "" + +msgid "Editing" +msgstr "" + +msgid "Placement" +msgstr "" + +msgid "Gizmos" +msgstr "" + +msgid "Sliders" +msgstr "" + +msgid "Painting tools" +msgstr "" + +msgid "Application" +msgstr "" + #: resources/data/hints.ini: [hint:Precise wall] msgid "" "Precise wall\n" @@ -24501,6 +24659,62 @@ msgstr "" "避免翹曲\n" "您知道嗎?當列印容易翹曲的材料(如 ABS)時,適當提高熱床溫度可以降低翹曲的機率。" +#~ msgid "Tab" +#~ msgstr "分頁" + +#~ msgid "Displays current viewport FPS in the top-right corner." +#~ msgstr "在右上角顯示目前視埠的 FPS。" + +# AI Translated +#~ msgid "Publish 3MF Wiki" +#~ msgstr "發布 3MF Wiki" + +# AI Translated +#~ msgid "Publish 3MF Video Guide" +#~ msgstr "發布 3MF 影片指南" + +#~ msgid "Toolbar" +#~ msgstr "工具欄" + +#~ msgid "Switch table page" +#~ msgstr "切換表單頁面" + +#~ msgid "Global shortcuts" +#~ msgstr "全域快速鍵" + +#~ msgid "Middle mouse button" +#~ msgstr "滑鼠中鍵" + +#~ msgid "Auto orients selected objects or all objects. If there are selected objects, it just orients the selected ones. Otherwise, it will orient all objects in the current project." +#~ msgstr "自動旋轉選取的物件或所有物件的方向。當有物件被選取時,僅自動旋轉選取的物件。無選取的物件時,會自動旋轉專案中的所有物件。" + +#~ msgid "Auto orients all objects on the active plate." +#~ msgstr "自動旋轉目前板上所有物件的方向" + +#~ msgid "Any arrow" +#~ msgstr "任意方向鍵" + +#~ msgid "Gizmo SLA support points" +#~ msgstr "SLA 支撐點" + +#~ msgid "Plater" +#~ msgstr "準備" + +#~ msgid "Gizmo" +#~ msgstr "浮雕" + +#~ msgid "Delete objects, parts, modifiers" +#~ msgstr "刪除物件、零件、修改器" + +#~ msgid "Objects List" +#~ msgstr "物件清單" + +#~ msgid "G-code written at the very top of the output file, before any other content. Useful for adding metadata that printer firmware reads from the first lines of the file (e.g. estimated print time, filament usage). Supports placeholders like {print_time_sec} and {used_filament_length}." +#~ msgstr "G-code 寫在輸出檔案的最頂部,位於任何其他內容之前。對於新增列印裝置韌體從檔案第一行讀取的中繼資料(例如估計列印時間、線材使用情況)很有用。支援 {print_time_sec} 和 {used_filament_length} 等預留位置。" + +#~ msgid "Print time (seconds)" +#~ msgstr "列印時間(秒)" + # AI Translated #~ msgid "Open actions speed dial" #~ msgstr "開啟操作快捷選單" diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 38ef3141d6..546e40499c 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -3426,7 +3426,7 @@ void MainFrame::init_menubar_as_editor() "", nullptr, []() { return true; }, this, 1); parent_menu->AppendSeparator(); append_shortcut_item( - parent_menu, Shortcut::SpeedDial, false, _L("Open speed dial..."), "", + parent_menu, Shortcut::SpeedDial, false, _L("Open speed dial"), "", [](wxCommandEvent &) { wxGetApp().open_speed_dial(); }, "", nullptr, []() { return true; }, this); //parent_menu->Insert(1, preference_item); @@ -3454,7 +3454,7 @@ void MainFrame::init_menubar_as_editor() top_menu->AppendSeparator(); append_shortcut_item( - top_menu, Shortcut::SpeedDial, false, _L("Open speed dial..."), "", + top_menu, Shortcut::SpeedDial, false, _L("Open speed dial"), "", [](wxCommandEvent &) { wxGetApp().open_speed_dial(); }, "", nullptr, []() { return true; }, this); top_menu->AppendSeparator(); @@ -3561,7 +3561,7 @@ void MainFrame::init_menubar_as_editor() // On Mac, the Apple menu ignores non-standard custom items, so add Preset Bundle to the File menu fileMenu->AppendSeparator(); append_shortcut_item( - fileMenu, Shortcut::SpeedDial, false, _L("Open speed dial..."), "", + fileMenu, Shortcut::SpeedDial, false, _L("Open speed dial"), "", [](wxCommandEvent&) { wxGetApp().open_speed_dial(); }, "", nullptr, []() { return true; }, this); append_menu_item( From 55a0b51ae2d41ca4c52b807774a5db83d07f19bf Mon Sep 17 00:00:00 2001 From: Ryan Hartman Date: Mon, 21 Sep 2026 23:42:01 -0600 Subject: [PATCH 74/76] Add Polymaker PLA Pro filament profile (#15046) * Add Polymaker PLA Pro filament profile Polymaker PLA Pro is present in the tree only as printer-scoped variants under Snapmaker U1 and Anycubic Kobra S1, so it is invisible to every other printer. This adds it to the Orca Filament Library as OGFPM020 so it is selectable generally. Values are taken from the manufacturer's published print settings and cross-checked against the two existing vendor profiles: density 1.23 g/cm3 both existing profiles agree softening 55 C both existing profiles agree nozzle 220 C (210-230) manufacturer's stated range max volumetric speed 15 Snapmaker 15, Anycubic 16 Flow ratio is set to 0.96, matching the Snapmaker profile. Worth noting for review: the two existing profiles disagree here -- Snapmaker 0.96, Anycubic 0.85 -- because flow ratio depends on the extruder as much as the filament. Any single value in a vendor-neutral preset is a starting point users should calibrate; 0.96 is closer to the generic PLA baseline than 0.85 is. setting_id assigned by scripts/assign_vendor_setting_ids.py. OrcaFilamentLibrary version bumped 02.04.00.03 -> 02.04.00.04. * fix errors --------- Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com> Co-authored-by: SoftFever --- resources/profiles/OrcaFilamentLibrary.json | 10 +++++- .../Polymaker/Polymaker PLA Pro @System.json | 14 ++++++++ .../Polymaker/Polymaker PLA Pro @base.json | 35 +++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker PLA Pro @System.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker PLA Pro @base.json diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json index 58abbb2be0..7dada1c2f1 100644 --- a/resources/profiles/OrcaFilamentLibrary.json +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -1,6 +1,6 @@ { "name": "OrcaFilamentLibrary", - "version": "02.04.00.09", + "version": "02.04.00.10", "force_update": "0", "description": "Orca Filament Library", "filament_list": [ @@ -784,6 +784,10 @@ "name": "Polymaker HT-PLA-GF @base", "sub_path": "filament/Polymaker/Polymaker HT-PLA-GF @base.json" }, + { + "name": "Polymaker PLA Pro @base", + "sub_path": "filament/Polymaker/Polymaker PLA Pro @base.json" + }, { "name": "SUNLU PLA Marble @base", "sub_path": "filament/SUNLU/SUNLU Marble PLA @base.json" @@ -1928,6 +1932,10 @@ "name": "Polymaker HT-PLA-GF @System", "sub_path": "filament/Polymaker/Polymaker HT-PLA-GF @System.json" }, + { + "name": "Polymaker PLA Pro @System", + "sub_path": "filament/Polymaker/Polymaker PLA Pro @System.json" + }, { "name": "SUNLU PLA Marble @System", "sub_path": "filament/SUNLU/SUNLU Marble PLA @System.json" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker PLA Pro @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker PLA Pro @System.json new file mode 100644 index 0000000000..db1a73238a --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker PLA Pro @System.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Polymaker PLA Pro @System", + "inherits": "Polymaker PLA Pro @base", + "from": "system", + "setting_id": "i5Fvxdl7AAJcErsv", + "instantiation": "true", + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "15" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker PLA Pro @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker PLA Pro @base.json new file mode 100644 index 0000000000..b3878553fe --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Polymaker/Polymaker PLA Pro @base.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "name": "Polymaker PLA Pro @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "OF5oXk4M", + "instantiation": "false", + "filament_density": [ + "1.23" + ], + "filament_flow_ratio": [ + "0.96" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "filament_vendor": [ + "Polymaker" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "nozzle_temperature_range_low": [ + "210" + ], + "temperature_vitrification": [ + "55" + ] +} From b0ee2cbbef2a2234f47733075dfc3e50d1a31796 Mon Sep 17 00:00:00 2001 From: Gaston Alexis Garcia Carli <32463563+lelalexi@users.noreply.github.com> Date: Tue, 22 Sep 2026 03:15:34 -0300 Subject: [PATCH 75/76] Add PlastAR (PLA) and Printalot (ABS) filament vendors (#14825) * Add PlastAR and Printalot filament vendors Two Argentine brands from Printalot: PlastAR (budget PLA) and Printalot (ABS). Each has a tuned @base plus per-color presets covering the manufacturer's color lineup. PlastAR PLA: flow 0.98, 1.75 mm, nozzle 220 C (190-230), bed 60 C; 14 colors. Printalot ABS: flow 0.94, density 1.05, retraction 0.2 mm, max volumetric 18 mm3/s, nozzle 250 C (240-270), bed 100 C; 14 colors. Per-color presets inherit their @base (no per-color parameter changes). Passes scripts/orca_extra_profile_check.py. * Ship PlastAR and Printalot as a single Printalot filament vendor Place both Argentine lines in one OrcaFilamentLibrary/Printalot bundle and follow the library's brand shape: a non-selectable @base plus one all-printer @System per product, which is where a library preset meant for every printer belongs. The former per-color presets are dropped, leaving PlastAR PLA and Printalot ABS with their PLA and 250 C ABS material values. setting_ids are minted by the tooling; filament_ids resolve through the @base roots. --------- Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com> Co-authored-by: SoftFever --- resources/profiles/OrcaFilamentLibrary.json | 16 ++++++ .../Printalot/PlastAR PLA @System.json | 9 ++++ .../filament/Printalot/PlastAR PLA @base.json | 48 +++++++++++++++++ .../Printalot/Printalot ABS @System.json | 9 ++++ .../Printalot/Printalot ABS @base.json | 54 +++++++++++++++++++ 5 files changed, 136 insertions(+) create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Printalot/PlastAR PLA @System.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Printalot/PlastAR PLA @base.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Printalot/Printalot ABS @System.json create mode 100644 resources/profiles/OrcaFilamentLibrary/filament/Printalot/Printalot ABS @base.json diff --git a/resources/profiles/OrcaFilamentLibrary.json b/resources/profiles/OrcaFilamentLibrary.json index 7dada1c2f1..fa97f3492f 100644 --- a/resources/profiles/OrcaFilamentLibrary.json +++ b/resources/profiles/OrcaFilamentLibrary.json @@ -156,6 +156,10 @@ "name": "PolyLite ABS @base", "sub_path": "filament/Polymaker/PolyLite ABS @base.json" }, + { + "name": "Printalot ABS @base", + "sub_path": "filament/Printalot/Printalot ABS @base.json" + }, { "name": "Bambu ASA @base", "sub_path": "filament/Bambu/Bambu ASA @base.json" @@ -764,6 +768,10 @@ "name": "Panchroma PLA UV Shift @base", "sub_path": "filament/Polymaker/Panchroma PLA UV Shift @base.json" }, + { + "name": "PlastAR PLA @base", + "sub_path": "filament/Printalot/PlastAR PLA @base.json" + }, { "name": "PolyLite PLA @base", "sub_path": "filament/Polymaker/PolyLite PLA @base.json" @@ -1020,6 +1028,10 @@ "name": "PolyLite ABS @System", "sub_path": "filament/Polymaker/PolyLite ABS @System.json" }, + { + "name": "Printalot ABS @System", + "sub_path": "filament/Printalot/Printalot ABS @System.json" + }, { "name": "Bambu ASA @System", "sub_path": "filament/Bambu/Bambu ASA @System.json" @@ -1904,6 +1916,10 @@ "name": "Panchroma PLA UV Shift @System", "sub_path": "filament/Polymaker/Panchroma PLA UV Shift @System.json" }, + { + "name": "PlastAR PLA @System", + "sub_path": "filament/Printalot/PlastAR PLA @System.json" + }, { "name": "PolyLite Dual PLA @base", "sub_path": "filament/Polymaker/PolyLite Dual PLA @base.json" diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Printalot/PlastAR PLA @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Printalot/PlastAR PLA @System.json new file mode 100644 index 0000000000..3eb8940374 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Printalot/PlastAR PLA @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "PlastAR PLA @System", + "inherits": "PlastAR PLA @base", + "from": "system", + "setting_id": "BuWjJYav1gbWZacL", + "instantiation": "true", + "compatible_printers": [] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Printalot/PlastAR PLA @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Printalot/PlastAR PLA @base.json new file mode 100644 index 0000000000..6179da8788 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Printalot/PlastAR PLA @base.json @@ -0,0 +1,48 @@ +{ + "type": "filament", + "name": "PlastAR PLA @base", + "inherits": "fdm_filament_pla", + "from": "system", + "filament_id": "OFCTqYGM", + "instantiation": "false", + "filament_vendor": [ + "PlastAR" + ], + "filament_type": [ + "PLA" + ], + "filament_notes": "PlastAR PLA (Printalot budget line). Product page: https://printalot.com.ar/productos/filamentos/pla/plast-ar-pla-1-kg/ Community-contributed profile; not affiliated with or endorsed by Printalot.", + "filament_diameter": [ + "1.75" + ], + "filament_density": [ + "1.24" + ], + "filament_flow_ratio": [ + "0.98" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Printalot/Printalot ABS @System.json b/resources/profiles/OrcaFilamentLibrary/filament/Printalot/Printalot ABS @System.json new file mode 100644 index 0000000000..28dcf49bd2 --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Printalot/Printalot ABS @System.json @@ -0,0 +1,9 @@ +{ + "type": "filament", + "name": "Printalot ABS @System", + "inherits": "Printalot ABS @base", + "from": "system", + "setting_id": "yIAtpMcQarjl45T7", + "instantiation": "true", + "compatible_printers": [] +} diff --git a/resources/profiles/OrcaFilamentLibrary/filament/Printalot/Printalot ABS @base.json b/resources/profiles/OrcaFilamentLibrary/filament/Printalot/Printalot ABS @base.json new file mode 100644 index 0000000000..073dc5c47d --- /dev/null +++ b/resources/profiles/OrcaFilamentLibrary/filament/Printalot/Printalot ABS @base.json @@ -0,0 +1,54 @@ +{ + "type": "filament", + "name": "Printalot ABS @base", + "inherits": "fdm_filament_abs", + "from": "system", + "filament_id": "OFgq39c2", + "instantiation": "false", + "filament_vendor": [ + "Printalot" + ], + "filament_type": [ + "ABS" + ], + "filament_notes": "Printalot ABS. Product page: https://printalot.com.ar/productos/filamentos/abs/abs-1-kg/ Community-contributed profile; not affiliated with or endorsed by Printalot.", + "filament_diameter": [ + "1.75" + ], + "filament_density": [ + "1.05" + ], + "filament_flow_ratio": [ + "0.94" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_retraction_length": [ + "0.2" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "hot_plate_temp": [ + "100" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ] +} From 423e7b1dbdf5064031f52a2e450f80d7d3f8b679 Mon Sep 17 00:00:00 2001 From: Lam Wei Lun Date: Tue, 22 Sep 2026 14:16:48 +0800 Subject: [PATCH 76/76] Remove duplicated speed dial menu on macOS --- src/slic3r/GUI/MainFrame.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 546e40499c..ec82786432 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -3424,11 +3424,6 @@ void MainFrame::init_menubar_as_editor() wxGetApp().open_preferences(); }, "", nullptr, []() { return true; }, this, 1); - parent_menu->AppendSeparator(); - append_shortcut_item( - parent_menu, Shortcut::SpeedDial, false, _L("Open speed dial"), "", - [](wxCommandEvent &) { wxGetApp().open_speed_dial(); }, - "", nullptr, []() { return true; }, this); //parent_menu->Insert(1, preference_item); #endif // Help menu