mirror of
				https://github.com/SoftFever/OrcaSlicer.git
				synced 2025-10-31 04:31:15 -06:00 
			
		
		
		
	Merge branch 'master-remote' 01.06.00.66
# Conflicts: # .github/workflows/build_ubuntu.yml # bbl/i18n/OrcaSlicer.pot # bbl/i18n/de/OrcaSlicer_de.po # bbl/i18n/en/OrcaSlicer_en.po # bbl/i18n/es/OrcaSlicer_es.po # bbl/i18n/fr/OrcaSlicer_fr.po # bbl/i18n/hu/OrcaSlicer_hu.po # bbl/i18n/it/OrcaSlicer_it.po # bbl/i18n/ja/OrcaSlicer_ja.po # bbl/i18n/nl/OrcaSlicer_nl.po # bbl/i18n/sv/OrcaSlicer_sv.po # bbl/i18n/zh_cn/OrcaSlicer_zh_CN.po # resources/i18n/zh_cn/BambuStudio.mo # version.inc
This commit is contained in:
		
						commit
						54c02521d4
					
				
					 10 changed files with 108 additions and 23 deletions
				
			
		|  | @ -8,6 +8,8 @@ set -x | ||||||
| docker run \ | docker run \ | ||||||
|   `# Use the hosts networking.  Printer wifi and also dbus communication` \ |   `# Use the hosts networking.  Printer wifi and also dbus communication` \ | ||||||
|   --net=host \ |   --net=host \ | ||||||
|  |   `# Some X installs will not have permissions to talk to sockets for shared memory` \ | ||||||
|  |   --ipc host \ | ||||||
|   `# Run as your workstations username to keep permissions the same` \ |   `# Run as your workstations username to keep permissions the same` \ | ||||||
|   -u $USER \ |   -u $USER \ | ||||||
|   `# Bind mount your home directory into the container for loading/saving files` \ |   `# Bind mount your home directory into the container for loading/saving files` \ | ||||||
|  |  | ||||||
|  | @ -18,6 +18,8 @@ RUN apt-get update && apt-get install  -y \ | ||||||
|     extra-cmake-modules \ |     extra-cmake-modules \ | ||||||
|     file \ |     file \ | ||||||
|     git \ |     git \ | ||||||
|  |     gstreamer1.0-plugins-bad \ | ||||||
|  |     gstreamer1.0-libav \ | ||||||
|     libcairo2-dev \ |     libcairo2-dev \ | ||||||
|     libcurl4-openssl-dev \ |     libcurl4-openssl-dev \ | ||||||
|     libdbus-1-dev \ |     libdbus-1-dev \ | ||||||
|  |  | ||||||
|  | @ -5373,10 +5373,10 @@ msgid "" | ||||||
| "by right-click the empty position of build plate and choose \"Add Primitive" | "by right-click the empty position of build plate and choose \"Add Primitive" | ||||||
| "\"->\"Timelapse Wipe Tower\"." | "\"->\"Timelapse Wipe Tower\"." | ||||||
| msgstr "" | msgstr "" | ||||||
| "Wenn Sie eine Zeitrafferaufnahme ohne Werkzeugkopf aufnehmen, wird " | "Wenn Sie einen Zeitraffer ohne Werkzeugkopf aufnehmen, wird empfohlen, einen " | ||||||
| "empfohlen, einen „Timelapse Wipe Tower“ hinzuzufügen,\n" | "\"Timelapse Wischturm\" hinzuzufügen, indem Sie mit der rechten Maustaste " | ||||||
| "indem Sie auf die leere Position der Bauplatte rechtsklicken und „Primitiv " | "auf die leere Position der Bauplatte klicken und \"Primitiv hinzufügen\"->" | ||||||
| "hinzufügen“ -> „Timelapse Wipe Tower“ auswählen." | "\"Timelapse Wischturm\" wählen." | ||||||
| 
 | 
 | ||||||
