Merge branch 'main' into dev/gizmo

This commit is contained in:
Noisyfox 2023-11-11 16:28:17 +08:00 committed by GitHub
commit 5669b4fef0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 285 additions and 44 deletions

View File

@ -658,6 +658,10 @@ msgid ""
"Please note, application settings will be lost, but printer profiles will "
"not be affected."
msgstr ""
"Soubor konfigurace programu OrcaSlicer může být poškozen a nelze ho analyzovat.\n"
"OrcaSlicer se pokusil znovu vytvořit konfigurační soubor.\n"
"Všimněte si, že nastavení aplikace bude ztraceno, ale profily tiskárny "
"nebudou ovlivněny."
msgid "Rebuild"
msgstr "Obnovit"
@ -6202,7 +6206,7 @@ msgid "Change filament G-code"
msgstr "G-kód Změny filamentu"
msgid "Change extrusion role G-code"
msgstr ""
msgstr "Změnit G-kód pro úlohu extruze"
msgid "Pause G-code"
msgstr "G-kód Pauzy"
@ -8323,7 +8327,7 @@ msgid ""
"Filament diameter is used to calculate extrusion in gcode, so it's important "
"and should be accurate"
msgstr ""
"Průměr filamentu se používá k výpočtu vytlačování v gkódu, takže je důležitý "
"Průměr filamentu se používá k výpočtu extruze v gkódu, takže je důležitý "
"a měl by být přesný"
msgid "Shrinkage"
@ -9155,7 +9159,7 @@ msgid ""
"layer height. Too high value results in overextrusion on the surface"
msgstr ""
"Množství materiálu, které se má vytlačit během žehlení. V poměru k průtoku "
"normální výšky vrstvy. Příliš vysoká hodnota vede k nadměrnému vytlačování "
"normální výšky vrstvy. Příliš vysoká hodnota vede k nadměrné extruzi "
"na povrchu"
msgid "Ironing line spacing"
@ -9327,7 +9331,7 @@ msgstr ""
"maximální výšky vrstvy při povolení adaptivní výšky vrstvy"
msgid "Extrusion rate smoothing"
msgstr "Zjemňování extruze"
msgstr "Vyhlazení rychlosti extruze"
msgid ""
"This parameter smooths out sudden extrusion rate changes that happen when "
@ -9357,32 +9361,30 @@ msgid ""
"\n"
"Note: this parameter disables arc fitting."
msgstr ""
"Tento parametr zjemňuje náhlé změny extruzního toku, ke kterým dochází při "
"přechodu tiskárny z tisku s vysokým průtokem (vysokou rychlostí/větší "
"šířkou) extruze na tisk s nižším průtokem (nižší rychlostí/menší šířkou) "
"extruze a obráceně.\n"
"Tato hodnota vyhlazuje náhlé změny extruzní rychlosti, které nastávají, když "
"tiskárna přechází z extruze s vysokým průtokem (vysoká rychlost/větší šířka) "
"na extruzi s nižším průtokem (nižší rychlost/menší šířka) a naopak.\n"
"\n"
"Definuje maximální rychlost, jakou se může objemový průtok extrudovaný v mm3/"
"s měnit v čase. Vyšší hodnoty znamenají, že jsou povoleny vší změny "
"Definuje maximální rychlost, kterou může objemový průtok extrudovaného materiálu "
"v mm3/s měnit v čase. Vyšší hodnoty znamenají, že jsou povoleny větší změny "
"extruzní rychlosti, což vede k rychlejším přechodům rychlosti.\n"
"\n"
"Hodnota 0 tuto funkci vypíná. \n"
"Hodnota 0 funkci zakáže. \n"
"\n"
"Pro tiskárny s vysokou rychlostí a vysokým průtokem přímého pohonu (např. "
"Bambu lab nebo Voron) tato hodnota obvykle není potřebná. Avšak v některých "
"případech, kdy se rychlosti prvků velmi liší, může poskytnout marginální "
"přínos. Například při agresivním zpomalení kvůli přesahům. V těchto "
"případech se doporučuje vysoká hodnota kolem 300-350 mm3/s2, protože to "
"umožní právě dostatečné zjemnění pro pomoc předstihu tlaku (PA) k dosažení "
"plynulejšího přechodu průtoku.\n"
"Pro tiskárny s přímým pohonem a vysokou rychlostí a průtokem (např. Bambu lab "
"nebo Voron) tato hodnota obvykle není potřebná. Nicméně v některých případech, "
"kde se rychlosti funkcí výrazně liší, může poskytnout marginální přínos. "
"Například při agresivních zpomaleních způsobených přesahy. V těchto případech "
"se doporučuje vysoká hodnota kolem 300-350 mm3/s2, protože to umožňuje dostatečné "
"vyhlazení pro pomoc při dosažení plynulejšího přechodu tlaku při extruzi.\n"
"\n"
"Pro pomalejší tiskárny bez předstihu tlaku (PA) by měla být hodnota "
"nastavena mnohem nižší. Pro extrudery s přímým pohonem je dobrým výchozím "
"bodem hodnota 10-15 mm3/s2 a pro styl Bowden 5-10 mm3/s2. \n"
"Pro pomalejší tiskárny bez tlakového předstihu by měla být hodnota nastavena "
"mnohem nižší. Pro přímé pohony je hodnota 10-15 mm3/s2 dobrým výchozím bodem, "
"a pro styl Bowden 5-10 mm3/s2. \n"
"\n"
"Tato funkce je známá jako Pressure Equalizer v Prusa slicer.\n"
"Tato funkce je známa jako Pressure Equalizer v programu Prusa Slicer.\n"
"\n"
"Poznámka: Tento parametr vypíná arc fitting."
"Poznámka: Tato hodnota zakazuje obloukové přizpůsobení."
msgid "mm³/s²"
msgstr "mm³/s²"
@ -9837,7 +9839,7 @@ msgid "Random"
msgstr "Náhodný"
msgid "Staggered inner seams"
msgstr "Posunuté vnitřní švy"
msgstr "Odstupňované vnitřní švy"
msgid ""
"This option causes the inner seams to be shifted backwards based on their "
@ -9868,9 +9870,9 @@ msgid ""
"if a wipe action is executed immediately following an outer wall extrusion, "
"the speed of the outer wall extrusion will be utilized for the wipe action."
msgstr ""
"Rychlost čištění je určena rychlostí aktuální role vytlačování, např. pokud "
"je činnost čištění provedena bezprostředně po vytlačování vnější stěny, "
"rychlost vytlačování vnější stěny bude využita pro činnost čištění."
"Rychlost čištění je určena rychlostí aktuální role extruze, např. pokud "
"je činnost čištění provedena bezprostředně po extruzi vnější stěny, "
"rychlost extruze vnější stěny bude využita pro činnost čištění."
msgid "Wipe on loops"
msgstr "Čistit na smyčce"
@ -9879,7 +9881,7 @@ msgid ""
"To minimize the visibility of the seam in a closed loop extrusion, a small "
"inward movement is executed before the extruder leaves the loop."
msgstr ""
"Aby byla minimalizována viditelnost švu při vytlačování s uzavřenou smyčkou, "
"Aby byla minimalizována viditelnost švu při extruzi s uzavřenou smyčkou, "
"je proveden malý pohyb dovnitř předtím, než vytlačovací stroj opustí smyčku."
msgid "Wipe speed"
@ -10505,7 +10507,7 @@ msgstr ""
"výměny nástroje"
msgid "This gcode is inserted when the extrusion role is changed"
msgstr ""
msgstr "Tento G-kód je vložen při změně role extruze"
msgid ""
"Line width for top surfaces. If expressed as a %, it will be computed over "
@ -10558,7 +10560,7 @@ msgid ""
"Move nozzle along the last extrusion path when retracting to clean leaked "
"material on nozzle. This can minimize blob when print new part after travel"
msgstr ""
"Při zasouvání přesuňte trysku podél poslední dráhy vytlačování, abyste "
"Při retrakci přesuňte trysku podél poslední dráhy extruze, abyste "
"vyčistili uniklý materiál na trysce. To může minimalizovat skvrny při tisku "
"nového dílu po cestě"
@ -10775,9 +10777,9 @@ msgid ""
"Wipe tower is only compatible with relative mode. It is always enabled on "
"BambuLab printers. Default is checked"
msgstr ""
"Při použití volby \"label_objects\" se doporučuje relativní vytlačování. "
"Při použití volby \"label_objects\" se doporučuje relativní extruzi. "
"Některé extrudery fungují lépe, když je tato možnost odškrtnuta (režim "
"absolutního vytlačování). Čistící věž je kompatibilní pouze s relativním "
"absolutní extruze). Čistící věž je kompatibilní pouze s relativním "
"režimem. Na tiskárnách BambuLab je vždy povolen. Výchozí je zaškrtnuto"
msgid ""
@ -10808,7 +10810,7 @@ msgstr ""
"Vyjadřuje se jako procento průměru trysky"
msgid "Wall transitioning filter margin"
msgstr "Okraj filtru přechodu stěny"
msgstr "Filtr přechodového rozpětí stěny"
msgid ""
"Prevent transitioning back and forth between one extra wall and one less. "
@ -10843,7 +10845,7 @@ msgstr ""
"mezery nebo přečnívat"
msgid "Wall distribution count"
msgstr "Počet rozložení stěn"
msgstr "Počet ovlivněných stěn"
msgid ""
"The number of walls, counted from the center, over which the variation needs "

