mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-11-02 20:51:23 -07:00 
			
		
		
		
	Merge branch 'main' into dev/gizmo
This commit is contained in:
		
						commit
						5669b4fef0
					
				
					 5 changed files with 285 additions and 44 deletions
				
			
		| 
						 | 
					@ -658,6 +658,10 @@ msgid ""
 | 
				
			||||||
"Please note, application settings will be lost, but printer profiles will "
 | 
					"Please note, application settings will be lost, but printer profiles will "
 | 
				
			||||||
"not be affected."
 | 
					"not be affected."
 | 
				
			||||||
msgstr ""
 | 
					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"
 | 
					msgid "Rebuild"
 | 
				
			||||||
msgstr "Obnovit"
 | 
					msgstr "Obnovit"
 | 
				
			||||||
| 
						 | 
					@ -6202,7 +6206,7 @@ msgid "Change filament G-code"
 | 
				
			||||||
msgstr "G-kód Změny filamentu"
 | 
					msgstr "G-kód Změny filamentu"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Change extrusion role G-code"
 | 
					msgid "Change extrusion role G-code"
 | 
				
			||||||
msgstr ""
 | 
					msgstr "Změnit G-kód pro úlohu extruze"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Pause G-code"
 | 
					msgid "Pause G-code"
 | 
				
			||||||
msgstr "G-kód Pauzy"
 | 
					msgstr "G-kód Pauzy"
 | 
				
			||||||
| 
						 | 
					@ -8323,7 +8327,7 @@ msgid ""
 | 
				
			||||||
"Filament diameter is used to calculate extrusion in gcode, so it's important "
 | 
					"Filament diameter is used to calculate extrusion in gcode, so it's important "
 | 
				
			||||||
"and should be accurate"
 | 
					"and should be accurate"
 | 
				
			||||||
msgstr ""
 | 
					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ý"
 | 
					"a měl by být přesný"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Shrinkage"
 | 
					msgid "Shrinkage"
 | 
				
			||||||
| 
						 | 
					@ -9155,7 +9159,7 @@ msgid ""
 | 
				
			||||||
"layer height. Too high value results in overextrusion on the surface"
 | 
					"layer height. Too high value results in overextrusion on the surface"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Množství materiálu, které se má vytlačit během žehlení. V poměru k průtoku "
 | 
					"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"
 | 
					"na povrchu"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Ironing line spacing"
 | 
					msgid "Ironing line spacing"
 | 
				
			||||||
| 
						 | 
					@ -9327,7 +9331,7 @@ msgstr ""
 | 
				
			||||||
"maximální výšky vrstvy při povolení adaptivní výšky vrstvy"
 | 
					"maximální výšky vrstvy při povolení adaptivní výšky vrstvy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Extrusion rate smoothing"
 | 
					msgid "Extrusion rate smoothing"
 | 
				
			||||||
msgstr "Zjemňování extruze"
 | 
					msgstr "Vyhlazení rychlosti extruze"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"This parameter smooths out sudden extrusion rate changes that happen when "
 | 
					"This parameter smooths out sudden extrusion rate changes that happen when "
 | 
				
			||||||
| 
						 | 
					@ -9357,32 +9361,30 @@ msgid ""
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"Note: this parameter disables arc fitting."
 | 
					"Note: this parameter disables arc fitting."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Tento parametr zjemňuje náhlé změny extruzního toku, ke kterým dochází při "
 | 
					"Tato hodnota vyhlazuje náhlé změny extruzní rychlosti, které nastávají, když "
 | 
				
			||||||
"přechodu tiskárny z tisku s vysokým průtokem (vysokou rychlostí/větší "
 | 
					"tiskárna přechází z extruze s vysokým průtokem (vysoká rychlost/větší šířka) "
 | 
				
			||||||
"šířkou) extruze na tisk s nižším průtokem (nižší rychlostí/menší šířkou) "
 | 
					"na extruzi s nižším průtokem (nižší rychlost/menší šířka) a naopak.\n"
 | 
				
			||||||
