From 97da125d627e1e10876b87993020a72b5470e6d3 Mon Sep 17 00:00:00 2001 From: tome9111991 <57866234+tome9111991@users.noreply.github.com> Date: Tue, 10 Mar 2026 08:28:21 +0100 Subject: [PATCH 01/13] FIX: hidden Line Type Linux (#12364) Fix(GCodeViewer): Resolve z-fighting for wipe, seam, and retract markers using shader depth bias Co-authored-by: SoftFever --- src/libvgcode/src/Shaders.hpp | 18 +++++++++++++++--- src/libvgcode/src/ViewerImpl.cpp | 11 ++++++++++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/libvgcode/src/Shaders.hpp b/src/libvgcode/src/Shaders.hpp index 826f9a4805c..1450d1a6df0 100644 --- a/src/libvgcode/src/Shaders.hpp +++ b/src/libvgcode/src/Shaders.hpp @@ -90,7 +90,10 @@ static const char* Segments_Vertex_Shader = " );\n" " int id = vertex_id < 4 ? id_a : id_b;\n" " vec3 endpoint_pos = vertex_id < 4 ? pos_a : pos_b;\n" -" vec3 height_width_angle = texelFetch(height_width_angle_tex, id).xyz;\n" +" vec4 hwa = texelFetch(height_width_angle_tex, id);\n" +" vec3 height_width_angle = hwa.xyz;\n" +" // ORCA: Extract bias from w component\n" +" float bias = hwa.w;\n" "#ifdef FIX_TWISTING\n" " int closer_id = (dot(camera_position - pos_a, camera_position - pos_a) < dot(camera_position - pos_b, camera_position - pos_b)) ? id_a : id_b;\n" " vec3 closer_pos = (closer_id == id_a) ? pos_a : pos_b;\n" @@ -131,6 +134,8 @@ static const char* Segments_Vertex_Shader = " }\n" " }\n" " vec3 eye_position = (view_matrix * vec4(pos, 1.0)).xyz;\n" +" // ORCA: Apply bias to z-position to avoid z-fighting\n" +" eye_position.z += bias;\n" " vec3 eye_normal = (view_matrix * vec4(normalize(pos - endpoint_pos), 0.0)).xyz;\n" " vec3 color_base = decode_color(texelFetch(color_tex, id).r);\n" " color = color_base * lighting(eye_position, eye_normal);\n" @@ -155,9 +160,11 @@ static const char* Options_Vertex_Shader = "const float light_front_diffuse = 0.6 * 0.3;\n" "const float ambient = 0.3;\n" "const float emission = 0.25;\n" -#ifndef _WIN32 +#ifdef __APPLE__ +// ORCA: Use smaller scaling factor for macOS "const float scaling_factor = 0.75;\n" #else +// ORCA: Increase seam marker size to 1.5 for Windows and Linux "const float scaling_factor = 1.5;\n" #endif "uniform mat4 view_matrix;\n" @@ -185,7 +192,10 @@ static const char* Options_Vertex_Shader = "}\n" "void main() {\n" " int id = int(texelFetch(segment_index_tex, gl_InstanceID).r);\n" -" vec2 height_width = texelFetch(height_width_angle_tex, id).xy;\n" +" vec4 hwa = texelFetch(height_width_angle_tex, id);\n" +" vec2 height_width = hwa.xy;\n" +" // ORCA: Extract bias from w component\n" +" float bias = hwa.w;\n" " vec3 offset = texelFetch(position_tex, id).xyz - vec3(0.0, 0.0, 0.5 * height_width.x);\n" " height_width *= scaling_factor;\n" " mat3 scale_matrix = mat3(\n" @@ -193,6 +203,8 @@ static const char* Options_Vertex_Shader = " 0.0, height_width.y, 0.0,\n" " 0.0, 0.0, height_width.x);\n" " vec3 eye_position = (view_matrix * vec4(scale_matrix * in_position + offset, 1.0)).xyz;\n" +" // ORCA: Apply bias to z-position to avoid z-fighting\n" +" eye_position.z += bias;\n" " vec3 eye_normal = (view_matrix * vec4(in_normal, 0.0)).xyz;\n" " vec3 color_base = decode_color(texelFetch(color_tex, id).r);\n" " color = color_base * lighting(eye_position, eye_normal);\n" diff --git a/src/libvgcode/src/ViewerImpl.cpp b/src/libvgcode/src/ViewerImpl.cpp index 8576d697ad1..4732c042cf2 100644 --- a/src/libvgcode/src/ViewerImpl.cpp +++ b/src/libvgcode/src/ViewerImpl.cpp @@ -966,9 +966,18 @@ static void extract_pos_and_or_hwa(const std::vector& vertices, floa height = v.height; width = v.width; } + + // ORCA: Set bias for wipes and options to avoid z-fighting + float bias = 0.0f; + if (v.is_wipe()) + bias = 0.05f; + else if (v.is_option()) + bias = 0.1f; + // the last component is a dummy float to comply with GL_RGBA32F format + // ORCA: Pass bias to shader heights_widths_angles->push_back({ height, width, - std::atan2(prev_line[0] * this_line[1] - prev_line[1] * this_line[0], dot(prev_line, this_line)), 0.0f }); + std::atan2(prev_line[0] * this_line[1] - prev_line[1] * this_line[0], dot(prev_line, this_line)), bias }); } } } From 382cf57166deac2a466f225311dc4575ecd11780 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Tue, 10 Mar 2026 15:57:15 +0800 Subject: [PATCH 02/13] QoL: Fix hotkeys blocked in Prepare view when notification is shown (#12715) Fix hotkeys blocked in Prepare view when notification is shown Restore SetFocus() in the GLCanvas3D mouse-entering handler so the canvas reclaims wxWidget keyboard focus whenever the mouse enters it (provided the main window is active). Without this, clicking a sidebar control or a UI update triggered by slicing could leave the canvas without focus, causing hotkeys like Tab to stop working until the user clicked the canvas or dismissed the notification. --- src/slic3r/GUI/GLCanvas3D.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 452c4301a3d..2eff0298c95 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -4277,15 +4277,16 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) m_canvas->SetFocus(); if (evt.Entering()) { -//#if defined(__WXMSW__) || defined(__linux__) -// // On Windows and Linux needs focus in order to catch key events - // Set focus in order to remove it from sidebar fields + // Set focus in order to remove it from sidebar fields and ensure hotkeys work if (m_canvas != nullptr) { - // Only set focus, if the top level window of this canvas is active. + // Only set focus if the top level window of this canvas is active. auto p = dynamic_cast(evt.GetEventObject()); while (p->GetParent()) p = p->GetParent(); auto *top_level_wnd = dynamic_cast(p); + //Orca: Set focus so hotkeys like 'tab' work when a notification is shown. + if (top_level_wnd != nullptr && top_level_wnd->IsActive()) + m_canvas->SetFocus(); m_mouse.position = pos.cast(); m_tooltip_enabled = false; // 1) forces a frame render to ensure that m_hover_volume_idxs is updated even when the user right clicks while @@ -4297,7 +4298,6 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt) m_tooltip_enabled = true; } m_mouse.set_start_position_2D_as_invalid(); -//#endif } else if (evt.Leaving()) { // to remove hover on objects when the mouse goes out of this canvas From c9bf6f088a8b273d4149dc318e46292801cc9e94 Mon Sep 17 00:00:00 2001 From: yw4z Date: Tue, 10 Mar 2026 18:54:44 +0300 Subject: [PATCH 03/13] Remove duplicate items from actual speed plot (#12711) * init * update --- src/slic3r/GUI/GCodeViewer.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 443757a1179..fe47b581c31 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -1629,7 +1629,29 @@ void GCodeViewer::update_sequential_view_current(unsigned int first, unsigned in levels.push_back(std::make_pair(value, libvgcode::convert(color_range.get_color_at(value)))); levels.back().second.a(0.5f); } - m_sequential_view.marker.set_actual_speed_data(actual_speed_data); + + // ORCA Compress consecutive duplicate speeds with 0.1 precision + auto sameSpeed = [](float a, float b) { + return static_cast(std::roundf(a * 10.0f)) == static_cast(std::roundf(b * 10.0f)); + }; + std::vector compressed; + if (!actual_speed_data.empty()) { + compressed.push_back(actual_speed_data[0]); + for (int i = 1; i < (int)actual_speed_data.size(); ++i) { + const bool same_as_prev = sameSpeed(actual_speed_data[i].speed, actual_speed_data[i - 1].speed); + const bool same_as_next = (i + 1 < (int)actual_speed_data.size()) && sameSpeed(actual_speed_data[i].speed, actual_speed_data[i + 1].speed); + if (!same_as_prev) { + if (!sameSpeed(compressed.back().speed, actual_speed_data[i - 1].speed)) + compressed.push_back(actual_speed_data[i - 1]); + compressed.push_back(actual_speed_data[i]); + } else if (!same_as_next) + compressed.push_back(actual_speed_data[i]); + } + if (compressed.back().pos != actual_speed_data.back().pos) + compressed.push_back(actual_speed_data.back()); + } + + m_sequential_view.marker.set_actual_speed_data(compressed); m_sequential_view.marker.set_actual_speed_y_range(std::make_pair(interval[0], interval[1])); m_sequential_view.marker.set_actual_speed_levels(levels); } From b919148c66d54e6ded1917659dc6ae50dd240407 Mon Sep 17 00:00:00 2001 From: Valerii Bokhan <80919135+valerii-bokhan@users.noreply.github.com> Date: Tue, 10 Mar 2026 16:56:00 +0100 Subject: [PATCH 04/13] Fix: Added a warning if the Hollow base pattern is selected for the non-tree supports (#12710) Fixes point 4 of #12684 --- src/libslic3r/Print.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 56ff4513a80..7ec220dc73a 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1526,6 +1526,10 @@ StringObjectException Print::validate(StringObjectException *warning, Polygons* // Orca: check if the Lightning base pattern selected warning->string = L("The Lightning base pattern is not supported by this support type; Rectilinear will be used instead."); warning->opt_key = "support_base_pattern"; + } else if (object->config().support_base_pattern == SupportMaterialPattern::smpNone && warning) { + // Orca: check if the Hollow base pattern selected + warning->string = L("The Hollow base pattern is not supported by this support type; Rectilinear will be used instead."); + warning->opt_key = "support_base_pattern"; } } From 5f54e694c4d6b4f849a175ce7e8301e330039a05 Mon Sep 17 00:00:00 2001 From: yw4z Date: Tue, 10 Mar 2026 18:56:17 +0300 Subject: [PATCH 05/13] Calibration dialog Fixes (incorrect validators, scaling issues, UI refinements) (#12702) * Update calib_dlg.cpp * match validators * update * add missing linebreak * update --- localization/i18n/ca/OrcaSlicer_ca.po | 2 +- localization/i18n/cs/OrcaSlicer_cs.po | 2 +- localization/i18n/de/OrcaSlicer_de.po | 6 +- localization/i18n/en/OrcaSlicer_en.po | 2 +- localization/i18n/es/OrcaSlicer_es.po | 6 +- localization/i18n/fr/OrcaSlicer_fr.po | 2 +- localization/i18n/hu/OrcaSlicer_hu.po | 4 +- localization/i18n/it/OrcaSlicer_it.po | 2 +- localization/i18n/ja/OrcaSlicer_ja.po | 2 +- localization/i18n/ko/OrcaSlicer_ko.po | 2 +- localization/i18n/lt/OrcaSlicer_lt.po | 2 +- localization/i18n/nl/OrcaSlicer_nl.po | 2 +- localization/i18n/pl/OrcaSlicer_pl.po | 2 +- localization/i18n/pt_BR/OrcaSlicer_pt_BR.po | 6 +- localization/i18n/ru/OrcaSlicer_ru.po | 7 +- localization/i18n/sv/OrcaSlicer_sv.po | 2 +- localization/i18n/tr/OrcaSlicer_tr.po | 2 +- localization/i18n/uk/OrcaSlicer_uk.po | 2 +- localization/i18n/vi/OrcaSlicer_vi.po | 2 +- localization/i18n/zh_CN/OrcaSlicer_zh_CN.po | 4 +- localization/i18n/zh_TW/OrcaSlicer_zh_TW.po | 4 +- src/slic3r/GUI/calib_dlg.cpp | 82 +++++++++++---------- 22 files changed, 71 insertions(+), 76 deletions(-) diff --git a/localization/i18n/ca/OrcaSlicer_ca.po b/localization/i18n/ca/OrcaSlicer_ca.po index a057f290089..50c6e5f0540 100644 --- a/localization/i18n/ca/OrcaSlicer_ca.po +++ b/localization/i18n/ca/OrcaSlicer_ca.po @@ -19650,7 +19650,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/cs/OrcaSlicer_cs.po b/localization/i18n/cs/OrcaSlicer_cs.po index 9d7d320d38b..1cb30ab350f 100644 --- a/localization/i18n/cs/OrcaSlicer_cs.po +++ b/localization/i18n/cs/OrcaSlicer_cs.po @@ -19153,7 +19153,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/de/OrcaSlicer_de.po b/localization/i18n/de/OrcaSlicer_de.po index 4e57d33b56c..290102a94a8 100644 --- a/localization/i18n/de/OrcaSlicer_de.po +++ b/localization/i18n/de/OrcaSlicer_de.po @@ -20593,10 +20593,8 @@ msgstr "Ende: " msgid "Cornering settings" msgstr "Eckeneinstellungen" -msgid "Note: Lower values = sharper corners but slower speeds.\n" -msgstr "" -"Hinweis: Niedrigere Werte = schärfere Ecken, aber langsamere " -"Geschwindigkeiten.\n" +msgid "Note: Lower values = sharper corners but slower speeds." +msgstr "Hinweis: Niedrigere Werte = schärfere Ecken, aber langsamere Geschwindigkeiten." msgid "" "Marlin 2 Junction Deviation detected:\n" diff --git a/localization/i18n/en/OrcaSlicer_en.po b/localization/i18n/en/OrcaSlicer_en.po index 166ac607db6..91d2d7e60da 100644 --- a/localization/i18n/en/OrcaSlicer_en.po +++ b/localization/i18n/en/OrcaSlicer_en.po @@ -17688,7 +17688,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/es/OrcaSlicer_es.po b/localization/i18n/es/OrcaSlicer_es.po index 1388ccfd590..956e36321e9 100644 --- a/localization/i18n/es/OrcaSlicer_es.po +++ b/localization/i18n/es/OrcaSlicer_es.po @@ -20568,10 +20568,8 @@ msgstr "Fin: " msgid "Cornering settings" msgstr "Ajustes de esquinado" -msgid "Note: Lower values = sharper corners but slower speeds.\n" -msgstr "" -"Nota: Valores más bajos = esquinas más afiladas pero velocidades más " -"lentas.\n" +msgid "Note: Lower values = sharper corners but slower speeds." +msgstr "Nota: Valores más bajos = esquinas más afiladas pero velocidades más lentas." msgid "" "Marlin 2 Junction Deviation detected:\n" diff --git a/localization/i18n/fr/OrcaSlicer_fr.po b/localization/i18n/fr/OrcaSlicer_fr.po index 97852b7ca7e..83526d097cc 100644 --- a/localization/i18n/fr/OrcaSlicer_fr.po +++ b/localization/i18n/fr/OrcaSlicer_fr.po @@ -19831,7 +19831,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/hu/OrcaSlicer_hu.po b/localization/i18n/hu/OrcaSlicer_hu.po index 9ab955db299..e5a3dbc2fbb 100644 --- a/localization/i18n/hu/OrcaSlicer_hu.po +++ b/localization/i18n/hu/OrcaSlicer_hu.po @@ -20047,8 +20047,8 @@ msgstr "Vég: " msgid "Cornering settings" msgstr "Kanyarbeállítások" -msgid "Note: Lower values = sharper corners but slower speeds.\n" -msgstr "Megjegyzés: Az alacsonyabb értékek élesebb sarkokat, de lassabb sebességet jelentenek.\n" +msgid "Note: Lower values = sharper corners but slower speeds." +msgstr "Megjegyzés: Az alacsonyabb értékek élesebb sarkokat, de lassabb sebességet jelentenek." msgid "" "Marlin 2 Junction Deviation detected:\n" diff --git a/localization/i18n/it/OrcaSlicer_it.po b/localization/i18n/it/OrcaSlicer_it.po index 9fdffdadda8..96d7707448b 100644 --- a/localization/i18n/it/OrcaSlicer_it.po +++ b/localization/i18n/it/OrcaSlicer_it.po @@ -19775,7 +19775,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/ja/OrcaSlicer_ja.po b/localization/i18n/ja/OrcaSlicer_ja.po index 3e4f12b5517..4a6c53b66ec 100644 --- a/localization/i18n/ja/OrcaSlicer_ja.po +++ b/localization/i18n/ja/OrcaSlicer_ja.po @@ -17819,7 +17819,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/ko/OrcaSlicer_ko.po b/localization/i18n/ko/OrcaSlicer_ko.po index 456392b3107..08316d573ad 100644 --- a/localization/i18n/ko/OrcaSlicer_ko.po +++ b/localization/i18n/ko/OrcaSlicer_ko.po @@ -18890,7 +18890,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/lt/OrcaSlicer_lt.po b/localization/i18n/lt/OrcaSlicer_lt.po index 3959677a6de..881b675de9d 100644 --- a/localization/i18n/lt/OrcaSlicer_lt.po +++ b/localization/i18n/lt/OrcaSlicer_lt.po @@ -19687,7 +19687,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/nl/OrcaSlicer_nl.po b/localization/i18n/nl/OrcaSlicer_nl.po index e1cda56ea9a..108bb6f17ae 100644 --- a/localization/i18n/nl/OrcaSlicer_nl.po +++ b/localization/i18n/nl/OrcaSlicer_nl.po @@ -18349,7 +18349,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/pl/OrcaSlicer_pl.po b/localization/i18n/pl/OrcaSlicer_pl.po index c33b97e1ebd..5b941645f6e 100644 --- a/localization/i18n/pl/OrcaSlicer_pl.po +++ b/localization/i18n/pl/OrcaSlicer_pl.po @@ -19549,7 +19549,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po index f273c6a2886..2148b2f3d21 100644 --- a/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po +++ b/localization/i18n/pt_BR/OrcaSlicer_pt_BR.po @@ -20383,10 +20383,8 @@ msgstr "Final: " msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" -msgstr "" -"Nota: Valores mais baixos = cantos mais nítidos, mas velocidades mais " -"lentas.\n" +msgid "Note: Lower values = sharper corners but slower speeds." +msgstr "Nota: Valores mais baixos = cantos mais nítidos, mas velocidades mais lentas." msgid "" "Marlin 2 Junction Deviation detected:\n" diff --git a/localization/i18n/ru/OrcaSlicer_ru.po b/localization/i18n/ru/OrcaSlicer_ru.po index 80d396a0016..98c2225e9dd 100644 --- a/localization/i18n/ru/OrcaSlicer_ru.po +++ b/localization/i18n/ru/OrcaSlicer_ru.po @@ -20658,16 +20658,14 @@ msgstr "Конец: " msgid "Cornering settings" msgstr "Тестируемый диапазон" -msgid "Note: Lower values = sharper corners but slower speeds.\n" -msgstr "" -"Примечание: чем ниже значения, тем острее и медленнее печатаются углы.\n" +msgid "Note: Lower values = sharper corners but slower speeds." +msgstr "Примечание: чем ниже значения, тем острее и медленнее печатаются углы." msgid "" "Marlin 2 Junction Deviation detected:\n" "To test Classic Jerk, set 'Maximum Junction Deviation' in Motion ability to " "0." msgstr "" -" \n" "Внимание: тестируется работа Junction Deviation.\n" "Для тестирования рывков необходимо обнулить его значение (профиль принтера → " "ограничения → рывки → Макс. значение Junction Deviation)." @@ -20677,7 +20675,6 @@ msgid "" "To test Junction Deviation, set 'Maximum Junction Deviation' in Motion " "ability to a value > 0." msgstr "" -" \n" "Внимание: тестируется работа рывков.\n" "Для тестирования Junction Deviation ему необходимо установить ненулевое " "значение (профиль принтера → ограничения → рывки → Макс. значение Junction " diff --git a/localization/i18n/sv/OrcaSlicer_sv.po b/localization/i18n/sv/OrcaSlicer_sv.po index 3e3b98fd780..46ab83b2a20 100644 --- a/localization/i18n/sv/OrcaSlicer_sv.po +++ b/localization/i18n/sv/OrcaSlicer_sv.po @@ -18046,7 +18046,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/tr/OrcaSlicer_tr.po b/localization/i18n/tr/OrcaSlicer_tr.po index 5258aa247c1..de4e536e057 100644 --- a/localization/i18n/tr/OrcaSlicer_tr.po +++ b/localization/i18n/tr/OrcaSlicer_tr.po @@ -19596,7 +19596,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/uk/OrcaSlicer_uk.po b/localization/i18n/uk/OrcaSlicer_uk.po index d3c42f704aa..1f304568171 100644 --- a/localization/i18n/uk/OrcaSlicer_uk.po +++ b/localization/i18n/uk/OrcaSlicer_uk.po @@ -19504,7 +19504,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/vi/OrcaSlicer_vi.po b/localization/i18n/vi/OrcaSlicer_vi.po index f2f4284b132..8a01af9b695 100644 --- a/localization/i18n/vi/OrcaSlicer_vi.po +++ b/localization/i18n/vi/OrcaSlicer_vi.po @@ -19256,7 +19256,7 @@ msgstr "" msgid "Cornering settings" msgstr "" -msgid "Note: Lower values = sharper corners but slower speeds.\n" +msgid "Note: Lower values = sharper corners but slower speeds." msgstr "" msgid "" diff --git a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po index bc780f69095..2d7132e55c0 100644 --- a/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po +++ b/localization/i18n/zh_CN/OrcaSlicer_zh_CN.po @@ -18527,8 +18527,8 @@ msgstr "结尾:" msgid "Cornering settings" msgstr "转角设置" -msgid "Note: Lower values = sharper corners but slower speeds.\n" -msgstr "注意:值越低 = 转角越尖锐,但速度越慢。\n" +msgid "Note: Lower values = sharper corners but slower speeds." +msgstr "注意:值越低 = 转角越尖锐,但速度越慢。" msgid "" "Marlin 2 Junction Deviation detected:\n" diff --git a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po index 9333a8cd196..825847a73a9 100644 --- a/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po +++ b/localization/i18n/zh_TW/OrcaSlicer_zh_TW.po @@ -18667,8 +18667,8 @@ msgstr "結尾:" msgid "Cornering settings" msgstr "轉彎設定" -msgid "Note: Lower values = sharper corners but slower speeds.\n" -msgstr "注意:值越低 = 拐角越尖銳,但速度越慢。\n" +msgid "Note: Lower values = sharper corners but slower speeds." +msgstr "注意:值越低 = 拐角越尖銳,但速度越慢。" msgid "" "Marlin 2 Junction Deviation detected:\n" diff --git a/src/slic3r/GUI/calib_dlg.cpp b/src/slic3r/GUI/calib_dlg.cpp index 9dc0d478274..c0ca0ae017a 100644 --- a/src/slic3r/GUI/calib_dlg.cpp +++ b/src/slic3r/GUI/calib_dlg.cpp @@ -102,7 +102,7 @@ PA_Calibration_Dlg::PA_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plater* int text_max = GetTextMax(this, std::vector{start_pa_str, end_pa_str, PA_step_str, sp_accel_str, sp_speed_str, cb_print_no_str}); - auto st_size = FromDIP(wxSize(text_max, -1)); + auto st_size = wxSize(text_max, -1); auto ti_size = FromDIP(wxSize(120, -1)); LabeledStaticBox* stb = new LabeledStaticBox(this, _L("Settings")); @@ -123,7 +123,7 @@ PA_Calibration_Dlg::PA_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plater* auto end_PA_sizer = new wxBoxSizer(wxHORIZONTAL); auto end_pa_text = new wxStaticText(this, wxID_ANY, end_pa_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiEndPA = new TextInput(this, "", "", "", wxDefaultPosition, ti_size, wxTE_PROCESS_ENTER); - m_tiStartPA->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + m_tiEndPA->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); end_PA_sizer->Add(end_pa_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); end_PA_sizer->Add(m_tiEndPA , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); settings_sizer->Add(end_PA_sizer, 0, wxLEFT, FromDIP(3)); @@ -132,7 +132,7 @@ PA_Calibration_Dlg::PA_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plater* auto PA_step_sizer = new wxBoxSizer(wxHORIZONTAL); auto PA_step_text = new wxStaticText(this, wxID_ANY, PA_step_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiPAStep = new TextInput(this, "", "", "", wxDefaultPosition, ti_size, wxTE_PROCESS_ENTER); - m_tiStartPA->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + m_tiPAStep->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); PA_step_sizer->Add(PA_step_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); PA_step_sizer->Add(m_tiPAStep , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); settings_sizer->Add(PA_step_sizer, 0, wxLEFT, FromDIP(3)); @@ -351,7 +351,7 @@ Temp_Calibration_Dlg::Temp_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plat wxString temp_step_str = _L("Temp step: "); int text_max = GetTextMax(this, std::vector{start_temp_str, end_temp_str, temp_step_str}); - auto st_size = FromDIP(wxSize(text_max, -1)); + auto st_size = wxSize(text_max, -1); auto ti_size = FromDIP(wxSize(120, -1)); LabeledStaticBox* stb = new LabeledStaticBox(this, _L("Settings")); @@ -372,7 +372,7 @@ Temp_Calibration_Dlg::Temp_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plat auto end_temp_sizer = new wxBoxSizer(wxHORIZONTAL); auto end_temp_text = new wxStaticText(this, wxID_ANY, end_temp_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiEnd = new TextInput(this, std::to_string(190), _L("\u2103" /* °C */), "", wxDefaultPosition, ti_size); - m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + m_tiEnd->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); end_temp_sizer->Add(end_temp_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); end_temp_sizer->Add(m_tiEnd , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); settings_sizer->Add(end_temp_sizer, 0, wxLEFT, FromDIP(3)); @@ -381,7 +381,7 @@ Temp_Calibration_Dlg::Temp_Calibration_Dlg(wxWindow* parent, wxWindowID id, Plat auto temp_step_sizer = new wxBoxSizer(wxHORIZONTAL); auto temp_step_text = new wxStaticText(this, wxID_ANY, temp_step_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiStep = new TextInput(this, wxString::FromDouble(5), _L("\u2103" /* °C */), "", wxDefaultPosition, ti_size); - m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + m_tiStep->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); m_tiStep->Enable(false); temp_step_sizer->Add(temp_step_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); temp_step_sizer->Add(m_tiStep , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); @@ -533,7 +533,7 @@ MaxVolumetricSpeed_Test_Dlg::MaxVolumetricSpeed_Test_Dlg(wxWindow* parent, wxWin wxString vol_step_str = _L("Step") + ": "; int text_max = GetTextMax(this, std::vector{start_vol_str, end_vol_str, vol_step_str}); - auto st_size = FromDIP(wxSize(text_max, -1)); + auto st_size = wxSize(text_max, -1); auto ti_size = FromDIP(wxSize(120, -1)); LabeledStaticBox* stb = new LabeledStaticBox(this, _L("Settings")); @@ -555,7 +555,7 @@ MaxVolumetricSpeed_Test_Dlg::MaxVolumetricSpeed_Test_Dlg(wxWindow* parent, wxWin auto end_vol_sizer = new wxBoxSizer(wxHORIZONTAL); auto end_vol_text = new wxStaticText(this, wxID_ANY, end_vol_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiEnd = new TextInput(this, std::to_string(20), _L(u8"mm³/s"), "", wxDefaultPosition, ti_size); - m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + m_tiEnd->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); end_vol_sizer->Add(end_vol_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); end_vol_sizer->Add(m_tiEnd , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); settings_sizer->Add(end_vol_sizer, 0, wxLEFT, FromDIP(3)); @@ -564,7 +564,7 @@ MaxVolumetricSpeed_Test_Dlg::MaxVolumetricSpeed_Test_Dlg(wxWindow* parent, wxWin auto vol_step_sizer = new wxBoxSizer(wxHORIZONTAL); auto vol_step_text = new wxStaticText(this, wxID_ANY, vol_step_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiStep = new TextInput(this, wxString::FromDouble(0.5), _L(u8"mm³/s"), "", wxDefaultPosition, ti_size); - m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + m_tiStep->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); vol_step_sizer->Add(vol_step_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); vol_step_sizer->Add(m_tiStep , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); settings_sizer->Add(vol_step_sizer, 0, wxLEFT, FromDIP(3)); @@ -638,7 +638,7 @@ VFA_Test_Dlg::VFA_Test_Dlg(wxWindow* parent, wxWindowID id, Plater* plater) wxString vol_step_str = _L("Step") + ": "; int text_max = GetTextMax(this, std::vector{start_str, end_vol_str, vol_step_str}); - auto st_size = FromDIP(wxSize(text_max, -1)); + auto st_size = wxSize(text_max, -1); auto ti_size = FromDIP(wxSize(120, -1)); LabeledStaticBox* stb = new LabeledStaticBox(this, _L("Settings")); @@ -660,7 +660,7 @@ VFA_Test_Dlg::VFA_Test_Dlg(wxWindow* parent, wxWindowID id, Plater* plater) auto end_vol_sizer = new wxBoxSizer(wxHORIZONTAL); auto end_vol_text = new wxStaticText(this, wxID_ANY, end_vol_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiEnd = new TextInput(this, std::to_string(200), _L("mm/s"), "", wxDefaultPosition, ti_size); - m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + m_tiEnd->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); end_vol_sizer->Add(end_vol_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); end_vol_sizer->Add(m_tiEnd , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); settings_sizer->Add(end_vol_sizer, 0, wxLEFT, FromDIP(3)); @@ -669,7 +669,7 @@ VFA_Test_Dlg::VFA_Test_Dlg(wxWindow* parent, wxWindowID id, Plater* plater) auto vol_step_sizer = new wxBoxSizer(wxHORIZONTAL); auto vol_step_text = new wxStaticText(this, wxID_ANY, vol_step_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiStep = new TextInput(this, wxString::FromDouble(10), _L("mm/s"), "", wxDefaultPosition, ti_size); - m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + m_tiStep->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); vol_step_sizer->Add(vol_step_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); vol_step_sizer->Add(m_tiStep , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); settings_sizer->Add(vol_step_sizer, 0, wxLEFT, FromDIP(3)); @@ -746,7 +746,7 @@ Retraction_Test_Dlg::Retraction_Test_Dlg(wxWindow* parent, wxWindowID id, Plater wxString length_step_str = _L("Step") + ": "; int text_max = GetTextMax(this, std::vector{start_length_str, end_length_str, length_step_str}); - auto st_size = FromDIP(wxSize(text_max, -1)); + auto st_size = wxSize(text_max, -1); auto ti_size = FromDIP(wxSize(120, -1)); LabeledStaticBox* stb = new LabeledStaticBox(this, _L("Settings")); @@ -768,7 +768,7 @@ Retraction_Test_Dlg::Retraction_Test_Dlg(wxWindow* parent, wxWindowID id, Plater auto end_length_sizer = new wxBoxSizer(wxHORIZONTAL); auto end_length_text = new wxStaticText(this, wxID_ANY, end_length_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiEnd = new TextInput(this, std::to_string(2), _L("mm"), "", wxDefaultPosition, ti_size); - m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + m_tiEnd->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); end_length_sizer->Add(end_length_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); end_length_sizer->Add(m_tiEnd , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); settings_sizer->Add(end_length_sizer, 0, wxLEFT, FromDIP(3)); @@ -777,7 +777,7 @@ Retraction_Test_Dlg::Retraction_Test_Dlg(wxWindow* parent, wxWindowID id, Plater auto length_step_sizer = new wxBoxSizer(wxHORIZONTAL); auto length_step_text = new wxStaticText(this, wxID_ANY, length_step_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiStep = new TextInput(this, wxString::FromDouble(0.1), _L("mm"), "", wxDefaultPosition, ti_size); - m_tiStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); + m_tiStep->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); length_step_sizer->Add(length_step_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); length_step_sizer->Add(m_tiStep , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); settings_sizer->Add(length_step_sizer, 0, wxLEFT, FromDIP(3)); @@ -855,7 +855,7 @@ Input_Shaping_Freq_Test_Dlg::Input_Shaping_Freq_Test_Dlg(wxWindow* parent, wxWin auto labeled_box_model = new LabeledStaticBox(this, _L("Test model")); auto model_box = new wxStaticBoxSizer(labeled_box_model, wxHORIZONTAL); - m_rbModel = new RadioGroup(this, { _L("Ringing Tower"), _L("Fast Tower") }, wxHORIZONTAL); + m_rbModel = new RadioGroup(this, { _L("Ringing Tower"), _L("Fast Tower") }, wxVERTICAL); model_box->Add(m_rbModel, 0, wxALL | wxEXPAND, FromDIP(4)); v_sizer->Add(model_box, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(10)); @@ -897,7 +897,7 @@ Input_Shaping_Freq_Test_Dlg::Input_Shaping_Freq_Test_Dlg(wxWindow* parent, wxWin wxString y_axis_str = "Y " + _L("Start / End") + ": "; int text_max = GetTextMax(this, std::vector{x_axis_str, y_axis_str}); - auto st_size = FromDIP(wxSize(text_max, -1)); + auto st_size = wxSize(text_max, -1); auto ti_size = FromDIP(wxSize(120, -1)); LabeledStaticBox* stb = new LabeledStaticBox(this, _L("Frequency settings")); @@ -958,6 +958,7 @@ Input_Shaping_Freq_Test_Dlg::Input_Shaping_Freq_Test_Dlg(wxWindow* parent, wxWin auto note_text = new wxStaticText(this, wxID_ANY, _L("Recommended: Set Damp to 0.\nThis will use the printer's default or saved value."), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); note_text->SetForegroundColour(wxColour(128, 128, 128)); + note_text->Wrap(FromDIP(350)); settings_sizer->Add(note_text, 0, wxALL, FromDIP(5)); settings_sizer->AddSpacer(FromDIP(5)); @@ -1071,7 +1072,7 @@ Input_Shaping_Damp_Test_Dlg::Input_Shaping_Damp_Test_Dlg(wxWindow* parent, wxWin auto labeled_box_model = new LabeledStaticBox(this, _L("Test model")); auto model_box = new wxStaticBoxSizer(labeled_box_model, wxHORIZONTAL); - m_rbModel = new RadioGroup(this, { _L("Ringing Tower"), _L("Fast Tower") }, wxHORIZONTAL); + m_rbModel = new RadioGroup(this, { _L("Ringing Tower"), _L("Fast Tower") }, wxVERTICAL); model_box->Add(m_rbModel, 0, wxALL | wxEXPAND, FromDIP(4)); v_sizer->Add(model_box, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(10)); @@ -1113,7 +1114,7 @@ Input_Shaping_Damp_Test_Dlg::Input_Shaping_Damp_Test_Dlg(wxWindow* parent, wxWin wxString damp_str = _L("Damp") + " " + _L("Start / End") + ": "; int text_max = GetTextMax(this, std::vector{freq_str, damp_str}); - auto st_size = FromDIP(wxSize(text_max, -1)); + auto st_size = wxSize(text_max, -1); auto ti_size = FromDIP(wxSize(120, -1)); LabeledStaticBox* stb = new LabeledStaticBox(this, _L("Frequency settings")); @@ -1258,13 +1259,14 @@ Cornering_Test_Dlg::Cornering_Test_Dlg(wxWindow* parent, wxWindowID id, Plater* auto labeled_box_model = new LabeledStaticBox(this, _L("Test model")); auto model_box = new wxStaticBoxSizer(labeled_box_model, wxHORIZONTAL); - m_rbModel = new RadioGroup(this, { _L("Ringing Tower"), _L("Fast Tower"), _L("SCV-V2") }, wxHORIZONTAL); + m_rbModel = new RadioGroup(this, { _L("Ringing Tower"), _L("Fast Tower"), _L("SCV-V2") }, wxVERTICAL); model_box->Add(m_rbModel, 0, wxALL | wxEXPAND, FromDIP(4)); v_sizer->Add(model_box, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(10)); // Settings wxString start_jd_str = _L("Start: "); wxString end_jd_str = _L("End: "); + int text_max = GetTextMax(this, std::vector{start_jd_str, end_jd_str}); LabeledStaticBox* stb = new LabeledStaticBox(this, _L("Cornering settings")); wxStaticBoxSizer* settings_sizer = new wxStaticBoxSizer(stb, wxVERTICAL); @@ -1297,61 +1299,63 @@ Cornering_Test_Dlg::Cornering_Test_Dlg(wxWindow* parent, wxWindowID id, Plater* units_str = "mm/s"; } + auto st_size = wxSize(text_max, -1); auto ti_size = FromDIP(wxSize(120, -1)); - // Start and End cornering on same row - auto cornering_row_sizer = new wxBoxSizer(wxHORIZONTAL); - // Start cornering auto start_jd_sizer = new wxBoxSizer(wxHORIZONTAL); - auto start_jd_text = new wxStaticText(this, wxID_ANY, start_jd_str, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); + auto start_jd_text = new wxStaticText(this, wxID_ANY, start_jd_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiJDStart = new TextInput(this, start_value_str, units_str, "", wxDefaultPosition, ti_size); m_tiJDStart->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); start_jd_sizer->Add(start_jd_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); start_jd_sizer->Add(m_tiJDStart , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); - cornering_row_sizer->Add(start_jd_sizer, 0, wxLEFT, FromDIP(3)); + settings_sizer->Add(start_jd_sizer, 0, wxLEFT, FromDIP(3)); // End cornering auto end_jd_sizer = new wxBoxSizer(wxHORIZONTAL); - auto end_jd_text = new wxStaticText(this, wxID_ANY, end_jd_str, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); + auto end_jd_text = new wxStaticText(this, wxID_ANY, end_jd_str, wxDefaultPosition, st_size, wxALIGN_LEFT); m_tiJDEnd = new TextInput(this, end_value_str, units_str, "", wxDefaultPosition, ti_size); m_tiJDEnd->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); end_jd_sizer->Add(end_jd_text, 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); end_jd_sizer->Add(m_tiJDEnd , 0, wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(2)); - cornering_row_sizer->Add(end_jd_sizer, 0, wxLEFT, FromDIP(3)); - - settings_sizer->Add(cornering_row_sizer, 0, wxLEFT, FromDIP(3)); + settings_sizer->Add(end_jd_sizer, 0, wxLEFT, FromDIP(3)); settings_sizer->AddSpacer(FromDIP(5)); // Add note about cornering based on GCode Flavor - wxString note_msg = _L("Note: Lower values = sharper corners but slower speeds.\n"); + wxString note_msg = _L("Note: Lower values = sharper corners but slower speeds."); + auto note_text = new wxStaticText(this, wxID_ANY, note_msg, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); + note_text->SetForegroundColour(wxColour(128, 128, 128)); + note_text->Wrap(FromDIP(300)); + settings_sizer->Add(note_text, 0, wxALL, FromDIP(5)); + if (gcode_flavor_option) { + wxString note_msg_2; switch (gcode_flavor_option->value) { case GCodeFlavor::gcfMarlinFirmware: { // Check if machine_max_junction_deviation is set and > 0 const auto* max_jd_option = preset_bundle->printers.get_edited_preset().config.option("machine_max_junction_deviation"); if (max_jd_option && !max_jd_option->values.empty() && max_jd_option->values[0] > 0) { - note_msg += _L("Marlin 2 Junction Deviation detected:\nTo test Classic Jerk, set 'Maximum Junction Deviation' in Motion ability to 0."); + note_msg_2 += _L("Marlin 2 Junction Deviation detected:\nTo test Classic Jerk, set 'Maximum Junction Deviation' in Motion ability to 0."); } else { - note_msg += _L("Marlin 2 Classic Jerk detected:\nTo test Junction Deviation, set 'Maximum Junction Deviation' in Motion ability to a value > 0."); + note_msg_2 += _L("Marlin 2 Classic Jerk detected:\nTo test Junction Deviation, set 'Maximum Junction Deviation' in Motion ability to a value > 0."); } break; } case GCodeFlavor::gcfRepRapFirmware: - note_msg += _L("RepRap detected: Jerk in mm/s.\nOrcaSlicer will convert the values to mm/min when necessary."); + note_msg_2 += _L("RepRap detected: Jerk in mm/s.\nOrcaSlicer will convert the values to mm/min when necessary."); break; default: break; } + if(!note_msg_2.empty()){ + auto note_text_2 = new wxStaticText(this, wxID_ANY, note_msg_2, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); + note_text_2->SetForegroundColour(wxColour(128, 128, 128)); + note_text_2->Wrap(FromDIP(300)); + settings_sizer->Add(note_text_2, 0, wxALL, FromDIP(5)); + } } - auto note_text = new wxStaticText(this, wxID_ANY, note_msg, - wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); - note_text->SetForegroundColour(wxColour(128, 128, 128)); - note_text->Wrap(FromDIP(300)); - settings_sizer->Add(note_text, 0, wxALL, FromDIP(5)); - v_sizer->Add(settings_sizer, 0, wxTOP | wxRIGHT | wxLEFT | wxEXPAND, FromDIP(10)); v_sizer->AddSpacer(FromDIP(5)); From fbe2aeaa2e50e7c55be63c2b0959d7cd678f11fe Mon Sep 17 00:00:00 2001 From: VOLUMIC <31067164+VOLUMIC@users.noreply.github.com> Date: Tue, 10 Mar 2026 17:15:09 +0100 Subject: [PATCH 06/13] VOLUMIC profils update (#12721) * VOLUMIC profils updates * Delete resources/profiles/Volumic/EXO42 IDRE_cover.png * VOLUMIC profils updates * VOLUMIC profils updates * Profils bug fix * VOLUMIC profils updates * Fix SC2 Stage 2 * Update Volumic.json --- resources/profiles/Volumic.json | 776 ++++-------------- .../VS30SC2 Performance (0.4 nozzle).json | 4 +- 2 files changed, 184 insertions(+), 596 deletions(-) diff --git a/resources/profiles/Volumic.json b/resources/profiles/Volumic.json index ad1f7b494f9..839d81e4fb7 100644 --- a/resources/profiles/Volumic.json +++ b/resources/profiles/Volumic.json @@ -1,606 +1,194 @@ { "name": "Volumic", - "version": "02.03.02.51", + "version": "02.03.02.55", "force_update": "1", "description": "VOLUMIC configurations", "machine_model_list": [ - { - "name": "EXO42", - "sub_path": "machine/EXO42.json" - }, - { - "name": "EXO42 IDRE", - "sub_path": "machine/EXO42 IDRE.json" - }, - { - "name": "EXO42 Performance", - "sub_path": "machine/EXO42 Performance.json" - }, - { - "name": "EXO42 Stage 2", - "sub_path": "machine/EXO42 Stage 2.json" - }, - { - "name": "EXO65", - "sub_path": "machine/EXO65.json" - }, - { - "name": "EXO65 IDRE", - "sub_path": "machine/EXO65 IDRE.json" - }, - { - "name": "EXO65 Performance", - "sub_path": "machine/EXO65 Performance.json" - }, - { - "name": "EXO65 Stage 2", - "sub_path": "machine/EXO65 Stage 2.json" - }, - { - "name": "SH65", - "sub_path": "machine/SH65.json" - }, - { - "name": "SH65 IDRE", - "sub_path": "machine/SH65 IDRE.json" - }, - { - "name": "SH65 Performance", - "sub_path": "machine/SH65 Performance.json" - }, - { - "name": "SH65 Stage 2", - "sub_path": "machine/SH65 Stage 2.json" - }, - { - "name": "VS20MK2", - "sub_path": "machine/VS20MK2.json" - }, - { - "name": "VS30MK2", - "sub_path": "machine/VS30MK2.json" - }, - { - "name": "VS30MK3", - "sub_path": "machine/VS30MK3.json" - }, - { - "name": "VS30MK3 Stage 2", - "sub_path": "machine/VS30MK3 Stage 2.json" - }, - { - "name": "VS30SC", - "sub_path": "machine/VS30SC.json" - }, - { - "name": "VS30SC2", - "sub_path": "machine/VS30SC2.json" - }, - { - "name": "VS30SC2 Stage 2", - "sub_path": "machine/VS30SC2 Stage 2.json" - }, - { - "name": "VS30ULTRA", - "sub_path": "machine/VS30ULTRA.json" - } + {"name": "EXO42 Performance","sub_path": "machine/EXO42 Performance.json"}, + {"name": "EXO42 IDRE","sub_path": "machine/EXO42 IDRE.json"}, + {"name": "EXO42","sub_path": "machine/EXO42.json"}, + {"name": "EXO42 Stage 2","sub_path": "machine/EXO42 Stage 2.json"}, + {"name": "EXO65 Performance","sub_path": "machine/EXO65 Performance.json"}, + {"name": "EXO65 IDRE","sub_path": "machine/EXO65 IDRE.json"}, + {"name": "EXO65","sub_path": "machine/EXO65.json"}, + {"name": "EXO65 Stage 2","sub_path": "machine/EXO65 Stage 2.json"}, + {"name": "SH65 Performance","sub_path": "machine/SH65 Performance.json"}, + {"name": "SH65 IDRE","sub_path": "machine/SH65 IDRE.json"}, + {"name": "SH65","sub_path": "machine/SH65.json"}, + {"name": "SH65 Stage 2","sub_path": "machine/SH65 Stage 2.json"}, + {"name": "VS30SC2 Performance","sub_path": "machine/VS30SC2 Performance.json"}, + {"name": "VS30SC2","sub_path": "machine/VS30SC2.json"}, + {"name": "VS30SC2 Stage 2","sub_path": "machine/VS30SC2 Stage 2.json"}, + {"name": "VS30SC","sub_path": "machine/VS30SC.json"}, + {"name": "VS30ULTRA","sub_path": "machine/VS30ULTRA.json"}, + {"name": "VS30MK3","sub_path": "machine/VS30MK3.json"}, + {"name": "VS30MK3 Stage 2","sub_path": "machine/VS30MK3 Stage 2.json"}, + {"name": "VS30MK2","sub_path": "machine/VS30MK2.json"}, + {"name": "VS20MK2","sub_path": "machine/VS20MK2.json"} ], "machine_list": [ - { - "name": "fdm_volumic_common", - "sub_path": "machine/fdm_volumic_common.json" - }, - { - "name": "EXO42 (0.4 nozzle)", - "sub_path": "machine/EXO42 (0.4 nozzle).json" - }, - { - "name": "EXO42 IDRE (0.4 nozzle)", - "sub_path": "machine/EXO42 IDRE (0.4 nozzle).json" - }, - { - "name": "EXO42 IDRE COPY MODE (0.4 nozzle)", - "sub_path": "machine/EXO42 IDRE COPY MODE (0.4 nozzle).json" - }, - { - "name": "EXO42 IDRE MIRROR MODE (0.4 nozzle)", - "sub_path": "machine/EXO42 IDRE MIRROR MODE (0.4 nozzle).json" - }, - { - "name": "EXO42 Performance (0.4 nozzle)", - "sub_path": "machine/EXO42 Performance (0.4 nozzle).json" - }, - { - "name": "EXO42 Stage 2 (0.4 nozzle)", - "sub_path": "machine/EXO42 Stage 2 (0.4 nozzle).json" - }, - { - "name": "EXO65 (0.6 nozzle)", - "sub_path": "machine/EXO65 (0.6 nozzle).json" - }, - { - "name": "EXO65 IDRE (0.4 nozzle)", - "sub_path": "machine/EXO65 IDRE (0.4 nozzle).json" - }, - { - "name": "EXO65 IDRE COPY MODE (0.4 nozzle)", - "sub_path": "machine/EXO65 IDRE COPY MODE (0.4 nozzle).json" - }, - { - "name": "EXO65 IDRE MIRROR MODE (0.4 nozzle)", - "sub_path": "machine/EXO65 IDRE MIRROR MODE (0.4 nozzle).json" - }, - { - "name": "EXO65 Performance (0.4 nozzle)", - "sub_path": "machine/EXO65 Performance (0.4 nozzle).json" - }, - { - "name": "EXO65 Performance (0.6 nozzle)", - "sub_path": "machine/EXO65 Performance (0.6 nozzle).json" - }, - { - "name": "EXO65 Performance (0.8 nozzle)", - "sub_path": "machine/EXO65 Performance (0.8 nozzle).json" - }, - { - "name": "EXO65 Stage 2 (0.6 nozzle)", - "sub_path": "machine/EXO65 Stage 2 (0.6 nozzle).json" - }, - { - "name": "SH65 (0.4 nozzle)", - "sub_path": "machine/SH65 (0.4 nozzle).json" - }, - { - "name": "SH65 IDRE (0.4 nozzle)", - "sub_path": "machine/SH65 IDRE (0.4 nozzle).json" - }, - { - "name": "SH65 IDRE COPY MODE (0.4 nozzle)", - "sub_path": "machine/SH65 IDRE COPY MODE (0.4 nozzle).json" - }, - { - "name": "SH65 IDRE MIRROR MODE (0.4 nozzle)", - "sub_path": "machine/SH65 IDRE MIRROR MODE (0.4 nozzle).json" - }, - { - "name": "SH65 Performance (0.4 nozzle)", - "sub_path": "machine/SH65 Performance (0.4 nozzle).json" - }, - { - "name": "SH65 Stage 2 (0.4 nozzle)", - "sub_path": "machine/SH65 Stage 2 (0.4 nozzle).json" - }, - { - "name": "VS20MK2 (0.4 nozzle)", - "sub_path": "machine/VS20MK2 (0.4 nozzle).json" - }, - { - "name": "VS30MK2 (0.4 nozzle)", - "sub_path": "machine/VS30MK2 (0.4 nozzle).json" - }, - { - "name": "VS30MK3 (0.4 nozzle)", - "sub_path": "machine/VS30MK3 (0.4 nozzle).json" - }, - { - "name": "VS30MK3 Stage 2 (0.4 nozzle)", - "sub_path": "machine/VS30MK3 Stage 2 (0.4 nozzle).json" - }, - { - "name": "VS30SC (0.4 nozzle)", - "sub_path": "machine/VS30SC (0.4 nozzle).json" - }, - { - "name": "VS30SC2 (0.4 nozzle)", - "sub_path": "machine/VS30SC2 (0.4 nozzle).json" - }, - { - "name": "VS30SC2 Stage 2 (0.4 nozzle)", - "sub_path": "machine/VS30SC2 Stage 2 (0.4 nozzle).json" - }, - { - "name": "VS30ULTRA (0.4 nozzle)", - "sub_path": "machine/VS30ULTRA (0.4 nozzle).json" - } + {"name": "fdm_volumic_common","sub_path": "machine/fdm_volumic_common.json"}, + {"name": "EXO42 Performance (0.4 nozzle)","sub_path": "machine/EXO42 Performance (0.4 nozzle).json"}, + {"name": "EXO65 Performance (0.4 nozzle)","sub_path": "machine/EXO65 Performance (0.4 nozzle).json"}, + {"name": "EXO65 Performance (0.6 nozzle)","sub_path": "machine/EXO65 Performance (0.6 nozzle).json"}, + {"name": "EXO65 Performance (0.8 nozzle)","sub_path": "machine/EXO65 Performance (0.8 nozzle).json"}, + {"name": "SH65 Performance (0.4 nozzle)","sub_path": "machine/SH65 Performance (0.4 nozzle).json"}, + {"name": "EXO42 IDRE (0.4 nozzle)","sub_path": "machine/EXO42 IDRE (0.4 nozzle).json"}, + {"name": "EXO42 IDRE COPY MODE (0.4 nozzle)","sub_path": "machine/EXO42 IDRE COPY MODE (0.4 nozzle).json"}, + {"name": "EXO42 IDRE MIRROR MODE (0.4 nozzle)","sub_path": "machine/EXO42 IDRE MIRROR MODE (0.4 nozzle).json"}, + {"name": "EXO65 IDRE (0.4 nozzle)","sub_path": "machine/EXO65 IDRE (0.4 nozzle).json"}, + {"name": "EXO65 IDRE COPY MODE (0.4 nozzle)","sub_path": "machine/EXO65 IDRE COPY MODE (0.4 nozzle).json"}, + {"name": "EXO65 IDRE MIRROR MODE (0.4 nozzle)","sub_path": "machine/EXO65 IDRE MIRROR MODE (0.4 nozzle).json"}, + {"name": "SH65 IDRE (0.4 nozzle)","sub_path": "machine/SH65 IDRE (0.4 nozzle).json"}, + {"name": "SH65 IDRE COPY MODE (0.4 nozzle)","sub_path": "machine/SH65 IDRE COPY MODE (0.4 nozzle).json"}, + {"name": "SH65 IDRE MIRROR MODE (0.4 nozzle)","sub_path": "machine/SH65 IDRE MIRROR MODE (0.4 nozzle).json"}, + {"name": "EXO42 (0.4 nozzle)","sub_path": "machine/EXO42 (0.4 nozzle).json"}, + {"name": "EXO65 (0.6 nozzle)","sub_path": "machine/EXO65 (0.6 nozzle).json"}, + {"name": "SH65 (0.4 nozzle)","sub_path": "machine/SH65 (0.4 nozzle).json"}, + {"name": "VS30SC2 Performance (0.4 nozzle)","sub_path": "machine/VS30SC2 Performance (0.4 nozzle).json"}, + {"name": "VS30SC2 (0.4 nozzle)","sub_path": "machine/VS30SC2 (0.4 nozzle).json"}, + {"name": "VS30SC2 Stage 2 (0.4 nozzle)","sub_path": "machine/VS30SC2 Stage 2 (0.4 nozzle).json"}, + {"name": "VS30SC (0.4 nozzle)","sub_path": "machine/VS30SC (0.4 nozzle).json"}, + {"name": "VS30ULTRA (0.4 nozzle)","sub_path": "machine/VS30ULTRA (0.4 nozzle).json"}, + {"name": "VS30MK3 (0.4 nozzle)","sub_path": "machine/VS30MK3 (0.4 nozzle).json"}, + {"name": "VS30MK2 (0.4 nozzle)","sub_path": "machine/VS30MK2 (0.4 nozzle).json"}, + {"name": "VS20MK2 (0.4 nozzle)","sub_path": "machine/VS20MK2 (0.4 nozzle).json"}, + {"name": "EXO42 Stage 2 (0.4 nozzle)","sub_path": "machine/EXO42 Stage 2 (0.4 nozzle).json"}, + {"name": "EXO65 Stage 2 (0.6 nozzle)","sub_path": "machine/EXO65 Stage 2 (0.6 nozzle).json"}, + {"name": "SH65 Stage 2 (0.4 nozzle)","sub_path": "machine/SH65 Stage 2 (0.4 nozzle).json"}, + {"name": "VS30MK3 Stage 2 (0.4 nozzle)","sub_path": "machine/VS30MK3 Stage 2 (0.4 nozzle).json"} + ], "process_list": [ - { - "name": "fdm_process_volumic_common", - "sub_path": "process/fdm_process_volumic_common.json" - }, - { - "name": "Compatible speed - 0.10mm", - "sub_path": "process/Compatible speed - 0.10mm.json" - }, - { - "name": "Compatible speed - 0.15mm", - "sub_path": "process/Compatible speed - 0.15mm.json" - }, - { - "name": "Compatible speed - 0.20mm", - "sub_path": "process/Compatible speed - 0.20mm.json" - }, - { - "name": "Compatible speed - 0.25mm", - "sub_path": "process/Compatible speed - 0.25mm.json" - }, - { - "name": "Compatible speed - 0.30mm", - "sub_path": "process/Compatible speed - 0.30mm.json" - }, - { - "name": "Full performance - 0.10mm", - "sub_path": "process/Full performance - 0.10mm.json" - }, - { - "name": "Full performance - 0.15mm", - "sub_path": "process/Full performance - 0.15mm.json" - }, - { - "name": "Full performance - 0.20mm", - "sub_path": "process/Full performance - 0.20mm.json" - }, - { - "name": "Full performance - 0.25mm", - "sub_path": "process/Full performance - 0.25mm.json" - }, - { - "name": "Full performance - 0.30mm", - "sub_path": "process/Full performance - 0.30mm.json" - }, - { - "name": "Full performance DUAL - 0.10mm", - "sub_path": "process/Full performance DUAL - 0.10mm.json" - }, - { - "name": "Full performance DUAL - 0.15mm", - "sub_path": "process/Full performance DUAL - 0.15mm.json" - }, - { - "name": "Full performance DUAL - 0.20mm", - "sub_path": "process/Full performance DUAL - 0.20mm.json" - }, - { - "name": "Full performance DUAL - 0.25mm", - "sub_path": "process/Full performance DUAL - 0.25mm.json" - }, - { - "name": "Full performance DUAL - 0.30mm", - "sub_path": "process/Full performance DUAL - 0.30mm.json" - }, - { - "name": "High performance - 0.10mm", - "sub_path": "process/High performance - 0.10mm.json" - }, - { - "name": "High performance - 0.15mm", - "sub_path": "process/High performance - 0.15mm.json" - }, - { - "name": "High performance - 0.20mm", - "sub_path": "process/High performance - 0.20mm.json" - }, - { - "name": "High performance - 0.25mm", - "sub_path": "process/High performance - 0.25mm.json" - }, - { - "name": "High performance - 0.30mm", - "sub_path": "process/High performance - 0.30mm.json" - }, - { - "name": "High performance DUAL - 0.10mm", - "sub_path": "process/High performance DUAL - 0.10mm.json" - }, - { - "name": "High performance DUAL - 0.15mm", - "sub_path": "process/High performance DUAL - 0.15mm.json" - }, - { - "name": "High performance DUAL - 0.20mm", - "sub_path": "process/High performance DUAL - 0.20mm.json" - }, - { - "name": "High performance DUAL - 0.25mm", - "sub_path": "process/High performance DUAL - 0.25mm.json" - }, - { - "name": "High performance DUAL - 0.30mm", - "sub_path": "process/High performance DUAL - 0.30mm.json" - }, - { - "name": "High speed (Stage 2) - 0.10mm", - "sub_path": "process/High speed (Stage 2) - 0.10mm.json" - }, - { - "name": "High speed (Stage 2) - 0.15mm", - "sub_path": "process/High speed (Stage 2) - 0.15mm.json" - }, - { - "name": "High speed (Stage 2) - 0.20mm", - "sub_path": "process/High speed (Stage 2) - 0.20mm.json" - }, - { - "name": "High speed (Stage 2) - 0.25mm", - "sub_path": "process/High speed (Stage 2) - 0.25mm.json" - }, - { - "name": "High speed (Stage 2) - 0.30mm", - "sub_path": "process/High speed (Stage 2) - 0.30mm.json" - }, - { - "name": "High speed - 0.10mm", - "sub_path": "process/High speed - 0.10mm.json" - }, - { - "name": "High speed - 0.15mm", - "sub_path": "process/High speed - 0.15mm.json" - }, - { - "name": "High speed - 0.20mm", - "sub_path": "process/High speed - 0.20mm.json" - }, - { - "name": "High speed - 0.25mm", - "sub_path": "process/High speed - 0.25mm.json" - }, - { - "name": "High speed - 0.30mm", - "sub_path": "process/High speed - 0.30mm.json" - }, - { - "name": "Normal performance - 0.10mm", - "sub_path": "process/Normal performance - 0.10mm.json" - }, - { - "name": "Normal performance - 0.15mm", - "sub_path": "process/Normal performance - 0.15mm.json" - }, - { - "name": "Normal performance - 0.20mm", - "sub_path": "process/Normal performance - 0.20mm.json" - }, - { - "name": "Normal performance - 0.25mm", - "sub_path": "process/Normal performance - 0.25mm.json" - }, - { - "name": "Normal performance - 0.30mm", - "sub_path": "process/Normal performance - 0.30mm.json" - }, - { - "name": "Normal performance DUAL - 0.10mm", - "sub_path": "process/Normal performance DUAL - 0.10mm.json" - }, - { - "name": "Normal performance DUAL - 0.15mm", - "sub_path": "process/Normal performance DUAL - 0.15mm.json" - }, - { - "name": "Normal performance DUAL - 0.20mm", - "sub_path": "process/Normal performance DUAL - 0.20mm.json" - }, - { - "name": "Normal performance DUAL - 0.25mm", - "sub_path": "process/Normal performance DUAL - 0.25mm.json" - }, - { - "name": "Normal performance DUAL - 0.30mm", - "sub_path": "process/Normal performance DUAL - 0.30mm.json" - }, - { - "name": "Normal speed (Stage 2) - 0.10mm", - "sub_path": "process/Normal speed (Stage 2) - 0.10mm.json" - }, - { - "name": "Normal speed (Stage 2) - 0.15mm", - "sub_path": "process/Normal speed (Stage 2) - 0.15mm.json" - }, - { - "name": "Normal speed (Stage 2) - 0.20mm", - "sub_path": "process/Normal speed (Stage 2) - 0.20mm.json" - }, - { - "name": "Normal speed (Stage 2) - 0.25mm", - "sub_path": "process/Normal speed (Stage 2) - 0.25mm.json" - }, - { - "name": "Normal speed (Stage 2) - 0.30mm", - "sub_path": "process/Normal speed (Stage 2) - 0.30mm.json" - }, - { - "name": "Normal speed - 0.10mm", - "sub_path": "process/Normal speed - 0.10mm.json" - }, - { - "name": "Normal speed - 0.15mm", - "sub_path": "process/Normal speed - 0.15mm.json" - }, - { - "name": "Normal speed - 0.20mm", - "sub_path": "process/Normal speed - 0.20mm.json" - }, - { - "name": "Normal speed - 0.25mm", - "sub_path": "process/Normal speed - 0.25mm.json" - }, - { - "name": "Normal speed - 0.30mm", - "sub_path": "process/Normal speed - 0.30mm.json" - }, - { - "name": "Very high speed (Stage 2) - 0.10mm", - "sub_path": "process/Very high speed (Stage 2) - 0.10mm.json" - }, - { - "name": "Very high speed (Stage 2) - 0.15mm", - "sub_path": "process/Very high speed (Stage 2) - 0.15mm.json" - }, - { - "name": "Very high speed (Stage 2) - 0.20mm", - "sub_path": "process/Very high speed (Stage 2) - 0.20mm.json" - }, - { - "name": "Very high speed (Stage 2) - 0.25mm", - "sub_path": "process/Very high speed (Stage 2) - 0.25mm.json" - }, - { - "name": "Very high speed (Stage 2) - 0.30mm", - "sub_path": "process/Very high speed (Stage 2) - 0.30mm.json" - }, - { - "name": "Very high speed - 0.10mm", - "sub_path": "process/Very high speed - 0.10mm.json" - }, - { - "name": "Very high speed - 0.15mm", - "sub_path": "process/Very high speed - 0.15mm.json" - }, - { - "name": "Very high speed - 0.20mm", - "sub_path": "process/Very high speed - 0.20mm.json" - }, - { - "name": "Very high speed - 0.25mm", - "sub_path": "process/Very high speed - 0.25mm.json" - }, - { - "name": "Very high speed - 0.30mm", - "sub_path": "process/Very high speed - 0.30mm.json" - } + {"name": "fdm_process_volumic_common","sub_path": "process/fdm_process_volumic_common.json"}, + + {"name": "Compatible speed - 0.10mm","sub_path": "process/Compatible speed - 0.10mm.json"}, + {"name": "Compatible speed - 0.15mm","sub_path": "process/Compatible speed - 0.15mm.json"}, + {"name": "Compatible speed - 0.20mm","sub_path": "process/Compatible speed - 0.20mm.json"}, + {"name": "Compatible speed - 0.25mm","sub_path": "process/Compatible speed - 0.25mm.json"}, + {"name": "Compatible speed - 0.30mm","sub_path": "process/Compatible speed - 0.30mm.json"}, + + {"name": "High speed - 0.10mm","sub_path": "process/High speed - 0.10mm.json"}, + {"name": "High speed - 0.15mm","sub_path": "process/High speed - 0.15mm.json"}, + {"name": "High speed - 0.20mm","sub_path": "process/High speed - 0.20mm.json"}, + {"name": "High speed - 0.25mm","sub_path": "process/High speed - 0.25mm.json"}, + {"name": "High speed - 0.30mm","sub_path": "process/High speed - 0.30mm.json"}, + {"name": "Normal speed - 0.10mm","sub_path": "process/Normal speed - 0.10mm.json"}, + {"name": "Normal speed - 0.15mm","sub_path": "process/Normal speed - 0.15mm.json"}, + {"name": "Normal speed - 0.20mm","sub_path": "process/Normal speed - 0.20mm.json"}, + {"name": "Normal speed - 0.25mm","sub_path": "process/Normal speed - 0.25mm.json"}, + {"name": "Normal speed - 0.30mm","sub_path": "process/Normal speed - 0.30mm.json"}, + {"name": "Very high speed - 0.10mm","sub_path": "process/Very high speed - 0.10mm.json"}, + {"name": "Very high speed - 0.15mm","sub_path": "process/Very high speed - 0.15mm.json"}, + {"name": "Very high speed - 0.20mm","sub_path": "process/Very high speed - 0.20mm.json"}, + {"name": "Very high speed - 0.25mm","sub_path": "process/Very high speed - 0.25mm.json"}, + {"name": "Very high speed - 0.30mm","sub_path": "process/Very high speed - 0.30mm.json"}, + + {"name": "High speed (Stage 2) - 0.10mm","sub_path": "process/High speed (Stage 2) - 0.10mm.json"}, + {"name": "High speed (Stage 2) - 0.15mm","sub_path": "process/High speed (Stage 2) - 0.15mm.json"}, + {"name": "High speed (Stage 2) - 0.20mm","sub_path": "process/High speed (Stage 2) - 0.20mm.json"}, + {"name": "High speed (Stage 2) - 0.25mm","sub_path": "process/High speed (Stage 2) - 0.25mm.json"}, + {"name": "High speed (Stage 2) - 0.30mm","sub_path": "process/High speed (Stage 2) - 0.30mm.json"}, + {"name": "Normal speed (Stage 2) - 0.10mm","sub_path": "process/Normal speed (Stage 2) - 0.10mm.json"}, + {"name": "Normal speed (Stage 2) - 0.15mm","sub_path": "process/Normal speed (Stage 2) - 0.15mm.json"}, + {"name": "Normal speed (Stage 2) - 0.20mm","sub_path": "process/Normal speed (Stage 2) - 0.20mm.json"}, + {"name": "Normal speed (Stage 2) - 0.25mm","sub_path": "process/Normal speed (Stage 2) - 0.25mm.json"}, + {"name": "Normal speed (Stage 2) - 0.30mm","sub_path": "process/Normal speed (Stage 2) - 0.30mm.json"}, + {"name": "Very high speed (Stage 2) - 0.10mm","sub_path": "process/Very high speed (Stage 2) - 0.10mm.json"}, + {"name": "Very high speed (Stage 2) - 0.15mm","sub_path": "process/Very high speed (Stage 2) - 0.15mm.json"}, + {"name": "Very high speed (Stage 2) - 0.20mm","sub_path": "process/Very high speed (Stage 2) - 0.20mm.json"}, + {"name": "Very high speed (Stage 2) - 0.25mm","sub_path": "process/Very high speed (Stage 2) - 0.25mm.json"}, + {"name": "Very high speed (Stage 2) - 0.30mm","sub_path": "process/Very high speed (Stage 2) - 0.30mm.json"}, + + {"name": "Normal performance - 0.10mm","sub_path": "process/Normal performance - 0.10mm.json"}, + {"name": "Normal performance - 0.15mm","sub_path": "process/Normal performance - 0.15mm.json"}, + {"name": "Normal performance - 0.20mm","sub_path": "process/Normal performance - 0.20mm.json"}, + {"name": "Normal performance - 0.25mm","sub_path": "process/Normal performance - 0.25mm.json"}, + {"name": "Normal performance - 0.30mm","sub_path": "process/Normal performance - 0.30mm.json"}, + {"name": "High performance - 0.10mm","sub_path": "process/High performance - 0.10mm.json"}, + {"name": "High performance - 0.15mm","sub_path": "process/High performance - 0.15mm.json"}, + {"name": "High performance - 0.20mm","sub_path": "process/High performance - 0.20mm.json"}, + {"name": "High performance - 0.25mm","sub_path": "process/High performance - 0.25mm.json"}, + {"name": "High performance - 0.30mm","sub_path": "process/High performance - 0.30mm.json"}, + {"name": "Full performance - 0.10mm","sub_path": "process/Full performance - 0.10mm.json"}, + {"name": "Full performance - 0.15mm","sub_path": "process/Full performance - 0.15mm.json"}, + {"name": "Full performance - 0.20mm","sub_path": "process/Full performance - 0.20mm.json"}, + {"name": "Full performance - 0.25mm","sub_path": "process/Full performance - 0.25mm.json"}, + {"name": "Full performance - 0.30mm","sub_path": "process/Full performance - 0.30mm.json"}, + + {"name": "Normal performance VS30 - 0.10mm","sub_path": "process/Normal performance VS30 - 0.10mm.json"}, + {"name": "Normal performance VS30 - 0.15mm","sub_path": "process/Normal performance VS30 - 0.15mm.json"}, + {"name": "Normal performance VS30 - 0.20mm","sub_path": "process/Normal performance VS30 - 0.20mm.json"}, + {"name": "Normal performance VS30 - 0.25mm","sub_path": "process/Normal performance VS30 - 0.25mm.json"}, + {"name": "Normal performance VS30 - 0.30mm","sub_path": "process/Normal performance VS30 - 0.30mm.json"}, + {"name": "High performance VS30 - 0.10mm","sub_path": "process/High performance VS30 - 0.10mm.json"}, + {"name": "High performance VS30 - 0.15mm","sub_path": "process/High performance VS30 - 0.15mm.json"}, + {"name": "High performance VS30 - 0.20mm","sub_path": "process/High performance VS30 - 0.20mm.json"}, + {"name": "High performance VS30 - 0.25mm","sub_path": "process/High performance VS30 - 0.25mm.json"}, + {"name": "High performance VS30 - 0.30mm","sub_path": "process/High performance VS30 - 0.30mm.json"}, + {"name": "Full performance VS30 - 0.10mm","sub_path": "process/Full performance VS30 - 0.10mm.json"}, + {"name": "Full performance VS30 - 0.15mm","sub_path": "process/Full performance VS30 - 0.15mm.json"}, + {"name": "Full performance VS30 - 0.20mm","sub_path": "process/Full performance VS30 - 0.20mm.json"}, + {"name": "Full performance VS30 - 0.25mm","sub_path": "process/Full performance VS30 - 0.25mm.json"}, + {"name": "Full performance VS30 - 0.30mm","sub_path": "process/Full performance VS30 - 0.30mm.json"}, + + {"name": "Normal performance DUAL - 0.10mm","sub_path": "process/Normal performance DUAL - 0.10mm.json"}, + {"name": "Normal performance DUAL - 0.15mm","sub_path": "process/Normal performance DUAL - 0.15mm.json"}, + {"name": "Normal performance DUAL - 0.20mm","sub_path": "process/Normal performance DUAL - 0.20mm.json"}, + {"name": "Normal performance DUAL - 0.25mm","sub_path": "process/Normal performance DUAL - 0.25mm.json"}, + {"name": "Normal performance DUAL - 0.30mm","sub_path": "process/Normal performance DUAL - 0.30mm.json"}, + {"name": "High performance DUAL - 0.10mm","sub_path": "process/High performance DUAL - 0.10mm.json"}, + {"name": "High performance DUAL - 0.15mm","sub_path": "process/High performance DUAL - 0.15mm.json"}, + {"name": "High performance DUAL - 0.20mm","sub_path": "process/High performance DUAL - 0.20mm.json"}, + {"name": "High performance DUAL - 0.25mm","sub_path": "process/High performance DUAL - 0.25mm.json"}, + {"name": "High performance DUAL - 0.30mm","sub_path": "process/High performance DUAL - 0.30mm.json"}, + {"name": "Full performance DUAL - 0.10mm","sub_path": "process/Full performance DUAL - 0.10mm.json"}, + {"name": "Full performance DUAL - 0.15mm","sub_path": "process/Full performance DUAL - 0.15mm.json"}, + {"name": "Full performance DUAL - 0.20mm","sub_path": "process/Full performance DUAL - 0.20mm.json"}, + {"name": "Full performance DUAL - 0.25mm","sub_path": "process/Full performance DUAL - 0.25mm.json"}, + {"name": "Full performance DUAL - 0.30mm","sub_path": "process/Full performance DUAL - 0.30mm.json"} + ], "filament_list": [ - { - "name": "fdm_filament_common", - "sub_path": "filament/fdm_filament_common.json" - }, - { - "name": "fdm_filament_abs", - "sub_path": "filament/fdm_filament_abs.json" - }, - { - "name": "fdm_filament_asa", - "sub_path": "filament/fdm_filament_asa.json" - }, - { - "name": "fdm_filament_pa", - "sub_path": "filament/fdm_filament_pa.json" - }, - { - "name": "fdm_filament_pc", - "sub_path": "filament/fdm_filament_pc.json" - }, - { - "name": "fdm_filament_pet", - "sub_path": "filament/fdm_filament_pet.json" - }, - { - "name": "fdm_filament_pla", - "sub_path": "filament/fdm_filament_pla.json" - }, - { - "name": "fdm_filament_pp", - "sub_path": "filament/fdm_filament_pp.json" - }, - { - "name": "fdm_filament_pva", - "sub_path": "filament/fdm_filament_pva.json" - }, - { - "name": "fdm_filament_tpu", - "sub_path": "filament/fdm_filament_tpu.json" - }, - { - "name": "Volumic ABS Ultra", - "sub_path": "filament/Volumic ABS Ultra.json" - }, - { - "name": "Volumic ABS Ultra (Performance)", - "sub_path": "filament/Volumic ABS Ultra Performance.json" - }, - { - "name": "Volumic ASA Ultra", - "sub_path": "filament/Volumic ASA Ultra.json" - }, - { - "name": "Volumic ASA Ultra (Performance)", - "sub_path": "filament/Volumic ASA Ultra Performance.json" - }, - { - "name": "Volumic NYLON Ultra", - "sub_path": "filament/Volumic NYLON Ultra.json" - }, - { - "name": "Volumic NYLON Ultra (Performance)", - "sub_path": "filament/Volumic NYLON Ultra Performance.json" - }, - { - "name": "Volumic PC", - "sub_path": "filament/Volumic PC.json" - }, - { - "name": "Volumic PC (Performance)", - "sub_path": "filament/Volumic PC Performance.json" - }, - { - "name": "Volumic PETG Ultra", - "sub_path": "filament/Volumic PETG Ultra.json" - }, - { - "name": "Volumic PETG Ultra (Performance)", - "sub_path": "filament/Volumic PETG Ultra Performance.json" - }, - { - "name": "Volumic PETG Ultra carbone", - "sub_path": "filament/Volumic PETG Ultra carbone.json" - }, - { - "name": "Volumic PETG Ultra carbone (Performance)", - "sub_path": "filament/Volumic PETG Ultra carbone Performance.json" - }, - { - "name": "Désactivé", - "sub_path": "filament/desactive.json" - }, - { - "name": "Volumic PLA Ultra", - "sub_path": "filament/Volumic PLA Ultra.json" - }, - { - "name": "Volumic PLA Ultra (Performance)", - "sub_path": "filament/Volumic PLA Ultra Performance.json" - }, - { - "name": "Volumic UNIVERSAL Ultra", - "sub_path": "filament/Volumic UNIVERSAL Ultra.json" - }, - { - "name": "Volumic UNIVERSAL Ultra (Performance)", - "sub_path": "filament/Volumic UNIVERSAL Ultra Performance.json" - }, - { - "name": "Volumic PP Ultra", - "sub_path": "filament/Volumic PP Ultra.json" - }, - { - "name": "Volumic PP Ultra (Performance)", - "sub_path": "filament/Volumic PP Ultra Performance.json" - }, - { - "name": "Volumic PVA", - "sub_path": "filament/Volumic PVA.json" - }, - { - "name": "Volumic PVA-BVOH (Performance)", - "sub_path": "filament/Volumic PVA Performance.json" - }, - { - "name": "Volumic FLEX93 Ultra", - "sub_path": "filament/Volumic FLEX93 Ultra.json" - }, - { - "name": "Volumic FLEX93 Ultra (Performance)", - "sub_path": "filament/Volumic FLEX93 Ultra Performance.json" - } + {"name": "fdm_filament_common","sub_path": "filament/fdm_filament_common.json"}, + {"name": "fdm_filament_abs","sub_path": "filament/fdm_filament_abs.json"}, + {"name": "fdm_filament_asa","sub_path": "filament/fdm_filament_asa.json"}, + {"name": "fdm_filament_pa","sub_path": "filament/fdm_filament_pa.json"}, + {"name": "fdm_filament_pc","sub_path": "filament/fdm_filament_pc.json"}, + {"name": "fdm_filament_pet","sub_path": "filament/fdm_filament_pet.json"}, + {"name": "fdm_filament_pla","sub_path": "filament/fdm_filament_pla.json"}, + {"name": "fdm_filament_pva","sub_path": "filament/fdm_filament_pva.json"}, + {"name": "fdm_filament_tpu","sub_path": "filament/fdm_filament_tpu.json"}, + {"name": "fdm_filament_pp","sub_path": "filament/fdm_filament_pp.json"}, + + {"name": "Volumic PLA Ultra","sub_path": "filament/Volumic PLA Ultra.json"}, + {"name": "Volumic UNIVERSAL Ultra","sub_path": "filament/Volumic UNIVERSAL Ultra.json"}, + {"name": "Volumic PETG Ultra","sub_path": "filament/Volumic PETG Ultra.json"}, + {"name": "Volumic PETG Ultra carbone","sub_path": "filament/Volumic PETG Ultra carbone.json"}, + {"name": "Volumic ABS Ultra","sub_path": "filament/Volumic ABS Ultra.json"}, + {"name": "Volumic ASA Ultra","sub_path": "filament/Volumic ASA Ultra.json"}, + {"name": "Volumic PP Ultra","sub_path": "filament/Volumic PP Ultra.json"}, + {"name": "Volumic FLEX93 Ultra","sub_path": "filament/Volumic FLEX93 Ultra.json"}, + {"name": "Volumic NYLON Ultra","sub_path": "filament/Volumic NYLON Ultra.json"}, + {"name": "Volumic PC","sub_path": "filament/Volumic PC.json"}, + {"name": "Volumic PVA","sub_path": "filament/Volumic PVA.json"}, + + {"name": "Volumic PLA Ultra (Performance)","sub_path": "filament/Volumic PLA Ultra Performance.json"}, + {"name": "Volumic UNIVERSAL Ultra (Performance)","sub_path": "filament/Volumic UNIVERSAL Ultra Performance.json"}, + {"name": "Volumic PETG Ultra (Performance)","sub_path": "filament/Volumic PETG Ultra Performance.json"}, + {"name": "Volumic PETG Ultra carbone (Performance)","sub_path": "filament/Volumic PETG Ultra carbone Performance.json"}, + {"name": "Volumic ABS Ultra (Performance)","sub_path": "filament/Volumic ABS Ultra Performance.json"}, + {"name": "Volumic ASA Ultra (Performance)","sub_path": "filament/Volumic ASA Ultra Performance.json"}, + {"name": "Volumic PP Ultra (Performance)","sub_path": "filament/Volumic PP Ultra Performance.json"}, + {"name": "Volumic FLEX93 Ultra (Performance)","sub_path": "filament/Volumic FLEX93 Ultra Performance.json"}, + {"name": "Volumic NYLON Ultra (Performance)","sub_path": "filament/Volumic NYLON Ultra Performance.json"}, + {"name": "Volumic PC (Performance)","sub_path": "filament/Volumic PC Performance.json"}, + {"name": "Volumic PVA-BVOH (Performance)","sub_path": "filament/Volumic PVA Performance.json"}, + {"name": "PA6 CF20 (Performance)","sub_path": "filament/PA6 CF20 (Performance).json"}, + {"name": "PETG ESD (Performance)","sub_path": "filament/PETG ESD (Performance).json"}, + {"name": "PPS Carbone (Performance)","sub_path": "filament/PPS Carbone (Performance).json"}, + {"name": "Volumic PCTG Ultra (Performance)","sub_path": "filament/Volumic PCTG Ultra (Performance).json"}, + + {"name": "Désactivé","sub_path": "filament/desactive.json"} ] -} \ No newline at end of file +} diff --git a/resources/profiles/Volumic/machine/VS30SC2 Performance (0.4 nozzle).json b/resources/profiles/Volumic/machine/VS30SC2 Performance (0.4 nozzle).json index 3b543d24624..d731d20ca89 100644 --- a/resources/profiles/Volumic/machine/VS30SC2 Performance (0.4 nozzle).json +++ b/resources/profiles/Volumic/machine/VS30SC2 Performance (0.4 nozzle).json @@ -1,12 +1,12 @@ { "type": "machine", - "setting_id": "GM002", + "setting_id": "GM001", "name": "VS30SC2 Performance (0.4 nozzle)", "from": "system", "instantiation": "true", "inherits": "fdm_volumic_common", "printer_model": "VS30SC2 Performance", - "default_print_profile": "Normal speed - 0.15mm", + "default_print_profile": "Normal performance VS30 - 0.20mm", "host_type": "octoprint", "print_host": "192.168.0.60", "nozzle_diameter": ["0.4"], From 2ebc0aa6c1f1d7d66ff4fe88a0fcd82611330c0b Mon Sep 17 00:00:00 2001 From: SoftFever Date: Wed, 11 Mar 2026 13:32:29 +0800 Subject: [PATCH 07/13] Fix GIT_COMMIT_HASH not set in Flatpak builds (#12725) The env var check was gated inside the .git directory check, so Flatpak builds (which exclude .git from the sandbox) always fell back to "0000000". Lift the env var check to top level and inject the commit hash into the Flatpak manifest via build-options.env. --- .github/workflows/build_all.yml | 7 ++++++- CMakeLists.txt | 28 +++++++++++++++------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 1ee1cbd0121..c39501680cd 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -170,7 +170,7 @@ jobs: git_commit_hash="${{ github.event.pull_request.head.sha }}" else ver=V$ver_pure - git_commit_hash="" + git_commit_hash="${{ github.sha }}" fi echo "ver=$ver" >> $GITHUB_ENV echo "ver_pure=$ver_pure" >> $GITHUB_ENV @@ -197,6 +197,11 @@ jobs: sed -i '0,/^finish-args:/s//build-options:\n no-debuginfo: true\n strip: true\nfinish-args:/' \ scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml shell: bash + - name: Inject git commit hash into Flatpak manifest + run: | + sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \ + scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml + shell: bash - uses: flatpak/flatpak-github-actions/flatpak-builder@master with: bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak diff --git a/CMakeLists.txt b/CMakeLists.txt index 9356c308ee6..8f47f3a944f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,10 +89,9 @@ else () endif () find_package(Git) -if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git") - if(DEFINED ENV{git_commit_hash} AND NOT "$ENV{git_commit_hash}" STREQUAL "") - message(STATUS "Specified git commit hash: $ENV{git_commit_hash}") - +if(DEFINED ENV{git_commit_hash} AND NOT "$ENV{git_commit_hash}" STREQUAL "") + message(STATUS "Specified git commit hash: $ENV{git_commit_hash}") + if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git") # Convert the given hash to short hash execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --short "$ENV{git_commit_hash}" @@ -100,17 +99,20 @@ if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git") OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) - add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"") else() - # Check current Git commit hash - execute_process( - COMMAND ${GIT_EXECUTABLE} log -1 --format=%h - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} - OUTPUT_VARIABLE GIT_COMMIT_HASH - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"") + # No .git directory (e.g., Flatpak sandbox) — truncate directly + string(SUBSTRING "$ENV{git_commit_hash}" 0 7 GIT_COMMIT_HASH) endif() + add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"") +elseif(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git") + # Check current Git commit hash + execute_process( + COMMAND ${GIT_EXECUTABLE} log -1 --format=%h + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE GIT_COMMIT_HASH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"") endif() if(DEFINED ENV{SLIC3R_STATIC}) From 322b44d84a1928fc7f6545a1219264601d3b7712 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Wed, 11 Mar 2026 14:59:29 +0800 Subject: [PATCH 08/13] Feature/flatpak clang llvm21 (#12727) * Fix GIT_COMMIT_HASH not set in Flatpak builds The env var check was gated inside the .git directory check, so Flatpak builds (which exclude .git from the sandbox) always fell back to "0000000". Lift the env var check to top level and inject the commit hash into the Flatpak manifest via build-options.env. * Switch Flatpak build to Clang/LLD via LLVM 21 SDK extension - Add org.freedesktop.Sdk.Extension.llvm21 - Bump runtime to GNOME 49 (SDK 25.08) for llvm21 availability * fix build errors and improving build speed for flatpak * fxi more build errors * Update error messages for GNOME Platform and SDK versions --- .github/workflows/build_all.yml | 9 ++++-- CMakeLists.txt | 12 ++++---- build_flatpak.sh | 18 ++++++------ deps/CMakeLists.txt | 3 ++ deps/TBB/TBB.cmake | 2 +- .../io.github.orcaslicer.OrcaSlicer.yml | 29 +++++++++++++++++-- src/slic3r/CMakeLists.txt | 3 +- src/slic3r/GUI/MediaPlayCtrl.h | 8 ++--- 8 files changed, 57 insertions(+), 27 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index c39501680cd..371806277ec 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -134,7 +134,7 @@ jobs: flatpak: name: "Flatpak" container: - image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48 + image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-49 options: --privileged volumes: - /usr/local/lib/android:/usr/local/lib/android @@ -194,7 +194,12 @@ jobs: restore-keys: flatpak-builder-${{ matrix.variant.arch }}- - name: Disable debug info for faster CI builds run: | - sed -i '0,/^finish-args:/s//build-options:\n no-debuginfo: true\n strip: true\nfinish-args:/' \ + sed -i '/^build-options:/a\ no-debuginfo: true\n strip: true' \ + scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml + shell: bash + - name: Inject git commit hash into Flatpak manifest + run: | + sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \ scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml shell: bash - name: Inject git commit hash into Flatpak manifest diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f47f3a944f..5c5be1d49ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -173,10 +173,7 @@ option(BUILD_TESTS "Build unit tests" OFF) option(ORCA_TOOLS "Build Orca tools" OFF) if (FLATPAK) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++20") - set(SLIC3R_PCH OFF CACHE BOOL "" FORCE) set(SLIC3R_FHS ON CACHE BOOL "" FORCE) - set(BUILD_TESTS OFF CACHE BOOL "" FORCE) set(SLIC3R_DESKTOP_INTEGRATION OFF CACHE BOOL "" FORCE) endif () @@ -457,9 +454,12 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP add_compile_options(-Wno-unknown-pragmas) endif() - # Bit of a hack for flatpak building: compress the debug info with zstd to save space in CI - if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 13.0) - add_compile_options(-gz=zstd) + # Compress the debug info with zstd to save space in Flatpak CI builds + if(FLATPAK) + if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 13.0) OR + ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15.0)) + add_compile_options(-gz=zstd) + endif() endif() if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 14) diff --git a/build_flatpak.sh b/build_flatpak.sh index f7d0b51ba2e..225cf25e66a 100755 --- a/build_flatpak.sh +++ b/build_flatpak.sh @@ -198,22 +198,22 @@ echo -e "${GREEN}All required dependencies found${NC}" # Install runtime and SDK if requested if [[ "$INSTALL_RUNTIME" == true ]]; then echo -e "${YELLOW}Installing GNOME runtime and SDK...${NC}" - flatpak install --user -y flathub org.gnome.Platform//48 - flatpak install --user -y flathub org.gnome.Sdk//48 + flatpak install --user -y flathub org.gnome.Platform//49 + flatpak install --user -y flathub org.gnome.Sdk//49 fi # Check if required runtime is available -if ! flatpak info --user org.gnome.Platform//48 &> /dev/null; then - echo -e "${RED}Error: GNOME Platform 48 runtime is not installed.${NC}" +if ! flatpak info --user org.gnome.Platform//49 &> /dev/null; then + echo -e "${RED}Error: GNOME Platform 49 runtime is not installed.${NC}" echo "Run with -i flag to install it automatically, or install manually:" - echo "flatpak install --user flathub org.gnome.Platform//48" + echo "flatpak install --user flathub org.gnome.Platform//49" exit 1 fi -if ! flatpak info --user org.gnome.Sdk//48 &> /dev/null; then - echo -e "${RED}Error: GNOME SDK 48 is not installed.${NC}" +if ! flatpak info --user org.gnome.Sdk//49 &> /dev/null; then + echo -e "${RED}Error: GNOME SDK 49 is not installed.${NC}" echo "Run with -i flag to install it automatically, or install manually:" - echo "flatpak install --user flathub org.gnome.Sdk//48" + echo "flatpak install --user flathub org.gnome.Sdk//49" exit 1 fi @@ -318,7 +318,7 @@ fi MANIFEST="scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml" if [[ "$NO_DEBUGINFO" == true ]]; then MANIFEST="scripts/flatpak/io.github.orcaslicer.OrcaSlicer.no-debug.yml" - sed '0,/^finish-args:/s//build-options:\n no-debuginfo: true\n strip: true\nfinish-args:/' \ + sed '/^build-options:/a\ no-debuginfo: true\n strip: true' \ scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml > "$MANIFEST" echo -e "${YELLOW}Debug info disabled (using temp manifest)${NC}" fi diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 492696a58ac..1826c029d0b 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -189,6 +189,9 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE) -DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER} -DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE} + -DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS} + -DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS} + -DCMAKE_MODULE_LINKER_FLAGS:STRING=${CMAKE_MODULE_LINKER_FLAGS} -DBUILD_SHARED_LIBS:BOOL=OFF ${_cmake_osx_arch} "${_configs_line}" diff --git a/deps/TBB/TBB.cmake b/deps/TBB/TBB.cmake index 13d40c05738..9b1452d33ea 100644 --- a/deps/TBB/TBB.cmake +++ b/deps/TBB/TBB.cmake @@ -1,4 +1,4 @@ -if (FLATPAK) +if (FLATPAK AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/GNU.cmake ./cmake/compilers/GNU.cmake) else() set(_patch_command "") diff --git a/scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml b/scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml index 5bb44df25d5..b161f994778 100644 --- a/scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml +++ b/scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml @@ -1,10 +1,19 @@ app-id: io.github.orcaslicer.OrcaSlicer runtime: org.gnome.Platform -runtime-version: "48" +runtime-version: "49" sdk: org.gnome.Sdk +sdk-extensions: + - org.freedesktop.Sdk.Extension.llvm21 command: entrypoint separate-locales: true rename-icon: OrcaSlicer +build-options: + append-path: /usr/lib/sdk/llvm21/bin + prepend-ld-library-path: /usr/lib/sdk/llvm21/lib + env: + CC: clang + CXX: clang++ + LDFLAGS: "-fuse-ld=lld" finish-args: - --share=ipc - --socket=x11 @@ -38,6 +47,8 @@ modules: sha256: e305b9f07f52743ca481da0a4e0c76c35efd60adaf1b0694eb3bb021e2137e39 - name: glu + build-options: + cxxflags: -Wno-register config-opts: - --disable-static sources: @@ -70,6 +81,9 @@ modules: # Config-opts mirror deps/wxWidgets/wxWidgets.cmake with FLATPAK=ON, DEP_WX_GTK3=ON - name: wxWidgets buildsystem: cmake-ninja + build-options: + env: + CMAKE_POLICY_VERSION_MINIMUM: "3.5" config-opts: - -DCMAKE_BUILD_TYPE=Release - -DwxBUILD_PRECOMP=ON @@ -99,6 +113,9 @@ modules: - -DwxUSE_LIBJPEG=sys - -DwxUSE_LIBTIFF=OFF - -DwxUSE_EXPAT=sys + - -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld + - -DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld + - -DCMAKE_MODULE_LINKER_FLAGS=-fuse-ld=lld sources: - type: git url: https://github.com/SoftFever/Orca-deps-wxWidgets @@ -118,7 +135,10 @@ modules: -DDEP_DOWNLOAD_DIR=/run/build/orca_deps/external-packages \ -DCMAKE_PREFIX_PATH=/app \ -DDESTDIR=/app \ - -DCMAKE_INSTALL_PREFIX=/app + -DCMAKE_INSTALL_PREFIX=/app \ + -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" \ + -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" \ + -DCMAKE_MODULE_LINKER_FLAGS="-fuse-ld=lld" - cmake --build $BUILD_DIR --parallel - rm -rf /run/build/orca_deps/external-packages @@ -290,7 +310,10 @@ modules: -DFLATPAK=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=/app \ - -DCMAKE_INSTALL_PREFIX=/app + -DCMAKE_INSTALL_PREFIX=/app \ + -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" \ + -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" \ + -DCMAKE_MODULE_LINKER_FLAGS="-fuse-ld=lld" - cmake --build build_flatpak --target OrcaSlicer -j$FLATPAK_BUILDER_N_JOBS - ./scripts/run_gettext.sh - cmake --build build_flatpak --target install -j$FLATPAK_BUILDER_N_JOBS diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 7ec32159406..4c3bf26737d 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -791,9 +791,8 @@ if (UNIX AND NOT APPLE) # I don't know why this is needed, but for whatever reason slic3r isn't # linking to X11 and webkit2gtk. force it. find_package(X11 REQUIRED) - find_package(PkgConfig REQUIRED) pkg_check_modules(webkit2gtk REQUIRED webkit2gtk-4.1) - target_link_libraries (libslic3r_gui ${X11_LIBRARIES} ${webkit2gtk_LIBRARIES}) + target_link_libraries(libslic3r_gui ${X11_LIBRARIES} ${webkit2gtk_LIBRARIES}) endif() target_include_directories(libslic3r_gui SYSTEM PRIVATE ${GTK${SLIC3R_GTK}_INCLUDE_DIRS} ${LIBSECRET_INCLUDE_DIRS}) target_link_libraries(libslic3r_gui ${GTK${SLIC3R_GTK}_LIBRARIES} fontconfig ${LIBSECRET_LIBRARIES}) diff --git a/src/slic3r/GUI/MediaPlayCtrl.h b/src/slic3r/GUI/MediaPlayCtrl.h index bb4e8e448f6..f5e5dcddfc6 100644 --- a/src/slic3r/GUI/MediaPlayCtrl.h +++ b/src/slic3r/GUI/MediaPlayCtrl.h @@ -67,10 +67,10 @@ private: static bool get_stream_url(std::string *url = nullptr); private: - static const wxMediaState MEDIASTATE_IDLE = (wxMediaState) 3; - static const wxMediaState MEDIASTATE_INITIALIZING = (wxMediaState) 4; - static const wxMediaState MEDIASTATE_LOADING = (wxMediaState) 5; - static const wxMediaState MEDIASTATE_BUFFERING = (wxMediaState) 6; + static inline const wxMediaState MEDIASTATE_IDLE = static_cast(3); + static inline const wxMediaState MEDIASTATE_INITIALIZING = static_cast(4); + static inline const wxMediaState MEDIASTATE_LOADING = static_cast(5); + static inline const wxMediaState MEDIASTATE_BUFFERING = static_cast(6); // token std::shared_ptr m_token = std::make_shared(0); From 909aea3150cf695e34ec73ccfae02ff1e6cffbcf Mon Sep 17 00:00:00 2001 From: HYzd766 <108379794+HYzd766@users.noreply.github.com> Date: Wed, 11 Mar 2026 20:17:41 +0800 Subject: [PATCH 09/13] Update Qidi X-Max 4 0.4 nozzle.json (#12716) Update Qidi X-Max 4 0.4 nozzle.json --- resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json index 75fe5d15d43..3b5ab099cab 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 4 0.4 nozzle.json @@ -35,7 +35,7 @@ "machine_max_acceleration_y": ["30000"], "machine_max_speed_x": ["800"], "machine_max_speed_y": ["800"], - "machine_start_gcode": ";===== PRINT_PHASE_INIT =====\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nSET_PRINT_MAIN_STATUS MAIN_STATUS=print_start\nM220 S100\nM221 S100\nSET_INPUT_SHAPER SHAPER_TYPE_X=mzv\nSET_INPUT_SHAPER SHAPER_TYPE_Y=mzv\nDISABLE_ALL_SENSOR\nM1002 R1\nM107\nCLEAR_PAUSE\nM140 S[bed_temperature_initial_layer_single]\nM141 S[chamber_temperature]\nG29.0\nG28\n\n;===== BOX_PREPAR =====\nBOX_PRINT_START EXTRUDER=[initial_no_support_extruder] HOTENDTEMP={nozzle_temperature_range_high[initial_tool]}\nM400\nEXTRUSION_AND_FLUSH HOTEND=[nozzle_temperature_initial_layer]\n\n;===== CLEAR_NOZZLE =====\nG1 Z20 F480\nMOVE_TO_TRASH\nG1 Y403.5 F2000\n{if chamber_temperature[0] == 0}\nM106 P3 S[during_print_exhaust_fan_speed]\n{else}\nM106 P3 S0\n{endif}\nM1004\nM106 S0\nM109 S[nozzle_temperature_initial_layer]\nG92 E0\nM83\nG1 E5 F80\nG1 E250 F300\nM400\nM106 S255\nG1 E-3 F1000\nM104 S140\nM109.1 S{nozzle_temperature_initial_layer[0]-30}\nM204 S10000\nG1 Y403 F2000\nG1 X163 F8000\nG1 X145 F5000\nG1 X163 F8000\nG1 X145 F5000\nG1 X175 F6000\nG1 X163\nG1 X175\nG1 X163\nG1 X175\nG1 X163\nG1 X180 F10000\nG1 Y395 F6000\nG1 X188\nG1 Z-0.2 F480\nM106 S255\nM109.1 S150\nG91\nG1 X15 F200\nG1 Y2\nG1 X-15\nG1 Y-2\nG1 X15\nG90\nG2 I0.5 J0.5 F480\nG2 I0.5 J0.5\nG2 I0.5 J0.5\nG1 Z10\nG1 Y383 F12000\nG1 X116\nG1 Y403\nG1 X163 F8000\nG1 X145 F5000\nG1 X163 F8000\nG1 X145 F5000\nG1 X175 F6000\nG1 X163\nG1 X175\nG1 X163\nG1 X175\nG1 X163\nG1 X180 F10000\nG1 X195 Y195\nM106 S0\nM190 S[bed_temperature_initial_layer_single]\nM191 S[chamber_temperature]\nM400\nSET_OPERATING_CURRENT STEPPER=x VALUE=1500\nG4 P400\nSET_OPERATING_CURRENT STEPPER=y VALUE=1500\nG4 P400\nG1 Y0 F15000\nG1 X15\nG1 X3 F5000\nG4 P1000\nG1 X4 F1000\nG1 X3 F5000\nG4 P1000\nG1 E-4 F1800\nG1 X15 F3000\n\nM400\nSET_OPERATING_CURRENT STEPPER=x VALUE=1200\nG4 P400\nSET_OPERATING_CURRENT STEPPER=y VALUE=1200\nG4 P2000\nG1 X20 Y20 F15000\nZ_TILT_ADJUST\nG29\nM1002 A1\nG1 X380 Y5 F20000\nM109 S[nozzle_temperature_initial_layer]\nENABLE_ALL_SENSOR\n\n;===== PRINT_START =====\n; LAYER_HEIGHT: 0.2\nT[initial_tool]\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG0 X195 Y1 F20000\nG0 Z10 F480\nSET_KINEMATIC_POSITION Z={10 - ((nozzle_temperature_initial_layer[initial_tool] - 130) / 14 - 5.0) / 100}\nG4 P3000\nprobe samples=1\nG91\nG0 Z0.6 F480\nG90\nG1 X175 Y1 F20000\nG1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2/2.4053*60}\nG1 X215 E20 F{filament_max_volumetric_speed[initial_no_support_extruder]/2/2.4053*60}\nG1 Z1 F480\nSET_PRINT_MAIN_STATUS MAIN_STATUS=printing", + "machine_start_gcode": "INIT_MAPPING_VALUE\n;===== PRINT_PHASE_INIT =====\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nSET_PRINT_MAIN_STATUS MAIN_STATUS=print_start\nM220 S100\nM221 S100\nSET_INPUT_SHAPER SHAPER_TYPE_X=mzv\nSET_INPUT_SHAPER SHAPER_TYPE_Y=mzv\nDISABLE_ALL_SENSOR\nM1002 R1\nM107\nCLEAR_PAUSE\nM140 S[bed_temperature_initial_layer_single]\nM141 S[chamber_temperature]\nG29.0\nG28\n\n;===== BOX_PREPAR =====\nBOX_PRINT_START EXTRUDER=[initial_no_support_extruder] HOTENDTEMP={nozzle_temperature_range_high[initial_tool]}\nM400\nEXTRUSION_AND_FLUSH HOTEND=[nozzle_temperature_initial_layer]\n\n;===== CLEAR_NOZZLE =====\nG1 Z20 F480\nMOVE_TO_TRASH\nG1 Y403.5 F2000\n{if chamber_temperature[0] == 0}\nM106 P3 S[during_print_exhaust_fan_speed]\n{else}\nM106 P3 S0\n{endif}\nM1004\nM106 S0\nM109 S[nozzle_temperature_initial_layer]\nG92 E0\nM83\nG1 E5 F80\nG1 E250 F300\nM400\nM106 S255\nG1 E-3 F1000\nM104 S140\nM109.1 S{nozzle_temperature_initial_layer[0]-30}\nM204 S10000\nG1 Y403 F2000\nG1 X163 F8000\nG1 X145 F5000\nG1 X163 F8000\nG1 X145 F5000\nG1 X175 F6000\nG1 X163\nG1 X175\nG1 X163\nG1 X175\nG1 X163\nG1 X180 F10000\nG1 Y395 F6000\nG1 X188\nG1 Z-0.2 F480\nM106 S255\nM109.1 S150\nG91\nG1 X15 F200\nG1 Y2\nG1 X-15\nG1 Y-2\nG1 X15\nG90\nG2 I0.5 J0.5 F480\nG2 I0.5 J0.5\nG2 I0.5 J0.5\nG1 Z10\nG1 Y383 F12000\nG1 X116\nG1 Y403\nG1 X163 F8000\nG1 X145 F5000\nG1 X163 F8000\nG1 X145 F5000\nG1 X175 F6000\nG1 X163\nG1 X175\nG1 X163\nG1 X175\nG1 X163\nG1 X180 F10000\nG1 X195 Y195\nM106 S0\nM190 S[bed_temperature_initial_layer_single]\nM191 S[chamber_temperature]\nM400\nSET_OPERATING_CURRENT STEPPER=x VALUE=1500\nG4 P400\nSET_OPERATING_CURRENT STEPPER=y VALUE=1500\nG4 P400\nG1 Y0 F15000\nG1 X15\nG1 X3 F5000\nG4 P1000\nG1 X4 F1000\nG1 X3 F5000\nG4 P1000\nG1 E-4 F1800\nG1 X15 F3000\n\nM400\nSET_OPERATING_CURRENT STEPPER=x VALUE=1200\nG4 P400\nSET_OPERATING_CURRENT STEPPER=y VALUE=1200\nG4 P2000\nG1 X20 Y20 F15000\nZ_TILT_ADJUST\nG29\nM1002 A1\nG1 X195 Y195 Z10 F20000\nG92_ Z{10 - ((nozzle_temperature_initial_layer[initial_tool] - 130) / 14 - 5.0) / 100}\nG0 Y1\nM109 S[nozzle_temperature_initial_layer]\nENABLE_ALL_SENSOR\n\n;===== PRINT_START =====\n; LAYER_HEIGHT: 0.2\nT[initial_tool]\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG4 P3000\nprobe samples=1\nG91\nG0 Z0.6 F480\nG90\nG1 X175 Y1 F20000\nG1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2/2.4053*60}\nG1 X215 E20 F{filament_max_volumetric_speed[initial_no_support_extruder]/2/2.4053*60}\nG1 Z1 F480\nSET_PRINT_MAIN_STATUS MAIN_STATUS=printing", "nozzle_diameter": ["0.4"], "nozzle_volume": ["150"], "printable_area": ["0x0","390x0","390x390","0x390"], From 25740788e73528f3fa99062392c26c13e797ecc7 Mon Sep 17 00:00:00 2001 From: Rodrigo Faselli <162915171+RF47@users.noreply.github.com> Date: Wed, 11 Mar 2026 11:00:01 -0300 Subject: [PATCH 10/13] fix flatpak build (#12738) remove duplicated code --- .github/workflows/build_all.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 371806277ec..41fe9d23027 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -202,11 +202,6 @@ jobs: sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \ scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml shell: bash - - name: Inject git commit hash into Flatpak manifest - run: | - sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \ - scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml - shell: bash - uses: flatpak/flatpak-github-actions/flatpak-builder@master with: bundle: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak @@ -229,3 +224,4 @@ jobs: asset_name: OrcaSlicer-Linux-flatpak_nightly_${{ matrix.variant.arch }}.flatpak asset_content_type: application/octet-stream max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted + From e6dfd2d8cbe4d9b33c145e44f984a179390b1bc4 Mon Sep 17 00:00:00 2001 From: TheLegendTubaGuy <95944177+thelegendtubaguy@users.noreply.github.com> Date: Wed, 11 Mar 2026 10:57:40 -0500 Subject: [PATCH 11/13] Update CC2 Profiles from elegoo slicer (#12215) --- resources/profiles/Elegoo.json | 114 +++++++++++++++++- .../Elegoo/Elegoo Centauri Carbon 2_cover.png | Bin 16645 -> 16417 bytes .../filament/BASE/Elegoo ABS @base.json | 23 ++++ .../filament/BASE/Elegoo PAHT @base.json | 23 ++++ .../Elegoo/filament/BASE/Elegoo PC @base.json | 23 ++++ .../filament/BASE/Elegoo PETG @base.json | 83 +++++++++++++ .../filament/BASE/Elegoo TPU @base.json | 26 ++++ .../filament/ECC2/Elegoo ABS @ECC2.json | 29 +++++ .../filament/ECC2/Elegoo PAHT-CF @ECC2.json | 70 +++++++++++ .../Elegoo/filament/ECC2/Elegoo PC @ECC2.json | 55 +++++++++ .../filament/ECC2/Elegoo PC-FR @ECC2.json | 41 +++++++ .../filament/ECC2/Elegoo PETG @ECC2.json | 28 +++++ .../filament/ECC2/Elegoo PETG PRO @ECC2.json | 2 +- .../ECC2/Elegoo PETG Translucent @ECC2.json | 28 +++++ .../filament/ECC2/Elegoo PETG-CF @ECC2.json | 43 +++++++ .../filament/ECC2/Elegoo PETG-GF @ECC2.json | 43 +++++++ .../filament/ECC2/Elegoo PLA @ECC2.json | 31 +++++ .../filament/ECC2/Elegoo PLA Basic @ECC2.json | 34 ++++++ .../ECC2/Elegoo PLA Galaxy @ECC2.json | 37 ++++++ .../ECC2/Elegoo PLA Marble @ECC2.json | 37 ++++++ .../filament/ECC2/Elegoo PLA Matte @ECC2.json | 2 +- .../filament/ECC2/Elegoo PLA Silk @ECC2.json | 2 +- .../ECC2/Elegoo PLA Sparkle @ECC2.json | 37 ++++++ .../filament/ECC2/Elegoo PLA Wood @ECC2.json | 37 ++++++ .../filament/ECC2/Elegoo PLA-CF @ECC2.json | 2 +- .../ECC2/Elegoo RAPID PETG @ECC2.json | 2 +- .../ECC2/Elegoo RAPID TPU 95A @ECC2.json | 28 +++++ .../filament/ECC2/Elegoo TPU 95A @ECC2.json | 2 +- .../ELEGOO/Elegoo ABS @0.2 nozzle.json | 35 ++++++ .../ELEGOO/Elegoo PC @0.2 nozzle.json | 62 ++++++++++ .../ELEGOO/Elegoo PC-FR @0.2 nozzle.json | 47 ++++++++ .../ELEGOO/Elegoo PETG @0.2 nozzle.json | 35 ++++++ .../Elegoo PETG Translucent @0.2 nozzle.json | 35 ++++++ .../ELEGOO/Elegoo PLA Basic @0.2 nozzle.json | 41 +++++++ .../Elegoo/filament/fdm_filament_paht.json | 91 ++++++++++++++ .../Elegoo Centauri Carbon 2 0.4 nozzle.json | 12 +- .../ECC2/Elegoo Centauri Carbon 2.json | 2 +- ...0.08mm Optimal @Elegoo CC2 0.2 nozzle.json | 9 +- ....10mm Standard @Elegoo CC2 0.2 nozzle.json | 5 +- .../0.12mm Draft @Elegoo CC2 0.2 nozzle.json | 7 +- .../0.12mm Fine @Elegoo CC2 0.4 nozzle.json | 7 +- ...mm Extra Draft @Elegoo CC2 0.2 nozzle.json | 7 +- ...6mm Extra Fine @Elegoo CC2 0.8 nozzle.json | 7 +- ...0.16mm Optimal @Elegoo CC2 0.4 nozzle.json | 7 +- .../0.18mm Fine @Elegoo CC2 0.6 nozzle.json | 7 +- ....20mm Standard @Elegoo CC2 0.4 nozzle.json | 8 +- ....20mm Strength @Elegoo CC2 0.4 nozzle.json | 7 +- .../0.24mm Draft @Elegoo CC2 0.4 nozzle.json | 7 +- .../0.24mm Fine @Elegoo CC2 0.8 nozzle.json | 7 +- ...0.24mm Optimal @Elegoo CC2 0.6 nozzle.json | 7 +- ...mm Extra Draft @Elegoo CC2 0.4 nozzle.json | 7 +- ....30mm Standard @Elegoo CC2 0.6 nozzle.json | 7 +- ....30mm Strength @Elegoo CC2 0.6 nozzle.json | 7 +- ...0.32mm Optimal @Elegoo CC2 0.8 nozzle.json | 7 +- .../0.36mm Draft @Elegoo CC2 0.6 nozzle.json | 7 +- ....40mm Standard @Elegoo CC2 0.8 nozzle.json | 7 +- ...mm Extra Draft @Elegoo CC2 0.6 nozzle.json | 7 +- .../0.48mm Draft @Elegoo CC2 0.8 nozzle.json | 7 +- .../process/fdm_process_elegoo_02010.json | 30 +++++ src/slic3r/GUI/CreatePresetsDialog.cpp | 2 +- 60 files changed, 1326 insertions(+), 96 deletions(-) create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo ABS @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PAHT @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PC @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo PETG @base.json create mode 100644 resources/profiles/Elegoo/filament/BASE/Elegoo TPU @base.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo ABS @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PAHT-CF @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PC @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PC-FR @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PETG @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PETG Translucent @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-CF @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-GF @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PLA @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Basic @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Galaxy @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Marble @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Sparkle @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Wood @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ECC2/Elegoo RAPID TPU 95A @ECC2.json create mode 100644 resources/profiles/Elegoo/filament/ELEGOO/Elegoo ABS @0.2 nozzle.json create mode 100644 resources/profiles/Elegoo/filament/ELEGOO/Elegoo PC @0.2 nozzle.json create mode 100644 resources/profiles/Elegoo/filament/ELEGOO/Elegoo PC-FR @0.2 nozzle.json create mode 100644 resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG @0.2 nozzle.json create mode 100644 resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG Translucent @0.2 nozzle.json create mode 100644 resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Basic @0.2 nozzle.json create mode 100644 resources/profiles/Elegoo/filament/fdm_filament_paht.json create mode 100644 resources/profiles/Elegoo/process/fdm_process_elegoo_02010.json diff --git a/resources/profiles/Elegoo.json b/resources/profiles/Elegoo.json index 82333fd336b..499d1351005 100644 --- a/resources/profiles/Elegoo.json +++ b/resources/profiles/Elegoo.json @@ -86,6 +86,10 @@ "name": "fdm_process_elegoo_common", "sub_path": "process/fdm_process_elegoo_common.json" }, + { + "name": "fdm_process_elegoo_02010", + "sub_path": "process/fdm_process_elegoo_02010.json" + }, { "name": "fdm_process_ecc", "sub_path": "process/ECC/fdm_process_ecc.json" @@ -1104,6 +1108,10 @@ "name": "fdm_filament_pla", "sub_path": "filament/fdm_filament_pla.json" }, + { + "name": "fdm_filament_paht", + "sub_path": "filament/fdm_filament_paht.json" + }, { "name": "Elegoo ASA @base", "sub_path": "filament/BASE/Elegoo ASA @base.json" @@ -1136,6 +1144,26 @@ "name": "Elegoo RAPID PLA+ @base", "sub_path": "filament/BASE/Elegoo RAPID PLA+ @base.json" }, + { + "name": "Elegoo TPU @base", + "sub_path": "filament/BASE/Elegoo TPU @base.json" + }, + { + "name": "Elegoo PETG @base", + "sub_path": "filament/BASE/Elegoo PETG @base.json" + }, + { + "name": "Elegoo ABS @base", + "sub_path": "filament/BASE/Elegoo ABS @base.json" + }, + { + "name": "Elegoo PAHT @base", + "sub_path": "filament/BASE/Elegoo PAHT @base.json" + }, + { + "name": "Elegoo PC @base", + "sub_path": "filament/BASE/Elegoo PC @base.json" + }, { "name": "Elegoo TPU 95A @base", "sub_path": "filament/BASE/Elegoo TPU 95A @base.json" @@ -1172,6 +1200,10 @@ "name": "Elegoo ASA @0.2 nozzle", "sub_path": "filament/ELEGOO/Elegoo ASA @0.2 nozzle.json" }, + { + "name": "Elegoo PETG @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PETG @0.2 nozzle.json" + }, { "name": "Elegoo ASA @EC", "sub_path": "filament/EC/Elegoo ASA @EC.json" @@ -1212,6 +1244,26 @@ "name": "Elegoo RAPID PETG @0.2 nozzle", "sub_path": "filament/ELEGOO/Elegoo RAPID PETG @0.2 nozzle.json" }, + { + "name": "Elegoo ABS @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo ABS @0.2 nozzle.json" + }, + { + "name": "Elegoo PC @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PC @0.2 nozzle.json" + }, + { + "name": "Elegoo PC-FR @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PC-FR @0.2 nozzle.json" + }, + { + "name": "Elegoo PLA Basic @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PLA Basic @0.2 nozzle.json" + }, + { + "name": "Elegoo PETG Translucent @0.2 nozzle", + "sub_path": "filament/ELEGOO/Elegoo PETG Translucent @0.2 nozzle.json" + }, { "name": "Elegoo RAPID PETG @EC", "sub_path": "filament/EC/Elegoo RAPID PETG @EC.json" @@ -1368,6 +1420,66 @@ "name": "Elegoo TPU 95A @ECC2", "sub_path": "filament/ECC2/Elegoo TPU 95A @ECC2.json" }, + { + "name": "Elegoo PLA @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA @ECC2.json" + }, + { + "name": "Elegoo PETG @ECC2", + "sub_path": "filament/ECC2/Elegoo PETG @ECC2.json" + }, + { + "name": "Elegoo ABS @ECC2", + "sub_path": "filament/ECC2/Elegoo ABS @ECC2.json" + }, + { + "name": "Elegoo PLA Galaxy @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Galaxy @ECC2.json" + }, + { + "name": "Elegoo PLA Basic @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Basic @ECC2.json" + }, + { + "name": "Elegoo PLA Marble @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Marble @ECC2.json" + }, + { + "name": "Elegoo PLA Sparkle @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Sparkle @ECC2.json" + }, + { + "name": "Elegoo PLA Wood @ECC2", + "sub_path": "filament/ECC2/Elegoo PLA Wood @ECC2.json" + }, + { + "name": "Elegoo PAHT-CF @ECC2", + "sub_path": "filament/ECC2/Elegoo PAHT-CF @ECC2.json" + }, + { + "name": "Elegoo PC @ECC2", + "sub_path": "filament/ECC2/Elegoo PC @ECC2.json" + }, + { + "name": "Elegoo PC-FR @ECC2", + "sub_path": "filament/ECC2/Elegoo PC-FR @ECC2.json" + }, + { + "name": "Elegoo PETG-CF @ECC2", + "sub_path": "filament/ECC2/Elegoo PETG-CF @ECC2.json" + }, + { + "name": "Elegoo PETG-GF @ECC2", + "sub_path": "filament/ECC2/Elegoo PETG-GF @ECC2.json" + }, + { + "name": "Elegoo PETG Translucent @ECC2", + "sub_path": "filament/ECC2/Elegoo PETG Translucent @ECC2.json" + }, + { + "name": "Elegoo RAPID TPU 95A @ECC2", + "sub_path": "filament/ECC2/Elegoo RAPID TPU 95A @ECC2.json" + }, { "name": "Elegoo ASA @Elegoo Giga", "sub_path": "filament/EOSGIGA/Elegoo ASA @Elegoo Giga.json" @@ -1575,4 +1687,4 @@ "sub_path": "machine/ECC2/Elegoo Centauri Carbon 2 0.8 nozzle.json" } ] -} \ No newline at end of file +} diff --git a/resources/profiles/Elegoo/Elegoo Centauri Carbon 2_cover.png b/resources/profiles/Elegoo/Elegoo Centauri Carbon 2_cover.png index b2ada1959e04921348f166d6a552d7f1d4e27af3..14b59b4dd71020303741fbbaeb8537a39d40fa22 100644 GIT binary patch literal 16417 zcmb`ucUV)+);=6M3ep5A0)`L~=|(_=&}*bg2^bNiMS2rLZvxVk-V_9sPG|xGN>@ar zH|YWbBE9$i8=iB{bKd%0?;jsmqDf}<+B0j`thMI8*ABa{p?v8g%S8wTatWoPpbh?y zJ%5vvf`5y>;vyjs@(WhF4_qFotBIRA*a?`JJD6ex-0d7eI|PE1c6T%}v%$JRO|ceM z_L8u*ng$ru%3KnrFQP7_?kJD7v{LbWiq-Md&^7b4F}rIHla{)ObQcE#?658-P2jgU924Jq31G9OdW78k}w!(hyGKzx!K>c9dS=>|B`HOCWy7g+F|WooCR+Q+!Fkc z{T(eGTpXM&9UT9@%-;E*Is@7h{JR-kDDSlCazVr3oc3fB&h& z6DwQL=B%wO2Sq8$i{82`D$0)#xb;`xbM=X%&Lyj1?JZm^C1JOOMgL2SzLoiZYdD{o zE$-Yl(DqhfaEO0j^WfiYlCV1n!T)e0%>UQ~R!dy|Db~aVs{r0WmJmXO{}zH@=&tT9 z5pj`Q;N+^sO2TB%_Z;;8zf22?KnMsyx%I8=%^lpFZ~lFa zI@mepCN3s_-$RsN2;4(V7ja7*AuKK=#xErLAMXJ)YW2k9|JYkyU0lJz40mqzD20D* zS91q5D|7LGFVt;eQPI05rl$N)gs^w`Z;1+<@rw!FzRQ2-u86s*sIc%IF=4TP4HpPR z**m+K*qdR`1%gQnSOHm^`_|FJguj;m6()zQb>7dg}@QU13up#1j#d+qduj zttB8r^Qjf^J0`aOact+J%z-EoArXX$un?BtOavjsf9JNa82?>SgfKtiuE}jv;k)MM z*jxV?&ACB}-?wtd+CEUQ0yA_5i~esj`FAVke{22AKy`p81Z#WiFaH8Xf>D6+saQF? zI6U<@cRBxbIyzXVe|-Cg53;rTtLfa|ocA{|JGVGVnAu;}V*Z!1{&Gg=jaL7IzW&dX z{9B5%!xI-blc!i&3$T{|C*%72Qa4L17~B7Dy@LOTnK_%dV*ks$%q&gpEwCVH{L=^h zOBw&ueE-k(@%Nzr|DG?{LwEnVTmR?z{^dOXUP;HN4(2$se^2=zt^ajUPo7u-FXQo# zO%6ps5g^#z`Pb_I56$QJ$-M+^Pqv8 zFO*rLviBZ9IiB>`WZt>zeEkBO~GFO>-FAdMX70j4lbQfZJi?5qBy*0Dr zk106(MH;30apOIZhm;VOxChLRFd@hFzRlKd=%htmj8@L$h>u>E?hNY`%#P9c; z^RsR~t3VIOb-6+({7wmB{8OFP34v%;C-`D7luRb4D zZgO9FR;|9z!}6`=nTa=BzzRXv?b+jHsh723MtnA1l9rf|{ugCe#)Hc*&DZL4KK!j* z7G^NxPGAGk>yJv zO*($3bAG4apHnbO3BOhoxR%`|=)3Xa5`@igNP?G_w_wN92WMwjKVd~>!WefsMz)-!N>I;$fC0v*#<`$&)pG=^utbYh2Oy1-Viy5 zA*3KE+Lg7Xh&wz>h;qt<-Fq@*shTOO#nF%vvfjp9^6PMCse$qrLuJR~lYz$~VAxH< zorzcsZ^c8qY`p@UO~oia#|n(6&SGpAkHr)Oo48zRvMj)lYN2t8TJ+rEgs9lJcpk2} z3r5}>inZH)sz7vd4o5hQJ3K%v@*SRsC4w{tz7V^1R1&3>Nm0C1|3|EA%%OJUTa9#x zfaI0K=R|#TQhT2yY;0_nPJFKwFTuzOzdBLMk<%+a%drxoB&v9LX~&Z-LW!vJ$>kN- ztC2I0%K4V0?d|PP%W|x4+)CgEI<5}S5Qd`=*HHm*lu9gd5DkqS4KV?j?b^{gQjo-& zhL}76V!{Lqhqp7*3?|D`5>yRp0h>-Tn7tBV6^ zfQCyv)Ao|*JW8lSnke>G$Gv722MX3sev)zq`r6AJMojKUB;xUQX!N;VjXx>>G-@fV z$KSpGf-U&lcFc_}0$gi$H8m!!pM!W(GPZFRwwtB6ou<%U+_LF|W0NCJQQ_L?`PoU8ioT$Ew1scE<=oRzh*OAnbGmTDfJ_*N& zzk{VGFzG(*aT#5}G=9Ij%_GBOpuyTA7Y5h1!{cG$8M=!JMK(FBf0pI?g?lZ9@0Sdj zFp=t_6=UI<+~K~9VqG>(Q|n*M5eKbcV45XHb>iQA-aZQ3-tO1rO-V_i_W5%={lLPa z>&?O3j^_!-BEzR*ipjkxF)FY*SzA#37~}ggy}3~&1PM&^tUrYKIdAPx!c5cMPZt=q zFc+HU1Uc*4v}wD4Na&(*U8G1cvBuR^`-=i&l~;kd*GiciY6SxUeC?q#AJ0moe3sQG z_Z~|ik+nihl)lqqUCmV!p6vx4+>?4z@A?F=2HEt8yY5;c06ySbaEY@ zNCh`dy&>Sy=H!!k@T*6|SR&}m@K0+uOYKawkRtBN$rHP*hQoq}FWIU|7q9n~t=y~* zxhHT)Q-DwQECY@p$4V{{3rCeLRj;PRwf;tTZ~4|%Rqc5;Og21S8LgmUu#|=Q9QLPA z9QP&FZ<9SfS=2WfbG0r2eyY9f&!dsTZ@pBeJ3d!7A_RG5+f-g<-oNs=MT?z(D=)r< z(dVPpcu@3@51}(mkhfMWwqvUzED>|boqwFi?HO}5)0JZ3ZfQQdBL$H&wNfk*0?W(G zwfmzsC5CM?SOOJ19v|0AY{Hb2z#JSiilA?;si^_G9~CQ;h@G!alOm`yq6Qs;Xe^WU zs{12hrQvO27ul5Wy7aWOOnA(`M`Fj7WuPYYg7Zy9Ru7XkQki)^xfq6EF;{^v&g`{B zjxFuH|MV$rXJAQt|d^!FDbg{m>d@{zAyT~u(? zmmAUtsFy8fg+)asVyvbP4%F#q$8)81brBU6B4GHx3?>f;f5tiKR;O!+QaLhc+PTvWGr#)ix`Ew@RgKO1u{%C8A{z?_9(l#}sC{W^>GA2Zg|wG!;%xd? zr{jkDlNATQz{GM0Tv1DgJce6mW`hZsrTgi@9I!zn_bHO))z#^Px%8F_n<1KD4q%nO zv--Xyg7y0_shxbyDX+;RcB#YOC{rIFwxgq?9-L2cB#-fT7N$!1NFCF4Tsi*D9+O8) zQXe{QENrB=EEGs2;|b2Nj#Ekt)7JO<+!x-)pI2 z`%ISR?aQQ*4>If%h>8&L8dThWcLmo+;+&DnbJS%Pg( zLkxLOGx%M{4}GMppa`Wmv`EciUUSyDLm^Yfr)qjVHpgmy?`U{(Qkk`7-bEZ(i1hwv zYR8pPksnJqmDr#H{gUb9gRT83YQIp=y2$Zy!#sSlt5L$YSy~G6EA+<>m7EXm_bkv| zfxG;>-aVt7L36#^`ZD_Z1_r=X_RbyG_9* z>UsmQTpmiM!h8;xc1>+`m^-}BJ@LE! zbi;^-dENEF_rI?rx@+KdYd+XZDuZ$A?U6G~IaUEo{bxT`a-g~WO3Qt8O+v<)E8?kC z<`^YUCu)3HtJR|-_rS!Z!jF4%zoIbjKx1yxAVb809%sHnd zzmyD8ywuekWL?1$3x77}aWnJ7v%t?F`O8_AmKb)4_L!E9*_+B{pw^|`fAFgx@u0N( z-u=Nk3p+V9+9df&bzkYlu;pSHHKmOB{;QojxO(n8(m(<#DysLTr3BquG%dH-j~dC= zv#el|ux&D;kCB0J)cdNckQ%o&x&9A7-X>w0yUYVDMX?$9#YgF(hnFE=go3P+4`jk; z+y#j2xD7k!ss+e77Qz+U;!T*WjH(+8do4R~^kYuQ4S(*#oJJBTG1c1C{i7}?RvNh; zOW{7(fvcB>6G@tc`mzPDUcKrpV=bBj(%C!qKN}bNbDd5OcjDLh-pAi^9ogNQ{hhCL zQGka*^NrXua5&&Z(Ye$Z4p&BijOEvle4XLp;l|du8ymkvq=HWBB)!+XCYwMG*R$eE zyDt^{+Cye;`rFJc?@49g8O)h4mXG=mN-$CW;nD^kW5ETkS5f*kT&lY3J8t}LVEm|B zrCqLQqKfJIHKPwtPz-~r8QRxXn|nn;j=i&kdn4&3nh=|V{rrXihy$wfrvdAmy{lBD zm%>sxbBmlKpG_sR7WQ^M7EaBFeHMpHr6Ft*>RH<(P!kElLfY8&^Gk(S8()E#S;&F!BQDX`}TXO!+t630=tBZ3#e=m%D%bq&t z;Y@JX`p4_rC7h^OU6IXedLkQ@f#gibA+ygnIj0j&)NiC-;P~isBx+rmO8N+(?Iy`w ztK&6E0^8~QG${ooMkV@sR#+5$Nh=ZK^^5G)>|x1Fm3H9B0Q{}gb{Su0Rb{Y2m3{VN z3{G!;)2O{no7w}5B?0FYC)Oq*%0~^pY!wgruc?6S8?hE%u4xntzv*ln>M!C?kY%Kt zc&{BHx~1|vU~5S6Y(YnYm5M+vy5o_RHE(a^p3k+w&(I2nJn^h&Xwk%k>oINL>^FK;?y$gKw@SL#lT036hTRyY#qeEt&WmKKt%k zddK9i@FIGbHZ@JM4=JYQ741y7wwx+!pT2FiGM9bIVriM+b=6|!-7wXzoBtjh ztVUUzC}c96?O-MRFZLmcmc|F(+kSc;ieHli@p1eiRa5(A4{j#x0WPK2`ym7L{W0V0 z&A0~Z>d;O0_YaGLo0^)u2lPsYuKRZJMp;^vPcWCbD#-BmL!|1y_XrSa)0Tb{sf!xb z#7f?%?1EW69F*eG_P|OaV@7$jqcFJ3hzO3|qZ98i-IAefWJv^nv{A0Jv&(5j60xmN zOvKe$9A%20Xq^h%mKDfT+LiJsI;x67$!HUNHp>r1qso2^Bard@FB;etd%p;GeX$&^ zl$@(T$FK|2bqKI#Hk7-5-K4d7rw&6=Y`j4n$1{6l68jmV3Wc+&6|ZP|;O@8SC~iw9 z1Y!2D;|AL`p-Huq*GuM9vmzocg+(RZZ#(K#&hr=`?O3z3m@9Ly2`0HBgub1saU){x zJyyV`gGeP;V_4GD`%^npw<2BqU&;tkOye(uvLlhuWh^*qNE2ho=Zhla9`4o zp~F-em+O{^e+9e{;4k*hT8x(_AeLFg@pC%i*V7rKRmb!*Uh>rTWV2)X{FpDqxfQ*n zH6my{kU2b=Jo9NyQ)lZKZGdg@QXIrxRkBnj@TLXLs*A9$Qtdg~_ zG#wX;<5DmV;U&@8umpvYEd!rn@n`wJ9~c;@b~Aq;?QIW8C6k&I5NB(gOmALtqLFNk zxIU4UH!bqS%bPfekCeTlEwf%?4=6t!|C#)Kypz6{-Hq`P%f8(XU|lTCPZApl}v zV9<}HDd(5O>?Evsi}o3EZTiqVZcslNIX-siJwwd0qMJJp`TUC2K`v>Yf>w8-3RcV^ zm%$?0q^?m2YcT~xFNm%$4VC2H-aeMZXfpX3!Z|$T&wOb)`Z-A!9z9@2#o+i2=w^pB zw-`{+-IU%d2lxm9PTF^I*ZdK5{@pEs+-voG+Gqy1)t{&;%8f`p(cS%{ z&`>2LORwPihZycq%VotZ9?N>ZC+&!I3;j~l#LcEOqi=sK?m)~XS6(tAZshyt|E_r) z4@XsZNBTIn@yq401#e}({xQBoIn4{@u+uNF~Z;0RRZfQ`ULv_(rdDwdn8tZMW zCVonElWdo#cYXVoQZez}cf@_!S$6bOJ%T3_b?6_DN2+zvAeVYuGW$JA#U<&vWj?4L46^W-T;BBM+DbMG(@oln_Aa;xy;j?N zrcftJTbioD*q3x`z6^p1Ud^?OM_)Vn8U%fb%5VDK{=sR4EI%|cK?>ulb>&xnE~a4M z3SlgTOrNm2rER&aBuhhUvT)HowC)hX+8)Dxy~74M7$|A)uOB0a-RwRStS_+@uQ^T4 zCV~2#EIm#F@ifT#MZirIU14FNF%Bmpc~Tk5k+zy^;M1^}>$M}SepzEvFB@UK;LiGL zaWRU`S;|oOr~#4%!XN4w=6+8XMl091Qm4GqlgTuK@rWYIs_j(Hma7?08_P*EP||pf z_TYB*OAE)tJ}V3nV`qu-M{F+!Iv+ox@6>S({4L1SEBf3d6nHQNtss!0TzIkrl-%yp<`1&5r0pXu@UT#zT zs>+ux#fLGX%frGW=CGl08VAmH$vIg2=&WxdmwHMmHV-s-$_H~SY06hIPrj6PNW#z> zlY)Jg!j5xYsoTb+JYnU7_Sg-r!Cl&f)|`!@g7rqPR~W4Jv(JJBv;)^4a@<7rMY&dt=){_bzc{(qFR#9|BmQQ@M9(9Br*UKG z-~;k>t1;fqq1Q+E1?(X&t>D-MB^x9jU8h4v)ZWnA&+xxm%w%E-E^>^EQbwI zN}_T5I|)XLA6|Zax5scIxU{HWl(hHjRkmRBQcPK5%sRtwpE4F4YXsj6KU+4t9)Ef6 zs~+LRsM_i>IF%oN`=|U(>5|p5*u0mz8R>FiSxbjsGz@6_ZKI3Z-lBbAm>%;HU9??M z8M4PUtWt-w7SmG3y%ZNK)CZyOQw*b0MDOB{J-NM@TO6 zZSR@4uT1ZeQO!d^M=HohD9Aib0Rc} z#_Piu;;Dk1-BhhQ66k)#p+9GgUN~$vC&V+@Tq;`QjaUr(PZXI#)}P^kE!*&!vRjGo zVDHiVndIy3?%}mwhS|$Ao4@gRrCyd@5@_A}7YgmnUhaWjWrjKBTTh~H7v5Kt6Igl| z-j*5S9TvHK(_l#Jvwp=RF3HERlV4=g+{ArO%>ixNF%Rmm;n>{{VD*7enW{1M$*-s_ zw(C?ksvCy$1oRmzVk{Pbf-4@ zoEgAFLX@03JPG+Vi#uf-xvV{Zh){{Mp8_lQ3EBuX^d830w(2B&r0q^8S3{x+qQCcY z!|K<{+Mwpu)$#Rz+CLP2kw4o$|@u*C-pbv$LJvvI*H9?Nnv#tY}47auc=J^tC5)wiyg2-b~SG zFXYiG_>HC~@ulft>wZKWkHE1G7z?%;SnsB<+RRY2hu@z|{h`#b@T3jPt=fiOd6OXn zUz4Gc>)Y$x5Inf4^O(KYE0a6mmV}T|?4QXwuZEl5MjeY|_r8gyo-m?gNfHaG>!{xD zt9^T;v=vcEn2bLd26-(2egVjLp?j;Z{2diFwUfI$dH2>YkBOgwdWnp3Ib#!n&{tj? zMuU>dJ3sM8-EqHQQ2x*hherBPY4=xd>v`n5iaf+G74q;J`1=eA_YU0W--VnXqU-7; z0V-cq#1GI2HLlA)tVO04PHdTB2_$Oceus(QMvl>*QK5pg#v>oF#f%B*Xe!Mwx8Yl0 z`zByfu-+3}Un$9`1B9q7Iwk+*kJzle?ky?YB0X!1Y}Ht^j;17u9Qo?cPq*iMun95E z4H?`E1)>=v0uvdo2?Ruw^+=)FlkRHK0<%cW6oPKoSS|4r>`!|S!aCpj>;6Z0G8_e1 zqs(4%;7NSOEtrC%;TNKio8*IogW6trKEL=rPBI3P(T*#;{fP+cyznZ$_^QxrGLWo? zMTs6P7w&8PyfUuyd^78(R&5MIf&7`>7}Q)`Yh-DsuSnU1X?lH~Cax7ed;7&1UxuCP zG*kVW1zx62)o2t!-Cbs!{93x%$YA8;Sefl3!dj?cBK^5V930?ZAaZ^4TB{=)t1PXq z=J|P)KHEFH!K_FNP!quM6d7q!|K{$mL{Pt1+5DYgctx$;b1TBm)7Z<1xFJU#91`OGJ4SguThQkMfKb0UiqZcmc<4(zT(;WUmcAi< zO{Jv%kcY3mEn-^WHV#@XU2x1ZYfi8zCZkwax;585v%7Nc55ViW!C-r(@_;ZaJNtBY zk`ey*>qL?^#Du<)@9Km%lsQirb-DcvyPHE_!+N$F+gfR@A-fr znq^_3cfI#l9zGoKb*5r0{DuPjHm`*`wHm)^Pa$HF!I4b`ZG;aOs5)Eqh^Gsyhj-Pv zE+Y@;Gnv@g0gJfpS@(Q~s(q7pu|zC#Lp4e|GVbbCN5d-m2HS@yk$6>X1<_dgb2?OP zmbTYfI|B3EvL)UJLCyhvupESh>X%Ld91bAq5m)cLT@csP*DozECyJ2hbi?!sUrL*s zdcNk%2pG3OEGA*UBLiXYO>4Y)SP~xrZ!dG)P0xm*zEX3arB5pRHb^V7wT#&=D>yey zD(Ch;vuFC~vBd=h_Ak85%u|yiM|R7*;TSBs(^5&fRQYTrs0Q?N9!)3-;Psi5+eU}J z=|B1=V?L>)stu{I~zW_waLRhIt#oSg| z1&nF|eoTc%_j4Mx;Yp=5=@kLieC@C&1mIYIX<4s;VfVJf!%($|jE$RZaTfKVx?_aV z3Up!ouN-9bT1sW^qj9SuIWS{$pDPd@NPMk+=BCW+iaWDOMwwaM7XkbLAU4rEcbpdb zvbR@Wx5!r7nIYI`-2C?3oOTw`F5;=#?QJaUJjOhntYuv9c-3P<8x{K7nXGJ$PERUe z2~{sI7HX6F-^G2Y0x;F9oG_63**ZAPbiBU3kPNS^%zL*yT^^iD){YWv zzas1s>b)S4EAaDL01v#1iqTh5q$}2vYgX_h4goN?*@IwfJ{90a z58sjAJnpfvl}Zj_`;Bzmj156MeL$jOX_RQ$y_RqN{NzjqSm~hXPj>Q(@wuYhCDNz8 zQMrPiUG6K#PBbN7+WxebH$9+RwYi)x>MBIpB-1e2vbriDtgc$3+bx6ZJ*1gJ)+It2zEAN z@maHr3Hf$L=I`4O1qeK|1=VLY;{wQT)gjC^EShlq!FuMk6Y?sDNf6Vs*GTYQRvER& zJ|1TacX*N9*fi^u7KOCZ*1!N?Wvw6~O4@UNU73dXizZVrMY_vfp1pV9coN)~9S+|~ z$P7n?w(v2GSywn7?b^}EIUa6XEw8Nbs|^eAzTVy2UEfRdWobA`C}|W{|5)q=zo0)@ zjDJYwkQQpIU?PLitRUzgXGp{XzNT}80<)*3yR}Hht!L1lCn=h`8J#`tZZte83-tAd19dhGR* z$kwu#t>yuM#X0Af9U4wt?T-|&bNOe0g^s(SIbGGT$$;D)HWL#Q`#yVvm%kvg45{4~ z{`N&NyBU)imHdv<>`~WyPw}klv;Pw9&D- zR(jJiO^a!?kByE7ELF=v`OT#NoJdDLeKcg~Sa?s+mN$;8%x>5Q`#Ax7l_6{bfn=PW z@f%vg9dGAKE7pt$n=pO!+OyAR9Da|Tm3$dF^J}zb4Hh|LmO@#K@5BGTMajAI2*ZPu z(vGnxYBMJ4 z?TGE4Z!w#P^=hZsBhGeP%&S$}_#12@rUvHk8J^(_zqZvFaTU#40Sk<4zl)}6NEVbOL<^A`M52KReD3csVKhUTP(V=Rr_ z`|9e8#uKESPg`H?r*jc{%#olIw7119Cih-M*on*t5owVqd(gEd##vnD=lrz)xsz@j z*tGSS=))CJz_oX!Nu~(=;1$mij3W0qqXA%ch^Fsm+`<$+pQZ;#khW;VudioFyZgFQ zLJ57Dy?Mic;YRIW3`4lkn>jHL#3dOGzJdp3(RzqC9;>GN9cNzS;2?Hen*b#VfWTz5 zXX6I@iUb*}>iFY?wskaD2guSBPA&sS3!4guI5j*`plZLDyc037Or$B#AlKBA`#zG|NTW;3)t zdHP!uPy>ul&XQvGu_B7h`SHzx^V^bB$t%bWYCh7@2QjT0@rfs)EV>oPwfW>5W#j?e z;UJw}UvHw$oLuWJ$~8@jhxBLP7KV;kR{%ai@u}~vOV4wHrYEDfzzj$r( zymptr+~qg7m9F)ct|#LKiT6&d@3cvXlFiU+&r8JwTSDohx5$gRwZ}f_-@d_?NBiG9@1~HZo6WFdVn~EN$lTjR{ zlh80sF5_GeLTAJh0z@uAkx%Xtt;WyGQsa+=0a{ejB!2NPvXV^qJ5*0I4=~&IPV;cZf88S}Ed0m{o zffU@4nP;yYX`c$}SZ|1ugAIH?{exyZO1+Uf{8SMt9v*TJrA6;v{Nm)qhd5wZP0y=+ z)L6L4))OPB>#`Q0F#XtCen6*SK(2fw2#X=NC?6=}%Z-bmx7DKmj2r*3HFB|hnd8tr zX&i}?Rc&a`la9%vLkU5T=I8iiw9rPPq%FHec4O<3)PL0v7>b3$(D90BKs>Z*KSy5R z99zD|(uo8V*Og?*vfRT z^0m|@dU2K7y3g9;`~A{Z4=4N+PCCVjy>DoVwC29BKjkoq$#@(ZkVWA44 zJNq4v%?WLV8NN}(Zff807GnjB_=ksf3R)lEcSlTKZt>0WnwJZj@_slt0fGxK&+`+F zt-bv;C}yH$_dDJoK_@DjFl7u_KZ97Ar$)h&fOU`R%Tx^0rsT$3oAGAo!Z+J=1+=Xc zvF12DcLN*+@}T!NqMoVj)7(mY&Cm<7tlvVvkZUny((b_e|hnSxwv7*g1AySZVBa5PMNZckgf@v@@ zxT&20c8Ao83+hSu^#a`uSyts}7s8udjX}@}Rhnv!FWg@it*L{ew|6i_dK67lG+tg_ zR+KC2j*v;}zK_5W`UB?EZH-;PusSF=-M3m-?R%viNUNrz8cuP4A)nDj_()ZTKu-*h z9VaRP3op#;;uX_m3tyF>N(tXoe(b{@#PMZV`Ki7<>(@{eCE}jU2VyNc4pt=<8cw~- zL9#*#YQ8~rr|ezn(jgYoc=Q|jVsS?tU;u$tlfG9Y&I>l>#a6UQn6S1igY4~_M&)hMaMZ{54g}ypd>wK{ zgLcYr;X@qx>#gq!5p6_DF|sK;DWVS&u`iW4=c}a*gEMN>GmmN8KAz#OCwGgtY0TUHF_#iqZY{J*Quv z@4_<$vT*8&3uF&tp|bayUZJy5Pd?qn_K>0g(EPk~+@6!1@Xg)w3+g%>ai2Bc!g=V` zNwuDFhe56A=;ec@H)s_ILgS$^rhxVK{>^z!iHX#GXF&hm(jmREEMy4RFE3=tRxgd) zxEetUI9wJ3065HSxZB^fPV4-v*=#=I>v3kqLP59a9`B=4kkul7DY}w4GNNiKvC=Y zQ67}kK~dVCJ$ZbZlg&$FRKn_kCi6^`R8t@$)=LJ_7#wDaIM%Kql^)Zpxbc=7zYBy~ zH>fOzj&|t8T*=G0(#|rOT`Ma0z3;_YyU>FttHDOOWV)egLUJnAn;?tIDgLUoU(dai~rNN*s;>%U9(760jc1qIoBq0|5x%ma-yCqN0hjy`WkWPZiUr;Lp z%H^1%a+ebH^>UQNF3D(5%mX;PvV5ge+a%-k`wQbFEk#W5ffLK@YaO_vk^%bLi_nG^ zoFOQe%^a}KR<5^97Og^hIRLdDoi$ zxLuJ;!1_RB0TlqD8RQ`12(x4_;WN3D>-Q-A`7~E@0DofQ=uYl7{cF77PPED`qyx`v zPG4R+d*bPz6o(9;*a9g4B(5Do6J{AlpFQy#)@U znIByi_yI)ow%0PNL~{>Gon!T-jPGM{621eV4gdk!SsbvkxK%*lzgIWT{-Hi;i87e-n zTC}m@6>)5tajF)ywe}t=tz*lq>-#cuO)6w#p2g@OGK8B_MkRpS``4qzjk=TFF-y^u z1=T3^egzQQTySq%KOA#^U07Y%e%`8ERI2byxAJWBFkvMQyDE);XBeNJ-6vtUb>AkL z%gFC!hlHlr;nXd0PU(i>LX8oB`@J0};B~Q>9-Jh}(2qY(vXGzkJ`xF30IHNe-5~ku zMBIYgh&VgUWr}zdq(v@g>LPBq?O9-1@eq{u?H|uIL|1<(UYa&IJ2L1|ClYD@c6uu1 zE$zP~{@#|N(ryL-6E_>;&-QZfhf@=ql`vfTv+C+ zIXm;Ji<__+F`ML+qW~X`{IIPt#uMM1$E_xlIRqdc@MnG0!SX|TK39-2GDA$nKQ0KA zo4~?NgG?ZkZX75btE#FylDtO=`o8C9UwD|s?GvqP_LE<4sVDc|;#pXSP-bXQ(qqKZ z{3Pj{HgqGzkzs_T5dT>3kk9$?gk<3b*u6Nom29>k1o)Cv{Lm6e))usQx0Q_edzqr( zb$$XOH3b1AB-midhp*2BpZZxP=U4#%`P`<>F&aeCHC{C!KQ?@%l;jP{#u5@3KwTv? z+UXpGSX<+aM1OdwzI{XlK6hvRSbk}zNXS8l>{et|R-q#t!o9yEp_>ZGdcJ<)e#6oa zsV<-R$B!L<3P_JxAj3My69oskX6**~MA`#VMnAiF&xlEZrvv)NNc%#O}HBR1IuWfy0qfVfG^C~LV5~8c#uZu|>fTQRYwRCZZmUsv~8jZ#zqEWFd zc>FFLB~DD!R#w{3-^q|)YQ3%IhY9XTGxrJIaLH5EsLWp5Uw=AN#5^|5tA7M;HWsrC2wzIo zAd71?x0fff1DGI%)p6sM5y8SsqDQGTa^7;GWQ`m_AItcp-@sc}xWnyLVt*5Y`m7De z#~_+0UpVUNjF>AqM{ z;o(qtt;U77O13W2)A63v&*atyt(Tg5swyi_KNyvyXIySuj%#`*$;MZ`ClG12Umpdk zdA3nzH}b4l!#wT41k3nl+7fs}XZAM_4-d!1B1ItEQ}-`$;4`@Ka8$SnQ?B&Mg67pK z`|&Rz6zQP4sE)z1u@FDwYTuMc#n#>!E>}svR+|P-Rj>z7Nem#h~7=x6pQxB}*grca`DL3DIeq z8WfYb1H#PFO^z(tI_Al}{1+!cGiOd{(x?}@=#%}|w=GT+t4EgYV@7Zgl^Z&k4Gmlk z7LzZWX^%u}egNhO@aI6c2@kTM=o0bBt!v@#ORhD3l)u`+<0>PzrbzbOr80}F@Qe-j z!jVe;o8eEv8rV%nNr_(scP20#I(w19ZJ~=!_#*T&lRFlo0Eo(>$+a_DKg~bwOE^OZ zWvy*#EJl=oJBS9Rels4vFnD6CLaV5?-3K`1D;!xCm_#{pt$gBsVRdIi{RBAbwz>{Q zfK0^91MopTR$&$K8j8Kf5 W9d6s5zj^*-KT1(Up;*p1;Qs+L%VO04 literal 16645 zcmd74by$?q*ER|Y5+Yp!5<@q_5R%diNQZO}Fx1cj64E89fP#Q@gS2!C2+}RmN+aEM zHorRWcdqw~>-+0)O*}KRpPg&1z1F(#O@x|?{3C1%Y!nofM=%8$4e(xl_r!bvUd09; z@PaoiCj~uM6qJWVcTZH5luzU+DCqkLEnPQVj zv#^7^(VD}p5sqSz-Nsf3Ey7X^@{(VfN7+dlZi7(pc7bbpt7utx+gUubgh+_fih2rz z3LM~WX0)CT_KvQ?o??)H)GG|G@4n`S(Eg){o1GX$@~%NzU1c>|X`~CBR)C9#(}IVG zmsao@*HZx~R7i+}mY0W@hnq)``za46FRw68xqr0Y;b8EJ{I z^7`+J^6`NM{vV10k+C#$GyC5bwzLqoLb^DZfdL~N%&g(uPL9?P+W$i%C zz2p0@-@~M()m)HP2z&5@tA@N3ElgHg;OR2~0Zv}7r~l}#va&GD(bdh&(E<*W5rcrq z;X)uRg`Yip3gv+cS#rYpp@N*2f>0h#Gq{-mr=^uSFPz8nsRjQt-hbaOgS2qJ6M?(? z|EUd@NDENM|JyyNg_Y1#sFf8bl;s_xbL5&ucLOg;zf_$9(JmyeN3n=s%r_fV#KF()%U-Lb+5E6R!>`v_eAxXjt z2v@MiUjI@gO}O*FuIv%C{}3KwGmAT=5QA9UNdw#x@~^KE|IK{-AGQ3i`(N3>L8bo- zDfwsXu1G7lS7t77Noz27|63{K{-1T;)y(66-Sz*orTk}~{=2UK4^sPo)AfH%i-nDu zqct2@SZ>JOV7TvW(LWc3`~SOM|M=~{*sXsT2gdO3@;_D>eE5$YhdY9*U4WH#e%kRx#4_}JoG0>nsr_-H0Kvo-W{nukY6|9Huw>8CijxaQ{O_r94E;E5gKM}C7mc<_Md*|P|xWUh9oacX_Y>ZDxNViOj4X&+y zSv0X3UR0EAMjivDh(;YcyvSyu*b_yX+Su46!}WGmREKpO@!NEa60lh9NQqv|uF`X5l>S<3Gd(9&v z5|y4#O&lfrV{p)XC|#^Tiw!dnB|AG?*Vs68&Fc%t!%4vP3?|REH|FlZUEnXxGSVPw>*^7_tyQz@(#Z zD2u&E&Jc`KQ1r9B$hI|$<$gmM9{7-7WV@6ZMm-us^(-(wJ$aV_3Qp;6YU99qp3?Qy6ecSBg)XHpNlr%6csf`W_@TVGbkz|)Ye{U z;8zYpr0k!&8-p} z(y}x%GO{$+_=;ws4!Q6Wms%9FlgHNNVl=tzyv5(l!{elMW@aWLF)@*EZ79S4wmX_K z(YqOUwid{f1M5It^zacAYB=&s9zs@mOtGQt)FwrTi!=(ZJa(b2{X|{ceVpfQCJ&B< z5z%w*2_=5ztr2KxK~a(H_wEEu21z~00X#CRtIHB5*G}}#ckfMV&PpuY?Nk}QT_%da zqI169_9_@0lvXEZi6o>*FcDY)p#Z0`n#9l zegB`m{T`YOtiZ*{6`?h2YwLw(@8iwcs;a7YnwpwpF)L?oKzi(n_WaR5|dvo0xYNmEwh4&_RtDz9s)dUrFVz4kWFLd(ZK#n*!zTp0%8r18I z!C)j~gyEw}x%9=XwI>)KnL>AGUu^2M$C#p|xH+7pZ1mnkDcf59S!4IrnMiOGQNm#;e`==r9^T@=&w!ES82*8z_^Gj?SQpib@MVKfn9U#qpMAqGGN_ z`ILI`#9{*%RQa+wZnYlY+d^SyXKQO#LP$u+b4cveC(DrQ_VCZ2Kfs1b1KrwXLVUj= zgT06kCJNZq(#g7;V`$-nI-(Aqw-WE$wgqOMwq4X{@JD886q>@}j2;d}MUlX?j1CVE zH^2Jj+|&H}Wc&Q;>`drys;b3V=Nz=Ii|kTZ4JF&NMToIx{Nr8R$5LU(Z<_n@lp+iew`{tdZp!n*ZUaoj6cS!hN<&FU=lDz5Sr+on2Q~x9x6&yXgPpvM@ZXwlLrPI(FV`EzN|2hNfqKrN>Bl%t~}fD;G#!Eh!qqld6H>do~_1WYG#JIa4}i8H~)H9 zat!LTOq9{Kx97z1P0vk(#3t-&ySBQP!GY|t7i@<(v7+mTqK0XeNCgRE@U`ChGvu$Y z0rmCIHXr!Bm^$u3`P|y-PuLdlgSq!-jLJ()lu$GL$=FRH+!$)H$ZYvobD(NpS7Jnf zMFyH23>3Jt*5MbJUGm3|+qwPEm4Jp5F{_wbTB4cU93(FZ;o8r3cXi2p!iz_nJo}D) zvYHEX7>Q0Q)XehL3TA=uz=Ue1AL6Xt+#%_bC9R@LL=ig?gDGR zUlHqzGgWRPpQ-jddnDXQ4G{xv@1f!=zPLy|HLFrrOfi+2OAR&ax}8B|z}D6t zv4P^ts#8tm*ixd~DOk(uu%<)VEK99BX^;5?%g}#I*%Z-h78C({mMFw+=H!H*sEFR* z-~Zv$Cz*P~?t=qfQZllq!orb-g{<%U;T)WtOXG!_LT>B$xKu*;@}r}nM>?2&-Z0OX zbTl?gzLVpcZSO{%slJvy>~S8pfi8L(zfhTSH=FgK(#ika_i;g+&wd)D5fb^+u7E>2W`rMbt?p!zKN@Z?*sh5Iibqa>^-LhmhQ97zTb_zVE@f)$wimVGR5TKY zA9w56Tl3kqhmqjmdy6@J!&M`q?=0=pmh^rF)~z$C>F+NkbLopA;iAlK7eSB&eclL# z`sa16w>Ot4`1u&RNg+Vc!LF@5mLf-Z@mVB>hYq2Kn*H zG{P;JTIN4~{4lk$dZ12h=HT!sW~GZTXfw^N;K-LIT8_T<16-Pz@yVrGgyJbdd@Q5u z=L);;_-kN65p)>@eU5J5!aEm32=kU?TbgDmWfCUtfm{{Ef!q%9&H)Pn(&JO#SWbApL$Zk^*P{q%>936+E zC|gggQmlyR0#d!1Cq8;LlegtrcxoInB+Aa{E?1$!Tr>6=ERY<#F)OZGx`{a>HkO;3 zIw@6C^w?ka#GQMb1$LxoZS+V%Y?H;(adUkMb~hlgU#hE#Pf;@j2NZpNQhR5d8&VNC ziahalc8(uTg(0gEDLl$VZ4L3{Xp$waMU;o=GiF9p$GXBOE*q@aI|sop=!v(CkcPDtLi2uSr^(RVBk<(y7o}>mA|u~rUv;TbCQTr>07ZzgY)2WY6PO_GSg#2$rf0z@5Xkdv^rn41g zXdcH?{47~gzEoBx25OdHTlWOmo7vikUX*2+9CwVe%sqV7zd5d#1?tS2Pd!!daXW9^ zI6oGUKzk!9EXV25U%B_ob?BS)9#|a^Hf|mZYiS!Xf9u1>>1+e$5G`W(89%<`3DNyAG}J@S#8?2=QzJ$PrnBeQFGJBH4VZ`sKf04K z;UsM?o(S@N<@G26>{C%>+=RA5YW5ytrAjtZn33O>^PKoapb>8+;;}oFghr%uS+JiE z%h-;HH|@(Y9;~mk$jQm!qe9X5= z+P#)gzqx(_%{hn;%QKlrbZ6pZI>oqO0)kD1HceqF+t38TFfy;q{LpP!+~3`y>wES%=Dspx1N;Cmr;W20XX_VvLf2|gBUJouQJn0{Hyi;YFc z!09ohXdO@d2ic@hPW+@ZY2O%Sa*RM$U6Tvl$@N1{H=6;*amN=q$n}>cubYPRc++CR zcgbIUy56S;U8@x5YtB|aPl61y0vS>s!&F|)R~Y+Pu%Mq4Y8n4aFGnC_zx$$oBMkRl z6Kel$-rDz3ff>wiui0cSd)pp-68?BLhV}jXiR-9B9EJ;Bb=g+%rt%w~GqdQrfPjE$ z#1PZum&+)HZpZ9a)`U=4?bys`%u5q3W>r&fDoTpHKTY`|Cm}yl6Zn&*gBjczi_JcS z>fqGp_*NNfiu7_mV~rX&4MS|o0*!hKTNlPZ@=W>-6V@-jFxDrIzg7)XOzKU7f7^kJ zG5F{hB&B{xVs1|eV6@ZWr;GlvgC8B6;y58vMe;k(C0wE7)*7q1p`ih0KI((o;H_S$ zb??peE6&lNS>J=1R7iuQkMUEQ$XbU+go(fe{|@SGWVLM=`A$M@+79pRa&5wJLm6|! z&U92xtL)}|C0#{`z}p|2Ezp7YiX7rAWp#CAC|_!8lk@_sWRm7k`YXW)(lBp5?atHd z>A3f>*&M$t2Yg26k(TVLSGAX!i}88pduxrQ3~rffwBx-N(v6~?WJF(Ph6zK8XM9iv z_}(5n91067r`pRuF`J-HU*yn3Fj1uDsFr6Y9!BCQi|?V8P}aJ-x&mh^{-R>W!az1Z zr(pf6jwDl77>d5@NEDwED3~{`qQLuEMtt16nd^nFVv%Zf^hEx7IKzO2>9I|`WUsMO z!tX(;0!l&0&*kNKAyRaFuxSFW;&#^8wCA4Elb;f175{wUup490ySZnXv)X>aImVC{ z-n$()kno}GNVN{mDCjRv!D#8KJ$-2HP;O67dY-%yB#GI6c6OGhE#5-M|vFS6GCVt+$w_~FUkC^g73j@nd301B(;|1qQ#b|d_D{#i-Z0;+(Z%i zmG@{47D~VMH~XB@=K!aCRV}cR!P3E2;J+cGrJg!{ID9K=IorY0)zyUt@^g96 z`+n;~MXTY|!tweE!8wN*l5f66f8_R}CBwP~v0Fkl$-F^gFYNp=;<6$gt09ddxJky! z-B@SGlql8HB1Qtk0V89*OUXhfElY!a0Dpz?1Oz#s;xZ-$ulT>mRV$A#l#-{Rd}(U> zG&|bhRl1nbr(?Ve7m<@w)L|w~tjk&+_D;B}t30Xvtoc@#B!rRg_OC2ylXJg`!Kl|p z3y4Pdr8{R)U_CW1(J%$!@`AVcf%h?Rf3?VEz8G>i4%D3pQvLXQPNr1hR%iB`;zhOD zJKT!x1e_8XYuJy;%O&EKBRrKV0s6Y0Juu=O}!5!MVh@d$uIF<9R~y&Zkx{J}=!e zK;h3!Ur76BWpEDGFh?WRHeEslBg<)lwJ^j#PP-V~WMphAbo}cSL5EOd?TJ->pRGmHc(^kf z>-S;yZvBL8q$Gv(Y<+_TCljP{DjlH6-g6!-Mu*LM{gxc}aNlggktFpR&?QJZ%=|q+ zZ_L5P)ysp!)z=rO1)RLJ&UZ*n_Wv=7KE@b#_S_UBi!JVpG~X!->kZC)IKa#VBU1haqJEV zKs`D=?a>^R5oTepuWA^s+#G??%+ypIN4*`;8OmU;bx@)6@098Mz~LHmW5t+NU>pfG zaZ9n|biiCYgst!Mx(A8%^hn$|U;Ta6YFBwMX83yBy|TrgV5v^=1A}>Q3wZ}#wR@quU530$70>JKHj zq?O`7TsTbRC)=yOp6lE91jc2UZP39!SmY-5^`EZ z@c{WT^9u4-Ap`wuCeL4{Z09M@=X?*qflXbdTVnF?Lcu4$?GJepvfn58S%@r`qQ-)tS?*p`;W%1%7m2T zmg+3-TJyzy$@J=zt{%GJd%5tM;BxMWf=YrsqdHri-#0OdDv$9Ykkt`Zz3YC2`xnb4 z?Gl}MQsVeR%m{bLoCO^b)6Uu8n0=87ouGspX|wL{S|T&{_OR*(J%&fSCDnhf7p`9E zH|xb|;Vp3KC;cW;5f1CkiziT9jZrSLZXAC^%Pe)M`30qZB!P*bj%{vQc={G1{q~x( zAwVx8LC$H$J)F8gr(Dmiv=Xn;Kk3juH@%5InAoe3igRZO&!PJ5sR1*(hD;AbjjH9> zFSD}2`90qQc@5%aU=6MbJ<>;u)nhTGiX$AsbGRBvgW4zPN^f)MU^!J4f3A=hG&TZB zmI=DmNJ8CCKGvtU?4Nz(bE%8;hYe$@y%Co`8MzizXBnLhzSaJ?NP^+d40A~l#v>k= zh9&=Gbx{5_>F5>@QSzX=Rjcw%2oVCXT8%zu;upQ|9DGuB3AsHhwTCX25vTc#c;6k> z5{Q*FBxOd0qJmX6eRRy3>yJiz-&_9JcleEEvbhnk)v%APg0T5UsvzBnr)C_wT-!qN z5u@0p*Jl`l(fopxfuKQua;7U$Q&CJ!UUY(3>sBynZdx;XVcST2AN)8&tk3F zV5HHeD=e>(+zjUGq(ER;4EM^VzJz{Q7ugYPZRIE|OpAF@`K!vCZ@R@M_mN(XVX1LX zTibK1y0nr~1NXZ9O{|3^kBMZRxMKAWR$hlNDUO8R6gfYSb?Z~*zF$NzT>;)+Mczc8<>(x|dXawOdV#X}3p;jlMC8?vwFlEioV(mr%-- z{J~K)<7nk`Vk67`^9A1CKz6+{I&Q4Ahneuvw=_Rx+1`YQ17v`G*_tl@Me_z!W{rSg z4yt@-WhC+2c-}H)zdt?M!$YUEwcfJ6eVvZc<{l)BuP_>Tnd(Gm16396V&*n04>NKSZ}c#%1%A`0%}+bvFoi4QzR#vkAtPr-EW3Z%$IQ&^ z43f0EN$5sX&PVI&RKjkU>cllo6wEs&!XY3{4LkNy_pd2lv!3CO>T@%w-;wza(-W~L zDjZ#K9P!|}AGg(_H`rNxKkJZ4iieLc2oL1!0PY45s^*T5E&XvXS=aX=6K^;*wMjr) zL5V&*)MEyzmwLWXT7=Cj@tXbPn;ppMan-W;(QBS*MM=g=eeUXnMc@Bnavq{Ur3$Fa)WXFjA>5ec6MAU@lOFFt!Y0|=QEA}RBLGbSb5FBa zm2u6Hl$4}aKDFO=ACH0SAYDdCost_QtY6K0G5?J%*+i#}`MZB>piLr!r>0Zbstru9 zTy_OqiE}5bE=%xmdUH=6GXS!o*yFr+G^PqbBhjN_=?`gXvL+@ppCFO?x5da$sO!X(K2)|dyul6S);TM^RZ=ZbX^TiiuN;^VAE{vtU<&}^H=&3{TgHIEgv%dTuZ%(bAHs{`R1w z7Cu`sjlCfw{b_xb;as8)LNHSz4qut$vaii3DpJk>u*KczRK?F3<~>&)jc*-$rsg3= zsUq>0PXq4{z?96$&Fy!Mx91uK)lCv%(;RYzEYB;oD_3PVf909Vs=p^cTRcHtsOAbO zQN*{Tz2E&*-NDkDrm6(T>QAmhR{WW2A}S47Yv4+M{rB0OUaH3r)^a)9A`>L9#uU{BOS}4p6QI)NK{0ozlo%zizvS2 zoDxNVnTRp|;~duo=g%Z9Chr2ky&bC zSiZxA?}t^!@4`~Q{}9wO3LojTQL68JO+8yc2-j`P9rjcN=Pv*_{CMgvpGSpDBmS1m z*b_BG3f0W>FfHn;W^X~1V5XKeGO(tG|C7io$9KVVMd=ONyAKxTODEr<*KZCJH_7C5 z5}I@)^KUoM)I2EZ7-EPkrNs@nGZ=e{pSaO{G#*H*azC&QEx8WH2a53)Kz{2Z*%i)0 z5)v6K6M8vb&oJrk3{Q7=_h*E@73(bP-llYdS;|XFUHhnDQpPm9lu&?$=8=tR-j54R zG`Ihdswz!V8rx3!9x{Y>Ik3u7b*tVTm5X%B9+}zw8ap|Tg%v4C_r8r;Gdz~xUG)TGIrl32cIha(Hvnuvv zyY83Giv?9n=%@p)YWR;8$lN5YdNSm6$V4D>M$hhgGJbW~#A)tqU1Id#a8AA0vWyv{QZ z4_p+IpMFl0wSL~;L}0Kn9#bFufvLBNMzFt2@H` zDJ;2!XI>Ff^#rVWan{j21Q}C@*_^h{_yS0(AzUxaVFw z#{RpEE3}OBAJ!>S3$WjPqZkck7GQ#bvOgih6*a3X3adIEHPswtSSqC@lPWJOODK7W zaiEZpROwr#_$Z!C)}zXkl~cIxg^}4UQDw`AAF+N%^rDyBRYK0oGMkOV@51SY0WB;O z5V#m$OXZC9ZHI9j!=K@OnHT)yQoq4JlGatLoB;2C=a{$dPguF`yj{n^90>WYmVN7G z;zWo^C-mws6|kc9LSGW#9s+nH^&L*WX`2A?wU{b1Qr;Pm(rvlXnWYyo(f8GpU+{>V zmEzO$FwgbW`Oe|ZqCc_b$uC*$ub&^)gqLLjAQSpn(ZIC~f9i~j@qFOTqHS+1=SJt~FXV}z~gXvcBjojW9oE4t_EG@;D~sI0%)u48GCmyEDUVKVkyLKi(A z*A((PU??+gX7h=wqCkqa+tpC`IWMCb`)%abx)~9~*A)eZ54PW&_}-qpAJ#MEgQ?n1 z<_i^XapM)zHaxZ0Yc}plZoPsVesw~<18F+(Bygk@-X&(_6j$Lp>~3v!GSm1|WnBMS z<9%GCHy-N|pW`v?B8AD87|FxjL^MrWH>V?_D$`X0*K4PA7fl$y@9o>fMijcmSLuJ} z6#+yeJPQ-qdMyC3GQb;2fkeSN1-C+p(oRQnl{#KFe8-$*g)oazy>H4oxVgERcAr7~ zzR?%7{aUTwqcga0QUMuG?Yzym9D^z=63VJC3gO-)n?)r0E9 z_ai;g>8L%^0Xq=oaH^b{dZCD-1M(d`)#|E7V;&2n{?k!-?IGU5Z&xj?+Xyw2#^@SJ z_2+G%d)EFZ)_^((utI0!8kSvskYWHlg|>{_^Nf|FjWNIwi3nwpuH3G96_F4Ffh|guGLu&7p`VM%qH*q`s^l}f9G4>}5roGxWW@WkGZ7EQd(9Ym=a^Cf zuGKhOfIHVW@aNb~TYG;s6?sQg*e5Q@dE2Feb1Le*QL|9=Ui~h|g&Md02eAGCK$nsy zId!Zo7oCRy9LX`|c$m!y^2Q)Xzn9RvK&3yH(Ef2F9(TK5ak??tW!&&f*dA-~c6}v2 z1LnOuH*#fVMF?=oMabC&@3n>H z<^wSdlk^;qFN>!ukN8hMK$}yN8;)8F!~mBpb*o>-9ME~{7W^oS?d(Qz8v>hC>Mh_4;U<=$aGUx;MGCdx0Q+}_RExeAkrsZHgyrV%|Ut!?V- zNO+%oQsQQ%O(pDrqY&d#35H5@Io+dHJdrZbkeb(LALdQ#?KyKG8h6Ps^YzUL{l<&k zn;XC2rHd$5%4oS|*}fe5O9SYo$c{w$R^Ai#RI@?H7466IjsuDgq)G4yu2wA3$4`19 zl1E9rh|jJ?5OERXLh<=bsxO~J{mM5DS-OxJSM@u1m-=a=q3r(irfy1fRs0*lM!ZI4 zxu)u!EQ|=|RGWMD`mYnpn2QVh(aZP@mLDtC5t+-o^Z+cgE0-~h7cBjgi7v6iEkts$?8WC;MZ zFcU$+W!x0b?X&cdoQ5X(FFPBc6iKS8s$Q8`y{XBjaHH_b5Ii-E;qbyj{8oOQ1t)l} z=bIn^Vk4i+*@bRET8wh>fBdJJak`4jO&Nm~A3qUgr28E5#s&>Dpf?s@V6wlUZrLgg zt--PFRP0O=CGeP6d*XA!R`D)yv+#Tt?*qBz@B{wpQoKBM{Ay%Wp3g=DuKUWLk=CNoIb$<#OnJM=tL_|bi-8Kkc%*pIN5t}}Cqbc*VLp39B zC)divWl?jx=MN$YO#O@pG6aE%_|bOaSD|4eMvZ$t{#TEKGh_e!(FVx(B7o9Aq@;9j zZ$sVY+ODpsRMLGO0&0Yxl1{TR1|6E9dN_Ur!72nt~NCOD6cNPB&*w`&>f zlfA1rg`qU4*$M9fJ7++y!jkS#Cs&+tP>H)44RB}3ALuZ#7u>v}3`IN_bo-roa)L$eVCc`5gmffU~&YC2Q018)RGsq z=#X7P7eqR`VQU)K9Qn4OYI-FB;NdSNi3^_M+y~G$HK5|*Nnys&wBiBx^lYNs4_yk= zJIs5yYN6xjYXPWq=U&gHsfo>JzZtzD7Ut)Rmv=c;!2I1K^WP_Pjtgp-;OGx5+v35w zpOV*k>ie}Uh+aO%)ZLw5#S&*O&m_ib5OK?aYzD?>iR>=%j#uj0i65HDxcms%u;sosTFGrx*3sV(qwu} z1Q^wsr97CNFYPpTUBvJs(z{uYrS9qHZhgyxqs~H{(sAt;+6R&`Apa3XyO+5o?6LDR z1ds!|8PMN+`}S=bZ?OFQ#RR?jDvbli>t@lXve_2Kaq&7iYp<~D@%6{5mD%J)LMfs+ zq!Sf(7LlU<(i@R-fFu`^hX8{_wwxQ_-_zAW%|kp73f(j(F(Z~7a}z4&vaRv{l|;K& z@%q$pd%l^{|4`7MNXbekk~B*8y&~gu?V~Aoz&-ohbf^MCg^7uYJUc))k9b%So>Raf z#VjJgZK?k9K*m@ppvLFz3+8@^vgPG)@To>28lX_8FyVCCTmatBU8Fi;OOldj=Ho*J zY<*~v?J)Ea&3Uh{(1q$>*Yd;Gy#;+(O}LU*rqsYW1Hh%oFWtXSwfX4Nd6;`YiC z-2{!H&fZ>3svf=M!6k2@>$1kb9YEQsdS=EQZPgC1Cvcrd(Slg$RdQavqNq#6EwwbH zNtwt+U0k8L6|$}QnTG*UMkhe021KBW+FHOM`6l$KxvA+b$im zrOw7&nv5gXO@d2d=Ov(NY|M<1QXSvh=t~+rYN!E7dD^Ps6y!mKZyl-H^*pHph>+^%%zYgINe={1q6Me4;_t_J`2c% zVc0W@?VA18^Xmk^wEzP%+Epo=9_O4c<MFi|4F^m{8TH_$B?78vF64lM{)-3ldhwEulq@-ug^iRn>FM#9|C_b)Mo2bK$KoQb z$|s=!RsV~}cjj}(IwN|PS5Po)q2>I+3sw4qH=ID_S_N4Wk;)ONgz8-z0F2{0P!2PdVWsQ5u{^!a2 zmG|lCJ1d4hy=midTW=t^jNN!&@ufvPNLE|>?tF>gjd06x>1_xLHtMfW^?;@goM`Ak zz>1KX_9OM`83kPsj=+_-V;XlFO+PD;lEGeftK1_rRBYMxa7U+Vpv-8Tkdu6-%TK3N;;?BtDM$$}?+bMSH_TiLYg^ zpB_VgKIaMsyz`qC?`Cmf35na6AyP~8fF*ZlV@-hJ)2}yeZmhuuaLc)l1qGilIOYFxQ(*m&$a~9jmT0oMLR*El$ZBSI9W-oq;nyM6LC9fDQ)qj0Z=W zt!DieVAyvjhJfCeZFMUNq6}z65hgweB$h>Z7ZT28_~Hu{QUsf=FEQ0mBe^3X)+-kB z>c4}{Y>1?&7ET?swT%`|pUA5JlFK$TNa809%_K!@7b)8k&O`i+S($Dqn~hl+cQ>jN z8*&9Tf_ey~nph&6XfZ`))kDRGE~CxJ;bTycH(I$YL!^|m^u63VzW6i9$IUD?wRQY3 zQSlEraWa;^Hm77{1uX!l1Qc^eMNnEa3$>nOA|jW;A)s$#l{U~=ar_Ipc_cv5*%B4) z-=yS4NM)i79WIBMxEaY;=%Rh0Zu@*$SQOdb-tO;yI``^UbyM>JEyL>OCL6Hu7Fg1` zFNkG9x_lwe;*9PmR2hH(;2_3ytuF+p(_bF5@M~GIta=VOE#dIo0ZNgwduf|Ja+Z8| z`Y9vR7xW5He98XM1z)X!we@Eqjd~@go`WxCTt2lGgGfnV5lS!HN?-Fz&qK8AUZxin z8Iy+^6Uzo|a1?l&-3`+hTjItVYEuwCEUiW)-93ILb^AO&W6q*OhU;FL=Xt}>b? zamdBQ7W6tmylMP?&Q?Pn3-*TAPo7vqOov&4M6Pr*a$uHOh_Ux&k-uz2A}6g4hGR0x zRNo=jkr$|wL>ZWL&X2{C=B($AYmMc!DU`>|Bl3&bfRNwxxf`)ZX3-ZF6$RrrkJ#7* z<11@xg9m>kWa89UTb=msp{>n`Bh3%U#4pr|`7!UIzfr_gCy`ahqO&CrWkZowCmwL0 z0|I#q_R7{#cd=n8ClhO<-}eUQuAnuq({bAx>x;|F%q{Qjc~_(4i*^4^uld_tjo87I zm)iV;PB}1j*gV1f#CQL(>ob>`Fs~0{C_`apUx%EjLK>X2S+Ij>b&o}n^=WnFmXch- zd1eN)wYR?bXbUEKdg@|B^pu&4JduzE_qhf2SV?2D*ZFBiF+tufS-$OKb?Z3 z2|zSNHNY9d@hx}o_>hOyUkSWsaC!+pbSrB4Lmmv1&eFjFXj6!8Qm%~p@ADR#d#Pj0 zdgddyMMa_D1fVWQH=dv!H^`qJ2%wwLm>}nAgS+fX@uhyzV&0%X;nX`;m~sa}&?|d$ zj95eK63_HgyMiS~)C{^6h;$gHWU(sYJGxD5_6Iwkx!z1NMq55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PC @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PC @ECC2.json new file mode 100644 index 00000000000..d63501734cc --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PC @ECC2.json @@ -0,0 +1,55 @@ +{ + "type": "filament", + "name": "Elegoo PC @ECC2", + "inherits": "Elegoo PC @base", + "from": "system", + "setting_id": "EPCECC2", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "overhang_fan_threshold": [ + "25%" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "35" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PC-FR @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PC-FR @ECC2.json new file mode 100644 index 00000000000..f9f54af7b86 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PC-FR @ECC2.json @@ -0,0 +1,41 @@ +{ + "type": "filament", + "name": "Elegoo PC-FR @ECC2", + "inherits": "Elegoo PC @base", + "from": "system", + "setting_id": "EPCFRECC2", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature_range_high": [ + "290" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "slow_down_layer_time": [ + "10" + ], + "fan_max_speed": [ + "40" + ], + "filament_density": [ + "1.1" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} + \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG @ECC2.json new file mode 100644 index 00000000000..6ea7969c819 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG @ECC2.json @@ -0,0 +1,28 @@ +{ + "type": "filament", + "name": "Elegoo PETG @ECC2", + "inherits": "Elegoo PETG @base", + "from": "system", + "setting_id": "EPETGECC2", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "overhang_fan_threshold": [ + "50%" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "filament_max_volumetric_speed": [ + "11" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG PRO @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG PRO @ECC2.json index 98083c47b8c..389ba80a030 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG PRO @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG PRO @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PETG PRO @ECC2", - "inherits": "Elegoo PETG PRO @base", + "inherits": "Elegoo PETG @base", "from": "system", "setting_id": "EPETGPROECC2", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG Translucent @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG Translucent @ECC2.json new file mode 100644 index 00000000000..4717fc72119 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG Translucent @ECC2.json @@ -0,0 +1,28 @@ +{ + "type": "filament", + "name": "Elegoo PETG Translucent @ECC2", + "inherits": "Elegoo PETG @base", + "from": "system", + "setting_id": "EPETGTRANSECC2", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "fan_max_speed": [ + "35" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "255" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-CF @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-CF @ECC2.json new file mode 100644 index 00000000000..283bd114627 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-CF @ECC2.json @@ -0,0 +1,43 @@ +{ + "type": "filament", + "name": "Elegoo PETG-CF @ECC2", + "inherits": "Elegoo PETG @base", + "from": "system", + "setting_id": "EPETGCFECC2", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "filament_density": [ + "1.26" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_layer_time": [ + "6" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-GF @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-GF @ECC2.json new file mode 100644 index 00000000000..1b63259609a --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PETG-GF @ECC2.json @@ -0,0 +1,43 @@ +{ + "type": "filament", + "name": "Elegoo PETG-GF @ECC2", + "inherits": "Elegoo PETG @base", + "from": "system", + "setting_id": "EPETGFECC2", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "filament_density": [ + "1.26" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "nozzle_temperature_range_low": [ + "240" + ], + "overhang_fan_speed": [ + "100" + ], + "slow_down_layer_time": [ + "6" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA @ECC2.json new file mode 100644 index 00000000000..ca4bf7585b8 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA @ECC2.json @@ -0,0 +1,31 @@ +{ + "type": "filament", + "name": "Elegoo PLA @ECC2", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAECC2", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "21" + ], + "nozzle_temperature_initial_layer": [ + "210" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "4" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Basic @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Basic @ECC2.json new file mode 100644 index 00000000000..a31556cf277 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Basic @ECC2.json @@ -0,0 +1,34 @@ +{ + "type": "filament", + "name": "Elegoo PLA Basic @ECC2", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLABASICECC2", + "instantiation": "true", + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "filament_max_volumetric_speed": [ + "21" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "4" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Galaxy @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Galaxy @ECC2.json new file mode 100644 index 00000000000..a6e036b6510 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Galaxy @ECC2.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "name": "Elegoo PLA Galaxy @ECC2", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAGALAXYECC2", + "instantiation": "true", + "fan_min_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "220" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "4" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Marble @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Marble @ECC2.json new file mode 100644 index 00000000000..8e6ed8e4570 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Marble @ECC2.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "name": "Elegoo PLA Marble @ECC2", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAMARBLEECC2", + "instantiation": "true", + "fan_min_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "220" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "4" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Matte @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Matte @ECC2.json index d8009c10224..75bbf751a42 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Matte @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Matte @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Matte @ECC2", - "inherits": "Elegoo PLA Matte @base", + "inherits": "Elegoo PLA @base", "from": "system", "setting_id": "EPLAMECC2", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Silk @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Silk @ECC2.json index cabe0be9b4f..5b7e4a2f839 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Silk @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Silk @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA Silk @ECC2", - "inherits": "Elegoo PLA Silk @base", + "inherits": "Elegoo PLA @base", "from": "system", "setting_id": "EPLASECC2", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Sparkle @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Sparkle @ECC2.json new file mode 100644 index 00000000000..f333b376484 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Sparkle @ECC2.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "name": "Elegoo PLA Sparkle @ECC2", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLASPARKLEECC2", + "instantiation": "true", + "fan_min_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "220" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "4" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Wood @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Wood @ECC2.json new file mode 100644 index 00000000000..ba217d5988d --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA Wood @ECC2.json @@ -0,0 +1,37 @@ +{ + "type": "filament", + "name": "Elegoo PLA Wood @ECC2", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLAWOODECC2", + "instantiation": "true", + "fan_min_speed": [ + "80" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_low": [ + "200" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "4" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA-CF @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA-CF @ECC2.json index bcd4e51e514..d3462bf0e19 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA-CF @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo PLA-CF @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo PLA-CF @ECC2", - "inherits": "Elegoo PLA-CF @base", + "inherits": "Elegoo PLA @base", "from": "system", "setting_id": "EPLACFECC2", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo RAPID PETG @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo RAPID PETG @ECC2.json index 8f22cf1d8fe..bbb11d0bb48 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo RAPID PETG @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo RAPID PETG @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo RAPID PETG @ECC2", - "inherits": "Elegoo RAPID PETG @base", + "inherits": "Elegoo PETG @base", "from": "system", "setting_id": "ERPETGECC2", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo RAPID TPU 95A @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo RAPID TPU 95A @ECC2.json new file mode 100644 index 00000000000..a4625b32f75 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo RAPID TPU 95A @ECC2.json @@ -0,0 +1,28 @@ +{ + "type": "filament", + "name": "Elegoo RAPID TPU 95A @ECC2", + "inherits": "Elegoo TPU @base", + "from": "system", + "setting_id": "ERTPU95AECC2", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "compatible_printers": [ + "Elegoo Centauri Carbon 2 0.4 nozzle", + "Elegoo Centauri Carbon 2 0.6 nozzle", + "Elegoo Centauri Carbon 2 0.8 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ECC2/Elegoo TPU 95A @ECC2.json b/resources/profiles/Elegoo/filament/ECC2/Elegoo TPU 95A @ECC2.json index 0674aea0f5d..91763946a87 100644 --- a/resources/profiles/Elegoo/filament/ECC2/Elegoo TPU 95A @ECC2.json +++ b/resources/profiles/Elegoo/filament/ECC2/Elegoo TPU 95A @ECC2.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Elegoo TPU 95A @ECC2", - "inherits": "Elegoo TPU 95A @base", + "inherits": "Elegoo TPU @base", "from": "system", "setting_id": "ETPU95AECC2", "instantiation": "true", diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ABS @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ABS @0.2 nozzle.json new file mode 100644 index 00000000000..5a206e7814a --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo ABS @0.2 nozzle.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "name": "Elegoo ABS @0.2 nozzle", + "inherits": "Elegoo ABS @base", + "from": "system", + "setting_id": "EABS00020", + "instantiation": "true", + "fan_max_speed": [ + "40" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "pressure_advance": [ + "0.024" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Centauri Carbon 2 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PC @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PC @0.2 nozzle.json new file mode 100644 index 00000000000..5f474c7ff82 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PC @0.2 nozzle.json @@ -0,0 +1,62 @@ +{ + "type": "filament", + "name": "Elegoo PC @0.2 nozzle", + "inherits": "Elegoo PC @base", + "from": "system", + "setting_id": "EPC00020", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "270" + ], + "nozzle_temperature_range_high": [ + "270" + ], + "nozzle_temperature_range_low": [ + "250" + ], + "overhang_fan_threshold": [ + "25%" + ], + "slow_down_layer_time": [ + "6" + ], + "textured_plate_temp": [ + "100" + ], + "textured_plate_temp_initial_layer": [ + "100" + ], + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "35" + ], + "fan_min_speed": [ + "10" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Centauri Carbon 2 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PC-FR @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PC-FR @0.2 nozzle.json new file mode 100644 index 00000000000..7e133ac949d --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PC-FR @0.2 nozzle.json @@ -0,0 +1,47 @@ +{ + "type": "filament", + "name": "Elegoo PC-FR @0.2 nozzle", + "inherits": "Elegoo PC @base", + "from": "system", + "setting_id": "EPCFR00020", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "nozzle_temperature_range_high": [ + "290" + ], + "nozzle_temperature_range_low": [ + "260" + ], + "slow_down_layer_time": [ + "10" + ], + "fan_max_speed": [ + "40" + ], + "filament_density": [ + "1.1" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Centauri Carbon 2 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG @0.2 nozzle.json new file mode 100644 index 00000000000..cb911814f02 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG @0.2 nozzle.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "name": "Elegoo PETG @0.2 nozzle", + "inherits": "Elegoo PETG @base", + "from": "system", + "setting_id": "EPETG00020", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "overhang_fan_threshold": [ + "50%" + ], + "nozzle_temperature": [ + "250" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "filament_max_volumetric_speed": [ + "11" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Centauri Carbon 2 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG Translucent @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG Translucent @0.2 nozzle.json new file mode 100644 index 00000000000..faa1a7c75fd --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PETG Translucent @0.2 nozzle.json @@ -0,0 +1,35 @@ +{ + "type": "filament", + "name": "Elegoo PETG Translucent @0.2 nozzle", + "inherits": "Elegoo PETG @base", + "from": "system", + "setting_id": "EPETGTRAN00020", + "instantiation": "true", + "pressure_advance": [ + "0.024" + ], + "fan_max_speed": [ + "35" + ], + "filament_max_volumetric_speed": [ + "10" + ], + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "255" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Centauri Carbon 2 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Basic @0.2 nozzle.json b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Basic @0.2 nozzle.json new file mode 100644 index 00000000000..e7ffca9b3a0 --- /dev/null +++ b/resources/profiles/Elegoo/filament/ELEGOO/Elegoo PLA Basic @0.2 nozzle.json @@ -0,0 +1,41 @@ +{ + "type": "filament", + "name": "Elegoo PLA Basic @0.2 nozzle", + "inherits": "Elegoo PLA @base", + "from": "system", + "setting_id": "EPLABASIC00020", + "instantiation": "true", + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "nozzle_temperature_range_high": [ + "230" + ], + "filament_max_volumetric_speed": [ + "21" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_layer_time": [ + "4" + ], + "filament_start_gcode": [ + "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" + ], + "compatible_printers": [ + "Elegoo Centauri 0.2 nozzle", + "Elegoo Centauri Carbon 0.2 nozzle", + "Elegoo Centauri Carbon 2 0.2 nozzle", + "Elegoo Neptune 4 0.2 nozzle", + "Elegoo Neptune 4 Pro 0.2 nozzle", + "Elegoo Neptune 4 Plus 0.2 nozzle", + "Elegoo Neptune 4 Max 0.2 nozzle", + "Elegoo Neptune 3 Pro 0.2 nozzle", + "Elegoo Neptune 3 Plus 0.2 nozzle", + "Elegoo Neptune 3 Max 0.2 nozzle" + ] +} diff --git a/resources/profiles/Elegoo/filament/fdm_filament_paht.json b/resources/profiles/Elegoo/filament/fdm_filament_paht.json new file mode 100644 index 00000000000..032a66ed889 --- /dev/null +++ b/resources/profiles/Elegoo/filament/fdm_filament_paht.json @@ -0,0 +1,91 @@ +{ + "type": "filament", + "name": "fdm_filament_paht", + "inherits": "fdm_filament_common", + "from": "system", + "instantiation": "false", + "filament_max_volumetric_speed": [ + "12" + ], + "filament_type": [ + "PAHT" + ], + "filament_density": [ + "1.24" + ], + "filament_cost": [ + "0" + ], + "cool_plate_temp": [ + "35" + ], + "eng_plate_temp": [ + "0" + ], + "textured_plate_temp": [ + "60" + ], + "cool_plate_temp_initial_layer": [ + "35" + ], + "eng_plate_temp_initial_layer": [ + "0" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "reduce_fan_stop_start_freq": [ + "1" + ], + "overhang_fan_threshold": [ + "50%" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "nozzle_temperature": [ + "220" + ], + "temperature_vitrification": [ + "45" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "slow_down_min_speed": [ + "20" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "fan_cooling_layer_time": [ + "80" + ], + "fan_min_speed": [ + "50" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "slow_down_layer_time": [ + "8" + ], + "filament_start_gcode": [ + "; Filament start gcode\n" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_vendor": [ + "Generic" + ] +} diff --git a/resources/profiles/Elegoo/machine/ECC2/Elegoo Centauri Carbon 2 0.4 nozzle.json b/resources/profiles/Elegoo/machine/ECC2/Elegoo Centauri Carbon 2 0.4 nozzle.json index a3ec2560ab0..882765f5900 100644 --- a/resources/profiles/Elegoo/machine/ECC2/Elegoo Centauri Carbon 2 0.4 nozzle.json +++ b/resources/profiles/Elegoo/machine/ECC2/Elegoo Centauri Carbon 2 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "machine", "name": "Elegoo Centauri Carbon 2 0.4 nozzle", - "inherits": "fdm_machine_ecc", + "inherits": "fdm_elegoo_3dp_001_common", "from": "system", "setting_id": "ECC204", "instantiation": "true", @@ -48,7 +48,6 @@ "extruder_offset": [ "0x1.5" ], - "default_bed_type": "4", "fan_speedup_time": "0.5", "machine_load_filament_time": "29", "machine_unload_filament_time": "28", @@ -61,6 +60,7 @@ "gcode_flavor": "klipper", "machine_pause_gcode": "M600", "support_multi_filament": "1", + "support_wan_network": "1", "bed_mesh_max": "243,245", "bed_mesh_min": "10,10", "bed_mesh_probe_distance": "22,22", @@ -73,11 +73,11 @@ "20", "9" ], - "change_filament_gcode": "\n;==========CC2==========\n;===== date: 2025-10-16-001 =====================\nM106 S0\nM106 P2 S0\nG1 Z{min(max_layer_z+3, printable_height+0.5)} F1200\nT[next_extruder]\nM6211 T[next_extruder] L[flush_length] M{old_filament_e_feedrate} N{new_filament_e_feedrate} Q[old_filament_temp] R[nozzle_temperature_range_high] S[new_filament_temp]\n", + "change_filament_gcode": "\n;==========CC2_CHANGE_FILAMENT_GCODE==========\n;===== date: 2025-10-16-001 =====================\nM106 S0\nM106 P2 S0\nG1 Z{min(max_layer_z+3, printable_height+0.5)} F1200\nM6211 T[next_extruder] L[flush_length] M{old_filament_e_feedrate} N{new_filament_e_feedrate} Q[old_filament_temp] R[nozzle_temperature_range_high] S[new_filament_temp]\nT[next_extruder]\n", "layer_change_gcode": "M73 L{layer_num+1}\n;LAYER:{layer_num+1}\n", - "machine_end_gcode": ";===== CC&CC2 - END Gcode ================\n;===== date: 2025-10-16-001 =====================\n\nM104 S0\nM140 S0 ;Turn-off bed\nM83\nG92 E0 ; zero the extruder\nG1 E-1.5 F1800\nG2 I0 J1 Z{max_layer_z+0.5} F3000 ; lower z a little\nM106 S0\nM106 P2 S0\nG90\n{if max_layer_z > 75}G1 Z{min(max_layer_z+5, printable_height+0.5)} F20000{else}G1 Z80 F20000 {endif}; Move print head up \nG180 S9\nM84\n", - "machine_start_gcode": ";===== CC2 - Start Gcode ================\n;===== date: 2025-10-29-001 =====================\n\nG90\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nM190 S[bed_temperature_initial_layer_single] A\nM106 S0\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0 FROM_SLICER=1\nM204 S{min(20000,max(1000,outer_wall_acceleration))} ;Call exterior wall print acceleration\nG28\nM109 S[nozzle_temperature_initial_layer]\nT[initial_no_support_extruder]\nM6211 A1 T[initial_no_support_extruder] Q[nozzle_temperature_initial_layer] R[nozzle_temperature_initial_layer] S[nozzle_temperature_initial_layer]\n\n{if first_layer_print_min[1] > 0.5}\nG180 S7\nG1 X{print_bed_max[0]*0.5-1} Y-1.2 F20000\nG1 Z0.5 F900\nM109 S[nozzle_temperature_initial_layer]\nM83\nG92 E0 ;Reset Extruder\nG1 E6 F{min(1200, max(120, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))} \nM106 S200\nG1 X{print_bed_max[0]*0.5-41} E20 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))} \nG1 F6000\nG1 X{print_bed_max[0]*0.5-46} E0.8\n{else}\nG1 E30 F{min(1200, max(120, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))}\n{endif}\nM106 S0\nG180 S8\nG1 F20000\nG92 E0 ;Reset Extruder\n;LAYER_COUNT:[total_layer_count]\n;LAYER:0", + "machine_end_gcode": ";===== CC&CC2_END_GCODE ================\n;===== date: 2025-10-16-001 =====================\n\nM104 S0\nM140 S0 ;Turn-off bed\nM83\nG92 E0 ; zero the extruder\nG1 E-1.5 F1800\nG2 I0 J1 Z{max_layer_z+0.5} F3000 ; lower z a little\nM106 S0\nM106 P2 S0\nG90\n{if max_layer_z > 75}G1 Z{min(max_layer_z+5, printable_height+0.5)} F20000{else}G1 Z80 F20000 {endif}; Move print head up \nG180 S9\nM84\n", + "machine_start_gcode": ";===== CC2_START_GCODE ================\n;===== date: 2025-11-06-001 =====================\n\nG90\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nM190 S[bed_temperature_initial_layer_single] A\nM106 S0\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0 FROM_SLICER=1\nM204 S{min(20000,max(1000,outer_wall_acceleration))} ;Call exterior wall print acceleration\nG28\nM109 S[nozzle_temperature_initial_layer]\nM6211 A1 L200 T[initial_no_support_extruder] Q[nozzle_temperature_initial_layer] R[nozzle_temperature_initial_layer] S[nozzle_temperature_initial_layer]\nT[initial_no_support_extruder]\n\n{if first_layer_print_min[1] > 0.5}\nG180 S7\nG1 X{print_bed_max[0]*0.5-1} Y-1.2 F20000\nG1 Z0.5 F900\nM109 S[nozzle_temperature_initial_layer]\nM83\nG92 E0 ;Reset Extruder\nG1 E6 F{min(1200, max(120, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))} \nM106 S200\nG1 X{print_bed_max[0]*0.5-41} E20 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))} \nG1 F6000\nG1 X{print_bed_max[0]*0.5-46} E0.8\n{else}\nG1 E30 F{min(1200, max(120, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))}\n{endif}\nM106 S0\nG180 S8\nG1 F20000\nG92 E0 ;Reset Extruder\n;LAYER_COUNT:[total_layer_count]\n;LAYER:0", "retract_restart_extra_toolchange": [ "0.5" ] -} \ No newline at end of file +} diff --git a/resources/profiles/Elegoo/machine/ECC2/Elegoo Centauri Carbon 2.json b/resources/profiles/Elegoo/machine/ECC2/Elegoo Centauri Carbon 2.json index 50fddd4188d..17f9b6f7e81 100644 --- a/resources/profiles/Elegoo/machine/ECC2/Elegoo Centauri Carbon 2.json +++ b/resources/profiles/Elegoo/machine/ECC2/Elegoo Centauri Carbon 2.json @@ -8,5 +8,5 @@ "bed_model": "elegoo_centuri_carbon_buildplate_model.stl", "bed_texture": "elegoo_centuri_carbon_buildplate_texture.png", "hotend_model": "", - "default_materials": "Elegoo ASA @0.2 nozzle;Elegoo ASA @ECC2;Elegoo PETG @0.2 nozzle;Elegoo PETG @ECC2;Elegoo PETG PRO @0.2 nozzle;Elegoo PETG PRO @ECC2;Elegoo PLA @0.2 nozzle;Elegoo PLA Matte @0.2 nozzle;Elegoo PLA Matte @ECC2;Elegoo PLA PRO @0.2 nozzle;Elegoo PLA PRO @ECC2;Elegoo PLA Silk @0.2 nozzle;Elegoo PLA Silk @ECC2;Elegoo PLA-CF @ECC2;Elegoo PLA @ECC2;Elegoo PLA+ @0.2 nozzle;Elegoo PLA+ @ECC2;Elegoo RAPID PETG @0.2 nozzle;Elegoo RAPID PETG @ECC2;Elegoo RAPID PETG+ @0.2 nozzle;Elegoo RAPID PETG+ @ECC2;Elegoo RAPID PLA @0.2 nozzle;Elegoo RAPID PLA @ECC2;Elegoo RAPID PLA+ @0.2 nozzle;Elegoo RAPID PLA+ @ECC2;Elegoo TPU 95A @ECC2;Elegoo PLA Basic @0.2 nozzle;Elegoo PLA Basic @ECC2;Elegoo PLA Galaxy @ECC2;Elegoo PLA Marble @ECC2; Elegoo PLA Sparkle @ECC2;Elegoo PLA Wood @ECC2;Elegoo RAPID TPU 95A @ECC2;Elegoo ABS @0.2 nozzle;Elegoo ABS @ECC2;Elegoo PAHT-CF @ECC2;Elegoo PC @0.2 nozzle;Elegoo PC @ECC2;Elegoo PC-FR @0.2 nozzle;Elegoo PC-FR @ECC2;Elegoo PETG-CF @ECC2;Elegoo PETG-GF @ECC2;Elegoo PETG Translucent @0.2 nozzle;Elegoo PETG Translucent @ECC2" + "default_materials": "Elegoo ASA @0.2 nozzle;Elegoo ASA @ECC2;Elegoo PETG @0.2 nozzle;Elegoo PETG @ECC2;Elegoo PETG PRO @0.2 nozzle;Elegoo PETG PRO @ECC2;Elegoo PLA @0.2 nozzle;Elegoo PLA Matte @0.2 nozzle;Elegoo PLA Matte @ECC2;Elegoo PLA PRO @0.2 nozzle;Elegoo PLA PRO @ECC2;Elegoo PLA Silk @0.2 nozzle;Elegoo PLA Silk @ECC2;Elegoo PLA-CF @ECC2;Elegoo PLA @ECC2;Elegoo PLA+ @0.2 nozzle;Elegoo PLA+ @ECC2;Elegoo RAPID PETG @0.2 nozzle;Elegoo RAPID PETG @ECC2;Elegoo RAPID PLA+ @0.2 nozzle;Elegoo RAPID PLA+ @ECC2;Elegoo TPU 95A @ECC2;Elegoo PLA Basic @0.2 nozzle;Elegoo PLA Basic @ECC2;Elegoo PLA Galaxy @ECC2;Elegoo PLA Marble @ECC2; Elegoo PLA Sparkle @ECC2;Elegoo PLA Wood @ECC2;Elegoo RAPID TPU 95A @ECC2;Elegoo ABS @0.2 nozzle;Elegoo ABS @ECC2;Elegoo PAHT-CF @ECC2;Elegoo PC @0.2 nozzle;Elegoo PC @ECC2;Elegoo PC-FR @0.2 nozzle;Elegoo PC-FR @ECC2;Elegoo PETG-CF @ECC2;Elegoo PETG-GF @ECC2;Elegoo PETG Translucent @0.2 nozzle;Elegoo PETG Translucent @ECC2" } diff --git a/resources/profiles/Elegoo/process/ECC2/0.08mm Optimal @Elegoo CC2 0.2 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.08mm Optimal @Elegoo CC2 0.2 nozzle.json index bd1585faa71..823e5dbab84 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.08mm Optimal @Elegoo CC2 0.2 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.08mm Optimal @Elegoo CC2 0.2 nozzle.json @@ -1,8 +1,7 @@ { - "type": "process", - "name": "0.08mm Optimal @Elegoo CC2 0.2 nozzle", - "inherits": "0.10mm Standard @Elegoo CC2 0.2 nozzle", - "instantiation": "true", "elefant_foot_compensation": "0.05", - "layer_height": "0.08" + "inherits": "0.10mm Standard @Elegoo CC2 0.2 nozzle", + "layer_height": "0.08", + "name": "0.08mm Optimal @Elegoo CC2 0.2 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.10mm Standard @Elegoo CC2 0.2 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.10mm Standard @Elegoo CC2 0.2 nozzle.json index 3c5f7a6a2d8..f77bf88635c 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.10mm Standard @Elegoo CC2 0.2 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.10mm Standard @Elegoo CC2 0.2 nozzle.json @@ -1,15 +1,16 @@ { "type": "process", "name": "0.10mm Standard @Elegoo CC2 0.2 nozzle", - "inherits": "fdm_process_ecc_02010", + "inherits": "fdm_process_elegoo_02010", "from": "system", "setting_id": "PECC202010", "instantiation": "true", "sparse_infill_pattern": "zig-zag", - "filename_format": "ECC2_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "filename_format": "ECC2_{nozzle_diameter[0]}_{input_filename_base}_{filament_name}_{layer_height}_{print_time}.gcode", "min_width_top_surface": "50%", "elefant_foot_compensation": "0.15", "enable_prime_tower": "1", + "reduce_infill_retraction": "0", "compatible_printers": [ "Elegoo Centauri Carbon 2 0.2 nozzle" ] diff --git a/resources/profiles/Elegoo/process/ECC2/0.12mm Draft @Elegoo CC2 0.2 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.12mm Draft @Elegoo CC2 0.2 nozzle.json index 6785665985b..374d851f8f8 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.12mm Draft @Elegoo CC2 0.2 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.12mm Draft @Elegoo CC2 0.2 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.12mm Draft @Elegoo CC2 0.2 nozzle", "inherits": "0.10mm Standard @Elegoo CC2 0.2 nozzle", - "instantiation": "true", - "layer_height": "0.12" + "layer_height": "0.12", + "name": "0.12mm Draft @Elegoo CC2 0.2 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.12mm Fine @Elegoo CC2 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.12mm Fine @Elegoo CC2 0.4 nozzle.json index eaa179bc773..f61bc2722dc 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.12mm Fine @Elegoo CC2 0.4 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.12mm Fine @Elegoo CC2 0.4 nozzle.json @@ -1,8 +1,7 @@ { - "type": "process", - "name": "0.12mm Fine @Elegoo CC2 0.4 nozzle", "inherits": "0.20mm Standard @Elegoo CC2 0.4 nozzle", - "instantiation": "true", "layer_height": "0.12", - "wall_loops": "3" + "name": "0.12mm Fine @Elegoo CC2 0.4 nozzle", + "wall_loops": "3", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.14mm Extra Draft @Elegoo CC2 0.2 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.14mm Extra Draft @Elegoo CC2 0.2 nozzle.json index ed348fcc446..34cc7620e70 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.14mm Extra Draft @Elegoo CC2 0.2 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.14mm Extra Draft @Elegoo CC2 0.2 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.14mm Extra Draft @Elegoo CC2 0.2 nozzle", "inherits": "0.10mm Standard @Elegoo CC2 0.2 nozzle", - "instantiation": "true", - "layer_height": "0.14" + "layer_height": "0.14", + "name": "0.14mm Extra Draft @Elegoo CC2 0.2 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.16mm Extra Fine @Elegoo CC2 0.8 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.16mm Extra Fine @Elegoo CC2 0.8 nozzle.json index e64b1b8f9b0..1584e486193 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.16mm Extra Fine @Elegoo CC2 0.8 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.16mm Extra Fine @Elegoo CC2 0.8 nozzle.json @@ -1,8 +1,7 @@ { - "type": "process", - "name": "0.16mm Extra Fine @Elegoo CC2 0.8 nozzle", "inherits": "0.40mm Standard @Elegoo CC2 0.8 nozzle", - "instantiation": "true", "initial_layer_print_height": "0.3", - "layer_height": "0.16" + "layer_height": "0.16", + "name": "0.16mm Extra Fine @Elegoo CC2 0.8 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.16mm Optimal @Elegoo CC2 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.16mm Optimal @Elegoo CC2 0.4 nozzle.json index 93191a166a2..1801dd905f2 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.16mm Optimal @Elegoo CC2 0.4 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.16mm Optimal @Elegoo CC2 0.4 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.16mm Optimal @Elegoo CC2 0.4 nozzle", "inherits": "0.20mm Standard @Elegoo CC2 0.4 nozzle", - "instantiation": "true", - "layer_height": "0.16" + "layer_height": "0.16", + "name": "0.16mm Optimal @Elegoo CC2 0.4 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.18mm Fine @Elegoo CC2 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.18mm Fine @Elegoo CC2 0.6 nozzle.json index b3e535c3cb1..c95d7407f26 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.18mm Fine @Elegoo CC2 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.18mm Fine @Elegoo CC2 0.6 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.18mm Fine @Elegoo CC2 0.6 nozzle", "inherits": "0.30mm Standard @Elegoo CC2 0.6 nozzle", - "instantiation": "true", - "layer_height": "0.18" + "layer_height": "0.18", + "name": "0.18mm Fine @Elegoo CC2 0.6 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.20mm Standard @Elegoo CC2 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.20mm Standard @Elegoo CC2 0.4 nozzle.json index 2bf76ed2497..72308485cb2 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.20mm Standard @Elegoo CC2 0.4 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.20mm Standard @Elegoo CC2 0.4 nozzle.json @@ -2,13 +2,13 @@ { "type": "process", "name": "0.20mm Standard @Elegoo CC2 0.4 nozzle", - "inherits": "fdm_process_ecc_04020", + "inherits": "fdm_process_elegoo_04020", "from": "system", "setting_id": "PECC204020", "instantiation": "true", "bottom_shell_layers": "3", "bottom_shell_thickness": "0.6", - "filename_format": "ECC2_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "filename_format": "ECC2_{nozzle_diameter[0]}_{input_filename_base}_{filament_name}_{layer_height}_{print_time}.gcode", "min_width_top_surface": "50%", "enable_prime_tower": "1", "compatible_printers": [ @@ -17,7 +17,6 @@ "enable_arc_fitting": "0", "exclude_object": "0", "independent_support_layer_height": "0", - "infill_anchor": "1000", "initial_layer_acceleration": "2000", "outer_wall_speed": "200", "skirt_height": "4", @@ -30,5 +29,6 @@ "top_surface_acceleration": "5000", "tree_support_branch_distance_organic": "2", "tree_support_tip_diameter": "0.8", - "wall_sequence": "inner-outer-inner wall" + "wall_sequence": "inner wall/outer wall", + "reduce_infill_retraction": "0" } diff --git a/resources/profiles/Elegoo/process/ECC2/0.20mm Strength @Elegoo CC2 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.20mm Strength @Elegoo CC2 0.4 nozzle.json index d6d4c5cdc8f..cbd512b1603 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.20mm Strength @Elegoo CC2 0.4 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.20mm Strength @Elegoo CC2 0.4 nozzle.json @@ -1,8 +1,6 @@ { - "type": "process", - "name": "0.20mm Strength @Elegoo CC2 0.4 nozzle", "inherits": "0.20mm Standard @Elegoo CC2 0.4 nozzle", - "instantiation": "true", + "name": "0.20mm Strength @Elegoo CC2 0.4 nozzle", "wall_sequence": "inner-outer-inner wall", "reduce_crossing_wall": "1", "bottom_shell_layers": "5", @@ -10,5 +8,6 @@ "print_flow_ratio": "0.95", "sparse_infill_density": "20%", "top_shell_layers": "6", - "wall_loops": "6" + "wall_loops": "6", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.24mm Draft @Elegoo CC2 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.24mm Draft @Elegoo CC2 0.4 nozzle.json index 8c6a8a435e4..e183cfdd7da 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.24mm Draft @Elegoo CC2 0.4 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.24mm Draft @Elegoo CC2 0.4 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.24mm Draft @Elegoo CC2 0.4 nozzle", "inherits": "0.20mm Standard @Elegoo CC2 0.4 nozzle", - "instantiation": "true", - "layer_height": "0.24" + "layer_height": "0.24", + "name": "0.24mm Draft @Elegoo CC2 0.4 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.24mm Fine @Elegoo CC2 0.8 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.24mm Fine @Elegoo CC2 0.8 nozzle.json index ab937e7c868..904f0f873cc 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.24mm Fine @Elegoo CC2 0.8 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.24mm Fine @Elegoo CC2 0.8 nozzle.json @@ -1,8 +1,7 @@ { - "type": "process", - "name": "0.24mm Fine @Elegoo CC2 0.8 nozzle", "inherits": "0.40mm Standard @Elegoo CC2 0.8 nozzle", - "instantiation": "true", "initial_layer_print_height": "0.3", - "layer_height": "0.24" + "layer_height": "0.24", + "name": "0.24mm Fine @Elegoo CC2 0.8 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.24mm Optimal @Elegoo CC2 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.24mm Optimal @Elegoo CC2 0.6 nozzle.json index 524599aeb32..db40469776f 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.24mm Optimal @Elegoo CC2 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.24mm Optimal @Elegoo CC2 0.6 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.24mm Optimal @Elegoo CC2 0.6 nozzle", "inherits": "0.30mm Standard @Elegoo CC2 0.6 nozzle", - "instantiation": "true", - "layer_height": "0.24" + "layer_height": "0.24", + "name": "0.24mm Optimal @Elegoo CC2 0.6 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.28mm Extra Draft @Elegoo CC2 0.4 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.28mm Extra Draft @Elegoo CC2 0.4 nozzle.json index 655f64b3909..963511cb262 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.28mm Extra Draft @Elegoo CC2 0.4 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.28mm Extra Draft @Elegoo CC2 0.4 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.28mm Extra Draft @Elegoo CC2 0.4 nozzle", "inherits": "0.20mm Standard @Elegoo CC2 0.4 nozzle", - "instantiation": "true", - "layer_height": "0.28" + "layer_height": "0.28", + "name": "0.28mm Extra Draft @Elegoo CC2 0.4 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.30mm Standard @Elegoo CC2 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.30mm Standard @Elegoo CC2 0.6 nozzle.json index a4257544a88..da48ea859a5 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.30mm Standard @Elegoo CC2 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.30mm Standard @Elegoo CC2 0.6 nozzle.json @@ -2,15 +2,16 @@ { "type": "process", "name": "0.30mm Standard @Elegoo CC2 0.6 nozzle", - "inherits": "fdm_process_ecc_06030", + "inherits": "fdm_process_elegoo_06030", "from": "system", "setting_id": "PECC206030", "instantiation": "true", "sparse_infill_pattern": "zig-zag", - "filename_format": "ECC2_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "filename_format": "ECC2_{nozzle_diameter[0]}_{input_filename_base}_{filament_name}_{layer_height}_{print_time}.gcode", "min_width_top_surface": "50%", "enable_prime_tower": "1", "compatible_printers": [ "Elegoo Centauri Carbon 2 0.6 nozzle" - ] + ], + "reduce_infill_retraction": "0" } diff --git a/resources/profiles/Elegoo/process/ECC2/0.30mm Strength @Elegoo CC2 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.30mm Strength @Elegoo CC2 0.6 nozzle.json index 252b439e523..221dfa023ae 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.30mm Strength @Elegoo CC2 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.30mm Strength @Elegoo CC2 0.6 nozzle.json @@ -1,13 +1,12 @@ { - "type": "process", - "name": "0.30mm Strength @Elegoo CC2 0.6 nozzle", "inherits": "0.30mm Standard @Elegoo CC2 0.6 nozzle", - "instantiation": "true", "inner_wall_speed": "120", + "name": "0.30mm Strength @Elegoo CC2 0.6 nozzle", "wall_sequence": "inner-outer-inner wall", "reduce_crossing_wall": "1", "outer_wall_speed": "80", "sparse_infill_density": "15%", "top_surface_speed": "120", - "wall_loops": "4" + "wall_loops": "4", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.32mm Optimal @Elegoo CC2 0.8 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.32mm Optimal @Elegoo CC2 0.8 nozzle.json index 058c9d6bee4..a29aa2e271e 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.32mm Optimal @Elegoo CC2 0.8 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.32mm Optimal @Elegoo CC2 0.8 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.32mm Optimal @Elegoo CC2 0.8 nozzle", "inherits": "0.40mm Standard @Elegoo CC2 0.8 nozzle", - "instantiation": "true", - "layer_height": "0.32" + "layer_height": "0.32", + "name": "0.32mm Optimal @Elegoo CC2 0.8 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.36mm Draft @Elegoo CC2 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.36mm Draft @Elegoo CC2 0.6 nozzle.json index 40dfda4432e..ef50c6d4fc9 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.36mm Draft @Elegoo CC2 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.36mm Draft @Elegoo CC2 0.6 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.36mm Draft @Elegoo CC2 0.6 nozzle", "inherits": "0.30mm Standard @Elegoo CC2 0.6 nozzle", - "instantiation": "true", - "layer_height": "0.36" + "layer_height": "0.36", + "name": "0.36mm Draft @Elegoo CC2 0.6 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.40mm Standard @Elegoo CC2 0.8 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.40mm Standard @Elegoo CC2 0.8 nozzle.json index d30d68e0ea1..5b03f8bfd40 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.40mm Standard @Elegoo CC2 0.8 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.40mm Standard @Elegoo CC2 0.8 nozzle.json @@ -2,15 +2,16 @@ { "type": "process", "name": "0.40mm Standard @Elegoo CC2 0.8 nozzle", - "inherits": "fdm_process_ecc_08040", + "inherits": "fdm_process_elegoo_08040", "from": "system", "setting_id": "PECC208040", "instantiation": "true", "sparse_infill_pattern": "zig-zag", - "filename_format": "ECC2_{nozzle_diameter[0]}_{input_filename_base}_{filament_type[0]}{layer_height}_{print_time}.gcode", + "filename_format": "ECC2_{nozzle_diameter[0]}_{input_filename_base}_{filament_name}_{layer_height}_{print_time}.gcode", "min_width_top_surface": "50%", "enable_prime_tower": "1", "compatible_printers": [ "Elegoo Centauri Carbon 2 0.8 nozzle" - ] + ], + "reduce_infill_retraction": "0" } diff --git a/resources/profiles/Elegoo/process/ECC2/0.42mm Extra Draft @Elegoo CC2 0.6 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.42mm Extra Draft @Elegoo CC2 0.6 nozzle.json index 0b4d71378c9..3db6a6eddb0 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.42mm Extra Draft @Elegoo CC2 0.6 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.42mm Extra Draft @Elegoo CC2 0.6 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.42mm Extra Draft @Elegoo CC2 0.6 nozzle", "inherits": "0.30mm Standard @Elegoo CC2 0.6 nozzle", - "instantiation": "true", - "layer_height": "0.42" + "layer_height": "0.42", + "name": "0.42mm Extra Draft @Elegoo CC2 0.6 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/ECC2/0.48mm Draft @Elegoo CC2 0.8 nozzle.json b/resources/profiles/Elegoo/process/ECC2/0.48mm Draft @Elegoo CC2 0.8 nozzle.json index eadca9a60ad..5ee2988155b 100644 --- a/resources/profiles/Elegoo/process/ECC2/0.48mm Draft @Elegoo CC2 0.8 nozzle.json +++ b/resources/profiles/Elegoo/process/ECC2/0.48mm Draft @Elegoo CC2 0.8 nozzle.json @@ -1,7 +1,6 @@ { - "type": "process", - "name": "0.48mm Draft @Elegoo CC2 0.8 nozzle", "inherits": "0.40mm Standard @Elegoo CC2 0.8 nozzle", - "instantiation": "true", - "layer_height": "0.48" + "layer_height": "0.48", + "name": "0.48mm Draft @Elegoo CC2 0.8 nozzle", + "instantiation": "true" } \ No newline at end of file diff --git a/resources/profiles/Elegoo/process/fdm_process_elegoo_02010.json b/resources/profiles/Elegoo/process/fdm_process_elegoo_02010.json new file mode 100644 index 00000000000..cef423edcdb --- /dev/null +++ b/resources/profiles/Elegoo/process/fdm_process_elegoo_02010.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "fdm_process_elegoo_02010", + "inherits": "fdm_process_elegoo_common", + "from": "system", + "instantiation": "false", + "layer_height": "0.1", + "initial_layer_print_height": "0.15", + "elefant_foot_compensation": "0.05", + "wall_loops": "4", + "bottom_shell_layers": "5", + "top_shell_layers": "7", + "bridge_flow": "1", + "line_width": "0.22", + "outer_wall_line_width": "0.22", + "initial_layer_line_width": "0.3", + "sparse_infill_line_width": "0.25", + "inner_wall_line_width": "0.22", + "internal_solid_infill_line_width": "0.22", + "support_line_width": "0.22", + "top_surface_line_width": "0.22", + "initial_layer_speed": "35", + "initial_layer_infill_speed": "60", + "sparse_infill_speed": "100", + "inner_wall_speed": "100", + "internal_solid_infill_speed": "100", + "is_custom_defined": "0", + "outer_wall_speed": "60", + "top_surface_speed": "80" +} diff --git a/src/slic3r/GUI/CreatePresetsDialog.cpp b/src/slic3r/GUI/CreatePresetsDialog.cpp index b34b5df3ac8..9a42319bf1d 100644 --- a/src/slic3r/GUI/CreatePresetsDialog.cpp +++ b/src/slic3r/GUI/CreatePresetsDialog.cpp @@ -103,7 +103,7 @@ static const std::unordered_map> printer_m "Creality Hi"}}, {"DeltaMaker", {"DeltaMaker 2", "DeltaMaker 2T", "DeltaMaker 2XT"}}, {"Dremel", {"Dremel 3D20", "Dremel 3D40", "Dremel 3D45"}}, - {"Elegoo", {"Elegoo Centauri Carbon", "Elegoo Centauri", "Elegoo Neptune", "Elegoo Neptune X", "Elegoo Neptune 2", + {"Elegoo", {"Elegoo Centauri Carbon 2", "Elegoo Centauri Carbon", "Elegoo Centauri", "Elegoo Neptune", "Elegoo Neptune X", "Elegoo Neptune 2", "Elegoo Neptune 2S", "Elegoo Neptune 2D", "Elegoo Neptune 3", "Elegoo Neptune 3 Pro", "Elegoo Neptune 3 Plus", "Elegoo Neptune 3 Max", "Elegoo Neptune 4 Pro", "Elegoo Neptune 4", "Elegoo Neptune 4 Max", "Elegoo Neptune 4 Plus", "Elegoo OrangeStorm Giga"}}, From 40bf2157e3d38d3e2b5ab32119a8e56c1ab64e2a Mon Sep 17 00:00:00 2001 From: Niccolo Date: Thu, 12 Mar 2026 12:36:45 +0100 Subject: [PATCH 12/13] Fix CLI segfault (SIGSEGV) when using --info, --slice, or --export-3mf (#12719) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In CLI mode, PartPlateList is constructed with a NULL plater pointer (OrcaSlicer.cpp:3612). When set_shapes() calls PartPlate::set_shape(), it unconditionally executes render data preparation code that dereferences the null plater through calls like generate_print_polygon() → wxGetApp().plater(), causing a segmentation fault (exit code 139). This adds a null check on m_plater in PartPlate::set_shape() to skip the render-only code block that generates logo triangles, print/exclude polygons, gridlines, icon vertices, and plate name textures. These rendering operations are not needed in CLI mode and this change has no impact on GUI mode where m_plater is always valid. --- src/slic3r/GUI/PartPlate.cpp | 71 +++++++++++++++--------------------- 1 file changed, 30 insertions(+), 41 deletions(-) diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index e7f9810ae09..332dc4c1df2 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -3079,53 +3079,42 @@ bool PartPlate::set_shape(const Pointfs& shape, const Pointfs& exclude_areas, co calc_bounding_boxes(); - ExPolygon logo_poly; - generate_logo_polygon(logo_poly); - m_logo_triangles.reset(); - if (!init_model_from_poly(m_logo_triangles, logo_poly, GROUND_Z + 0.02f)) - BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ":Unable to create logo triangles\n"; + if (m_plater != nullptr) { // render data, skip in CLI mode where m_plater is null + ExPolygon logo_poly; + generate_logo_polygon(logo_poly); + m_logo_triangles.reset(); + if (!init_model_from_poly(m_logo_triangles, logo_poly, GROUND_Z + 0.02f)) + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ":Unable to create logo triangles\n"; - ExPolygon poly; - /*for (const Vec2d& p : m_shape) { - poly.contour.append({ scale_(p(0)), scale_(p(1)) }); - }*/ - generate_print_polygon(poly); - calc_triangles(poly); + ExPolygon poly; + generate_print_polygon(poly); + calc_triangles(poly); - // reset m_wrapping_detection_triangles when change printer - m_print_polygon = poly; - m_wrapping_detection_triangles.reset(); - init_raycaster_from_model(m_triangles); + // reset m_wrapping_detection_triangles when change printer + m_print_polygon = poly; + m_wrapping_detection_triangles.reset(); + init_raycaster_from_model(m_triangles); - ExPolygon exclude_poly; - /*for (const Vec2d& p : m_exclude_area) { - exclude_poly.contour.append({ scale_(p(0)), scale_(p(1)) }); - }*/ - generate_exclude_polygon(exclude_poly); - calc_exclude_triangles(exclude_poly); + ExPolygon exclude_poly; + generate_exclude_polygon(exclude_poly); + calc_exclude_triangles(exclude_poly); - const BoundingBox& pp_bbox = poly.contour.bounding_box(); - calc_gridlines(poly, pp_bbox); + const BoundingBox& pp_bbox = poly.contour.bounding_box(); + calc_gridlines(poly, pp_bbox); - //calc_vertex_for_icons_background(5, m_del_and_background_icon); - //calc_vertex_for_icons(4, m_del_icon); - calc_vertex_for_icons(0, m_del_icon); - calc_vertex_for_icons(1, m_orient_icon); - calc_vertex_for_icons(2, m_arrange_icon); - calc_vertex_for_icons(3, m_lock_icon); - calc_vertex_for_icons(4, m_plate_settings_icon); - // ORCA also change bed_icon_count number in calc_vertex_for_icons() after adding or removing icons for circular shaped beds that uses vertical alingment for icons - bool dual_bbl = false; - if (m_plater) { - PresetBundle* preset = wxGetApp().preset_bundle; - dual_bbl = (preset->is_bbl_vendor() && preset->get_printer_extruder_count() == 2); - } - calc_vertex_for_icons(dual_bbl ? 5 : 6, m_plate_filament_map_icon); - calc_vertex_for_icons(dual_bbl ? 6 : 5, m_move_front_icon); + calc_vertex_for_icons(0, m_del_icon); + calc_vertex_for_icons(1, m_orient_icon); + calc_vertex_for_icons(2, m_arrange_icon); + calc_vertex_for_icons(3, m_lock_icon); + calc_vertex_for_icons(4, m_plate_settings_icon); + // ORCA also change bed_icon_count number in calc_vertex_for_icons() after adding or removing icons for circular shaped beds that uses vertical alingment for icons + bool dual_bbl = false; + PresetBundle* preset = wxGetApp().preset_bundle; + dual_bbl = (preset->is_bbl_vendor() && preset->get_printer_extruder_count() == 2); + calc_vertex_for_icons(dual_bbl ? 5 : 6, m_plate_filament_map_icon); + calc_vertex_for_icons(dual_bbl ? 6 : 5, m_move_front_icon); - //calc_vertex_for_number(0, (m_plate_index < 9), m_plate_idx_icon); - calc_vertex_for_number(0, false, m_plate_idx_icon); - if (m_plater) { + calc_vertex_for_number(0, false, m_plate_idx_icon); // calc vertex for plate name generate_plate_name_texture(); } From 845baaefbb372e9d26ac64aaba9319d76a6c85ea Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 12 Mar 2026 19:38:36 +0800 Subject: [PATCH 13/13] Feature/fix crash on linux when clicking assemble feature (#12739) * fix crash on Linux when clicking Assemble gizmo * some qol changes for dev * Revert "some qol changes for dev" This reverts commit ffe321370b16e61d75e6ca84944480c6827ec79a. --- .gitignore | 1 + src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 867b49420f7..4b186b4e142 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,4 @@ test.js /.cache/ .clangd internal_docs/ +*.flatpak \ No newline at end of file diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp index eeeb3da2859..8a6bed9bca3 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMeasure.cpp @@ -678,7 +678,7 @@ void GLGizmoMeasure::on_render() m_mesh_raycaster_map[m_last_hit_volume]->get_transform(), m_only_select_plane) : std::nullopt; } - if (m_measure_mode == EMeasureMode::ONLY_ASSEMBLY) { + if (m_measure_mode == EMeasureMode::ONLY_ASSEMBLY && curr_feature.has_value()) { if (m_assembly_mode == AssemblyMode::FACE_FACE) { if (curr_feature->get_type() != Measure::SurfaceFeatureType::Plane) { curr_feature.reset();