View File

@ -124,3 +124,31 @@
display: flex;
justify-content:space-around;
}
.search {
width: 100%;
position: relative;
display: flex;
}
.searchTerm {
width: 100%;
border: 3px solid #009688;
/*border-right: none;*/
padding: 5px;
height: 20px;
border-radius: 5px 5px 5px 5px;
outline: none;
color: #9DBFAF;
}
.searchTerm:focus{
color: #009688;
}
/*Resize the wrap to see the search bar change!*/
.wrap{
width: 30%;
padding-bottom: 5px;
padding-left: 42px;
}

View File

@ -40,7 +40,6 @@ function HandleStudio( pVal )
}
}
function ShowPrinterThumb(pItem, strImg)
{
$(pItem).attr('src',strImg);
@ -52,7 +51,7 @@ function HandleModelList( pVal )
if( !pVal.hasOwnProperty("model") )
return;
let pModel=pVal['model'];
pModel=pVal['model'];
let nTotal=pModel.length;
let ModelHtml={};
@ -99,7 +98,7 @@ function HandleModelList( pVal )
for(let m=0;m<NozzleArray.length;m++)
{
let nNozzel=NozzleArray[m];
HtmlNozzel+='<div class="pNozzel TextS2"><input type="checkbox" model="'+OneModel['model']+'" nozzel="'+nNozzel+'" vendor="'+strVendor+'" /><span>'+nNozzel+'</span><span class="trans" tid="t13">mm nozzle</span></div>';
HtmlNozzel += '<div class="pNozzel TextS2"><input type="checkbox" model="' + OneModel['model'] + '" nozzel="' + nNozzel + '" vendor="' + strVendor +'" onclick="CheckBoxOnclick(this)" /><span>'+nNozzel+'</span><span class="trans" tid="t13">mm nozzle</span></div>';
}
let CoverImage=OneModel['cover'];
@ -120,18 +119,20 @@ function HandleModelList( pVal )
for(let m=0;m<nTotal;m++)
{
let OneModel=pModel[m];
let SelectList=OneModel['nozzle_selected'];
if(SelectList!='')
{
SelectList=OneModel['nozzle_selected'].split(';');
let nLen=SelectList.length;
for(let a=0;a<nLen;a++)
{
{
let nNozzel=SelectList[a];
$("input[vendor='"+OneModel['vendor']+"'][model='"+OneModel['model']+"'][nozzel='"+nNozzel+"']").prop("checked", true);
}
$("input[vendor='" + OneModel['vendor'] + "'][model='" + OneModel['model'] + "'][nozzel='" + nNozzel + "']").prop("checked", true);
SetModelSelect(OneModel['vendor'], OneModel['model'], nNozzel, true);
}
}
else
{
@ -149,6 +150,155 @@ function HandleModelList( pVal )
TranslatePage();
}
function CheckBoxOnclick(obj) {
let strModel = obj.getAttribute("model");
let strVendor = obj.getAttribute("vendor");
let strNozzel = obj.getAttribute("nozzel");
SetModelSelect(strVendor, strModel, strNozzel, obj.checked);
}
function SetModelSelect(vendor, model, nozzel, checked) {
if (!ModelNozzleSelected.hasOwnProperty(vendor) && !checked) {
return;
}
if (!ModelNozzleSelected.hasOwnProperty(vendor) && checked) {
ModelNozzleSelected[vendor] = {};
}
let oVendor = ModelNozzleSelected[vendor];
if (!oVendor.hasOwnProperty(model)) {
oVendor[model] = {};
}
let oModel = oVendor[model];
if (oModel.hasOwnProperty(nozzel) || checked) {
oVendor[model][nozzel] = checked;
}
}
function GetModelSelect(vendor, model, nozzel) {
if (!ModelNozzleSelected.hasOwnProperty(vendor)) {
return false;
}
let oVendor = ModelNozzleSelected[vendor];
if (!oVendor.hasOwnProperty(model)) {
return false;
}
let oModel = oVendor[model];
if (!oModel.hasOwnProperty(nozzel)) {
return false;
}
return oVendor[model][nozzel];
}
function FilterModelList(keyword) {
//Save checkbox state
let ModelSelect = $('input[type=checkbox]');
for (let n = 0; n < ModelSelect.length; n++) {
let OneItem = ModelSelect[n];
let strModel = OneItem.getAttribute("model");
let strVendor = OneItem.getAttribute("vendor");
let strNozzel = OneItem.getAttribute("nozzel");
SetModelSelect(strVendor, strModel, strNozzel, OneItem.checked);
}
let nTotal = pModel.length;
let ModelHtml = {};
$('#Content').empty();
for (let n = 0; n < nTotal; n++) {
let OneModel = pModel[n];
let strVendor = OneModel['vendor'];
let ModelName = OneModel['model'];
if (ModelName.toLowerCase().indexOf(keyword.toLowerCase()) == -1)
continue;
//Add Vendor Html Node
if ($(".OneVendorBlock[vendor='" + strVendor + "']").length == 0) {
let sVV = strVendor;
if (sVV == "BBL")
sVV = "Bambu Lab";
if (sVV == "Custom")
sVV = "Custom Printer";
if (sVV == "Other")
sVV = "Orca colosseum";
let HtmlNewVendor = '<div class="OneVendorBlock" Vendor="' + strVendor + '">' +
'<div class="BlockBanner">' +
' <div class="BannerBtns">' +
' <div class="SmallBtn_Green trans" tid="t11" onClick="SelectPrinterAll(' + "\'" + strVendor + "\'" + ')">all</div>' +
' <div class="SmallBtn trans" tid="t12" onClick="SelectPrinterNone(' + "\'" + strVendor + "\'" + ')">none</div>' +
' </div>' +
' <a>' + sVV + '</a>' +
'</div>' +
'<div class="PrinterArea"> ' +
'</div>' +
'</div>';
$('#Content').append(HtmlNewVendor);
}
//Collect Html Node Nozzel Html
if (!ModelHtml.hasOwnProperty(strVendor))
ModelHtml[strVendor] = '';
let NozzleArray = OneModel['nozzle_diameter'].split(';');
let HtmlNozzel = '';
for (let m = 0; m < NozzleArray.length; m++) {
let nNozzel = NozzleArray[m];
HtmlNozzel += '<div class="pNozzel TextS2"><input type="checkbox" model="' + OneModel['model'] + '" nozzel="' + nNozzel + '" vendor="' + strVendor + '" onclick="CheckBoxOnclick(this)" /><span>' + nNozzel + '</span><span class="trans" tid="t13">mm nozzle</span></div>';
}
let CoverImage = OneModel['cover'];
ModelHtml[strVendor] += '<div class="PrinterBlock">' +
' <div class="PImg"><img src="' + CoverImage + '" /></div>' +
' <div class="PName">' + OneModel['model'] + '</div>' + HtmlNozzel + '</div>';
}
//Update Nozzel Html Append
for (let key in ModelHtml) {
let obj = $(".OneVendorBlock[vendor='" + key + "'] .PrinterArea");
obj.empty();
obj.append(ModelHtml[key]);
}
//Update Checkbox
ModelSelect = $('input[type=checkbox]');
for (let n = 0; n < ModelSelect.length; n++) {
let OneItem = ModelSelect[n];
let strModel = OneItem.getAttribute("model");
let strVendor = OneItem.getAttribute("vendor");
let strNozzel = OneItem.getAttribute("nozzel");
let checked = GetModelSelect(strVendor, strModel, strNozzel);
OneItem.checked = checked;
}
// let AlreadySelect=$("input:checked");
// let nSelect=AlreadySelect.length;
// if(nSelect==0)
// {
// $("input[nozzel='0.4'][vendor='Custom']").prop("checked", true);
// }
TranslatePage();
}
function SelectPrinterAll( sVendor )
{
@ -162,15 +312,54 @@ function SelectPrinterNone( sVendor )
}
//
function GotoFilamentPage()
{
let nChoose=OnExit();
let nChoose=OnExitFilter();
if(nChoose>0)
window.open('../22/index.html','_self');
}
function OnExitFilter() {
let nTotal = 0;
let ModelAll = {};
for (vendor in ModelNozzleSelected) {
for (model in ModelNozzleSelected[vendor]) {
for (nozzel in ModelNozzleSelected[vendor][model]) {
if (!ModelNozzleSelected[vendor][model][nozzel])
continue;
if (!ModelAll.hasOwnProperty(model)) {
//alert("ADD: "+strModel);
ModelAll[model] = {};
ModelAll[model]["model"] = model;
ModelAll[model]["nozzle_diameter"] = '';
ModelAll[model]["vendor"] = vendor;
}
ModelAll[model]["nozzle_diameter"] += ModelAll[model]["nozzle_diameter"] == '' ? nozzel : ';' + nozzel;
nTotal++;
}
}
}
var tSend = {};
tSend['sequence_id'] = Math.round(new Date() / 1000);
tSend['command'] = "save_userguide_models";
tSend['data'] = ModelAll;
SendWXMessage(JSON.stringify(tSend));
return nTotal;
}
//
function OnExit()
{
let ModelAll={};

View File

@ -19,6 +19,11 @@
<div id="Title">
<div class="trans" tid="t10">Printer Selection</div>
</div>
<div class="wrap">
<div class="search">
<input type="text" class="searchTerm" placeholder="Device keyword" oninput="textInput(this)">
</div>
</div>
<div id="Content" class="ZScrol">
<!--<div class="OneVendorBlock" Vendor="BBL">
@ -112,4 +117,19 @@
</body>
<script>
document.onkeydown = function (event) {
var e = event || window.event || arguments.callee.caller.arguments[0];
if (window.event) {
try { e.keyCode = 0; } catch (e) { }
e.returnValue = true;
}
};
let pModel = {};
let ModelNozzleSelected = {};
function textInput(obj) {
FilterModelList(obj.value);
}
</script>
</html>

View File

@ -41,6 +41,8 @@ protected:
std::string get_action_snapshot_name() const override { return _u8L("Paint-on seam editing"); }
static const constexpr float CursorRadiusMin = 0.05f; // cannot be zero
const float get_cursor_radius_min() const override { return CursorRadiusMin; }
private:
bool on_init() override;