| msgid "Line width" | msgid "Line width" | ||||||
| msgstr "Breite der Linie" | msgstr "Breite der Linie" | ||||||
|  |  | ||||||
|  | @ -5084,6 +5084,10 @@ msgid "" | ||||||
| "by right-click the empty position of build plate and choose \"Add Primitive" | "by right-click the empty position of build plate and choose \"Add Primitive" | ||||||
| "\"->\"Timelapse Wipe Tower\"." | "\"->\"Timelapse Wipe Tower\"." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "When recording timelapse without toolhead, it is recommended to add a " | ||||||
|  | "\"Timelapse Wipe Tower\" \n" | ||||||
|  | "by right-click the empty position of build plate and choose \"Add Primitive" | ||||||
|  | "\"->\"Timelapse Wipe Tower\"." | ||||||
| 
 | 
 | ||||||
| msgid "Line width" | msgid "Line width" | ||||||
| msgstr "Line width" | msgstr "Line width" | ||||||
|  |  | ||||||
|  | @ -1540,8 +1540,8 @@ msgid "" | ||||||
| "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " | "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " | ||||||
| "load or unload filiament." | "load or unload filiament." | ||||||
| msgstr "" | msgstr "" | ||||||
| "Choisissez un emplacement de l’AMS puis appuyez sur le bouton \"Charger\" ou " | "Choisissez un slot AMS puis appuyez sur le bouton \"charger\" ou\"Décharger" | ||||||
| "\"Décharger\" pour charger ou décharger automatiquement le filament." | "\" pour charger ou décharger automatiquement le filament." | ||||||
| 
 | 
 | ||||||
| msgid "Edit" | msgid "Edit" | ||||||
| msgstr "Éditer" | msgstr "Éditer" | ||||||
|  | @ -5517,9 +5517,9 @@ msgid "" | ||||||
| "Bed temperature when cool plate is installed. Value 0 means the filament " | "Bed temperature when cool plate is installed. Value 0 means the filament " | ||||||
| "does not support to print on the Cool Plate" | "does not support to print on the Cool Plate" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Température du plateau lorsque le plateau Bambu Cool Plate est installé. Une " | "Il s'agit de la température du plateau lorsque le plateau froid (\"Cool plate" | ||||||
| "valeur à 0 signifie que le filament ne prend pas en charge l'impression sur " | "\") est installé. Une valeur à 0 signifie que ce filament ne peut pas être " | ||||||
| "le plateau Bambu Cool Plate" | "imprimé sur le plateau froid." | ||||||
| 
 | 
 | ||||||
| msgid "Engineering plate" | msgid "Engineering plate" | ||||||
| msgstr "Bambu Engineering Plate" | msgstr "Bambu Engineering Plate" | ||||||
|  | @ -6628,8 +6628,8 @@ msgstr "" | ||||||
| 
 | 
 | ||||||
| msgid "The prime tower is not supported in \"By object\" print." | msgid "The prime tower is not supported in \"By object\" print." | ||||||
| msgstr "" | msgstr "" | ||||||
| "La tour de purge n'est pas prise en charge avec la séquence d’impression " | "La tour de nettoyage n'est pas prise en charge dans l'impression \"Par objet" | ||||||
| "\"Par objet\"." | "\"." | ||||||
| 
 | 
 | ||||||
| msgid "" | msgid "" | ||||||
| "The prime tower is not supported when adaptive layer height is on. It " | "The prime tower is not supported when adaptive layer height is on. It " | ||||||
|  | @ -7275,8 +7275,9 @@ msgid "" | ||||||
| "Add solid infill near sloping surfaces to guarantee the vertical shell " | "Add solid infill near sloping surfaces to guarantee the vertical shell " | ||||||
| "thickness (top+bottom solid layers)" | "thickness (top+bottom solid layers)" | ||||||
| msgstr "" | msgstr "" | ||||||
| "Ajouter un remplissage solide près des surfaces en pente pour garantir " | "Ajoutez du remplissage solide à proximité des surfaces inclinées pour " | ||||||
| "l'épaisseur verticale de la coque (couches solides supérieures + inférieures)" | "garantir l'épaisseur verticale de la coque (couches solides supérieure" | ||||||
|  | "+inférieure)." | ||||||
| 
 | 
 | ||||||
