From e4aff5b08a9e6ac4adb4c70515aa28e607a1b822 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Tue, 29 May 2018 09:07:23 +0200 Subject: [PATCH 01/14] Feedrate on the first layer of the wipe tower properly set (bugfix) --- xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp index b414186be..9cc2a3063 100644 --- a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp +++ b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp @@ -197,7 +197,7 @@ public: do { ++i; if (i==4) i=0; - extrude(corners[i]); + extrude(corners[i], f); } while (i != index_of_closest); return (*this); } From cb5f5c65b033d63fd9819929d32b155dc78d2484 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Tue, 29 May 2018 12:32:04 +0200 Subject: [PATCH 02/14] Analyzer tags for the wipe tower also generate layer height and line width (so the priming lines+brim are visible and ramming lines are correct width) --- xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp | 55 ++++++++++++--------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp index 9cc2a3063..6934b72a2 100644 --- a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp +++ b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp @@ -42,14 +42,31 @@ namespace PrusaMultiMaterial { class Writer { public: - Writer() : + Writer(float layer_height, float line_width) : m_current_pos(std::numeric_limits::max(), std::numeric_limits::max()), m_current_z(0.f), m_current_feedrate(0.f), - m_layer_height(0.f), + m_layer_height(layer_height), m_extrusion_flow(0.f), m_preview_suppressed(false), - m_elapsed_time(0.f) {} + m_elapsed_time(0.f), + m_default_analyzer_line_width(line_width) + { + // adds tag for analyzer: + char buf[64]; + sprintf(buf, ";%s%f\n", GCodeAnalyzer::Height_Tag.c_str(), m_layer_height); // don't rely on GCodeAnalyzer knowing the layer height - it knows nothing at priming + m_gcode += buf; + sprintf(buf, ";%s%d\n", GCodeAnalyzer::Extrusion_Role_Tag.c_str(), erWipeTower); + m_gcode += buf; + change_analyzer_line_width(line_width); + } + + Writer& change_analyzer_line_width(float line_width) { + // adds tag for analyzer: + char buf[64]; + sprintf(buf, ";%s%f\n", GCodeAnalyzer::Width_Tag.c_str(), line_width); + m_gcode += buf; + } Writer& set_initial_position(const WipeTower::xy &pos) { m_start_pos = WipeTower::xy(pos,0.f,m_y_shift).rotate(m_wipe_tower_pos, m_wipe_tower_width, m_wipe_tower_depth, m_angle_deg); @@ -62,9 +79,6 @@ public: Writer& set_z(float z) { m_current_z = z; return *this; } - Writer& set_layer_height(float layer_height) - { m_layer_height = layer_height; return *this; } - Writer& set_extrusion_flow(float flow) { m_extrusion_flow = flow; return *this; } @@ -80,8 +94,8 @@ public: // Suppress / resume G-code preview in Slic3r. Slic3r will have difficulty to differentiate the various // filament loading and cooling moves from normal extrusion moves. Therefore the writer // is asked to suppres output of some lines, which look like extrusions. - Writer& suppress_preview() { m_preview_suppressed = true; return *this; } - Writer& resume_preview() { m_preview_suppressed = false; return *this; } + Writer& suppress_preview() { change_analyzer_line_width(0.f); m_preview_suppressed = true; return *this; } + Writer& resume_preview() { change_analyzer_line_width(m_default_analyzer_line_width); m_preview_suppressed = false; return *this; } Writer& feedrate(float f) { @@ -126,11 +140,6 @@ public: m_extrusions.emplace_back(WipeTower::Extrusion(WipeTower::xy(rot.x, rot.y), width, m_current_tool)); } - // adds tag for analyzer - char buf[64]; - sprintf(buf, ";%s%d\n", GCodeAnalyzer::Extrusion_Role_Tag.c_str(), erWipeTower); - m_gcode += buf; - m_gcode += "G1"; if (rot.x != rotated_current_pos.x) { m_gcode += set_format_X(rot.x); // Transform current position back to wipe tower coordinates (was updated by set_format_X) @@ -390,6 +399,7 @@ private: float m_wipe_tower_depth = 0.f; float m_last_fan_speed = 0.f; int current_temp = -1; + const float m_default_analyzer_line_width; std::string set_format_X(float x) @@ -479,10 +489,9 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::prime( const float prime_section_width = std::min(240.f / tools.size(), 60.f); box_coordinates cleaning_box(xy(5.f, 0.f), prime_section_width, 100.f); - PrusaMultiMaterial::Writer writer; + PrusaMultiMaterial::Writer writer(m_layer_height, m_perimeter_width); writer.set_extrusion_flow(m_extrusion_flow) .set_z(m_z_pos) - .set_layer_height(m_layer_height) .set_initial_tool(m_current_tool) .append(";--------------------\n" "; CP PRIMING START\n") @@ -568,10 +577,9 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::tool_change(unsigned int tool, boo (tool != (unsigned int)(-1) ? /*m_layer_info->depth*/wipe_area+m_depth_traversed-0.5*m_perimeter_width : m_wipe_tower_depth-m_perimeter_width)); - PrusaMultiMaterial::Writer writer; + PrusaMultiMaterial::Writer writer(m_layer_height, m_perimeter_width); writer.set_extrusion_flow(m_extrusion_flow) .set_z(m_z_pos) - .set_layer_height(m_layer_height) .set_initial_tool(m_current_tool) .set_rotation(m_wipe_tower_pos, m_wipe_tower_width, m_wipe_tower_depth, m_wipe_tower_rotation_angle) .set_y_shift(m_y_shift + (tool!=(unsigned int)(-1) && (m_current_shape == SHAPE_REVERSED && !m_peters_wipe_tower) ? m_layer_info->depth - m_layer_info->toolchanges_depth(): 0.f)) @@ -640,10 +648,9 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::toolchange_Brim(bool sideOnly, flo m_wipe_tower_width, m_wipe_tower_depth); - PrusaMultiMaterial::Writer writer; + PrusaMultiMaterial::Writer writer(m_layer_height, m_perimeter_width); writer.set_extrusion_flow(m_extrusion_flow * 1.1f) .set_z(m_z_pos) // Let the writer know the current Z position as a base for Z-hop. - .set_layer_height(m_layer_height) .set_initial_tool(m_current_tool) .set_rotation(m_wipe_tower_pos, m_wipe_tower_width, m_wipe_tower_depth, m_wipe_tower_rotation_angle) .append(";-------------------------------------\n" @@ -697,11 +704,12 @@ void WipeTowerPrusaMM::toolchange_Unload( float xl = cleaning_box.ld.x + 1.f * m_perimeter_width; float xr = cleaning_box.rd.x - 1.f * m_perimeter_width; - writer.append("; CP TOOLCHANGE UNLOAD\n"); - const float line_width = m_perimeter_width * m_filpar[m_current_tool].ramming_line_width_multiplicator; // desired ramming line thickness const float y_step = line_width * m_filpar[m_current_tool].ramming_step_multiplicator * m_extra_spacing; // spacing between lines in mm + writer.append("; CP TOOLCHANGE UNLOAD\n") + .change_analyzer_line_width(line_width); + unsigned i = 0; // iterates through ramming_speed m_left_to_right = true; // current direction of ramming float remaining = xr - xl ; // keeps track of distance to the next turnaround @@ -775,12 +783,14 @@ void WipeTowerPrusaMM::toolchange_Unload( } } WipeTower::xy end_of_ramming(writer.x(),writer.y()); + writer.change_analyzer_line_width(m_perimeter_width); // so the next lines are not affected by ramming_line_width_multiplier // Pull the filament end to the BEGINNING of the cooling tube while still moving the print head float oldx = writer.x(); float turning_point = (!m_left_to_right ? std::max(xl,oldx-15.f) : std::min(xr,oldx+15.f) ); // so it's not too far float xdist = std::abs(oldx-turning_point); float edist = -(m_cooling_tube_retraction+m_cooling_tube_length/2.f-42); + writer.suppress_preview() .load_move_x(turning_point,-15 , 60.f * std::hypot(xdist,15)/15 * 83 ) // fixed speed after ramming .load_move_x(oldx ,edist , 60.f * std::hypot(xdist,edist)/std::abs(edist) * m_filpar[m_current_tool].unloading_speed ) @@ -959,10 +969,9 @@ WipeTower::ToolChangeResult WipeTowerPrusaMM::finish_layer() // Otherwise the caller would likely travel to the wipe tower in vain. assert(! this->layer_finished()); - PrusaMultiMaterial::Writer writer; + PrusaMultiMaterial::Writer writer(m_layer_height, m_perimeter_width); writer.set_extrusion_flow(m_extrusion_flow) .set_z(m_z_pos) - .set_layer_height(m_layer_height) .set_initial_tool(m_current_tool) .set_rotation(m_wipe_tower_pos, m_wipe_tower_width, m_wipe_tower_depth, m_wipe_tower_rotation_angle) .set_y_shift(m_y_shift - (m_current_shape == SHAPE_REVERSED && !m_peters_wipe_tower ? m_layer_info->toolchanges_depth() : 0.f)) From b95a6f2626c153027230bcd216840404b9991c4c Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Tue, 29 May 2018 15:29:20 +0200 Subject: [PATCH 03/14] Fix of previous commit --- xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp index 6934b72a2..399f310da 100644 --- a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp +++ b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp @@ -66,6 +66,7 @@ public: char buf[64]; sprintf(buf, ";%s%f\n", GCodeAnalyzer::Width_Tag.c_str(), line_width); m_gcode += buf; + return *this; } Writer& set_initial_position(const WipeTower::xy &pos) { From db22b2f50413f576745a6bc392c776179661ae05 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Wed, 30 May 2018 11:02:00 +0200 Subject: [PATCH 04/14] Bugfix: first color of the wipe tower preview was incorrect with some models --- xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp | 11 ++++++++--- xs/src/libslic3r/GCode/WipeTowerPrusaMM.hpp | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp index 399f310da..6486f2917 100644 --- a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp +++ b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.cpp @@ -1147,7 +1147,8 @@ void WipeTowerPrusaMM::save_on_last_wipe() // Resulting ToolChangeResults are appended into vector "result" void WipeTowerPrusaMM::generate(std::vector> &result) { - if (m_plan.empty()) return; + if (m_plan.empty()) + return; m_extra_spacing = 1.f; @@ -1161,8 +1162,9 @@ void WipeTowerPrusaMM::generate(std::vector layer_result; + std::vector layer_result; for (auto layer : m_plan) { set_layer(layer.z,layer.height,0,layer.z == m_plan.front().z,layer.z == m_plan.back().z); @@ -1176,8 +1178,11 @@ void WipeTowerPrusaMM::generate(std::vectordepth < m_wipe_tower_depth - m_perimeter_width) m_y_shift = (m_wipe_tower_depth-m_layer_info->depth-m_perimeter_width)/2.f; - for (const auto &toolchange : layer.tool_changes) + for (const auto &toolchange : layer.tool_changes) { + if (m_current_tool == (unsigned int)(-2)) + m_current_tool = toolchange.old_tool; layer_result.emplace_back(tool_change(toolchange.new_tool, false)); + } if (! layer_finished()) { auto finish_layer_toolchange = finish_layer(); diff --git a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.hpp b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.hpp index c83c79a04..b7c721128 100644 --- a/xs/src/libslic3r/GCode/WipeTowerPrusaMM.hpp +++ b/xs/src/libslic3r/GCode/WipeTowerPrusaMM.hpp @@ -229,7 +229,7 @@ private: bool m_print_brim = true; // A fill-in direction (positive Y, negative Y) alternates with each layer. wipe_shape m_current_shape = SHAPE_NORMAL; - unsigned int m_current_tool = 0; + unsigned int m_current_tool; std::vector> wipe_volumes; float m_depth_traversed = 0.f; // Current y position at the wipe tower. From 4df0b94b7949c05d372bee215655521b51361eca Mon Sep 17 00:00:00 2001 From: Vojtech Kral Date: Mon, 4 Jun 2018 09:07:29 +0200 Subject: [PATCH 05/14] Beta bugfixes (#931) * Fix: Function signature in avrdude * Fix: Remove mockup vendor bundles * Fix: Make ConfigWizard error handling more friendly * Fix: Opening the datadir in AppImage-based Slic3r --- resources/profiles/BarBaz.ini | 985 ----------------------------- resources/profiles/Foobar.ini | 985 ----------------------------- xs/src/avrdude/main.c | 2 +- xs/src/slic3r/GUI/ConfigWizard.cpp | 23 +- xs/src/slic3r/GUI/GUI.cpp | 72 ++- xs/xsp/GUI.xsp | 6 +- 6 files changed, 66 insertions(+), 2007 deletions(-) delete mode 100644 resources/profiles/BarBaz.ini delete mode 100644 resources/profiles/Foobar.ini diff --git a/resources/profiles/BarBaz.ini b/resources/profiles/BarBaz.ini deleted file mode 100644 index ed2686cdc..000000000 --- a/resources/profiles/BarBaz.ini +++ /dev/null @@ -1,985 +0,0 @@ -# Print profiles for the BarBaz Research printers. - -[vendor] -# Vendor name will be shown by the Config Wizard. -name = Bar Baz -# Configuration version of this file. Config file will only be installed, if the config_version differs. -# This means, the server may force the Slic3r configuration to be downgraded. -config_version = 0.1.0 -# Where to get the updates from? -config_update_url = https://example.com - -# The printer models will be shown by the Configuration Wizard in this order, -# also the first model installed & the first nozzle installed will be activated after install. -#TODO: One day we may differentiate variants of the nozzles / hot ends, -#for example by the melt zone size, or whether the nozzle is hardened. -[printer_model:M1] -name = Bar Baz Model 1 -variants = 0.4; 0.25; 0.6 - -[printer_model:M2] -name = Bar Baz Model 2 -variants = 0.4; 0.25; 0.6 - -[printer_model:M3] -# Printer model name will be shown by the installation wizard. -name = Bar Baz Model 3 -variants = 0.4; 0.6 - -# All presets starting with asterisk, for example *common*, are intermediate and they will -# not make it into the user interface. - -# Common print preset, mostly derived from MK2 single material with a 0.4mm nozzle. -# All other print presets will derive from the *common* print preset. -[print:*common*] -avoid_crossing_perimeters = 0 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeters_first = 0 -external_perimeter_extrusion_width = 0.45 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -interface_shells = 0 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -overhangs = 0 -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -perimeters = 2 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirts = 1 -skirt_distance = 2 -skirt_height = 3 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_extruder = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_enforce_layers = 0 -support_material_contact_distance = 0.15 -support_material_interface_contact_loops = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 40 -travel_speed = 180 -wipe_tower = 0 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -# Print parameters common to a 0.25mm diameter nozzle. -[print:*0.25nozzle*] -external_perimeter_extrusion_width = 0.25 -extrusion_width = 0.25 -first_layer_extrusion_width = 0.25 -infill_extrusion_width = 0.25 -perimeter_extrusion_width = 0.25 -solid_infill_extrusion_width = 0.25 -top_infill_extrusion_width = 0.25 -support_material_extrusion_width = 0.18 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_spacing = 1 -support_material_xy_spacing = 150% - -# Print parameters common to a 0.6mm diameter nozzle. -[print:*0.6nozzle*] -external_perimeter_extrusion_width = 0.61 -extrusion_width = 0.67 -first_layer_extrusion_width = 0.65 -infill_extrusion_width = 0.7 -perimeter_extrusion_width = 0.65 -solid_infill_extrusion_width = 0.65 -top_infill_extrusion_width = 0.6 - -[print:*soluble_support*] -overhangs = 1 -skirts = 0 -support_material = 1 -support_material_contact_distance = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.45 -support_material_interface_extruder = 4 -support_material_interface_spacing = 0.1 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 1 -wipe_tower = 1 - -[print:*0.05mm*] -inherits = *common* -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_flow_ratio = 0.7 -default_acceleration = 500 -external_perimeter_speed = 20 -fill_density = 20% -first_layer_acceleration = 500 -gap_fill_speed = 20 -infill_acceleration = 800 -infill_speed = 30 -max_print_speed = 80 -small_perimeter_speed = 15 -solid_infill_speed = 30 -support_material_extrusion_width = 0.3 -support_material_spacing = 1.5 -layer_height = 0.05 -perimeter_acceleration = 300 -perimeter_speed = 30 -perimeters = 3 -support_material_speed = 30 -top_solid_infill_speed = 20 -top_solid_layers = 15 - -[print:0.05mm ULTRADETAIL] -inherits = *0.05mm* -infill_extrusion_width = 0.5 - -[print:0.05mm ULTRADETAIL MK3] -inherits = *0.05mm* -fill_pattern = grid -top_infill_extrusion_width = 0.4 - -[print:0.05mm ULTRADETAIL 0.25 nozzle] -inherits = *0.05mm* -external_perimeter_extrusion_width = 0 -extrusion_width = 0.28 -fill_density = 20% -first_layer_extrusion_width = 0.3 -infill_extrusion_width = 0 -infill_speed = 20 -max_print_speed = 100 -perimeter_extrusion_width = 0 -perimeter_speed = 20 -small_perimeter_speed = 10 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -support_material_speed = 20 -top_infill_extrusion_width = 0 - -[print:0.05mm ULTRADETAIL 0.25 nozzle MK3] -inherits = *0.05mm*; *0.25nozzle* -fill_pattern = grid -top_infill_extrusion_width = 0.4 - -[print:*0.10mm*] -inherits = *common* -bottom_solid_layers = 7 -bridge_flow_ratio = 0.7 -layer_height = 0.1 -perimeter_acceleration = 800 -top_solid_layers = 9 - -[print:0.10mm DETAIL] -inherits = *0.10mm* -external_perimeter_speed = 40 -infill_acceleration = 2000 -infill_speed = 60 -perimeter_speed = 50 -solid_infill_speed = 50 - -[print:0.10mm DETAIL MK3] -inherits = *0.10mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 200 -perimeter_speed = 45 -solid_infill_speed = 170 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 - -[print:0.10mm DETAIL 0.25 nozzle] -inherits = *0.10mm* -bridge_acceleration = 600 -external_perimeter_speed = 20 -infill_acceleration = 1600 -infill_speed = 40 -perimeter_acceleration = 600 -perimeter_speed = 25 -small_perimeter_speed = 10 -solid_infill_speed = 40 -top_solid_infill_speed = 30 - -[print:0.10mm DETAIL 0.25 nozzle MK3] -inherits = *0.10mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 200 -perimeter_speed = 45 -solid_infill_speed = 170 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 - -[print:0.10mm DETAIL 0.6 nozzle MK3] -inherits = *0.10mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 200 -perimeter_speed = 45 -solid_infill_speed = 170 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 - -[print:*0.15mm*] -inherits = *common* -bottom_solid_layers = 5 -external_perimeter_speed = 40 -infill_acceleration = 2000 -infill_speed = 60 -layer_height = 0.15 -perimeter_acceleration = 800 -perimeter_speed = 50 -solid_infill_speed = 50 -top_infill_extrusion_width = 0.4 -top_solid_layers = 7 - -[print:0.15mm 100mms Linear Advance] -inherits = *0.15mm* -bridge_flow_ratio = 0.95 -external_perimeter_speed = 50 -infill_speed = 100 -max_print_speed = 150 -perimeter_speed = 60 -small_perimeter_speed = 30 -solid_infill_speed = 100 -support_material_speed = 60 -top_solid_infill_speed = 70 - -[print:0.15mm OPTIMAL] -inherits = *0.15mm* -top_infill_extrusion_width = 0.45 - -[print:0.15mm OPTIMAL 0.25 nozzle] -inherits = *0.15mm*; *0.25nozzle* -bridge_acceleration = 600 -bridge_flow_ratio = 0.7 -external_perimeter_speed = 20 -infill_acceleration = 1600 -infill_speed = 40 -perimeter_acceleration = 600 -perimeter_speed = 25 -small_perimeter_speed = 10 -solid_infill_speed = 40 -support_material_extrusion_width = 0.2 -top_solid_infill_speed = 30 - -[print:0.15mm OPTIMAL 0.6 nozzle] -inherits = *0.15mm*; *0.6nozzle* - -[print:0.15mm OPTIMAL MK3] -inherits = *0.15mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 - -[print:0.15mm OPTIMAL SOLUBLE FULL] -inherits = *0.15mm*; *soluble_support* -external_perimeter_speed = 25 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -perimeter_speed = 40 -solid_infill_speed = 40 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 30 -wipe_tower = 1 - -[print:0.15mm OPTIMAL SOLUBLE INTERFACE] -inherits = 0.15mm OPTIMAL SOLUBLE FULL -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -support_material_extruder = 0 -support_material_interface_layers = 3 -support_material_with_sheath = 0 -support_material_xy_spacing = 80% - -[print:0.15mm OPTIMAL 0.25 nozzle MK3] -inherits = *0.15mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 -[print:*0.20mm*] -inherits = *common* -bottom_solid_layers = 4 -bridge_flow_ratio = 0.95 -external_perimeter_speed = 40 -infill_acceleration = 2000 -infill_speed = 60 -layer_height = 0.2 -perimeter_acceleration = 800 -perimeter_speed = 50 -solid_infill_speed = 50 -top_infill_extrusion_width = 0.4 -top_solid_layers = 5 - -[print:0.15mm OPTIMAL 0.6 nozzle MK3] -inherits = *0.15mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 - -[print:0.20mm 100mms Linear Advance] -inherits = *0.20mm* -external_perimeter_speed = 50 -infill_speed = 100 -max_print_speed = 150 -perimeter_speed = 60 -small_perimeter_speed = 30 -solid_infill_speed = 100 -support_material_speed = 60 -top_solid_infill_speed = 70 - -[print:0.20mm FAST MK3] -inherits = *0.20mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 - -[print:0.20mm NORMAL] -inherits = *0.20mm* - -[print:0.20mm NORMAL 0.6 nozzle] -inherits = *0.20mm*; *0.6nozzle* - -[print:0.20mm NORMAL SOLUBLE FULL] -inherits = *0.20mm*; *soluble_support* -external_perimeter_speed = 30 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -perimeter_speed = 40 -solid_infill_speed = 40 -top_solid_infill_speed = 30 - -[print:0.20mm NORMAL SOLUBLE INTERFACE] -inherits = 0.20mm NORMAL SOLUBLE FULL -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -support_material_extruder = 0 -support_material_interface_layers = 3 -support_material_with_sheath = 0 -support_material_xy_spacing = 80% - -[print:0.20mm FAST 0.6 nozzle MK3] -inherits = *0.20mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 - -[print:*0.35mm*] -inherits = *common* -bottom_solid_layers = 3 -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 40 -first_layer_extrusion_width = 0.75 -infill_acceleration = 2000 -infill_speed = 60 -layer_height = 0.35 -perimeter_acceleration = 800 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -top_solid_infill_speed = 50 -top_solid_layers = 4 - -[print:0.35mm FAST] -inherits = *0.35mm* -bridge_flow_ratio = 0.95 -first_layer_extrusion_width = 0.42 -perimeter_extrusion_width = 0.43 -solid_infill_extrusion_width = 0.7 -top_infill_extrusion_width = 0.43 - -[print:0.35mm FAST 0.6 nozzle] -inherits = *0.35mm*; *0.6nozzle* - -[print:0.35mm FAST sol full 0.6 nozzle] -inherits = *0.35mm*; *0.6nozzle*; *soluble_support* -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 30 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -perimeter_speed = 40 -support_material_extrusion_width = 0.55 -support_material_interface_layers = 3 -support_material_xy_spacing = 120% -top_infill_extrusion_width = 0.57 - -[print:0.35mm FAST sol int 0.6 nozzle] -inherits = 0.35mm FAST sol full 0.6 nozzle -support_material_extruder = 0 -support_material_interface_layers = 2 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% - -[filament:*common*] -cooling = 1 -compatible_printers = -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" - -[filament:*PLA*] -inherits = *common* -bed_temperature = 60 -bridge_fan_speed = 100 -disable_fan_first_layers = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_max_volumetric_speed = 15 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -temperature = 210 - -[filament:*PET*] -inherits = *common* -bed_temperature = 90 -bridge_fan_speed = 50 -disable_fan_first_layers = 3 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_max_volumetric_speed = 8 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:*ABS*] -inherits = *common* -bed_temperature = 110 -bridge_fan_speed = 30 -cooling = 0 -disable_fan_first_layers = 3 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_max_volumetric_speed = 11 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 255 -max_fan_speed = 30 -min_fan_speed = 20 -temperature = 255 - -[filament:*FLEX*] -inherits = *common* -bridge_fan_speed = 100 -cooling = 0 -disable_fan_first_layers = 1 -extrusion_multiplier = 1.2 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #00CA0A -filament_max_volumetric_speed = 1.5 -filament_type = FLEX -first_layer_bed_temperature = 50 -first_layer_temperature = 240 -max_fan_speed = 90 -min_fan_speed = 70 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 240 - -[filament:ColorFabb Brass Bronze] -inherits = *PLA* -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 10 - -[filament:ColorFabb HT] -inherits = *PET* -bed_temperature = 110 -bridge_fan_speed = 30 -cooling = 1 -disable_fan_first_layers = 3 -fan_always_on = 0 -fan_below_layer_time = 10 -first_layer_bed_temperature = 105 -first_layer_temperature = 270 -max_fan_speed = 20 -min_fan_speed = 10 -min_print_speed = 5 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 270 - -[filament:ColorFabb PLA-PHA] -inherits = *PLA* - -[filament:ColorFabb Woodfil] -inherits = *PLA* -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 10 -first_layer_temperature = 200 -min_print_speed = 5 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 200 - -[filament:ColorFabb XT] -inherits = *PET* -filament_type = PLA -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -temperature = 270 - -[filament:ColorFabb XT-CF20] -inherits = *PET* -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 1 -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 260 - -[filament:ColorFabb nGen] -inherits = *PET* -bridge_fan_speed = 40 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_type = NGEN -first_layer_temperature = 240 -max_fan_speed = 35 -min_fan_speed = 20 - -[filament:ColorFabb nGen flex] -inherits = *FLEX* -bed_temperature = 85 -bridge_fan_speed = 40 -cooling = 1 -disable_fan_first_layers = 3 -extrusion_multiplier = 1 -fan_below_layer_time = 10 -filament_max_volumetric_speed = 5 -first_layer_bed_temperature = 85 -first_layer_temperature = 260 -max_fan_speed = 35 -min_fan_speed = 20 -temperature = 260 - -[filament:E3D Edge] -inherits = *PET* -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" - -[filament:E3D PC-ABS] -inherits = *ABS* -first_layer_temperature = 270 -temperature = 270 - -[filament:Fillamentum ABS] -inherits = *ABS* -first_layer_temperature = 240 -temperature = 240 - -[filament:Fillamentum ASA] -inherits = *ABS* -fan_always_on = 1 -first_layer_temperature = 265 -temperature = 265 - -[filament:Fillamentum CPE HG100 HM100] -inherits = *PET* -filament_notes = "CPE HG100 , CPE HM100" -first_layer_bed_temperature = 90 -first_layer_temperature = 275 -max_fan_speed = 50 -min_fan_speed = 50 -temperature = 275 - -[filament:Fillamentum Timberfil] -inherits = *PLA* -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 10 -first_layer_temperature = 190 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 190 - -[filament:Generic ABS] -inherits = *ABS* -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" - -[filament:Generic PET] -inherits = *PET* -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" - -[filament:Generic PLA] -inherits = *PLA* -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" - -[filament:Polymaker PC-Max] -inherits = *ABS* -bed_temperature = 115 -filament_colour = #3A80CA -first_layer_bed_temperature = 100 -first_layer_temperature = 270 -temperature = 270 - -[filament:Primavalue PVA] -inherits = *PLA* -cooling = 0 -fan_always_on = 0 -filament_colour = #FFFFD7 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PVA print settings for MK2:\n\nPrimaSelect PVA+\nICE FILAMENTS PVA 'NAUGHTY NATURAL'\nVerbatim BVOH" -filament_soluble = 1 -filament_type = PVA -first_layer_temperature = 195 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 195 - -[filament:BarBaz ABS] -inherits = *ABS* -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" - -[filament:BarBaz HIPS] -inherits = *ABS* -bridge_fan_speed = 50 -cooling = 1 -extrusion_multiplier = 0.9 -fan_always_on = 1 -fan_below_layer_time = 10 -filament_colour = #FFFFD7 -filament_soluble = 1 -filament_type = HIPS -first_layer_temperature = 220 -max_fan_speed = 20 -min_fan_speed = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[filament:BarBaz PET] -inherits = *PET* -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" - -[filament:BarBaz PLA] -inherits = *PLA* -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" - -[filament:SemiFlex or Flexfill 98A] -inherits = *FLEX* - -[filament:Taulman Bridge] -inherits = *common* -bed_temperature = 90 -bridge_fan_speed = 40 -cooling = 0 -disable_fan_first_layers = 3 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #DEE0E6 -filament_max_volumetric_speed = 10 -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 60 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -min_print_speed = 5 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 250 - -[filament:Taulman T-Glase] -inherits = *PET* -bridge_fan_speed = 40 -cooling = 0 -fan_always_on = 0 -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" - -[filament:Verbatim BVOH] -inherits = *common* -bed_temperature = 60 -bridge_fan_speed = 100 -cooling = 0 -disable_fan_first_layers = 1 -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #FFFFD7 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_soluble = 1 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 210 - -[filament:Verbatim PP] -inherits = *common* -bed_temperature = 100 -bridge_fan_speed = 100 -cooling = 1 -disable_fan_first_layers = 2 -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #DEE0E6 -filament_max_volumetric_speed = 5 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nEsun PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nEUMAKERS PLA" -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 220 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[printer:*common*] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 0 -end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -extruder_colour = #FFFF00 -extruder_offset = 0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.25 -min_layer_height = 0.07 -nozzle_diameter = 0.4 -octoprint_apikey = -octoprint_host = -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_BarBaz3D\nPRINTER_MODEL_MK2\n -printer_settings_id = -retract_before_travel = 1 -retract_before_wipe = 0% -retract_layer_change = 1 -retract_length = 0.8 -retract_length_toolchange = 4 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 35 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 1 -z_offset = 0 -printer_model = M2 -printer_variant = 0.4 -default_print_profile = 0.15mm OPTIMAL -default_filament_profile = BarBaz PLA - -[printer:*multimaterial*] -inherits = *common* -deretract_speed = 50 -retract_before_travel = 3 -retract_before_wipe = 60% -retract_layer_change = 0 -retract_length = 4 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 80 -single_extruder_multi_material = 1 -printer_model = M3 - -[printer:*mm-single*] -inherits = *multimaterial* -end_gcode = G1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors\n\n -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_BarBaz3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT?\nM104 S[first_layer_temperature]\nM140 S[first_layer_bed_temperature]\nM109 S[first_layer_temperature]\nM190 S[first_layer_bed_temperature]\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100\nM92 E140\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\nG92 E0.0 - -[printer:*mm-multi*] -inherits = *multimaterial* -end_gcode = {if not has_wipe_tower}\n; Pull the filament into the cooling tubes.\nG1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\n{endif}\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors -extruder_colour = #FFAA55;#5182DB;#4ECDD3;#FB7259 -nozzle_diameter = 0.4,0.4,0.4,0.4 -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_BarBaz3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT[initial_tool]\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\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100 ; set max feedrate\nM92 E140 ; E-steps per filament milimeter\n{if not has_wipe_tower}\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\n{endif}\nG92 E0.0 -variable_layer_height = 0 - -[printer:BarBaz i3 MK2] -inherits = *common* - -[printer:BarBaz i3 MK2 0.25 nozzle] -inherits = *common* -max_layer_height = 0.1 -min_layer_height = 0.05 -nozzle_diameter = 0.25 -retract_length = 1 -retract_speed = 50 -variable_layer_height = 0 -printer_variant = 0.25 -default_print_profile = 0.10mm DETAIL 0.25 nozzle - -[printer:BarBaz i3 MK2 0.6 nozzle] -inherits = *common* -max_layer_height = 0.35 -min_layer_height = 0.1 -nozzle_diameter = 0.6 -printer_variant = 0.6 - -[printer:BarBaz i3 MK2 MM Single Mode] -inherits = *mm-single* - -[printer:BarBaz i3 MK2 MM Single Mode 0.6 nozzle] -inherits = *mm-single* -nozzle_diameter = 0.6 -printer_variant = 0.6 - -[printer:BarBaz i3 MK2 MultiMaterial] -inherits = *mm-multi* -nozzle_diameter = 0.4,0.4,0.4,0.4 - -[printer:BarBaz i3 MK2 MultiMaterial 0.6 nozzle] -inherits = *mm-multi* -nozzle_diameter = 0.6,0.6,0.6,0.6 -printer_variant = 0.6 - -[printer:BarBaz i3 MK3] -inherits = *common* -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -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_BarBaz3D\nPRINTER_MODEL_MK3\n -retract_lift_below = 209 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} -printer_model = M1 -default_print_profile = 0.15mm OPTIMAL MK3 - -[printer:BarBaz i3 MK3 0.25 nozzle] -inherits = *common* -nozzle_diameter = 0.25 -printer_variant = 0.25 -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -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_BarBaz3D\nPRINTER_MODEL_MK3\n -retract_lift_below = 209 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} -printer_model = M1 -default_print_profile = 0.10mm DETAIL MK3 - -[printer:BarBaz i3 MK3 0.6 nozzle] -inherits = *common* -nozzle_diameter = 0.6 -printer_variant = 0.6 -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -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_BarBaz3D\nPRINTER_MODEL_MK3\n -retract_lift_below = 209 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} -printer_model = M1 -default_print_profile = 0.15mm OPTIMAL MK3 diff --git a/resources/profiles/Foobar.ini b/resources/profiles/Foobar.ini deleted file mode 100644 index 6f31401ea..000000000 --- a/resources/profiles/Foobar.ini +++ /dev/null @@ -1,985 +0,0 @@ -# Print profiles for the Foobar Research printers. - -[vendor] -# Vendor name will be shown by the Config Wizard. -name = Foo Bar -# Configuration version of this file. Config file will only be installed, if the config_version differs. -# This means, the server may force the Slic3r configuration to be downgraded. -config_version = 0.1.0 -# Where to get the updates from? -config_update_url = https://example.com - -# The printer models will be shown by the Configuration Wizard in this order, -# also the first model installed & the first nozzle installed will be activated after install. -#TODO: One day we may differentiate variants of the nozzles / hot ends, -#for example by the melt zone size, or whether the nozzle is hardened. -[printer_model:M1] -name = Foo Bar Model 1 -variants = 0.4; 0.25; 0.6 - -[printer_model:M2] -name = Foo Bar Model 2 -variants = 0.4; 0.25; 0.6 - -[printer_model:M3] -# Printer model name will be shown by the installation wizard. -name = Foo Bar Model 3 -variants = 0.4; 0.6 - -# All presets starting with asterisk, for example *common*, are intermediate and they will -# not make it into the user interface. - -# Common print preset, mostly derived from MK2 single material with a 0.4mm nozzle. -# All other print presets will derive from the *common* print preset. -[print:*common*] -avoid_crossing_perimeters = 0 -bridge_acceleration = 1000 -bridge_angle = 0 -bridge_flow_ratio = 0.8 -bridge_speed = 20 -brim_width = 0 -clip_multipart_objects = 1 -compatible_printers = -complete_objects = 0 -default_acceleration = 1000 -dont_support_bridges = 1 -elefant_foot_compensation = 0 -ensure_vertical_shell_thickness = 1 -external_fill_pattern = rectilinear -external_perimeters_first = 0 -external_perimeter_extrusion_width = 0.45 -extra_perimeters = 0 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extrusion_width = 0.45 -fill_angle = 45 -fill_density = 20% -fill_pattern = cubic -first_layer_acceleration = 1000 -first_layer_extrusion_width = 0.42 -first_layer_height = 0.2 -first_layer_speed = 30 -gap_fill_speed = 40 -gcode_comments = 0 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0.45 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -interface_shells = 0 -max_print_speed = 100 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_skirt_length = 4 -notes = -overhangs = 0 -only_retract_when_crossing_perimeters = 0 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -perimeters = 2 -perimeter_extruder = 1 -perimeter_extrusion_width = 0.45 -post_process = -print_settings_id = -raft_layers = 0 -resolution = 0 -seam_position = nearest -skirts = 1 -skirt_distance = 2 -skirt_height = 3 -small_perimeter_speed = 20 -solid_infill_below_area = 0 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0.45 -spiral_vase = 0 -standby_temperature_delta = -5 -support_material = 0 -support_material_extruder = 0 -support_material_extrusion_width = 0.35 -support_material_interface_extruder = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_enforce_layers = 0 -support_material_contact_distance = 0.15 -support_material_interface_contact_loops = 0 -support_material_interface_layers = 2 -support_material_interface_spacing = 0.2 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2 -support_material_speed = 50 -support_material_synchronize_layers = 0 -support_material_threshold = 45 -support_material_with_sheath = 0 -support_material_xy_spacing = 60% -thin_walls = 0 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 40 -travel_speed = 180 -wipe_tower = 0 -wipe_tower_per_color_wipe = 20 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -xy_size_compensation = 0 - -# Print parameters common to a 0.25mm diameter nozzle. -[print:*0.25nozzle*] -external_perimeter_extrusion_width = 0.25 -extrusion_width = 0.25 -first_layer_extrusion_width = 0.25 -infill_extrusion_width = 0.25 -perimeter_extrusion_width = 0.25 -solid_infill_extrusion_width = 0.25 -top_infill_extrusion_width = 0.25 -support_material_extrusion_width = 0.18 -support_material_interface_layers = 0 -support_material_interface_spacing = 0.15 -support_material_spacing = 1 -support_material_xy_spacing = 150% - -# Print parameters common to a 0.6mm diameter nozzle. -[print:*0.6nozzle*] -external_perimeter_extrusion_width = 0.61 -extrusion_width = 0.67 -first_layer_extrusion_width = 0.65 -infill_extrusion_width = 0.7 -perimeter_extrusion_width = 0.65 -solid_infill_extrusion_width = 0.65 -top_infill_extrusion_width = 0.6 - -[print:*soluble_support*] -overhangs = 1 -skirts = 0 -support_material = 1 -support_material_contact_distance = 0 -support_material_extruder = 4 -support_material_extrusion_width = 0.45 -support_material_interface_extruder = 4 -support_material_interface_spacing = 0.1 -support_material_synchronize_layers = 1 -support_material_threshold = 80 -support_material_with_sheath = 1 -wipe_tower = 1 - -[print:*0.05mm*] -inherits = *common* -bottom_solid_layers = 10 -bridge_acceleration = 300 -bridge_flow_ratio = 0.7 -default_acceleration = 500 -external_perimeter_speed = 20 -fill_density = 20% -first_layer_acceleration = 500 -gap_fill_speed = 20 -infill_acceleration = 800 -infill_speed = 30 -max_print_speed = 80 -small_perimeter_speed = 15 -solid_infill_speed = 30 -support_material_extrusion_width = 0.3 -support_material_spacing = 1.5 -layer_height = 0.05 -perimeter_acceleration = 300 -perimeter_speed = 30 -perimeters = 3 -support_material_speed = 30 -top_solid_infill_speed = 20 -top_solid_layers = 15 - -[print:0.05mm ULTRADETAIL] -inherits = *0.05mm* -infill_extrusion_width = 0.5 - -[print:0.05mm ULTRADETAIL MK3] -inherits = *0.05mm* -fill_pattern = grid -top_infill_extrusion_width = 0.4 - -[print:0.05mm ULTRADETAIL 0.25 nozzle] -inherits = *0.05mm* -external_perimeter_extrusion_width = 0 -extrusion_width = 0.28 -fill_density = 20% -first_layer_extrusion_width = 0.3 -infill_extrusion_width = 0 -infill_speed = 20 -max_print_speed = 100 -perimeter_extrusion_width = 0 -perimeter_speed = 20 -small_perimeter_speed = 10 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -support_material_speed = 20 -top_infill_extrusion_width = 0 - -[print:0.05mm ULTRADETAIL 0.25 nozzle MK3] -inherits = *0.05mm*; *0.25nozzle* -fill_pattern = grid -top_infill_extrusion_width = 0.4 - -[print:*0.10mm*] -inherits = *common* -bottom_solid_layers = 7 -bridge_flow_ratio = 0.7 -layer_height = 0.1 -perimeter_acceleration = 800 -top_solid_layers = 9 - -[print:0.10mm DETAIL] -inherits = *0.10mm* -external_perimeter_speed = 40 -infill_acceleration = 2000 -infill_speed = 60 -perimeter_speed = 50 -solid_infill_speed = 50 - -[print:0.10mm DETAIL MK3] -inherits = *0.10mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 200 -perimeter_speed = 45 -solid_infill_speed = 170 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 - -[print:0.10mm DETAIL 0.25 nozzle] -inherits = *0.10mm* -bridge_acceleration = 600 -external_perimeter_speed = 20 -infill_acceleration = 1600 -infill_speed = 40 -perimeter_acceleration = 600 -perimeter_speed = 25 -small_perimeter_speed = 10 -solid_infill_speed = 40 -top_solid_infill_speed = 30 - -[print:0.10mm DETAIL 0.25 nozzle MK3] -inherits = *0.10mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 200 -perimeter_speed = 45 -solid_infill_speed = 170 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 - -[print:0.10mm DETAIL 0.6 nozzle MK3] -inherits = *0.10mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 200 -perimeter_speed = 45 -solid_infill_speed = 170 -top_infill_extrusion_width = 0.4 -top_solid_infill_speed = 50 - -[print:*0.15mm*] -inherits = *common* -bottom_solid_layers = 5 -external_perimeter_speed = 40 -infill_acceleration = 2000 -infill_speed = 60 -layer_height = 0.15 -perimeter_acceleration = 800 -perimeter_speed = 50 -solid_infill_speed = 50 -top_infill_extrusion_width = 0.4 -top_solid_layers = 7 - -[print:0.15mm 100mms Linear Advance] -inherits = *0.15mm* -bridge_flow_ratio = 0.95 -external_perimeter_speed = 50 -infill_speed = 100 -max_print_speed = 150 -perimeter_speed = 60 -small_perimeter_speed = 30 -solid_infill_speed = 100 -support_material_speed = 60 -top_solid_infill_speed = 70 - -[print:0.15mm OPTIMAL] -inherits = *0.15mm* -top_infill_extrusion_width = 0.45 - -[print:0.15mm OPTIMAL 0.25 nozzle] -inherits = *0.15mm*; *0.25nozzle* -bridge_acceleration = 600 -bridge_flow_ratio = 0.7 -external_perimeter_speed = 20 -infill_acceleration = 1600 -infill_speed = 40 -perimeter_acceleration = 600 -perimeter_speed = 25 -small_perimeter_speed = 10 -solid_infill_speed = 40 -support_material_extrusion_width = 0.2 -top_solid_infill_speed = 30 - -[print:0.15mm OPTIMAL 0.6 nozzle] -inherits = *0.15mm*; *0.6nozzle* - -[print:0.15mm OPTIMAL MK3] -inherits = *0.15mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 - -[print:0.15mm OPTIMAL SOLUBLE FULL] -inherits = *0.15mm*; *soluble_support* -external_perimeter_speed = 25 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -perimeter_speed = 40 -solid_infill_speed = 40 -top_infill_extrusion_width = 0.45 -top_solid_infill_speed = 30 -wipe_tower = 1 - -[print:0.15mm OPTIMAL SOLUBLE INTERFACE] -inherits = 0.15mm OPTIMAL SOLUBLE FULL -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -support_material_extruder = 0 -support_material_interface_layers = 3 -support_material_with_sheath = 0 -support_material_xy_spacing = 80% - -[print:0.15mm OPTIMAL 0.25 nozzle MK3] -inherits = *0.15mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 -[print:*0.20mm*] -inherits = *common* -bottom_solid_layers = 4 -bridge_flow_ratio = 0.95 -external_perimeter_speed = 40 -infill_acceleration = 2000 -infill_speed = 60 -layer_height = 0.2 -perimeter_acceleration = 800 -perimeter_speed = 50 -solid_infill_speed = 50 -top_infill_extrusion_width = 0.4 -top_solid_layers = 5 - -[print:0.15mm OPTIMAL 0.6 nozzle MK3] -inherits = *0.15mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 - -[print:0.20mm 100mms Linear Advance] -inherits = *0.20mm* -external_perimeter_speed = 50 -infill_speed = 100 -max_print_speed = 150 -perimeter_speed = 60 -small_perimeter_speed = 30 -solid_infill_speed = 100 -support_material_speed = 60 -top_solid_infill_speed = 70 - -[print:0.20mm FAST MK3] -inherits = *0.20mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 - -[print:0.20mm NORMAL] -inherits = *0.20mm* - -[print:0.20mm NORMAL 0.6 nozzle] -inherits = *0.20mm*; *0.6nozzle* - -[print:0.20mm NORMAL SOLUBLE FULL] -inherits = *0.20mm*; *soluble_support* -external_perimeter_speed = 30 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder -perimeter_speed = 40 -solid_infill_speed = 40 -top_solid_infill_speed = 30 - -[print:0.20mm NORMAL SOLUBLE INTERFACE] -inherits = 0.20mm NORMAL SOLUBLE FULL -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -support_material_extruder = 0 -support_material_interface_layers = 3 -support_material_with_sheath = 0 -support_material_xy_spacing = 80% - -[print:0.20mm FAST 0.6 nozzle MK3] -inherits = *0.20mm* -bridge_speed = 30 -external_perimeter_speed = 35 -fill_pattern = grid -infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 -perimeter_speed = 45 -solid_infill_speed = 170 -top_solid_infill_speed = 50 - -[print:*0.35mm*] -inherits = *common* -bottom_solid_layers = 3 -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 40 -first_layer_extrusion_width = 0.75 -infill_acceleration = 2000 -infill_speed = 60 -layer_height = 0.35 -perimeter_acceleration = 800 -perimeter_extrusion_width = 0.65 -perimeter_speed = 50 -solid_infill_extrusion_width = 0.65 -solid_infill_speed = 60 -top_solid_infill_speed = 50 -top_solid_layers = 4 - -[print:0.35mm FAST] -inherits = *0.35mm* -bridge_flow_ratio = 0.95 -first_layer_extrusion_width = 0.42 -perimeter_extrusion_width = 0.43 -solid_infill_extrusion_width = 0.7 -top_infill_extrusion_width = 0.43 - -[print:0.35mm FAST 0.6 nozzle] -inherits = *0.35mm*; *0.6nozzle* - -[print:0.35mm FAST sol full 0.6 nozzle] -inherits = *0.35mm*; *0.6nozzle*; *soluble_support* -external_perimeter_extrusion_width = 0.6 -external_perimeter_speed = 30 -notes = Set your solluble extruder in Multiple Extruders > Support material/raft interface extruder -perimeter_speed = 40 -support_material_extrusion_width = 0.55 -support_material_interface_layers = 3 -support_material_xy_spacing = 120% -top_infill_extrusion_width = 0.57 - -[print:0.35mm FAST sol int 0.6 nozzle] -inherits = 0.35mm FAST sol full 0.6 nozzle -support_material_extruder = 0 -support_material_interface_layers = 2 -support_material_with_sheath = 0 -support_material_xy_spacing = 150% - -[filament:*common*] -cooling = 1 -compatible_printers = -end_filament_gcode = "; Filament-specific end gcode" -extrusion_multiplier = 1 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_notes = "" -filament_settings_id = -filament_soluble = 0 -min_print_speed = 5 -slowdown_below_layer_time = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" - -[filament:*PLA*] -inherits = *common* -bed_temperature = 60 -bridge_fan_speed = 100 -disable_fan_first_layers = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #FF3232 -filament_max_volumetric_speed = 15 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -temperature = 210 - -[filament:*PET*] -inherits = *common* -bed_temperature = 90 -bridge_fan_speed = 50 -disable_fan_first_layers = 3 -fan_always_on = 1 -fan_below_layer_time = 20 -filament_colour = #FF8000 -filament_max_volumetric_speed = 8 -filament_type = PET -first_layer_bed_temperature = 85 -first_layer_temperature = 230 -max_fan_speed = 50 -min_fan_speed = 30 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 240 - -[filament:*ABS*] -inherits = *common* -bed_temperature = 110 -bridge_fan_speed = 30 -cooling = 0 -disable_fan_first_layers = 3 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #3A80CA -filament_max_volumetric_speed = 11 -filament_type = ABS -first_layer_bed_temperature = 100 -first_layer_temperature = 255 -max_fan_speed = 30 -min_fan_speed = 20 -temperature = 255 - -[filament:*FLEX*] -inherits = *common* -bridge_fan_speed = 100 -cooling = 0 -disable_fan_first_layers = 1 -extrusion_multiplier = 1.2 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #00CA0A -filament_max_volumetric_speed = 1.5 -filament_type = FLEX -first_layer_bed_temperature = 50 -first_layer_temperature = 240 -max_fan_speed = 90 -min_fan_speed = 70 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 240 - -[filament:ColorFabb Brass Bronze] -inherits = *PLA* -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 10 - -[filament:ColorFabb HT] -inherits = *PET* -bed_temperature = 110 -bridge_fan_speed = 30 -cooling = 1 -disable_fan_first_layers = 3 -fan_always_on = 0 -fan_below_layer_time = 10 -first_layer_bed_temperature = 105 -first_layer_temperature = 270 -max_fan_speed = 20 -min_fan_speed = 10 -min_print_speed = 5 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}45{endif}; Filament gcode" -temperature = 270 - -[filament:ColorFabb PLA-PHA] -inherits = *PLA* - -[filament:ColorFabb Woodfil] -inherits = *PLA* -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 10 -first_layer_temperature = 200 -min_print_speed = 5 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 200 - -[filament:ColorFabb XT] -inherits = *PET* -filament_type = PLA -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -temperature = 270 - -[filament:ColorFabb XT-CF20] -inherits = *PET* -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 1 -first_layer_bed_temperature = 90 -first_layer_temperature = 260 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" -temperature = 260 - -[filament:ColorFabb nGen] -inherits = *PET* -bridge_fan_speed = 40 -fan_always_on = 0 -fan_below_layer_time = 10 -filament_type = NGEN -first_layer_temperature = 240 -max_fan_speed = 35 -min_fan_speed = 20 - -[filament:ColorFabb nGen flex] -inherits = *FLEX* -bed_temperature = 85 -bridge_fan_speed = 40 -cooling = 1 -disable_fan_first_layers = 3 -extrusion_multiplier = 1 -fan_below_layer_time = 10 -filament_max_volumetric_speed = 5 -first_layer_bed_temperature = 85 -first_layer_temperature = 260 -max_fan_speed = 35 -min_fan_speed = 20 -temperature = 260 - -[filament:E3D Edge] -inherits = *PET* -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" - -[filament:E3D PC-ABS] -inherits = *ABS* -first_layer_temperature = 270 -temperature = 270 - -[filament:Fillamentum ABS] -inherits = *ABS* -first_layer_temperature = 240 -temperature = 240 - -[filament:Fillamentum ASA] -inherits = *ABS* -fan_always_on = 1 -first_layer_temperature = 265 -temperature = 265 - -[filament:Fillamentum CPE HG100 HM100] -inherits = *PET* -filament_notes = "CPE HG100 , CPE HM100" -first_layer_bed_temperature = 90 -first_layer_temperature = 275 -max_fan_speed = 50 -min_fan_speed = 50 -temperature = 275 - -[filament:Fillamentum Timberfil] -inherits = *PLA* -extrusion_multiplier = 1.2 -filament_colour = #804040 -filament_max_volumetric_speed = 10 -first_layer_temperature = 190 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 190 - -[filament:Generic ABS] -inherits = *ABS* -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" - -[filament:Generic PET] -inherits = *PET* -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" - -[filament:Generic PLA] -inherits = *PLA* -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" - -[filament:Polymaker PC-Max] -inherits = *ABS* -bed_temperature = 115 -filament_colour = #3A80CA -first_layer_bed_temperature = 100 -first_layer_temperature = 270 -temperature = 270 - -[filament:Primavalue PVA] -inherits = *PLA* -cooling = 0 -fan_always_on = 0 -filament_colour = #FFFFD7 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PVA print settings for MK2:\n\nPrimaSelect PVA+\nICE FILAMENTS PVA 'NAUGHTY NATURAL'\nVerbatim BVOH" -filament_soluble = 1 -filament_type = PVA -first_layer_temperature = 195 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 195 - -[filament:Foobar ABS] -inherits = *ABS* -filament_notes = "List of materials tested with standart ABS print settings for MK2:\n\nEsun ABS\nFil-A-Gehr ABS\nHatchboxABS\nPlasty Mladeč ABS" - -[filament:Foobar HIPS] -inherits = *ABS* -bridge_fan_speed = 50 -cooling = 1 -extrusion_multiplier = 0.9 -fan_always_on = 1 -fan_below_layer_time = 10 -filament_colour = #FFFFD7 -filament_soluble = 1 -filament_type = HIPS -first_layer_temperature = 220 -max_fan_speed = 20 -min_fan_speed = 20 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[filament:Foobar PET] -inherits = *PET* -filament_notes = "List of manufacturers tested with standart PET print settings for MK2:\n\nE3D Edge\nFillamentum CPE GH100\nPlasty Mladeč PETG" - -[filament:Foobar PLA] -inherits = *PLA* -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" - -[filament:SemiFlex or Flexfill 98A] -inherits = *FLEX* - -[filament:Taulman Bridge] -inherits = *common* -bed_temperature = 90 -bridge_fan_speed = 40 -cooling = 0 -disable_fan_first_layers = 3 -fan_always_on = 0 -fan_below_layer_time = 20 -filament_colour = #DEE0E6 -filament_max_volumetric_speed = 10 -filament_soluble = 0 -filament_type = PET -first_layer_bed_temperature = 60 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -min_print_speed = 5 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 250 - -[filament:Taulman T-Glase] -inherits = *PET* -bridge_fan_speed = 40 -cooling = 0 -fan_always_on = 0 -first_layer_bed_temperature = 90 -first_layer_temperature = 240 -max_fan_speed = 5 -min_fan_speed = 0 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}30{endif}; Filament gcode" - -[filament:Verbatim BVOH] -inherits = *common* -bed_temperature = 60 -bridge_fan_speed = 100 -cooling = 0 -disable_fan_first_layers = 1 -extrusion_multiplier = 1 -fan_always_on = 0 -fan_below_layer_time = 100 -filament_colour = #FFFFD7 -filament_max_volumetric_speed = 10 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH" -filament_soluble = 1 -filament_type = PLA -first_layer_bed_temperature = 60 -first_layer_temperature = 215 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 210 - -[filament:Verbatim PP] -inherits = *common* -bed_temperature = 100 -bridge_fan_speed = 100 -cooling = 1 -disable_fan_first_layers = 2 -extrusion_multiplier = 1 -fan_always_on = 1 -fan_below_layer_time = 100 -filament_colour = #DEE0E6 -filament_max_volumetric_speed = 5 -filament_notes = "List of materials tested with standart PLA print settings for MK2:\n\nEsun PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladeč PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nEUMAKERS PLA" -filament_type = PLA -first_layer_bed_temperature = 100 -first_layer_temperature = 220 -max_fan_speed = 100 -min_fan_speed = 100 -min_print_speed = 15 -start_filament_gcode = "M900 K{if printer_notes=~/.*PRINTER_HAS_BOWDEN.*/}200{else}10{endif}; Filament gcode" -temperature = 220 - -[printer:*common*] -bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n -between_objects_gcode = -deretract_speed = 0 -end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -extruder_colour = #FFFF00 -extruder_offset = 0x0 -gcode_flavor = marlin -layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] -max_layer_height = 0.25 -min_layer_height = 0.07 -nozzle_diameter = 0.4 -octoprint_apikey = -octoprint_host = -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_Foobar3D\nPRINTER_MODEL_MK2\n -printer_settings_id = -retract_before_travel = 1 -retract_before_wipe = 0% -retract_layer_change = 1 -retract_length = 0.8 -retract_length_toolchange = 4 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 35 -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0 -toolchange_gcode = -use_firmware_retraction = 0 -use_relative_e_distances = 1 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 1 -z_offset = 0 -printer_model = M2 -printer_variant = 0.4 -default_print_profile = 0.15mm OPTIMAL -default_filament_profile = Foobar PLA - -[printer:*multimaterial*] -inherits = *common* -deretract_speed = 50 -retract_before_travel = 3 -retract_before_wipe = 60% -retract_layer_change = 0 -retract_length = 4 -retract_lift = 0.6 -retract_lift_above = 0 -retract_lift_below = 199 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 80 -single_extruder_multi_material = 1 -printer_model = M3 - -[printer:*mm-single*] -inherits = *multimaterial* -end_gcode = G1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors\n\n -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_Foobar3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT?\nM104 S[first_layer_temperature]\nM140 S[first_layer_bed_temperature]\nM109 S[first_layer_temperature]\nM190 S[first_layer_bed_temperature]\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100\nM92 E140\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\nG92 E0.0 - -[printer:*mm-multi*] -inherits = *multimaterial* -end_gcode = {if not has_wipe_tower}\n; Pull the filament into the cooling tubes.\nG1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\n{endif}\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors -extruder_colour = #FFAA55;#5182DB;#4ECDD3;#FB7259 -nozzle_diameter = 0.4,0.4,0.4,0.4 -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_Foobar3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN -start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT[initial_tool]\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\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100 ; set max feedrate\nM92 E140 ; E-steps per filament milimeter\n{if not has_wipe_tower}\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\n{endif}\nG92 E0.0 -variable_layer_height = 0 - -[printer:Foobar i3 MK2] -inherits = *common* - -[printer:Foobar i3 MK2 0.25 nozzle] -inherits = *common* -max_layer_height = 0.1 -min_layer_height = 0.05 -nozzle_diameter = 0.25 -retract_length = 1 -retract_speed = 50 -variable_layer_height = 0 -printer_variant = 0.25 -default_print_profile = 0.10mm DETAIL 0.25 nozzle - -[printer:Foobar i3 MK2 0.6 nozzle] -inherits = *common* -max_layer_height = 0.35 -min_layer_height = 0.1 -nozzle_diameter = 0.6 -printer_variant = 0.6 - -[printer:Foobar i3 MK2 MM Single Mode] -inherits = *mm-single* - -[printer:Foobar i3 MK2 MM Single Mode 0.6 nozzle] -inherits = *mm-single* -nozzle_diameter = 0.6 -printer_variant = 0.6 - -[printer:Foobar i3 MK2 MultiMaterial] -inherits = *mm-multi* -nozzle_diameter = 0.4,0.4,0.4,0.4 - -[printer:Foobar i3 MK2 MultiMaterial 0.6 nozzle] -inherits = *mm-multi* -nozzle_diameter = 0.6,0.6,0.6,0.6 -printer_variant = 0.6 - -[printer:Foobar i3 MK3] -inherits = *common* -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -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_Foobar3D\nPRINTER_MODEL_MK3\n -retract_lift_below = 209 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} -printer_model = M1 -default_print_profile = 0.15mm OPTIMAL MK3 - -[printer:Foobar i3 MK3 0.25 nozzle] -inherits = *common* -nozzle_diameter = 0.25 -printer_variant = 0.25 -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -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_Foobar3D\nPRINTER_MODEL_MK3\n -retract_lift_below = 209 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} -printer_model = M1 -default_print_profile = 0.10mm DETAIL MK3 - -[printer:Foobar i3 MK3 0.6 nozzle] -inherits = *common* -nozzle_diameter = 0.6 -printer_variant = 0.6 -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors -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_Foobar3D\nPRINTER_MODEL_MK3\n -retract_lift_below = 209 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} -printer_model = M1 -default_print_profile = 0.15mm OPTIMAL MK3 diff --git a/xs/src/avrdude/main.c b/xs/src/avrdude/main.c index 51fdf7268..0550ceff1 100644 --- a/xs/src/avrdude/main.c +++ b/xs/src/avrdude/main.c @@ -252,7 +252,7 @@ static void usage(void) // setvbuf(stderr, (char*)NULL, _IOLBF, 0); // } -static bool update_progress_no_tty (int percent, double etime, char *hdr) +static void update_progress_no_tty (int percent, double etime, char *hdr) { static int done = 0; static int last = 0; diff --git a/xs/src/slic3r/GUI/ConfigWizard.cpp b/xs/src/slic3r/GUI/ConfigWizard.cpp index 6b8e8abaf..996959b2e 100644 --- a/xs/src/slic3r/GUI/ConfigWizard.cpp +++ b/xs/src/slic3r/GUI/ConfigWizard.cpp @@ -3,7 +3,7 @@ #include #include #include - +#include #include #include @@ -615,8 +615,14 @@ void ConfigWizard::priv::load_vendors() // Load vendors from the "vendors" directory in datadir for (fs::directory_iterator it(vendor_dir); it != fs::directory_iterator(); ++it) { if (it->path().extension() == ".ini") { - auto vp = VendorProfile::from_ini(it->path()); - vendors[vp.id] = std::move(vp); + try { + auto vp = VendorProfile::from_ini(it->path()); + vendors[vp.id] = std::move(vp); + } + catch (const std::exception& e) { + BOOST_LOG_TRIVIAL(error) << boost::format("Error loading vendor bundle %1%: %2%") % it->path() % e.what(); + } + } } @@ -625,9 +631,14 @@ void ConfigWizard::priv::load_vendors() if (it->path().extension() == ".ini") { const auto id = it->path().stem().string(); if (vendors.find(id) == vendors.end()) { - auto vp = VendorProfile::from_ini(it->path()); - vendors_rsrc[vp.id] = it->path().filename().string(); - vendors[vp.id] = std::move(vp); + try { + auto vp = VendorProfile::from_ini(it->path()); + vendors_rsrc[vp.id] = it->path().filename().string(); + vendors[vp.id] = std::move(vp); + } + catch (const std::exception& e) { + BOOST_LOG_TRIVIAL(error) << boost::format("Error loading vendor bundle %1%: %2%") % it->path() % e.what(); + } } } } diff --git a/xs/src/slic3r/GUI/GUI.cpp b/xs/src/slic3r/GUI/GUI.cpp index b00813a71..db51ffd14 100644 --- a/xs/src/slic3r/GUI/GUI.cpp +++ b/xs/src/slic3r/GUI/GUI.cpp @@ -443,8 +443,13 @@ void config_wizard(int reason) if (! check_unsaved_changes()) return; - ConfigWizard wizard(nullptr, static_cast(reason)); - wizard.run(g_PresetBundle, g_PresetUpdater); + try { + ConfigWizard wizard(nullptr, static_cast(reason)); + wizard.run(g_PresetBundle, g_PresetUpdater); + } + catch (const std::exception &e) { + show_error(nullptr, e.what()); + } // Load the currently selected preset into the GUI, update the preset selection box. for (Tab *tab : g_tabs_list) @@ -929,34 +934,51 @@ void about() } void desktop_open_datadir_folder() -{ +{ // Execute command to open a file explorer, platform dependent. - std::string cmd = + // FIXME: The const_casts aren't needed in wxWidgets 3.1, remove them when we upgrade. + + const auto path = data_dir(); #ifdef _WIN32 - "explorer " + const auto widepath = wxString::FromUTF8(path.data()); + const wchar_t *argv[] = { L"explorer", widepath.GetData(), nullptr }; + ::wxExecute(const_cast(argv), wxEXEC_ASYNC, nullptr); #elif __APPLE__ - "open " + const char *argv[] = { "open", path.data(), nullptr }; + ::wxExecute(const_cast(argv), wxEXEC_ASYNC, nullptr); #else - "xdg-open " + const char *argv[] = { "xdg-open", path.data(), nullptr }; + + // Check if we're running in an AppImage container, if so, we need to remove AppImage's env vars, + // because they may mess up the environment expected by the file manager. + // Mostly this is about LD_LIBRARY_PATH, but we remove a few more too for good measure. + if (wxGetEnv("APPIMAGE", nullptr)) { + // We're running from AppImage + wxEnvVariableHashMap env_vars; + wxGetEnvMap(&env_vars); + + env_vars.erase("APPIMAGE"); + env_vars.erase("APPDIR"); + env_vars.erase("LD_LIBRARY_PATH"); + env_vars.erase("LD_PRELOAD"); + env_vars.erase("UNION_PRELOAD"); + + wxExecuteEnv exec_env; + exec_env.env = std::move(env_vars); + + wxString owd; + if (wxGetEnv("OWD", &owd)) { + // This is the original work directory from which the AppImage image was run, + // set it as CWD for the child process: + exec_env.cwd = std::move(owd); + } + + ::wxExecute(const_cast(argv), wxEXEC_ASYNC, nullptr, &exec_env); + } else { + // Looks like we're NOT running from AppImage, we'll make no changes to the environment. + ::wxExecute(const_cast(argv), wxEXEC_ASYNC, nullptr, nullptr); + } #endif - ; - // Escape the path, platform dependent. - std::string path = data_dir(); -#ifdef _WIN32 - // Enclose the path into double quotes on Windows. A quote character is forbidden in file names, - // therefore it does not need to be escaped. - cmd += '"'; - cmd += path; - cmd += '"'; -#else - // Enclose the path into single quotes on Unix / OSX. All single quote characters need to be escaped - // inside a file name. - cmd += '\''; - boost::replace_all(path, "'", "\\'"); - cmd += path; - cmd += '\''; -#endif - ::wxExecute(wxString::FromUTF8(cmd.c_str()), wxEXEC_ASYNC, nullptr); } } } diff --git a/xs/xsp/GUI.xsp b/xs/xsp/GUI.xsp index 897e63693..50fffc545 100644 --- a/xs/xsp/GUI.xsp +++ b/xs/xsp/GUI.xsp @@ -66,11 +66,7 @@ bool check_unsaved_changes() bool config_wizard_startup(int app_config_exists) %code%{ - try { - RETVAL=Slic3r::GUI::config_wizard_startup(app_config_exists != 0); - } catch (std::exception& e) { - croak("%s\n", e.what()); - } + RETVAL=Slic3r::GUI::config_wizard_startup(app_config_exists != 0); %}; void open_preferences_dialog(int preferences_event) From dab2652cb522bd53c5786c259c94983bde9ded89 Mon Sep 17 00:00:00 2001 From: Enrico Turri Date: Mon, 4 Jun 2018 09:24:48 +0200 Subject: [PATCH 06/14] Fixed preference dialog behavior --- xs/src/slic3r/GUI/GUI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xs/src/slic3r/GUI/GUI.cpp b/xs/src/slic3r/GUI/GUI.cpp index b00813a71..7e274354d 100644 --- a/xs/src/slic3r/GUI/GUI.cpp +++ b/xs/src/slic3r/GUI/GUI.cpp @@ -394,7 +394,7 @@ void add_config_menu(wxMenuBar *menu, int event_preferences_changed, int event_l void add_menus(wxMenuBar *menu, int event_preferences_changed, int event_language_change) { - add_config_menu(menu, event_language_change, event_language_change); + add_config_menu(menu, event_preferences_changed, event_language_change); } // This is called when closing the application, when loading a config file or when starting the config wizard From 16a5029d58be3f1767c621a07073dfa0ab45d06f Mon Sep 17 00:00:00 2001 From: YuSanka Date: Mon, 4 Jun 2018 12:13:07 +0200 Subject: [PATCH 07/14] Fixed issue #875 and updated Slic3rPE.pot --- resources/localization/Slic3rPE.pot | 799 ++++++++++++++-------------- xs/src/libslic3r/PrintConfig.cpp | 2 +- 2 files changed, 405 insertions(+), 396 deletions(-) diff --git a/resources/localization/Slic3rPE.pot b/resources/localization/Slic3rPE.pot index f4cfd15bd..db4f6448e 100644 --- a/resources/localization/Slic3rPE.pot +++ b/resources/localization/Slic3rPE.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-05-14 13:14+0200\n" +"POT-Creation-Date: 2018-06-04 12:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,7 +20,7 @@ msgstr "" msgid "About Slic3r" msgstr "" -#: xs/src/slic3r/GUI/AboutDialog.cpp:60 +#: xs/src/slic3r/GUI/AboutDialog.cpp:67 msgid "Version" msgstr "" @@ -32,8 +32,8 @@ msgstr "" msgid "Rectangular" msgstr "" -#: xs/src/slic3r/GUI/BedShapeDialog.cpp:50 xs/src/slic3r/GUI/Tab.cpp:1738 -#: lib/Slic3r/GUI/Plater.pm:427 +#: xs/src/slic3r/GUI/BedShapeDialog.cpp:50 xs/src/slic3r/GUI/Tab.cpp:1743 +#: lib/Slic3r/GUI/Plater.pm:432 msgid "Size" msgstr "" @@ -94,7 +94,7 @@ msgstr "" #: xs/src/slic3r/GUI/BedShapeDialog.cpp:71 #: xs/src/libslic3r/GCode/PreviewData.cpp:170 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:95 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:102 msgid "Custom" msgstr "" @@ -210,7 +210,7 @@ msgstr "" msgid "printer" msgstr "" -#: xs/src/slic3r/GUI/ConfigSnapshotDialog.cpp:49 xs/src/slic3r/GUI/Tab.cpp:755 +#: xs/src/slic3r/GUI/ConfigSnapshotDialog.cpp:49 xs/src/slic3r/GUI/Tab.cpp:756 msgid "vendor" msgstr "" @@ -242,7 +242,7 @@ msgstr "" msgid "Activate" msgstr "" -#: xs/src/slic3r/GUI/ConfigSnapshotDialog.cpp:96 xs/src/slic3r/GUI/GUI.cpp:397 +#: xs/src/slic3r/GUI/ConfigSnapshotDialog.cpp:96 xs/src/slic3r/GUI/GUI.cpp:319 msgid "Configuration Snapshots" msgstr "" @@ -267,7 +267,7 @@ msgstr "" msgid "Welcome" msgstr "" -#: xs/src/slic3r/GUI/ConfigWizard.cpp:213 xs/src/slic3r/GUI/GUI.cpp:394 +#: xs/src/slic3r/GUI/ConfigWizard.cpp:213 xs/src/slic3r/GUI/GUI.cpp:316 #, possible-c-format msgid "Run %s" msgstr "" @@ -349,7 +349,7 @@ msgstr "" msgid "Firmware Type" msgstr "" -#: xs/src/slic3r/GUI/ConfigWizard.cpp:358 xs/src/slic3r/GUI/Tab.cpp:1625 +#: xs/src/slic3r/GUI/ConfigWizard.cpp:358 xs/src/slic3r/GUI/Tab.cpp:1626 msgid "Firmware" msgstr "" @@ -436,146 +436,146 @@ msgstr "" msgid "Bed Temperature:" msgstr "" -#: xs/src/slic3r/GUI/ConfigWizard.cpp:796 +#: xs/src/slic3r/GUI/ConfigWizard.cpp:807 msgid "&Finish" msgstr "" -#: xs/src/slic3r/GUI/ConfigWizard.cpp:852 +#: xs/src/slic3r/GUI/ConfigWizard.cpp:865 msgid "Configuration Wizard" msgstr "" -#: xs/src/slic3r/GUI/ConfigWizard.cpp:854 +#: xs/src/slic3r/GUI/ConfigWizard.cpp:867 msgid "Configuration Assistant" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:285 +#: xs/src/slic3r/GUI/GUI.cpp:206 msgid "Array of language names and identifiers should have the same size." msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:296 +#: xs/src/slic3r/GUI/GUI.cpp:217 msgid "Select the language" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:296 +#: xs/src/slic3r/GUI/GUI.cpp:217 msgid "Language" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:358 xs/src/libslic3r/PrintConfig.cpp:187 +#: xs/src/slic3r/GUI/GUI.cpp:279 xs/src/libslic3r/PrintConfig.cpp:187 msgid "Default" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:397 +#: xs/src/slic3r/GUI/GUI.cpp:319 msgid "Inspect / activate configuration snapshots" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:398 +#: xs/src/slic3r/GUI/GUI.cpp:320 msgid "Take Configuration Snapshot" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:398 +#: xs/src/slic3r/GUI/GUI.cpp:320 msgid "Capture a configuration snapshot" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:399 -msgid "Check for updates" -msgstr "" - -#: xs/src/slic3r/GUI/GUI.cpp:399 -msgid "Check for configuration updates" -msgstr "" - -#: xs/src/slic3r/GUI/GUI.cpp:401 xs/src/slic3r/GUI/Preferences.cpp:9 +#: xs/src/slic3r/GUI/GUI.cpp:323 xs/src/slic3r/GUI/Preferences.cpp:9 msgid "Preferences" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:401 +#: xs/src/slic3r/GUI/GUI.cpp:323 msgid "Application preferences" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:403 +#: xs/src/slic3r/GUI/GUI.cpp:324 msgid "Change Application Language" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:412 +#: xs/src/slic3r/GUI/GUI.cpp:326 +msgid "Flash printer firmware" +msgstr "" + +#: xs/src/slic3r/GUI/GUI.cpp:326 +msgid "Upload a firmware image into an Arduino based printer" +msgstr "" + +#: xs/src/slic3r/GUI/GUI.cpp:338 msgid "Taking configuration snapshot" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:412 +#: xs/src/slic3r/GUI/GUI.cpp:338 msgid "Snapshot name" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:451 +#: xs/src/slic3r/GUI/GUI.cpp:377 msgid "Application will be restarted" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:451 +#: xs/src/slic3r/GUI/GUI.cpp:377 msgid "Attention!" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:461 +#: xs/src/slic3r/GUI/GUI.cpp:392 msgid "&Configuration" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:480 +#: xs/src/slic3r/GUI/GUI.cpp:416 msgid "You have unsaved changes " msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:480 +#: xs/src/slic3r/GUI/GUI.cpp:416 msgid ". Discard changes and continue anyway?" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:481 +#: xs/src/slic3r/GUI/GUI.cpp:417 msgid "Unsaved Presets" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:678 +#: xs/src/slic3r/GUI/GUI.cpp:619 msgid "Notice" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:683 +#: xs/src/slic3r/GUI/GUI.cpp:624 msgid "Attempt to free unreferenced scalar" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:685 xs/src/slic3r/GUI/WipeTowerDialog.cpp:44 +#: xs/src/slic3r/GUI/GUI.cpp:626 xs/src/slic3r/GUI/WipeTowerDialog.cpp:44 #: xs/src/slic3r/GUI/WipeTowerDialog.cpp:326 msgid "Warning" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:874 +#: xs/src/slic3r/GUI/GUI.cpp:815 msgid "Support" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:877 +#: xs/src/slic3r/GUI/GUI.cpp:818 msgid "Select what kind of support do you need" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:878 xs/src/libslic3r/GCode/PreviewData.cpp:157 +#: xs/src/slic3r/GUI/GUI.cpp:819 xs/src/libslic3r/GCode/PreviewData.cpp:157 msgid "None" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:879 xs/src/libslic3r/PrintConfig.cpp:1516 +#: xs/src/slic3r/GUI/GUI.cpp:820 xs/src/libslic3r/PrintConfig.cpp:1516 msgid "Support on build plate only" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:880 +#: xs/src/slic3r/GUI/GUI.cpp:821 msgid "Everywhere" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:892 xs/src/slic3r/GUI/Tab.cpp:869 +#: xs/src/slic3r/GUI/GUI.cpp:833 xs/src/slic3r/GUI/Tab.cpp:870 msgid "Brim" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:894 +#: xs/src/slic3r/GUI/GUI.cpp:835 msgid "" "This flag enables the brim that will be printed around each object on the " "first layer." msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:903 +#: xs/src/slic3r/GUI/GUI.cpp:844 msgid "Purging volumes" msgstr "" -#: xs/src/slic3r/GUI/GUI.cpp:945 +#: xs/src/slic3r/GUI/GUI.cpp:886 msgid "Export print config" msgstr "" @@ -587,95 +587,95 @@ msgstr "" msgid "Slic3r has encountered an error" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:100 +#: xs/src/slic3r/GUI/Tab.cpp:101 msgid "Save current " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:101 +#: xs/src/slic3r/GUI/Tab.cpp:102 msgid "Delete this preset" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:113 +#: xs/src/slic3r/GUI/Tab.cpp:114 msgid "" "Hover the cursor over buttons to find more information \n" "or click this button." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:741 +#: xs/src/slic3r/GUI/Tab.cpp:742 msgid "It's a default preset." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:742 +#: xs/src/slic3r/GUI/Tab.cpp:743 msgid "It's a system preset." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:743 +#: xs/src/slic3r/GUI/Tab.cpp:744 msgid "Current preset is inherited from " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:748 +#: xs/src/slic3r/GUI/Tab.cpp:749 msgid "It can't be deleted or modified. " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:749 +#: xs/src/slic3r/GUI/Tab.cpp:750 msgid "" "Any modifications should be saved as a new preset inherited from this one. " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:750 +#: xs/src/slic3r/GUI/Tab.cpp:751 msgid "To do that please specify a new name for the preset." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:754 +#: xs/src/slic3r/GUI/Tab.cpp:755 msgid "Additional information:" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:762 +#: xs/src/slic3r/GUI/Tab.cpp:763 msgid "printer model" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:764 +#: xs/src/slic3r/GUI/Tab.cpp:765 msgid "default print profile" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:767 +#: xs/src/slic3r/GUI/Tab.cpp:768 msgid "default filament profile" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:811 +#: xs/src/slic3r/GUI/Tab.cpp:812 msgid "Layers and perimeters" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:812 xs/src/libslic3r/PrintConfig.cpp:847 +#: xs/src/slic3r/GUI/Tab.cpp:813 xs/src/libslic3r/PrintConfig.cpp:847 msgid "Layer height" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:816 +#: xs/src/slic3r/GUI/Tab.cpp:817 msgid "Vertical shells" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:827 +#: xs/src/slic3r/GUI/Tab.cpp:828 msgid "Horizontal shells" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:828 xs/src/libslic3r/PrintConfig.cpp:1422 +#: xs/src/slic3r/GUI/Tab.cpp:829 xs/src/libslic3r/PrintConfig.cpp:1422 msgid "Solid layers" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:833 +#: xs/src/slic3r/GUI/Tab.cpp:834 msgid "Quality (slower slicing)" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:840 xs/src/slic3r/GUI/Tab.cpp:854 -#: xs/src/slic3r/GUI/Tab.cpp:948 xs/src/slic3r/GUI/Tab.cpp:951 -#: xs/src/slic3r/GUI/Tab.cpp:1300 xs/src/slic3r/GUI/Tab.cpp:1628 +#: xs/src/slic3r/GUI/Tab.cpp:841 xs/src/slic3r/GUI/Tab.cpp:855 +#: xs/src/slic3r/GUI/Tab.cpp:949 xs/src/slic3r/GUI/Tab.cpp:952 +#: xs/src/slic3r/GUI/Tab.cpp:1301 xs/src/slic3r/GUI/Tab.cpp:1629 #: xs/src/libslic3r/PrintConfig.cpp:107 xs/src/libslic3r/PrintConfig.cpp:237 #: xs/src/libslic3r/PrintConfig.cpp:799 xs/src/libslic3r/PrintConfig.cpp:1863 msgid "Advanced" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:844 xs/src/slic3r/GUI/Tab.cpp:845 -#: xs/src/slic3r/GUI/Tab.cpp:1152 xs/src/libslic3r/PrintConfig.cpp:87 +#: xs/src/slic3r/GUI/Tab.cpp:845 xs/src/slic3r/GUI/Tab.cpp:846 +#: xs/src/slic3r/GUI/Tab.cpp:1153 xs/src/libslic3r/PrintConfig.cpp:87 #: xs/src/libslic3r/PrintConfig.cpp:276 xs/src/libslic3r/PrintConfig.cpp:551 #: xs/src/libslic3r/PrintConfig.cpp:565 xs/src/libslic3r/PrintConfig.cpp:603 #: xs/src/libslic3r/PrintConfig.cpp:744 xs/src/libslic3r/PrintConfig.cpp:754 @@ -685,20 +685,20 @@ msgstr "" msgid "Infill" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:850 +#: xs/src/slic3r/GUI/Tab.cpp:851 msgid "Reducing printing time" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:862 +#: xs/src/slic3r/GUI/Tab.cpp:863 msgid "Skirt and brim" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:863 xs/src/libslic3r/GCode/PreviewData.cpp:166 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:91 +#: xs/src/slic3r/GUI/Tab.cpp:864 xs/src/libslic3r/GCode/PreviewData.cpp:166 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:98 msgid "Skirt" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:872 xs/src/slic3r/GUI/Tab.cpp:873 +#: xs/src/slic3r/GUI/Tab.cpp:873 xs/src/slic3r/GUI/Tab.cpp:874 #: xs/src/libslic3r/PrintConfig.cpp:220 xs/src/libslic3r/PrintConfig.cpp:1138 #: xs/src/libslic3r/PrintConfig.cpp:1488 xs/src/libslic3r/PrintConfig.cpp:1495 #: xs/src/libslic3r/PrintConfig.cpp:1507 xs/src/libslic3r/PrintConfig.cpp:1517 @@ -710,126 +710,126 @@ msgstr "" #: xs/src/libslic3r/PrintConfig.cpp:1640 xs/src/libslic3r/PrintConfig.cpp:1649 #: xs/src/libslic3r/PrintConfig.cpp:1657 xs/src/libslic3r/PrintConfig.cpp:1671 #: xs/src/libslic3r/GCode/PreviewData.cpp:167 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:92 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:99 msgid "Support material" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:878 +#: xs/src/slic3r/GUI/Tab.cpp:879 msgid "Raft" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:882 +#: xs/src/slic3r/GUI/Tab.cpp:883 msgid "Options for support material and raft" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:896 xs/src/libslic3r/PrintConfig.cpp:119 +#: xs/src/slic3r/GUI/Tab.cpp:897 xs/src/libslic3r/PrintConfig.cpp:119 #: xs/src/libslic3r/PrintConfig.cpp:307 xs/src/libslic3r/PrintConfig.cpp:698 #: xs/src/libslic3r/PrintConfig.cpp:810 xs/src/libslic3r/PrintConfig.cpp:1072 #: xs/src/libslic3r/PrintConfig.cpp:1309 xs/src/libslic3r/PrintConfig.cpp:1359 #: xs/src/libslic3r/PrintConfig.cpp:1410 xs/src/libslic3r/PrintConfig.cpp:1731 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:70 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:77 msgid "Speed" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:897 +#: xs/src/slic3r/GUI/Tab.cpp:898 msgid "Speed for print moves" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:909 +#: xs/src/slic3r/GUI/Tab.cpp:910 msgid "Speed for non-print moves" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:912 +#: xs/src/slic3r/GUI/Tab.cpp:913 msgid "Modifiers" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:915 +#: xs/src/slic3r/GUI/Tab.cpp:916 msgid "Acceleration control (advanced)" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:922 +#: xs/src/slic3r/GUI/Tab.cpp:923 msgid "Autospeed (advanced)" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:928 +#: xs/src/slic3r/GUI/Tab.cpp:929 msgid "Multiple Extruders" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:929 xs/src/slic3r/GUI/Tab.cpp:1470 +#: xs/src/slic3r/GUI/Tab.cpp:930 xs/src/slic3r/GUI/Tab.cpp:1471 #: xs/src/libslic3r/PrintConfig.cpp:337 xs/src/libslic3r/PrintConfig.cpp:765 #: xs/src/libslic3r/PrintConfig.cpp:1051 xs/src/libslic3r/PrintConfig.cpp:1380 #: xs/src/libslic3r/PrintConfig.cpp:1553 xs/src/libslic3r/PrintConfig.cpp:1579 msgid "Extruders" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:936 +#: xs/src/slic3r/GUI/Tab.cpp:937 msgid "Ooze prevention" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:940 xs/src/libslic3r/GCode/PreviewData.cpp:169 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:94 +#: xs/src/slic3r/GUI/Tab.cpp:941 xs/src/libslic3r/GCode/PreviewData.cpp:169 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:101 msgid "Wipe tower" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:952 +#: xs/src/slic3r/GUI/Tab.cpp:953 msgid "Extrusion width" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:962 +#: xs/src/slic3r/GUI/Tab.cpp:963 msgid "Overlap" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:965 +#: xs/src/slic3r/GUI/Tab.cpp:966 msgid "Flow" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:968 +#: xs/src/slic3r/GUI/Tab.cpp:969 msgid "Other" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:975 +#: xs/src/slic3r/GUI/Tab.cpp:976 msgid "Output options" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:976 +#: xs/src/slic3r/GUI/Tab.cpp:977 msgid "Sequential printing" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:978 +#: xs/src/slic3r/GUI/Tab.cpp:979 msgid "Extruder clearance (mm)" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:987 +#: xs/src/slic3r/GUI/Tab.cpp:988 msgid "Output file" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:993 xs/src/libslic3r/PrintConfig.cpp:1094 +#: xs/src/slic3r/GUI/Tab.cpp:994 xs/src/libslic3r/PrintConfig.cpp:1094 msgid "Post-processing scripts" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:999 xs/src/slic3r/GUI/Tab.cpp:1000 -#: xs/src/slic3r/GUI/Tab.cpp:1349 xs/src/slic3r/GUI/Tab.cpp:1350 -#: xs/src/slic3r/GUI/Tab.cpp:1671 xs/src/slic3r/GUI/Tab.cpp:1672 +#: xs/src/slic3r/GUI/Tab.cpp:1000 xs/src/slic3r/GUI/Tab.cpp:1001 +#: xs/src/slic3r/GUI/Tab.cpp:1350 xs/src/slic3r/GUI/Tab.cpp:1351 +#: xs/src/slic3r/GUI/Tab.cpp:1672 xs/src/slic3r/GUI/Tab.cpp:1673 msgid "Notes" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1006 xs/src/slic3r/GUI/Tab.cpp:1357 -#: xs/src/slic3r/GUI/Tab.cpp:1678 -msgid "Dependencies" -msgstr "" - #: xs/src/slic3r/GUI/Tab.cpp:1007 xs/src/slic3r/GUI/Tab.cpp:1358 #: xs/src/slic3r/GUI/Tab.cpp:1679 -msgid "Profile dependencies" +msgid "Dependencies" msgstr "" #: xs/src/slic3r/GUI/Tab.cpp:1008 xs/src/slic3r/GUI/Tab.cpp:1359 -#: xs/src/slic3r/GUI/Tab.cpp:2241 xs/src/libslic3r/PrintConfig.cpp:144 +#: xs/src/slic3r/GUI/Tab.cpp:1680 +msgid "Profile dependencies" +msgstr "" + +#: xs/src/slic3r/GUI/Tab.cpp:1009 xs/src/slic3r/GUI/Tab.cpp:1360 +#: xs/src/slic3r/GUI/Tab.cpp:2246 xs/src/libslic3r/PrintConfig.cpp:144 msgid "Compatible printers" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1041 -#, possible-c-format +#: xs/src/slic3r/GUI/Tab.cpp:1042 +#, no-c-format msgid "" "The Spiral Vase mode requires:\n" "- one perimeter\n" @@ -841,11 +841,11 @@ msgid "" "Shall I adjust those settings in order to enable Spiral Vase?" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1048 +#: xs/src/slic3r/GUI/Tab.cpp:1049 msgid "Spiral Vase" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1069 +#: xs/src/slic3r/GUI/Tab.cpp:1070 msgid "" "The Wipe Tower currently supports the non-soluble supports only\n" "if they are printed with the current extruder without triggering a tool " @@ -856,11 +856,11 @@ msgid "" "Shall I adjust those settings in order to enable the Wipe Tower?" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1073 xs/src/slic3r/GUI/Tab.cpp:1090 +#: xs/src/slic3r/GUI/Tab.cpp:1074 xs/src/slic3r/GUI/Tab.cpp:1091 msgid "Wipe Tower" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1087 +#: xs/src/slic3r/GUI/Tab.cpp:1088 msgid "" "For the Wipe Tower to work with the soluble supports, the support layers\n" "need to be synchronized with the object layers.\n" @@ -868,7 +868,7 @@ msgid "" "Shall I synchronize support layers in order to enable the Wipe Tower?" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1105 +#: xs/src/slic3r/GUI/Tab.cpp:1106 msgid "" "Supports work better, if the following feature is enabled:\n" "- Detect bridging perimeters\n" @@ -876,359 +876,359 @@ msgid "" "Shall I adjust those settings for supports?" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1108 +#: xs/src/slic3r/GUI/Tab.cpp:1109 msgid "Support Generator" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1150 +#: xs/src/slic3r/GUI/Tab.cpp:1151 msgid "The " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1150 -#, possible-c-format +#: xs/src/slic3r/GUI/Tab.cpp:1151 +#, no-c-format msgid "" " infill pattern is not supposed to work at 100% density.\n" "\n" "Shall I switch to rectilinear fill pattern?" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1255 xs/src/slic3r/GUI/Tab.cpp:1256 -#: lib/Slic3r/GUI/Plater.pm:384 +#: xs/src/slic3r/GUI/Tab.cpp:1256 xs/src/slic3r/GUI/Tab.cpp:1257 +#: lib/Slic3r/GUI/Plater.pm:388 msgid "Filament" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1263 +#: xs/src/slic3r/GUI/Tab.cpp:1264 msgid "Temperature " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1264 xs/src/libslic3r/PrintConfig.cpp:336 +#: xs/src/slic3r/GUI/Tab.cpp:1265 xs/src/libslic3r/PrintConfig.cpp:336 msgid "Extruder" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1269 +#: xs/src/slic3r/GUI/Tab.cpp:1270 msgid "Bed" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1274 +#: xs/src/slic3r/GUI/Tab.cpp:1275 msgid "Cooling" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1275 xs/src/libslic3r/PrintConfig.cpp:1006 +#: xs/src/slic3r/GUI/Tab.cpp:1276 xs/src/libslic3r/PrintConfig.cpp:1006 #: xs/src/libslic3r/PrintConfig.cpp:1801 msgid "Enable" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1286 +#: xs/src/slic3r/GUI/Tab.cpp:1287 msgid "Fan settings" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1287 +#: xs/src/slic3r/GUI/Tab.cpp:1288 msgid "Fan speed" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1295 +#: xs/src/slic3r/GUI/Tab.cpp:1296 msgid "Cooling thresholds" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1301 +#: xs/src/slic3r/GUI/Tab.cpp:1302 msgid "Filament properties" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1305 +#: xs/src/slic3r/GUI/Tab.cpp:1306 msgid "Print speed override" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1315 +#: xs/src/slic3r/GUI/Tab.cpp:1316 msgid "Toolchange parameters with single extruder MM printers" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1319 +#: xs/src/slic3r/GUI/Tab.cpp:1320 msgid "Ramming" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1321 +#: xs/src/slic3r/GUI/Tab.cpp:1322 msgid "Ramming settings" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1336 xs/src/slic3r/GUI/Tab.cpp:1634 +#: xs/src/slic3r/GUI/Tab.cpp:1337 xs/src/slic3r/GUI/Tab.cpp:1635 msgid "Custom G-code" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1337 xs/src/slic3r/GUI/Tab.cpp:1635 +#: xs/src/slic3r/GUI/Tab.cpp:1338 xs/src/slic3r/GUI/Tab.cpp:1636 #: xs/src/libslic3r/PrintConfig.cpp:1450 xs/src/libslic3r/PrintConfig.cpp:1465 msgid "Start G-code" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1343 xs/src/slic3r/GUI/Tab.cpp:1641 +#: xs/src/slic3r/GUI/Tab.cpp:1344 xs/src/slic3r/GUI/Tab.cpp:1642 #: xs/src/libslic3r/PrintConfig.cpp:246 xs/src/libslic3r/PrintConfig.cpp:256 msgid "End G-code" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1438 xs/src/slic3r/GUI/Preferences.cpp:17 +#: xs/src/slic3r/GUI/Tab.cpp:1439 xs/src/slic3r/GUI/Preferences.cpp:17 msgid "General" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1439 +#: xs/src/slic3r/GUI/Tab.cpp:1440 msgid "Size and coordinates" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1441 xs/src/libslic3r/PrintConfig.cpp:34 +#: xs/src/slic3r/GUI/Tab.cpp:1442 xs/src/libslic3r/PrintConfig.cpp:34 msgid "Bed shape" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1443 xs/src/slic3r/GUI/Tab.cpp:2209 +#: xs/src/slic3r/GUI/Tab.cpp:1444 xs/src/slic3r/GUI/Tab.cpp:2214 msgid " Set " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1466 +#: xs/src/slic3r/GUI/Tab.cpp:1467 msgid "Capabilities" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1471 +#: xs/src/slic3r/GUI/Tab.cpp:1472 msgid "Number of extruders of the printer." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1496 +#: xs/src/slic3r/GUI/Tab.cpp:1497 msgid "USB/Serial connection" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1497 xs/src/libslic3r/PrintConfig.cpp:1301 +#: xs/src/slic3r/GUI/Tab.cpp:1498 xs/src/libslic3r/PrintConfig.cpp:1301 msgid "Serial port" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1502 +#: xs/src/slic3r/GUI/Tab.cpp:1503 msgid "Rescan serial ports" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1511 xs/src/slic3r/GUI/Tab.cpp:1558 +#: xs/src/slic3r/GUI/Tab.cpp:1512 xs/src/slic3r/GUI/Tab.cpp:1559 msgid "Test" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1524 +#: xs/src/slic3r/GUI/Tab.cpp:1525 msgid "Connection to printer works correctly." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1524 xs/src/slic3r/GUI/Tab.cpp:1568 +#: xs/src/slic3r/GUI/Tab.cpp:1525 xs/src/slic3r/GUI/Tab.cpp:1569 msgid "Success!" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1527 +#: xs/src/slic3r/GUI/Tab.cpp:1528 msgid "Connection failed." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1539 xs/src/slic3r/Utils/OctoPrint.cpp:50 +#: xs/src/slic3r/GUI/Tab.cpp:1540 xs/src/slic3r/Utils/OctoPrint.cpp:50 msgid "OctoPrint upload" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1542 xs/src/slic3r/GUI/Tab.cpp:1591 +#: xs/src/slic3r/GUI/Tab.cpp:1543 xs/src/slic3r/GUI/Tab.cpp:1592 msgid " Browse " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1568 +#: xs/src/slic3r/GUI/Tab.cpp:1569 msgid "Connection to OctoPrint works correctly." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1571 +#: xs/src/slic3r/GUI/Tab.cpp:1572 msgid "Could not connect to OctoPrint" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1571 +#: xs/src/slic3r/GUI/Tab.cpp:1572 msgid "Note: OctoPrint version at least 1.1.0 is required." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1597 +#: xs/src/slic3r/GUI/Tab.cpp:1598 msgid "Certificate files (*.crt, *.pem)|*.crt;*.pem|All files|*.*" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1598 +#: xs/src/slic3r/GUI/Tab.cpp:1599 msgid "Open CA certificate file" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1612 +#: xs/src/slic3r/GUI/Tab.cpp:1613 msgid "" "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-" "signed certificate." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1647 xs/src/libslic3r/PrintConfig.cpp:48 +#: xs/src/slic3r/GUI/Tab.cpp:1648 xs/src/libslic3r/PrintConfig.cpp:48 msgid "Before layer change G-code" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1653 xs/src/libslic3r/PrintConfig.cpp:836 +#: xs/src/slic3r/GUI/Tab.cpp:1654 xs/src/libslic3r/PrintConfig.cpp:836 msgid "After layer change G-code" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1659 xs/src/libslic3r/PrintConfig.cpp:1708 +#: xs/src/slic3r/GUI/Tab.cpp:1660 xs/src/libslic3r/PrintConfig.cpp:1708 msgid "Tool change G-code" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1665 +#: xs/src/slic3r/GUI/Tab.cpp:1666 msgid "Between objects G-code (for sequential printing)" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1716 xs/src/slic3r/GUI/Tab.cpp:1722 +#: xs/src/slic3r/GUI/Tab.cpp:1718 xs/src/slic3r/GUI/Tab.cpp:1726 msgid "Single extruder MM setup" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1723 +#: xs/src/slic3r/GUI/Tab.cpp:1727 msgid "Single extruder multimaterial parameters" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1734 xs/src/libslic3r/GCode/PreviewData.cpp:440 +#: xs/src/slic3r/GUI/Tab.cpp:1739 xs/src/libslic3r/GCode/PreviewData.cpp:440 #, possible-c-format msgid "Extruder %d" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1741 +#: xs/src/slic3r/GUI/Tab.cpp:1746 msgid "Layer height limits" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1746 +#: xs/src/slic3r/GUI/Tab.cpp:1751 msgid "Position (for multi-extruder printers)" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1749 +#: xs/src/slic3r/GUI/Tab.cpp:1754 msgid "Retraction" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1752 +#: xs/src/slic3r/GUI/Tab.cpp:1757 msgid "Only lift Z" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1765 +#: xs/src/slic3r/GUI/Tab.cpp:1770 msgid "" "Retraction when tool is disabled (advanced settings for multi-extruder " "setups)" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1769 lib/Slic3r/GUI/Plater.pm:160 -#: lib/Slic3r/GUI/Plater.pm:2173 +#: xs/src/slic3r/GUI/Tab.cpp:1774 lib/Slic3r/GUI/Plater.pm:160 +#: lib/Slic3r/GUI/Plater.pm:2189 msgid "Preview" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1848 +#: xs/src/slic3r/GUI/Tab.cpp:1853 msgid "" "The Wipe option is not available when using the Firmware Retraction mode.\n" "\n" "Shall I disable it in order to enable Firmware Retraction?" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:1850 +#: xs/src/slic3r/GUI/Tab.cpp:1855 msgid "Firmware Retraction" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2022 +#: xs/src/slic3r/GUI/Tab.cpp:2027 msgid "Default " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2022 +#: xs/src/slic3r/GUI/Tab.cpp:2027 msgid " preset" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2023 +#: xs/src/slic3r/GUI/Tab.cpp:2028 msgid " preset\n" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2041 +#: xs/src/slic3r/GUI/Tab.cpp:2046 msgid "" "\n" "\n" "is not compatible with printer\n" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2041 +#: xs/src/slic3r/GUI/Tab.cpp:2046 msgid "" "\n" "\n" "and it has the following unsaved changes:" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2042 +#: xs/src/slic3r/GUI/Tab.cpp:2047 msgid "" "\n" "\n" "has the following unsaved changes:" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2044 +#: xs/src/slic3r/GUI/Tab.cpp:2049 msgid "" "\n" "\n" "Discard changes and continue anyway?" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2045 +#: xs/src/slic3r/GUI/Tab.cpp:2050 msgid "Unsaved Changes" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2119 +#: xs/src/slic3r/GUI/Tab.cpp:2124 msgid "The supplied name is empty. It can't be saved." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2124 +#: xs/src/slic3r/GUI/Tab.cpp:2129 msgid "Cannot overwrite a system profile." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2128 +#: xs/src/slic3r/GUI/Tab.cpp:2133 msgid "Cannot overwrite an external profile." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2152 +#: xs/src/slic3r/GUI/Tab.cpp:2157 msgid "remove" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2152 +#: xs/src/slic3r/GUI/Tab.cpp:2157 msgid "delete" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2153 +#: xs/src/slic3r/GUI/Tab.cpp:2158 msgid "Are you sure you want to " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2153 +#: xs/src/slic3r/GUI/Tab.cpp:2158 msgid " the selected preset?" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2154 +#: xs/src/slic3r/GUI/Tab.cpp:2159 msgid "Remove" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2154 lib/Slic3r/GUI/Plater.pm:188 -#: lib/Slic3r/GUI/Plater.pm:206 lib/Slic3r/GUI/Plater.pm:2069 +#: xs/src/slic3r/GUI/Tab.cpp:2159 lib/Slic3r/GUI/Plater.pm:188 +#: lib/Slic3r/GUI/Plater.pm:206 lib/Slic3r/GUI/Plater.pm:2085 msgid "Delete" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2155 +#: xs/src/slic3r/GUI/Tab.cpp:2160 msgid " Preset" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2208 +#: xs/src/slic3r/GUI/Tab.cpp:2213 msgid "All" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2240 +#: xs/src/slic3r/GUI/Tab.cpp:2245 msgid "Select the printers this profile is compatible with." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2286 xs/src/slic3r/GUI/Tab.cpp:2372 -#: xs/src/slic3r/GUI/Preset.cpp:605 xs/src/slic3r/GUI/Preset.cpp:645 -#: xs/src/slic3r/GUI/Preset.cpp:670 xs/src/slic3r/GUI/Preset.cpp:702 -#: xs/src/slic3r/GUI/PresetBundle.cpp:1068 -#: xs/src/slic3r/GUI/PresetBundle.cpp:1121 lib/Slic3r/GUI/Plater.pm:564 +#: xs/src/slic3r/GUI/Tab.cpp:2291 xs/src/slic3r/GUI/Tab.cpp:2377 +#: xs/src/slic3r/GUI/Preset.cpp:613 xs/src/slic3r/GUI/Preset.cpp:653 +#: xs/src/slic3r/GUI/Preset.cpp:678 xs/src/slic3r/GUI/Preset.cpp:710 +#: xs/src/slic3r/GUI/PresetBundle.cpp:1122 +#: xs/src/slic3r/GUI/PresetBundle.cpp:1175 lib/Slic3r/GUI/Plater.pm:573 msgid "System presets" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2287 xs/src/slic3r/GUI/Tab.cpp:2373 +#: xs/src/slic3r/GUI/Tab.cpp:2292 xs/src/slic3r/GUI/Tab.cpp:2378 msgid "Default presets" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2442 +#: xs/src/slic3r/GUI/Tab.cpp:2447 msgid "" "LOCKED LOCK;indicates that the settings are the same as the system values " "for the current option group" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2445 +#: xs/src/slic3r/GUI/Tab.cpp:2450 msgid "" "UNLOCKED LOCK;indicates that some settings were changed and are not equal to " "the system values for the current option group.\n" @@ -1236,13 +1236,13 @@ msgid "" "to the system values." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2451 +#: xs/src/slic3r/GUI/Tab.cpp:2456 msgid "" "WHITE BULLET;for the left button: \tindicates a non-system preset,\n" "for the right button: \tindicates that the settings hasn't been modified." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2455 +#: xs/src/slic3r/GUI/Tab.cpp:2460 msgid "" "BACK ARROW;indicates that the settings were changed and are not equal to the " "last saved preset for the current option group.\n" @@ -1250,30 +1250,30 @@ msgid "" "to the last saved preset." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2481 +#: xs/src/slic3r/GUI/Tab.cpp:2486 msgid "" "LOCKED LOCK icon indicates that the settings are the same as the system " "values for the current option group" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2483 +#: xs/src/slic3r/GUI/Tab.cpp:2488 msgid "" "UNLOCKED LOCK icon indicates that some settings were changed and are not " "equal to the system values for the current option group.\n" "Click to reset all settings for current option group to the system values." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2486 +#: xs/src/slic3r/GUI/Tab.cpp:2491 msgid "WHITE BULLET icon indicates a non system preset." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2489 +#: xs/src/slic3r/GUI/Tab.cpp:2494 msgid "" "WHITE BULLET icon indicates that the settings are the same as in the last " "saved preset for the current option group." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2491 +#: xs/src/slic3r/GUI/Tab.cpp:2496 msgid "" "BACK ARROW icon indicates that the settings were changed and are not equal " "to the last saved preset for the current option group.\n" @@ -1281,46 +1281,46 @@ msgid "" "preset." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2497 +#: xs/src/slic3r/GUI/Tab.cpp:2502 msgid "" "LOCKED LOCK icon indicates that the value is the same as the system value." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2498 +#: xs/src/slic3r/GUI/Tab.cpp:2503 msgid "" "UNLOCKED LOCK icon indicates that the value was changed and is not equal to " "the system value.\n" "Click to reset current value to the system value." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2504 +#: xs/src/slic3r/GUI/Tab.cpp:2509 msgid "" "WHITE BULLET icon indicates that the value is the same as in the last saved " "preset." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2505 +#: xs/src/slic3r/GUI/Tab.cpp:2510 msgid "" "BACK ARROW icon indicates that the value was changed and is not equal to the " "last saved preset.\n" "Click to reset current value to the last saved preset." msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2575 lib/Slic3r/GUI/MainFrame.pm:445 -#: lib/Slic3r/GUI/Plater.pm:1672 +#: xs/src/slic3r/GUI/Tab.cpp:2580 lib/Slic3r/GUI/MainFrame.pm:448 +#: lib/Slic3r/GUI/Plater.pm:1685 msgid "Save " msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2575 +#: xs/src/slic3r/GUI/Tab.cpp:2580 msgid " as:" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2609 +#: xs/src/slic3r/GUI/Tab.cpp:2614 msgid "" "The supplied name is not valid; the following characters are not allowed:" msgstr "" -#: xs/src/slic3r/GUI/Tab.cpp:2612 +#: xs/src/slic3r/GUI/Tab.cpp:2617 msgid "The supplied name is not available." msgstr "" @@ -1332,11 +1332,11 @@ msgstr "" msgid "Filament Settings" msgstr "" -#: xs/src/slic3r/GUI/Tab.hpp:325 +#: xs/src/slic3r/GUI/Tab.hpp:326 msgid "Printer Settings" msgstr "" -#: xs/src/slic3r/GUI/Tab.hpp:340 +#: xs/src/slic3r/GUI/Tab.hpp:341 msgid "Save preset" msgstr "" @@ -1353,8 +1353,8 @@ msgstr "" msgid "Input value is out of range" msgstr "" -#: xs/src/slic3r/GUI/Preset.cpp:649 xs/src/slic3r/GUI/Preset.cpp:706 -#: xs/src/slic3r/GUI/PresetBundle.cpp:1126 lib/Slic3r/GUI/Plater.pm:565 +#: xs/src/slic3r/GUI/Preset.cpp:657 xs/src/slic3r/GUI/Preset.cpp:714 +#: xs/src/slic3r/GUI/PresetBundle.cpp:1180 lib/Slic3r/GUI/Plater.pm:574 msgid "User presets" msgstr "" @@ -1773,7 +1773,7 @@ msgstr "" msgid "Error while uploading to the OctoPrint server" msgstr "" -#: xs/src/slic3r/Utils/OctoPrint.cpp:51 lib/Slic3r/GUI/Plater.pm:1505 +#: xs/src/slic3r/Utils/OctoPrint.cpp:51 lib/Slic3r/GUI/Plater.pm:1516 msgid "Sending G-code file to the OctoPrint server..." msgstr "" @@ -2156,7 +2156,7 @@ msgid "Extra perimeters if needed" msgstr "" #: xs/src/libslic3r/PrintConfig.cpp:328 -#, possible-c-format +#, no-c-format msgid "" "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r " "keeps adding perimeters, until more than 70% of the loop immediately above " @@ -2170,7 +2170,7 @@ msgid "" "extruders." msgstr "" -#: xs/src/libslic3r/PrintConfig.cpp:349 lib/Slic3r/GUI/Plater/3DPreview.pm:68 +#: xs/src/libslic3r/PrintConfig.cpp:349 lib/Slic3r/GUI/Plater/3DPreview.pm:75 msgid "Height" msgstr "" @@ -2387,7 +2387,7 @@ msgstr "" msgid "Soluble material is most likely used for a soluble support." msgstr "" -#: xs/src/libslic3r/PrintConfig.cpp:539 lib/Slic3r/GUI/Plater.pm:469 +#: xs/src/libslic3r/PrintConfig.cpp:539 lib/Slic3r/GUI/Plater.pm:474 msgid "Cost" msgstr "" @@ -2417,7 +2417,7 @@ msgid "Fill density" msgstr "" #: xs/src/libslic3r/PrintConfig.cpp:566 -#, possible-c-format +#, no-c-format msgid "Density of internal infill, expressed in the range 0% - 100%." msgstr "" @@ -2491,7 +2491,7 @@ msgstr "" #: xs/src/libslic3r/PrintConfig.cpp:697 #: xs/src/libslic3r/GCode/PreviewData.cpp:165 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:90 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:97 msgid "Gap fill" msgstr "" @@ -2641,7 +2641,7 @@ msgid "This setting represents the maximum speed of your fan." msgstr "" #: xs/src/libslic3r/PrintConfig.cpp:867 -#, possible-c-format +#, no-c-format msgid "" "This is the highest printable layer height for this extruder, used to cap " "the variable layer height and support layer height. Maximum recommended " @@ -2720,7 +2720,7 @@ msgid "Slic3r will not scale speed down below this speed." msgstr "" #: xs/src/libslic3r/PrintConfig.cpp:951 -msgid "Minimum extrusion length" +msgid "Minimal filament extrusion length" msgstr "" #: xs/src/libslic3r/PrintConfig.cpp:952 @@ -3190,7 +3190,7 @@ msgstr "" #: xs/src/libslic3r/PrintConfig.cpp:1399 xs/src/libslic3r/PrintConfig.cpp:1409 #: xs/src/libslic3r/GCode/PreviewData.cpp:162 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:87 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:94 msgid "Solid infill" msgstr "" @@ -3386,7 +3386,7 @@ msgstr "" #: xs/src/libslic3r/PrintConfig.cpp:1605 #: xs/src/libslic3r/GCode/PreviewData.cpp:168 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:93 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:100 msgid "Support material interface" msgstr "" @@ -3489,7 +3489,7 @@ msgstr "" #: xs/src/libslic3r/PrintConfig.cpp:1719 xs/src/libslic3r/PrintConfig.cpp:1730 #: xs/src/libslic3r/GCode/PreviewData.cpp:163 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:88 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:95 msgid "Top solid infill" msgstr "" @@ -3523,7 +3523,8 @@ msgstr "" msgid "Top solid layers" msgstr "" -#: xs/src/libslic3r/PrintConfig.cpp:1753 lib/Slic3r/GUI/Plater/3DPreview.pm:98 +#: xs/src/libslic3r/PrintConfig.cpp:1753 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:105 msgid "Travel" msgstr "" @@ -3628,7 +3629,7 @@ msgstr "" msgid "Y coordinate of the left front corner of a wipe tower" msgstr "" -#: xs/src/libslic3r/PrintConfig.cpp:1841 lib/Slic3r/GUI/Plater/3DPreview.pm:69 +#: xs/src/libslic3r/PrintConfig.cpp:1841 lib/Slic3r/GUI/Plater/3DPreview.pm:76 msgid "Width" msgstr "" @@ -3680,27 +3681,27 @@ msgid "" msgstr "" #: xs/src/libslic3r/GCode/PreviewData.cpp:158 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:83 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:90 msgid "Perimeter" msgstr "" #: xs/src/libslic3r/GCode/PreviewData.cpp:159 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:84 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:91 msgid "External perimeter" msgstr "" #: xs/src/libslic3r/GCode/PreviewData.cpp:160 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:85 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:92 msgid "Overhang perimeter" msgstr "" #: xs/src/libslic3r/GCode/PreviewData.cpp:161 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:86 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:93 msgid "Internal infill" msgstr "" #: xs/src/libslic3r/GCode/PreviewData.cpp:164 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:89 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:96 msgid "Bridge infill" msgstr "" @@ -3709,7 +3710,7 @@ msgid "Mixed" msgstr "" #: xs/src/libslic3r/GCode/PreviewData.cpp:362 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:67 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:74 msgid "Feature type" msgstr "" @@ -3730,7 +3731,7 @@ msgid "Volumetric flow rate (mm3/s)" msgstr "" #: xs/src/libslic3r/GCode/PreviewData.cpp:372 -#: lib/Slic3r/GUI/Plater/3DPreview.pm:72 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:79 msgid "Tool" msgstr "" @@ -3756,7 +3757,7 @@ msgid "Controller" msgstr "" #: lib/Slic3r/GUI/MainFrame.pm:194 -msgid "Open STL/OBJ/AMF…\tCtrl+O" +msgid "Open STL/OBJ/AMF/3MF…\tCtrl+O" msgstr "" #: lib/Slic3r/GUI/MainFrame.pm:194 @@ -4012,131 +4013,139 @@ msgid "Show system information" msgstr "" #: lib/Slic3r/GUI/MainFrame.pm:337 -msgid "Report an Issue" +msgid "Show &Configuration Folder" msgstr "" #: lib/Slic3r/GUI/MainFrame.pm:337 +msgid "Show user configuration folder (datadir)" +msgstr "" + +#: lib/Slic3r/GUI/MainFrame.pm:340 +msgid "Report an Issue" +msgstr "" + +#: lib/Slic3r/GUI/MainFrame.pm:340 msgid "Report an issue on the Slic3r Prusa Edition" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:340 +#: lib/Slic3r/GUI/MainFrame.pm:343 msgid "&About Slic3r" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:340 +#: lib/Slic3r/GUI/MainFrame.pm:343 msgid "Show about dialog" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:350 +#: lib/Slic3r/GUI/MainFrame.pm:353 msgid "&File" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:351 +#: lib/Slic3r/GUI/MainFrame.pm:354 msgid "&Plater" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:352 +#: lib/Slic3r/GUI/MainFrame.pm:355 msgid "&Object" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:353 +#: lib/Slic3r/GUI/MainFrame.pm:356 msgid "&Window" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:354 +#: lib/Slic3r/GUI/MainFrame.pm:357 msgid "&View" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:357 +#: lib/Slic3r/GUI/MainFrame.pm:360 msgid "&Help" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:388 +#: lib/Slic3r/GUI/MainFrame.pm:391 msgid "Choose a file to slice (STL/OBJ/AMF/3MF/PRUSA):" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:400 +#: lib/Slic3r/GUI/MainFrame.pm:403 msgid "No previously sliced file." msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:401 lib/Slic3r/GUI/Plater.pm:1354 +#: lib/Slic3r/GUI/MainFrame.pm:404 lib/Slic3r/GUI/Plater.pm:1363 msgid "Error" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:405 +#: lib/Slic3r/GUI/MainFrame.pm:408 msgid "Previously sliced file (" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:405 +#: lib/Slic3r/GUI/MainFrame.pm:408 msgid ") not found." msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:406 +#: lib/Slic3r/GUI/MainFrame.pm:409 msgid "File Not Found" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:445 +#: lib/Slic3r/GUI/MainFrame.pm:448 msgid "SVG" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:445 +#: lib/Slic3r/GUI/MainFrame.pm:448 msgid "G-code" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:445 lib/Slic3r/GUI/Plater.pm:1672 +#: lib/Slic3r/GUI/MainFrame.pm:448 lib/Slic3r/GUI/Plater.pm:1685 msgid " file as:" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:459 +#: lib/Slic3r/GUI/MainFrame.pm:462 msgid "Slicing…" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:459 +#: lib/Slic3r/GUI/MainFrame.pm:462 msgid "Processing " msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:479 +#: lib/Slic3r/GUI/MainFrame.pm:482 msgid " was successfully sliced." msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:481 +#: lib/Slic3r/GUI/MainFrame.pm:484 msgid "Slicing Done!" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:497 +#: lib/Slic3r/GUI/MainFrame.pm:500 msgid "Select the STL file to repair:" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:511 +#: lib/Slic3r/GUI/MainFrame.pm:514 msgid "Save OBJ file (less prone to coordinate errors than STL) as:" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:525 +#: lib/Slic3r/GUI/MainFrame.pm:528 msgid "Your file was repaired." msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:525 +#: lib/Slic3r/GUI/MainFrame.pm:528 msgid "Repair" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:536 +#: lib/Slic3r/GUI/MainFrame.pm:539 msgid "Save configuration as:" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:554 lib/Slic3r/GUI/MainFrame.pm:598 +#: lib/Slic3r/GUI/MainFrame.pm:557 lib/Slic3r/GUI/MainFrame.pm:601 msgid "Select configuration to load:" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:577 +#: lib/Slic3r/GUI/MainFrame.pm:580 msgid "Save presets bundle as:" msgstr "" -#: lib/Slic3r/GUI/MainFrame.pm:618 +#: lib/Slic3r/GUI/MainFrame.pm:621 #, possible-perl-format msgid "%d presets successfully imported." msgstr "" -#: lib/Slic3r/GUI/Plater.pm:112 lib/Slic3r/GUI/Plater.pm:2172 +#: lib/Slic3r/GUI/Plater.pm:112 lib/Slic3r/GUI/Plater.pm:2188 msgid "3D" msgstr "" @@ -4181,17 +4190,17 @@ msgid "Scale…" msgstr "" #: lib/Slic3r/GUI/Plater.pm:198 lib/Slic3r/GUI/Plater.pm:214 -#: lib/Slic3r/GUI/Plater.pm:2147 +#: lib/Slic3r/GUI/Plater.pm:2163 msgid "Split" msgstr "" #: lib/Slic3r/GUI/Plater.pm:199 lib/Slic3r/GUI/Plater.pm:215 -#: lib/Slic3r/GUI/Plater.pm:2150 +#: lib/Slic3r/GUI/Plater.pm:2166 msgid "Cut…" msgstr "" #: lib/Slic3r/GUI/Plater.pm:201 lib/Slic3r/GUI/Plater.pm:216 -#: lib/Slic3r/GUI/Plater.pm:2154 +#: lib/Slic3r/GUI/Plater.pm:2170 msgid "Settings…" msgstr "" @@ -4203,422 +4212,422 @@ msgstr "" msgid "Layer editing" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:236 +#: lib/Slic3r/GUI/Plater.pm:240 msgid "Name" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:237 lib/Slic3r/GUI/Plater.pm:954 +#: lib/Slic3r/GUI/Plater.pm:241 lib/Slic3r/GUI/Plater.pm:963 msgid "Copies" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:238 lib/Slic3r/GUI/Plater.pm:1110 -#: lib/Slic3r/GUI/Plater.pm:1115 lib/Slic3r/GUI/Plater.pm:2116 +#: lib/Slic3r/GUI/Plater.pm:242 lib/Slic3r/GUI/Plater.pm:1119 +#: lib/Slic3r/GUI/Plater.pm:1124 lib/Slic3r/GUI/Plater.pm:2132 msgid "Scale" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:252 +#: lib/Slic3r/GUI/Plater.pm:256 msgid "Export G-code…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:253 +#: lib/Slic3r/GUI/Plater.pm:257 msgid "Slice now" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:254 +#: lib/Slic3r/GUI/Plater.pm:258 msgid "Print…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:255 +#: lib/Slic3r/GUI/Plater.pm:259 msgid "Send to printer" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:256 +#: lib/Slic3r/GUI/Plater.pm:260 msgid "Export STL…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:383 +#: lib/Slic3r/GUI/Plater.pm:387 msgid "Print settings" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:385 +#: lib/Slic3r/GUI/Plater.pm:389 msgid "Printer" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:417 +#: lib/Slic3r/GUI/Plater.pm:422 msgid "Info" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:428 +#: lib/Slic3r/GUI/Plater.pm:433 msgid "Volume" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:429 +#: lib/Slic3r/GUI/Plater.pm:434 msgid "Facets" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:430 +#: lib/Slic3r/GUI/Plater.pm:435 msgid "Materials" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:431 +#: lib/Slic3r/GUI/Plater.pm:436 msgid "Manifold" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:457 +#: lib/Slic3r/GUI/Plater.pm:462 msgid "Sliced Info" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:466 +#: lib/Slic3r/GUI/Plater.pm:471 msgid "Used Filament (m)" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:467 +#: lib/Slic3r/GUI/Plater.pm:472 msgid "Used Filament (mm³)" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:468 +#: lib/Slic3r/GUI/Plater.pm:473 msgid "Used Filament (g)" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:470 +#: lib/Slic3r/GUI/Plater.pm:475 msgid "Estimated printing time" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:674 +#: lib/Slic3r/GUI/Plater.pm:683 msgid "Loading…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:674 lib/Slic3r/GUI/Plater.pm:688 +#: lib/Slic3r/GUI/Plater.pm:683 lib/Slic3r/GUI/Plater.pm:697 msgid "Processing input file\n" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:711 +#: lib/Slic3r/GUI/Plater.pm:720 msgid "" "This file contains several objects positioned at multiple heights. Instead " "of considering them as multiple objects, should I consider\n" "this file as a single object having multiple parts?\n" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:714 lib/Slic3r/GUI/Plater.pm:731 +#: lib/Slic3r/GUI/Plater.pm:723 lib/Slic3r/GUI/Plater.pm:740 msgid "Multi-part object detected" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:728 +#: lib/Slic3r/GUI/Plater.pm:737 msgid "" "Multiple objects were loaded for a multi-material printer.\n" "Instead of considering them as multiple objects, should I consider\n" "these files to represent a single object having multiple parts?\n" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:740 +#: lib/Slic3r/GUI/Plater.pm:749 msgid "Loaded " msgstr "" -#: lib/Slic3r/GUI/Plater.pm:798 +#: lib/Slic3r/GUI/Plater.pm:807 msgid "" "Your object appears to be too large, so it was automatically scaled down to " "fit your print bed." msgstr "" -#: lib/Slic3r/GUI/Plater.pm:799 +#: lib/Slic3r/GUI/Plater.pm:808 msgid "Object too large?" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:954 +#: lib/Slic3r/GUI/Plater.pm:963 msgid "Enter the number of copies of the selected object:" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:981 +#: lib/Slic3r/GUI/Plater.pm:990 msgid "" "\n" "Non-positive value." msgstr "" -#: lib/Slic3r/GUI/Plater.pm:982 +#: lib/Slic3r/GUI/Plater.pm:991 msgid "" "\n" "Not a numeric value." msgstr "" -#: lib/Slic3r/GUI/Plater.pm:983 +#: lib/Slic3r/GUI/Plater.pm:992 msgid "Slic3r Error" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1004 +#: lib/Slic3r/GUI/Plater.pm:1013 msgid "Enter the rotation angle:" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1004 +#: lib/Slic3r/GUI/Plater.pm:1013 msgid "Rotate around " msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1004 +#: lib/Slic3r/GUI/Plater.pm:1013 msgid "Invalid rotation angle entered" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1084 +#: lib/Slic3r/GUI/Plater.pm:1093 #, possible-perl-format msgid "Enter the new size for the selected object (print bed: %smm):" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1085 lib/Slic3r/GUI/Plater.pm:1089 +#: lib/Slic3r/GUI/Plater.pm:1094 lib/Slic3r/GUI/Plater.pm:1098 msgid "Scale along " msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1085 lib/Slic3r/GUI/Plater.pm:1089 -#: lib/Slic3r/GUI/Plater.pm:1110 lib/Slic3r/GUI/Plater.pm:1115 +#: lib/Slic3r/GUI/Plater.pm:1094 lib/Slic3r/GUI/Plater.pm:1098 +#: lib/Slic3r/GUI/Plater.pm:1119 lib/Slic3r/GUI/Plater.pm:1124 msgid "Invalid scaling value entered" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1089 lib/Slic3r/GUI/Plater.pm:1115 -#, possible-perl-format +#: lib/Slic3r/GUI/Plater.pm:1098 lib/Slic3r/GUI/Plater.pm:1124 +#, no-perl-format msgid "Enter the scale % for the selected object:" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1110 +#: lib/Slic3r/GUI/Plater.pm:1119 msgid "Enter the new max size for the selected object:" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1166 +#: lib/Slic3r/GUI/Plater.pm:1175 msgid "" "The selected object can't be split because it contains more than one volume/" "material." msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1175 +#: lib/Slic3r/GUI/Plater.pm:1184 msgid "" "The selected object couldn't be split because it contains only one part." msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1340 +#: lib/Slic3r/GUI/Plater.pm:1349 msgid "Slicing cancelled" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1354 +#: lib/Slic3r/GUI/Plater.pm:1363 msgid "Another export job is currently running." msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1502 +#: lib/Slic3r/GUI/Plater.pm:1513 msgid "File added to print queue" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1508 +#: lib/Slic3r/GUI/Plater.pm:1519 msgid "G-code file exported to " msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1511 +#: lib/Slic3r/GUI/Plater.pm:1522 msgid "Export failed" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1523 +#: lib/Slic3r/GUI/Plater.pm:1534 msgid "OctoPrint upload finished." msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1566 lib/Slic3r/GUI/Plater.pm:1608 +#: lib/Slic3r/GUI/Plater.pm:1577 lib/Slic3r/GUI/Plater.pm:1619 msgid "STL file exported to " msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1619 +#: lib/Slic3r/GUI/Plater.pm:1630 msgid "AMF file exported to " msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1623 +#: lib/Slic3r/GUI/Plater.pm:1634 msgid "Error exporting AMF file " msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1635 +#: lib/Slic3r/GUI/Plater.pm:1646 msgid "3MF file exported to " msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1639 +#: lib/Slic3r/GUI/Plater.pm:1650 msgid "Error exporting 3MF file " msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1997 +#: lib/Slic3r/GUI/Plater.pm:2010 #, possible-perl-format msgid "%d (%d shells)" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:1999 +#: lib/Slic3r/GUI/Plater.pm:2012 #, possible-perl-format msgid "Auto-repaired (%d errors)" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2004 +#: lib/Slic3r/GUI/Plater.pm:2017 #, possible-perl-format msgid "" "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d " "facets reversed, %d backwards edges" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2009 +#: lib/Slic3r/GUI/Plater.pm:2022 msgid "Yes" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2069 +#: lib/Slic3r/GUI/Plater.pm:2085 msgid "Remove the selected object" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2072 +#: lib/Slic3r/GUI/Plater.pm:2088 msgid "Increase copies" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2072 +#: lib/Slic3r/GUI/Plater.pm:2088 msgid "Place one more copy of the selected object" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2075 +#: lib/Slic3r/GUI/Plater.pm:2091 msgid "Decrease copies" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2075 +#: lib/Slic3r/GUI/Plater.pm:2091 msgid "Remove one copy of the selected object" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2078 +#: lib/Slic3r/GUI/Plater.pm:2094 msgid "Set number of copies…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2078 +#: lib/Slic3r/GUI/Plater.pm:2094 msgid "Change the number of copies of the selected object" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2082 +#: lib/Slic3r/GUI/Plater.pm:2098 msgid "Rotate 45° clockwise" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2082 +#: lib/Slic3r/GUI/Plater.pm:2098 msgid "Rotate the selected object by 45° clockwise" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2085 +#: lib/Slic3r/GUI/Plater.pm:2101 msgid "Rotate 45° counter-clockwise" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2085 +#: lib/Slic3r/GUI/Plater.pm:2101 msgid "Rotate the selected object by 45° counter-clockwise" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2090 +#: lib/Slic3r/GUI/Plater.pm:2106 msgid "Rotate" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2090 +#: lib/Slic3r/GUI/Plater.pm:2106 msgid "Rotate the selected object by an arbitrary angle" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2092 +#: lib/Slic3r/GUI/Plater.pm:2108 msgid "Around X axis…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2092 +#: lib/Slic3r/GUI/Plater.pm:2108 msgid "Rotate the selected object by an arbitrary angle around X axis" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2095 +#: lib/Slic3r/GUI/Plater.pm:2111 msgid "Around Y axis…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2095 +#: lib/Slic3r/GUI/Plater.pm:2111 msgid "Rotate the selected object by an arbitrary angle around Y axis" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2098 +#: lib/Slic3r/GUI/Plater.pm:2114 msgid "Around Z axis…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2098 +#: lib/Slic3r/GUI/Plater.pm:2114 msgid "Rotate the selected object by an arbitrary angle around Z axis" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2103 +#: lib/Slic3r/GUI/Plater.pm:2119 msgid "Mirror" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2103 +#: lib/Slic3r/GUI/Plater.pm:2119 msgid "Mirror the selected object" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2105 lib/Slic3r/GUI/Plater.pm:2121 -#: lib/Slic3r/GUI/Plater.pm:2137 +#: lib/Slic3r/GUI/Plater.pm:2121 lib/Slic3r/GUI/Plater.pm:2137 +#: lib/Slic3r/GUI/Plater.pm:2153 msgid "Along X axis…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2105 +#: lib/Slic3r/GUI/Plater.pm:2121 msgid "Mirror the selected object along the X axis" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2108 lib/Slic3r/GUI/Plater.pm:2124 -#: lib/Slic3r/GUI/Plater.pm:2140 +#: lib/Slic3r/GUI/Plater.pm:2124 lib/Slic3r/GUI/Plater.pm:2140 +#: lib/Slic3r/GUI/Plater.pm:2156 msgid "Along Y axis…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2108 +#: lib/Slic3r/GUI/Plater.pm:2124 msgid "Mirror the selected object along the Y axis" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2111 lib/Slic3r/GUI/Plater.pm:2127 -#: lib/Slic3r/GUI/Plater.pm:2143 +#: lib/Slic3r/GUI/Plater.pm:2127 lib/Slic3r/GUI/Plater.pm:2143 +#: lib/Slic3r/GUI/Plater.pm:2159 msgid "Along Z axis…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2111 +#: lib/Slic3r/GUI/Plater.pm:2127 msgid "Mirror the selected object along the Z axis" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2116 lib/Slic3r/GUI/Plater.pm:2132 +#: lib/Slic3r/GUI/Plater.pm:2132 lib/Slic3r/GUI/Plater.pm:2148 msgid "Scale the selected object along a single axis" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2118 lib/Slic3r/GUI/Plater.pm:2134 +#: lib/Slic3r/GUI/Plater.pm:2134 lib/Slic3r/GUI/Plater.pm:2150 msgid "Uniformly…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2118 lib/Slic3r/GUI/Plater.pm:2134 +#: lib/Slic3r/GUI/Plater.pm:2134 lib/Slic3r/GUI/Plater.pm:2150 msgid "Scale the selected object along the XYZ axes" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2121 lib/Slic3r/GUI/Plater.pm:2137 +#: lib/Slic3r/GUI/Plater.pm:2137 lib/Slic3r/GUI/Plater.pm:2153 msgid "Scale the selected object along the X axis" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2124 lib/Slic3r/GUI/Plater.pm:2140 +#: lib/Slic3r/GUI/Plater.pm:2140 lib/Slic3r/GUI/Plater.pm:2156 msgid "Scale the selected object along the Y axis" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2127 lib/Slic3r/GUI/Plater.pm:2143 +#: lib/Slic3r/GUI/Plater.pm:2143 lib/Slic3r/GUI/Plater.pm:2159 msgid "Scale the selected object along the Z axis" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2132 +#: lib/Slic3r/GUI/Plater.pm:2148 msgid "Scale to size" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2147 +#: lib/Slic3r/GUI/Plater.pm:2163 msgid "Split the selected object into individual parts" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2150 +#: lib/Slic3r/GUI/Plater.pm:2166 msgid "Open the 3D cutting tool" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2154 +#: lib/Slic3r/GUI/Plater.pm:2170 msgid "Open the object editor dialog" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2158 +#: lib/Slic3r/GUI/Plater.pm:2174 msgid "Reload from Disk" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2158 +#: lib/Slic3r/GUI/Plater.pm:2174 msgid "Reload the selected file from Disk" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2161 +#: lib/Slic3r/GUI/Plater.pm:2177 msgid "Export object as STL…" msgstr "" -#: lib/Slic3r/GUI/Plater.pm:2161 +#: lib/Slic3r/GUI/Plater.pm:2177 msgid "Export this single object as STL file" msgstr "" @@ -4630,34 +4639,34 @@ msgstr "" msgid "Drag your objects here" msgstr "" -#: lib/Slic3r/GUI/Plater/3DPreview.pm:62 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:69 msgid "1 Layer" msgstr "" -#: lib/Slic3r/GUI/Plater/3DPreview.pm:64 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:71 msgid "View" msgstr "" -#: lib/Slic3r/GUI/Plater/3DPreview.pm:71 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:78 msgid "Volumetric flow rate" msgstr "" -#: lib/Slic3r/GUI/Plater/3DPreview.pm:78 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:85 msgid "Show" msgstr "" -#: lib/Slic3r/GUI/Plater/3DPreview.pm:81 lib/Slic3r/GUI/Plater/3DPreview.pm:82 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:88 lib/Slic3r/GUI/Plater/3DPreview.pm:89 msgid "Feature types" msgstr "" -#: lib/Slic3r/GUI/Plater/3DPreview.pm:99 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:106 msgid "Retractions" msgstr "" -#: lib/Slic3r/GUI/Plater/3DPreview.pm:100 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:107 msgid "Unretractions" msgstr "" -#: lib/Slic3r/GUI/Plater/3DPreview.pm:101 +#: lib/Slic3r/GUI/Plater/3DPreview.pm:108 msgid "Shells" msgstr "" diff --git a/xs/src/libslic3r/PrintConfig.cpp b/xs/src/libslic3r/PrintConfig.cpp index 9333132ff..b77a3a76e 100644 --- a/xs/src/libslic3r/PrintConfig.cpp +++ b/xs/src/libslic3r/PrintConfig.cpp @@ -948,7 +948,7 @@ PrintConfigDef::PrintConfigDef() def->default_value = new ConfigOptionFloats { 10. }; def = this->add("min_skirt_length", coFloat); - def->label = L("Minimum extrusion length"); + def->label = L("Minimal filament extrusion length"); def->tooltip = L("Generate no less than the number of skirt loops required to consume " "the specified amount of filament on the bottom layer. For multi-extruder machines, " "this minimum applies to each extruder."); From 1343a22dc638838301c3772b53d80873186944f9 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Mon, 4 Jun 2018 15:58:44 +0200 Subject: [PATCH 08/14] Added Prusa profiles from https://raw.githubusercontent.com/prusa3d/Slic3r-settings/master/live/PrusaResearch --- resources/profiles/PrusaResearch.idx | 1 + resources/profiles/PrusaResearch.ini | 68 ++++++++++++++-------------- 2 files changed, 35 insertions(+), 34 deletions(-) diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index 2ebc781b0..af76c3cc2 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,3 +1,4 @@ +0.1.4 edited fw version, added z-raise after print 0.1.3 Fixed an incorrect position of the max_print_height parameter 0.1.2 Wipe tower changes 0.1.1 Minor print speed adjustments diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index de2f88a45..ef1a07150 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -5,7 +5,7 @@ name = Prusa Research # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the Slic3r configuration to be downgraded. -config_version = 0.1.3 +config_version = 0.1.4 # Where to get the updates from? config_update_url = https://raw.githubusercontent.com/prusa3d/Slic3r-settings/master/live/PrusaResearch/ @@ -19,7 +19,7 @@ name = Original Prusa i3 MK3 variants = 0.4; 0.25; 0.6 [printer_model:MK2S] -name = Original Prusa i3 MK2S +name = Original Prusa i3 MK2S, MK2.5 variants = 0.4; 0.25; 0.6 [printer_model:MK2SMM] @@ -251,10 +251,10 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and external_perimeter_speed = 35 fill_pattern = grid infill_acceleration = 1500 -infill_speed = 170 +infill_speed = 200 max_print_speed = 200 perimeter_speed = 45 -solid_infill_speed = 170 +solid_infill_speed = 200 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 @@ -278,10 +278,10 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and external_perimeter_speed = 35 fill_pattern = grid infill_acceleration = 1500 -infill_speed = 170 +infill_speed = 200 max_print_speed = 200 perimeter_speed = 45 -solid_infill_speed = 170 +solid_infill_speed = 200 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 @@ -292,10 +292,10 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and external_perimeter_speed = 35 fill_pattern = grid infill_acceleration = 1500 -infill_speed = 170 +infill_speed = 200 max_print_speed = 200 perimeter_speed = 45 -solid_infill_speed = 170 +solid_infill_speed = 200 top_infill_extrusion_width = 0.4 top_solid_infill_speed = 50 @@ -356,10 +356,10 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and external_perimeter_speed = 35 fill_pattern = grid infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 +infill_speed = 200 +max_print_speed = 200 perimeter_speed = 45 -solid_infill_speed = 170 +solid_infill_speed = 200 top_solid_infill_speed = 50 [print:0.15mm OPTIMAL SOLUBLE FULL] @@ -388,10 +388,10 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and external_perimeter_speed = 35 fill_pattern = grid infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 +infill_speed = 200 +max_print_speed = 200 perimeter_speed = 45 -solid_infill_speed = 170 +solid_infill_speed = 200 top_solid_infill_speed = 50 [print:*0.20mm*] inherits = *common* @@ -414,10 +414,10 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and external_perimeter_speed = 35 fill_pattern = grid infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 +infill_speed = 200 +max_print_speed = 200 perimeter_speed = 45 -solid_infill_speed = 170 +solid_infill_speed = 200 top_solid_infill_speed = 50 [print:0.20mm 100mms Linear Advance] @@ -439,10 +439,10 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and external_perimeter_speed = 35 fill_pattern = grid infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 +infill_speed = 200 +max_print_speed = 200 perimeter_speed = 45 -solid_infill_speed = 170 +solid_infill_speed = 200 top_solid_infill_speed = 50 [print:0.20mm NORMAL] @@ -477,10 +477,10 @@ compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_PRUSA3D.*/ and external_perimeter_speed = 35 fill_pattern = grid infill_acceleration = 1500 -infill_speed = 170 -max_print_speed = 170 +infill_speed = 200 +max_print_speed = 200 perimeter_speed = 45 -solid_infill_speed = 170 +solid_infill_speed = 200 top_solid_infill_speed = 50 [print:*0.35mm*] @@ -877,10 +877,10 @@ temperature = 220 [printer:*common*] bed_shape = 0x0,250x0,250x210,0x210 -before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n +before_layer_gcode = ;BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\n\n between_objects_gcode = deretract_speed = 0 -end_gcode = G4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +end_gcode = G4 ; wait\nM104 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+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200; home X axis\nM84 ; disable motors extruder_colour = #FFFF00 extruder_offset = 0x0 gcode_flavor = marlin @@ -941,7 +941,7 @@ printer_model = MK2SMM [printer:*mm-single*] inherits = *multimaterial* -end_gcode = G1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors\n\n +end_gcode = G1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors\n\n 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_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN start_gcode = M115 U3.1.0 ; tell printer latest fw version\nM201 X9000 Y9000 Z500 E10000 ; sets maximum accelerations, mm/sec^2\nM203 X500 Y500 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1500 T1500 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.2 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\n; Start G-Code sequence START\nT?\nM104 S[first_layer_temperature]\nM140 S[first_layer_bed_temperature]\nM109 S[first_layer_temperature]\nM190 S[first_layer_bed_temperature]\nG21 ; set units to millimeters\nG90 ; use absolute coordinates\nM83 ; use relative distances for extrusion\nG28 W\nG80\nG92 E0.0\nM203 E100\nM92 E140\nG1 Z0.250 F7200.000\nG1 X50.0 E80.0 F1000.0\nG1 X160.0 E20.0 F1000.0\nG1 Z0.200 F7200.000\nG1 X220.0 E13 F1000.0\nG1 X240.0 E0 F1000.0\nG1 E-4 F1000.0\nG92 E0.0 default_print_profile = 0.15mm OPTIMAL @@ -949,7 +949,7 @@ default_filament_profile = Prusa PLA [printer:*mm-multi*] inherits = *multimaterial* -end_gcode = {if not has_wipe_tower}\n; Pull the filament into the cooling tubes.\nG1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\n{endif}\nM107 ; fan off\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors +end_gcode = {if not has_wipe_tower}\n; Pull the filament into the cooling tubes.\nG1 E-4 F2100.00000\nG91\nG1 Z1 F7200.000\nG90\nG1 X245 Y1\nG1 X240 E4\nG1 F4000\nG1 X190 E2.7 \nG1 F4600\nG1 X110 E2.8\nG1 F5200\nG1 X40 E3 \nG1 E-15.0000 F5000\nG1 E-50.0000 F5400\nG1 E-15.0000 F3000\nG1 E-12.0000 F2000\nG1 F1600\nG1 X0 Y1 E3.0000\nG1 X50 Y1 E-5.0000\nG1 F2000\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-5.0000\nG1 F2400\nG1 X0 Y1 E5.0000\nG1 X50 Y1 E-3.0000\nG4 S0\n{endif}\nM107 ; turn off fan\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nG28 X0 ; home X axis\nM84 ; disable motors extruder_colour = #FFAA55;#5182DB;#4ECDD3;#FB7259 nozzle_diameter = 0.4,0.4,0.4,0.4 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_PRUSA3D\nPRINTER_MODEL_MK2\nPRINTER_HAS_BOWDEN @@ -1001,37 +1001,37 @@ default_print_profile = 0.20mm NORMAL 0.6 nozzle [printer:Original Prusa i3 MK3] inherits = *common* -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +end_gcode = G4 ; wait\nM221 S100\nM104 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+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200; home X axis\nM84 ; disable motors 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_PRUSA3D\nPRINTER_MODEL_MK3\n retract_lift_below = 209 max_print_height = 210 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} +start_gcode = M115 U3.2.1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} printer_model = MK3 default_print_profile = 0.15mm OPTIMAL MK3 [printer:Original Prusa i3 MK3 0.25 nozzle] inherits = *common* nozzle_diameter = 0.25 -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +end_gcode = G4 ; wait\nM221 S100\nM104 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+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200; home X axis\nM84 ; disable motors 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_PRUSA3D\nPRINTER_MODEL_MK3\n retract_lift_below = 209 max_print_height = 210 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} +start_gcode = M115 U3.2.1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} printer_model = MK3 default_print_profile = 0.10mm DETAIL 0.25 nozzle MK3 [printer:Original Prusa i3 MK3 0.6 nozzle] inherits = *common* nozzle_diameter = 0.6 -end_gcode = G4 ; wait\nM221 S100\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200; home X axis\nM84 ; disable motors +end_gcode = G4 ; wait\nM221 S100\nM104 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+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200; home X axis\nM84 ; disable motors 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_PRUSA3D\nPRINTER_MODEL_MK3\n retract_lift_below = 209 max_print_height = 210 -start_gcode = M115 U3.1.1-RC5 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} +start_gcode = M115 U3.2.1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} printer_model = MK3 default_print_profile = 0.15mm OPTIMAL 0.6 nozzle MK3 # The obsolete presets will be removed when upgrading from the legacy configuration structure (up to Slic3r 1.39.2) to 1.40.0 and newer. [obsolete_presets] print="0.05mm DETAIL 0.25 nozzle";"0.05mm DETAIL MK3";"0.05mm DETAIL";"0.20mm NORMAL MK3";"0.35mm FAST MK3" -filament="ColorFabb Brass Bronze 1.75mm";"ColorFabb HT 1.75mm";"ColorFabb nGen 1.75mm";"ColorFabb Woodfil 1.75mm";"ColorFabb XT 1.75mm";"ColorFabb XT-CF20 1.75mm";"E3D PC-ABS 1.75mm";"Fillamentum ABS 1.75mm";"Fillamentum ASA 1.75mm";"Generic ABS 1.75mm";"Generic PET 1.75mm";"Generic PLA 1.75mm";"Prusa ABS 1.75mm";"Prusa HIPS 1.75mm";"Prusa PET 1.75mm";"Prusa PLA 1.75mm";"Taulman Bridge 1.75mm";"Taulman T-Glase 1.75mm" +filament="ColorFabb Brass Bronze 1.75mm";"ColorFabb HT 1.75mm";"ColorFabb nGen 1.75mm";"ColorFabb Woodfil 1.75mm";"ColorFabb XT 1.75mm";"ColorFabb XT-CF20 1.75mm";"E3D PC-ABS 1.75mm";"Fillamentum ABS 1.75mm";"Fillamentum ASA 1.75mm";"Generic ABS 1.75mm";"Generic PET 1.75mm";"Generic PLA 1.75mm";"Prusa ABS 1.75mm";"Prusa HIPS 1.75mm";"Prusa PET 1.75mm";"Prusa PLA 1.75mm";"Taulman Bridge 1.75mm";"Taulman T-Glase 1.75mm" \ No newline at end of file From adcf869eeed35358e135441fb5c661b99e897c1b Mon Sep 17 00:00:00 2001 From: bubnikv Date: Tue, 5 Jun 2018 10:11:28 +0200 Subject: [PATCH 09/14] Fixed printer_variant fields for the i3 MK3 0.25 and 0.6mm nozzles. --- resources/profiles/PrusaResearch.idx | 1 + resources/profiles/PrusaResearch.ini | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index af76c3cc2..5c68e3c7c 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,3 +1,4 @@ +0.1.5 fixed printer_variant fields for the i3 MK3 0.25 and 0.6mm nozzles 0.1.4 edited fw version, added z-raise after print 0.1.3 Fixed an incorrect position of the max_print_height parameter 0.1.2 Wipe tower changes diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index ef1a07150..5f1d654a3 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -5,7 +5,7 @@ name = Prusa Research # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the Slic3r configuration to be downgraded. -config_version = 0.1.4 +config_version = 0.1.5 # Where to get the updates from? config_update_url = https://raw.githubusercontent.com/prusa3d/Slic3r-settings/master/live/PrusaResearch/ @@ -1018,6 +1018,7 @@ retract_lift_below = 209 max_print_height = 210 start_gcode = M115 U3.2.1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} printer_model = MK3 +printer_variant = 0.25 default_print_profile = 0.10mm DETAIL 0.25 nozzle MK3 [printer:Original Prusa i3 MK3 0.6 nozzle] @@ -1029,6 +1030,7 @@ retract_lift_below = 209 max_print_height = 210 start_gcode = M115 U3.2.1 ; tell printer latest fw version\nM201 X1000 Y1000 Z200 E5000 ; sets maximum accelerations, mm/sec^2\nM203 X200 Y200 Z12 E120 ; sets maximum feedrates, mm/sec\nM204 S1250 T1250 ; sets acceleration (S) and retract acceleration (T)\nM205 X10 Y10 Z0.4 E2.5 ; sets the jerk limits, mm/sec\nM205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec\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 W ; home all without mesh bed level\nG80 ; mesh bed leveling\nG1 Y-3.0 F1000.0 ; go outside print area\nG92 E0.0\nG1 X60.0 E9.0 F1000.0 ; intro line\nG1 X100.0 E12.5 F1000.0 ; intro line\nG92 E0.0\nM221 S{if layer_height==0.05}100{else}95{endif} printer_model = MK3 +printer_variant = 0.6 default_print_profile = 0.15mm OPTIMAL 0.6 nozzle MK3 # The obsolete presets will be removed when upgrading from the legacy configuration structure (up to Slic3r 1.39.2) to 1.40.0 and newer. From 92875709e1881fe3f374cd06321dacc3edbbd4c6 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Wed, 6 Jun 2018 12:01:11 +0200 Subject: [PATCH 10/14] Fixed a bug reporting incorrect compatible_printers and compatible_printers_condition inside the Config Bundle. --- xs/src/slic3r/GUI/PresetBundle.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/xs/src/slic3r/GUI/PresetBundle.cpp b/xs/src/slic3r/GUI/PresetBundle.cpp index 1427e5086..98d351069 100644 --- a/xs/src/slic3r/GUI/PresetBundle.cpp +++ b/xs/src/slic3r/GUI/PresetBundle.cpp @@ -840,17 +840,13 @@ size_t PresetBundle::load_configbundle(const std::string &path, unsigned int fla // Load the print, filament or printer preset. const DynamicPrintConfig &default_config = presets->default_preset().config; DynamicPrintConfig config(default_config); - std::vector config_keys = config.keys(); - // The following two keys are valid, but they are not mandatory. - config_keys.emplace_back("compatible_printers"); - config_keys.emplace_back("compatible_printers_condition"); for (auto &kvp : section.second) config.set_deserialize(kvp.first, kvp.second.data()); Preset::normalize(config); // Report configuration fields, which are misplaced into a wrong group. std::string incorrect_keys; size_t n_incorrect_keys = 0; - for (const std::string &key : config_keys) + for (const std::string &key : config.keys()) if (! default_config.has(key)) { if (incorrect_keys.empty()) incorrect_keys = key; From 2e061994d4a602929658c453aaf32e13751eccc2 Mon Sep 17 00:00:00 2001 From: Vojtech Kral Date: Mon, 4 Jun 2018 17:47:01 +0200 Subject: [PATCH 11/14] Fix: GCodeSender: Line number resynchronisation --- xs/src/libslic3r/GCodeSender.cpp | 34 +++++++++++++++++++++++++------- xs/src/libslic3r/GCodeSender.hpp | 2 +- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/xs/src/libslic3r/GCodeSender.cpp b/xs/src/libslic3r/GCodeSender.cpp index bbeaf836d..c3530e00f 100644 --- a/xs/src/libslic3r/GCodeSender.cpp +++ b/xs/src/libslic3r/GCodeSender.cpp @@ -41,6 +41,7 @@ struct termios2 { //#define DEBUG_SERIAL #ifdef DEBUG_SERIAL +#include #include std::fstream fs; #endif @@ -52,7 +53,11 @@ namespace Slic3r { GCodeSender::GCodeSender() : io(), serial(io), can_send(false), sent(0), open(false), error(false), connected(false), queue_paused(false) -{} +{ +#ifdef DEBUG_SERIAL + std::srand(std::time(nullptr)); +#endif +} GCodeSender::~GCodeSender() { @@ -358,15 +363,23 @@ GCodeSender::on_read(const boost::system::error_code& error, // extract the first number from line boost::algorithm::trim_left_if(line, !boost::algorithm::is_digit()); size_t toresend = boost::lexical_cast(line.substr(0, line.find_first_not_of("0123456789"))); - ++ toresend; // N is 0-based - if (toresend >= this->sent - this->last_sent.size() && toresend < this->last_sent.size()) { + +#ifdef DEBUG_SERIAL + fs << "!! line num out of sync: toresend = " << toresend << ", sent = " << sent << ", last_sent.size = " << last_sent.size() << std::endl; +#endif + + if (toresend > this->sent - this->last_sent.size() && toresend <= this->sent) { { boost::lock_guard l(this->queue_mutex); + const auto lines_to_resend = this->sent - toresend + 1; +#ifdef DEBUG_SERIAL + fs << "!! resending " << lines_to_resend << " lines" << std::endl; +#endif // move the unsent lines to priqueue this->priqueue.insert( this->priqueue.begin(), // insert at the beginning - this->last_sent.begin() + toresend - (this->sent - this->last_sent.size()) - 1, + this->last_sent.begin() + this->last_sent.size() - lines_to_resend, this->last_sent.end() ); @@ -477,8 +490,14 @@ GCodeSender::do_send() if (line.empty()) return; // compute full line - std::string full_line = "N" + boost::lexical_cast(this->sent) + " " + line; ++ this->sent; +#ifndef DEBUG_SERIAL + const auto line_num = this->sent; +#else + // In DEBUG_SERIAL mode, test line re-synchronization by sending bad line number 1/4 of the time + const auto line_num = std::rand() < RAND_MAX/4 ? 0 : this->sent; +#endif + std::string full_line = "N" + boost::lexical_cast(line_num) + " " + line; // calculate checksum int cs = 0; @@ -497,8 +516,9 @@ GCodeSender::do_send() this->last_sent.push_back(line); this->can_send = false; - if (this->last_sent.size() > KEEP_SENT) - this->last_sent.erase(this->last_sent.begin(), this->last_sent.end() - KEEP_SENT); + while (this->last_sent.size() > KEEP_SENT) { + this->last_sent.pop_front(); + } // we can't supply boost::asio::buffer(full_line) to async_write() because full_line is on the // stack and the buffer would lose its underlying storage causing memory corruption diff --git a/xs/src/libslic3r/GCodeSender.hpp b/xs/src/libslic3r/GCodeSender.hpp index 3022993cb..d7663ca55 100644 --- a/xs/src/libslic3r/GCodeSender.hpp +++ b/xs/src/libslic3r/GCodeSender.hpp @@ -51,7 +51,7 @@ class GCodeSender : private boost::noncopyable { bool can_send; bool queue_paused; size_t sent; - std::vector last_sent; + std::deque last_sent; // this mutex guards log, T, B mutable boost::mutex log_mutex; From aef0c489e31ad4916b5e93dfb7b17e0200184868 Mon Sep 17 00:00:00 2001 From: Vojtech Kral Date: Wed, 6 Jun 2018 10:52:19 +0200 Subject: [PATCH 12/14] Fix: Dialog initialization ordering on OS X Perform update_check after MainFrame is created --- lib/Slic3r/GUI.pm | 27 ++++++++++++++++----------- xs/src/slic3r/GUI/GUI.cpp | 15 ++++++++++----- xs/src/slic3r/GUI/GUI.hpp | 3 +++ xs/src/slic3r/GUI/PresetBundle.cpp | 1 + xs/src/slic3r/Utils/PresetUpdater.cpp | 10 ++++++++-- 5 files changed, 38 insertions(+), 18 deletions(-) diff --git a/lib/Slic3r/GUI.pm b/lib/Slic3r/GUI.pm index 04dc80323..f2bf3baf8 100644 --- a/lib/Slic3r/GUI.pm +++ b/lib/Slic3r/GUI.pm @@ -105,15 +105,6 @@ sub OnInit { $self->{preset_updater} = Slic3r::PresetUpdater->new($VERSION_ONLINE_EVENT); Slic3r::GUI::set_preset_updater($self->{preset_updater}); - eval { - if (! $self->{preset_updater}->config_update()) { - exit 0; - } - }; - if ($@) { - warn $@ . "\n"; - fatal_error(undef, $@); - } Slic3r::GUI::load_language(); @@ -137,6 +128,7 @@ sub OnInit { ); $self->SetTopWindow($frame); + # This makes CallAfter() work EVT_IDLE($self->{mainframe}, sub { while (my $cb = shift @cb) { $cb->(); @@ -144,8 +136,21 @@ sub OnInit { $self->{app_config}->save if $self->{app_config}->dirty; }); - # On OSX the UI was not initialized correctly if the wizard was called - # before the UI was up and running. + # On OS X the UI tends to freeze in weird ways if modal dialogs (config wizard, update notifications, ...) + # are shown before or in the same event callback with the main frame creation. + # Therefore we schedule them for later using CallAfter. + $self->CallAfter(sub { + eval { + if (! $self->{preset_updater}->config_update()) { + exit 0; + } + }; + if ($@) { + warn $@ . "\n"; + fatal_error(undef, $@); + } + }); + $self->CallAfter(sub { if (! Slic3r::GUI::config_wizard_startup($app_conf_exists)) { # Only notify if there was not wizard so as not to bother too much ... diff --git a/xs/src/slic3r/GUI/GUI.cpp b/xs/src/slic3r/GUI/GUI.cpp index d42fd3538..d54a5683b 100644 --- a/xs/src/slic3r/GUI/GUI.cpp +++ b/xs/src/slic3r/GUI/GUI.cpp @@ -356,8 +356,7 @@ void add_config_menu(wxMenuBar *menu, int event_preferences_changed, int event_l Config::SnapshotDB::singleton().restore_snapshot(dlg.snapshot_to_activate(), *g_AppConfig).id); g_PresetBundle->load_presets(*g_AppConfig); // Load the currently selected preset into the GUI, update the preset selection box. - for (Tab *tab : g_tabs_list) - tab->load_current_preset(); + load_current_presets(); } } break; @@ -451,9 +450,8 @@ void config_wizard(int reason) show_error(nullptr, e.what()); } - // Load the currently selected preset into the GUI, update the preset selection box. - for (Tab *tab : g_tabs_list) - tab->load_current_preset(); + // Load the currently selected preset into the GUI, update the preset selection box. + load_current_presets(); } void open_preferences_dialog(int event_preferences) @@ -605,6 +603,13 @@ void add_created_tab(Tab* panel) g_wxTabPanel->AddPage(panel, panel->title()); } +void load_current_presets() +{ + for (Tab *tab : g_tabs_list) { + tab->load_current_preset(); + } +} + void show_error(wxWindow* parent, const wxString& message) { ErrorDialog msg(parent, message); msg.ShowModal(); diff --git a/xs/src/slic3r/GUI/GUI.hpp b/xs/src/slic3r/GUI/GUI.hpp index 4deee1910..31cf83731 100644 --- a/xs/src/slic3r/GUI/GUI.hpp +++ b/xs/src/slic3r/GUI/GUI.hpp @@ -116,6 +116,9 @@ void add_created_tab(Tab* panel); // Change option value in config void change_opt_value(DynamicPrintConfig& config, const t_config_option_key& opt_key, const boost::any& value, int opt_index = 0); +// Update UI / Tabs to reflect changes in the currently loaded presets +void load_current_presets(); + void show_error(wxWindow* parent, const wxString& message); void show_error_id(int id, const std::string& message); // For Perl void show_info(wxWindow* parent, const wxString& message, const wxString& title); diff --git a/xs/src/slic3r/GUI/PresetBundle.cpp b/xs/src/slic3r/GUI/PresetBundle.cpp index 98d351069..d36ef7b6f 100644 --- a/xs/src/slic3r/GUI/PresetBundle.cpp +++ b/xs/src/slic3r/GUI/PresetBundle.cpp @@ -101,6 +101,7 @@ PresetBundle::~PresetBundle() void PresetBundle::reset(bool delete_files) { // Clear the existing presets, delete their respective files. + this->vendors.clear(); this->prints .reset(delete_files); this->filaments.reset(delete_files); this->printers .reset(delete_files); diff --git a/xs/src/slic3r/Utils/PresetUpdater.cpp b/xs/src/slic3r/Utils/PresetUpdater.cpp index 9a4d1048f..dd46c43fe 100644 --- a/xs/src/slic3r/Utils/PresetUpdater.cpp +++ b/xs/src/slic3r/Utils/PresetUpdater.cpp @@ -162,7 +162,7 @@ bool PresetUpdater::priv::get_file(const std::string &url, const fs::path &targe % http_status % error; }) - .on_complete([&](std::string body, unsigned http_status) { + .on_complete([&](std::string body, unsigned /* http_status */) { fs::fstream file(tmp_path, std::ios::out | std::ios::binary | std::ios::trunc); file.write(body.c_str(), body.size()); file.close(); @@ -204,7 +204,7 @@ void PresetUpdater::priv::sync_version() const % http_status % error; }) - .on_complete([&](std::string body, unsigned http_status) { + .on_complete([&](std::string body, unsigned /* http_status */) { boost::trim(body); BOOST_LOG_TRIVIAL(info) << boost::format("Got Slic3rPE online version: `%1%`. Sending to GUI thread...") % body; wxCommandEvent* evt = new wxCommandEvent(version_online_event); @@ -553,6 +553,12 @@ bool PresetUpdater::config_update() const if (res == wxID_OK) { BOOST_LOG_TRIVIAL(debug) << "User agreed to perform the update"; p->perform_updates(std::move(updates)); + + // Reload global configuration + auto *app_config = GUI::get_app_config(); + app_config->reset_selections(); + GUI::get_preset_bundle()->load_presets(*app_config); + GUI::load_current_presets(); } else { BOOST_LOG_TRIVIAL(info) << "User refused the update"; } From 7dfe2e25950f20c305bf5b0c2757cc4eb0d064e4 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Thu, 7 Jun 2018 22:10:23 +0200 Subject: [PATCH 13/14] Fixed mangling of UTF characters when converted implicitely to wxString on Windows through the + operator. --- xs/CMakeLists.txt | 2 +- xs/src/slic3r/GUI/GUI.cpp | 10 ++++++---- xs/src/slic3r/GUI/GUI.hpp | 9 +++++++++ xs/src/slic3r/GUI/RammingChart.cpp | 9 ++------- xs/src/slic3r/GUI/Tab.cpp | 14 ++++++++------ xs/src/slic3r/GUI/WipeTowerDialog.cpp | 13 ++++--------- 6 files changed, 30 insertions(+), 27 deletions(-) diff --git a/xs/CMakeLists.txt b/xs/CMakeLists.txt index 77747cd07..9c61fa729 100644 --- a/xs/CMakeLists.txt +++ b/xs/CMakeLists.txt @@ -29,7 +29,7 @@ if(WIN32) # -D_ITERATOR_DEBUG_LEVEL) endif() -add_definitions(-DwxUSE_UNICODE -D_UNICODE -DUNICODE) +add_definitions(-DwxUSE_UNICODE -D_UNICODE -DUNICODE -DWXINTL_NO_GETTEXT_MACRO) add_library(libslic3r STATIC ${LIBDIR}/libslic3r/BoundingBox.cpp diff --git a/xs/src/slic3r/GUI/GUI.cpp b/xs/src/slic3r/GUI/GUI.cpp index d42fd3538..0170c5526 100644 --- a/xs/src/slic3r/GUI/GUI.cpp +++ b/xs/src/slic3r/GUI/GUI.cpp @@ -308,6 +308,8 @@ enum ConfigMenuIDs { ConfigMenuCnt, }; +static wxString dots("…", wxConvUTF8); + void add_config_menu(wxMenuBar *menu, int event_preferences_changed, int event_language_change) { auto local_menu = new wxMenu(); @@ -315,12 +317,12 @@ void add_config_menu(wxMenuBar *menu, int event_preferences_changed, int event_l const auto config_wizard_tooltip = wxString::Format(_(L("Run %s")), ConfigWizard::name()); // Cmd+, is standard on OS X - what about other operating systems? - local_menu->Append(config_id_base + ConfigMenuWizard, ConfigWizard::name() + "\u2026", config_wizard_tooltip); - local_menu->Append(config_id_base + ConfigMenuSnapshots, _(L("Configuration Snapshots"))+"\u2026", _(L("Inspect / activate configuration snapshots"))); + local_menu->Append(config_id_base + ConfigMenuWizard, ConfigWizard::name() + dots, config_wizard_tooltip); + local_menu->Append(config_id_base + ConfigMenuSnapshots, _(L("Configuration Snapshots"))+dots, _(L("Inspect / activate configuration snapshots"))); local_menu->Append(config_id_base + ConfigMenuTakeSnapshot, _(L("Take Configuration Snapshot")), _(L("Capture a configuration snapshot"))); // local_menu->Append(config_id_base + ConfigMenuUpdate, _(L("Check for updates")), _(L("Check for configuration updates"))); local_menu->AppendSeparator(); - local_menu->Append(config_id_base + ConfigMenuPreferences, _(L("Preferences"))+"\u2026\tCtrl+,", _(L("Application preferences"))); + local_menu->Append(config_id_base + ConfigMenuPreferences, _(L("Preferences"))+dots+"\tCtrl+,", _(L("Application preferences"))); local_menu->Append(config_id_base + ConfigMenuLanguage, _(L("Change Application Language"))); local_menu->AppendSeparator(); local_menu->Append(config_id_base + ConfigMenuFlashFirmware, _(L("Flash printer firmware")), _(L("Upload a firmware image into an Arduino based printer"))); @@ -841,7 +843,7 @@ void add_frequently_changed_parameters(wxWindow* parent, wxBoxSizer* sizer, wxFl Line line = { "", "" }; line.widget = [config](wxWindow* parent){ - g_wiping_dialog_button = new wxButton(parent, wxID_ANY, _(L("Purging volumes")) + "\u2026", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); + g_wiping_dialog_button = new wxButton(parent, wxID_ANY, _(L("Purging volumes")) + dots, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); auto sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(g_wiping_dialog_button); g_wiping_dialog_button->Bind(wxEVT_BUTTON, ([parent](wxCommandEvent& e) diff --git a/xs/src/slic3r/GUI/GUI.hpp b/xs/src/slic3r/GUI/GUI.hpp index 4deee1910..90beb8b95 100644 --- a/xs/src/slic3r/GUI/GUI.hpp +++ b/xs/src/slic3r/GUI/GUI.hpp @@ -5,6 +5,9 @@ #include #include "Config.hpp" +#include +#include + class wxApp; class wxWindow; class wxFrame; @@ -30,6 +33,12 @@ class PresetUpdater; class DynamicPrintConfig; class TabIface; +#define _(s) Slic3r::translate((s)) +inline wxString translate(const char *s) { return wxGetTranslation(wxString(s, wxConvUTF8)); } +inline wxString translate(const wchar_t *s) { return wxGetTranslation(s); } +inline wxString translate(const std::string &s) { return wxGetTranslation(wxString(s.c_str(), wxConvUTF8)); } +inline wxString translate(const std::wstring &s) { return wxGetTranslation(s.c_str()); } + // !!! If you needed to translate some wxString, // !!! please use _(L(string)) // !!! _() - is a standard wxWidgets macro to translate diff --git a/xs/src/slic3r/GUI/RammingChart.cpp b/xs/src/slic3r/GUI/RammingChart.cpp index 97a6b7712..1e7412a4f 100644 --- a/xs/src/slic3r/GUI/RammingChart.cpp +++ b/xs/src/slic3r/GUI/RammingChart.cpp @@ -2,12 +2,7 @@ #include #include "RammingChart.hpp" - - -//! macro used to mark string used at localization, -//! return same string -#define L(s) s - +#include "GUI.hpp" wxDEFINE_EVENT(EVT_WIPE_TOWER_CHART_CHANGED, wxCommandEvent); @@ -83,7 +78,7 @@ void Chart::draw() { int text_height = 0; dc.GetTextExtent(label,&text_width,&text_height); dc.DrawText(label,wxPoint(0.5*(m_rect.GetRight()+m_rect.GetLeft())-text_width/2.f, m_rect.GetBottom()+25)); - label = _(L("Volumetric speed")) + " (" + _(L("mm")) + "\u00B3/" + _(L("s")) + ")"; + label = _(L("Volumetric speed")) + " (" + _(L("mm")) + wxString("³", wxConvUTF8) + _(L("s")) + ")"; dc.GetTextExtent(label,&text_width,&text_height); dc.DrawRotatedText(label,wxPoint(0,0.5*(m_rect.GetBottom()+m_rect.GetTop())+text_width/2.f),90); } diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index ab5aa2bb0..d4d10e368 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -32,6 +32,8 @@ namespace Slic3r { namespace GUI { +static wxString dots("…", wxConvUTF8); + // sub new void Tab::create_preset_tab(PresetBundle *preset_bundle) { @@ -1261,7 +1263,7 @@ void TabFilament::build() optgroup->append_single_option_line("filament_density"); optgroup->append_single_option_line("filament_cost"); - optgroup = page->new_optgroup(_(L("Temperature ")) +" (\u00B0C)"); // degree sign + optgroup = page->new_optgroup(_(L("Temperature ")) + wxString("°", wxConvUTF8)); Line line = { _(L("Extruder")), "" }; line.append_option(optgroup->get_option("first_layer_temperature")); line.append_option(optgroup->get_option("temperature")); @@ -1319,7 +1321,7 @@ void TabFilament::build() optgroup->append_single_option_line("filament_toolchange_delay"); line = { _(L("Ramming")), "" }; line.widget = [this](wxWindow* parent){ - auto ramming_dialog_btn = new wxButton(parent, wxID_ANY, _(L("Ramming settings"))+"\u2026", wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); + auto ramming_dialog_btn = new wxButton(parent, wxID_ANY, _(L("Ramming settings"))+dots, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); auto sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(ramming_dialog_btn); @@ -1441,7 +1443,7 @@ void TabPrinter::build() Line line{ _(L("Bed shape")), "" }; line.widget = [this](wxWindow* parent){ - auto btn = new wxButton(parent, wxID_ANY, _(L(" Set "))+"\u2026", wxDefaultPosition, wxDefaultSize, wxBU_LEFT | wxBU_EXACTFIT); + auto btn = new wxButton(parent, wxID_ANY, _(L(" Set "))+dots, wxDefaultPosition, wxDefaultSize, wxBU_LEFT | wxBU_EXACTFIT); // btn->SetFont(Slic3r::GUI::small_font); btn->SetBitmap(wxBitmap(from_u8(Slic3r::var("printer_empty.png")), wxBITMAP_TYPE_PNG)); @@ -1540,7 +1542,7 @@ void TabPrinter::build() optgroup = page->new_optgroup(_(L("OctoPrint upload"))); auto octoprint_host_browse = [this, optgroup] (wxWindow* parent) { - auto btn = new wxButton(parent, wxID_ANY, _(L(" Browse "))+"\u2026", wxDefaultPosition, wxDefaultSize, wxBU_LEFT); + auto btn = new wxButton(parent, wxID_ANY, _(L(" Browse "))+dots, wxDefaultPosition, wxDefaultSize, wxBU_LEFT); btn->SetBitmap(wxBitmap(from_u8(Slic3r::var("zoom.png")), wxBITMAP_TYPE_PNG)); auto sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(btn); @@ -1589,7 +1591,7 @@ void TabPrinter::build() Line cafile_line = optgroup->create_single_option_line("octoprint_cafile"); auto octoprint_cafile_browse = [this, optgroup] (wxWindow* parent) { - auto btn = new wxButton(parent, wxID_ANY, _(L(" Browse "))+"\u2026", wxDefaultPosition, wxDefaultSize, wxBU_LEFT); + auto btn = new wxButton(parent, wxID_ANY, _(L(" Browse "))+dots, wxDefaultPosition, wxDefaultSize, wxBU_LEFT); btn->SetBitmap(wxBitmap(from_u8(Slic3r::var("zoom.png")), wxBITMAP_TYPE_PNG)); auto sizer = new wxBoxSizer(wxHORIZONTAL); sizer->Add(btn); @@ -2211,7 +2213,7 @@ void Tab::update_ui_from_settings() wxSizer* Tab::compatible_printers_widget(wxWindow* parent, wxCheckBox** checkbox, wxButton** btn) { *checkbox = new wxCheckBox(parent, wxID_ANY, _(L("All"))); - *btn = new wxButton(parent, wxID_ANY, _(L(" Set "))+"\u2026", wxDefaultPosition, wxDefaultSize, wxBU_LEFT | wxBU_EXACTFIT); + *btn = new wxButton(parent, wxID_ANY, _(L(" Set "))+dots, wxDefaultPosition, wxDefaultSize, wxBU_LEFT | wxBU_EXACTFIT); (*btn)->SetBitmap(wxBitmap(from_u8(Slic3r::var("printer_empty.png")), wxBITMAP_TYPE_PNG)); diff --git a/xs/src/slic3r/GUI/WipeTowerDialog.cpp b/xs/src/slic3r/GUI/WipeTowerDialog.cpp index 4b25ccd3a..eef4017c1 100644 --- a/xs/src/slic3r/GUI/WipeTowerDialog.cpp +++ b/xs/src/slic3r/GUI/WipeTowerDialog.cpp @@ -1,15 +1,10 @@ #include #include #include "WipeTowerDialog.hpp" +#include "GUI.hpp" #include -//! macro used to mark string used at localization, -//! return same string -#define L(s) s - - - RammingDialog::RammingDialog(wxWindow* parent,const std::string& parameters) : wxDialog(parent, wxID_ANY, _(L("Ramming customization")), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE/* | wxRESIZE_BORDER*/) { @@ -81,7 +76,7 @@ RammingPanel::RammingPanel(wxWindow* parent, const std::string& parameters) auto gsizer_param = new wxFlexGridSizer(2, 5, 15); gsizer_param->Add(new wxStaticText(this, wxID_ANY, wxString(_(L("Total ramming time")) + " (" + _(L("s")) + "):")), 0, wxALIGN_CENTER_VERTICAL); gsizer_param->Add(m_widget_time); - gsizer_param->Add(new wxStaticText(this, wxID_ANY, wxString(_(L("Total rammed volume")) + " (" + _(L("mm")) + "\u00B3):")), 0, wxALIGN_CENTER_VERTICAL); + gsizer_param->Add(new wxStaticText(this, wxID_ANY, wxString(_(L("Total rammed volume")) + " (" + _(L("mm")) + wxString("³):", wxConvUTF8))), 0, wxALIGN_CENTER_VERTICAL); gsizer_param->Add(m_widget_volume); gsizer_param->AddSpacer(20); gsizer_param->AddSpacer(20); @@ -220,7 +215,7 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector& matrix, con // collect and format sizer format_sizer(m_sizer_advanced, m_page_advanced, m_gridsizer_advanced, - wxString::Format(_(L("Here you can adjust required purging volume (mm%s) for any given pair of tools.")), "\u00B3"), + _(L("Here you can adjust required purging volume (mm³) for any given pair of tools.")), _(L("Extruder changed to"))); // Hide preview page before new page creating @@ -243,7 +238,7 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector& matrix, con // collect and format sizer format_sizer(m_sizer_simple, m_page_simple, gridsizer_simple, _(L("Total purging volume is calculated by summing two values below, depending on which tools are loaded/unloaded.")), - wxString::Format(_(L("Volume to purge (mm%s) when the filament is being")), "\u00B3"), 50); + _(L("Volume to purge (mm³) when the filament is being")), 50); m_sizer = new wxBoxSizer(wxVERTICAL); m_sizer->Add(m_page_simple, 0, wxEXPAND | wxALL, 25); From 95047c19538bee9c4928db3acddbe787f8445420 Mon Sep 17 00:00:00 2001 From: bubnikv Date: Thu, 7 Jun 2018 22:54:26 +0200 Subject: [PATCH 14/14] Fixed typos from the previous commit. --- xs/src/slic3r/GUI/RammingChart.cpp | 2 +- xs/src/slic3r/GUI/Tab.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/xs/src/slic3r/GUI/RammingChart.cpp b/xs/src/slic3r/GUI/RammingChart.cpp index 1e7412a4f..2603a5eab 100644 --- a/xs/src/slic3r/GUI/RammingChart.cpp +++ b/xs/src/slic3r/GUI/RammingChart.cpp @@ -78,7 +78,7 @@ void Chart::draw() { int text_height = 0; dc.GetTextExtent(label,&text_width,&text_height); dc.DrawText(label,wxPoint(0.5*(m_rect.GetRight()+m_rect.GetLeft())-text_width/2.f, m_rect.GetBottom()+25)); - label = _(L("Volumetric speed")) + " (" + _(L("mm")) + wxString("³", wxConvUTF8) + _(L("s")) + ")"; + label = _(L("Volumetric speed")) + " (" + _(L("mm")) + wxString("³/", wxConvUTF8) + _(L("s")) + ")"; dc.GetTextExtent(label,&text_width,&text_height); dc.DrawRotatedText(label,wxPoint(0,0.5*(m_rect.GetBottom()+m_rect.GetTop())+text_width/2.f),90); } diff --git a/xs/src/slic3r/GUI/Tab.cpp b/xs/src/slic3r/GUI/Tab.cpp index d4d10e368..f24b5ebc6 100644 --- a/xs/src/slic3r/GUI/Tab.cpp +++ b/xs/src/slic3r/GUI/Tab.cpp @@ -1263,7 +1263,7 @@ void TabFilament::build() optgroup->append_single_option_line("filament_density"); optgroup->append_single_option_line("filament_cost"); - optgroup = page->new_optgroup(_(L("Temperature ")) + wxString("°", wxConvUTF8)); + optgroup = page->new_optgroup(_(L("Temperature ")) + wxString("°C", wxConvUTF8)); Line line = { _(L("Extruder")), "" }; line.append_option(optgroup->get_option("first_layer_temperature")); line.append_option(optgroup->get_option("temperature"));