This commit is contained in:
enricoturri1966 2020-12-01 08:33:20 +01:00
commit dc736f7855
8 changed files with 12936 additions and 13 deletions

File diff suppressed because it is too large Load Diff

View File

@ -529,6 +529,7 @@ first_layer_bed_temperature = 60
filament_cost = 23.63 filament_cost = 23.63
filament_density = 1.3 filament_density = 1.3
filament_colour = #3C4547 filament_colour = #3C4547
filament_spool_weight = 256
[filament:Real Filament PLA @CREALITY] [filament:Real Filament PLA @CREALITY]
inherits = *PLA* inherits = *PLA*
@ -562,6 +563,7 @@ first_layer_bed_temperature = 60
filament_cost = 21.99 filament_cost = 21.99
filament_density = 1.24 filament_density = 1.24
filament_colour = #125467 filament_colour = #125467
filament_spool_weight = 238
[filament:123-3D Jupiter PLA @CREALITY] [filament:123-3D Jupiter PLA @CREALITY]
inherits = *PLA* inherits = *PLA*
@ -667,7 +669,7 @@ retract_before_wipe = 70%
default_print_profile = 0.16mm OPTIMAL @CREALITY default_print_profile = 0.16mm OPTIMAL @CREALITY
default_filament_profile = Creality PLA @CREALITY default_filament_profile = Creality PLA @CREALITY
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; 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 start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; 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
end_gcode = M104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+5, max_print_height)} F600{endif} ; Move print head up\nG1 X5 Y170 F3000 ; present print\n{if layer_z < max_print_height-10}G1 Z{z_offset+min(layer_z+70, max_print_height-10)} F600{endif} ; Move print head up\nM84 X Y E ; disable motors end_gcode = {if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+2, max_print_height)} F600{endif} ; Move print head up\nG1 X5 Y170 F{travel_speed*60} ; present print\n{if layer_z < max_print_height-10}G1 Z{z_offset+min(layer_z+70, max_print_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
[printer:*fastabl*] [printer:*fastabl*]
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set extruder temp for auto bed leveling\nM140 S[first_layer_bed_temperature] ; set bed temp\nG28 ; home all\nG29 ; auto bed levelling\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[first_layer_temperature] ; set extruder temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\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 start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set extruder temp for auto bed leveling\nM140 S[first_layer_bed_temperature] ; set bed temp\nG28 ; home all\nG29 ; auto bed levelling\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[first_layer_temperature] ; set extruder temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\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
@ -676,7 +678,7 @@ start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set extruder temp for auto bed leveling\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG28 ; home all\nG29 ; auto bed levelling\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[first_layer_temperature] ; set extruder temp\nM109 S[first_layer_temperature] ; wait for extruder temp\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 start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S150 ; set extruder temp for auto bed leveling\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nG28 ; home all\nG29 ; auto bed levelling\nG1 Z50 F240\nG1 X2 Y10 F3000\nM104 S[first_layer_temperature] ; set extruder temp\nM109 S[first_layer_temperature] ; wait for extruder temp\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
[printer:*invertedz*] [printer:*invertedz*]
end_gcode = M104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+5, max_print_height)} F600{endif} ; Move print bed down\nG1 X50 Y50 F3000 ; present print\n{if layer_z < max_print_height-10}G1 Z{z_offset+max_print_height-10} F600{endif} ; Move print bed down\nM84 X Y E ; disable motors end_gcode = {if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+2, max_print_height)} F600{endif} ; Move print bed down\nG1 X50 Y50 F{travel_speed*60} ; present print\n{if layer_z < max_print_height-10}G1 Z{z_offset+max_print_height-10)} F600{endif} ; Move print bed down further down\nM140 S0 ; turn off heatbed\nM104 S0 ; turn off temperature\nM107 ; turn off fan\nM84 X Y E ; disable motors
[printer:Creality Ender-3 BLTouch] [printer:Creality Ender-3 BLTouch]
inherits = Creality Ender-3; *fastabl* inherits = Creality Ender-3; *fastabl*
@ -707,7 +709,7 @@ printer_model = ENDER2
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_ENDER2\nPRINTER_HAS_BOWDEN printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_CREALITY\nPRINTER_MODEL_ENDER2\nPRINTER_HAS_BOWDEN
max_print_height = 200 max_print_height = 200
start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 ; home all\nG1 Z2 F240\nG1 X2 Y10 F3000\nG1 Z0.28 F240\nG92 E0\nG1 X15 Y135 E15 F1500 ; intro line\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E15 F1200 ; intro line\nG92 E0 start_gcode = G90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 ; home all\nG1 Z2 F240\nG1 X2 Y10 F3000\nG1 Z0.28 F240\nG92 E0\nG1 X15 Y135 E15 F1500 ; intro line\nG1 X2.3 F5000\nG92 E0\nG1 Y10 E15 F1200 ; intro line\nG92 E0
end_gcode = M104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+5, max_print_height)} F600{endif} ; Move print head up\nG1 X5 Y140 F3000 ; present print\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)} F600{endif} ; Move print head up\nM84 X Y E ; disable motors end_gcode = {if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+2, max_print_height)} F600{endif} ; Move print head up\nG1 X5 Y140 F{travel_speed*60} ; present print\n{if layer_z < max_print_height-10}G1 Z{z_offset+min(layer_z+30, max_print_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
[printer:Creality CR-10 Mini] [printer:Creality CR-10 Mini]
inherits = Creality Ender-3 inherits = Creality Ender-3

View File

@ -360,6 +360,7 @@ namespace Slic3r {
// Otherwise, leave control to the user completely. // Otherwise, leave control to the user completely.
std::string toolchange_gcode_str; std::string toolchange_gcode_str;
const std::string& toolchange_gcode = gcodegen.config().toolchange_gcode.value; const std::string& toolchange_gcode = gcodegen.config().toolchange_gcode.value;
// m_max_layer_z = std::max(m_max_layer_z, tcr.print_z);
if (! toolchange_gcode.empty()) { if (! toolchange_gcode.empty()) {
DynamicConfig config; DynamicConfig config;
int previous_extruder_id = gcodegen.writer().extruder() ? (int)gcodegen.writer().extruder()->id() : -1; int previous_extruder_id = gcodegen.writer().extruder() ? (int)gcodegen.writer().extruder()->id() : -1;
@ -367,6 +368,7 @@ namespace Slic3r {
config.set_key_value("next_extruder", new ConfigOptionInt((int)new_extruder_id)); config.set_key_value("next_extruder", new ConfigOptionInt((int)new_extruder_id));
config.set_key_value("layer_num", new ConfigOptionInt(gcodegen.m_layer_index)); config.set_key_value("layer_num", new ConfigOptionInt(gcodegen.m_layer_index));
config.set_key_value("layer_z", new ConfigOptionFloat(tcr.print_z)); config.set_key_value("layer_z", new ConfigOptionFloat(tcr.print_z));
// config.set_key_value("max_layer_z", new ConfigOptionFloat(m_max_layer_z));
toolchange_gcode_str = gcodegen.placeholder_parser_process("toolchange_gcode", toolchange_gcode, new_extruder_id, &config); toolchange_gcode_str = gcodegen.placeholder_parser_process("toolchange_gcode", toolchange_gcode, new_extruder_id, &config);
check_add_eol(toolchange_gcode_str); check_add_eol(toolchange_gcode_str);
} }
@ -1011,11 +1013,12 @@ void GCode::_do_export(Print& print, FILE* file, ThumbnailsGeneratorCallback thu
DoExport::init_gcode_processor(print.config(), m_processor, m_silent_time_estimator_enabled); DoExport::init_gcode_processor(print.config(), m_processor, m_silent_time_estimator_enabled);
// resets analyzer's tracking data // resets analyzer's tracking data
m_last_height = 0.0f; m_last_height = 0.f;
m_last_layer_z = 0.0f; m_last_layer_z = 0.f;
m_max_layer_z = 0.f;
#if ENABLE_GCODE_VIEWER_DATA_CHECKING #if ENABLE_GCODE_VIEWER_DATA_CHECKING
m_last_mm3_per_mm = 0.0; m_last_mm3_per_mm = 0.;
m_last_width = 0.0f; m_last_width = 0.f;
#endif // ENABLE_GCODE_VIEWER_DATA_CHECKING #endif // ENABLE_GCODE_VIEWER_DATA_CHECKING
// How many times will be change_layer() called? // How many times will be change_layer() called?
@ -1376,6 +1379,7 @@ void GCode::_do_export(Print& print, FILE* file, ThumbnailsGeneratorCallback thu
DynamicConfig config; DynamicConfig config;
config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index)); config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index));
config.set_key_value("layer_z", new ConfigOptionFloat(m_writer.get_position()(2) - m_config.z_offset.value)); config.set_key_value("layer_z", new ConfigOptionFloat(m_writer.get_position()(2) - m_config.z_offset.value));
config.set_key_value("max_layer_z", new ConfigOptionFloat(m_max_layer_z));
if (print.config().single_extruder_multi_material) { if (print.config().single_extruder_multi_material) {
// Process the end_filament_gcode for the active filament only. // Process the end_filament_gcode for the active filament only.
int extruder_id = m_writer.extruder()->id(); int extruder_id = m_writer.extruder()->id();
@ -1877,6 +1881,7 @@ void GCode::process_layer(
gcode += buf; gcode += buf;
// update caches // update caches
m_last_layer_z = static_cast<float>(print_z); m_last_layer_z = static_cast<float>(print_z);
m_max_layer_z = std::max(m_max_layer_z, m_last_layer_z);
m_last_height = height; m_last_height = height;
// Set new layer - this will change Z and force a retraction if retract_layer_change is enabled. // Set new layer - this will change Z and force a retraction if retract_layer_change is enabled.
@ -1884,6 +1889,7 @@ void GCode::process_layer(
DynamicConfig config; DynamicConfig config;
config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index + 1)); config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index + 1));
config.set_key_value("layer_z", new ConfigOptionFloat(print_z)); config.set_key_value("layer_z", new ConfigOptionFloat(print_z));
config.set_key_value("max_layer_z", new ConfigOptionFloat(m_max_layer_z));
gcode += this->placeholder_parser_process("before_layer_gcode", gcode += this->placeholder_parser_process("before_layer_gcode",
print.config().before_layer_gcode.value, m_writer.extruder()->id(), &config) print.config().before_layer_gcode.value, m_writer.extruder()->id(), &config)
+ "\n"; + "\n";
@ -1897,6 +1903,7 @@ void GCode::process_layer(
gcode += this->placeholder_parser_process("layer_gcode", gcode += this->placeholder_parser_process("layer_gcode",
print.config().layer_gcode.value, m_writer.extruder()->id(), &config) print.config().layer_gcode.value, m_writer.extruder()->id(), &config)
+ "\n"; + "\n";
config.set_key_value("max_layer_z", new ConfigOptionFloat(m_max_layer_z));
} }
if (! first_layer && ! m_second_layer_things_done) { if (! first_layer && ! m_second_layer_things_done) {
@ -2898,6 +2905,7 @@ std::string GCode::set_extruder(unsigned int extruder_id, double print_z)
config.set_key_value("next_extruder", new ConfigOptionInt((int)extruder_id)); config.set_key_value("next_extruder", new ConfigOptionInt((int)extruder_id));
config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index)); config.set_key_value("layer_num", new ConfigOptionInt(m_layer_index));
config.set_key_value("layer_z", new ConfigOptionFloat(print_z)); config.set_key_value("layer_z", new ConfigOptionFloat(print_z));
config.set_key_value("max_layer_z", new ConfigOptionFloat(m_max_layer_z));
toolchange_gcode_parsed = placeholder_parser_process("toolchange_gcode", toolchange_gcode, extruder_id, &config); toolchange_gcode_parsed = placeholder_parser_process("toolchange_gcode", toolchange_gcode, extruder_id, &config);
gcode += toolchange_gcode_parsed; gcode += toolchange_gcode_parsed;
check_add_eol(gcode); check_add_eol(gcode);

View File

@ -351,6 +351,7 @@ private:
// Support for G-Code Processor // Support for G-Code Processor
float m_last_height{ 0.0f }; float m_last_height{ 0.0f };
float m_last_layer_z{ 0.0f }; float m_last_layer_z{ 0.0f };
float m_max_layer_z{ 0.0f };
#if ENABLE_GCODE_VIEWER_DATA_CHECKING #if ENABLE_GCODE_VIEWER_DATA_CHECKING
double m_last_mm3_per_mm; double m_last_mm3_per_mm;
float m_last_width{ 0.0f }; float m_last_width{ 0.0f };

View File

@ -128,8 +128,8 @@ void Field::PostInitialize()
} }
// Values of width to alignments of fields // Values of width to alignments of fields
int Field::def_width() { return wxOSX ? 8 : 7; } int Field::def_width() { return 8; }
int Field::def_width_wider() { return 14; } int Field::def_width_wider() { return 16; }
int Field::def_width_thinner() { return 4; } int Field::def_width_thinner() { return 4; }
void Field::on_kill_focus() void Field::on_kill_focus()