"extruze a obráceně.\n"
 | 
					 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"Definuje maximální rychlost, jakou se může objemový průtok extrudovaný v mm3/"
 | 
					"Definuje maximální rychlost, kterou může objemový průtok extrudovaného materiálu "
 | 
				
			||||||
"s měnit v čase. Vyšší hodnoty znamenají, že jsou povoleny vyšší změny "
 | 
					"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"
 | 
					"extruzní rychlosti, což vede k rychlejším přechodům rychlosti.\n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"Hodnota 0 tuto funkci vypíná. \n"
 | 
					"Hodnota 0 funkci zakáže. \n"
 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"Pro tiskárny s vysokou rychlostí a vysokým průtokem přímého pohonu (např. "
 | 
					"Pro tiskárny s přímým pohonem a vysokou rychlostí a průtokem (např. Bambu lab "
 | 
				
			||||||
"Bambu lab nebo Voron) tato hodnota obvykle není potřebná. Avšak v některých "
 | 
					"nebo Voron) tato hodnota obvykle není potřebná. Nicméně v některých případech, "
 | 
				
			||||||
"případech, kdy se rychlosti prvků velmi liší, může poskytnout marginální "
 | 
					"kde se rychlosti funkcí výrazně liší, může poskytnout marginální přínos. "
 | 
				
			||||||
"přínos. Například při agresivním zpomalení kvůli přesahům. V těchto "
 | 
					"Například při agresivních zpomaleních způsobených přesahy. V těchto případech "
 | 
				
			||||||
"případech se doporučuje vysoká hodnota kolem 300-350 mm3/s2, protože to "
 | 
					"se doporučuje vysoká hodnota kolem 300-350 mm3/s2, protože to umožňuje dostatečné "
 | 
				
			||||||
"umožní právě dostatečné zjemnění pro pomoc předstihu tlaku (PA) k dosažení "
 | 
					"vyhlazení pro pomoc při dosažení plynulejšího přechodu tlaku při extruzi.\n"
 | 
				
			||||||
"plynulejšího přechodu průtoku.\n"
 | 
					 | 
				
			||||||
"\n"
 | 
					"\n"
 | 
				
			||||||
"Pro pomalejší tiskárny bez předstihu tlaku (PA) by měla být hodnota "
 | 
					"Pro pomalejší tiskárny bez tlakového předstihu by měla být hodnota nastavena "
 | 
				
			||||||
"nastavena mnohem nižší. Pro extrudery s přímým pohonem je dobrým výchozím "
 | 
					"mnohem nižší. Pro přímé pohony je hodnota 10-15 mm3/s2 dobrým výchozím bodem, "
 | 
				
			||||||
"bodem hodnota 10-15 mm3/s2 a pro styl Bowden 5-10 mm3/s2. \n"
 | 
					"a pro styl Bowden 5-10 mm3/s2. \n"
 | 
				
			||||||
"\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"
 | 
					"\n"
 | 
				
			||||||
"Poznámka: Tento parametr vypíná arc fitting."
 | 
					"Poznámka: Tato hodnota zakazuje obloukové přizpůsobení."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "mm³/s²"
 | 
					msgid "mm³/s²"
 | 
				
			||||||
msgstr "mm³/s²"
 | 
					msgstr "mm³/s²"
 | 
				
			||||||
| 
						 | 
					@ -9837,7 +9839,7 @@ msgid "Random"
 | 
				
			||||||
msgstr "Náhodný"
 | 
					msgstr "Náhodný"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Staggered inner seams"
 | 
					msgid "Staggered inner seams"
 | 
				
			||||||
msgstr "Posunuté vnitřní švy"
 | 
					msgstr "Odstupňované vnitřní švy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"This option causes the inner seams to be shifted backwards based on their "
 | 
					"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, "
 | 
					"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."
 | 
					"the speed of the outer wall extrusion will be utilized for the wipe action."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Rychlost čištění je určena rychlostí aktuální role vytlačování, např. pokud "
 | 
					"Rychlost čištění je určena rychlostí aktuální role extruze, např. pokud "
 | 
				
			||||||