| msgid "Internal bridge support thickness" | msgid "Internal bridge support thickness" | ||||||
| msgstr "Épaisseur des supports de ponts internes" | msgstr "Épaisseur des supports de ponts internes" | ||||||
|  |  | ||||||
|  | @ -5951,6 +5951,10 @@ msgid "" | ||||||
| "continue. Do you want to update now? You can also update later from 'Upgrade " | "continue. Do you want to update now? You can also update later from 'Upgrade " | ||||||
| "firmware'." | "firmware'." | ||||||
| msgstr "" | msgstr "" | ||||||
|  | "È stato rilevato un aggiornamento importante che deve essere eseguito prima " | ||||||
|  | "che la stampa possa continuare. Si desidera aggiornare ora? È possibile " | ||||||
|  | "effettuare l'aggiornamento anche in un secondo momento da \"Aggiorna firmware" | ||||||
|  | "\"." | ||||||
| 
 | 
 | ||||||
| msgid "" | msgid "" | ||||||
| "The firmware version is abnormal. Repairing and updating are required before " | "The firmware version is abnormal. Repairing and updating are required before " | ||||||
|  | @ -9845,7 +9849,43 @@ msgstr "" | ||||||
| #~ "\"Timelapse Wipe Tower\" \n" | #~ "\"Timelapse Wipe Tower\" \n" | ||||||
| #~ "by right-click the empty position of build plate and choose \"Add " | #~ "by right-click the empty position of build plate and choose \"Add " | ||||||
| #~ "Primitive\"->\"Timelapse Wipe Tower\".\n" | #~ "Primitive\"->\"Timelapse Wipe Tower\".\n" | ||||||
| #~ msgstr "\n" | #~ msgstr "" | ||||||
|  | #~ "Quando si registra un timelapse senza testa di satmpa, si consiglia di " | ||||||
|  | #~ "aggiungere un \"Timelapse Torre di pulizia\"\n" | ||||||
|  | #~ "facendo clic con il pulsante destro del mouse sulla posizione vuota del " | ||||||
|  | #~ "piatto e scegli \"Aggiungi primitiva\" ->\"Timelapse Torre di pulizia" | ||||||
|  | #~ "\"».\n" | ||||||
|  | 
 | ||||||
|  | #~ msgid "" | ||||||
|  | #~ "When sparse infill density is low, the internal solid infill or internal " | ||||||
|  | #~ "bridge may have no archor at the end of line. This cause falling and bad " | ||||||
|  | #~ "quality when printing internal solid infill. When enable this feature, " | ||||||
|  | #~ "loop paths will be added to the sparse fill of the lower layers for " | ||||||
|  | #~ "specific thickness, so that better archor can be provided for internal " | ||||||
|  | #~ "bridge. 0 means disable this feature" | ||||||
|  | #~ msgstr "" | ||||||
|  | #~ "Quando la densità riempimento è bassa, il riempimento solido interno o il " | ||||||
|  | #~ "ponte interno potrebbero non avere alcun ancoraggio alla fine della " | ||||||
|  | #~ "linea. Ciò causa cadute e cattiva qualità durante la stampa del " | ||||||
|  | #~ "riempimento solido interno. Quando si abilita questa funzione, i percorsi " | ||||||
|  | #~ "ad anello verranno aggiunti al riempimento dei layer inferiori per uno " | ||||||
|  | #~ "spessore specifico, in modo da poter fornire ancoraggi migliori per i " | ||||||
|  | #~ "ponti interni. 0 significa disabilitare questa funzione" | ||||||
|  | 
 | ||||||
|  | #~ msgid "" | ||||||
|  | #~ "When using support material for the support interface, We recommend the " | ||||||
|  | #~ "following settings:\n" | ||||||
|  | #~ "0 top z distance, 0 interface spacing, concentric pattern." | ||||||
|  | #~ msgstr "" | ||||||
|  | #~ "Quando si utilizza materiale di supporto per l'interfaccia supporto, si " | ||||||
|  | #~ "consigliano le seguenti impostazioni:\n" | ||||||
|  | #~ "0 distanza superiore, 0 distanza tra interfacce, trama concentrica." | ||||||
|  | 
 | ||||||
|  | #~ msgid "" | ||||||
|  | #~ "X1 General Settings - Network Settings in the side bar of X1 main screen" | ||||||
|  | #~ msgstr "" | ||||||
|  | #~ "Impostazioni generali X1 - Impostazioni rete nella barra laterale della " | ||||||
|  | #~ "schermata principale X1." | ||||||
| 
 | 
 | ||||||
| #~ msgid "" | #~ msgid "" | ||||||
| #~ "You have changed some preset settings. \n" | #~ "You have changed some preset settings. \n" | ||||||
|  |  | ||||||
|  | @ -8719,6 +8719,21 @@ msgstr "支撑:正在生成多边形" | ||||||
| msgid "Support: generate toolpath" | msgid "Support: generate toolpath" | ||||||
| msgstr "支撑:正在生成走线路径" | msgstr "支撑:正在生成走线路径" | ||||||
| 
 | 
 | ||||||
|  | msgid "Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension." | ||||||
|  | msgstr "未知的文件格式。输入文件的扩展名必须为.stl、.obj 或 .amf(.xml)。" | ||||||
|  | 
 | ||||||
|  | msgid "Loading of a model file failed." | ||||||
|  | msgstr "加载模型文件失败。" | ||||||
|  | 
 | ||||||
|  | msgid "The supplied file couldn't be read because it's empty" | ||||||
|  | msgstr "无法读取提供的文件,因为该文件为空。" | ||||||
|  | 
 | ||||||
|  | msgid "Unknown file format. Input file must have .3mf or .zip.amf extension." | ||||||
|  | msgstr "未知的文件格式。输入文件的扩展名必须为.3mf或.zip .amf。" | ||||||
|  | 
 | ||||||
|  | msgid "Canceled" | ||||||
|  | msgstr "已取消" | ||||||
|  | 
 | ||||||
| #, c-format, boost-format | #, c-format, boost-format | ||||||
| msgid "Support: generate polygons at layer %d" | msgid "Support: generate polygons at layer %d" | ||||||
| msgstr "支撑:正在生成层%d的多边形" | msgstr "支撑:正在生成层%d的多边形" | ||||||
|  |  | ||||||
							
								
								
									
										16
									
								
								resources/images/param_rectilinear_interlaced.svg
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								resources/images/param_rectilinear_interlaced.svg
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,16 @@ | ||||||
|  | <svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"> | ||||||
|  | <g clip-path="url(#clip0_10579_34940)"> | ||||||
|  | <path fill-rule="evenodd" clip-rule="evenodd" d="M9 1H1V9H9V1ZM1 0.5C0.723858 0.5 0.5 0.723858 0.5 1V9C0.5 9.27614 0.723858 9.5 1 9.5H9C9.27614 9.5 9.5 9.27614 9.5 9V1C9.5 0.723858 9.27614 0.5 9 0.5H1Z" fill="#262E30"/> | ||||||
|  | <path opacity="0.4" fill-rule="evenodd" clip-rule="evenodd" d="M4.75 9.5V0.5H5.25V9.5H4.75Z" fill="#262E30"/> | ||||||
|  | <path opacity="0.4" fill-rule="evenodd" clip-rule="evenodd" d="M2.5498 9.5V0.5H3.0498V9.5H2.5498Z" fill="#262E30"/> | ||||||
|  | <path opacity="0.4" fill-rule="evenodd" clip-rule="evenodd" d="M6.9502 9.5V0.5H7.4502V9.5H6.9502Z" fill="#262E30"/> | ||||||
|  | <path fill-rule="evenodd" clip-rule="evenodd" d="M0.5 4.75L9.5 4.75L9.5 5.25L0.5 5.25L0.5 4.75Z" fill="#262E30"/> | ||||||
|  | <path fill-rule="evenodd" clip-rule="evenodd" d="M0.5 2.5498L9.5 2.5498L9.5 3.0498L0.5 3.0498L0.5 2.5498Z" fill="#262E30"/> | ||||||
|  | <path fill-rule="evenodd" clip-rule="evenodd" d="M0.5 6.95019L9.5 6.9502L9.5 7.4502L0.5 7.45019L0.5 6.95019Z" fill="#262E30"/> | ||||||
|  | </g> | ||||||
|  | <defs> | ||||||
|  | <clipPath id="clip0_10579_34940"> | ||||||
|  | <rect width="10" height="10" fill="white"/> | ||||||
|  | </clipPath> | ||||||
|  | </defs> | ||||||
|  | </svg> | ||||||
| After Width: | Height: | Size: 1.2 KiB | 
|  | @ -37,6 +37,11 @@ | ||||||
| #include "MeshBoolean.hpp" | #include "MeshBoolean.hpp" | ||||||
| #include "Format/3mf.hpp" | #include "Format/3mf.hpp" | ||||||
| 
 | 
 | ||||||