View File

@ -3901,11 +3901,14 @@ bool GLCanvas3D::_render_arrange_menu(float pos_x)
bool settings_changed = false; bool settings_changed = false;
if (imgui->slider_float(_L("Gap size"), &settings.distance, 0.f, 100.f)) { if (ImGui::DragFloat(_L("Gal size").ToUTF8().data(), &settings.distance, .01f, 0.0f, 100.0f, "%5.2f")) {
m_arrange_settings.distance = settings.distance; m_arrange_settings.distance = settings.distance;
settings_changed = true; settings_changed = true;
} }
if (ImGui::IsItemHovered())
ImGui::SetTooltip("%s", _L("Use CTRL+Left mouse button to enter text edit mode.\nUse SHIFT key to increase stepping.").ToUTF8().data());
if (imgui->checkbox(_L("Enable rotations (slow)"), settings.enable_rotation)) { if (imgui->checkbox(_L("Enable rotations (slow)"), settings.enable_rotation)) {
m_arrange_settings.enable_rotation = settings.enable_rotation; m_arrange_settings.enable_rotation = settings.enable_rotation;
settings_changed = true; settings_changed = true;

View File

@ -1278,6 +1278,11 @@ bool GUI_App::select_language()
wxArrayString translations = wxTranslations::Get()->GetAvailableTranslations(SLIC3R_APP_KEY); wxArrayString translations = wxTranslations::Get()->GetAvailableTranslations(SLIC3R_APP_KEY);
std::vector<const wxLanguageInfo*> language_infos; std::vector<const wxLanguageInfo*> language_infos;
language_infos.emplace_back(wxLocale::GetLanguageInfo(wxLANGUAGE_ENGLISH)); language_infos.emplace_back(wxLocale::GetLanguageInfo(wxLANGUAGE_ENGLISH));
#ifdef __linux__
// wxWidgets consider the default English locale to be en_GB, which is often missing on Linux.
// Thus we offer en_US on Linux as well.
language_infos.emplace_back(wxLocale::GetLanguageInfo(wxLANGUAGE_ENGLISH_US));
#endif // __linux__
for (size_t i = 0; i < translations.GetCount(); ++ i) { for (size_t i = 0; i < translations.GetCount(); ++ i) {
const wxLanguageInfo *langinfo = wxLocale::FindLanguageInfo(translations[i]); const wxLanguageInfo *langinfo = wxLocale::FindLanguageInfo(translations[i]);
if (langinfo != nullptr) if (langinfo != nullptr)
@ -1306,6 +1311,13 @@ bool GUI_App::select_language()
if (language_infos[i]->CanonicalName.BeforeFirst('_') == "en") if (language_infos[i]->CanonicalName.BeforeFirst('_') == "en")
// This will be the default selection if the active language does not match any dictionary. // This will be the default selection if the active language does not match any dictionary.
init_selection_default = i; init_selection_default = i;
#ifdef __linux__
// wxWidgets consider the default English locale to be en_GB, which is often missing on Linux.
// Thus we make the distintion between "en_US" and "en_GB" clear.
if (language_infos[i]->CanonicalName == "en_GB" && language_infos[i]->Description == "English")
names.Add("English (U.K.)");
else
#endif // __linux__
names.Add(language_infos[i]->Description); names.Add(language_infos[i]->Description);
} }
if (init_selection == -1) if (init_selection == -1)

View File

@ -24,6 +24,12 @@
using boost::optional; using boost::optional;
#ifdef __Linux__
#define wxLinux true
#else
#define wxLinux false
#endif
namespace Slic3r { namespace Slic3r {
namespace GUI { namespace GUI {
@ -586,7 +592,7 @@ void UnsavedChangesDialog::build(Preset::Type type, PresetCollection* dependent_
m_tree->AssociateModel(m_tree_model); m_tree->AssociateModel(m_tree_model);
m_tree_model->SetAssociatedControl(m_tree); m_tree_model->SetAssociatedControl(m_tree);
m_tree->AppendToggleColumn(L"\u2714", UnsavedChangesModel::colToggle, wxDATAVIEW_CELL_ACTIVATABLE, 6 * em);//2610,11,12 //2714 m_tree->AppendToggleColumn(L"\u2714", UnsavedChangesModel::colToggle, wxDATAVIEW_CELL_ACTIVATABLE, (wxLinux ? 8 : 6) * em);
auto append_bmp_text_column = [this](const wxString& label, unsigned model_column, int width, bool set_expander = false) auto append_bmp_text_column = [this](const wxString& label, unsigned model_column, int width, bool set_expander = false)
{ {