"je činnost čištění provedena bezprostředně po vytlačování vnější stěny, "
 | 
					"je činnost čištění provedena bezprostředně po extruzi vnější stěny, "
 | 
				
			||||||
"rychlost vytlačování vnější stěny bude využita pro činnost čištění."
 | 
					"rychlost extruze vnější stěny bude využita pro činnost čištění."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Wipe on loops"
 | 
					msgid "Wipe on loops"
 | 
				
			||||||
msgstr "Čistit na smyčce"
 | 
					msgstr "Čistit na smyčce"
 | 
				
			||||||
| 
						 | 
					@ -9879,7 +9881,7 @@ msgid ""
 | 
				
			||||||
"To minimize the visibility of the seam in a closed loop extrusion, a small "
 | 
					"To minimize the visibility of the seam in a closed loop extrusion, a small "
 | 
				
			||||||
"inward movement is executed before the extruder leaves the loop."
 | 
					"inward movement is executed before the extruder leaves the loop."
 | 
				
			||||||
msgstr ""
 | 
					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."
 | 
					"je proveden malý pohyb dovnitř předtím, než vytlačovací stroj opustí smyčku."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Wipe speed"
 | 
					msgid "Wipe speed"
 | 
				
			||||||
| 
						 | 
					@ -10505,7 +10507,7 @@ msgstr ""
 | 
				
			||||||
"výměny nástroje"
 | 
					"výměny nástroje"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "This gcode is inserted when the extrusion role is changed"
 | 
					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 ""
 | 
					msgid ""
 | 
				
			||||||
"Line width for top surfaces. If expressed as a %, it will be computed over "
 | 
					"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 "
 | 
					"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"
 | 
					"material on nozzle. This can minimize blob when print new part after travel"
 | 
				
			||||||
msgstr ""
 | 
					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 "
 | 
					"vyčistili uniklý materiál na trysce. To může minimalizovat skvrny při tisku "
 | 
				
			||||||
"nového dílu po cestě"
 | 
					"nového dílu po cestě"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10775,9 +10777,9 @@ msgid ""
 | 
				
			||||||
"Wipe tower is only compatible with relative mode. It is always enabled on "
 | 
					"Wipe tower is only compatible with relative mode. It is always enabled on "
 | 
				
			||||||
"BambuLab printers. Default is checked"
 | 
					"BambuLab printers. Default is checked"
 | 
				
			||||||
msgstr ""
 | 
					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 "
 | 
					"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"
 | 
					"režimem. Na tiskárnách BambuLab je vždy povolen. Výchozí je zaškrtnuto"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
| 
						 | 
					@ -10808,7 +10810,7 @@ msgstr ""
 | 
				
			||||||
"Vyjadřuje se jako procento průměru trysky"
 | 
					"Vyjadřuje se jako procento průměru trysky"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Wall transitioning filter margin"
 | 
					msgid "Wall transitioning filter margin"
 | 
				
			||||||
msgstr "Okraj filtru přechodu stěny"
 | 
					msgstr "Filtr přechodového rozpětí stěny"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Prevent transitioning back and forth between one extra wall and one less. "
 | 
					"Prevent transitioning back and forth between one extra wall and one less. "
 | 
				
			||||||
| 
						 | 
					@ -10843,7 +10845,7 @@ msgstr ""
 | 
				
			||||||
"mezery nebo přečnívat"
 | 
					"mezery nebo přečnívat"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid "Wall distribution count"
 | 
					msgid "Wall distribution count"
 | 
				
			||||||
msgstr "Počet rozložení stěn"
 | 
					msgstr "Počet ovlivněných stěn"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"The number of walls, counted from the center, over which the variation needs "
 | 
					"The number of walls, counted from the center, over which the variation needs "
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -124,3 +124,31 @@
 | 
				
			||||||
	display: flex;
 | 
						display: flex;
 | 
				
			||||||
	justify-content:space-around;
 | 
						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;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