|  | // Transtltion
 | ||||||
|  | #include "I18N.hpp" | ||||||
|  | 
 | ||||||
|  | #define _L(s) Slic3r::I18N::translate(s) | ||||||
|  | 
 | ||||||
| namespace Slic3r { | namespace Slic3r { | ||||||
|     // BBS initialization of static variables
 |     // BBS initialization of static variables
 | ||||||
|     std::map<size_t, ExtruderParams> Model::extruderParamsMap = { {0,{"",0,0}}}; |     std::map<size_t, ExtruderParams> Model::extruderParamsMap = { {0,{"",0,0}}}; | ||||||
|  | @ -191,7 +196,7 @@ Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* c | ||||||
|         //BBS: is_xxx is used for is_bbs_3mf when load 3mf
 |         //BBS: is_xxx is used for is_bbs_3mf when load 3mf
 | ||||||
|         result = load_bbs_3mf(input_file.c_str(), config, config_substitutions, &model, plate_data, project_presets, is_xxx, file_version, proFn, options, project, plate_id); |         result = load_bbs_3mf(input_file.c_str(), config, config_substitutions, &model, plate_data, project_presets, is_xxx, file_version, proFn, options, project, plate_id); | ||||||
|     else |     else | ||||||
|         throw Slic3r::RuntimeError("Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension."); |         throw Slic3r::RuntimeError(_L("Unknown file format. Input file must have .stl, .obj, .amf(.xml) extension.")); | ||||||
| 
 | 
 | ||||||
|     if (is_cb_cancel) { |     if (is_cb_cancel) { | ||||||
|         Model empty_model; |         Model empty_model; | ||||||
|  | @ -200,13 +205,13 @@ Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* c | ||||||
| 
 | 
 | ||||||
|     if (!result) { |     if (!result) { | ||||||
|         if (message.empty()) |         if (message.empty()) | ||||||
|             throw Slic3r::RuntimeError("Loading of a model file failed."); |             throw Slic3r::RuntimeError(_L("Loading of a model file failed.")); | ||||||
|         else |         else | ||||||
|             throw Slic3r::RuntimeError(message); |             throw Slic3r::RuntimeError(message); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (model.objects.empty()) |     if (model.objects.empty()) | ||||||
|         throw Slic3r::RuntimeError("The supplied file couldn't be read because it's empty"); |         throw Slic3r::RuntimeError(_L("The supplied file couldn't be read because it's empty")); | ||||||
| 
 | 
 | ||||||
|     for (ModelObject *o : model.objects) |     for (ModelObject *o : model.objects) | ||||||
|         o->input_file = input_file; |         o->input_file = input_file; | ||||||
|  | @ -252,14 +257,14 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig | ||||||
|     else if (boost::algorithm::iends_with(input_file, ".zip.amf")) |     else if (boost::algorithm::iends_with(input_file, ".zip.amf")) | ||||||
|         result = load_amf(input_file.c_str(), config, config_substitutions, &model, &is_bbl_3mf); |         result = load_amf(input_file.c_str(), config, config_substitutions, &model, &is_bbl_3mf); | ||||||
|     else |     else | ||||||
|         throw Slic3r::RuntimeError("Unknown file format. Input file must have .3mf or .zip.amf extension."); |         throw Slic3r::RuntimeError(_L("Unknown file format. Input file must have .3mf or .zip.amf extension.")); | ||||||
| 
 | 
 | ||||||
|     if (out_file_type != En3mfType::From_Prusa) { |     if (out_file_type != En3mfType::From_Prusa) { | ||||||
|         out_file_type = is_bbl_3mf ? En3mfType::From_BBS : En3mfType::From_Other; |         out_file_type = is_bbl_3mf ? En3mfType::From_BBS : En3mfType::From_Other; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (!result) |     if (!result) | ||||||
|         throw Slic3r::RuntimeError("Loading of a model file failed."); |         throw Slic3r::RuntimeError(_L("Loading of a model file failed.")); | ||||||
| 
 | 
 | ||||||
|     for (ModelObject *o : model.objects) { |     for (ModelObject *o : model.objects) { | ||||||
| //        if (boost::algorithm::iends_with(input_file, ".zip.amf"))
 | //        if (boost::algorithm::iends_with(input_file, ".zip.amf"))
 | ||||||
|  | @ -278,7 +283,7 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig | ||||||
|         if (proFn) { |         if (proFn) { | ||||||
|             proFn(IMPORT_STAGE_ADD_INSTANCE, 0, 1, cb_cancel); |             proFn(IMPORT_STAGE_ADD_INSTANCE, 0, 1, cb_cancel); | ||||||
|             if (cb_cancel) |             if (cb_cancel) | ||||||
|                 throw Slic3r::RuntimeError("Canceled"); |                 throw Slic3r::RuntimeError(_L("Canceled")); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -289,7 +294,7 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig | ||||||
|     if (proFn) { |     if (proFn) { | ||||||
|         proFn(IMPORT_STAGE_UPDATE_GCODE, 0, 1, cb_cancel); |         proFn(IMPORT_STAGE_UPDATE_GCODE, 0, 1, cb_cancel); | ||||||
|         if (cb_cancel) |         if (cb_cancel) | ||||||
|             throw Slic3r::RuntimeError("Canceled"); |             throw Slic3r::RuntimeError(_L("Canceled")); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     //BBS
 |     //BBS
 | ||||||
|  | @ -300,7 +305,7 @@ Model Model::read_from_archive(const std::string& input_file, DynamicPrintConfig | ||||||
|     if (proFn) { |     if (proFn) { | ||||||
|         proFn(IMPORT_STAGE_CHECK_MODE_GCODE, 0, 1, cb_cancel); |         proFn(IMPORT_STAGE_CHECK_MODE_GCODE, 0, 1, cb_cancel); | ||||||
|         if (cb_cancel) |         if (cb_cancel) | ||||||
|             throw Slic3r::RuntimeError("Canceled"); |             throw Slic3r::RuntimeError(_L("Canceled")); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     handle_legacy_sla(*config); |     handle_legacy_sla(*config); | ||||||
|  |  | ||||||
|  | @ -11,4 +11,4 @@ if(NOT DEFINED BBL_INTERNAL_TESTING) | ||||||
| set(BBL_INTERNAL_TESTING "1") | set(BBL_INTERNAL_TESTING "1") | ||||||
| endif() | endif() | ||||||
| set(SoftFever_VERSION "1.6.3-beta") | set(SoftFever_VERSION "1.6.3-beta") | ||||||
| set(SLIC3R_VERSION "01.06.00.65") | set(SLIC3R_VERSION "01.06.00.66") | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 SoftFever
						SoftFever