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:
SoftFever 2023-05-01 10:20:38 +08:00
commit 54c02521d4
10 changed files with 108 additions and 23 deletions

View file

@ -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` \

View file

@ -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 \

View file

@ -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"

View file

@ -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"

View file

@ -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 lAMS 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 dimpression " "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"

View file

@ -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"

View file

@ -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的多边形"

View 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

View file

@ -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);

View file

@ -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")