| 
						 | 
					@ -40,7 +40,6 @@ function HandleStudio( pVal )
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
function ShowPrinterThumb(pItem, strImg)
 | 
					function ShowPrinterThumb(pItem, strImg)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	$(pItem).attr('src',strImg);
 | 
						$(pItem).attr('src',strImg);
 | 
				
			||||||
| 
						 | 
					@ -52,7 +51,7 @@ function HandleModelList( pVal )
 | 
				
			||||||
	if( !pVal.hasOwnProperty("model") )
 | 
						if( !pVal.hasOwnProperty("model") )
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let pModel=pVal['model'];
 | 
					    pModel=pVal['model'];
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	let nTotal=pModel.length;
 | 
						let nTotal=pModel.length;
 | 
				
			||||||
	let ModelHtml={};
 | 
						let ModelHtml={};
 | 
				
			||||||
| 
						 | 
					@ -99,7 +98,7 @@ function HandleModelList( pVal )
 | 
				
			||||||
		for(let m=0;m<NozzleArray.length;m++)
 | 
							for(let m=0;m<NozzleArray.length;m++)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			let nNozzel=NozzleArray[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'];
 | 
							let CoverImage=OneModel['cover'];
 | 
				
			||||||
| 
						 | 
					@ -128,10 +127,12 @@ function HandleModelList( pVal )
 | 
				
			||||||
    		let nLen=SelectList.length;
 | 
					    		let nLen=SelectList.length;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		    for(let a=0;a<nLen;a++)
 | 
							    for(let a=0;a<nLen;a++)
 | 
				
			||||||
		    {
 | 
								{
 | 
				
			||||||
			    let nNozzel=SelectList[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
 | 
							else
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
| 
						 | 
					@ -149,6 +150,155 @@ function HandleModelList( pVal )
 | 
				
			||||||
	TranslatePage();
 | 
						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 )
 | 
					function SelectPrinterAll( sVendor )
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -162,15 +312,54 @@ function SelectPrinterNone( sVendor )
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//
 | 
					 | 
				
			||||||
function GotoFilamentPage()
 | 
					function GotoFilamentPage()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	let nChoose=OnExit();
 | 
						let nChoose=OnExitFilter();
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	if(nChoose>0)
 | 
						if(nChoose>0)
 | 
				
			||||||
		window.open('../22/index.html','_self');
 | 
							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()
 | 
					function OnExit()
 | 
				
			||||||
{	
 | 
					{	
 | 
				
			||||||
	let ModelAll={};
 | 
						let ModelAll={};
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,6 +19,11 @@
 | 
				
			||||||
<div id="Title">
 | 
					<div id="Title">
 | 
				
			||||||
	<div class="trans" tid="t10">Printer Selection</div>
 | 
						<div class="trans" tid="t10">Printer Selection</div>
 | 
				
			||||||
</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 id="Content"  class="ZScrol">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<!--<div class="OneVendorBlock" Vendor="BBL">	
 | 
					<!--<div class="OneVendorBlock" Vendor="BBL">	
 | 
				
			||||||
| 
						 | 
					@ -112,4 +117,19 @@
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
</body>
 | 
					</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>
 | 
					</html>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,6 +41,8 @@ protected:
 | 
				
			||||||
    std::string get_action_snapshot_name() const override { return _u8L("Paint-on seam editing"); }
 | 
					    std::string get_action_snapshot_name() const override { return _u8L("Paint-on seam editing"); }
 | 
				
			||||||
    static const constexpr float      CursorRadiusMin = 0.05f; // cannot be zero
 | 
					    static const constexpr float      CursorRadiusMin = 0.05f; // cannot be zero
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const float get_cursor_radius_min() const override { return CursorRadiusMin; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    bool on_init() override;
 | 
					    bool on_init() override;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue