From 3b9d61cfc0d09f7e5fb519b05283996c388ab5c8 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 23 Sep 2023 15:20:56 +0800 Subject: [PATCH 01/92] ENH: config: add local logic into config.load JIRA: github-2569 Change-Id: If593b9faee324dda096a27873587db27aa22129e --- src/libslic3r/Config.cpp | 3 +++ src/libslic3r/PresetBundle.cpp | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/Config.cpp b/src/libslic3r/Config.cpp index 69630c16ac..b86ae459bd 100644 --- a/src/libslic3r/Config.cpp +++ b/src/libslic3r/Config.cpp @@ -753,6 +753,9 @@ int ConfigBase::load_from_json(const std::string &file, ConfigSubstitutionContex std::list different_settings_append; std::string new_support_style; bool is_project_settings = false; + + CNumericLocalesSetter locales_setter; + try { boost::nowide::ifstream ifs(file); ifs >> j; diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index f048c77cab..57bff3b265 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -2729,7 +2729,6 @@ void PresetBundle::load_config_file_config(const std::string &name_or_path, bool std::pair PresetBundle::load_vendor_configs_from_json( const std::string &path, const std::string &vendor_name, LoadConfigBundleAttributes flags, ForwardCompatibilitySubstitutionRule compatibility_rule) { - CNumericLocalesSetter locales_setter; // Enable substitutions for user config bundle, throw an exception when loading a system profile. ConfigSubstitutionContext substitution_context { compatibility_rule }; PresetsConfigSubstitutions substitutions; From ec35d210ce32793abc4f9b56ccc1c73337874b6f Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Fri, 22 Sep 2023 14:53:48 +0800 Subject: [PATCH 02/92] FIX: reload bed_texture should reset before Jira: STUDIO-4574 Change-Id: I0bfe8a936347438d06dcdf3faca83a00b02a8677 (cherry picked from commit e03bfc830141a53acbabde3992edc14595bcef9a) --- src/slic3r/GUI/PartPlate.cpp | 15 +++++++++++++++ src/slic3r/GUI/PartPlate.hpp | 2 ++ 2 files changed, 17 insertions(+) diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index bb2aff08ab..f7e53b9a40 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -5146,6 +5146,20 @@ void PartPlateList::BedTextureInfo::TexturePart::update_buffer() } } +void PartPlateList::BedTextureInfo::TexturePart::reset() +{ + if (texture) + texture->reset(); + if (buffer) + delete buffer; +} + +void PartPlateList::BedTextureInfo::reset() +{ + for (size_t i = 0; i < parts.size(); i++) + parts[i].reset(); +} + void PartPlateList::init_bed_type_info() { BedTextureInfo::TexturePart pc_part1(10, 130, 10, 110, "bbl_bed_pc_left.svg"); @@ -5157,6 +5171,7 @@ void PartPlateList::init_bed_type_info() BedTextureInfo::TexturePart pte_part1(10, 80, 10, 160, "bbl_bed_pte_left.svg"); BedTextureInfo::TexturePart pte_part2(74, -10, 148, 12, "bbl_bed_pte_bottom.svg"); for (size_t i = 0; i < btCount; i++) { + bed_texture_info[i].reset(); bed_texture_info[i].parts.clear(); } bed_texture_info[btPC].parts.push_back(pc_part1); diff --git a/src/slic3r/GUI/PartPlate.hpp b/src/slic3r/GUI/PartPlate.hpp index dc05bcc4f9..d6a36ef63e 100644 --- a/src/slic3r/GUI/PartPlate.hpp +++ b/src/slic3r/GUI/PartPlate.hpp @@ -596,8 +596,10 @@ public: } void update_buffer(); + void reset(); }; std::vector parts; + void reset(); }; static const unsigned int MAX_PLATES_COUNT = MAX_PLATE_COUNT; From 59061f912bb4b7fc269c4a16e89d76295cb0da31 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 23 Sep 2023 16:40:55 +0800 Subject: [PATCH 03/92] ENH: CLI: add more logic to improve slicing 1. only report slicing error when no-check not set 2. skip duplicate when under spiral_mode with by-layer print JIRA: STUDIO-XXX Change-Id: I03bf7f45b4cc43dcc1fd2ffb6b53321fe3324dad --- src/BambuStudio.cpp | 26 +++++++++++++++++--------- src/libslic3r/Utils.hpp | 2 +- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/BambuStudio.cpp b/src/BambuStudio.cpp index 6b3efd0ba2..831c0538cd 100644 --- a/src/BambuStudio.cpp +++ b/src/BambuStudio.cpp @@ -137,7 +137,7 @@ std::map cli_errors = { {CLI_FILAMENTS_DIFFERENT_TEMP, "The temperature difference of the filaments used is too large. Please verify the slicing of all plates in Bambu Studio before uploading."}, {CLI_OBJECT_COLLISION_IN_SEQ_PRINT, "Object conflicts were detected when using print-by-object mode. Please verify the slicing of all plates in Bambu Studio before uploading."}, {CLI_OBJECT_COLLISION_IN_LAYER_PRINT, "Object conflicts were detected. Please verify the slicing of all plates in Bambu Studio before uploading."}, - {CLI_SPIRAL_MODE_CANNOT_DUPLICATE, "Objects can not be duplicated under Spiral Mode when not using By-Object print sequence."}, + {CLI_SPIRAL_MODE_INVALID_PARAMS, "Invalid params found when using Spiral Mode."}, {CLI_SLICING_ERROR, "Failed slicing the model. Please verify the slicing of all plates on Bambu Studio before uploading."}, {CLI_GCODE_PATH_CONFLICTS, " G-code conflicts detected after slicing. Please make sure the 3mf file can be successfully sliced in the latest Bambu Studio."} }; @@ -513,7 +513,7 @@ int CLI::run(int argc, char **argv) boost::nowide::cerr << text.c_str() << std::endl; return CLI_ENVIRONMENT_ERROR; } - BOOST_LOG_TRIVIAL(info) << "Current BambuStudio Version "<< SLIC3R_VERSION << std::endl; + BOOST_LOG_TRIVIAL(warning) << "Current BambuStudio Version "<< SLIC3R_VERSION << std::endl; /*BOOST_LOG_TRIVIAL(info) << "begin to setup params, argc=" << argc << std::endl; for (int index=0; index < argc; index++) @@ -2097,7 +2097,6 @@ int CLI::run(int argc, char **argv) BOOST_LOG_TRIVIAL(info) << "repetitions value " << repetitions_count << std::endl; - need_arrange = true; duplicate_count = repetitions_count - 1; } } @@ -2380,12 +2379,14 @@ int CLI::run(int argc, char **argv) { //spiral mode can only be duplicated with by-object if (!is_seq_print_for_curr_plate) { - BOOST_LOG_TRIVIAL(error) << boost::format("Spiral mode can not be duplicated under by-object print!"); - record_exit_reson(outfile_dir, CLI_SPIRAL_MODE_CANNOT_DUPLICATE, 0, cli_errors[CLI_SPIRAL_MODE_CANNOT_DUPLICATE], sliced_info); - flush_and_exit(CLI_SPIRAL_MODE_CANNOT_DUPLICATE); + BOOST_LOG_TRIVIAL(warning) << boost::format("Spiral mode can not be duplicated under by-object print, skip duplicate"); + duplicate_count = 0; } } } + + if (duplicate_count > 0) + need_arrange = true; } if ((!need_arrange) && is_bbl_3mf && !shrink_to_new_bed && (plate_to_slice > 0)) @@ -3327,9 +3328,16 @@ int CLI::run(int argc, char **argv) } else { BOOST_LOG_TRIVIAL(error) << "plate "<< index+1<< ": found slicing error: "< Date: Sat, 23 Sep 2023 17:23:07 +0800 Subject: [PATCH 04/92] ENH: CLI: refine some logs JIRA: STUDIO-XXXX Change-Id: Ic61f7fbffabc28a76ac186c33182b9284c1c2da1 --- src/BambuStudio.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BambuStudio.cpp b/src/BambuStudio.cpp index 831c0538cd..354968c937 100644 --- a/src/BambuStudio.cpp +++ b/src/BambuStudio.cpp @@ -3324,10 +3324,10 @@ int CLI::run(int argc, char **argv) sliced_plate_info.warning_message = status.text; if (status.warning_level == PrintStateBase::WarningLevel::NON_CRITICAL) { - BOOST_LOG_TRIVIAL(warning) << "plate "<< index+1<< ": found slicing warnings: "< Date: Sun, 24 Sep 2023 21:47:11 +0800 Subject: [PATCH 05/92] ENH: add profiles for X1E 1.Add fillament,process,machine profiles for X1E jira: STUDIO-3518 Signed-off-by: xun.zhang Change-Id: I7cd82540602699035099dbfcaf541aab5c6276fe --- resources/profiles/BBL.json | 140 +++++++++++++++++- .../profiles/BBL/Bambu Lab X1E_cover.png | Bin 0 -> 13025 bytes .../Bambu ABS @BBL X1E 0.2 nozzle.json | 11 ++ .../Bambu ABS @BBL X1E 0.8 nozzle.json | 11 ++ .../BBL/filament/Bambu ABS @BBL X1E.json | 12 ++ .../Bambu ASA @BBL X1E 0.2 nozzle.json | 11 ++ .../Bambu ASA @BBL X1E 0.4 nozzle.json | 14 ++ .../BBL/filament/Bambu ASA @BBL X1E.json | 12 ++ .../BBL/filament/Bambu PA-CF @BBL X1E.json | 16 ++ .../BBL/filament/Bambu PA6-CF @BBL X1E.json | 16 ++ .../BBL/filament/Bambu PAHT-CF @BBL X1C.json | 5 +- .../Bambu PC @BBL X1E 0.2 nozzle.json | 14 ++ .../Bambu PC @BBL X1E 0.6 nozzle.json | 14 ++ .../Bambu PC @BBL X1E 0.8 nozzle.json | 14 ++ .../BBL/filament/Bambu PC @BBL X1E.json | 14 ++ .../BBL/filament/Bambu PET-CF @BBL X1E.json | 16 ++ .../Bambu PETG Basic @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu PETG Basic @BBL X1C 0.8 nozzle.json | 4 +- .../filament/Bambu PETG Basic @BBL X1C.json | 3 +- .../Bambu PETG-CF @BBL X1C 0.4 nozzle.json | 3 +- .../BBL/filament/Bambu PETG-CF @BBL X1C.json | 4 +- .../BBL/filament/Bambu PLA Aero @BBL X1C.json | 5 +- .../Bambu PLA Basic @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu PLA Basic @BBL X1C 0.8 nozzle.json | 3 +- .../filament/Bambu PLA Basic @BBL X1C.json | 4 +- .../filament/Bambu PLA Marble @BBL X1C.json | 5 +- .../Bambu PLA Matte @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu PLA Matte @BBL X1C 0.8 nozzle.json | 3 +- .../filament/Bambu PLA Matte @BBL X1C.json | 4 +- .../Bambu PLA Metal @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Bambu PLA Metal @BBL X1C.json | 5 +- .../Bambu PLA Silk @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/Bambu PLA Silk @BBL X1C.json | 5 +- .../filament/Bambu PLA Sparkle @BBL X1C.json | 5 +- .../Bambu PLA Tough @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Bambu PLA Tough @BBL X1C.json | 5 +- .../Bambu PLA-CF @BBL X1C 0.8 nozzle.json | 4 +- .../BBL/filament/Bambu PLA-CF @BBL X1C.json | 3 +- .../Bambu Support For PA PET @BBL X1C.json | 5 +- ...u Support For PLA @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu Support For PLA @BBL X1C.json | 5 +- .../filament/Bambu Support G @BBL X1E.json | 16 ++ .../Bambu Support W @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Bambu Support W @BBL X1C.json | 5 +- .../BBL/filament/Bambu TPU 95A @BBL X1C.json | 5 +- .../Generic ABS @BBL X1E 0.2 nozzle.json | 11 ++ .../BBL/filament/Generic ABS @BBL X1E.json | 13 ++ .../Generic ASA @BBL X1E 0.2 nozzle.json | 11 ++ .../BBL/filament/Generic ASA @BBL X1E.json | 13 ++ .../Generic HIPS @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/Generic HIPS @BBL X1C.json | 5 +- .../BBL/filament/Generic PA-CF @BBL X1E.json | 16 ++ .../profiles/BBL/filament/Generic PA.json | 5 +- .../Generic PC @BBL X1E 0.2 nozzle.json | 14 ++ .../BBL/filament/Generic PC @BBL X1E.json | 16 ++ .../filament/Generic PETG @0.2 nozzle.json | 3 +- .../filament/Generic PETG-CF @BBL X1C.json | 5 +- .../profiles/BBL/filament/Generic PETG.json | 5 +- .../BBL/filament/Generic PLA @0.2 nozzle.json | 3 +- ...ic PLA High Speed @BBL X1C 0.2 nozzle.json | 3 +- .../Generic PLA High Speed @BBL X1C.json | 5 +- .../BBL/filament/Generic PLA Silk.json | 5 +- .../profiles/BBL/filament/Generic PLA-CF.json | 5 +- .../profiles/BBL/filament/Generic PLA.json | 5 +- .../BBL/filament/Generic PPA-CF @BBL X1E.json | 19 +++ .../BBL/filament/Generic PPA-GF @BBL X1E.json | 25 ++++ .../BBL/filament/Generic PPS @BBL X1E.json | 13 ++ .../BBL/filament/Generic PPS-CF @BBL X1E.json | 13 ++ .../BBL/filament/Generic PVA @0.2 nozzle.json | 3 +- .../profiles/BBL/filament/Generic PVA.json | 5 +- .../profiles/BBL/filament/Generic TPU.json | 5 +- ...verture Matte PLA @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Overture Matte PLA @BBL X1C.json | 5 +- .../Overture PLA @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/Overture PLA @BBL X1C.json | 5 +- .../PolyLite ABS @BBL X1E 0.2 nozzle.json | 11 ++ .../BBL/filament/PolyLite ABS @BBL X1E.json | 13 ++ .../PolyLite ASA @BBL X1E 0.2 nozzle.json | 14 ++ .../BBL/filament/PolyLite ASA @BBL X1E.json | 13 ++ .../PolyLite PETG @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/PolyLite PETG @BBL X1C.json | 5 +- .../PolyLite PLA @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/PolyLite PLA @BBL X1C.json | 5 +- .../PolyTerra PLA @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/PolyTerra PLA @BBL X1C.json | 5 +- .../eSUN PLA+ @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/eSUN PLA+ @BBL X1C.json | 5 +- .../BBL/machine/Bambu Lab X1E 0.2 nozzle.json | 34 +++++ .../BBL/machine/Bambu Lab X1E 0.4 nozzle.json | 39 +++++ .../BBL/machine/Bambu Lab X1E 0.6 nozzle.json | 36 +++++ .../BBL/machine/Bambu Lab X1E 0.8 nozzle.json | 36 +++++ .../profiles/BBL/machine/Bambu Lab X1E.json | 12 ++ .../0.06mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../process/0.08mm Extra Fine @BBL X1C.json | 3 +- .../0.08mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../0.10mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/process/0.12mm Fine @BBL X1C.json | 3 +- .../0.12mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../0.14mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/process/0.16mm Optimal @BBL X1C.json | 3 +- .../0.18mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.20mm Bambu Support W @BBL X1C.json | 3 +- .../BBL/process/0.20mm Standard @BBL X1C.json | 3 +- .../BBL/process/0.20mm Strength @BBL X1C.json | 3 +- .../BBL/process/0.24mm Draft @BBL X1C.json | 3 +- .../0.24mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.24mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../process/0.28mm Extra Draft @BBL X1C.json | 3 +- .../0.30mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.30mm Strength @BBL X1C 0.6 nozzle.json | 3 +- .../0.32mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../0.36mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.40mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../0.42mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.48mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../0.56mm Standard @BBL X1C 0.8 nozzle.json | 3 +- 116 files changed, 920 insertions(+), 82 deletions(-) create mode 100644 resources/profiles/BBL/Bambu Lab X1E_cover.png create mode 100644 resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Generic ABS @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Generic ASA @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Generic PC @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PPS @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json create mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json create mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json create mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json create mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E.json diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 3878929990..3031f1ebb7 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.07.00.25", + "version": "01.07.00.26", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ @@ -24,6 +24,10 @@ { "name": "Bambu Lab A1 mini", "sub_path": "machine/Bambu Lab A1 mini.json" + }, + { + "name": "Bambu Lab X1E", + "sub_path": "machine/Bambu Lab X1E.json" } ], "process_list": [ @@ -1317,6 +1321,10 @@ "name": "Bambu PA-CF @BBL P1P", "sub_path": "filament/P1P/Bambu PA-CF @BBL P1P.json" }, + { + "name": "Generic PA-CF @BBL X1E", + "sub_path": "filament/Generic PA-CF @BBL X1E.json" + }, { "name": "Bambu PAHT-CF @BBL X1C", "sub_path": "filament/Bambu PAHT-CF @BBL X1C.json" @@ -1337,6 +1345,10 @@ "name": "Bambu PA6-CF @BBL X1C", "sub_path": "filament/Bambu PA6-CF @BBL X1C.json" }, + { + "name": "Bambu PA6-CF @BBL X1E", + "sub_path": "filament/Bambu PA6-CF @BBL X1E.json" + }, { "name": "Generic HIPS @BBL X1C", "sub_path": "filament/Generic HIPS @BBL X1C.json" @@ -1353,6 +1365,18 @@ "name": "Generic HIPS @BBL A1M 0.2 nozzle", "sub_path": "filament/Generic HIPS @BBL A1M 0.2 nozzle.json" }, + { + "name": "Generic PPS-CF @BBL X1E", + "sub_path": "filament/Generic PPS-CF @BBL X1E.json" + }, + { + "name": "Generic PPS @BBL X1E", + "sub_path": "filament/Generic PPS @BBL X1E.json" + }, + { + "name": "Generic PPA-CF @BBL X1E", + "sub_path": "filament/Generic PPA-CF @BBL X1E.json" + }, { "name": "Generic PPA-CF @BBL X1C", "sub_path": "filament/Generic PPA-CF @BBL X1C.json" @@ -1361,6 +1385,10 @@ "name": "Generic PPA-GF @BBL X1C", "sub_path": "filament/Generic PPA-GF @BBL X1C.json" }, + { + "name": "Generic PPA-GF @BBL X1E", + "sub_path": "filament/Generic PPA-GF @BBL X1E.json" + }, { "name": "PolyTerra PLA @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json" @@ -1433,6 +1461,10 @@ "name": "Bambu PETG-CF @BBL A1M 0.4 nozzle", "sub_path": "filament/Bambu PETG-CF @BBL A1M 0.4 nozzle.json" }, + { + "name": "Bambu PET-CF @BBL X1E", + "sub_path": "filament/Bambu PET-CF @BBL X1E.json" + }, { "name": "PolyLite PETG @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyLite PETG @BBL X1C 0.2 nozzle.json" @@ -1445,6 +1477,30 @@ "name": "PolyLite PETG @BBL A1M 0.2 nozzle", "sub_path": "filament/PolyLite PETG @BBL A1M 0.2 nozzle.json" }, + { + "name": "Bambu ABS @BBL X1E", + "sub_path": "filament/Bambu ABS @BBL X1E.json" + }, + { + "name": "Bambu ABS @BBL X1E 0.2 nozzle", + "sub_path": "filament/Bambu ABS @BBL X1E 0.2 nozzle.json" + }, + { + "name": "Bambu ABS @BBL X1E 0.8 nozzle", + "sub_path": "filament/Bambu ABS @BBL X1E 0.8 nozzle.json" + }, + { + "name": "Generic ABS @BBL X1E", + "sub_path": "filament/Generic ABS @BBL X1E.json" + }, + { + "name": "Generic ABS @BBL X1E 0.2 nozzle", + "sub_path": "filament/Generic ABS @BBL X1E 0.2 nozzle.json" + }, + { + "name": "PolyLite ABS @BBL X1E", + "sub_path": "filament/PolyLite ABS @BBL X1E.json" + }, { "name": "PolyLite ABS @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyLite ABS @BBL X1C 0.2 nozzle.json" @@ -1457,33 +1513,97 @@ "name": "Bambu PC @BBL P1S", "sub_path": "filament/Bambu PC @BBL P1S.json" }, + { + "name": "Bambu PC @BBL X1E", + "sub_path": "filament/Bambu PC @BBL X1E.json" + }, { "name": "Bambu PC @BBL P1S 0.2 nozzle", "sub_path": "filament/Bambu PC @BBL P1S 0.2 nozzle.json" }, + { + "name": "Bambu PC @BBL X1E 0.2 nozzle", + "sub_path": "filament/Bambu PC @BBL X1E 0.2 nozzle.json" + }, { "name": "Bambu PC @BBL P1S 0.8 nozzle", "sub_path": "filament/Bambu PC @BBL P1S 0.8 nozzle.json" }, + { + "name": "Bambu PC @BBL X1E 0.8 nozzle", + "sub_path": "filament/Bambu PC @BBL X1E 0.8 nozzle.json" + }, { "name": "Bambu PC @BBL P1S 0.6 nozzle", "sub_path": "filament/Bambu PC @BBL P1S 0.6 nozzle.json" }, + { + "name": "Bambu PC @BBL X1E 0.6 nozzle", + "sub_path": "filament/Bambu PC @BBL X1E 0.6 nozzle.json" + }, { "name": "Generic PC @BBL P1S 0.2 nozzle", "sub_path": "filament/Generic PC @BBL P1S 0.2 nozzle.json" }, + { + "name": "Generic PC @BBL X1E 0.2 nozzle", + "sub_path": "filament/Generic PC @BBL X1E 0.2 nozzle.json" + }, { "name": "Generic PC @BBL P1S", "sub_path": "filament/Generic PC @BBL P1S.json" }, + { + "name": "Generic PC @BBL X1E", + "sub_path": "filament/Generic PC @BBL X1E.json" + }, + { + "name": "Generic ASA @BBL X1E 0.2 nozzle", + "sub_path": "filament/Generic ASA @BBL X1E 0.2 nozzle.json" + }, + { + "name": "Generic ASA @BBL X1E", + "sub_path": "filament/Generic ASA @BBL X1E.json" + }, + { + "name": "Bambu ASA @BBL X1E", + "sub_path": "filament/Bambu ASA @BBL X1E.json" + }, + { + "name": "Bambu ASA @BBL X1E 0.2 nozzle", + "sub_path": "filament/Bambu ASA @BBL X1E 0.2 nozzle.json" + }, + { + "name": "Bambu ASA @BBL X1E 0.4 nozzle", + "sub_path": "filament/Bambu ASA @BBL X1E 0.4 nozzle.json" + }, { "name": "PolyLite ASA @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyLite ASA @BBL X1C 0.2 nozzle.json" }, + { + "name": "PolyLite ASA @BBL X1E", + "sub_path": "filament/PolyLite ASA @BBL X1E.json" + }, { "name": "PolyLite ASA @BBL P1P 0.2 nozzle", "sub_path": "filament/PolyLite ASA @BBL P1P 0.2 nozzle.json" + }, + { + "name": "Bambu Support G @BBL X1E", + "sub_path": "filament/Bambu Support G @BBL X1E.json" + }, + { + "name": "Bambu PA-CF @BBL X1E", + "sub_path": "filament/Bambu PA-CF @BBL X1E.json" + }, + { + "name": "PolyLite ABS @BBL X1E 0.2 nozzle", + "sub_path": "filament/PolyLite ABS @BBL X1E 0.2 nozzle.json" + }, + { + "name": "PolyLite ASA @BBL X1E 0.2 nozzle", + "sub_path": "filament/PolyLite ASA @BBL X1E 0.2 nozzle.json" } ], "machine_list": [ @@ -1515,6 +1635,10 @@ "name": "Bambu Lab A1 mini 0.4 nozzle", "sub_path": "machine/Bambu Lab A1 mini 0.4 nozzle.json" }, + { + "name": "Bambu Lab X1E 0.4 nozzle", + "sub_path": "machine/Bambu Lab X1E 0.4 nozzle.json" + }, { "name": "Bambu Lab X1 Carbon 0.2 nozzle", "sub_path": "machine/Bambu Lab X1 Carbon 0.2 nozzle.json" @@ -1574,6 +1698,18 @@ { "name": "Bambu Lab A1 mini 0.8 nozzle", "sub_path": "machine/Bambu Lab A1 mini 0.8 nozzle.json" + }, + { + "name": "Bambu Lab X1E 0.2 nozzle", + "sub_path": "machine/Bambu Lab X1E 0.2 nozzle.json" + }, + { + "name": "Bambu Lab X1E 0.6 nozzle", + "sub_path": "machine/Bambu Lab X1E 0.6 nozzle.json" + }, + { + "name": "Bambu Lab X1E 0.8 nozzle", + "sub_path": "machine/Bambu Lab X1E 0.8 nozzle.json" } ] -} \ No newline at end of file +} diff --git a/resources/profiles/BBL/Bambu Lab X1E_cover.png b/resources/profiles/BBL/Bambu Lab X1E_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..1daaf9c3a9c1f1e913d4117af4d9cb4f84c1fd7e GIT binary patch literal 13025 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

?1(QEy&5z$hY?Sf5#QBDW7|)~k zn05fEf0W~p;~~vlp<^K5ymXQ|Y>gs304$(kax4fc{wcy2L6H&mO3x#5 z__z9ile%gBRC}14Z(9Lw7TPWtqp^gBzJ>OgApzt}j;v~zYFS%(Qz*p_R4Y?1>4d~x zdH$b5$!mUI`aMc>vR`}jA$734C9p;Bk*6~ok=LsG@}c% zKwtvz|A}PH!nZ3yi)B*c;8Hb2(7>*KzC&6*nYi;pTLri42;0oHPM2um>g0fs&{;{b zr{NK#SgY){aHYnOHtB0b%raRTI%WqGUyJ7Ns^Q5G9=}qxlBgx`8ckWt z=gF)?!TWlGOv%p$h~A<1bm#?4X%(u;pu zejUFU1OoUm-Z< zbIfuiG28Yd`@J>&v1HxyyO@dyUjmpShTq@R>O=qHb6CRDta&}QG3u)5)Vy7cP&Iq< z?ugM;RuFb7X`aqZp$eB$%KVd*KYGTmXgtN_+CfnSP}f{@7`A`p)O#U+g_(rpl-qSI zCZw|Lj@(iS8h)=I>_(}2Jk0rRY!W$f{R_XQ7g&|tB3{;?+e+nZW7!sOr zo^yNa8^A#`z<1AsBQhM1s`X}Eg-5BHjX8RIO?%!g;?k4PjA|HAlR3GI> zWKVhODF&lrC=;dmPVyd+xaH3`581ED4(udpCs8)ffCCRd3P8Kqh&VlsruBy(ijz!u zy*`8cd?7ML!&^cHq}P{^p(k=%Igu=N*N8~xXX8E0?k~9Bk^e5a)lDw@Q*p}bgWP6e zmG!hl%B#g={A)x)O#E~|N%f@f_`)7LqOU5`0@*0sql!?$SSx`S^<>^q4;o1GejcLZ z6@29iHQNmd6}e+i_b;j3hu*7IK&d-*DRuPwwaMu|etRv->epV7xsX>fE_T;<%t)q$ z`$BqRp-E{^5DO%*KtUL6^8${iB*;Rhl%|LCC&#|ayV+{ZuRYWcA6(dA^>BjcY`cQ> z+bwZuSuFDYRnAhAq9GuZW68@zmQXZ4!g6xz$CE5e#4G}0k8uW92g_O_?@#3Jm^6&i zJjl~os45>Z$A-+4&|4(1lC}-_5LVXlnrz%Gd$tV{6nV(ic}47A-*HTYuaU03Y#!$${4B%m~#QRQH4} zZ_u5F&81imT!>?=s<8SjRC~L=DchpLw{KB~{|ndtKhu_1*paGCE(-r=wypkI(8r*g zFT~Vs>B965lGIQ?m965zbR%)EDcI6C*eI!&N;Bhfp?4lbjHvrBRL;q`0;c-W#F{BIZ5f*n%ycfttW9Mpe<8!lTNMCD&0Pv|7Y^A;NdLlfd8Yb z@SztS+f3q(ykkRtf8JRM&cp^2V0VV$uALo-?_s*G&4F|4Vo7N{61V z6nce9B~gzW|Ille&qGtfSKhr-&JJAt5ab~b#E(zjwJ=UT-D+4V`MRkIw0x&UK{XSe zT6HT0ZwG;}dUi>};n=#w4gqp0{&IgndMTsIwk_HlIO`H3W}xB^yponS`^`7(1WB<_ zh$xiL0)lSS^b&Cw@eq5?Br=ik=QaiVtTi;IPn%xQ?6B<#^@Ah?3v?Uktsa^F7<9V_ z`c+_Xo*F$8NQg9m=;R3UpWDd;kurw9Jfp9_ zEnNQTaJ)M7v$eoscM;l;81qLLViU35W=L|XI#OgsE7Y!9CE@%D9w-GK&R$r=7#D8T z{yIdwGh1fYgZcTe6}xJgUSBRM0Tgl3MytsyZqqN;YBt2e3JYIsgCw literal 0 HcmV?d00001 diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..97c7af9a10 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Bambu ABS @BBL X1E 0.2 nozzle", + "inherits": "Bambu ABS @BBL X1C 0.2 nozzle", + "from": "system", + "setting_id": "GFSB00_05", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json new file mode 100644 index 0000000000..6f5d353ded --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Bambu ABS @BBL X1E 0.8 nozzle", + "inherits": "Bambu ABS @BBL X1C 0.8 nozzle", + "from": "system", + "setting_id": "GFSB00_06", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json new file mode 100644 index 0000000000..e281fa4032 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Bambu ABS @BBL X1E", + "inherits": "Bambu ABS @BBL X1C", + "from": "system", + "setting_id": "GFSB00_04", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..a2a1ee66dd --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Bambu ASA @BBL X1E 0.2 nozzle", + "inherits": "Bambu ASA @BBL X1C 0.2 nozzle", + "from": "system", + "setting_id": "GFSB01_06", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json new file mode 100644 index 0000000000..795272b92d --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Bambu ASA @BBL X1E 0.4 nozzle", + "inherits": "Bambu ASA @BBL X1C 0.4 nozzle", + "from": "system", + "setting_id": "GFSB01_07", + "instantiation": "true", + "chamber_temperatures": [ + "0" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json new file mode 100644 index 0000000000..9d15dcb1c2 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Bambu ASA @BBL X1E", + "inherits": "Bambu ASA @BBL X1C", + "from": "system", + "setting_id": "GFSB01_05", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json new file mode 100644 index 0000000000..56aecc4f50 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Bambu PA-CF @BBL X1E", + "inherits": "Bambu PA-CF @BBL X1C", + "from": "system", + "setting_id": "GFSN03_00", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json new file mode 100644 index 0000000000..98cd1f7621 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Bambu PA6-CF @BBL X1E", + "inherits": "Bambu PA6-CF @base", + "from": "system", + "setting_id": "GFSN05_03", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json index 6d4344b3a7..8e02c61fdb 100644 --- a/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json @@ -17,6 +17,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..a89ee103c4 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Bambu PC @BBL X1E 0.2 nozzle", + "inherits": "Bambu PC @BBL X1C 0.2 nozzle", + "from": "system", + "setting_id": "GFSC00_09", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json new file mode 100644 index 0000000000..3464603199 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Bambu PC @BBL X1E 0.6 nozzle", + "inherits": "Bambu PC @BBL X1C 0.6 nozzle", + "from": "system", + "setting_id": "GFSC00_10", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json new file mode 100644 index 0000000000..1930bde03d --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Bambu PC @BBL X1E 0.8 nozzle", + "inherits": "Bambu PC @BBL X1C 0.8 nozzle", + "from": "system", + "setting_id": "GFSC00_11", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E.json new file mode 100644 index 0000000000..75cdf76d8e --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC @BBL X1E.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Bambu PC @BBL X1E", + "inherits": "Bambu PC @BBL X1C", + "from": "system", + "setting_id": "GFSC00_12", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json new file mode 100644 index 0000000000..44be4cef2c --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Bambu PET-CF @BBL X1E", + "inherits": "Bambu PET-CF @BBL X1C", + "from": "system", + "setting_id": "GFST01_00", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json index f1e94f7f99..c7dd9923cd 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json @@ -12,6 +12,7 @@ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json index e12b65d701..0a24cb5a1a 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json @@ -22,6 +22,8 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json index c40928fb49..d68745bb17 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json @@ -12,6 +12,7 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json index 95c2cc329c..807069d44b 100644 --- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json index 22c4caf109..bbfe1b42e2 100644 --- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json @@ -11,6 +11,8 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json index 5e72c32a96..f3160585a6 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json @@ -17,6 +17,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json index 7dbd894526..ddaeb7a616 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json index 7e98cd452b..d8d8307fc0 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json @@ -10,6 +10,7 @@ ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json index d5cb0165b3..2cb005d6f5 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json @@ -12,6 +12,8 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json index d8e67b7b16..4199fd943d 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json index 724412a738..824e96a5e3 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json index 4764dde452..7e2d1f4fc9 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json @@ -10,6 +10,7 @@ ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json index 0351e674a0..a7e1e76634 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json @@ -12,6 +12,8 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json index 75ef9a15ad..7ed6ab8f3e 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json index 1739a9ebdc..91995ef069 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json index 2ce7e49f44..85c560fcdb 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json index a4ecedcc8a..5d75934310 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json index 7d18fcfe2a..fdc02d06c5 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json index 85fdd47846..eb6f63a2f3 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json index 78626f437c..418cc8f9ca 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json index e9017e3513..3b5c25a41f 100644 --- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json @@ -20,6 +20,8 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json index f22fe330ce..c917e0745a 100644 --- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json @@ -17,6 +17,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json index f963959089..bcf6a2ad8f 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json @@ -17,6 +17,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json index b7a0f007a5..cf064eb4de 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json @@ -17,6 +17,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json index 52fa72bd5b..d136f6380d 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json b/resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json new file mode 100644 index 0000000000..043f8661f7 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Bambu Support G @BBL X1E", + "inherits": "Bambu Support G @BBL X1C", + "from": "system", + "setting_id": "GFSS01_00", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json index b7ecb14a81..1b18733d10 100644 --- a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json @@ -17,6 +17,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json index ebd8d00134..206d74ec83 100644 --- a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json b/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json index 838fc4eb2e..0916bf63a5 100644 --- a/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..217ee39225 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Generic ABS @BBL X1E 0.2 nozzle", + "inherits": "Generic ABS @0.2 nozzle", + "from": "system", + "setting_id": "GFSB99_04", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ABS @BBL X1E.json b/resources/profiles/BBL/filament/Generic ABS @BBL X1E.json new file mode 100644 index 0000000000..f8755a9f65 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic ABS @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic ABS @BBL X1E", + "inherits": "Generic ABS", + "from": "system", + "setting_id": "GFSB99_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..758d7aa64b --- /dev/null +++ b/resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Generic ASA @BBL X1E 0.2 nozzle", + "inherits": "Generic ASA @0.2 nozzle", + "from": "system", + "setting_id": "GFSB98_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ASA @BBL X1E.json b/resources/profiles/BBL/filament/Generic ASA @BBL X1E.json new file mode 100644 index 0000000000..c93c41ffb7 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic ASA @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic ASA @BBL X1E", + "inherits": "Generic ASA", + "from": "system", + "setting_id": "GFSB98_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json index ea504f770a..f4f53fb2d3 100644 --- a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json @@ -12,6 +12,7 @@ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json index cf3280305b..9890712738 100644 --- a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json @@ -17,6 +17,9 @@ "Bambu Lab P1P 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json new file mode 100644 index 0000000000..6c2b48142f --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PA-CF @BBL X1E", + "inherits": "Generic PA-CF", + "from": "system", + "setting_id": "GFSN98_00", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PA.json b/resources/profiles/BBL/filament/Generic PA.json index 2fb23d1705..ac30ee5409 100644 --- a/resources/profiles/BBL/filament/Generic PA.json +++ b/resources/profiles/BBL/filament/Generic PA.json @@ -30,6 +30,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..ed8ebb495e --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Generic PC @BBL X1E 0.2 nozzle", + "inherits": "Generic PC @0.2 nozzle", + "from": "system", + "setting_id": "GFSC99_05", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PC @BBL X1E.json b/resources/profiles/BBL/filament/Generic PC @BBL X1E.json new file mode 100644 index 0000000000..9d8c61a978 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PC @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PC @BBL X1E", + "inherits": "Generic PC", + "from": "system", + "setting_id": "GFSC99_06", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json index ce6645dbf1..0c415d9844 100644 --- a/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json b/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json index cd1ddd9780..c21a0b8934 100644 --- a/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PETG.json b/resources/profiles/BBL/filament/Generic PETG.json index 50827d352f..4052484a56 100644 --- a/resources/profiles/BBL/filament/Generic PETG.json +++ b/resources/profiles/BBL/filament/Generic PETG.json @@ -14,6 +14,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json index 734c0d5faf..d80a580773 100644 --- a/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json @@ -11,7 +11,8 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ], "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}" diff --git a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json index b5312c39f6..51a76c165a 100644 --- a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json index ca0e526bdf..f2e682804f 100644 --- a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json @@ -12,11 +12,14 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", "Bambu Lab X1 0.6 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA Silk.json b/resources/profiles/BBL/filament/Generic PLA Silk.json index 183cea5d65..c1011d708b 100644 --- a/resources/profiles/BBL/filament/Generic PLA Silk.json +++ b/resources/profiles/BBL/filament/Generic PLA Silk.json @@ -20,6 +20,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA-CF.json b/resources/profiles/BBL/filament/Generic PLA-CF.json index d1c4a8e9bd..b4e3affc2c 100644 --- a/resources/profiles/BBL/filament/Generic PLA-CF.json +++ b/resources/profiles/BBL/filament/Generic PLA-CF.json @@ -14,6 +14,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA.json b/resources/profiles/BBL/filament/Generic PLA.json index 800947d83a..70ccc0d984 100644 --- a/resources/profiles/BBL/filament/Generic PLA.json +++ b/resources/profiles/BBL/filament/Generic PLA.json @@ -14,7 +14,10 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "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}" diff --git a/resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json new file mode 100644 index 0000000000..b032627561 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json @@ -0,0 +1,19 @@ +{ + "type": "filament", + "name": "Generic PPA-CF @BBL X1E", + "inherits": "Generic PPA-CF @base", + "from": "system", + "setting_id": "GFSN97_01", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "filament_type": [ + "PPA-CF" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json new file mode 100644 index 0000000000..fec89c9804 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json @@ -0,0 +1,25 @@ +{ + "type": "filament", + "name": "Generic PPA-GF @BBL X1E", + "inherits": "Generic PPA-GF @base", + "from": "system", + "setting_id": "GFSN96_01", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PPA-GF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PPS @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPS @BBL X1E.json new file mode 100644 index 0000000000..9afaeeb5ea --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PPS @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic PPS @BBL X1E", + "inherits": "Generic PPS @base", + "from": "system", + "setting_id": "GFST97_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json new file mode 100644 index 0000000000..929ccff925 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic PPS-CF @BBL X1E", + "inherits": "Generic PPS-CF @base", + "from": "system", + "setting_id": "GFST98_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json index 63afb9af10..6df4727ea0 100644 --- a/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PVA.json b/resources/profiles/BBL/filament/Generic PVA.json index fe621b3df7..7db3aac32b 100644 --- a/resources/profiles/BBL/filament/Generic PVA.json +++ b/resources/profiles/BBL/filament/Generic PVA.json @@ -14,6 +14,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic TPU.json b/resources/profiles/BBL/filament/Generic TPU.json index b8b689644f..273e917570 100644 --- a/resources/profiles/BBL/filament/Generic TPU.json +++ b/resources/profiles/BBL/filament/Generic TPU.json @@ -18,7 +18,10 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >30)||(bed_temperature_initial_layer[current_extruder] >30)}M106 P3 S180\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}" diff --git a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json index 75e17fe8c8..4ffd147c38 100644 --- a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 0.2 nozzle", "Bambu Lab X1 Carbon 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json index 421c52ff84..7d5a7ecd57 100644 --- a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json index d8e4eb5116..80f5acd18e 100644 --- a/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json b/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json index 28e21b831e..15c06a2ca6 100644 --- a/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..ceb5d54a40 --- /dev/null +++ b/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "PolyLite ABS @BBL X1E 0.2 nozzle", + "inherits": "PolyLite ABS @BBL X1C 0.2 nozzle", + "from": "system", + "setting_id": "GFSB60_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json b/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json new file mode 100644 index 0000000000..ae174b951f --- /dev/null +++ b/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite ABS @BBL X1E", + "inherits": "PolyLite ABS @BBL X1C", + "from": "system", + "setting_id": "GFSB60_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..7c9c00acac --- /dev/null +++ b/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyLite ASA @BBL X1E 0.2 nozzle", + "inherits": "PolyLite ASA @BBL X1E", + "from": "system", + "setting_id": "GFSB61_03", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json b/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json new file mode 100644 index 0000000000..2d259d6dc1 --- /dev/null +++ b/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite ASA @BBL X1E", + "inherits": "PolyLite ASA @BBL X1C", + "from": "system", + "setting_id": "GFSB61_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json index 9a58b91bfb..5bf2589627 100644 --- a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json index ea9688b83e..829f11eec3 100644 --- a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json +++ b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json @@ -20,6 +20,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json index 353f029cbc..e8a4157228 100644 --- a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json index e214da24df..c9c27d9143 100644 --- a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json index 123f71d69e..ed5b54fb10 100644 --- a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json index 2925ff8bbf..c3444436a2 100644 --- a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json index 25394b7ff7..b05b011f21 100644 --- a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json index 686d1dd3cb..551e467844 100644 --- a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json +++ b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json new file mode 100644 index 0000000000..ebc0ce597e --- /dev/null +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json @@ -0,0 +1,34 @@ +{ + "type": "machine", + "name": "Bambu Lab X1E 0.2 nozzle", + "inherits": "Bambu Lab X1E 0.4 nozzle", + "from": "system", + "setting_id": "GM025", + "instantiation": "true", + "nozzle_diameter": [ + "0.2" + ], + "printer_model": "Bambu Lab X1E", + "printer_variant": "0.2", + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C 0.2 nozzle" + ], + "default_print_profile": "0.10mm Standard @BBL X1C 0.2 nozzle", + "max_layer_height": [ + "0.14" + ], + "min_layer_height": [ + "0.04" + ], + "nozzle_type": "stainless_steel", + "retraction_length": [ + "0.4" + ], + "upward_compatible_machine": [ + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab P1P 0.2 nozzle", + "Bambu Lab X1 0.2 nozzle", + "Bambu Lab X1 Carbon 0.2 nozzle" + ], + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json new file mode 100644 index 0000000000..1f08b9bb5f --- /dev/null +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json @@ -0,0 +1,39 @@ +{ + "type": "machine", + "name": "Bambu Lab X1E 0.4 nozzle", + "inherits": "fdm_bbl_3dp_001_common", + "from": "system", + "setting_id": "GM026", + "instantiation": "true", + "nozzle_diameter": [ + "0.4" + ], + "printer_model": "Bambu Lab X1E", + "printer_variant": "0.4", + "bed_exclude_area": [ + "0x0", + "18x0", + "18x28", + "0x28" + ], + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C" + ], + "default_print_profile": "0.20mm Standard @BBL X1C", + "extruder_offset": [ + "0x2" + ], + "machine_load_filament_time": "29", + "machine_unload_filament_time": "28", + "scan_first_layer": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "upward_compatible_machine": [ + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle" + ], + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", + "machine_end_gcode": ";===== date: 20230428 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM141 S0 ; turn off chamber \nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X128 Y250 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\n" +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json new file mode 100644 index 0000000000..d5da018423 --- /dev/null +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json @@ -0,0 +1,36 @@ +{ + "type": "machine", + "name": "Bambu Lab X1E 0.6 nozzle", + "inherits": "Bambu Lab X1E 0.4 nozzle", + "from": "system", + "setting_id": "GM027", + "instantiation": "true", + "nozzle_diameter": [ + "0.6" + ], + "printer_model": "Bambu Lab X1E", + "printer_variant": "0.6", + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C" + ], + "default_print_profile": "0.30mm Standard @BBL X1C 0.6 nozzle", + "max_layer_height": [ + "0.42" + ], + "min_layer_height": [ + "0.12" + ], + "retraction_length": [ + "1.4" + ], + "retraction_minimum_travel": [ + "3" + ], + "upward_compatible_machine": [ + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 Carbon 0.6 nozzle" + ], + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json new file mode 100644 index 0000000000..24c677e158 --- /dev/null +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json @@ -0,0 +1,36 @@ +{ + "type": "machine", + "name": "Bambu Lab X1E 0.8 nozzle", + "inherits": "Bambu Lab X1E 0.4 nozzle", + "from": "system", + "setting_id": "GM028", + "instantiation": "true", + "nozzle_diameter": [ + "0.8" + ], + "printer_model": "Bambu Lab X1E", + "printer_variant": "0.8", + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C 0.8 nozzle" + ], + "default_print_profile": "0.40mm Standard @BBL X1C 0.8 nozzle", + "max_layer_height": [ + "0.56" + ], + "min_layer_height": [ + "0.16" + ], + "retract_length_toolchange": [ + "3" + ], + "retraction_length": [ + "3" + ], + "upward_compatible_machine": [ + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab P1P 0.8 nozzle", + "Bambu Lab X1 0.8 nozzle", + "Bambu Lab X1 Carbon 0.8 nozzle" + ], + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E.json b/resources/profiles/BBL/machine/Bambu Lab X1E.json new file mode 100644 index 0000000000..0c7396a5c1 --- /dev/null +++ b/resources/profiles/BBL/machine/Bambu Lab X1E.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Bambu Lab X1E", + "nozzle_diameter": "0.4;0.2;0.6;0.8", + "bed_model": "bbl-3dp-X1.stl", + "bed_texture": "bbl-3dp-logo.svg", + "family": "BBL-3DP", + "machine_tech": "FFF", + "model_id": "C13", + "url": "http://www.bambulab.com/Parameters/printer_model/Bambu Lab X1 Carbon.json", + "default_materials": "Bambu ABS @BBL X1E;Bambu PC @BBL X1E;Generic PLA Silk @BBL X1C;Generic PLA @BBL X1C;Bambu PLA Matte @BBL X1C;Bambu PLA Basic @BBL X1C;Bambu Support W @BBL X1C;Bambu TPU 95A @BBL X1C;PolyLite PLA @BBL X1C;PolyTerra PLA @BBL X1C" +} \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json index f2af60320d..7a9b9bf315 100644 --- a/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json b/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json index 1742e8dc4e..f591722386 100644 --- a/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json +++ b/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json index 9c87571fef..d584de99c7 100644 --- a/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json index d699cb76cf..5fff3ebd87 100644 --- a/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json b/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json index ecfd6a45ec..16c75d85ce 100644 --- a/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json +++ b/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json index 63e4db5ee9..d36cce2026 100644 --- a/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json index cc737b50b4..d486de8697 100644 --- a/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json b/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json index 6f98d9b8cb..2465e38c1d 100644 --- a/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json +++ b/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json index c2ffcfa7df..ad403a0007 100644 --- a/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json b/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json index dbe5144430..0a01e92daa 100644 --- a/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json +++ b/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json @@ -17,6 +17,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } diff --git a/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json b/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json index 8ac7f03d8c..1d05bdfa6f 100644 --- a/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json +++ b/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json b/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json index 06af7e79e0..27b9c03128 100644 --- a/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json +++ b/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json b/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json index 204262d78f..4ef6dae40e 100644 --- a/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json +++ b/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json index c162ab88e8..7870260cab 100644 --- a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json index fa77ea78fd..3a50374efa 100644 --- a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json b/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json index eb00aab2a6..211a43a31e 100644 --- a/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json +++ b/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json index 3ce90daed1..31e55d13fd 100644 --- a/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json @@ -7,6 +7,7 @@ "instantiation": "true", "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json index e61d98d21c..b1a7451a46 100644 --- a/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json @@ -10,6 +10,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json index 9bc34fc8cd..e6cd89b08b 100644 --- a/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json index 4cded0e547..9afac00ad1 100644 --- a/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json index ac53792b5f..b6d0c07917 100644 --- a/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json @@ -7,6 +7,7 @@ "instantiation": "true", "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json index f46d7d641a..a6951dd6bb 100644 --- a/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json index a0cf1b8369..0b259149d0 100644 --- a/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json index 45b1ef9d3c..c5c002865d 100644 --- a/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file From 80a4a5f2c6b1a72bf6dbb1c89e82d436fd3e3d61 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Sun, 24 Sep 2023 21:57:43 +0800 Subject: [PATCH 06/92] ENH: update X1E start gcode 1. Add clog protect for more low temp filament jira: STUDIO-3518 Signed-off-by: xun.zhang Change-Id: I82abd6f84b6c106ecf65c78e87a5e3d65ef30294 --- resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json index ebc0ce597e..358b8494de 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json @@ -30,5 +30,5 @@ "Bambu Lab X1 0.2 nozzle", "Bambu Lab X1 Carbon 0.2 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json index 1f08b9bb5f..7cfa3300c5 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json @@ -34,6 +34,6 @@ "Bambu Lab X1 0.4 nozzle", "Bambu Lab X1 Carbon 0.4 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", "machine_end_gcode": ";===== date: 20230428 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM141 S0 ; turn off chamber \nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X128 Y250 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json index d5da018423..fde3275fdc 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json @@ -32,5 +32,5 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json index 24c677e158..f6514c5eab 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json @@ -32,5 +32,5 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab X1 Carbon 0.8 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file From 76a9c62ad0a3dc1528f19b3e10dfb0c6e9577411 Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Mon, 25 Sep 2023 09:07:18 +0800 Subject: [PATCH 07/92] FIX: missed to delete texture Jira: STUDIO-4574 Change-Id: I8884380158d3d20ce76a07cbcaa8531ab039357b (cherry picked from commit 44f93d083f542d6151f727e98933131cf0fa4463) --- src/slic3r/GUI/PartPlate.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index f7e53b9a40..18d8a986e1 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -5148,8 +5148,10 @@ void PartPlateList::BedTextureInfo::TexturePart::update_buffer() void PartPlateList::BedTextureInfo::TexturePart::reset() { - if (texture) + if (texture) { texture->reset(); + delete texture; + } if (buffer) delete buffer; } From 64ed5c86a5fc898303e8e285cdd4a70ee58f7dcb Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Thu, 7 Sep 2023 18:40:20 +0800 Subject: [PATCH 08/92] FIX: crash when switch device page to cali page Jira: 4358 Change-Id: Ic4d23bd7e31c7419516a3ab55a4d9a2e2072cd47 (cherry picked from commit c74bb0f33870e19f3ae3ea98be06d584c02abe4e) --- src/slic3r/GUI/CalibrationWizardPresetPage.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp index e9a05e05ee..20271e7d04 100644 --- a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp @@ -1535,8 +1535,11 @@ void CalibrationPresetPage::set_cali_method(CalibrationMethod method) m_custom_range_panel->set_titles(titles); wxArrayString values; + ExtruderType extruder_type = ExtruderType::etDirectDrive; Preset* printer_preset = get_printer_preset(curr_obj, get_nozzle_value()); - int extruder_type = printer_preset->config.opt_enum("extruder_type", 0); + if (printer_preset) { + extruder_type = ExtruderType(printer_preset->config.opt_enum("extruder_type", 0)); + } if (extruder_type == ExtruderType::etBowden) { values.push_back(_L("0")); values.push_back(_L("0.5")); From 47d65de12e53fb8fca7c579b8e355991599fc549 Mon Sep 17 00:00:00 2001 From: Stone Li Date: Mon, 25 Sep 2023 14:14:02 +0800 Subject: [PATCH 09/92] ENH: update version to 01.07.07.80 Change-Id: Ic33c4a6566b4820dca7f36100a58551e8c9feb65 --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index 8c04e14247..b9a598eddc 100644 --- a/version.inc +++ b/version.inc @@ -12,4 +12,4 @@ set(BBL_INTERNAL_TESTING "1") endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.07.06.92") +set(SLIC3R_VERSION "01.07.07.80") From 9639f77bab6fe803956733478a45590b9c012ebb Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Mon, 25 Sep 2023 17:16:18 +0800 Subject: [PATCH 10/92] FIX: Manual flowcalibration reports invalid k value Github: 2589 Change-Id: I7870ca89f9c92168c37d2d40e9a3820eb8f24b1b --- src/slic3r/GUI/CalibrationWizardPresetPage.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp index 20271e7d04..8ae078b6b9 100644 --- a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp @@ -1541,13 +1541,13 @@ void CalibrationPresetPage::set_cali_method(CalibrationMethod method) extruder_type = ExtruderType(printer_preset->config.opt_enum("extruder_type", 0)); } if (extruder_type == ExtruderType::etBowden) { - values.push_back(_L("0")); - values.push_back(_L("0.5")); - values.push_back(_L("0.05")); + values.push_back(wxString::Format(wxT("%.0f"), 0)); + values.push_back(wxString::Format(wxT("%.1f"), 0.5)); + values.push_back(wxString::Format(wxT("%.2f"), 0.05)); } else { - values.push_back(_L("0")); - values.push_back(_L("0.05")); - values.push_back(_L("0.005")); + values.push_back(wxString::Format(wxT("%.0f"), 0)); + values.push_back(wxString::Format(wxT("%.2f"), 0.05)); + values.push_back(wxString::Format(wxT("%.3f"), 0.005)); } m_custom_range_panel->set_values(values); From 2e2fe7506cac6778d42c3e96b783947d3fc7dfb6 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Mon, 25 Sep 2023 17:43:32 +0800 Subject: [PATCH 11/92] FIX: add cali translate Jira: XXXX Change-Id: I39bb2be58bea7c3fc631f20464ffcebc3ecde171 --- bbl/i18n/BambuStudio.pot | 14 ++++++++++++-- bbl/i18n/de/BambuStudio_de.po | 19 ++++++++++++++++--- bbl/i18n/en/BambuStudio_en.po | 19 ++++++++++++++++--- bbl/i18n/es/BambuStudio_es.po | 19 ++++++++++++++++--- bbl/i18n/fr/BambuStudio_fr.po | 19 ++++++++++++++++--- bbl/i18n/hu/BambuStudio_hu.po | 19 ++++++++++++++++--- bbl/i18n/it/BambuStudio_it.po | 19 ++++++++++++++++--- bbl/i18n/ja/BambuStudio_ja.po | 19 ++++++++++++++++--- bbl/i18n/ko/BambuStudio_ko.po | 19 ++++++++++++++++--- bbl/i18n/nl/BambuStudio_nl.po | 19 ++++++++++++++++--- bbl/i18n/sv/BambuStudio_sv.po | 19 ++++++++++++++++--- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 19 ++++++++++++++++--- resources/i18n/de/BambuStudio.mo | Bin 296148 -> 296030 bytes resources/i18n/en/BambuStudio.mo | Bin 271555 -> 271443 bytes resources/i18n/es/BambuStudio.mo | Bin 292895 -> 292774 bytes resources/i18n/fr/BambuStudio.mo | Bin 302282 -> 302167 bytes resources/i18n/hu/BambuStudio.mo | Bin 296818 -> 296697 bytes resources/i18n/it/BambuStudio.mo | Bin 290737 -> 290622 bytes resources/i18n/ja/BambuStudio.mo | Bin 280019 -> 279907 bytes resources/i18n/ko/BambuStudio.mo | Bin 290854 -> 290790 bytes resources/i18n/nl/BambuStudio.mo | Bin 291218 -> 291104 bytes resources/i18n/sv/BambuStudio.mo | Bin 280394 -> 280282 bytes resources/i18n/zh_cn/BambuStudio.mo | Bin 266351 -> 266720 bytes src/slic3r/GUI/DeviceManager.cpp | 11 ++++++++++- 24 files changed, 198 insertions(+), 36 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 84e839f5a6..1e5638bf88 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2530,7 +2530,17 @@ msgstr "" msgid "Failed to start printing job" msgstr "" -msgid "Invalid nozzle diameter" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" msgstr "" msgid "Calibration error" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 4aa7ecafb3..e2c9b8482b 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2776,8 +2776,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "Druckauftrag konnte nicht gestartet werden" -msgid "Invalid nozzle diameter" -msgstr "Ungültiger Düsendurchmesser" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" +msgstr "" msgid "Calibration error" msgstr "Kalibrierungsfehler" @@ -11112,6 +11122,9 @@ msgstr "" "Wussten Sie, dass Sie die Festigkeit des Modells durch mehr Wandlinien und " "eine höhere Dichte der Füllung verbessern können?" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "Ungültiger Düsendurchmesser" + #~ msgid "Bamabu Engineering Plate" #~ msgstr "Bambu Engineering Plate" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index 9594939a56..c8fa9ef3cb 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2701,8 +2701,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "Failed to start print job" -msgid "Invalid nozzle diameter" -msgstr "Invalid nozzle diameter" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" +msgstr "" msgid "Calibration error" msgstr "Calibration error" @@ -10807,6 +10817,9 @@ msgstr "" "Did you know that you can use more wall loops and higher sparse infill " "density to improve the strength of the model?" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "Invalid nozzle diameter" + #~ msgid "Bamabu Engineering Plate" #~ msgstr "Bambu Engineering Plate" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index 4cf0c9004f..0b00d45d97 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2767,8 +2767,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "No se pudo iniciar la impresión" -msgid "Invalid nozzle diameter" -msgstr "Diámetro de boquilla no válido" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" +msgstr "" msgid "Calibration error" msgstr "Error de calibración" @@ -11019,6 +11029,9 @@ msgstr "" "¿Sabía que puede utilizar más bucles de pared y una densidad de relleno " "dispersa más alta para mejorar la resistencia del modelo?" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "Diámetro de boquilla no válido" + #~ msgid "Bamabu Engineering Plate" #~ msgstr "Placa de Ingenieria Bambu" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 865d70873e..8a49181ff1 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2758,8 +2758,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "Échec du lancement de la tâche d'impression" -msgid "Invalid nozzle diameter" -msgstr "Diamètre de buse invalide" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" +msgstr "" msgid "Calibration error" msgstr "Erreur de calibration" @@ -11116,6 +11126,9 @@ msgstr "" "Saviez-vous que vous pouvez définir un plus grand nombre de périmètre et une " "densité de remplissage plus élevée pour améliorer la résistance du modèle ?" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "Diamètre de buse invalide" + #~ msgid "Bamabu Engineering Plate" #~ msgstr "Plaque Engineering Bambu" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index 55203a4e4f..1236a8c46e 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2741,8 +2741,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "Nem sikerült elindítani a nyomtatási feladatot" -msgid "Invalid nozzle diameter" -msgstr "Érvénytelen fúvóka átmérő" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" +msgstr "" msgid "Calibration error" msgstr "Kalibrációs hiba" @@ -10955,6 +10965,9 @@ msgstr "" "Tudtad, hogy több fal vagy nagyobb kitöltés használatával javíthatod a " "modell szilárdságát?" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "Érvénytelen fúvóka átmérő" + #~ msgid "Bamabu Engineering Plate" #~ msgstr "Bambu Engineering Plate" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index e8fb9665ba..290bd92482 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2748,8 +2748,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "Impossibile avviare il processo di stampa" -msgid "Invalid nozzle diameter" -msgstr "Diametro nozzle non valido" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" +msgstr "" msgid "Calibration error" msgstr "Errore di calibrazione" @@ -11030,6 +11040,9 @@ msgstr "" "Sapevate che è possibile utilizzare un maggior numero di anelli a parete e " "una maggiore densità riempimento per migliorare la resistenza del modello?" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "Diametro nozzle non valido" + #~ msgid "Bamabu Engineering Plate" #~ msgstr "Bambu Engineering Plate" diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index 9780d53a4e..a565cca9fb 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2640,8 +2640,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "造形タスクを開始できませんでした" -msgid "Invalid nozzle diameter" -msgstr "Invalid nozzle diameter" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" +msgstr "" msgid "Calibration error" msgstr "Calibration error" @@ -10488,6 +10498,9 @@ msgstr "" "強度の向上\n" "壁面層数やインフィルの充填密度を増やして造形強度を向上できます。" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "Invalid nozzle diameter" + #~ msgid "Bamabu Engineering Plate" #~ msgstr "Bambu エンジニアリングプレート" diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index 9a0b818365..33f1ab474d 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2674,8 +2674,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "출력 작업을 시작하지 못했습니다." -msgid "Invalid nozzle diameter" -msgstr "Invalid nozzle diameter" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" +msgstr "" msgid "Calibration error" msgstr "Calibration error" @@ -10647,6 +10657,9 @@ msgstr "" "더 많은 벽 루프와 더 높은 내부채움 밀도를 사용하여 모델의 강도를 높일 수 있다" "는 사실을 알고 계셨습니까?" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "Invalid nozzle diameter" + #~ msgid "Bamabu Engineering Plate" #~ msgstr "Bambu Engineering Plate" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 022f7420ec..7358dd8684 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2763,8 +2763,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "Het starten van de printopdracht is mislukt" -msgid "Invalid nozzle diameter" -msgstr "Ongeldige nozzle diameter" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" +msgstr "" msgid "Calibration error" msgstr "Kalibratiefout" @@ -11078,6 +11088,9 @@ msgstr "" "Wist je dat je meer wandlussen en een hogere dunne invuldichtheid kunt " "gebruiken om de sterkte van het model te verbeteren?" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "Ongeldige nozzle diameter" + #~ msgid "Bamabu Engineering Plate" #~ msgstr "Bambu Engineering (technische) plate" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 88aed21476..100ebd5c2e 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2718,8 +2718,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "Det gick inte att starta utskriftsjobbet" -msgid "Invalid nozzle diameter" -msgstr "Ogiltig nozzle diameter" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "" + +msgid "Current flowrate cali param is invalid" +msgstr "" + +msgid "Selected diameter and machine diameter do not match" +msgstr "" + +msgid "Failed to generate cali gcode" +msgstr "" msgid "Calibration error" msgstr "Fel vid kalibrering" @@ -10845,6 +10855,9 @@ msgstr "" "Visste du att du kan använda fler väggslingor och högre gles fyllningstäthet " "för att förbättra modellens styrka?" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "Ogiltig nozzle diameter" + #~ msgid "Bamabu Engineering Plate" #~ msgstr "Bambu Engineering Plate" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index a61284067e..7e46b5464e 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-21 10:27+0800\n" +"POT-Creation-Date: 2023-09-25 17:40+0800\n" "PO-Revision-Date: 2023-09-18 09:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -2617,8 +2617,18 @@ msgstr "" msgid "Failed to start printing job" msgstr "发起打印任务失败" -msgid "Invalid nozzle diameter" -msgstr "非法喷嘴口径" +msgid "" +"This calibration does not support the currently selected nozzle diameter" +msgstr "该标定不支持当前选中喷嘴直径" + +msgid "Current flowrate cali param is invalid" +msgstr "当前流量标定参数非法" + +msgid "Selected diameter and machine diameter do not match" +msgstr "选择的直径和机器直径不匹配" + +msgid "Failed to generate cali gcode" +msgstr "生成标定GCode失败" msgid "Calibration error" msgstr "校准错误" @@ -10290,6 +10300,9 @@ msgstr "" "提高强度\n" "你知道吗?你可以使用更多的墙层数和更高的疏散填充密度来提高模型的强度。" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "非法喷嘴口径" + #~ msgid "" #~ "The current chamber temperature or the target chamber temperature exceeds " #~ "45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" diff --git a/resources/i18n/de/BambuStudio.mo b/resources/i18n/de/BambuStudio.mo index 357e659dfeab6ecaf7bc5005b982f5b9aa2351b7..bc6146d9c10a280cc365af6f6f7fe2f0240028d8 100644 GIT binary patch delta 58944 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 H=8w-LNj0m33pV3OF6q?fn|u z3w{T6B({5LK!@xESQ)$l>J+3I;GU~Op!3`SYUl02AYgY;S9ecP7v(fijh_K^Zf}5U z>-p$0pC{{AZy5z~NyU`bFrZ3XID=mhG>^Z|7@oC9?( z--0^lA3!zs8PwGsW{A6y1fbTb4fC77GN>cy8uvf%xO%FgI3Ld*FgEM9Y7rYvC)HW& zf5VAPH@)%YV!Ji*jRJ3)5(mYxJ6r@;nLQ`JApFJ519Smlr5Q0zHyW`bXy4TP?>QOI z5YPqUvl9sG;a7)LyYEP`wieW_lgj385c!APkE|0?=pK>qH8^G%l<6bi1xg?(n| zC0qe;F}y+ey`doJ0^G|Y5k;QT;lBhOgFKy`HpD*?o-D4;4VD{zXL!qOck*S2w;6s? zVk?bz0bd6=6~PrWnh*U6mXk%V|4tLQV~0^9E17SkSOs4b_zIKA|FG#Pfd3`y3D(RO za`jH=L=%hzMqtFF2oDvWf4~iJ#)Gon%=h6hK~86UYxVehn!sR+Wu)spCM@z+c9NNd z{fxAb3z$e1ILqL2Av>0c+!?^;dwAry)F; z;3Q+8ponZI{%!8mvkQJFI8|78WS-l^dRXJ*jn@}{ZqwP#20r1R4gUzZkMV}htOD6T zZ!A-2vK3oJ(gT9c85tGCrs3;M0sTKfQxThsuQFmQ$cc#W3`bxRSdJsMjJ!pl&pt5O zhL0COo*Fb&o-vR08}c!)=PZi=g3l2C%6tSP5P=_v*3_Y8+_C1GlN=J>W8#a*`9;iU zd{E*^&3XsIq2OO){+gx>u|5R$1P8-e0`37*!1*5B**_0Hh<2oKeTXXv`fMX2J#5i{ z#0GG}6Az@3d~jcqSBRZYgp-)~O#EwTOb@x&;dN&1v!LWoK(82ivUSW8TYXOmgvKdI z!gh#!jN{l?#Q$qC%r^>7SNJE{Ng71kKy1fIi`G?|kkzB9f843_vm|`IOClRg%&A`% zr(Ubc(&5a;+Gk@}@1i08{-mdwUo-nCc!v=S|G$v;P*Be!!QlSaDzmW_Xl|sjFytJ7 zGY8$sA*eqDr|dZ-SptNbLjGVokZ%c`O={A(^6AcLVw^jyCot~~=Oow`JWHV*%+HZi zjd=mnA8R>t;W+!h%dQ?+a00F%BdX(kUj z`XytYX^kiLgxo>IeU^mc`N=KEQ7bH`j{j{OmkHFf&Q{tkdstDuvRL6K;u9-E{4+WF z`@gbtaBef2q8E_@bJ0lyr#!Jn@PeQdz!*!6zu4rd1=l(MZz1lbTfK2O-ikjVDL=b9 zs6ldF;861Z%zBL*fy-7M6w)W9xk(-1?aP&Sn@4xvX zhBFEDrqksl547S6Eys7v*8Kmop0fyd!k-$!vdp*Qt6)c<8coi|mkvw{CkVMc;T2-6 zhm*vP$UQy(A7t?Bm?tuUBM^eIi$^5Ox|rZm#H+%INnBP7KcBdIw&7bxqq2e&89;7H zID8W4*nNK9r&vpTdBH63Wv>_);W+2N5)FJN7!FbW8I8?|q-JcvKb&!f;-$6Zt$k87!XohYSYsg!fNn)IL5Gv0&!uk+n9^``v$|@mVl_c3m z{MCpbV4a5eZ`R4k4+R#$-;Bb`S<8~aiA$5R2h8W#?mIF6#HhjFpYsG7L8Ru0l%R>c zjBE(?CUy|tFUUGl*O(s#cUgguaI(|f0Nd>s^7ulO=QzA3U~xt)#vbB%(0Ti4=f64PvZjo%>|hci*YWXoz4N=8{$q-)kn4lBjhjqOv77C1x`CGv&t*-tXC4f{ zY!SZqYs$R8nt{)kdrY4C@Ke#0 zY&L??@m(M%3jXvo^qT@c(|ZJM(9maqVTmPyv)5{Q*RYU{S3%|7^H=*kUGR6)`!D|zJb_?G z9N`ct>+(DsSiiUC`^ zm4Lezy+(Tc|4E<&fxR@6!tbyhL{t_J%u9l7IrBq^b^w=yhs|G&{OkB4S>aUZq-M;) zKh&B!#(F%Q8sJ}wFT~$VuVNxtQVR+^Az=gS`4GZF7!Ud^sNY<^SQLMP*bH(G(@YuW zTN%B`+su)P3%@$phWHzue{}oPKsLBD-~{0JKEg4ag{&X*!FI77L1+wX*+Ym!jI#y7 zb`%bWf2{33F}{h2?r_*VV1beG@fn6=OH4& z1%GGKbJU7Sr#+)8LKBEBWR!y(l=w?Tt~0+voIexlx#zbt<;iA}=d&cXQ{Or({LJWu z_tnz#Pi;nIh<|YY0mC2=kDc|TSZ91u?a&uyR}nY@n;H7X#7)*Y{2J&*W3u(;iw@@m zT3_Jz#XpU88uWN4m;V8qU*X_;L-}=B1oCv8*BA{T%XUHb*(f?cMbYYv^M1Pw$+`}t z1Zc%&o(}OG7Vm&RfQIfX#%PZ}7&s9hZ>oDe6A|sk4y!|)N>Tl}tQvmeg%FHDLMR%^ z4`(5X)ya9z*o(i3?V6BhwBP&zaal8Ppr779=q+WeVrQS^W{8Fa>2>gu3bM#s>{xW~8zrV1W zNgR%VKF6EOx|Ls%j1-82=rTXy8Md35R*CN_d78p|%81B#>z99)qIrnlL${8d%4cv+ zS+2J(h12*Ywyx) zBHBjk!ux1VO(QpoovvKuWDQe+51kOmNYNyWuQ=11m_%Ax;&ft%Epak}5%J%!Bf&>N zo)FAef-xt5xF6U1j@flT6~18nf4jpxJMn(z(Z^M?_*9UsW(#x4jm|m}+#}4tQ1Js} zAyrb4Ta=vo%v-@f3_ljJv0yZ}j@S8|vn?%Nwe}rleq@Gl74o+K_=m85hkq-anj8*& z2WJ@TuK34O@Dc?Rfqy8nfbkvP4SXx$Zoprec_tdJ=4^s<8k)ceoD=Bs9t6NM0H4oB zBkr@`%v->{$S8xjY?ce2+xV*B8_aq?&74K!JYp}&sX(z0_>#ksU1lBx|6skaN$-Xf@ zQ|JOYgW)znXD;(w= zzXGEqu}q9uXf!ZV28tXaKQ!7Ityp{0;E#^~-!AGk^%_L_LflT^5yIiE5wU7AUr1t9 z^YO)C&rgJF5KB%@3dRe3W%0>!TamQP>!SCKjqIbDhs^83O~#Nd&{4)(>TgLF|a+K&-#b9RYsKXPw;^ z$%scqV;{P*O_qNJUwXZ#qCd)67-66FF`{oRj7QQ)^B=a|&!fS4wv(#XKxjlW;*V|q zMKmpYPR=8%v5il@(RNL5wi?YvB*WNJQ)`>yBvOW1f@w4Asz8pAexH2xnm4gJ4HQ3$RWJAs_Q= zjJw3rQFIJB--+E~eSqdj^%TJ07fvRItTnNb)_7yMJ}W@+Yv?y2b_wSV_>C0g3j&@! z1P+oIo1)nuX0ao12uwgiZ?HTG_pAsXi+avj5otUlXB3U}Q%7b8z-N;SZHek_Mnsn0 zvKz3jPsUSx*T~q!JSB>uiT7rn$J#E&mvg7C0)x(5(`FNMZfA^I{rY1 zslwPZcXuPNMRYyEq9mqcULH~u61OuShEO!b(;`;D_#2t8wXK%7!ujzHW5|9H>xEuY zas!FKW4+Ectau!~a{I#Wmf$=LX$Qrsn_wc=x5P5*j=*LUK8vpx^G!4+nL8Oli`eS zYJgouf>Q&m1g8_+Wi&9B^#DXmu#RUtuSz33SU)E>2i#@kHD@i$16~AYgtqga+OObM zgxWy324N~VlEj0|N7C&L=8GvXmuAA)E*{~(!+az@*=5E#D-<68BGYaRFAlMAn!s<$H zOlu}5{5eX*7SVvLJ+=D7FTu#6SME<4tq@8HAs5aJ%w-jrhsF1WQHz4d5N?fs3;gcH zPTMXU5|bsvSBV(=aO?u{Gb~D5+}sZQpux;=y&;+0g18*i9aiX9=v66y!_J-_^tP9xrwW_m)b zV?~$HOexz^SldYz;zh{|&w7#_g-!4?(#R0gOHa{KRA>oigjWHL9&ieo)-Xq(^M40| zEDS=A>9{IGmWQP7km3-pMAC2k-x*OTaEwNC;19<-rz3=)c`inL*7wZkD)I6c{&M(L zh*v>tDS@!~cIo{{SqOHtgzj%J&qskk6ZlFKpIKifIlGPw>wg%ss&KmE4^2D|xw7J{ zWqpZ-!}o_Gp&7D!#CkDLW=AY0HN8QtP%#tzN<)3p5W7xQ!QH-KgIDkC&qHKs^M9BpZ4H|zM!=aNv$c9Wfi z^9UuNKucoBm?vUBmI9lZ$HW(mbtBsZF3)YW&fqV`ycb$)EVc!$aJGp9dgp!|#s5MY z10kQ0N|77`-+N+*7_n&NJtCh--cHf`%wymi#ahORda~ZRO9kmNj;17}V%;3E!2~bTy}w<@zW{#>y6;ORc%##IAfYHSwZXtV;0FL5Xw(8sqhy>xTVFjFz-uqE8zS^V2Uf^>1GEd zK8?jTUnk}>(5VbxR?IXOk$c5_fAxw#F^&MbY(nB0J5zN`#7%X7=E8Rru4CX$#$xi? z)6`$)t!($k@C33RZ94IA7DRiV1qXoBh)vSV(mW*J09S#sc8IQ{`@78B({)D*bYLw@ zXS+CJJ2(KhksHz<$nk7PBfo8;xas91{}R6Qj0kXwT6_n7?{O27#$3N$moh|Pgtg<5Nz zJkEb?1Y27nB~>Q5DhVy{?_?g$j>=6_jKR7k{<<`K5nf@$5?X#0V#V;wUXf2dPeJ0c zM=WB|)|}0*c)k7t93H;7kf>r&!oVgpwk%kAx>+8Q1NJ$=qjG z;4EN~h{L%Qo@@(Eo~EgNjB-|V6gg4Z*cO-K`PZ%K_0*?}Tab?8NMq!UU>rslgceX> z20|k&mY8`cgk%qh|3)~JT?6uku;zNAHwk|!+gv8NJ{xIAYP^0ID~Pu(q=pdYvxDNS zS2JG$4mYuc6m3r|3{4!Rp~*B5$pn|Nehc>-8vF3gWCXGfZMmbE$Fzcd(8)}EGQObj zf9n4CSyvnbC~(?#7mb2-37)|3vl94rGSZOOi~?`qf3iZi@XPM7o=8p%8rx67ZTN#w zbUFTo#ETL;MJzWl=lnZa_TvkJGnkhrSePQiA;-4ZUDksb!D+BH=(EGtKw*j`vr`e% znh_^IzNzSxCLV&q!>MtKIp+0@K`*{hZ#{}|S5$jt`EvqpZBbDo-sX3^miL_d=- z%$gXC&`=7*VZ@%iaeGwnQ&P*ptWM9hO=2Y(OOW}7f0^oFS6D~4HndKQ;xKX>l9Q74 z7jPieLXh(p`~klNzO!icN84v@$%#PhE*%WjcWu%!`GDAT0t*sDsUL2T!_3Q;RPF8V}ipd zJcp*wkt0jNSWM1s#$33vg2Z3Ki(t(qCw~T;`^q{8{!VuAGw69Vk|hl{oB}~M3-VOP z3kts^R*?o9*`=d+ew!zU)7x*i`)RBg#S&2@1NhW0C%iR1R06We-|t8CZlz))D!fK1 zAz7nXue5FkQB`)|RJwC$9>QyE{^BUUfL{&H8*mX7^TC}@M;ENCnB+7h-o@5osj(X0 zcKAc|iS%~FMw;Mv#BUiZq7%%o?pi><7LHjCz*bj@T%) z?ov$FnY=$XUkKJB)=uZ3gE>EwyqfMN*m?&A){|5N@!HH66W?TFyg1h0QW<<2+l3T$u*2pLLIhi*FKcaDnya}vRP}92{XAhho?NHVx(1rOHf(gL< z#O5HF-$dOOc+-@46ymcOHxR5u-Yhsb@ynJmZ^Y#$X)i0daA(TKw z_S2H5v8y4h%OlXhcBOb9u9KVy%*NMI4(vSKdE|{_3_vF8}dNy$Bo zp1)1hUxaF6&JhT8pv#3;a5w^&88eADA$fsar0Woy#ykQ$&SuG-0tn`l;KA_C!9CuBVc><4~F zqy^&-+$G>l8VHKUYx0}HX>LU`;NO9Md~${|FTMGBpSSC{dL`FMl|fT?LB6Y=fn9Jj))iM7V>vy;UBVS|lv1o3^YahSzOobxI8 z&JrIZE(=3)5cBOs+}|d{kAW{1-25~U5%JaRdOk&Ewa5zx=Q7%f@s&iYHM}gQS6`o= z{@0#CScqV6NWl@jhCoULma=|Bu~)X6lK8*k_t|=zbcE9x|0}REMgP!{Y#{s>mKy@y z$mrG8>!>8=oJC>TZPx4YH*uHF&$}f2Mj$w``tWuj8o<22L>O0DXJ@^e5s&6uP&h3b zt;l+zi=Hum;8cp^?7KJDC3-vAy_Z zvl;CXj%~4;a37^$qV6se6+GuxT``|j9Z)Qp)B4&kin*GO~{ zR#7}I-PT4hHzP6P4dHFHg6WC3upLTJuex4RWF@(y;nW}&oOyKPk7IqB8rMa}yyIAu zq(BBEltsYbdQhw@@rdA0P<9;dad=HxXExt2{Lg4k))-uC^L`W@hc7DYEabgsRHvcE zH2Ff`NP39yY!(R-{DoLIYoNFt_8!F6B9Iy(eb=Bg4X;P!Eq;G1i0DPM=Am((`9g-z zqWWzrGx=ADWkv6kzL8jygmbow@O1eR@qrXdV+D>uPReNOS8yQ7vgUAy;NOR+&%U7* z1HY_{ZDK$3r|>qwyFuaA$N6 zI)Ht#{!8?a=wFzR{uBREn2!05rb3dKjRUFQgAVMwc>Q4X5EkY75p=-+U?vtg7V1UN zfmB8ZP!pYTGrSr5qU~epjkd=j1UCuk&gq5T{`N&HJv_=^h{;|0HkEFO&}<4ZUX zf5*Xi=kJL`PTY<8a32=N8$@9@rHS4LIaD? z&^(9U_!3sY*Rec)gVpdfIkMIc$K9&xI_%3R_WMflcrST#Cj1W^3VVSPyUehaH12pxd(D`LKJs zUsu3--npSQ}5G110Z3w8moT;ei2YHV;9weGEFlsj)sAD^p*9HSzUW{}C%t&zTVh zR2AK>4baFnM-RGQ=*0SGB-0Xe$hIL|D8+?CIm5{Ri{{G}MqU!ljVkEOnxVPS317j< z=!~l6PD{Nznxg}`2)*wH9DvKw=TD&nNF?)w2lL`Y>SfU!xDS2VEW*r;HL+*|0mu?_8TFB-`s$iS0{a}=CW!9wAI zB4}tTqHA6g9eGQ1pqp&H=v=~jE-;z+VF0)p&!uuj>Y<)XoKmcLIiT5?G=vo zGO=Dc*6ZSEK5rJUKT(SP??|8Ff-`$Pey|lC$d_ox`_Z-j1&vUmbXe58CmSXuCI|{obFXP=mq~_%wcq?%%QH!kW*)Z0gI=4!59@_yir$4``&0 zqr2lDG#T@j4@*%LU9$3Ma@W9`xDYSIr!im*b;o$7j&B{uiA= zM#a!^$!K*<=4{Sk0eHvZk!r5U-YG7~b zEz!?s#p_G4Hube=gL~uWf1^oTqEc9ra_E4Yp^@u_jq!3E>HdF+LLDxgie^_1GwX*& z;tF(Tp(R{x9^kn_eX?@hs*=2k1) z6B@D4YqI|>e9Z;3crT{*IXd!0tdx~+zz9ZW$FoV(C0pNl5xV(f`ept*54 z)^pSj6YY;)A6GjWLU9ilx^dw-w1eN!{hG5*Sj%$gz^b4#Z;sbv5A=)3n>Z#tk@y~) zVE6i=om(4*wSNe0ZzZOVcC??JNeaCv{EY73CXK>OI-wEhi_UOdygmg@t|U5;yYVnx&R7nHWyN5l%!yawq!WqHsgvarA-b(HU<> zljIGlQY^nnM^ zhMtU{KOgHKqWk?TbU*(OJ-RbnhLf{88j)Gi2hb#a6x~fLu%P?@WeQ{QU35)qwhA3K zM027Y8i77&@{B_F@vZ2<-oWPgA$oHDi!Mot)?s1;(a2na4&ZV$(qk}b!?#h;1!#lM zM_)%D*n(#77wExs2%SNhHsSti(Z=Y()B!!3r=t;Bg>LWd=x*7KP4Ijh_P<%#sBOrB zzUWao0^Ofeunx{gBl9l$^TJlFg*n@Wfiy&Os4Y5y0ny9RfsaGi{0?-<9*UnYX~+Jz z;b*v@YtRvHKtuE$`aS+6-i?LYhlU=(In-C9=SI^Gq2pW8P~VHL{ex(SOV9x>$BS`2 z8rgiwj%kUHDU?7*{v#UN6X<~cM%Of>Q#dEeqSr@bJ)DSD@d+G=@8e}yqH|he1YVCO z@eXwR?#Isf2bxRC=3T4e={@KW;;} z<;C5@wj6>+U^tosW1`cL0VNanP_W}A=-O{WBd{~p_n~jAQ<#M%dW8F$qciJ`hWawJ z@>OhI}#B zz?aa0e1qfh1bY9_-XTKc(Sb}y&y9sR7U zYpGv{4(xk$|Ne~5xI+K1#y!x1T!=qpS6K8w!$f{Vg7E{8^>9~!A)(MjliGtkh_McYk2Nue}_ zm(VX9+t9W832o>fG@J8Y975IrO{V_n0LG#B--X`4B!0dc-Olf07Jh>+$yuz71qP*Z zC7EbQ!2$F{M>Y!0i7DuaXQQEe2p#cbXsDl$pT8O1g5LK98u~qG1P-A0|A{`I*#ae;%NF$oTOj_gD(x=)9=HE)Hh*u{2i~tGDE_Ql4uC$qaCbA8{QrL3;R(oeOdU? zZVcW?eKpp{3PZzE_rs(Y##0!GkD(#_6Ag3(Z|vDSE5V1W*Gb52Hxbtbo>w}VaLnEQmjRjY%`h@-=X{Xm-us}dV z_#B$eucHlqiY~!EbcTtMVE}p2cS{oM;!HG`UO|)b8$U2KhvS8l=mUvSp@SUgnOz1u z;$ZX$eH5?6Rp>x+UlkfIkGrUMLX)-B)uH{0=+f0dBiw6kMo<`yj(jURfG^Q) z`E{(HMA!Coyq+;SEtS>f(cRDvef~Byf_LN6G`^UiYu#>4_`D}JrG62z3zCU@Lm{yY zz3~lns)19=0d~fc?*HELgHdS6C!%Y54>rLkFf}vuB-fu3MH(FTvB?fi$%tndxt z`BKs5Xap`npBomPas&I{{XK^ZCeKQAq-)SDe-q8tt!Pesg?6+D?dVwa5AC5N#d@e=nN3aprpYDF; zWW`>%9`n&t+AR#2?O5Qpw8Si~m%lwsXgR(@{WEl+ce2zDd?6ZFGst;Q*tg}-nKwZP(l7cUayJGunF4Ecx;PH(V2da zF6{|)X>;BmCR7}KzV`jBtut)K1xMZo4e1E9qg&AvZywsfvuMMwV>WI_XL<~6Cu2^C zTxoRIG)LR(66+(-$X$zdaYmAY4Zn=d@m;jRGx2(%xuL@f*oy1*(U6YAEPMgn^s02ZT5oqUl(Lke%<#rO-_K&J;n!voO)j*j&kqxVLih@Y=T zx7Q|gAluOnzKs5Wo)5pE?dN|mbsi)WNIP|GPhD#v2|(L$($j*gLU) z2)*wQbo=FfBt)bvHl|)TdL=fcz7TEaV>EK#VoN-VMySf-V4cP6e?!rP3$AS!bflM} z+i)V<&}?+yK8y}vHCDto(3$T>pZ^^Van46W=r2H*rUcq?7MfEv(4}miq~HL0p$%My z-Z&9$Xe#EwJJEsM9bJI+s4qjmpnQSezZ327hgkm^eI1`d+dYGJ{2!+Fe~~3&L|Nzz z>!S^HL2u}XJ}?YN;3Q0Sh^Y?I=YGH}JcV7b_+ugTm*EiV6VQl$h)(2tT<81$7zG=6 z>hZKh2YeO%vUwVfOra-&6{Gc|?a`d*9~~XNExG_r+UK!0eugIJIjn;fo{aDR-V|zZ zVLbZ4g6M|mp6GeZ;`6Mh()b%OY(sP{+bj+Cj$RfWiymatq7O%3if+eh?*D@nI%2+M zAw+%AnO_~fF*+-{5C`%3O7tA~8x3jt)4@XMyQCbtlozA-T@k$+U5W{qbS-Db3-_QM zFGctF%Xm3{f-X_5=z8>= zIgq4alKh3vq}b|kpp-{v)C`@`0QA1g&;#g3^#0jsWFA28TY@g>3Ur{W(feOSm*gF6 zj$fgXOy+wwyiO~kAsK+}@ltgEFUDTD3Z3b1=(bBd7aAyu4xl#rT5X07q*J`!2YpEm zMssE=x&-r)0VWeGD5P`YS?q%^#2fxXLzM6N&_Oo3f9s%0IslEp2=oXZi+;JBfew5% zIgr_zo8K+@@nX?68c;d^tle`67)dZ9f%HWG}ggsug3TPN-j9F*U%7cM1KPM2>as^ zY=SLb3(0gX`cv&*^uBXg4NI*Lzj|$tS=8sDxw8hHz^mv<`5rpZgUR^8NpxiAqlGqv zdN%rCWAuRzXfE`LpASc8c0C%2S?D%hh|O>Xy6?Zkig*&ezwqlJLdhx=+(vb<3N}R} zaTyxAE71XrkJqQ6M`{us(5(3RL(wPE0X~nm^A0+IE$9IEpu6EHk_*YiX$sCf=Nln8 zN}N_^%;WyAM!^|1 zKu6pRU9-06QQ8TOL^pKp2B0CF9P4+Z&p(F_iQE`|Pf-2s5V2p-kp71@Sm>Q#2~5op9auH=zB=eY+Moly z5L18uXE+7d_-Zt(Z$KM-0L|`2SPx&tI(Pt$Na1%wM`h3uSB}<3Bh(npk?!b#E<*bm zh7N4(yX=40Y!Vk-%SX}VSRGx5%c#GD4rs)t5W;KF`zBxqya^5Y>(~x=q601ZUif*S z12&*O6&vC+=v#32d&!Vg7i!WLZHyVk@(JwgL(E;qoDwr((Nf>!6G&`?C_wQJA&2B{> zoE3cnO{Uk-9N2=c@#kpreuw75adfRup}COuX;{MI*p+%YB-fIOkrbRk5`7oE8m;(Q zX!t&~!$oMrtI&>K!b|X7bl@dEPfP4%my|{CJNZTU{4BPm-v7&xbaT-GKb(^N_Y{SB zTzDS8!B#uc5-YICSK;?`8}LEuZE4*ZeTHW5cQ^p|quZ&`t`Lz9=nQ+IIq@JG!8g(S zcAx{;hpE5+bDV-X@Hd)N4ZjY%;VN`HPDW422hsbUMzj4}^n^Tx&9T@w;mq%YF3nx& zu9}NR>~S=bFQO588AEOc5k9K?*ZSTZx_J4H>i9O-3)73yjyaes&8T5gd(S}|}L-`r{CG-%w zJIe*AxA=JRD8t>6k@s%*A)9zx2NliHUpJ|Bm?fz2O{q5^ZP`8mevR$iGFC z?ECon0rWsR7O($~4(tpX@m$%5856JHh$i1`tc*{`>mQ<_{szsBqv*{4ji2Y(A0k}>oq024pvgoJ3O;ZNnr!2u zNi<0oL|39SSdY!{Q}idK%pXHX70{fiibkj&x)kkVy)V|MetC2**7g1WcB;Tyq8*ez z5N6f@tzV2bI39if--6ZfNpyf)&nq7px z)viRBVuCl|6ttt6n2ih3&~AvngWkUd&H7K#$Q(i2OaCc^ya3uxMYP=pnELlW9Vj@` zQPHvJgOji$PRHiB5lyO7SOXJ>!kX7aXWj-K*Z}mt!RQi63XoDlsP)|cUOh)I#>yM&KxHMjW9#bbMy8S*w z`$_Jj;Elh=8~#G~aiL>jrj^kB-Uh=0U-;a|cM)j^k{J38P=Xwuz_ z=Gy$|5-jZgf0}|bSciskEAkaCu@lYGZ_$p=#?N#A8jk4V=s+r>&$UK7?16Q0B>Mb= z=$gNb({T$9zz!$)PDuZWhbW}h1UpdQhmJV=WN5G!+CdjI7cPtrj-OwSCg)A)u9%Mw z>}51ZK0#;x6*`gc(8wOcq#bAc7H%kxzI@7~A+L_ESyQy(R#*=&MF(^@y1y5oGhdFb z?b~QXx1-PPMZXFCjpkO>--9iFXaDyJkAV)Xur*u(vwq%fHa+t9Ud z^H0d;q1cG}R5Tf%MF+A0o!Q%Ha&5u3cmR!1_W5xCrFc2@(dfDIL39r~v6I-x{ePZ< z4fpytd@uknq<%R%(lz)LZo)b^;=ho5bMZ>*Z{biZ&#S93-i&7di|7xd@1Z%7NJ~$B z2h2jxgT+{z{u3`!u%q4RK0bDCz}`l)_%r+v_o5B1$QcIk z9CoF?7QOEbno~J*rKfgR33QiKL_^;Yn_|0M>B-bgr*Oe!dI}BQbLc_w4*KAi=s*sj zNpuR$iGsO9gXPd&Q4?K)PUys@#_KE4NWG12-w&`SZqJ=ePuxJEXr3^D+2{x#LT`K$ zP0HnHhnvy!;tQ;TyJP)dG$Oh3vQ%v20=S?0bNmezpPQ3ExCG6G)#w1XB`I{F@F#Y{ z*8H3JOYnB|hFxg3XA}$}&4)Hv7L7Iq4d<> z9ZQy=;0GTg`!VsqSg%?*oy_HXI=U2R@j}dZL3-+hyc|uUyV0cGfHu4X9mqj+ss4`j z;zdFv>tGhwdt){C{{#v)@Nl@0cnN)b?ZWE#8`^N`qG8+AMkCSzjYJQ0e_w(|Yy#Te zl6d_!Y(xEH^kB+eEIn}_UW&!t{|6}ez+dRdixm$et&Q!e_d>JvJ~Ssbp|8&^I05&f z1L;*FEYYRt&k18N3-3qYDKDVg@@sUL{D|Z~Go;`bj#KDc@GQ2#;w3}F{m=)7p$&|W z-h@WxE_6T(qc5WEY(XRQBRasd=mc|?3Xv?2Nwc{T1-D;oG_>8&HSdR$)A)e|CsN;4 zIwWbAGGUwDjm^3K7G8pX;2`W(Ha+zV%%$kTRk2)pVkvIKWq5h{^whWG|H?CevoyOx zdg`sz9*4E2gL3?{A}Pmp>~#F&BqnLp+N2V7crN>Xqn0^db6A$X_Y6(+i!z z|F9$WuAH9w3O2Vg``@+so(q>@?kXYaMxkqdfAl@{WITiKVwI|4+aAR0sMoBPp86}= zOVDKd4=ZAu>glO}{W=WYU0wz9f)6nhp2zuhJ#b)>uR>g94!gHOl3H58x&mWKVuh1k-=B^tasEwVua3Ow# z3vnZksF$ATzyQnFry;zeL3-j5u0Px`J@xCl+Koc!7oi<&z+3QFycowd4omVb4xyf- zNjOJ_BTJP`tfkP056<8y?9w!3|7z?fiG>$Je=j0z2U9PGO(_jCrV^K_ivcIV5KXG}%|81NtalAf54 zA7BR@+%>G>Vzh%|-O^M4VCYk{!K&TE5q%ZzqJ9T%$4h#oCpKYL&-BDT+>eHQbFXmy zXKYXXx!$3jqrKVx?&F$$!rBf+J6MgM<6-<2H}p+U{oSus{lfJh(e3j}|8V5i9uSV^ z)>w$^9nfSRfSv~n(1`583-KU&lsCJO{r?n&))$8N_jl3#n9lXXSQL+u!Z)Fk zcmda|prLJsIj|erU>~%D%h8w2WHeHDqV3K>2eueH;WBKE2a$*+6IqvphH7C>K4^`e zY@IMa4nrFni-!2dSWlw&-H-0)mC?=U+wh0z8T9!=gTp||qU}_{)W83!7e8o+Ek_l@<-(WJWyomrF1!sqSK3G_n;IyQO(8tGdw>HeHS!K8T> zZTNLGwA;|{0Y74GJdHM#Jv7``3r(h0XoLOGfeu3V`6zTE%ds*3j1I8;uy9}XVeEgC zr70J##13eKPovqp9z6*^#yObh^6(vR5gOVLusiNWleFp;!RF}mJ<*9>fe!3ibZKru zbK;IG*#C}b4i|iTEkYykDVltH(a(=!8lFP8+n;D8&S7QD7#?;{b#ynhLnCrAx}-zV z0o{gf+xh78OOh07P*{#G#V2Tz{DF@2FLVw6MH?_q4#x0mvRW!$17re9%eY>hbh?b zBX}h~ja@KvQhMrFF+I`kv>JQj5xf~2U6-DifiGZFtbcua;xW7$4Sm`T;kjyf74^|* zKOduCT)xJn`@87m^u$+K4KKoT=!pAG3E6)UUP1kGG!h%p+}Mt0`93tXhtVARC0_pr zjZnsoVb>H#>!s1i)V`7Z??Ka%3%*Q-qS-kC9l$;40Ow*wT#D|7O_+_}q4%Fh+bKOY zEM;SKK&{aZJEGg~qWJk3blYAxH5s4LI$R+Qg;7C@)8`h)SaSM7xo_C*h273#;avnS34w}h-7giH8fBpRyoXk_x=8eTFL&}1Bq zett8$B=?{lK8|U)JYHXkCfOV4K=z`~9YXIvjji4P|4`_REp7{uxE0+VN%Vn*=nPh% z4?c&^d@ZK7Bf3P}(QiV#(Sz$xwByX%!_i#;-L?(Tfp^E${vS%g4kw}=%|zGqK1}5X zy8YIpOY}9`@b}mS52Mf5VK=#yoiGEtq66uPem)o-=(Xrl-j-zl`@y~OgQu_uFvb~K$ob?UE#}Ux4YiJ}%A_Y6Df*r9MHpekI6qn+9{0HyFb@zqe1+~3DJ@p@xn~Qz8ehPbI z$2sB1o{Lvfe+g${;kjXAi!g)wlUU0A|1@D>`dC?wU< z=%468ls-RnP#g_?1vD3`paZUrE@fvlCwimFITWkmHJJMTKaYYDcnzKTR&>PQ#p|cg z*JsX$!?r4m+0+}x`bFq~#-cO36@7kDbPbyQ+hY9yx-0&9nEmfa3oHl^R>cL>+oKQc zM6>@ywBW+faa}aI`lG);oPZus_n|X>4xRBU=s-539e#%eIH8WCOMC7S_P+zjwK!yR zMf8IzSP2`VFN=%OwZ9oXLYL!R_$HcM?H&!G{Qw(M{{p*X`jQaQUePO}H{eV@pPi)O ze$4k+2yJP!ULQMSTWpDU;vjqrZTN!6!|(Nn;8E(&U^%wY{3pV9!8K2&r~b9uPiRg& z^i=rG%3^dP-{2#dOj{a4{V2L`UqwUsHkz$l(4%xG`lHxUyclaN3qOk8h7Ry~T!%lQ z?L7K)$cd-X=U>CC@MElx4VI@qPbNlC=){G|I3Cxd4OChY9;}TfS4VsRFGjQYAi7j1 zWBq)r=UEv}$P#EIv!nIV9B7Muupf4J|35~-1`os=PQ-d*RY=PGXe6qkp=*lua5&b$ zc~}`YpacI7-Hr#*U3C;~{~t7WazDc_r8$8rVrlpP+ULRzAEVps8#Mcmqe+`uNA2C^6($a~lgf5OpN=f&`HdKg`bHE1NZU~)c%uPK=2V_ypI^Lf~S z`d9b{X08cG<~wM}H)9rlj=lv?ViT6ZL9UhCH{}b!E*0TS7u+-Xc z=J&;})Mw!g{1}I0zgI#eUc$$ze~B${;<}L4&!F4z5E|+UuZGA>L*JGUp%Hx?Jufz3 z9^CaR``?iKzy*`#GLJG(t_$9JmZ^XeN5%J&i8iMzp;z(RL2w68syN z;iC2Fsee(~VnaATen?W7%?G1i4}Y?86kU>OZ-hTW$@ga1r}yE*T(9(2dg2*ekB0V& zjo}xI@)@^EfS*NkWeu8S zpP(Hc!NGVAZ^eP1hChh-JV~KH7qUMK9bb=bpIK;fEyf189$lit=s;?I9y)A~?uM>t z$OqyM9EP@2|BLWa>V&PS_eM|7yKxvMH&GZ#q5PNOi^U!2l5E4iSY}69yD>PB`dajQ z=2zj5PzU08>dUb%7TOtp*V`6HP`@5s>mAq(8|(^8at)G{$;4y|hWugltbPV3;VbA2 zDt#UP9Iz>x12fS9EJQi+MND)1Kq(6yU@ zCd<9(`+YgO%|1Z~dKe4f-)QLbd>a}rfkv_%w!tJ0z>Vma*aEx5lGeeh)O%qs`cGU( z!F~T0y0%}SBR>@Dzhe{Xx%Y&3LR&Q3H)3(VNE}1bB9Zoe*ymsD3j;ohCU3s|VPbW$ z8ueay1zwLyXYd6DL%$bm;t@1NMScvHLl2&6=#tdMDrt#Chxqx`2SS!lLO;I~ozMdG z;CU9^rrXhPNc+&;^Ya1rzu8^zVE97O9=%}%R>HAp=;xpzeFhujLF|X6ehN!)4LZOn z=)iA5mtq$FgGbPp+E0hVK+mHmYN5mIf7iOg;m|+}G^yI7BOZ$0cmsO!-HE=v9*RDS z?(b#jNxBX_VsAeZ2L1@z-Ye11&~xA@8u?DipF?u=$49s@5uI_)qalRZSc`fybU;_4 z5t@cZ;!ZSDui<3;7ER7R$HJ0ch9>RRXinXXMq(Du!sHVaY_Rh2FvB`%18vX_d!Y|p ziS6*_`1$MDp8ALAeK~&#KOdCGOzJ~1wUlTC$D&_Or$rw}B9%;RiZ|>=LwqFG&!QdY z`ZYb#0V|>njX=+VNzps7JN1Xqx7u#3fyGXQ``V%r?1!E3X7ps;h$Ynkr~gU4b3&>Uez>y5{@Png5PPEYELY0wvMw)zRE)hwiRRqodGvCt~W)|8Atv zkPEk=BU^*b@KfB5nZJhteuke?KZvgND}RIztDOoBHbb+&ExOj-(Scrsqw(r^{S)+8 zF5hBm|L;B>LUjmj;0#v7v_He2eAYnM@-D24bFdM)GhGYm2`B$KX`_5a)V5Bg0?sB@-W0=)f9R&&)`@ zmB!@A;Qxq*Uqay=Y>+dI^lj`yeH*sK0=Y6$N!cA8-~crAqtS^>M^DmwV|@iWz;$Tk zKEz_~|8FT&=fW@8AB*P>GrtPjRgKX52NvSLe_}G+!Ua2?i_Ul%y0$N( zpTCZV?xT49+j#u|8p_jX$kPjl4)dW&SP5OChUn*=(0+Qy>%)^2?BKe1!;I+t=!h4f z4Q)cV(dU?rbuS1x(I1CUzXy%bk7zFCDw2^pR~n($FGVAK8_vaL*cp@ci)N(0?@z{V zT-btUYyM&xsb5TVK|}g6cEF#oF;?T7XH&ck9q5BN7B}L>eqJIY^`qD=*q3_ol3`$@ z(E2>Q)&2iJ3a-%*{*!km&2?xJ-H%>hfo{*Y(C_aD;`N`=lQU5|Bwsc3zLw~HSE3=m zCVCyZq&K5WJQE*t|364!9vAAA3EBD8qA#Ck(4~AAJ#jz7;_m;yE#L(eLW9+DCG|o0hM%J&eyw5{*n4Qs ze1{I;7xZORHY+3bAE~d3M&L#4gX^#XCbC024bl7CV(P#D-<^V?xdI*OSTs5A#9p`s z&GN#PGE%>UDvzFQYtdZz3@fCO{guN3m0cx-z6O@(^M+Ue`=d#CIo^eLR$>1;lN?pU zgC)`ZTmhXyW3=OzXhYqw8eWA1@P2eA|3h=<5a#sDO|`J?a@Po-m&Q(fUKw55(a}3< zB*TqMxZs)mJi5Ksq1$K|rb1UUBk?2khFB4c)e84DiC%&ZWEwWa8R*1bMF;#L-b{pk z!9moosS{qqZzm}j`to%{C~KfuJPc3bOmvNJte26vi3XOV$y2sL7*G#%;I$iucS2({ z63x*F4n&jgQuMxSFbgN4{U#rz;F>>%sn;WRr2b*NA$OyY%|+3Ms^bA{h7P1mjzdqK(&S>Or@Vfi|DGGMD4(;%5%)k%OeZLJ2?M^hQ z4xq2q)9B1{v^$J%MUjL`dDZN<5OZ(tUFi$>-z?0}iA+5a6WbZs4Ga5wtk zqv#BtL0QmFRuB2Zyg*U83XAwSN$u*`v`_=mE11x8r7X0CO%4{j5aK zkM}QS|4*UtFBg1Z@{lm28R$Tkpb>ciO``W={Tp-!$I$`&haN1sFAMh z4L%cn5mPTU^uD*ziGGA`*Z(2ACYkt;!UtUFIy}rM?}&`lKRm31SzP}W9ay0&!zoEU5n?HC=1o@}F{Gos6)o6xuE57-Bj8I!_(9Dru` z;XL2>>B{KJ-pfir9LBSEOLbLL1bU+8t1LhZWW_hNC0hU7tQU&d}F}kMh(HVC}L*E0< zsbSa&Z$eMLH?ci_GL8N34D;U{e&<^pZTNN^igVE;^=C99XVC3ec6wNXrs(IL(4`s> z>q9Y%`dBn~?n5WA8eQ7A(1C8A&i&fIj#a zdJg2iJ#<_eU5YyB=Pl57x?>9*jBeitu`m9Ko!K?XE=1rdF5GiRSlb$RhK?Jc9W+DN ztb23_uA@FaeqM1#IPn@_f36QfBl9epLtD}3zeJbd0M^4lv5xz{>RsVSt%2zNUWFC$ zGxR0$D;j~{@P0gtHZ*f)SmQ_VLh7%hNt}09_&gh(Koc|)U895WPU=@rh}eG)wnUPhmL8%@S7XbydWo*xI%T>1+gSpB=182u+Y zP;kwVubzLch++vYoT<`wPaRZW-iJ#E{m6#ij%u48pyP{`)e{=w2unFFTM(71J za_^x7{t|s|54t1=(RPoc+xu*ig4z8qdLreR7mm`r=!gqqB`l4GxD7hMi_iw{KqE36 z9oWNY2QQ%azmB&1Ioi+8=yzzYC4Z#gOfnzHNG!#ocsss|{Wu^RKbVpFKc$)RP}l`G z%nvi2iFWj8bR|0DwdjoBLK< zjrF${h8b-|2k<3M$N!-r9K0xG{mtlr-^G6TcdYk%BwU}3-MGFP-Hv${^E+Ype_aZL z@fo}V|3e$P;?eMRdkOmBd)NzeF9|Q5i?A{E*?2XJ{3iCHp7m6C?ppL@T!5YrhtLD4 z-qP>`%T<^(6ssu=!`(Onn=Q*o{avp|qDRr0wtYH0I2?OWUydG7$8ikSUmn(aF}9-q z8u~6ciS4l9im+SyqDees1^eGMT*C#wwQfMy@@w=*uOFgkqJ>t5C8&;`4~@`V>42{7 zDD6ro_`@D_5X%7 z?Zu4Le`=}POJPR8pbhht_y!O(g1B>Ho9*g#Z-=4rZ@k2a|U!lqL$*bZ1zpw`NLa&90wLqV5 zhaS=0(09&Iyw6z9qF~Y#ULTUE68bxM}iyn=!uzZ&gm8rsk-^zF6)?PxnXz}@JV$kR9w zJ8ulnEkZk59(@Uo*c<3let~Y&L+H2Z-#4=V-Nz;04g;u)Zlf0H!O;;7{ctq2x1s}D ziDvU2bWMLn2bl3rn0Zn3^YZA@G>r8@=#q^^BQX6P_P<{g=En;!#v8YwA>EA*;22(p zx!;XHUZXRefktXBI>X1&?f44X!6(=d4`L%Mu_+{9Ppn0Ka*~2KK8e+EJ=)=3w4rn8 z%!|Dj-db(ZrJ9I#d?)(+gXr_C(TIMIhJG(Puv4*~cXPNu8$CIbEh#vYVQ6TsK_8fg zHarho;41XKAJCjRiZ0b}n1$!icSPCu!}Yf4l5|6N!zJjzCZQ9&4atRMVhIHsT!qf; zMI48la2VG9ASBH_IGFkZbfCx4B|48jUua8szC^Spnrv;*-P8lC;{bFZ(=he-|7KI* z2v0nL`8kT0qB-&6hhawB&`=#klc~VgkYo+ffwV?>P@%koof1g9&|C!rEh+CjJa3MN@Y3M*6#?+5w z*q8cN^gChkkJ$gNX&DNJq$;}q8>1oZfG$aQbemmh z1JILkBKrJtG+DpINAWaXjSqYg{!I8Z`gyX?ml>&llW`q7(r?l1JcK4sz8xW1ve8gh zLzkv5W?^46A`{UFJ%;AS+vvbQLEHNu`dr#qVdmM$=gCA%3eK!2I)I_*!7>&N=?&Nt zpFkt>4chQAH1vO?OI3PjXt)m6rrrf>;&td+FNvpkJqd14g>3qF2N9V_sm9j$ue{))}s;Hg5&U8T#cRg zu>WTon9=8GQtrauxF2n}?%pty9%zHZ(3wv{XY@XrBcH|3ccBA6g3Itv zbk{8YJ|yoe-?RS>?Z;er7x$yNusr=5YAlzZOl_vv?_%Jrdp>Q*b%;C76xveh#~71iDL-ODHs=@F9AD{Dt+g-qG;K za95ybb=I+9Lo_0t(1`TFT{r;EfojJyQvc=ChUn51{Uv;3DucG)676qds3#N4;)SpA zF+RxiYe=q@XveSPUfhm${LG2a@r&4#`fF$?|3lZl(8;hArO`F7goeHuw#Lrb5R;ht z|NmJ_!H~a&CfC>K%#Nc6$Ej$(-@@mW(1Eo;w`ouGr`yrk3Rj|8z7LJSIkdgB-!oFV zkq2i}ABTlGe-gh@aHQ#fgrl|uW>GJT?%y`(%z9%d9E3Kw7&CDx@?Tp{ti*h{^mG{D z3x5XR#%kR688*e!*b!@=VgGlha4m()@HK3Jh0lf%c0~7YFLcJ2qT6#U8nIh23m2gW z&<6C3KZti>=3gO#_n?t_3J>E(bYd&cvHwR9c4uZO7Eh2pvf2|HApu6mOya7%s(ii)W_w`OsvI5`NBXBqD!7De=L9yxn#D3x**XFoy6Oy-&Z2!O74=Gsc$?z@hPrP z#(`M0RA%a5QjErB)c?RGw70NyX88SogR+^4nS9U{eR+I@CR62dVPHKmoB9ki=~iHS z+>D(uy?kcs_1q23r5n+6WC=FLkI`iO58aMkD};WotB}e6{|gtkbKw^(QZX};hmj?+ zG82<9Z#JRB>6J25e-rvp<;>JSpIurd46uCF%+!h486V}b+33<`RSS`tiPus;j922I z>LDTLyH-Vtq6J2Q2( zo<(;<#X4c;&F~uP*PsX1=jeXVtecs7`&Gt^sb7+$Fpk3WcoCMUmzn5-V@0|J8T(d#~0yv(Ks8wX4qQ|L>mZ z=}f@&wtfZb2(x5%j=Vdlqud3K0H1)x!1h_3+iWA)lJ!L}6DOEItDkEf>(<%)Jns|6 z%kJp88#DPqU>T^67UuACT?M~@Prx%doyT@_E<+y@Q&rh@a~d>ug2+Jg;)8i}`teoNoZu!QZ;LbNd|u zb(aN{(3<ReQsaYo~?dN&jE?LI&%;h=_`oX^q>ecZ9 z*bw{xHUR_6I?r^Q!CI{MfjXhs<(z9MA?W%2-*qMm+ynL8`~=jC(Q{Bwp`priSAbE$ z_Fz0vFG?f8aNtt#A-E3IGuy-p&c(P7%*Of(mNTP;sDh=ym|!hX4YdU&*awUR4!89bP|tu1!1CZn^B1n- z)G1$u`#&s!1~`&|!Jt1l0+iq!P=YH!y=rX*^(uD&Oaop8by5BW1HeRq&Pf#lm0u5( zehW|!RR>TF_q6qJHb2I}fQ z31$TSsyWwIHc-4ghQ+`btlbruWMR?>)I~7?tOq^@C0L}o(|L8n2B1!&Ij9d1cLMd$ zxNA7iaKk{IRYIoKTny2O<@FFPQPf*VjevP>QBQptTq8zA;s1>Lk_X2gh9RhU`J^^(R{sQ%U5~G9j zvKt4~x(3LBxaxws3)~HuXveLj={s!vy`UC2&iPOV5u>_!Q^Yow^E$i`f|8-%K3&&tk zN3;vn6VZN9kLhhN1sJQRv(5*WVBH1G3GM)Oly41xfO^Qn^l~1u1fU+;d|-C4IG7ad z0VdJ?Ka+`ev=dYV2S61(3TlTh!RX*SP`6{q-cEzbKou$s27uK;T_fEk6)X=X>gPP6v;uV- zO#+L9vq0_mE~t$}>hI@ymn#~mqb~r;-x1VCy7uS(*JINIhjuUk)I%@~)Cr6R)zBnR zym_FWVwZ#BZ8F>rioXXG?=UF6(}owp9IUT{)xgNq)$QHH&15f=4xmmV;{fN#3V~Hw zR|54AEClsXZ3lIAp8~b>$6yHXHK?omEvSn!(m<#2VxS({N}w8R2G$1Kf@MMXQ6@T) zsDqr_%O6xD=|Szh0I0+=whjb!F*N`s+!oYDH4xN8wgeP^JD3?f0P13X2kNehHQ2dE zvVp|iu1ZXFbp0(b6clkG7y#}AwbOf`u7ziyPUbzRyP?Do=dla|wUHK}8fydU#0G%c z$P`;IFx=wtbN?M@q9Yu^xWITwH!0ad2_C?#tmo(fH}fYJ%=m5Vb#&&YtIG&{gntB_ z$2y_qBva>Deqv2^ELbscy!l7z`|ov-c|CEBBk`DmY-1Zk7s!2xqq$Vmv)&HsNO>>G z)r9#?8sS;jbLZ&l_NT~ohOD}-PK+OPU1`z3Ph%C(--n(~*K6*m6fDdtC4{*M%K9+x z%kbK85)%>Q-8ffC#2S)wfd*u45iHL5!WclTDcpq=y-9vg)+bp9Fl3h*GtuCWS_4a&`!UakMhZmtFz-S$vRRx) zJn}ygt4yxvjzV)cBP;9Hp?Um6ARtSG@B;!9OgIhm1|;$V=K9L`>~!oJ0megkE29e> zSuVrRhOKCTzuw}p(By`M`&;r{Iw^fu8IjPwNb8Gt;XKZIwH`7>XxHVE&>Kg$~2k8muTOSlibS@2dfKP3kik_NKT z^ap3@`T7RU9q>x9;$46K{ws+I7_vnSULjq(37lapf|wJLVz$HU#E&5O(D=!S-=dKg z41JDA@0z}4E}KYRF0^Fv@%<)eoaMzLwuaab(4B!V9UY#F|KRlhnZ6570r|MkF)u(! zFEX+_G@6(p>unFw2nw!*{~TX;nw;o~aBFgMin%Lrex? zI7fU6e-R2CB^VYiPy3#KLN9I&;=%Y@GOxwFIyf8tSvaX}w?)uCEHZWmO}Jf{dnGV1ubUf;{&x$ohLw{JPG?pYU@nAnC0M=eHe% zfhg-`1vI~CjcA_0c$!B+;|Ba=TA1xaZve&5l7E=EtQPaFVR-yyqdZ@EeusD%VSR^k z3z4ICw0ixX$|+J-P3?5_ZQ2#%iptM5|I3!rRAX{O zkedhWN{xFNn8Zgw?_kRG!(>0}zB+{bHm?C^-{cGX{oSeX{<3rFW6@ryyu`QG`~^^& z#5@Gtri=t^$!kk!TXr4)8&nsOyPfr7)}?4IE9-V}E)wfa-bA*smw5#6qxS(z33({a zgI4e{38U}@T0<%j5us*`7>N3szPn6G?*FyA3Ikvk<|yCOR36jHoOCPFcns=6oj0wU$CV zSj&dPiE59{QRaW03znZ@Oi2GIj~@_SJ#3e$y#?@%VR$VKg4JjuJ-mmY*QT(}ORNR> zl}2YV3Q#DcHP;8!8v?Q;=y~cVw#Rc9iSL}4D-ph@G_wrxafsbTNcPjZZ%CZKaQB}r zFpWfrCS}ZnSD5B+lY0-AuFPqs5f^_qaxe1(ql-@%c&seM`^=l#F6Y^ieYVaYkT478 z5jfMWm=fDr6Su)E2%jLnnfYS!-Q@1H{Jb=D6aO6IL#;-6-LS}!o7HnCmGpBaHH z){NHUY!~qm3u0ZC^$s+avL0-C`>jAj^6D60xn7G1H#3`9sSb0ps0>cC;U)x53DC|~tz$cbT4~tF_4fjogXXvsVMaTG@M0JwS z+Bz2TD7K43<~xZX@40$De&VUX7e2G$u|e>!Ge!`vi!U;{Ct0r{de5iEBmTp1*JyJj zW%sd}w}DiTr0T32kl2DorZ~E;`3Tlw%wgwi;eJFki=ECl{4zeb;aWoO4B|P+El;CY zjWd^>zrlZ+A!{4D8Q(%Msf*BA#!Lds82lAWS6xtV05lv8Z*#pPF&stN{!0Fbw zxHp(rp)miuJpaYCJk%fJLzqNBe|<^T+IHC+B7a=bl@xLPLn*IqrqN0G^3lu$xVu=V zU|oyTyP{(-8)!O_EjKxw>C7imx3ZpRW!(_*+BECzuQiqu!BgxcK7iJ7-!&}CFe2Y14uWA!P@G-le4_dD_zEz#!&z-QtMPxQn5+VM zvB8yS#pHuou1rh{QCv2G#LUdkK`u@*A6fO-aC{}pe7~{}#HqbsmGHV*hYx>wtUcU+nRO($v>Rs>f-Tv>9_CG$ z%ZPbCv7vce^W8+eD)a4#@~*#YkqL^k5??w-7UFY^FaKbUTQ?{!(D;yme6+n9mY8k$7ir8m<@6~3Uya8C(jj~*ij1YA=zt@iOV+o_{x%7oaXea zgc=lKX{(x_V{wc%Sz6C z{LS#^Ks+`%pYa7S?+(iHGseTO0Di^ahP;a4eQLF(@#W&_{#yv?CeC#@x-v$y)7%J_ zvPSsZxUNn3qQdpHn+VEAAl3zLGR7<#DhT%yg~EZ0&|Akm2eHS-pG2)g_>!XQ{z*a> z7JDGe^sakRhzsz|VaHeO2-iaPwJ3J2BrobRZI(XIL z^st8K5r4vbA>6Xo;50Uv1fJ*oZ{bV{DK+8&%)@|p8AT{?6r2w+AO31^^m(#Ui21Sm z1>h4nt>8>!-Hs+M*byJVFH4W_ADZb(ybl5hIg69ZUux834)(qdjU}xg8)Cg5%J_mn03XLZ}9lm3XVQi)| zzOu|aFhaobS|fC8*m@4mB+O6h{pL2-ZCtPpNqVz9F9lLD_u3M8tw<=0ZwxrY=d`L3 zlQs776(&CgqcY9S#2=TOsm2qxuyJFhgV3CyY=#jEdftKAjyDt%_vt&3c|qEW0wXT# zAEY0o-5boSGyGAB3C6*<3Z85XxEKBx&NebJSqs`9fL2V#TgFBFbM@dc&uPa{0h}3u zXU1IwD>CNO#Q!qZml29e6FId%lJocwP7x2QIK>B;Xf5y->phHE#6wfG8``hIG&DLN zjaS5E#XV=EXJ%|OLR$%X?UKz?k$lb$u`8Tph@PfM0_F#a$yOn*KNu@}kN-Vbhlclp zRaxtxTC$D^?;qy;wRKlp;}6zP;0YOt7$vMwI*K%4JZ4=IVsm2iEtUs=R>TUUdJ(^D z2#th8T=w2}w}#j~I~Dn-TC6N)6lj9VKra|F>w#(Hd ze_@BY5IAAS*9(y%R_GMmjm%>aUjW` zkLYdYGX7@-7r$usd<1S7!q;f59sW1Ai*Brw5wAt;J)^zlm7@4&cG%#K{tyw_B$9k>r1=MNT)F<*;# zCUnx$*C@$`oGhG&7fZ6gaZJ`J)$h&rjL;SR@)-dl&S3PLv1im#03_$FQk3dZdCm~jp z-7K>LP4V5uR}tS__?7LbkE7L#24$^m_a&&Y)8@FH=bWw(E74g&6WnM87u(T(!`}kY zQtJ`@OJjpRCf*9iD+EM&xC9H-z53aywNxY^%5!uDGlxx9Guppq1vi^>8p1+5IGd}9Q* z;Co1RC~GGUxtZW!V_k-LHs(7m*3zeo)@)%QdF81gyUJWPT@PFVME)VL5oaXkH%wqW z#ZOstB5!~*h-Mlf91~6uaoK!0MafN1Yy?BrkP(cp8ig;~5yWFID{t%1o)r(=S?gvS z1=0~r2S$J#7U36=!n3Q{mUPchxqX=bA$J{(Y=&Q(QIZBigW-ssGTi{ynQfi`&E_=! zi**s5kS^SP2)u>#g1~;9xe)mU?gFQP%i(NAum;JUn0u`|>wMPGbLNK-?S{r*E0&h| zCL?cRQ;S(2Vf01!F7-B2*L{Kl;c+ZSAUnZqmOPfkdiY1Nds$s#&nHR?CJx)trYr+@GAV>@E4$1QDS@0%ZPp?V%fm0#C`3OZrrX2CnqVqHS&#h zPn%yvWVFpwk^G7I1w`XgAU%c0A?&pvnkWM&BiIwYjo=yhFW}52CpWrnz>(zXVNVM8 zha2K!0$%IO{2&QqNPLAr2uMGfuV6gUnug|4yc_fFjIM}vf!_y#LtrD;vir<~$d#>U zj6^pwzR>7&rl#z&8rgvJ9HQ6g>@W#e2+U<21ZfApvnHs7Zxme1xJF#o)2Hzv_+G+& zhJOJ?>ajk-7>i~K6~#Zyhp+s#;W&u$IAcOAPr5%;^)=9sybO%(3|Sg{vLXz3 zTtrGh^jZN67KNM|@lMvvcSO@zLyMWmWxQbgC3h8t*E8?PM*5Q9ob^faLgMqaOK6^E zq$ie`ysY{)$~h~zfus)vw@{?MPeYq%;s6Pw6oZ?N`6J@xXk50EB0b5uj;}xSxA>o0 zqeICp#5};mLt{#t7}7ejc8rQB%Ctq$#sy)Lp$Q~V0hNO;H4&~G2Fj2 zB@1@IwaoG((ZpYxi2}}rUyKol+|(2Zyw zI9(8#32_cPDFtV#CA~&01?!D)yjG0-d3LX=q zO730HX7ogiO<*jifb1>gDLzd^A+aWjv)S=h{98!OgZNMUUdzCw4Gj$U@l_zF8r( z>_>xR;2frS8JZY}zY_D>w#h}r8?hnJ{_l8>g8SEYU4fviB8|+YfOk{D##8J(MPk95 zhTtZIjzFqp`3Hz!63J|tHCdmA;=<|7*y}W6=MS-uT`23pEtWVIVt?ClXY2d{u@E$} zhNAU}C!~>L6kp0bBMp5b9)od>8TfLG_z6ZD zHyw7zSqb86MX|_WXo~!{<1S05KTIer4Ry!A%AvX;32A7oHKfofa&|IO;*SpJ zH<}U2%Syg%G5U>&yO-n4VTHF5_`$poq!a{~gAdq6GX!LRtf7?5=lc}9iu4$o+NbsWKiVFjd=$9XPnD$ z;twUx)!tuAFjuISr!4&>w8;M1oq^#@f*XT1ySZ2GaECOP=5C}H%N<7`Nf|rr33I4%&%?1XH4Ohz+mTTjrUpkP>%D2+NJ{ zz3u8c^HC&qBHI|VKqX+Y^5Nj~}ExsOpe%6s#k43B(>y*r&vg7`&$ATeg zXgCcvVg4L$Yy9KX1g0OA`>}3=el-4nQ&)9J;Yb(;Q5K1LIz~)q>G_(32K7>13ja_E zl9P)9FDcxSu@}Ka#OE+dtq={h(fu#mPT&beUNRctD{9ST z2NRP#1Ccslf8v`MUi)bIt7%{m&X({>Gxu6WCRflt0`4YO4}NAaBO4h9kNxxGw+S|* zSbqYt<8*g~bx9IBQFs!^wb){cuO|MFPoZ7-{1C2cJFO1}z+a5dYde|OHjT#Qzt)@O zhnbuq5P^ir6gfn}7A8`e2E3MuVws2+F@gQ;D$s&4(3p&W3j7>!Qn8Ltd=b8z=p|sD ziu};Tx-;L2{$Fa&3D2Z8q-A;&bMpQD;WXT(kbQ!LEE|&Xp$;WYR+@}MtQ*>T3YZXX zK2#D?q5+(|oaa@1Qy9@H8HpCsdb0Up&(8Wi8rk6&2lL@8LY>LrPVYyH#4k!P4kDo# zVVEbzx0yn+W)$9qUsl>guOKLEWz98)+uY8uCENw(Zvy8r+&`@U1@jWyPooPx=gu_| z0jHm5!5jYsVj@z*il{&u5}MGEY_}EAJPGqc5z36nUU)eXn1N7y#xur9@-C8;kC<$gH88|B zb^w1v+tgf#;`!?S#IdX(cnk6K+C9yTgP0r9G+U2P(rf~{6o0?pDQ)G7*bYwwj)uD$ufRq-}MvK+9 zWJQCR?*t>m@wJTjr&DMGBL;ab*-#fdfE66TDw}U0-imoLlEdle@&eXv728Q5!KoB~ z4pH}Q6UIEqQz^LFIA_56)<8ev|1u9vUNMS(qxeJOyYS^eL$-(JW?G%iU~Ai$=XvoT z9N8gU1!K@@bdqn9SO&3cG!l$Ij}==&kq9KuaCHCsdVriPPbAjUxUq@J z1{j7zC!d-MNK-YqW0O{$)4Dcadi-X2ln%Xnw+#*mYSpA&aM$3@+qaDg@%cm8tN~fG wBhW|^7bf9rB35=HQEk3^z< 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

7IQw?qC;vFHR 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 Qb_TveAyYGi&iwWN0KO^htpET3 delta 59077 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 LA6^i=Uf=%*a?&AP diff --git a/resources/i18n/es/BambuStudio.mo b/resources/i18n/es/BambuStudio.mo index de33ff24fc2444b6c7c12ec2edfd3f3910a7f076..70fea391eeea7fb29c682aebfd77cde8dfa9013a 100644 GIT binary patch delta 58944 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 delta 59089 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%0DL8{9`Yw1WTKePA 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 delta 59083 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 N7;5|LK)-fH{tp!beN6xW diff --git a/resources/i18n/hu/BambuStudio.mo b/resources/i18n/hu/BambuStudio.mo index 3e73507c82bfe20f0b146f2cd6a41587797f1bf4..31a0a1f2020ac69fa9ecbc9f8551933a1323366d 100644 GIT binary patch delta 58944 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 delta 59061 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 Q!|zrLx$SN>|F~KH2e|W(3;+NC diff --git a/resources/i18n/it/BambuStudio.mo b/resources/i18n/it/BambuStudio.mo index f0bc3c697173fe3bd94c075ab493591b955ea716..572ca7315dd4a0815550ffab397042293a7e7f3e 100644 GIT binary patch delta 58944 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 JhOJDt{{!|XIKlt` delta 59077 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°XSf4&3B?p^;z^s^h@p8SYNO^4D{*U?0-YGiH528 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 diff --git a/resources/i18n/ja/BambuStudio.mo b/resources/i18n/ja/BambuStudio.mo index 3c90662db20bdf48a8b80f4b82c9417831537450..210ed4bcc111aaa9e54b7a23556d016a5885a813 100644 GIT binary patch delta 58944 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 B=cfPw delta 59078 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 F`yZp<6)pe( delta 57203 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 diff --git a/resources/i18n/nl/BambuStudio.mo b/resources/i18n/nl/BambuStudio.mo index f49d4bb9e2f8f951410098d446cb13737ec667c5..2853a05f7dddf6e5deaaf34a15022102085b5f63 100644 GIT binary patch delta 58944 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 delta 59074 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 diff --git a/resources/i18n/sv/BambuStudio.mo b/resources/i18n/sv/BambuStudio.mo index bf53c5b8c1bb73b2670335c2b1acee29e3c40526..1c0c3c5313a1d47910166af66ddb57f40b9f3ec4 100644 GIT binary patch delta 58944 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�}`0 z_D2Uc2H(Od=zv;%9y%U~mr);$Mr<0|@uTQ~=3!Y}@j3hd4hkQ0!4S7N96IWZK5zrt z(9LKvjzzzO&O*1@GW5Rh(ffWyzb$7!5|X(DW|AAVaSPY4KN=!&`LQtIGRN5e9t78L z!G?yQp&Esb`~ft{9*&>SK(qPrc>O7KV2jZ;eFI(N9q4`g@NWDZZLjO`5V@XcKer_* z*ui*o?e0ehG8Ijl+30q827Ta7^lSA8*bPskN!R#`aQ`H90FOl%p%Gh&hW;J2zfaIF zv&n-L?C?yy;Xul)XnU*BkgrGE z*@?D$2>n8H3R8doH}|(;#QD(&ufXP50_);HG^rM1Ib4CR`6uYizd;A~2YTN{bmqBF zhWb_L5|u%7p(;A?&L`Rbj;tpa(s2kLz+q@8n|&9&0iD?>^q`uKX7LJiz%QXWv;kd` zJ?Kmi$LptK{UX}#rKiHKDtjs!vauBx9CHU1gP;&144 zMZOP9RUSQ%+M^Tfj}GuoG_q6B3G7NzFf@D7ZSh(3TeO37Xaj$u4dyx>LY;|rSTsS5|LR$@8`({`l zyGLim>+eU8qBH#kjqva2gwuXZ4Jet&MZpmkLAPNIbO6_)Bkhl_>ycEMBF2&r4evtN zbQ#*=9yG*9u@mMx7iQWE+fct5jo=FO{#S7uz7y*Y{T6cUarC}bzp?+F=~^y0(hX>+ zzd}cNDw_U#xUUHM+ANNSumQS69nhTVg@$@OI)G{M^Z96mmSI196(7R<$@BavcN#wk zU=J=FyATFY^N+A3_0hLpOSIz&@%rOvgNv{}u8j4s(Iq{DX88qlfI0q5OWcQ-q1PWr z2bz37URZ~Hxv(95pwwSsAl1=rSr;o}C-mT$fHpK4O|~boGcH1N=_fR@7tl!lgWiAn z-)X7;__QpJ_WeJKg5PMqLHBXSKjBMgQ8XF5qD#^bo!KBXxrSq7oPkDY7kYo<-|!<{ zUi4hKJvtGc*nI4O%P{rx|JnG#AJ~--vi=uF+7lO3AA*%I$HkC*wXr|-0oWV2V@)j1 zE6nWgf&MUh8=4a<@NRq`JrA0trKcj<1M?-h@E`?eJ_pVIm#{V-!iAVOJv|lT)o27> zi}g*>t@tF@-$!$zUq*Uj6%IoqcX^id)DjfIs?_VCyJ#>bt5BFr!5MDDyYLrutp;UH zPi65~+(CUZ+F*xlVL;umHT7O-wl7ALY7M%*-bQ!HPBiqNqZ2!cPP9n&bk2VYZL){Z zbwdw|!RUkI(SgiBlV~Bj#;>CdzK8CLPtYYejn1rSj&QvLnw*2sWV{`(#XIm$d^1Nf zJvD$TIYWc>(HpNpld?V9;ZSr&yls#G#9#{ z1002|@R=lq78Jh5>#+>~O}sbUhpzQ%G^A_M2DhOR`2>y7SLpWq4gF%0J8ybwcT~lW z)H|a0KaJl1BCf-?=QqLz74Jmlxdi3peAC|=hXv164ZL=SZ$SE`uzo7g3 zKQv;63Wfo-K(F6~zGg?G2h%G!9TSDZ=QHps-~US~IP$m9k?zN)coxmp8kdEf7=pe& zhvV%y86C)3bcqs|rziYcoewjyCK|Es=(fBc-6hk}FS`pc!~MUIf^WekSPwU&4WCCJ z$Z|z!pkTBZ8kvgdfEq`8pzRDtBQPCpX9+sNHE1Naqse?2lWxDSDHz(H(KSDhqtp0- zqabY+PDw>}9rxNyKC+o$++O5Nx)U#x!r~cN;9Gpu1J) z##dGd19$>GXgAa~(7OaKYs--99@p;4Q>8W4W?Z-^&O=^S=`r$p)pTzE1 zpk`Q-Td^1Qm#`~luNB`J*unSzVhRKJ;72t3yVMSAKMg$>4k0%tE@BhxP$xb0pViL5 zr>NJi8&1BD(OvNyx|G@Kg|og2+Riw1cPx(ex3IPQ|7!}@@j?0e!TZo7`4cq6g&Kq< zX^YLM-;W+FThOKZ2S?*o4bxMMPq3tmFQ_tVw#} zFm^z*w`|j}Z3f}X)U!29PyN{aI=(^u3*3P7nuh^(X%Y7MW9V0}#b~5fqRDv*J%~EC z3o3#!dyoEifkGUo^xCcF=FKLsW`b*~Ja2NIe@Ev@= zZF=GaPP;aQd}zCH{V{CH^=|D$J9Dr)^-tQf|6SXR4&j3?_!0F-@n`JUF+KHnzdCga z*QcY~=f=+A$lZ@wsDB;nr_f~n16yOGE+HZl(WQ6q0WtK(F73UQeRu%3KSMXe+vQ zJJ6TK$I+wl`YE)-v*=Ns(VdqE=0*p0Ddxp1(GJR@?|??=bKTGh4T$x-(SDLsDfn`j z8*f;Rmr&n=`SC-%6py2k`WbETH?)JSJwo#R4~e6_V}}bRb93&rhNgIFAlA|Bb<` z&~{2<8LWUwlcp;LAG{e2?I`qnz;vvLi_nI4q4(`Wlj$q8!Sm=q|3&wC?%rV{?Xf2H z$It<8NALRx&6Q)l+5i11oZ^BFw(AqJw=a4Uj>bpuRjiCnZVI8j9otZ!j3()x=oe`A z|B6m5Ti?*(W$4nBM027XI-pv8+5f&in{dIIjX{%da=c*u_!r$R$!z^YsEVR%QW>35JhJ$HrO=-X?XVTTh<))_bUSq!8NSKP#_`k-<3#K}DjZCo;nURf+z~>* z5`Atj4#d27h6#*Dzqs6wZtpiSx!)TpT!+t&4kJ8|ZjZmwfn>caL}DPC8+TwfoQj6_ zQFOaK5wAawMrbuU)6KEI6^+b(^ql$rF804KlZ-JTI}4#9s)mlRHWtIS=x!K-=E5X2 zo0p*tZAFvv2s)sz(E)squKC~b^L%5&w!ISF6^+Iw!#22)3qE*fbR1?q{u9k}ceq{@y{{_TP80ON>ynH&42+IJBk(X9;u+|TbI=27Ii}<5 z=m0iGKSZDV0!_ki;`M*gj`NKR11W|^t{OU!WCse~&==W{iQ(uGIUnutd2}G_up7RK z4KVNc5c+G;&j(<09E!d(UPRaa5SGECSROMbgzJ@&i6j%%DY$mE&?RVu&ZGs}a2s?$ zozMg4Mszz4K<^t79gW^U4!tjlwl_683rkU-i!E^@rvColzZ9P0Lauv4B$lC}S%+&~HKyq6gPAXvZ&N30#kE+e7HU&!7{^xS##+e!QH5 z9aTcNQw=l%9nkI97hR(J(S{$!R`@9T`~h?Vr_nY42_49<@$-x5Krdsrxs;{R=c*^! z|9;Sh3uTC5&v?WA4}_mir=tUV1)a(3*bYC(&RFWf@bb9}n^AuOeXE^9Bb1mJ-Yt31 zC7Ov-@X_cMljyJq7Zy)SPyI!N-_aS|`cODHhG8}84`5e(6>DL}Gw}4&Y;S#NVME|B24%KeVI# zQ$qx>@xKtr}1 zJ-J@TyYK}1Qt2@>EXhzbN5)`vT#iQM5PIKnw7qj^1QN5tFT4JSjokm!C|rv>@G;Ey zX!t(xEIP0(vqR|fpxdVynhO=tj_RQIHA1t$H9F&)(3}{A-ai_h`Tb~8&d1dE|5qtE z^LNm-K7h{rhj{&OG|Ml2ESv|W(Ryn%Cwij|50BTUpzSP*u0sd*0lF)`Mk90fG4{V7 zWS^6s`Xka}Xx2Z4#c>1rwmKX=kEN*>csyLMhndv7qca|ZesQ@kIt87`W0;3*TZ%^N zjN&&17G>#6YESzJoJ z^3&m*_z2xC2hqq@Ul=0Y869A9Hw8m>6b<1?bVfg;`}=P!hj|x;-|N-I>eL@W-(qj$ z{rDH!&iH4-L?)pfJc?a#DY~R*(U})ooN6bTC_$ke7rLWsvlvar73kW%g#++IG(y#u zgn>3f2igiNmW2<;TXeALV12yB2!x6?`r74ReU zB>M}W!ip=yk+}oi6}!=aeS?+oU-XMdg;inc+Ta-KUC@Z^Ks)>-*1tj{`V*GLzgMyU z4Qiz2=QnfMSULHagLWlR@cVy-j6O_t~FtxSD{C3Ei}}f(F11y z8tHN9L>^j`3|YE}3m!x-qglHXUE9y&jsKzt(d93P8P~vK)H`EQ9EmnK3vK5GoQ7L) z9$x!OdiVzk@NVj(UJbwQKb52~i3@{XOHVwA-=i}fwl@3;$5FJQLF>{J&)^w!fV0+z zHD7{uxE-D0F*L+y(a5cL{&}o_jo$Y&j>8LR`=d67NR5fk#MJ&@M!}9=MjLz^jl?c= z`y7d$Mb|v%rf|JHx?P*01HKN8K)-l>bo60-iR%mE=WX5$&-cdE-~Ydpf+3&o1ze2I z_>Jg$Xk(y)^nZT!;hk2zJ7zTf$FPv$nAR4f#PX z_?G$-?YPl9;f!yI&ZIq>)i*~+prO7O%iwIBk8j{q?6Ng1<>zQ5zd@JySFD4Hcf-r5 z?z`-N-%7o>;9B2Sj2iJ#Gq@^1?#V`=oLy&gR|??IDmDSAFEM??ND8oB-GOXnnx z#FFoYm(Szq^*u=njx5*q5Zc0Mho#XYvOYTE{%FJV(Fm`YJnMWo~~3eC9i0k*|U-VaA{4{Skw0XD~@=!}c*3Q5!oyHI}! zU4l>1$ozwSu=wuqXGiyAIqC;7D_%q=nDv9y5+xIbDLA82I2$XXN%j`j#rM(enD{V+ ztN@yfozVvSp%EN}K6e+IQxC-JGtm2LD%p!diH1A6RuZ4 z2hb7?c@MOsewcy7@FpCI<#7*o#0zM9t@nmp>W@b7A#8)I@GAOGoV9>?J_;R_Lyz1V zXlUEwFdT_h@Cb6KC31b7p12ja?F-+6D}EZD>wwPi7PQ?7=q`E!JL4)em;S=kpa17R z7&^Kf{SMd|4Pk3EWL?mZ_ryQ&Ry65u{wy?f8=7)~O16iv3Fhr|8% zqq#BzZU3pm?0;wYG8dfT>*!2&pdB2Go<`UD0($@7(exwfiAB_Nq6gFq=yU7Q_TEK1 z+=q?vOEeP2j)q8-O;Wgx3(e36R-q4ULJy{0=t1%W8uI_pNMt`2lBx#wrQQSWcpZA* zRy5SR(d7LaU7Fus{)-GanJ91~bX*L5pfcKUeXNgN(PW%~&hSZeM$e%guSZX~ zvse+!eHq&6jvh!iV>6tLzCCx~)p!C^KmY$n!4c;FDxC3U(GcE%*J6J(30I>_aTwj# zKcNH4`E^*b%h7g9M;oFO>KeTXUHjY6_V2(F?*9oC+^37MDsI4acnVF%Mc;&<_12+B zZtriywtErH`psx)x1kLmLI?6CcEAhqdaIM^i6hiIqPbT7JNCcHR-b|+Ym1rK1qb3C z=-cfe*2E)N4KFR&;LTr}ICMMJ+FjpUnXZtRYpMDI&K6P7F+ zxjT(F0hU`Y-59r_3)QyStzf7>W+)E_48s z(A_cx9l(2NzsWrm%;MkB5T*SZ*6s>4gyqqZHp0r-9o9_TlhBT4 zqBC8E-oFuz)O%>sors_Rhz|5`bl2p$;0en9D@ehErVcveQRoRa37zS5G=$HiOR^$< z{yG}U&1eL7pxbIcI)JaSBwoaFSn`jMtR2uL?TV${|AXQOGjJO9+2~1j)t_OFu0aPd zJbDK@<1y$!A3|q31Kq~+(19&R-}5Wbfp0`3v=ckwK1^m(DE?RYvz->`ng0YD;x*{n zZ$Lx+G1|~iSONb=XI$p*kUMqIB<_ITHvo<39ca4`p-1l`w7oa~j_?0NTySlEM;p%m zPndZP^u}IT0>`3DvH$3_@1gtkCp4sk(=$@<|0GtXz8S0H57GZ+WTgHsSbMyN>&3HVgnw)n zn^8ZGwp%P~M(P)sZE+y=naC0(6K5$Hnv852sSsX?u1y7Wz!qGg4n18loegisNw+8lfvL4Kt~Zzfivg4f%EXLI-`&+!=^2(S2x=&Oq1xC3GnY z{Ig%)lk=UKa>lA&7{ZKG`o>nL$ z{AE;hH{2SXiB4>7p=22O`|-jjn8^nx(Ss-ZWf`eoER;g)o6)s9j5cr<9dP!`!vOQ5 z=RgBADLY^h1~wAsQGeu$jMQK0EXBX?Xv7XADb%8H41J(L;SBym5q?RGnfM=8pn+mn zg>BdFe;KJC!6u-g9bF`3{e$QdPC;|xIrQ^2=vu#pMe)P<`48w4CC^hZYcIVzBlU}h zl4t`rqDeCdZRk$ih7X|0+Nx;y{0?+2?~nEAXnXU}Tv?4K-FCFYJ!rcpkw_*J=P0;_ zxr>DvS42bH0Uhx`w82T}K;}i4p$)G^bK^~PVBewVK%vZ#3s+%D>ebKzbw>w00#kqf zKOt2hbn%0^=$bA;2l4{i(H1l^JJBzd`_LTt3E#l<;u)zgqnpqHY(bNBJ36p~SROM< zWTf5!l`*UPzZnHPyawIB9nm%GiiWB`I`a`|gZHAZ*_r4rc^>U>E&AL>?1j5xy=2J{ z$(rcr-Owbx1(RO5i-I$J2pz~HvHm#P@Y9$Dmtr|wjxO0p=m5^(kN6+j&JU%+ZaEjt zS2`TUm9Yk&*Trf$v^4wQnLW(~J6egp9$!Y!?suafqDyfQOXJUINDGz8NTg%)Xe)FV zv_S_l0A1^0xE}AuJy^MHcp3d&Hkpz7a@nk0xbQGm;f4>eC;o-qv0HgMq^B1!lkIq* zVmKFmuM}RRvnpq#{tby;=meHl2_asGPGkqVy+4kgLnm~3vT9h{D$zz*j}O|RNj3?c z(KF}+o1**Bj!vU%`7frnakWq{i7stzoPn*eA%22iVV>$4iN7)V3k8CZ__0Pvw%hB3 z2F9b?ZwA`%Ds;`?Mo+@y=n3{WzK2=rhV8a1`UN_`-_d=aqh83N;^>l;L6$z5s6oLs zZH8v`V05PUq3`)8(1td}&-cXZ-=LAnSw9S{G&Z5$8vV)WA*||i@$=KzjC!sH8L7Wr z+a7cI{+~y|ZS`#G0^119>bEg1NJ17>k_BRY}&=!}1e z*Ds(0&)oe*A#BkkG&l}j`vqt=Z$t;M4ISVSG=isb4gQTz zWL48}LheA5`Uu{Ng_?zd+}n)(?~G<~!4WTuAFPdTM^C`d(4+Sobf#xw{SUO`jOM{Y z=mAw4J(@dV>Ks4^Gz{%$3Yy$cG$-|KcpVq)XbU#P53wocXc0o!7CoTuK~KmB(MU{1 z2Q&wb;M2GXSEC&bZW*4t3+-nDdf#O9`6rST?07M{<}adav?11aV|D5WF}00ag|Feo z(FQuB&-aS;!DvULFg0Mb-3R06GtmLhi`SD&D7c0%q8-19X7e6&rYEpCeus9Lvvs&$ z5bfZqXeRo38FT>E(4}dJzJ5DkGaQA_^gG~m z^h8{N9;Mqb6HmtL+1rMsEP)QB0Xnf(==0a1YkmhBvDsM3{lAEUC){o{tB<26+<9~W z1+NVuuZ$iry|E@fg|6{lbekQ;MtBwtan*JqQuWY*G({uQ2~GNbSj_!DmVzOB5*^4= z^nvwgMBYPZ@B?}x=4>BkSOv3CuZKS0811+%x|Chfjs~DhIsx4kGts4e7E}NKpDQW& z;94|0-$EntA$kscgLZUPhtP2`bnVN>dR0uPULS3^5judDXsCOj5xNB($T)O~W^`cx z8bei`6ivi z>-+}vKzpe(``;Pw;esBE{uKQe9dVv6!OUpQ=r!o>=!F&V9?Zn$SRQwx+5an6!ppjb zgQ!KcZ!#7pM4v<(dJX;0?v9~rTj09j)zNa%nrP&jM7u=?M<<}|&BFS)G1kwa6HXTG z9tu^WO`@IfMsDbfuJuNAEw@BJM9=ik(X}klBivU6J#tH+OH%<|$`sO&2mWuTn=$bY{&xK~_{%(!Vus7Dk zyU+=&z~;CC?dLCSiCJ!9{~PkQH)SLSV0Sch8_nUujn7PPYHCy<MLoq3z5?2e=r!;2vy-MQ_PS{o~dBa1Qkw2ZV?wf1+TAzoRq$2kq$6fx%)pm3mdQ z;|*9EccU}?1>L6Q2898%LC=Y9=)n776&#M`a3T6m*^X?>Wa4iMHc)tQc!|_Q2h57-`uqPmZVwL@MI%rdeW^4=N8TBIUS?Fdw-z= z&o&|~Wf3&=b+J6Q8Ig=%3b|kiXU7lbp$%+BBd`Z;_#`^RKhTECj0};hgATkkdct)= zXLv)relt4I+t7YSq7fOJq~OVP54wM?`!1M{hV&&g>)%BO^c9+9KVuopIx0k_5_*3F zw7t$~hu1}Wp*hqKz3)Dpg2_1)#!$HG4$f>|tFv(*_4n=!A)Plm%zQOE^3Bor(3yUK z4*XLzH%_1@Z*?SZX>G$YB zenr>(547V;#)Rv|(4{I9>-DfK^`_`{zBPV65%akJ=TdOS&!Sm7W^4%EOmqN`VD@|B4ljaXP?5T=&(CPlLwzIGv^%t=rev75CI7wa$+o0c=?!}(C0F!+w z{7T_k?D9bHDfDakH+UWXj&^+QgW-T0jlHQaM3?3dw4r=4<^(V0;evK_L z`$ORmGTP%f>f0ZRA!#x>jI1}BOassej75*;Dd?=%%uJpdg8r?cDw;ivaRU0{0xU-#+)$lk(k5%e=h~Iax&WC zO!N!Ma`eF1j_vRS=ERDRhjXAdx}7@2`fXT(+;{-r<@$4T!%_@>A{=mIqw~=LZo&fY z|7{c;`9X9bN73Z@CSE^-Z1=?P=mGT?x*G~S8SX2NE=47L4(p=>J%*l;-=RzMH`-6$ zdEx#-nELyF#VMFnmCysH0UGk#uo&KhUGZtW0e?apyk>rAs8@6_8nMyn=d;iWEk$2G zE75`NMEm<>KKtLZ{0lCmzK^3L{ug~9|AO$AtBU5t^=QMlqW4WeJD7zI_(^oYE8^$x zqmep_w*Lb-mHEFX} zeSeSUS`_NV&|OdqjX*o}{{GSA@OZ=cc*CPumK&C%Gu?|0;B$2CzDGMght4GbGjUg- z6R3@L*cN@RFM5uQK-YXay5#eb_W1XID759mN^F5=(QK~0IQ-E{3$&s8&>WbFHt-BO zpk>jQ(V1;Tx7T)bpnK8wenbcIC#K_NOEUOpdDwqfQYg=bTuZ}@YDGJtOE3i8HZ#zM z9zzH63_7Ei(Iwf8hWH~i5+^a$A!bs)?AiET5xuW9rvClkJ{0P6VJLc_JdYJ|YxE~{ z0EM3mUo48DN!l5U7+4wf^ZJ-{1|2Dw-M!-n1JH)< zMmv54&4oG9Me+KISYLxiWFy+}Zgk0xqf7KN`urbgyBW(u#I9V%{x?(=xZuniV;Q^= zGx0(6foIXszkv<#J#2^<(f!?Ud1$a5nj3x4`v;&oF$zuAd(ntJ8Qriv8MfPDF4)n3 z(Sk38wJV2i$5!Y&VF)_VDd_%v9$n*IXav7SJN^ls`CsS+v#baQ(-mlB>Y|ZtlZ+p9 zM7Paw^npp}jZb1GE=NPV6V2))SQY<_pO;@52GkD6bA2TC!0)jcHeD44{s6k$7NL<# zo}^%w|BiNid1WA%6jlz#23cUPqI3CpwWY;^$}3$Xq}M zkW8e#7&^>{9<`UDp{{~9)DhiYedFh&(2-AzpU+2^XeCz1J?K(iL?=|}r7(fA=tP^N zIWQ1Qy8j=hP?rm<(2l=CcSYKokZhM?C+h9cZL}cPpFwBx6WY-Qd>?bY9P0bgnV&=t zr1NNmE~48z`zu_h|3pm+CRL+oFEne%Vg;OtF2PG^M?0}R9!7H}%c~(GSE0|9N4HyT z9D>boF0RDe()eBRYvFf8E7r3A&B8w^_`pSMj=9!_Z0&%~;C3`3_oCZwdc3{^ozX#b zV8_uV`xTv7`ucEvV)TjV3LMDiZ?0$myInG04-HjDbD%a>!%k?&Npz+&(PVoL&F)p` zz!PtT?UWl`>Sl4eWo{ViXq~$U?NimFU{8!(#Y0w!`Dt z49jl}GaZUIQNIWMV)1$OH+0~aZVI1Yjkb3W8llO!1fNV&aGTV9Gb8oi_jN`?{4<)( z72e87{R@eG(0zRvJ7D+CAt#n%E9!5e15Lc0k$4m`(VTe&ZErUkk!)MSd2%J1L&^FS z4EX?DfcK&ixcr@vOvTY0sf>ocCN9PX=zWLr7=DZHj%{1Rgx<$W)K8!h&hu{kAs4L= z#s}U1b11l93vCObDUTmgZ-923{k@PId9V@n%g~v0Lz8nLy1ni~lkh%tDQ9DCT!iMt zessX+(fiW2J8{yq5Cvye89mWzp=;S5U8}+9wz?bLrjxJ*Eo{Z9@_9TI46x=fTyX~*%by_ ze0MkpYG7%uH^+K-D|W;s*c^XGleXFiY*Ra!MZtZ%1s&l|bRdV(ZFdSia{ohRqt|jzuH34Q=ND?#A!p_1E@<-zRKCBYnkQ_Wx!IRrZDle#F+)FJc93{ZaVg zaTJ=(&!HV`#;b8Jx+FiM1Izhw7*KJ{q<#&S!&}j#eKwkWFQZ9+TXqdD>v+R%DzhkMbrF1#=NDE2Tq(+c~;K%1lY_eHPYoup8i z!YnkDZ=u=yB|5{O@jkrdKzRR8N0;ImEQ2qh`~CoWUi^l3Q0CLnVN*<}-UppfKQvMU zum&dYplCz(+(YYKXd@MqxVln2fP?f>NRLG zZ$NS@nb<;MKH2;!I@1w{!nf8Ru@d!`pNGGIJPP~U0QSawhr{pnZ^wDmPvJUz;7B;@ zYab0c@Lu#=oXO|ej%6e!;aptf{=f2g*d9CaWc`x7;5>w{y;~!oHt|H&Wk+E=}dHGg5zLyB|8S*RZA!d_ln*3Vsu^wKckJ zM&K=2|J(2viWlN|>X)7j5t)WIv=e9JZ`cnfe-~!>El#C=+o_DiNFsa|JvnbV9e!zb z7pDIE-|s1SU=;fyd=qMouHAj;$uN}|-GFYh320J2hs|&|mc-mY zg_l%SY)Snt+=Lr`V*l@di1vVExi3^pi8wA2V>sfLw(He?EmYz@D>+rxZwHltI;-Cm-=E{kDuWR zoOvNcs?Hzb<#2~*HHid-w=WM|Ak-S9Kbw$Uglz0 ziexQbDa*KV9G<|UX<1Sy+eO?;{i^gViP!NcHpj;^vZVI&rd$+b06_$KLSVmq1Gwr$(CZFFqgwmq?J z+b?!r^z!mv@_+kw^;@(4TInPiBl)lcD7_$1r{D{yi?DcP z58orq?QawleMUQL6p#CBc%`Tw=Ou*Epl+UBqj}uNfKOm3*1v5XD!RwL*rI_|@izo@ z54Q=d0`3O&a2*iC<9_Bl3K*L8LBr#qM+MF@i4R@^BY|%~-Ie|T>wsZmdfdC{#-I*) z7w|gR7t8@xj^%Ohf`@}T6?4Fx;1w_y7%sNQy`~a_VOci>V}mV0ukH{AFwtYcL{Nnn zfx1s$52~TVpmuf<3703-rzY?g%n}E8A+k$$mnHY!t zE3g!Y8dzt6eV__m0`)}VCMdzzpc)Jj*Vj;FQ0ut1P6_H%WCnE&3<33Eb`Dg*o1k>x zfPvtjaryfPJzB+x=W(CoWdOC)JfISbfqEFO2qppB8;%3D<8`1OPEUY(j`#r7hF*ix z`3&kw>c61QeWdulYbXY&Ya@=AiG&h@9l+e6&gpVchyJ$V3&XFV3WZAG+es8K6YJPu zIt3LCJP6c=Mt~{7$)N5jy*rucY7LptN2m@ev5{dbP&?`b{sMc0I^?|) z`7W+upf)fElz%&@{KKG*z-drVG_HbrObNp~SGp(z!PL6_=VGEm*a*xE_5#)EW>CU= zL7n>>pakE6x+cDZrNDqBz713bRcI-w{Oh25k%G$m0P6Y04^S6(??5%e?QcAjA~=?U z)4@N$d|;oXzN>p1Sd;ZdP@Sht=EMA;uAQo&uJU%EF5&^88khiT1G7Q#wt>29KL@IT z2+6sobo&ovB0>?6`yr<;s5_eapbmXwFbmiQObX5cbv5q=buC;3(}8zE_YkM>oq|A6 z`DsAKvl=!4b&ZSyy&;)QU=j#U26Za7fVwzNgF2+KQu=mQ2F%5}E~txYGN`M2mc>_r zy0~_M$-xJp8VH%n*H{El{FI2IdgZ;oHxjgQZ%ekQLXwv8Q zxKAwVfoeQ_9^X}+1e93U}NwsC|>%!zC&IVtj#)2KKBTCoxx0WF^vSPffH=~ z2-MBzg{?#8_Z_nEpl;VuY@Ha?5l8`Q$N51W$-d%5gnb(m z2?T*U^cO(g*S`c)f#C}HZa$g8jI8T{+TmzW=X5Hl$B4P0PRTA%7wcs(F?a_I1b=|4 z6ThIZ(X62R`+rU*BIXArTn|*|EkFtO0(B%Nf!fJhP>1vYD8XxnZ$RCALl*M!;)7ae z0(G-11xmLTD7`kI`}*H7COQRUj4&D0MYj~>;&pa_DjZ~Z7SyBHLr_QTsri3_xZlgs~=bEcSJR4_6lAw>p|^A_9;XA&su z$NT{P(&Ti*w?V&uoh2}gVp-^Vp9zb+gPmj};UFUerlJ|1atZf@~(j!w60_Hs84A+HU+ieN$%-{H}1Sv+lw? zpNaLh#wQtX0Dc}gUE9kBzA&2y{}_0H@s7=`1=&BJ$)nITE4G%TM+93jvM7kn#Mg}i z`h$cSh%LZZ4YAeaM8S8CBcKHceGxEM)zTe2mwBSa=9N zNBBGQ(TqR@{zkNp4lU!JHP?#du<&@n%vnm#Kg9gTi(^hY*1Hf62mcE5H#A+8^%1ZS zI1J8ma37c&&JXwT7lrhQcA;=1h`givpKU>;x2+nJ*ceVE;(;_$5bi7Tin8-5aFP+9 zgMU4Z)nR=TUN_c$3rX%|^h%N^+sHhbd;D31L1?0aBm_a^r90OqApZXr+k9i;^nibw zouo&!J;aWT3}{`a30Xs$dh46IKg+<^H|xlT5p(NTz**Jjb28%0$=Yw@S?{5tJrrpf zteFE8yvK-(|4+#KD5yuYP;md>sJWnB>qdFJJsmZ*s=})kn1#sN`-)C2kEI1ig z2omao3GpRjj3HjpCG%_-j7t2I?eZX}peN#UXeK{7dZ1cpT9b%9C3h%sza^)5A#y8n z)QZWe<9`>&RRRsIvo*HM-d0o( zide25j!(1pTLpNsH|EPu;r?)+>i=*2jrezhJnTDrP1t4gBLUq{_U{f6{kGbgVjaQm z{-fh3gA?&3vPOBu#hI$3VQW8aF1g8BghuaENdN869|h+S=trlkNFHLv6<&q!gsu7i zv(9;hyW&rWU52c#IwkqxKz>`}f5vi4 zVJ%AuCjm{$9x9OK_$lauZ)! z=KJxLp;!*cjlg=wO{u2XO%R-(;1$I4S`(d^hr%ygiti&iZQ;vWFdw8Q;CRt{wyVwTs1v@8B>ag`Vk_F)MB9Un;HRZ2**pYe;k!gmbo`lU=wAx>O|LDqM`JGf z5r`#+v)^iY*RzmKQbFdQt%%Rd3&tdTV3Ed(?Pgs9-gJ64Z37$f*3yz40RPgbf&8$CKb8>AY@d{0LWmLf5 z8*WFMt;5b@A@~e_Xe;s+j;s%yZ{TA_QATXjD-Cx8dQElz|C2yx0{dwsb+E&B7*Sb5 zumB0NRm_hd+8JC09yNbW@^9jcYK7CHla4VT{|Ia91nWs~YJ>dCXlDujzIqlD*^*jQ z;3)~4SucVR0m3BEZy|%t<%>)4r-;oa=P1pTXTF2cm%MEpnFR1_f$fRE)A>ht5Dnyn zI~$G%zxN4_Q7mKwnGdsz?HEGiS<456w8sx;mOwz@Frv3B&pCz=ChWbB2zY$Kxi_tC5(!YLlS?5 z$W7+gi1W>h&Vyh(Q=V)Nd45Z7JN2(~z|V#r??L)Zk3V{)D;mUKIDdfw2qa`@eJIuq zUkp3+#n@G3j=(ks|Et`&%{q6m2Kv&NY?Jw7!8wK2H~0ha&t#n*y{;Pgs=@b$3)W$A z$g^LqJ0^)gNYYKFfs|e{p-GcvV_E17uGR}&k@K=<^tAjgB8g_f%u573?@9=b~DE+ z@fN?+0^T!56vq2t`R6H`pZEiG>)WY(4(E*JdK*wUeXxYQCf=K-WbF;>!8ys8Zrsrb z_Mxd86qruV1-K^}7mVMXc|F@XQ}-`o^fE{p+ek0!p4RPOcEdXRoB0|7=OJCBKnU{} z$G?cf+?n+@8n_9TCjJIqYj#uH3cY4MM1oip+eia=pRK8xx|1CQb?Pw+p^EF_cX`db@@P1%+GnmRXYekCpnCBus zPzx-PsV1U=Y#m!zKyED7QQ;nA{*8*C7)z+aJ6ui)avCvj3;!tmxWp!aF@1Hs?&q93 z(BgG#-&N*EHVD@t@BBaiaMmC2?|@T>!_l6iBU$&rKZ$}@D3}!dMUlmfAMkGBTMc(J z{%Xv#(r`_86P(lV1V-bWOqUNJ0M1~1ejA6l-~MIZ8t!FAdBkONec;^1R~_Fl)(2_k zJQ^1fdqqxVihaVD3Xbe5^APxl>4{Zpk}}~K$&N?)4vW(T|1p~@p%`n~Ly!*|IT08& z5l@WpNpfWs(K%yH%>$d`-^0jAp|>=X6pR2CC1)+UEzt6=prcke^C1|5QIR9y;2VL! zSV(K|#YUtfoIH$&wga~!KXzGTJBZ2tVtl30C31$rZH&$W=6BH9hh8XnJDHn#o!tbR z(2eSR4IKTaYE^fS8RnUnK23hFBJqjUb+#STDqf&`22L52f%t z_=~_nj6BRs!C6Rr8~Noaa>F#P;vdgALPMR=lJUtl$ICYvJ5?ZWB`C{-vkJahwr|?93^Wd)E8A-M*YIW1YbuH9wiv>G>u*H= zT9}ZeG3GyNyI)9y3vDMgtby=|X2BoN{7Y$C_JW)zR%0izlFYj?Ug={N4P^x2uZur`k(AhZ)?Ltkz??Ul zo!P3Pt3C-rs}au3yf?uvh!$p@20}sRHyHPcWu)kMa()oI!}<`-k?Iu2KLAcvhO8a2 zG1ho9xPB{4@f+wjCw2wrE%;3pY)d!$2plFc9z}CP%x*{E2$-0JeqbdM9$1n7d#`h%A$3H)h?4jA!_6kg=6HpM!A16Ys}7zqMVCbxz`~ z;5DQ>zeToq8@iU2Ar^|fD#5CI>G%^JrggtL4^l59Z$NYt!4mi~GOq+FI*CEdMzUg(cDEeoQAoQeR?7sF zvc4mhSuX^(necgheVK2iG1*k1HPsgXSlew~`~%55M2&AWBI|(fH(Zq|;Dx;0I?qYL z6nHPOo=$K)>x~dUFb*-2<1Yn28gp41*6k4s1@2%25sAg5$S-2o&?!LCOD>bUQev|E z_{*s>wgG+bP!p4bcmADP5T_&Pw?s@vG5%5m?23;wI<>*7aJs@>NdpsD4@R^!>x8!R z8Z@$t^$T)y!(B;UE7r37;AL>O`=67T=(}nCb{(Pi5N_a@0gfT@F!M2VdyDxp3M`zzT~{XX9l}r& zzau&W-(U*MPBGTvKaQ^ihrBxTgTyW|GT4RHgWNdQOdk02m542+0a+(%4T4{qkz3E) zpE24Zlm@v%&R-WpW4ND#UM7=rF|tNazKv352Zpr!i#1i9f|B+rntidL%_hGnTV{YmF-| zD~9$sazDar#5%eiA;psD2lbtQf+d|ryamnlfmq*)E~lBYwxtNRlj_7vkQa&dR67b= z;b)485yaXw|_S}E4D0mLHW`$duP4A}!>eVM1UBNm66 z-jG(Pq=|l~q5gCkgY`L*c0z8-x;Tjwh@~RQZ!fKAM;eg5vdw&fznJ`qplk%W6OFrv z`33l!!SZ^R5uUD^QKSow4m7iubt2{qNGNN&$wk6Ngc4Jr4Y3o zDEg3jY9>P3{PCWOc!~RzT~=HqXhtxXpKvmmb~(G_q5#*)s(8Gg$`? zAutYdH^{4`U>2HKV;YP_T$U$TW9@( zXEA?4xHap)k;}z;nVppy_;XS2G^LtQdNr{U@br{w1gH;#y~oGDU-{35Fkb=p|E)YZ zIrRk{S17s&LU$uQC84bCX9dNIv!06he1wxR-Y_azf#MvW#K!%>yc~^IB3_gs^H8LZ z8VqKeZ9X4uw$86^FSdFykHe(bglp5`6^q#@hkrt1; z%u6t?r0={WTexZb{2J>>J)e~P!%HCn${CSFNkH~XBkOtHt7R}cdw*{=4g4j#O zT#`>ARETEM;xB@58;fUWK7i&{!}*QCbf1XR(+)}^8jEMXuFPknQw_eXq-iWA_nP^B z>luGC93HxCPU1N`Q}s>6m+JeO7vFKXu7S51%gF0QQ@@$FwcQ)T31mIabQ0n$g7!iS z4hCluo2sX!`ANP7t_5Ws5#31l_nCL1>n;@N%vzSwc5%#ha0qTwU&z_aJP3_Kwuw@v zSCITG_%1Rc!{PI9uI<9_J!wMnEC{yi3g&N3!Ac~AAu%i%lU=Q6bY~rd0yW5M&iYR) z<|^~!9~!<&ZcbuRC?t!;7-YJC_-gSgD#X$RmVq-M_lK~A#Iqcc9VS|ZwX7jY^@&f# zUyYFpe_InTYP&i^UUZuC+c9|I;I+ijmDqgv)v2}K&Ex#XL$I9{Qc^XNYmm?y|8C|n z?Wo)~#n`Od;BP>)m*EvdEQ#e;Csq=_>^1q+bBYj`Jz)`-CfDGX4a6Uy>pwq^c`T+e zE-}&}UJBvsCgigDk%c1VDe%Mu{Qj!s#AR__)v)~JZG!WNV(-Y|l|rWtI1WwOKIUz} zr|{j|Unmnyk23|N-C|)|5K4i_0TP~q<$Z1^4s*X>7|S zj5XH>y{Y)i+UByt_1hRbQj_$%SP{G(AT@!oh#iz-y^i^6aFmH9p=c*!0W@)(hNjU# zR1;ju`aRsg&^Ul^4kM6tc*`BjJdPFYk4`q?)9{6a|5LYrzxBW|m;z^QcQGm0fZ!?o zek+Y{HzPfHEh+F0{ue8B2fyqd>nY^Krm=$*+=)K~MOWcpLc9dAGsN-{bI-qmWK9;s=sqAaI6`{kEARQ}7j~&|?bm_m0jZf|22W3|3hD z%j9pvf5uMfHj7UOS5TwAo{M=AD`9~x%!6Bf5`Wnd_{}^vVkcSefR_VeZW{khBeJx1 z$XC+rb<2@|JnQx3<^&U3BR|QxNX?{k>2NusUr88gO$1xKC16P!_~kN$@Wc(&%|yZ0~9Mm_f5E zpuB`Sl6g5a(^^m0*mzXtyX;`OI{es$%p!71*#YwVqchP91!*i_{u!3L4*q;fSHTz7 z=kq$rn4}_5jKbZRpG9yjI1*A`L_U!4l8vo5!I2c6PtzC3k)>uVBj+w-0bE%T;;-OE zw&qfiKby^cXPp~=S3CHb^*9>Ul13R$haj5^c?RPpg3TN70%u`Kii?KN1!|N?F18pg^0~Zu#k!RTHr-f;?arEW!yrr zDtU9^+{Q0k$-F6}J26={>d4}tmjcdRhF8CE-h@yZ5!p{mp2@C;v#x|dW80PD{kcx^ zATSSK7dfzta2Jv{kueyZ9E{e)KcgEJ?ie`Hh@~L+D0;zdioOx5xj9E8)R``qSiw;U zTxHB5-kjvcc9CvGY$o%_>^P@!dr~MR{sZK0oX2jfc zJsQUb2z_Z_3-hE1%Vyz=$!=m=ktqm7WSxZdP;eml1CiE@UvQU$b7&wW8gIyN38$46 z&5VB+`iaOH!Mr@99z5?p2(j!4+yNs%>gJZ`X(*)NR*}Vf1gcQzG`t3kFU%()G#E@r z6IqD|p>xs-wr!;RxY>U*jl?F*p}d@Pj4(fw(MyHfS=!oLWFCe{evE<`=d2T6o+opmnOdl?C7zBPq2pwX7RCn!v3F5AyqmV@AH9VBXpM4~Xr@FPq2cgm65I)q(p5I=d16!I;N} zcCvv2wyD(2x7&us!3*#D?flO+5m(uMltUyn#l~4uM%&c}ipnms&OniR2(`4G$$t>v zPx2C>IS~J7e19=NMBYZzSb?@{s-KQA2f`7Yb%He#i-fflPe8Zz5X{F&hIkWrTdZIv z;;n6m64bM6*&`!c%FawSC8KB7V54YT2BbOz(m2t5=(Ux5y23uebp@Dltc zx(^+|!C3z-`bYF{%t8N&|0qnv9LG{2Nj!vIsZU1-_FcSwIC=yNaQ!Gc;D0d-<~kng z`O$%tMF&tBopF7ffF03xKf+`|3SUyNfuE5zNgTtPcmfS+i4$RII^x6B=VCXn{}z_+ z4!oZFtLU0v^1pDs4Vp94V*ME$P5m$$+3qJrP7f+xAzJPX=?T>I@UbOup==BwBeoTb3dU2`wjEpMYNsVXF`9)(9e@sQn16OXa{Z4 z8?VO^*dGhvb}WedqrXS9oeiNcj^0-T-F~gmHSQO^8SUpbw4ZU9E1mVfKi)9sTxehc z8k#lejW1$J+=wM`4_3gl=*)`$#UQa7_QQwK=YB=+`vYs?6@Q0`b%^#($@&ka(1{!F zLYHDI7Q%1P4vyhfcphtFo%12fZ^A~@S7Kc}fXlJqKWr_09joJ{f7vm(7TuOjFNEFG z8cWiDVj%_HfM#cdi{ZvjnA#?2vh~IMI1DS{J=h*sVpTka4z&1x;XLVqKK~^;k#Er@ zI*QlgznCmTp$)s<8-}5wx*I#=8Z?yW(Fe1nh5IhYj?^omxiSt-x+&2)=zyO@*L)Rv z-;1&SHky1Nq@^VjO)2c+LSrnL9ve+lQe892e^kVOi?)urh9p^`EdL^{g3T zK;_ZxS`&?21N5M4hfb_>Mlvlii)`!7h0D2cBx@M?f6*M-!pMuDxlsA5uIJ!H= zUY3^H_Y=^inTHi|HM*o z=S)j&ujyEd`VqVfv*t=mCErARnEJCg9c$+fk$W3GH$Fx?+>b``C^GP5;yeXslsiv& zAU_(KQs|mjMn~Qd9cW85)Lqau9Te+h&}};v?cgai>DHm`yoD3+6TBZ==XGMqL}D9- z2fUCkEpaP;h|a7|{}lj(T4Y;4IM!5J09zQq79~B9wLwpZ7*-E zUlHqNWBp1T%IEdt^(B|H{~hUbTySO^;|Cw11NjQ=_(ycDe?udbC>qxKax~P{qt~Gk zy9s^nZnXUeqw~=mc@|&5cZ#zA4gIhy!i^KLDD{WYhE|~+yon~$H_;!_2>lOTsE~R6?`9L9_$f@gTI_@o2vfCn;2-umqpM57GTQym(miSy-C-3bey*Xe4%^13G|4 z>IAww{za4VvJzn_3ZP3?0!{8pSQ+Qz^_bj3!F`^uWLoNNc0JngEbNC*q8*<@*ZLwl zgN#z4<08?Dn0k3(4Ln% zsW(JFpBk?($Ews{MjPB8KmP|!+QMbRk`zY=Tpx{GJFJ8KaIpJ-E`@4bI1?>hHq5LO z8j1es%toT2n~ZgFEt*_Eq7nKX4gKHfYd5`ITH<-U3?0C0=)gWkkLu5{68$Isq|gIP zl}}4_z_I8Ew_-g%$J$t}LR#tz#QwA-b&wpdE}s51c7zmd{3$bRk}cOVHf- zCDt#g8YbEqy*{F9GK69}7p~#L8nlDc=zh&wEv#j6bYSJsnK!^Y@LKeX$XhrpJ(2hU z>tfp)p`Ckcg|(lHwzmpXM?2cjH%SWZDEx}<-@3KKOj@E5=!nj6M7%x*O|B$5kZE`V z7sl&T>x7WcMh}=p=)l*aOS}b5=6#rI=XCtw?`XlgAv876Pb5hy$qCKp%Jn zZD?uy{DoNm5Z&)P(f#~AdUR)L7*5WLXhfz)A3>A!Npv@@#N6)xmnaO!E$Et5ZWKDK zh2}(4Gy)yai5^Tx&>39OB-~#iS_eItnxjYaL^LALqT72rx?A>QUA)kQ{cl#*zB=SU zNA##1i0;oZSPdUTBeMnldEq0hf?1n}fz(2C=xTHVU84Qafsa7f{C;%F=Elz#HD&+X z@N-vUpdtDW{T_b`r(vFEp`j;m7WLKWxlylq==feV)HBeve-!O-5jwyX*d5WSoCgWK*_{(3U<5*UHf;@2z(Rk2hq3H8O+4O*M|EVpfhWahWbXd zTh9g_y4;TeDDi&jlMzG{1&4C-H@1Kky`A4Vs199{b}Xzu)rshsK>B2+j@!5hk; z9aTY(%;DG?XQ2;#g%0$`SU-wp^Z`E^mh2Ojx)Ub7Fp@%7d9&Z$umX3|)eQ=nNBs!vHQr-z`bJ5+6i!=@m2?_xORK`6XUBg+7oN5<0j9J+rUC z7T60tLZ8Gz_$)e*OK%Ddm%v@rTcXK&`OTsIQs~lELL=S`-NwoG6b4clijMpvbO2wW z+j4iTpF-F6Y`mT^G%c0YCD7f_6n%aY8o_C}JdH0V=vp@&7CyfY>rwB9?1E%sMkpkn zMsIu*9r*`nho7P&-HZMpat5Eoyu-tc)}Y(=J@o#s(G&F`R>!09^CBZcgeqYg1M7(0 z-2a_NhM!PYpff*(uF+X6jaS^7mUs=DphC77BSdXgQC^^@qpE?_l$<@PXu1JR?= z(`d)%(PX{kjxd1BF=^;BDVY7W(04#9bpH-SvpR_mY#F)~Z=xsIH)w+=(02YqXO{QQ z@ciY`251C&qR;h>j=7Wl@BW^}1(RnLI@0xMmcNB&>qlr#>_j`-hjw&4`Um>5`3Idy zp1aag|JklIx}-0m19%;M{%v&I@3@Qo?-6>63(lm#m~dkSw8LtcfpyS__kOd8=Z)* zz3mvuwP<_W@Cfci2lCdq@cDb_fcK#hPadOCg~A!EilxSf8``5C_d#bc5Pje_bYSDr zkl&9raUPm8+b|suM}I+c>KNKyw!1?+IdPu*zc7V$eDDHZgS{t&FQ3cN`cbTnH72@W zIa#qCzJWRDDeWEx%y!H*DJ?OT>m}|B6Iy|J{~=XZo`cG!?wH%4RuE}*@mJW+>M5Q78>G3=>A_5KYuq~{{|iCVXWo;AMrq1 zVjC{TlQ?)X9guZhr-aatd?;k?-B^&%XQ0Wp6g?4N#!UPSo!S3z2A)OlOHK;|eGJY1 zmFR$9$E0hroq{v|9G$^F^vCa`=nS$>5Bs(_I`g{dKsrVTV;jZWahsOHY=#1!+`1#A| z_Iei`$ab`Yuc8Og^WitN{hW`c&Vyv4I0dt`G}=I2G~`#K4c!nwABc^q--SkCJyyYk zXcFg`8=lXLwpSEAu&SXGsE;pT8#LKZ<0bC@3lt1h#$#d4^P$e6it%S^Fk7Cz-Os{fxacj z%?}MciDvc6=)35-@ICrkJ&WbA=z?&)DY`p)p-X%lnj7O5u>akk55^mwLPPd4IL zegwVm4|Mxo_C$zCF|0%V%IF}hM}0op&ZlVPzQu-k42@8^g~4hI+5d*3E*D(e*62uY zK)2y2w4sO4efu~%fYn$E-$ZA=7k&PBG{jk-45815E=^&y<4iQCDxpi+AW6Xiv_l)X z5xsE~+R!+>1Rp>LGA%j}t5bg({eto(djB_QhX-Q)SM+s!25t8o+VOvw+W+|%g%M?< zGpvC&&>Fp=6Z$}39EhVa)gh)jM4vl=nRo_UW1*))=x@Z{)Ne&2`XM@zAMjP*|HmoV zz_P_@iRSnk`epMh8ksyxf~BH0qRr5p=o}pyofMsiChZGY6+cIl^E_6=l1t_R$-o!_kB6?&#yu7o*#;g8Tn4g%+6O z=@6oh=*(}9j*U)@&c_~nz6w1D{y{^U{!B0r`YtJsE@gN0zW&jh(WST*ldk21@xpYp zR?5a;;+j zJCb5t&^pof@rEI2_TPaf+jw-BOhy}8fF3AI(42V|o$32VGyvPLykn7p-aws3Ig{8TEH5%dpXhXNg&+kB=pM>*q7J6Tq=R%Uzi1v-nh`xcI zGl!BCOp?FRnG{?d4wMq;jOwE^>Vn>PBYFUhMelzIjm#tHeT&c~U5O5KHG2O#bV)X2 z1Kf#5GMVG~@H#DphNKHN!yC~3zYyEuv*=7uquVaACNxk49Y9s|wOSt?NXvM=1NxHc zh33pSbO|0q2AE8&q>#>q=dlB>jW_&_hA77ip@Y)s{;h^4X%{pC1JNURIQr#sGCJ_p z=)m5<(fA%V#9C{^uXaY_WxoICQ*h0eqa$C3cDwbr< zpErIfybU{HORi7GOx%VJ^awhz-_a#Vyv+Wug83;_!mH5`4Mo>%d2|c9L_eSd`w?%) zqi93DUkS-N5}Qz;ieBG}CfPT!eiTi{^U)lyvj0bLq4=xeeLoF-U_CnG_t7Qz0$rj# z(ZiTY{WKbp{I7)$%b?HIMW1VqF2S{EyIs+N4aI7B_iOR}zlsaa>~%Cm@1Q>ceS)3w zDAvWRUJuE18~Ri2e)PWcSOG78BmC;M8D>(SgXYe9bONuTC*^zSKo2M52dB`HU5Mt{ z5bCAT2kW2@G)HrxL;QRII3pn@E75)b9hSmV=>2&&h6p9gQE(eo!*W;; zjl_*;=mwz!7#XkMjUK5z&3P%`_SER49SIL;w%Mcp7qU; z9G9cXSQ#C0S9C4!M33T$=ztfaGhKx)*=txCx5n!yqW_@JU-nk$I6wM)3C!;PuRy^W z)kH^JA6>Jn(WA5_8i{Mrwd;b0@UB>&hCaUr9mq@QNw*p8XdfDZLuk8yq5WJ?_kWhR z!^G?Q6Gx6aWPiJFVKmc z!>>u2(jSEX%zoyh5YekX4ku#|tiyeeq0fDoq+o;pLpv(BJ^Z=6cG#QxVr+$fq62I6 zNm#=qI)iyw7kA*5nD%M-Z@V?nwVsAXVlny!XFEE8AF&)J3+)IaZ-i#&P3Zm|j;`6g z=z~+EOVDI`9nFDl=o){4ChvD>E}THu`V5*2X`h89EQD>S7e{g}nHWsL86?qn!E4b{ zpNEELq8%kD)zmwG6_Rc?I^f4svj3J* zn8Sq^a1S>6IxVph^Y0A5r`v#!QoowkozdrL_I`(5@JDnz)!r2%(j1*(J2WRAMI-nY zdf(UR01jg6&;OjDU=I9)CRMH7VK>}_ZpXXO6Y^2?zGu*E{}w$V&tL;AxF?+X9nhtj zg6^u>Xv7wykz9vHXcH!@QrJeJEuKdAd&6(ze~?6zXeQdgGBhV%Lf7<7bYP$1J9q#c z(Bi$J<9DzS^-s}={fKt_3)L__&G`X%%T zx;rkQ_qF&g+;<)NZFvBi%o8z_+?b79sK5Aqh{UM_s|Z$Lf39LI*@~C z(i}x|;ZOAb0tdoZw6fThdP_9v=A-w2hbGyt(X(j8(hi2uUyk;dtW3dgv(?cK+r}F@ z$NE5YNruJiW6|V$2+QI#@%o2osP~|`aSWaL#rXLpKZZybMrU3h8E7(bEd?Lwi6+~K zXcA45dC^tq4Bo){_!;^WQkI`WMOA+dfZxgZzj(vn=swPKJj}EVy5Ae2q3;>5-;RcMI=c1?u_3OF9*Ng8PlV6wq7%Iq zjc`XK7m|tI6dciDbcAEjZ8sAQ_0#A`-$Xn72p!NK^hEq4*7N=rmZ%!K6m8J~k4BSj z2AXS+MHgXS_y02#oWZMTC_h5J!X>^zv-DfEP{;?k!=gH_NDTBEseeY98nydRpJY!;&U`02k?+vR9>=5|XPgc<6hdDcMuI0_>FCHdi6?__N;tq68FQ6Tk|09IB zE_R|m7@g_M*cLaU5loy3_h-lVsa_uI-=jHp{0#fw8`IB*ndU%8nimaqBXoexqc@@v z8H2txC!i6042{T2bj@EzL;V#x;2-1Xr_cypzyX*&`Dgf@&v3jZjctfM_@LfjVE_-K zOEMSh<5OtIU&rgm(FV_ALrnWS)ElE~-WEMKI->&|h?DTPcs+TXf+PJmUdVYqE%n!F zOP~+ji$-Dw8nQ>QDn5&z8(*Ux>_?a2f7lt%q62U9Pl#A&G?LxX`$yrm?*Al(ySVT% zy7o=}4cXiWYf~SGCgbzyKsKN=+k__9HoO`Sp%E&5A>4lh_M<)&Jy$-6?n5Vb3Ol&} zFHo@Ib{E43UGRG9{m_xF$7T2~R>Oh+h2)!!gQ&laeXsM9+hTSe5=0>nPaKUUVNHL$m*q^z_vC{hGL#`cO2)85!xR2waBN^GA!~0_vG) zPHez6_&z$pQCZScOE3m&P@jWIPpZuns^bZChQ%&PPyO+^YteyiLbLdD{1Eq}4X(@@ z2CxR(P=6V{?;M&_S+k|5c2{9^my|+7UkmGD(`@O<)J(^4!DL#7hHeddP;5pY{0be& zAvB53pgEEI($HXWbXQbHm!Ks&v2pSGN;FcN(CzyHUWeN+O{ORAq);Gx7{Ej52kv@T2uHF zTViAWPJB*Kr^tRxd>`xO^QM!zd{0N0;xD`&bL2};osj*|B$|dM?FO{ruhD@VMwjZJ zSTB@6M6w!Ya=krPaR1**!3G`=7ZNX`Z?9cg5l^EH7cCIBO;t1^&Cy6)i|+59XvA(s z+glW`zm83)e~KPVmljM<%)}e8ko*4-1t0hu9eKe*VWd^D8TEE(w$4Oz;$8Ihxeaf{ z{pdj26%I>u1Nw8qFwDe<(Ra#PbX)F5cgask{xd@ge&INSz6JlntFTa!&~PX8fxc)1 zBctQd$V@>8G(WlyZD$)AnV--B{)J93>*XPmB`|3=*QVh1YmA2W8g$J&;azF`K!T&F z?(C zx@3Clt<(%}qrM5}V%1XVsrUOPbnS9xrYB}&U#x}4a5@$*9YVbdJ%~O;-w8R(gm&7Y z6ZjrmVEeM^sjpzO%d-Dnn;*DvBVJlAB;62n%^!}whn|e*a0`|zAGYmbyq$XG3hAjo zqP+-Bw*RmcHmR7N`rEI4(cQHh9Z0E4>HI4T9KlHn?FezU%3;5Dt&*PlgT}X`1NaR+ zXv$U%+wEHPK)M^k-IgAI5O{tvt3h&o|OwqS4S zm(&gC$N*%il8Kiobl`(?I0ReQ3)#OKJ5m1;IVch}>xcV#p|91I_&grMML4@bIQc4F z6?R1j^!(_Lp7jr*?R<&uj&rFx`>$ZbFv7;zjSn7(?m~~`%8f#ZZ$+16IX1`L=vo(P z9G0#--bMXRtc^!76N@$pGj4>Zsn5dK@V=|l6Aj(}b()6I-G=+9uSByq*(_|EO}L(V z|K{nbAG>q6NKgHJ{sy>_>nE`}u5KCj`LCFr`Z+XGX{|zXHb;|v6*|B#F!>&Z^w#N# z$M6Gej=kE1HC%{xQ1F`c)L$6-3~jJ{+i*nRguAHUkK3{5wdsj>G4s0g#6kQK4f)n~ z;rg%GjQX1Pp`Byx+5hh2${oVm_CY&XjbGp|_&?mxF+KHXzn<+BuK$E?pI17EBe!ao za5Oi@JX~*%CUY0`JeY?@WFKCShtZ?F{`KttWfU4;AKu^JMSsL}uK$7s@ECeRUPMpK z>|N7Szjn)yzCCY7I~a!!{C;%XcIg(5+OcRd&P1=j60h$`Qt)6ofsUwX_s~#D^sKKG ztsAd5M>}kX9@Tx&cgGNPV7FjyydC|LnZ!ak4}ES8I-$2?J^2L%J35Gk@kG2Kqeu8A zR0Q*Jy&M|a`gjRmgErU!?Vum}lDP|w)B|X{v(SMp#FqFpHpat9#FB~3o}r;Cn3WG2 zqbFNS%!z%`hK8dd9vkaP^uCAD{k$r=6@42Xh@L~A&(kXmq!`*xIZXZipX%|0rsxv1 zMQ7Ln{a(-&eK*{O?*EVD=NHkLWw{|Vm@8TYZKpI|jukKyo1yIvj1I+Y?*CgU7}_yd z8XrWn_E~I?C(zJd)jLG!8ub2-vEC0&x|`6M)x9x%-V~icCv>30qj#c_z6X=;&&d=_ zn&;7mH=?2a82ujb6IR8uXhWs@g!`(X$|2HkFdqLDa{Wieww*gX}|-Ov<`NOyEe z`=A4wgl^l%(B~H=DO94c0$qw7Xp;Paj`VMI4KJb%7abT*${OhX_o6djferC>w1boJ z`nhQKLE$A;4E=W95FJ3W2L-oFe>7C%&?T9Qo(GR&CO(H{@MCm<$I*^XqYeFyzEsi& z2kT)u>cj9AoQ+!vVe=v3t6Rp+DU*qM6smB;E$D7|47Xzbq3Nlg-*=(E8L4wi2<60K z>4`7-d@*|8ZNtM4uQf-cr~ZQS0IbRNrX#}_j?p-r`gU~Sb#4ty(GdOjXA+$#IFnm$ z3n3pJ9fKy#1T+_>p^=$~F2yo5^sl2Q+DGV;WQ+>QSp~hX6}ptYu?F^!^*NZ~j31|9 z!%yHKd4~TCW;FC^cZTOG;7!zr zqWye|esS52N%wbwyV4Uou>y9(^XP~>jS1P`4f|8?heqNZG&i=RS$+@=?JsB!{T8qP zi$*A8Y}hr0(0WlcGF8X2|2=40aKV>JA2d5}MF%h)9pG#%h0D?1@Gh3d@6h`%pzRbL z7nZUPI-tgAhb_?U*DZcN4BfW3k4uJaF^>!Gf>+Q7KZ$;cnbdd3`Z=`03(-8|!vIU8 zGp~zIq*b(g^ycU|^uB3mI}4H&Jn>e?8{Ub2hDP8AG{lF{`;MUp)J06k+;@ioXEFobhO^Kmn1{|}5!&!FbU@Fd2hJ;K zHouMD_hIx?^!_i=`}Uyi9gH5qa@0>?D^Hw!_k^tOfs6QHFdC{0Xk>EU8(uOc(PSKo zem((RlIduNi!lvX#OtfjBzqGb$bR&>Bk28Sv9bIAUka`8s!1Ud_oCY)i9RqNoxw`< z!8Pd2U&hpSM3-ng`b}srdT{-TcAVwDaCGNFw{1;y;B7Ir|NBs|!%=8Q529;26H~c? zZofCsCEATP`~$YeU(n~Pv721VmY9KU(1Bcse%=cm=xyjyPD-->{a{A?U>Q~*hU?=E zyYCM_oc@Fk?9vCqOmbs8>b0;l-ix(y2R6t5(CyrOa){6kXrymOm*{7lhQCavBMYOa zgx_48!#k*Vd@#&l3wm(8kG@pC#p^Nq)bL|K+zk?%)mavBZUMfBv#Jv;n%{3)uohlKBT{otxUW9iUVAhGH{fk%0G-IMn2QtYZ!}Wb7O?*vK;8u*o6Dmis)Ej> z9y){0=-X^4I@8CnFRqNHJrUNnKUU}ZNc0yOi_rV`Mvq4?pt~(ka$#7Td(qI&MAvpX zHo~>&$@UAH{Z~90vb`T#e+Hk$pK%k;S`?mZ_f+^*>s0idsJJ-nmg;C^XP}WzK1ab3 zmRS-)Ru>InQ#4zzL3c+ttb{|cJ3fN7@Gv&U!b`*Ne7mBd{|cSRcWC>+U>E!wUD9^T zQWNL*{}gO!BDTY|=-Qk^w_##=Si6Eaglajo;pyl==b-~#j4s{t@%n3Ma=#PnyD+t_ z(cN|$8@m6iKOIIq4D<5AooKR5iS@_P?Xwb%z$<7jd>8B4o(b>yn&<$!qXQg(Ms6f} zQr?F~W(v;b1e%Qn-2bJX4G+|bHbWn5kItY!I>YhU3?IaW_(8nh@42w1Bd{FTr{fK{ z4trwO)gg)dq3w)8C;9*;M^Si;g4-$W`S9JZB6^Z_#YH#;Ju*wK3A>^UIX=vU)a7@P2gZ2EP~vdM92%eHOa*&!OA>ZFGsgd@&hj@;w*K(zEE%nQeWjm%_5t zYoRmlfqrcsh0b^;mcr-Im(EA%eMiuC{=*qqhE%F!Uw3gcs0!QeVk6c?rWi;O}LbL+tNLf?jGa0u4f68_W96Ieh;}>=J>#E3XR-p#>W$G4 z(NKSb74Rr7#60hXU9%c(x7OAW!6xVuUx)SahOO*>-$svcL0?AKdMEb5V`wC*0S`1?znjPS)f=3In+CJ~qd) zABV5qH=#%II&6uju?5!M9%eiaO`^rv1;0m^;L1-zWV&Nt>JzXR?#4=3{nId@UdRNK ziGCDZqdU+U-HVUn6f_bAcZC1QoQY=l4QMDwpvm|gI>Qa<+HOLh+kv+GZM=R6z3+Fl zpTDq(Z<+rn*l>~0!r5IJUBi~>+2222pN!u36nb8)Lp$1l8TdZ-!;i2smj68b(TmP# zdrQze_Co6!#L$JBR1G_=ccBz}a|vCfzL=ecyY9o~Y)c7|`k zQ+9>tR-)VaE%Yt;HM)y_!_Jt#oBeMxb){gahM*mdLbu)gczp>PvejtF*W+Kf1x>n* zdqPsahbGp z?F~s<4Lu>pq76?**LWuO#7A)-{(|nNt^30LyU|=Zw2%F72fuT{8D{$~%rG}Plago$ z^`b4&weF1G-z|D0E}=dMJ)r(WpUd@qXzvQN!zy?+Hbe(JK1sn)=x|(!hB$qHcpyJ| zFqKBn_*Q7hd!msTfF{*U?2qfvj&uGH?kkG6Uj|Ly#^};?#L1YvnSu=-MYH)dI)e-7 zjX4g42Fju%Z-Rb45j{|*qxWq_x8-g$LIn3XXUL+VFVv zfvIT2bJ3&nc{E86q4)m}ozXvN$GLtC18Rp=so#&bvlcz7H)3<#kG?%i{^S=P_TN<$ z3~f(zgu}5WCeg^egxBGlXcA@|3isDW_jMa|K!eaV9)-3uDf&1%kmsYXqig>jUh4ke zPQf+&8r`R7u?FTn9R8p{b2J&x;rdjTB%bXT0iby)Pb zFu;${{l5b}LBB?q_Iot4C((#p_P=n@W&ST2Lfe)LcF-SvU^tpI_eP&alkr0|Nq>l* zK(qZk8v2W94iq>Ua-&SNDSF?H=#uqEmuPg7f(_q|74T7Xtv8@2ruZJE8~4=cCSVwuoWH94s-zDp}XY(I)G&H)1l+?Xcl)sL)05xyU}Pw9zX{= z53j_vXh-{S0iHqcfB5$>!zEap`ioc_KgGN8A`Zs!f25K!nb=360BczkI^&!J9MT$p&|SiU6RCK;q%;RC<~zxEQ#)_s^|b3V_EElmGB;PH?73f z&;QR;@C(7F_`xBZLH#IJ#XJ8FOSBXnz_#dibVi?{1N|PI=^=C*pF{_C4o$km`7rQ& zXhch4vJ-_W6f$uFcEv^LOXD{*#999dYo8YlbtNmgv3?`E zE$_#QI3Hb-O_+&$FR=d&&3P`ky>eU(AuNT?yej&6J#=laK||Lq+CMrR4fPmw0+Z0C zc?2EcQnbAn(E)8lBl202f*l`38#oiafUbSk|3b&Lu`Tsxn2FP{7OqB@Y#)}!E6I>* z*cpx7y=ZQ&K+luyct8G%O)xnkEhF`d#^=!N{|U{~;^`Tw{n`c%>1Oo(zX#p_g)%Zy zFR511yKooRSKu``AxlQ;cR=rAbL#ak3GI%@*3_5dP4u7mnSvp1mo+05nm%XCU0;6v&a0 zdV5yF)W84Pn}Q$Qfv(*{_%ObTtFc+mj8yU+MH@PcMkZgbj8u-4L1)$p@50{bIq_Ni z{3~?3T|kq#SniC}`A`W{@Bf+<@?hLbwIuqFC)LH_+CXO^Q-7 zs)s%>0zbytn29~F$ngIRB{3drP=BUaM(RhfuhGzcT0BH>FS>*W(46=O{XA=ljMPC? z5dFqg4*fjYih^s@3C-GDus+@sZ+HbwnoVd!pWyrWEt;&0ONP(4quXkCtp9|zcM{E& zj8Y*dN}&CfN8088|BZs%tUbDhLogGk#Oo{35x;{r_#HZslhF(4+b&0D2z>!`V9n6) zg14f%a3_|<>F9vgVh;EJhZLOQ*UYbLfgFzY<7mTwpfmd$-KH1O zC97C244^HZpxzU0r&al|d)h~bp-1sltc{P9XaCovu$2qW><_e~vwtd35AQ{ufb~c^dDxj9jjFf=R(IT!&~$S?%}@D)x!k-M$dtqHNr$nqT9Ptw0)9- zGa7|P;GyU|yo&lWXp()0&gf6{{`@tARnSPaL_6w%scjtV_n(UY-0dVqDq53nz~-AZ2-Y=921 zBf9SgqB%4HS(0SpJ_^o!Cc35z(X8H#&U6=+!{5+`@;3~hmq)KRK_fE=O~y&s6qjH< z{2o0q^EV2gx5Vbu2V;Bp{|X8og(uN%bw1W}G!9u^7*i(}I?$$A8#|y4C$TQBM+bNq zJz&m7^EC+*sfs3HEA;cuSj_!DJl-%B4c!tyz*o@+zCic)cbJLC&-EM#?M zOg)bdv^^Th8}UUPiB9N>=HaBQk0y8f=IsAlC_Ko8)QHfTT|`G-s71J5Hd+ro3EQGe z)*YSkfLI@fc6?X#LG+-Sj~>yR(eq#@I-u`bBtu8%xL}rF(lRt$4(+H0HpV8{4DUum zxDh?5j-w~#Y4o7_3ms5;s}R8)_!jkI=!ABo&mBf5a4bo|P@hE`xTJOHI1jq^#nH%A ziuFcVi~2QaQr?YM;#~CkE$G0v$NFxxql1_lFxu|v_<8aI1xK8%P52-$x`xHkj;o?s zeKk7ME?63Sp&d?$*QcNz%#1!7KVN_jU^%)pFQBjCcd)tp{~(2xTqu1_*cKn+XVed3 z1$?n>XkZt*Z4RQ}1<#`=Hhzbf+0&> z7hWd0(37qa+CV4tq#KG3U7{ z{@+Z&tp5VtR!7i~Wo;h@k`H~LJQ|U@=nVRxC*TBhhD$LEu123ZN=m1_t zBfSlc(AOQ<|BmD+7i{PsG)XS$7-n7=hf}YDej}QP-nS54if7P>yn`L^5IWGBoibAY zN2AxGOSc~Fa0h;hKcUaR*qQzBd;R0iA@n7>gc)BQ?HKJBy$v1kr0Ap3711})-LW03 z;Bm~v!quG}N6WsPVP^i01FU82e8eY4Ob z_c3&77NJY|3bHiG#2fL0ooFPE<6W4oXE@>RLDz5|dPKjB74b_fgMZ;=M5b7;a9@QR z!uN<)=u!Ol=z&rSok^p3y(QXUr+9q` zdd81LpPzuv^nP?8560_Hpu1ryUhe*XiGm^9j&8f1=*+&4*Z)Hs%zk57qP*yNkcnSo z4YcF*J|U^{Mz4;Jh(3W%Q`fPoP*~v`2~f?D10&`gtXsH zp~IWe2;7Qxl#D)t)2S~*JFawd*lvx`nGQs^=|Xe>8_+Xy~-Ir+SzePv-W32y%?uI|(^?%WUT{OArTxl~qoEwwSZMPha;7jO|Y(sM* zxrag%3I*nbldTJS;0#9}n1xmFX>>_;M316tn&pvTbu=P3ppm#4joi3cpMfszBCL%o zu#@|LHwBZS{G(w_+F>U3Ip`X$M;qLZ9=-d}8T^4C;w5v#fOnwRPhuvfJr=fY8MNa{ z=-FQj-KK4Er2GFa3Xc2$dgBRn?a!heUO?Xog&z+uje6LQdKWYqpF+=pRp@SdC)W33 z8FJ$kZsmG``C%z`V`=I~)ct?yg3xglG-P$q1LqoaARW-;=^n2SK$Gfb^neo}z*&Qab}yE~<9I#hSeTLe ziw6DB2H!y2*&f}EzGe@_&o81A%J*bApo%^jzyCMjf*rO%&+^V_NPD7LejEC>dH^fn zGBhVXL_6Mt-ggY`;37KUtc${cFGoMW3XN0;wEaGd*#D03&Uj%q`ru0R_4)=H;;q;Q z_n|qF`BdnrAsVq3Xa^n8&j+I0ZUVX;XQ1c7dsq|CMJpv2hb-@n?t;6}h8ChTTZ?6J z3%V^2p$%tU5!AZ}iniAmi@E=YQ%L8+R6LE- z(UWcB(_uy{qnpts_!ixs|DX+}Jrf3!8%^R;=#pHChPW9TiJs`phhrvA#niw5{VWA< zd>w6I2R6ig=z&sjML4l)Mf;%xn1MC$5j07+pa;vISpOT%fqW}NPF293)ElAa$6QSP z{oe)ghUd`%Y(lrur}6quw4q1e1Hp)+5H?)OhH6HlY}=YKYYz9O0vbiY`Y(w<@{?U822c5+~M%kQYHC zP!i3B3TToxKqt~Ue4b1UpkQcjLD%jMw8Q(+qjV}7>ZNEyo6xoWJbr!?Lbe;}wTx?LVc zlV=H<1FNtmZbmykiO%!_y1xr-2-$rFI`G@k-EfMV(Z;a$ z@1RR@5FJR)H$#I((X}myMxr{l!%o;7pG0T65BuS9^n1m1Zv}5c2cASfpN+P6+zUQ< z7MEkzx5GAh4wq8jf`+*NJ0Y7F;Uwxi(0$!*Q~1f|12iY{Z4Q5cp(;Ai+wl>66#YDN zOK7hV8j<8U3Yiq9qe=8U8uFd^B%VM+`p~-}ndYLQU4n*w1unxi=zZQM8@4Xe3_6YjGpqifJFwuiIi21y864&>1ek(zqB+n$2jk?7*71 z8*Mn-$D!fe_*fdd0FQC~+3jJVb3X~^z%y8$>o4O~xCc98-cQ+N&0>fzIKnsD%4-c+ISGn<^o@ahOWdC)SIG9(ia`r1av@iF%#dwO1KAo zrzE~ghLM;0Dy)5bG*maC9n3_tdL?GydNdNRqD%H3*1_Fqj$HP2Xs0~3quvx<>lwHL z|3q_Y(atc?my;Asy3f%Me!(m8B0BPF--PVF9-U!-oP_tH@Bj1YQsmwhUc)8Oecu{= z``v`LzW|NQdQ8V1=!BAAP%uKZ_1H&z@9L^Y=d}n9Y^YuibOn>+`d~5ByHyj|Z;?-O~h=Z`? zzVOSZ`|%#?-{TW_!*>~}e`fO(de*P{KIA~%{lOkM+t<=K3RAct%MamCt4v3?M}q?y ziGes3pTi?qALkqlzq{FnhP2C%;n!}r;WgCP;e&Vv-QE*^3j6+Vypej#Lt$x_U{`PW zfSxgj z_Ba~;)6HHSO@s&k$^bn&zdjazYjqgwQSW^`?1D$I0rl6>wfhZS<7_9wK+9qa>b@=0Dw`0c4M zqx9dyj2=fj`~%&7W&X%W{YB%R*p~Wd*aZun@y~eiRSP|OU%|%s54uzh&a(f9Qn>GI zxbQRfq+adM(C`%OMSTMri9F}RA0TXttEpc=&x>dO3NN1>m`VM6?CR&}%cjfUArg0C zP3nuV6MmYc(4WE;=QC1&CvyU}p}rj(VV-}&?}po9bLum&27ZE`59e_rmijlmd=_C5 z>U+?3Pon>Iywin{+`TV`2weJK_!UmFHHBQdqPceUizfphWvMh;nI4MV#RAk2H%#!$% z`Xclwo|`N9J^sI}a{!a83%2%2GO_Js!kIV|+qP}nR>!t&+qP}nww?c7-PPaU_uhJ* zJ!|i(RjX?6bGmz`XVS^TIv|oCmw?A#6DHdECU6D#4bd5bdSHKrw7I0roKlfAcXHb_SY%Du^Fed9B zU_Njx=nBo`43k*k6;RIyuR#^~3#xGB*dD`Jq0j4fF=3 zGZmEnGEn+^K{b9pwx7#=t#07ZtJz-*M2q7|j1S767F3}EpuR6C4oa{Vs0KTNYN(&B zhueAzs7o;q)IIP4)Qef3xE|f&aa|ta+Bp0PGy?T%H3$q3&ITpC98}^)Fd?`HObp&K z`~_;q@#FcqAAZ?D<(C7s(^{Z(8iV>KwJoSi-q*z>1d~CauKh4jLZiVp;4)CxG)8>S z(U&x=ZrBu5q0XRA$OY<|aVVG?+ybi5eNdPBDJb4sP#bc6VUmK0lfZNLrUWan>;#H% z2vp)(!>gcnbQk;!J_B_Lo+k9%T%SN~AS}O;l0P}9{2)*#kQ3DR8HGV!Q(R6rCb}!f zg8|@DP|sjz!JObzP>uK}_6Vl|b?u9R608gAo@fph1ABqmzyVN&qWOFBi-PW(6jWY) zu&*A_Et%*$mS>O*P&K>p`A}oD-n#kyD_K{v4PQybdM-!zTCK z&1pd03;Ds+U};b<+ucB2g7Kj8r(1jh=>GqIPczX?@(m0Q{sH|#Cxz!yBmqma%n9m9 zhk)AIb}$=w0@O|Ar1ad~p+UuCgSxi@!DL`LPz`hf)mZP8JpT1?n1Vx3EK5LrOSK8q z&d!4p_y}qTaRNN(4@xKy)IAae>N}v;U{-Jicm})&p5+MF1bSX$`lR-p++M?Xsa<}~ zV2J){{G6xY60kWqI<22GfyB?CUiXKl_j7iDdqD~J$l%#|v5bDsC)RzzbYRCIKle{k z^T0u@|A0E#0hv6PXc*{+?krFnn(xZ&dE74tMO*{wrrHGR2v2}Is+*ur<};|fJ!%#| z_qSNdK|Mp31$FZ^1oi0X1?q$*fC1o4Q1{S5P?z{9sE4QP1d~Qgu7c&koLT+cA2Kll z)HVMCmIVuD^K*ZrF%BHhI$U99Mf}oPT)PLo9Qc93H)R03b{QGpX#9Eoj{#fPf(9*m#xQwI)TZccDxGI zNv;F+u-p&o#4ds{^!R_uL`U=sR6?>m9)SQ*N1qSW!?FgL66^u$;WZD`H9rYzhu=Y6 z)8KhMuMy!uU6Mdhm!cr3Z(vG+{$NYc{rNv5nW*prP&--zint1t@JUdeUj`-k6x0*R zKTtb~m(O#g=|Szhh+%C|&!n9|@kZKuE~rP{R?z+Z|4}9qybh{?PoR$Y2dKhMe$P!8 z4dmu^Qh*W+Fw70=#j8B16RTqWcA%b+27=NV3+fqkzO8rX=kc#=a~6l5NbZ43h*iLI z&60v@C^J|K%n23)Cxe0DEl`d674&>h7ar85ECK37JAmSK0d=Y7nEw>0N5Q#*F3)rG zMI0)02h>g;ff9ZWs-btFuHi3G&*grFJiN$;F+lO-g1QI%LFok=rU%tn7O)gp2aE_V zb1|9EWDBU1s8-ls&A^hZdx1LY!=Uc+>!9v|XP_E#ig+$bSWuTRJg9F_Qi9q@5m48< zB&ddJf_j+O2MdF)bxcJ31nP159n`goRMfL0f5QM!Cy^dhBe_8FN`fiC+U6es>IBA{ ze>$j}a4#tRtDrXY8suK#@mI{VlX#$ZmJAdz511UR1WK?ws7Hef)Kl^ZFbQ}7)U|vB zY9miUHTVjY&QDN{M=9>X1fcwZ?ltxEG0|N;oNxkD} zktvv;RSF1m5R~<1-iP6}VI(Fb#?P8gQN-$zb3td0wL!2j<13>-u|{wgQ1mAGJy@S) z?az>1X3Ri?j}vjCqk-}Fzam<G?|FxeJ0^t$Xz!K(u%y~t1 zk|VmCd1soD&Ez!VlK+`ld2;o7QVz{sj3Cyn^z&CR1Y`*jen4Qn2?sK-OJZlnH^vuF z$IfstF2Y+Fo#Du`8GbQrNdtT!hTB4t8yxO)8fgKZHGcwh#=0ne&V=VdxXQc&ja(wh zYkKCZNYX2FY=L)=@eEEh%T?$LzTB+u`s7w(m$L0>PN1o}=uB2VoXl`t^JpL$q-q4m z)7>8Cry-BS-^z|L3TvJy-Ot_2NNUTP&ku3xS)tIz>uM)ioPs;-B-Wv)hvQ&%;bZSS zan2w6YeL0MAQyu9O<*;Jax(JKoJ`*yg_;mow53&q#d}xIQ2qQJpCMbw=nY{PfisMS5VImu$aZ+0_+bPe z8b2xVTQt&~;ex~eW9YnPE}K9e->JDR9=<>1jJ3Rwmg3A)nqrGtm(@E@H1A6t(v zIppI$$2=dQtj6TcQzsEa*2^x@a0;$~{~TX8nw;Q{a1V>OP0i!<2#~{@vxfJm$%!3$L84rksW{1u3Z)QxhBVP`8 z6>*tfVqL6#Z3_AwDVhg=HJa2<&oy0iUlvDQf@K(e8TV-50N4((t>6HX7U8P|uRV#f z3ar0STo#dr7T^z#Pga5)*n3$wlG^`|($)o~6HmsMxJC6r$Ov61etJikLc zgm4Ykw-7mEN2}NGDV#zkV)tpdF!QN2`q1*U(f*8&#Qa(CcJhBVfLUpDe*Wj-36FIu zc;nr_e!WrWX-vS6B6slTCnrBUZ)B&VZz`@BSJW;(bFG)q zR0DE@k(&eTLXCTAnZ!dNv>jn=u&;Gr1ww9{SB0~8(uIA|T`BSYwsYxi(VnQh#J9%$ zc_=rLc`&$*81dPX*A~;Z>^lB8s4gUT8|y`^i_uyT>$Y$%66;0Y1h%n zJOt+fEBKg%k@zZFLn;s+p~j48i29no%}qh>|F&A>XC?mwn!}lgGi~vPpwoc{D(MNk zG>%6Uyo1P8h_@KuC=!CR>qBfN{({QF9y3o0w;Y@W2(~fNNnk`oW&UtVGVU zHyWME$U~uY)?9B;Kd8$Nqvx)l$gby365o4bPC|T7X=W+nV-dTHknERrUynE+9`>Kj zH;sgdCSlBlm!IZulY0-A?#!vC5eI))axe1(qr-2L+*T6eeddj9mvimNzF6lENSF!p zFq~;tOo?r+iQ8aCg!yf?vx)g4^7ZGaJ1jpZ4c){)oA?l`QCbh!!W8zk1`r$CF6GaF zKt^ju>#??rxQI1jU6S>7G?uU)WO@6nKt1wm8eh3y3lBE~n^>U^v$7};PPOC;BAeTEZ&{@D~qjRS9|T0B(;Vj>U9==*=IZVbIb!7Nzh6Ljt~!xY~ty8 zE&xXW!gX-mW)~$9tpa%>YNbphGV8@~Vu1Wrhcg|N)q&H4=E}eeN&a_o&stMc!D-gG zxHp(rpfLZtJpaYCJk%fTL(pH>bhm=7Y?r+t@}X-^62!|{Oo^LlbRxc7G&3IVPS(j; zSLgJu=orifm`+5?O$KKg^9j@~ujg4=S46xv)jIoUjio^F6g!Crp$tV%nD}SoHT2oQ z5#kjnz+VVBktouYSWkSX&?rG(B}NVMQnBuWW;^|090A89#H*6j1w85P1l&%t>?H}$ z8TFYLp}a(tdNMqJNz|G(r_@CMFYDRm;8F**OdCYi0GeyBA4B0__(f-rf?#Cc_ z-wLirP}ZDSOcG_O5Ub0s+QS<_e52(lHpu2imCJ2g;D)2I$&8JrISWz%(Ryfk&Y#5s zx_t#9Kc`X7#J*BcHpXxd7=q-bh}J|flnIKnlbp{qe;!{R#x^*sOlKAT9~6_7Ay4n# zu0Sh>{&FNelYA7HjVCb!^K+03lYH3(hT$s;FEr~*G}zX*IRt(k3hgKM9A8x89l$ea z?KO^cTf?ae*K2Qx9cR5xA55E#q&SRtkVe4xL9tS-chf{?HDaAdBk3qfD~VU2iS6){ zu&&J9VJ@o$XArwhPks(Ci17%2PjdKE2e-9@`;J)$a*MlgMk3gP9qeY_khzSQ`!_3^ zw=v&M#49o1hG;iL7Mh?qEAXXeWF$V@`0@|pxMc%v6HQrfwfO}achyJa3e^%YGH54Q zbV$o7wu9JH6RU-<8byu|j!{T(-%_SCZVqG^clMt5R6D zjdfjgAF$rb?vGpJW5RL$Z{rAsaAFcSK}u|5(IM?+Jrsd{;CYhU;mZy$h@5%&8{^M{ zcr0?h;PYqR4V39GaK^ze1AfEbn!K{$eQLF#@nz!a@wWidO`L0SbYYBQr`ZuKW{vO} zna)Ohk>UE+MdR5q9xp8Nc7;Ye`Po`!D5K{vHSVp6F4p5 zOl94cCiweEx9!I-CMjMq$Wj9)-NR)GT7m{+7=9|Zh~$$C=g z9rJV)_qDW$R5XtKM~Szs(naE9hrUCpDCNvK0-_1|p+5lrfC)0G;JDPz=&bbnby+JbErC1qBk~ z@TUQ<4L~4@I>&A@-wqB$D6JJMOYE`5E0Fh#{PC=NQ)mEKgdDF`v!-r=SJe!K&!BUZ zykWt3{3RsmDFXQjW+QlxU>R$sBw~&6y#qTDmjxhHmicV_Z7DR4{M7i4GKR95PWVbP zZ_fw@$7}V`t!nGpI1@8JsrQ>(Teoq*nk4DX@|+Y%$=qv;;k6_oKfcl6bf43zOib3m z$Csb{&pm5rirZDAIUj<2&agLR-EGfO|&|Ai}h|sOyVIa+7<2BU?7doL*o@O zSz-6t=$RSYgwPg(Ub|%Tlq8?CL+k=4DWaz-5})}2VzQNpCo=vA{2%buq~SeaCDuBq z7Oca=JI0((XLi~ce~^9xPryjXC}M?DQ=~3~Psn$QLTpBCp2c$D4?-+Isu%Ig2Gd9w z#AP3BcdLorvs00OiZz>o{O`nErso<$@SG2EAHkZCWHn5z59G}>62ppkqP!&G%MT|x z`Og`@2@D|r6=Nn%@&Wk&S!C8Sec+_*Eu)F|I|H|eFTo-8r_*8x6tV=xidsX_*!2jV zCsxYvkqH*HW^0q*lUQ5uBTeN*=P9vXJ*+~i}Qx3)r{SL&M`#VvmS@& zZRRpQT;3UoXinxs5xz!aZJEEZU36uglz4Sw9~kW{uNcKQ!D|b?WfM`+%)&ei^WFFx zG7pQ!Nzh%t2Lahs#AGWNQy^4lOv85w@rQ`WCX(c9Bg{XLBmZsrV>qou)=V}ucGGBk z@~*%=fmT84&A>NPKN&p0Inol#lQ@cba;tC+;%Mf_5E;hs+Cq}I!VSU5$9xUq>Cs7J z_e5sH!4#9NVeE&y)S4ekbMM@ZbLOES?=|ri)^!zv%7_0Q0+s5ZCd(h%1 zlAb|q3-J(m#M({Hd;sw!6j(_!bC^ehBkMy>J9xjW*e>D;(H%^~vQqHk+GZAzm)_%c zTI;8=MJ%EqAS(;8C_<+p$#PM&KcZKekH(*bbrIt#9+ub)8uFTpybp}x6mLZFjf{}w z4TBKdnz?4=Dfs_;%tc0I24eH^g{MdbFb&NNMu@-BcQP=4#^}q)OME`NNk$_TSl_UQ zwiB+wE~Us z-NjcH-yHbm?Wm8V)sqHgEp7KjsIkN5xIND~T_BdDv%Ds_!3r+2qy3J*IikhjpYZEh&N|!uI${%;XNSwb>u_#ZQ+X{ejrIDNsFpZhQD8a=FA;eP-hmv;64sNP z&KlD<&t7Xs{0F%i+08useZdXnb^>3s>mTHGx7{nJ7aObzMgYgKiBf7f3!^p(8xb05 zJHzGNu`Uw{8L=71Dfogy%O_Rb6x}u4_FEjeoOpAfk_4QC%6u?6tqh`k0|YkXdq{Q& zYbQ3j>ET~vU4nQf<~uCb!l#Q?Y+(R-rKusi%3L;07cLJX#|Uh|8G-o?6BtMFQ`Vfw z>){NfnYswafYXGyY#y9~#APlkZR;=Y6&LQTb+eTMsR^bA z!$A&>@C!&`+0`sdx@V}|-pv1!yOu^a!LPw6N&_LmFvL!ou0QJxHjj^HGn)U+x`0kd zH||~p-a>joU?0wGi2Me3f|J2zaJC>=mE?}hz1EF&E^FvH^Mi3dp>j4**L8vdVR0-&ATz;CmOO^U+W1GZds!`F&n5l_W@G)*K% zY#?K)ajK)Y3~kv%IBiWQB-|XtWJ~nx%0~#xPLq5B!7q?cG9PC`ojqY^F-aHj-(Won z&M4yk?CK-FEfo5N@Jjq$@#mpfL1MenONV|0Vwu1##C`3O9=Kf)PDWB#YveoY9yY&- z$S9kqB>6M*3y8*{KpF~U(R@AJF#_F) z_(G!7iJG#@YGggmbBJD}vqL0YAuxw^6G+?foi#xve5c?V#x>%y9zKl^#`hBLGyL-@ zQk(S&#uzk{t0?}VK78e`3By5@#u)=*X$q!7JQfZ4+Ijrz5a>rt76NPrUcfhm+&tvU za=_bfJJx!EjvQ`XPOAjG(X5*iZ$)e_IsM4rrt9yu!2~-)u7l$`L0L&gGRVmgs!W0A zG*`|Y@q9^ZO^qkdYoYDLMp3Xa@e-`RqSu=IljJW$?>ci?1iccJBl(GE?JR^C-GcRe zPNE4(Es1>vGc#lpDbUx7wZZqEV#UB%3_mtAkX>H`{m4tp*v60r;*%9%xZ)sE1ftjS zSg;`E0K_|5Gd~aww1yTjkHdJu_($$a3a?|{fsOPbzZvV3&ZF5hP05;iz*%bf z5oqEc%|rs{z%RszO>O{%OBm-X>-H{NDE~cT>A;SNH#TAUyHR+st)swSMO;=5UlxQ* zBf5(DV*I5MeT8qRH7#BXcDj@Js2Ki7^o8Sx+J@UJ|bzUC7zGrmXohEj7P>*{*^w}&j7OR=#8 zYx{KGh_%;}ku(bdS$c3iP0D^7r-SKKq}lVtuY-{({+rPc&6oIw!!67vDv^8Fy%~G_ zk4I=31!Qj_Pxfgd5{cDFoW+i};NMJQ4#a=q_gY#et!ZGGkFN|lmEk@@Hx#i3)@Wsl zXJj4>?lQe;F~tJy3G`uHA&?T3{bH2X3~+F%bLNjyqZB4~PY$k<}EfLp%YE z6r%VN=ILnYGx2DQTa2ynHdy|9)5q=1Vw5E>qxN5)?s7ByNWP2ESqi-aCm|RG|0L#5 zC>GaFB_s2Vh^?}Qf`P{oTn_IKIqO-+2Rl;uAU;_la+fe9k(MvFh@W5ty6CVQ&TX{a0il^&`S4v`oXOh7|ptRaO?k+Xx50)JFEf6xq1UJ&`R zMd;Tj?plU3ixu8V;3xBZkdhNz20maHjS-OjwT4nKpXXETE@EC=38y3csOHOUjce|0ugYxhR|+LK%XxwFpIqbeVM`1aH6#&w3V^+Blct#3q)>)_aL9 zfD_${dX(V6Yf9nYwvm|BNy560evLkzgr&Bd@**IX4S}XcUV&&tMiF)t4WW_DPZ9qL zwVUOwM#HhWicW(2o^cyqFN$3!=YX9^a4-cr2ifpCy=9)>3Mp~Bgs|-RKG?3VGapG( zM-tvMACFjf<7H-En*tY1yuLMYl>%N%2q!nWnTg#Y{|$k^G}ah&#iYniOMU?svaCNO zc`ZEiyA)YL(a{K$Vm<|wWhG}6{y&JnM)WS&4u2KPA4lO@3Hd5d zlHQXv!4f_}>I9)0qdW6&5UVnxTYMe-+^i$89)nm<)+v}jWyk$kj{$?z&@dWo$ox6n zR`|!N2~0mK_hsE0{V2h?{#77_Az>&)Sp?>(88JLd_t(TUsF&(u_=iZ4oNN?$N#PER zJqRWwKATY-e+}ZD81WeeSO?*keTVC{d^FTrkAK-V0#7LNl2IRDL2D*6n26-*h|~o8 z5#Px0+9%6jMFRtIwt!chx!1}vxq|j#a2K)K@H2qv*vMFT?&sfQCfJx_{Rqg8)7@d# zMM>yL;fWmAB8w@$iuf^~LOb#KAzaCJS_kxpzX+e#b}+AD8V$&QtvAaLF*!pZ90`*s za*%?}O{6>xcr87}(i1OW0{hriMGHnlV-o(!@Uy^4$vPhKh4^lw7oT}b@%crW<;fA1X@Vt&gO?bJL?Z3R%t>q?jV^GXJNHC5oPO>FZ~PO8 zfk;&=q5^>=G^8QfE-RpUV&?hCm4zUlhjH2BeGMC-69vsAaAu)X2>%&!!r)JcFQpz6 zi*1)}5LiJY)A9M*AzK$kC<7vU;AKT%IzsUn&ln@fyGT+lVzQOiz+l_he*E=pQ*%5N z_gB|vj%7K)TZo_6?rCN$#O#O$f~hQN2wZ|)TH7YBf2u8BWr?IO?sG3&JEi@5n^xPmLT^xz9nF6;_JX~)RZ-} z{Eqm;T7SDN7KfZLS8|9HJh#4H~_w(X09GM|p1*6ev zRFZF!SOT$YG}07*4lA~pBH>7$?$Q14>wa=Fl2gZywg7s$EvF;+hvAkgPUX5rOZ_gCUxj|M+7N4w?-C8~A-9DUoMQ!#^GbT2@AV`>d)_9Dg$Gd` z`NPVeVlVQaP#x&@gvPK3sso!b3x2?ynD(jXMdJ4ug6lB`ZpPfW53AryEKK`ev41=- zoPs`>41dE|xF1vCX^f7KFfqP1V?6V`XynskJj{l=zbHn<`WOczQ3L9Nx;_@wp=B7I z_PvcH)ZlK6g2%Bo{(&(u{d3RjkKw2Yti)Ql8WrlVs177};d$R+22?&Ps@@`~j#tEf z*c8?Ai|8jLaf^g1euug61BPSPmoCH&aV+_{sE%cQ<)&Z|Mv&i!%%%6;YgZnDS`$+( zzZScae}S5kW^X(%5w?0m{MEz$6ez?aF#%4-*titG!%dh5k6@*yk*E=E zL5*}Ts@@Bj1aD&<{1>$dYrb;>`{f<+pFqJC3Rw7FhxeZMEgnRL{y4_N3#bm>M>X^U zb>Bx!g5C$uO9x3&*Nb8tEQcC#ZPY;OqXyU>b>ASLgcifks2)#7H8js$j*7%ab3ZDy zXHX41LOuTh)zOfTo);GrqUy_lYB)FQdRbJ%bx`g2O-Sg*w%7rCp?Y`&6XI(#+P^NJ z3gc6r2X$Y0Ook0ntG=f>0M*biR72x1cChEoKy`4*=fM5Gx0!@0+Kmd;S=0l6VQRdN zsqhPC!W3Uz1!b@)`C8ZnH=v%2`=9GzGSvNHm>X-O20Fr=5|H_yPof4FR-;1o2@_%L zudbo=ScrUH%!Qq>B+kVmcn$MmQufdStd76qGt7xwgMz%tcn`I`e+&)^?4m)K+Na=8 z67mIV^>zz!H;zPwbUbP?PDh1)A!fnNSQW2fcFg)sP@toAu|N3b?h- ze}h_#U%n0Uy%HqiL=EzaVs+F5qfx7S3TpK)L^Zt5^7}A7`O}ycUs^szG(t+gBzDE7 zsE(aMZP!bv2;M}Ul&_=tZiF8w7{}@hjvmB3@&=6MMzGx6j2gjy)EYT$jJhvHoFMOetcHrvT%UwOyaE-HP1pqwqt-&+xIuxJM->bs-xf#X zG}LZM9WN+w9;8FfZE?(u5vZx{hZ^Y|tc(j$5q^Sd&woQgA&T;y3w1oyiIy7GU;$J| zTB5d7e=La$@h7~6+J4RA2L+Dky{HIY$Da5ewKzK_2nxJIe!)@X()c01C&_S~U z19OE6@g>xVo}fnh6*UDRiCo0uq1Hrl)QGa7)=FN~$V#K;x|ZczqqcP)RQ=;HmiFB| z5~^qw_QPE`81pA~BixEZlur`mb;50^k!464)gyHxCdRhWc?LY5j;aX4Ez6Yo&dzza4uL|En5^pgMFI6{$Z_yT!jnLUZvP72*%5ISbC*>MJ@!h?b9?7y2Nv}!-0<|HVq z>v0NH=)y5CmcbU-2gC4^`E52gvb?Aemql&6?@^I!i~2s8jHU4?szcGT6DjTgWF#~N zp{VzDR$PI(QK7qn>fm$K+5Q%_22zCud3CV@R>L`%6Ca^EoHR#}mmjNP9vq6gz6A^8 zUGxi(NS)L5ur4Y;26Ye}z?AquR7J0`7-kK3i>wW*W1~=^o`71+E3AAwjwHVqHI)@| zxpr!yA}}%+`(HhqNr7IMCs7qXKvnb)Dx{yy=($~aV$>qbh>BR4<@2EySy9x~RYeV; zDXRVfm=S+L4RB9x_P-iBM}b!VE!66Nf?B=rurhu^Et>LqT)ri0#A{IH$57kuK32eJ zd0hiFQQNo`s-yi;9UF>@z;vHPcM`v$zG#x>3-a0p^Ft}-!=(jWMVAY?weTEOVMt+j zkR(HmBo9`>il}`(1vQWbs0ge=4e*$ipF?%XzeYkmxra~jon5$7#D)F|YTJE4^*lyV zH}X`dRbB{HQB73n>)Z9V=1^3G=At6H3pEw{k$QdaDhaLTXP60-6m#E#B~U%?k9u%8 zYHf^0t@ep{39q6$vbDII%G0QhUbXyl)b;;R15H%I)t3pQ=>4Ca#5ykIMs?s8YH>v? z>AvUVq88zLRA~30*33y%g_lwL`U$GTIZC+?mV&4?QWPVx9_qQRsQQlRy7vD$EBFU> z4*ZLmF{HFRQnRBf9&JuV&Fx&&wpxzb@0(E#JjC|+9yK-1%eV&HqXy6i6_MfS>uvNa z3GM66sGhyVg7_cmXf06IO-T*Zr`Q-&geIUmG99%D7oaNMVxB_PcgK8TenCAKqa6ER zt2t3QH-hY_5k;aN>}d8yomeAKXZSwUTki>K(Zwn6c28=|N4^Xy^gp83!W7g=x)ik- zcVHO)UEX&g`ldoq;0KXdn2ifnQ61@nf&Gf=&~$SVs^jZWYv2fK>i%cfZ=gc|)O>^5 z-k(vC3a#jVF39hb7)e1LR7F>D9R7n9uzw}j@BviF&!E=A1yqAKP#t`Tb?_4^wBJ__ z@=ju7RL3({aRbVS+D)ZU9rVkS&>UCCD%jdCtjC<>x1)~C2UrVZR}JzSVKZ!oyHJZR zWi@wBWXH1Pi=)=o5X_CUQT3d{HTVjPX#X#$?k-%x>s$z`;YM&16_F>XP=Cg;7{8_) z!93J?uoxAI6{xka(L9JcxXz&(zKdD|F}`<^NR0`!|FePQ29SG z3*JU`AZG0#uOp^M-8T^xnfa&=ti>F79CePo$NHGBPLS6U$DtPU3k(k8_rG<60>6eU zQjh&#lM6%Z1$mwE9R7%<>bo9pNA2fBsF8m_&2_p4u4CCzktvHBQBBkV)Ce^--BAPj z2{mOCQO_^LG`O+>`#&3r6BKAfZ!s`;4c%PDK;=`RLYp4dP;RprYCl&re?U!Tcg%z% zQFFZ(H3g?p_y2|Jz$4!-L~rB{pm?az*Tn4D7xmy0R0mgCekW=q2T=R?1ZwS^Lru|D zRAipo^$%Eryw}*BoF%awS-%AdJ+KVb&^F8OMUC_fYX4qBMIh!6E;7l?Fw}h|QK7Da zs;@EXYq}%q17rkhY8IjD*?}x#-}{|}Li7)6F~w@)wo_)*1Eo+8)JI)!joQb9F%+kv zLb?TY#GXJc+GnT^eB0D@EEKf{a-%w27Ncwb*C3%DH$a8Bo!#)GITRJz@u-mhg4)Lm zQ1@>_J%11bQ(*b4=2KK;KBJzG9qCMr8MOb?kWlE$q2{P6Y6N324=%zocmZ|LByHyA zFgJ#huY+1ly;09i$2PbI^?btS?yXl5^OJ9ln$lm<&rISpiB|X)HL^x6TqrxEUbB-? z4Qw|5!W!h?U`Z_7GRW(V!!R5_qUJnnE0?c;waE8DMd&zcO3$}q|7(@rvJ3y9=KMWs z+r??^R&heq+=ikaEQeY%wNUqUM}_uBR0D%ib36uB|8(q+3$ZJvY~!Y6TpQnobS?#2 z99vQQ_n6&q9rb#Cj;vPi$F}Z7n~S~32eosHu@814KL!=S_oz9K(cX1D1*-m%sQM!? zE4KAX^dT`B2V%4iZiFLHt9mM`!sVzb*o7M56;ucApHb-SY=s)9bKP!7fgLHt~g zn)8C)-SskL-+ca27`I;YPL?HK#jK_n$-^ zy_Ya2-m>fQdb&uZ#UMIX0c&%;QZM^49W@1yFtGohkw{BHg5E*iX3URTY>zPk6~yb~ z@)>>%@^({R1r_qBeO*QIP?1Q4dh2CJ?TSLEk(NMpv@$9Z5mw$FeTBXk3C-~Y%!i9n zBfN+@;qF`hEvkbd{oLpCc2r01na|AksD{1%Zt=!Mbs#k=f|*dep%{r*(dYWTVC+K3-8rnU8{jZ)L zr9h$k6Lnx*M;*zJQ4PIBjUafSGY0A<6dyH`OgI4xq2~5?)D)aTJ%0{$fZaizs8I*G zfn@VZ=*Hrx2Fs#CUIn#(8=^+s-pU7}?i-8h@D%Kb^DQ6qC$|=oqNXsXSXk=}ypo`fP71F-Ai$ypQ!^l@1>_XTV)xc!DkMmI-`+11FJ{~oI-%z36irH{K zX2&P)y6+_!>UxqHbz>N+hXqg}D~Y+VC2DS`q1MbM)CkVvG`xTjbhN`T_XEc6;qIfe z!wC1WxdAJ1-$%@YrGD17WdHXhQH6rvF=jAxI@0|SOX|^#fC`u62(E7*<3>r{xqZV-~R0Nx$ru0YD+WOg?g869Qn@2+1?>uUCK1405pz*GO1gKDF zMujv#YQLAa>y53vE7qdiM|Jod=EepSg1jR*2A|{i6KN-e4o+hKD})WFy2aEKwOTu( zIy4Zq_$H%H#3dMt`%xpkg`@Ey>b@S+T*pVC>iGo~q2;J{cB3M205zb~)7bxdNnD{o zBl?KiuW_flNMuHJq?B0~L&X~~LxIkL*Qg%;hnj*Izqs<0Sb%(HR7Fj(I8H^4^iR}W-$u>#N7R6#&2-PFM&+}j zI$jbL(b_%i>e&WTm1h;2e0K!?n;IGy}8RKq=gb#pul zwFqZm9Xy75KGmE+y}p-&gnCxm6?os9t<1i5eH`js_!ZTWC8$NT+T4jcAC93Kcz{}T z?@^2MGwS)cb6up9VpQ$_yd-o(QPd);fjX&tR0S(h53WPqw;gp*okVr~0tYwQ5(xl_8X{eOjoLi|t#_!-rK=<{89KGeu6p(<#Lx~~VSBfgc7 zMs3S!sL1?khm{{fUp+fRLL*&Tm?U)R`Xjf|`Rx$@-e)8*472ikQ_Zkahl%+0mCC!Sc$kaqld8AK5J@1Ly-=k3#EktdjwW#fR z2=!9=3l)hss0w2L<|39BH5Fl~smYDnB}Gw-tt@JaYoR*O8uh&2n}lv0jheg37zO8` zI)HPbc~c6s?YdwS z9D|yphp2|Wph6d8gS#&qYX4V2MXn=$#tEqB#%^?P#|5ahv=`O!KT(VDBC138H?seg z_|FOwZ*n)}MD2oNs6|%>HTTs~+olz&!oH{j$49N9QK$$kLQU0bR6V;;+w%Zwksd|u zj*EIwH{L{b* z(e!6p;t1*>dWBj<(YCsgrAKur3^l^?s1Zh@?rV=apoXI&F&!1Ld8qqVpyqrNs-xRb z_wPog%J)u_C`iF=RA`fLbFbl?s1QY>%G+W|9Dtg`U04N=qeh%?yPKl)sQZhcI#L4_ z!G@>~wYKuEm|FY4KM5_qS*W?$g6iq-7>uW|8vbF|Q|@q)%86>A9BQA}L@nl?s7MS$ zMQ$8s#HFZ?pF}-(3A<|l-z8BP>+E#D6q4xvJJ7BzxfsHu8_icrul*Wu`> zMHvUxa3a*mbD}y{#H@nqNF(%BVLK9Pum|SAL8uY0!m{`QA7ZiH?r%0_+~XQrX>LGm zv+bycPMTM682Kl5z3X20_8f|3DBrr5{U1u=BL(Vd@_nvnnNU-a53^wf%!1u96V66O z>;URR<&&9wznikcs7MsUZdevo-)7VzK8nTg=6>H@NOiz1nsC&OWl zcpJ6IVjOfGPmP+2Y^W*AW0u5F^3_n0>5RH>5GwK`d=jc?BC6rV7=~L=58OtLn&0DcSFtnK)XH>HK2v40c=5S&m&j>|3V$nF^>k0bl(dlp$AH#LQ@B| zeSW|U*cugqF{p|rV=i2P3gMrqkY7RF_YigDK1X%%tz8fL-Q5=l)!`Hv`2Al_66#TY zRFA8mc0(i78fcA*L?6qKLM_HwsF%_~RL5_lj^@Xx0mM4yI-CeKbr~=#=CSf0r1pPD z5~`p-s^OvLcvM9*Q6pVwu0lm@3u@|)qelD`)zB-{f#w}|&!MBHHUjqi}4|9%HEs7e*}38 z$;U=@cpWO_TT%Dz!cuq?HAPYVv+lRr=~4T>1?Ih}xhUn1tteVIM=C{lEV0rr-wZ z$o!0XvG7G#L1$FO(@_nc#0Y$e4YBMccLdKx)feZo>u@b(4fx(KB-HR~%!hYTbC>Lj z`$Oc4sKqiL6`{?j#d-_Xk&mb~k>jcxNG(*z2cq`*5Y(JcLp?Xw+=6lS{y$AZi{lz< z?jN9b!E4mo_~x2h1F=wRBpGUMb6|PQhgzilQ3Ln|wHr>E1+Tk$7ok@FT2#GzF`oAS zQ4;m=Z&c57-U#ykV!P!<-5BkbyB-gVlW&V!j7w1+US)2>3FHsq-&pH*khcW0-EqGU z`~xSEuY1=G=sxk)=78@!-Et2fpIw-&-sFN;>FsreOE(NfgZY(|Ch2r5Ds zFgsquiWvQ&TlEpBj&wz>p+%_Yx1l<6>>>MKi{ml{n%g^e;XUpqAN`T**ilpm?qec+ zi;7&#$F2k4p(;*>nK2u7$6BcK<1nh7KT#dNjH>6hPeLL6fI89QJ#pJ4GwQ~Us2h8t zKDS4sR`n7LWsPjZedI4bbrG5QkL&Pq)bqzskvfa&@J-YjyN_DL{u3*Bh3d$A)JWq# zb90*-bz?UC5p$y|T7jx)9jfD-Q4O6muh{h`s40Ab>d?QawG;e2uqJ#j9tk~|1NALe z9BbhZsKvJq^}t)yVhefUjEibG1uFD;P#r3Z`ueSeYOpyL#rCNCmRk8%4E+87y>{Uw zYB65L^!UNbQ@(T|&w*MarBD&6gQ~DGYVmeLEvj*-4$ni~zZ$jp_L~<_&pnpf|DQ-` zB(Yw(Ri7U9mD&i^P%qTt8Gwq^aMTn{v;1NVC%?(OgE`12c)EcRdS_7?79qDNHN7XmloP~L^zfM%dNy2IRudhQ68 z#0Jf9Doe70g1u9%`HUsF6=Wb?i6PB3y%NXoqaEcl~aY_U-XPdZdb z!>zoelRZQREW!BW~_{Qt~+W< ze?lE#3s3{xirNjoBU8ZN|0SUjr2gbWmLAoSFtZ4%fl8is}-|j+%{2VGWk5LVOKy@tIe{Kph zpz@_rQ`H1DC4EsHUw~?7Cu+?dLSKoKBox~7sFB=7h4cf4V3e0%KrbJM0eJFF+7Nhz*j7V-vtE+dRz-tVPjOo zy-{mos5#26Pe6@)Icj$tLUrsGs^ec!k&GSe+Q}H~2M0o0kOIv~dDMedFekP{HTVl^ ze=k9GWD{zaoJK|L66(2sP+v+hLxKZqD8E?=0|P+qw%(|h-4vfhHWC{!7hXlpS?q6I zgZWV*EQd9)2Wr(Hz>0VbHK*~SxciggA@W%){}i=`KA{E}|6A9=B&Z1brAeq~70u?T z8wa3Xqk~aXG7A-nRj9e#jtc2TRAe67_4laAd=oX;i^O<19J^tKAYS8Gmwd74fe!fI z6cSoQGqC_JLN$EJ%3q->{EUS$S`3#jgIc^bP>Z)7s)KED5cab2SE!DL@MrtFF99~i z3>bL-4KZ1l-?JdlMpHUqOkK;y|AGNrOV{vSZiqtIBd2kk+;C0lwQ7o>r z7Ahj`up0J8)qBv&kD(ty!37fPY36vr-h3>CVR#X>_@aCl>@~-{*chjyPPUh*)t@nb zaNsX47Dla&zW5`~MD6!@30y=oqS}c-4Y);uU_Y?>2T_opg5@{|ucJaeAfb!EP*i@5 zIT>e=pNU!<;faF1l~@!t!uzNxc#7fpZDKc&0;p}>3N^r~iP`_XNbILTJy}N zlzd%Og(;J|4y42Ku7$|Vl0N0u{8F;v8WFGXZq1o zxK*DJ)j)RCgM~2gIgaYU52z7#zzo>a@-tBpT8MMl-^)-_RW4PqcMGecp3jlmSroNK zDkF>9_u7-t2u5N#+=6BBU#y44)41!?Q2YHLD&!|n6<>(#wLA@8SV`i<+u!>4F2l;W&Xh>rv}_ zRrf)4WHPEFi&0a#)AE0zBKrhGY2S;HAvo~aogGy{Ez5UCy}hQP-U;hb6<=)pH1SBHl!G>>X-g-(+(UOp(oZt2!42+7^XTAuWfR z>uT7ORUL_4$e+*d7H63-xBW(7LCSYvJ$#9Eu~LrUz;96Jp$@cEIfK0gxDyv*sc%8Oa44oA@tRXxd{DI zJUH+-q_?1s)I25JLDUYz$&W`Z);*~0b`^C(zQY2Ttz>ZE7nIFW2iQo=r~SX0gl@PM zDBv#;lya-KI%cH28CLgz|I}ul+cFh?K{Qdu%B=nMqR?SsZ3saKsXZabZj_kqO z7*gF?A9Yl(LWTMnX2Wzf+!R&EQsjrBB5)YB*n?`iFQGIw+5dScm`Xt?9z~7(0lvh- z-@BtZdxZP;yNL>6@>;>(WsE?r^03;$-U94^>o8`W;J}aZyRa+yyQp1Lr*3fIA2zs+ z+sV(a=er)(uI~YRqSnGKRHQPuaZ{EXb^kD&kE1XOW@+opiNWOaVFE0OoVdPM)g`=os1Jo%%9MtfHtjyj;qp*q$bRZkz(J7jPm&;A=n zLJiG8o&C!&1lOTDvWYl!QVx1y$ipR0AteZ>@c(m(yuf#TQW>yNlX>|DfhHS4TI(PN;hN;I}vubs|nc zbznKFo-G*o^Zx@@a1wRn->Cin(u~u|y#pHzvia7>aLE&n52SOo^Jxbf^wx z!?aig%i|AN6&H13|0~4LC{UhcLti!M2;Baczn-=IeDO*hxkG^ppZU?vPl zt(khL`&*+T+Z**=F%h%lBAAj%09D~9R0o5*yX)~#6^Eim5{`MXH>!gx zQ1@>_t(gPZ98aO@&Dp~(;xed{)2~lr9Es_e1Jm_%q5U2!l5dY%tsBfks9kUY)se@j z20x;vCTcIYHe#VVloWMjr$Y^}A!-q}ch`Nd4~ZZO2BRV|6w~8a)b?42+6_lh5xI(* z%R8u!MCtA3Iyvh3beILRqo$$`s-6L;H8KU&(V3WB@Bg_Z)WCMEhG$R@rs(5FUIq)3 zuY+1t6RdoOxg7OY+ll&IzliF{8`MYX7gVGY{phA71FA#e7^?Sw1rq77EvkoOPz_B& zRWuXzmRxB5g&D|4?He5UN2kK@AR)YgxhY@N-}x8nb^PssVDAUajcRWK*1*#QpNB+)(!c(;M4U{s(G6 zg@?JRDv3$yXdTo5I}d07Yc6^ZcXQGowU~U=A{mcb#j{aUv=p@%ccD(a)2OM6KEf^9 zT&VjhV>m{l>Ys=@(x;*7n~9Tf@d!rLoJ78#-Ph|3Y)bwLrokd3-D|cHRwh3i`{7+2 zicLqkgXnhV^utiQW;7~tlTeXZWO@HL5`oo^I-$;>ULFro ztNA0ULy0E1h-5*Xe3ejZq$TRU5vb=EqULrNsso2m4If7h^om`7foyZ%`#?h5C*?%9 zU5cO{tc5x-8lbMX!%+O$t}jDXyvE#z>gb=S?RFP6kk{rnlUzQLnF-@)KNKXPiYlOv z$Od*pCvy;L5lujaaw_V+*{BY##bDfv>c9c>FVu4nP%o>eRvu-t>tIq0{P|yI5(;4< zR7dLA4Q){Sw>Ro_y8zYTYE(ydV=X*{MKJLcHw6)>>m9K)_CURCHlybLCT7CB=w~Gn zbE>C$kyJrdTocuydRE@TY-`s$p$@K|m;nc3SzL(P*7tBWzM9JZ z*IbRC=0-jTHP>sgBA!BpG~sj?vdpN^7eIBS3I<_>mDffVmDd*4fw8Fir=jj&j74!J zszdjuv;Q^XY%|<0$bovGECv=K>cIx6eH)1yK?l@S{D}He8i_i%mY^Emi0N<_YCB#> zb^I-AK+%73?WOcdsG&Tl?NbP~25O-WpjN1<7>=rV9G1iBsBL>0HGmhWxqXf5$a}jU zWv1(B3e^4CEngZt6FNVFL>L$L&2pi9iW=cF%#WW?JPgjjzQY-y(J{{ve!2dq6xDD?tb_xUr+x1*3B7**LPa3Ye7CRjq2_WVYJ}5K+i(G@ z!KJ8LJR9o%{APL7!0Ik$|0^^tDM*Xmuslvd_4J|{ zvc!!vC#s@Cmak;_TBzq*U@2UVT8xjd52j!0uFpnA<|Zm~50?6FZeH4j|Lj7P-`tIH zQFEUdb&_R8Jy^ra8=xxeh?@Hz<|x#_=9#Nd9p8?s@0gWe@vY#Y-SEkbxy(I~0##9V z)PsdAU)8QRFx%PnzIJ`AIn!K<&3S$!s-A?)U5EY5B(#`{n-OMf)XCKk^}r<5NEe$c z%?+rCY{x%XWd~7nJ7uN2e*tO$%Phay^1F~J_q}5-;XOvpd8}1#^8HZt{)~BW7V6{k6#A+l`X<-2 z#AY})qP!C7!NsW1ZZ-FtC(OT4Bf4(hLp}EtHKkw8Y@1y@by4j`Zf5^$TXdp8+h-su zKLz#rT!dNhh~=N5LipVl_k%_@RL6#+IxqoM@pQ{CLLERW@NZs|n^7Gbx82=0f4lAf z)mE?rb;D81U&37E@1uUVn`DQ3a2;wYcB4Ms?qVMFcDkP-^P)O3*c@-p##WRsvwSRn zmm5(sR6}{N6ShQ+=&W7;8`ZHFm=QyEyXUf^?kj^@bd^yNnTU$yEYzpk3e<l>sSV}II6*VsQO!CHSAz+ z3&{Ta=Air8F2elPyk~|V;-_LB?1!3~{iuT}$6zWgF^2a4dn*V&>UtU%bwgs*QJNk#;@oCMR7Fk9Zm1CsLp?Xf^1qn#tbD1t5r=T! zJ`DW#|D}I-zXPs-+AjOd6R3B<1ylo1&DW@g{xzc>bNPg*`_h_O%y6@SSsb-U%N=9? z*CSEG3YMZmwhq<6K2(LLEPo#L;7wEn9-|`j#qtS`yETvrRbCSHWmFecPg_*IUCaT; z+5c*A6a}Mjrd>#T!rhn?b-k$NtD+iifKjod*%Q^V0jS+E!kmX{aGT{1o7c>Dz9r(G zbPr}ho%N-$E4D#x%m1Mcn*UHgAtgWMMpOvZKuNQj+0bl*>R3;6kU0`tQtnSC!F$+y zi_&zB9IAnPSQOu)LY@1p>p&IMKqju~ z_kS*u2;;&%tby_WbW_kA^&Rjts^OKWk?zFQ_&e$ck^89EY0`7<9I1=yz^Jb;1k|LW)6g(j#_wK6B7rer5p$B@6=J0b#g#a6xv)xaO9PqKTc22x&jW<^z8z$|X% zywO!wex_=KY#S>QE?WQaDeGrP$%pr^mXG65(>>LRE6I?bS6c0EDdU;VP+Y#fnD!n z4nPfHl;x+Oo|})F^DS0>-+cYh_P_VY-4GkqkrJqbqX{acK57ILQ77GIRL5`I^|zLf z^4K+)6m<~gL=C6~=E3%;DVbyC+aLRGg!?E^&rhK${-5~>)q&4;J=POiOEJqr44v!^x;f20wLwFDNeRoiV{Dp$1N(D!PKY@wVlkTmBvD3=jFo-IpJi zkS~V1|Cad-)v-^g`l38@5s8KRj!1_puYy_7k07DY_QygvANA6?hM<=?q7lG(0a@7L5=h<>gc{~*I%RR^WM1o6QBkhib=KqbJ>N;s1VjetXhFeb)QH}gLGRp% z;-DJJfI6BRV`H3-`ctl#82I7yz57cm6R`^A-9EVQiCx&5e7ukD{ywO7&U|G5Yd>G1 zKyw)VU-#2$PE^Q>pl+;=3Rxp7?|?DL53=i{P@$iWx^ER~3U;CD|I5mQKeDG3!^{{+f1{IN-s1dcZ{1{X{i&2YggO#5~osjn}ALVNx zQofg(geuI3s<1Sw1C3A>bVkkTXjDV9%w1M~4R!xNCTC>e{sgFc)1yY3%ko7mUontp z|3z3qQ?ngv4tt;)9%at7>&q>_5!Jv!%m0D;nec}B05zcJsL)3X3JJWF;-cy=i-CXt zvmuH66#Rr5$!64pzoTxvX}+`Tv4TSaf9{tCb*A?~eO}MTLbwsN>Ytz%U9ymn!1m0C z8c=`KRE$AiAznd3p*@0X_<`NveG?M+@=1g3DUU=ocpP=#OUuWI;u^?JAPo(nz+h2$A(PJ&{(5r^Uk^4USPW3d+cGfAkzCm85J?2y3USPVrqe963tdhmhe z-=IeD2{nL(aYDRim>G57DAe=QQT5NU{6@RJ19{H(j*?JCmr&nquk40Qab3lEad;4a zJdYab$#|}T3#gIZMy>wX-#Ig)I#3+7_^O~f*bvoDCvyb;tndGMB-F!<@m0#Rg#Ji$ zWTFsn5iUekP%d!@M+Y52&1Fs0s*gln?|_O(cgqhz-8U4~(J82b%|{Jr3u^lwv+FM~ z@c#coA~qKiCkgQmVFuKQAEGJ>iH|?6O2aw6RMtXQo4@BMCB8qI-U~soF7V} z8rv%uYWodJ<)&bRc^EfP{x_lz3xh$Z9>>VyI+DapjcF*) zhzenO)O~f$7G_t>L-|0|fYzBuFfe6O`~L|ERqzS5ZK7p$H>5!2vs=CdmLy*T```o& z$0*rC0zX>i$F<655AhcBOQy}J2sX&+>WM@(+{5xiG4S*MbP_s%mfMAcs0T0L7`%$= zVB2t4K`&H(IO<2N$*B7mn=8!?sQb2?N6d4mj@$^h_y2Rd@EJAY=(*g3DN*}AD{66- zLH$tK*78ft4i2^aXjBKL=Js7fiz(32xE^(8UqmgU=y_a+ zN})zl+iZrapfjq0K~_G}%BPu2%+06+>oBUGJLU_YMBoHOEt14}U4vn$@{$;sL(4~^ zD(GwZ5g1N>o|T_LeUMzSeDr*-qlrI*99A`=tSlP`>cfB&mVAi=NQQ5AGVJV6-!7JgQ__Wx2V*odm&PhG$(mVbyE$t%>^ z{RLG~P+?~@GcM}+#Fh_5)sq<&v3you4z;$bBI}=#lhA|hum<)(HE;lR{TQmEQ&xTn zHR7A7#q=Dt=)Nn$ry7<-P03-)|BX7@e<? zjatlA^c`wVBt6LKLB|r^06RJZ6d=lzFHPpzPq83MgR1asF z8&Oko64jA&mcN0j@V@!Z{I;YkPmFpl6RM**EME{+k6*$PRZ%Bk1Js-kM*RRX+^)wc zoT8ybt6=p?^BrmEXl~ENpwDLBn4h*#NVdf-^(EgumH$1ls?@%EQDeWSV7|W9n zN0s+REz(hT{clu*FK`8ZLEX2kjQgP3iHhhm)JJaYvd$C%*?(EBpdf1BmN)B}ZOy)@ zk&ednIN$PzP``4yWcl}&k6kV#@Tce5%`#>~vm2(+{vS!=0xm}NuwQxSNOQWm7}dcI z=0Wqkc^5U(x2Ts`!U}Fpl}FXv-0W%&LSGlglF;vbXQAf)HY%j|QK5W|+6~`Ubid)q zjhfTKW+_x;Dq6k?YVo#0JwFK5u}P>uUtDM9-&C^qf09b>fefezilcsW@jYt4cEqDN z-mcfF?5?*(ExMto4oyLId=_e8znPoOgLeHa>i%n$efPj!3e@A5s1C%a;#PMmGc#(0 zxls>RwDKCLh&8bCA5a}=Y1g}1zCWtok(Qs0ipVnG3XYoRQRl!-)W|-g8jMxdRh$4- z9*XlZmzAGIHE_**VTM$5<%uyd*R!G;E`_Ssk0hZ6+h8UfirUvJP!ZXL8qq1#1DDL3 zR{j7Lfj3tE0oB2;s1C)g?mpSlp~@ps=S)|mKK}hb5(@1+EQy;@9e9KKruz@ofkHK0 zh2_l#s0urxt`9(Ua1`qKiKv0iLJedKszYb&`YmMr^Z8Ap9v7aYDy&e`Jx~wzqf}Sa zJE1S?`dn0lYfu&LL~Xazs1W~$>Oi9J-R}p|U;*;uQ3E=Rdj3C*ul*l0!bKo8Y6SUE zJuZq-u?{N4KiKtVsD|63D(Y{JM0Ic)s-7jNj;yllTTlZzi0aS-^cC{dwL-l8*c5wX zn%b^{>E;|%#fwo5ZZh{{OY)~JpSzBm+Y+cn)&@0@5vb?pp*p?_Ro~t^?0@a=GZe@d zs5y&Y*Dc1JsI^ho?1&oK5OWj`AwLn-z<2drgQ-y?EQo5b3+nn1)GsC{SbkAG_P=ge zM?rf$i0W}zeRpGd)PoIC4Y#p;XR|-5<0CD<0(IY3a}R0&ht12VKYD#(`ILSG_dp(0 zLxoX`r~>LIohGR5G8^^QJBaG=cMV+#GoX&i*Z3|JSa^_`#JY#K52b zr68e(vIGj)cBs``3AGm5qAD7UTAU*-zZlhlm8gcd+4TcfehqbgJjN*a+VUS!9Sm+l zx%Pj268bH6QdET*P#wyR>PR_M2U?;Y?11V>f7Jam%*Ckt)}tEUX6{D~r& zqThr>yQU%D6+DVdaZ#kJxKcAW_jOVGygjPo)2M^#f2anpoA*!+JT<>sdHm+CzGSHT zGofD3IhwQoHIkxsp+06M-xM|SQK+6TLydI5{4VZ+ET{)+qdL$V75ZtYsrl9N z%TW!kGxwQ)*!3Hz`|n%%>p(gCFQlux5Cb)5Nl*>sLWQ~@D%3w>7*53oxF7XrLdm+h z=X;@^8)A;K@`>1q@;RtA6uoH{HGPghX|)C1Mc`Z$Dq zb6kaYP>XS5FZYL4NqW22_ej)pUr-&2+9xFN7ntLqB2X6whAbd*oPNZerM-wkm0r#3U98Vp0dJqugDIu<402vz?KpM-im*Ia|@z#dG+ zA~}mXlAjH96;2!E?q7(iU<2wX-HsaRQB=cc?fNzIF6zD~cKxH3```ZLDvFKGxFMnC zdz%AMp&o{s<2mL=yM7GS@E@p#FPZmI&%H(sFqVC3rNlhs!;xP|`kszpJvbXRqGje< z)Pq~>`VlKXhlu1s;4(<*Nm|ICXBBAe@F>DZ5RGFADHh^ zt3K*bw`~fcc0)7Ek3|h&6Q;qVs0Qz&I`R%R@{nQfBu#@VFO7l!{-*{BRnQo9V;58e z#-MJTY|b-RncGnjJAxX(71VS0P#t)Rdj2!2-sr<^YEb22!`c6OpfClhs1)kKdUj(Q zyRoy`-yDgma2o3Q_2xEINA{w=|Bs2sN-VR=yx0`)`vK97Tov5~`wCs0ZVW zb*4Zqsw}AO7>SC=B)h&H)!-3S2QQ*Ja>IO%>cCf2JBh~8j`n{}68ddd6;y+*Q5E&T zP#l5D@HfZxq`dZ>;xF*~CoHV6a%{~sesXv7mx53V$~ znTJt5{}WZw1IxchZLio9-19|I9juSdu^TqVbEuByoapLrhuPyIQc0EpvnJ6!Z8fiz=bHh>3{ep_*8Vtqb=3~@XaLg(0zLKc=>-r@02MH}u zb2<&x)7_XB4_W>m>Vc=Y7(ZHm?o`*2m8jnSTAIr}~9Xw0T4dx!y*Y9!cff=S#VGt3(s^r(ta1DJ%t(lNt-0n$$YPbs0 zuJ5%Zp@zF-N&E@*z+NjqWBDtVe}cWa{sHwTCtYSb2cznlg8HF$K5A;dpdu4*mb;z= zvy;yd$g}^xC!rgg*bUt<4f#Q+pM2(`D!5}lM$Pd{R7Ydac5|Bw`;m`8T|bG6!~@jY z$os3C;>xJ0>5hT#{{bY_^PyM-Ct^-KVdWoD6@5F$b+ne*8ueUXtdAp59ld7dcTx4d zw0ziH_s4UEQQL1X`uY@lO5z9nZl3$utqbZ0kwd7Se?gsm3Ff=CQ3ack?}X~WX)C{s zisWZhWa2Jxkw}B8uPBbd-lzzCTEPC-FBGCIbnk#Ts1d}+A(#x+z^^z5m)rI7i(Et1 zP>VIv9AYjuk6>S}KR|V;*9UuizH#Rbx<4E>*JIlXV z9^&od`g>GEn^rjYqh400QTzM>=0R^|NZ=nN%!^tJJ&^AM-&;*0jDqK=22-wb9Z7HI zHOrc{Q5CmDEw+KE$V^0ia4bc2=piZ+Z}C_BYURJKb{$xbf#3h#Cb5JYo}(f$ZH+sK zmS7h0cg@&qT|)&>Khsq+o1sG7%bbde;6}^;4>OT}i(0HH*SVjfOJLyr-;RVH7>?@s za@5GSSpJxK0rmE~jrt+$Fb;Q8m{~Jj{ zNACjEh;O2%BKk)6x{QY{$mc|La5C!pJk(SyHTRl-qYjuCsQXiIa%M*jtPtvY)lKYw zg}k3#7>&x$K{c@2@|#c<9Wu|F*UZPLbL2g0EqI$Md*6t88ZfhqJ1i zP|$@7ca~n0sQFq&sihA4i#z}Y{ z)zMaa-1QBpqx%UeGU@iZdJ5t9ib|cYQ%R@FR5$?UHMS_Py7EG2`!?lhujTsQ72#Z!>+tH zYUC3zIc`FY%N#XsV{bc&VJwEXy1!=)HRp`XKSgm3Ls%Q5e|L^Q=KcoM$UjHEuz&pmhy9`kv6^HzFcOarY6<@T!lNa z0{OF86O;TM;!VW1sHuF9TGSIRx_!ULJdE01Coi)9tB~+6xt>==Et0l46KA4Eocppn zAAUeB#*^3sU*K$PdBuHH{)Yw0XS?b~-U2ni0cP}T?iY{0pdwJhzwR22dBe?dW?asN zny8R|z~Y$yrfaw-YKmr}rr;vZ!nn6Wyfe5074p8fL%bb08MUUW-f<`4T#QS8CF&&f zciM#ms2k6ip?BQ_Jy4k@^3w&H^mTwF$#ZD7IMGirwAa-HM$Es3-y=b}U#}h^UC&-GO3acXzj7 zcOCn`=iB+tzt@@T8lLx^dFGjUzYUh99ADamvVtO1P_Z=V%DyTn12$9i(0pf5o;Q3z zH*h^DU$`6wok6)NdMXap_%y{RQ0f+da^h8>G}sO{ z1@D0J$*16JTYfAk`qLGo6&J~y$0tavRAT=(wo5r2luH#3N~2YvG}@x^{h-{2*EOC1 z%1!V|0K~0_yx=crv6}SP!ts5N}!yi zsm9wWdV%seB2f1$6t^nIfqW9RoB^f&9GDZlVar=B-)swu^G6#Y4Ok39R!~mb2$W0J zQS&`OIZ0o|2v9C<3@E%qiYGz&WOMxf##@1MC-zhv0?IRFI4FZgg2wy*b6ChFT&8#( zloKZV;$%4nmH@YM4ZncGTm8*;3GaY%8~y~_fJOhYy$B5fTeANS?g1Nrw>>Nq{ooZ8 zI!!>iGQEEC_}|K642x*6>@VBB_AD60{xi4>?ETx;*!_>~ladG6fp{b+CwU3VmG}VO z1Reg`UXI@eo!LJDh4&nkEA>wC*Iyq05=aV71l&N`=LbuHWk9)8`Y6g@3zjFAxnLe} z3n-WLs^U#h8r=n}gHOPAU~UIzHtsf{)9BUPw zot%x&|J}iH#3zHf!PL&q#uX?H$}`>+upxK}l!tGYM9#*&ydap4eM7}Apey@8umu=u zWpRYXB~YI0qY~S$z!}AxU`^ujy3g<8Y}~2JfO67CpxkL&f^z5V1j-fZuloU@+39ktd05UjvlAHz@b!5KtP=R$QpK0+iR1>vew)l)9@L ze-FxlX_MOO^MMRvwG?F`g;ha$BI>4uAvS_#G$@7B6qjl|M)yY*Z-7$&Qqd`y?O@qJ zsV}7as)~(37?dme4V1>t z$!!PB2ui#XDEE>2U=f~wEFLU`7y`;|GZU17mV<4<)nH}tHzN zT;m%+dC|IE@xI2BrgXMA5_bjVtL1c{@$qd$0p%$@4wU-Wpzz)+{su)qnJbTfS)_5bO`b`y04O&_ zc~I_D^>yDJ6n+3Gmwd41qd*yOlkN{G-UfyL36#NqfHH_{8ru_Db}I`ZlvS((%57R3 z6v1FnZnH2@PBIykJI^#wo=6rbZd8m@ya4i4Z}Ft)C@9w0#fD+LE>D8!O7_;JY@FoA z#2mm-_DAtNT;CJiDHcPT0Qs7zsl~D$4tE9dUWs@?DHEzK;56yvM3@X5kH#0cXYiQ> z8oyaeh^GyXB@OfF zzm6$(7m~jYk_{2Q`2E+4Arg(x(8vaO8SREXr`%rTUub+H>j?}Vs{3T~nKc`S(oSiLte0XCE(dZJd+SwWB7l)Q~rA z7QDU0j}tg1zke0OG^+@jmYyMgAe2*u_%EuKXY98?SW97d_=Uk&40e=w0oEgFVwyMn zLTt{0yp}brGMt|5jlXtCq_y_D&Fc@tn%fOvi}2G>3{nAs7Bsr7!Lgib4Nb*P*uWCP zekbc#xjnHms@08pv4b=gt3;ev@0M~pR2E`strR_`K~X#@1v4NoHRwFAv!A2IffSAA zlq+eLhV^5_29kfx$#N5KK}`y6DCIrS>#c)+gmYDI^Hr?psb&{AR^FJf1VNm{AaikF zf_@PAn$yC+X|>z{#cCoj8Qx|52%J$2u#3hI@DAh_M*OB8L7US3MGwNkFsg0;jM$^GG<1g-5)>79Q zA4yE?3HqxUt~?s!$tPv+Z~XmDl5Lb^F!^usr##0$x!#JnM1CGSq* zdN2_u5|iI#u8W81aJH!JV^v~t8ZV*z>KtY#>(yWh2CJz3tfl{R+hl?i2O%+yTic00 zqTnBLx5ynpWFgHDG1O(&sfne8+Yrum>iV*O!7S(XN;ILzXM7Vi|1qm2go08!O>)G< zQp#nrEiGy7hDbraDnlHEUrX}>nb2_HiVeg)*$<=9WxIp5W}qtMZlQGy?o8EuD_?(= zVB-!!Y%app@htdX3YLOmku;UB3A@S7fb-JM(iEXKtbZ$~Jvxi1xlFtn{G$x;2o&qc zK<(g)jpYz4=~oP%asTH_bIUY}TYy@UEVKN@J7KMgvOZ;uDl zxGwy>i0*_dwwk)^#3I0d4c-jxQ2{OE@i$PX97l0x$lW1KRg$MniLJJQrGTCy9lSE+ z<|D$J9+rZ595vl&FiD4e2xf(s4S&S2SLhSZ+B8T0|FosGHh97%iPqcfB_b&xx5BF+ zk`v(*6pmxR1kO70KGd}&){~fN8OUuUHwXS;;;E?R&wg1Z>0wNsV0m~29XNkM7P%?B z23iqZM6x19H92W_L>jX1qxX;Q#Lp1lf^Ws^{71L|-27+^#CNfNhTow^?7M2nIt~58 zsCAd;|Bag1#Jx4pI_P z(~gku1J|@NG#O-1sw zDB8uo6Q@~DVG~6C*f%8aK;3>kl6WH;Zvw?ykx!3{`GPmlpp7M-+HvS4pnKJP{vQnC zt`Q5sXYE2S(LRPedjjz}?3==m#2d=(zdgjECjD9QdCwe zlaJQP4JIFW)6N6-&*&8vCZ;W@5kKr$k?D5Y2;$ z^PL~#{%7HRMoS(1Jq_+NeLmLnC|U@)r&03%4_%P7;VxJilYeu7*2sdI~8td%ngkuZ7Ti5Fy$R-mvlM$&8AMl-ybWwvxK4asn>;7K zkH#}}Kq0x|pWv0$t91>GVPBe>`-TcHMl|<`{btr1HU0>#y{rez?Jxg zz-OIWxckXD5$h-$Y^o0Q3QlQ;31T0O*d%(CNdV5t0fB^nl{&fZ3| zpA2`al@HTsyaQ4V`~at!#eNNh_4rm|<7kvo1*+=pW{TC(0e+CrMs5WABj7Z2QxR*6 z^QT}9TdQ~+{pLET^(vQ1>>I?*T++k%cw)~HX+z^#!60Ci2lVt7Lbd zsD=jbtQmF>PCFWn#l<#qkjmsU!T*e2HFz^zxc#S@Q-Qk?JVm2kkhW`FiubV}rh{fi z=(Ys0{)p$d8$e>IXuMd5=t`rC_*rUmk!!2NTt!1{r`-Mxu?;8MC8Byo3L_+zU?-HF zTm@otH8+-_J(TaQv8%+y`szL-`c3F3wgyjPWr}p#G#%mxSP!Ie1x}bui-p{l_qjgvr+y4JWter)1&y3-mILKceL z@#Es;!*ob5y#lUqOGu9RCd9WR+y)ejgmZ-aW`+#}r@)!7xi1WqjCc=tQAxP{2k1nN zNECv2mHk)9hjgf8c0*+&ml@7ViW9)6I!t=vr8x0kyoFvNC>94aO>3t**~qUzKfp-X zUVoSz%P~%LgXBHL#r7gx4;R}->?C-GrtYj~*bQb7^ut2Crn@=BPc&!R4RuYlRCBF- z!I_AuztOa`3if6#2P+EcB#ZkLcg2U}tKjTHa06@k$tJO2d=Qn1Qp1&_``~lh*>|2w}1Lr+jWjV+Va=x5ctR}iHH2(^37j;AARjXJ4 z0n;8p3c|N*z?a-biVo>1ZnFJuzeVU_Y#Htw@K;fr zpZI<9fw!Y?77+)cuzCf3mT-OHpSPmi$O!``9g zDe2J#jcwX1xqS6gnxfN?k~4%4$-kgjZA5xOJgCi95&x@&SL9}6KbN|!@LsXLt(R76 z=dt$&r|4l?!+)UbVrZm*>qCt5+l-%@u=K~r;9^CYI1n7nzB+|_+4FM*mR2V!7d;r*R5A6#qhgxeTLu;gp6S4PImj51Q|TQ;@pnGKhKp11!7Hq^S-f zDY2Ur-=Q#G1v`U2#NW~6J>HY1rY+ZX3%l4j>Qhrwl7@$gzXdDcm(a{9nsWU=LK@4Z z+)VR-GrdqJEFv0m`9Oi&Gw?E;GZHXI};H2iG)fY8A?E z7o5mswJBJHi#5@q<}-PAh8crs0~*!FQ<7UxJRDvSxt8daBK8Tr%&IvXy&k%L3~!K# zV!adT^>3t8e??#?Vq(uUcAi)v8kS?fIbFs53bdI$bg`desgSCmvkJO2M z*Fj|ML|s>~1H&eTCssyzt%zM?kUQ+Bo1gz{Xrq}rKyvo8Rd5ZHPovREgkI=Xxq`q# z_Dk3o0Vje>z#i1e&xPEhb`$%H@a|GS2lvqdWSBeT;~2zxj}K!g>Q93rkRz4k%zh05 z{J@IkCowM?Y{vuH`%)ve7f~@+_Br4@!1<9MOM7q<2Z_PQ*(eq_Vy0bybBfyI^7;QE zjZWxEm(ifPiYL=6ViZwamZH~e7HD4Lortf-$CDFl&cM@YIzk64i(VAkk>nE5=L?$k zS#Qx{su;h2NuVl4@*`IEmW@pr1fL?%Km{YT(I4V(bS*WDRZ!Mr;QuDyoAqIhF9P$x z-w$?RklhTHnsr%u{XY~h$f@enWEaKd^n|aqxERB^QS3)F{URKcjvub;0->nnt118TT>%{w{&H6nDk< z+ugRWDEy7^Ux*VZYzD6a`Bk9UU-(sNWN*>%#NLq;YY48>gFObn6WhaJCBdA=fIR-4 zS#%)~phT9IdKA{9@lJ-A!hR6B9q`T(6U&L0Vz@APh2a#zi{eXlpgr&!>kz{Cr~ahf z;U>eqM15WP`aiue>})pcP(4XKE^l4doe(&LXfXUSDqI3wMSL!?y9_rD?kH+I;8$o? zlh{@rI1vrk!WAn{tS8O;vbLsTvmGCePe$M$f{~!uYOnyr>lC-6II*7KIl1%14-g-! z+%#Yv&8Hxq0~Z@k+@C?*sgGdb)f}chy>78SVBY?*B)d?Y7tua?x{Aa;L*9!(R@NC2 z$qROdvx&Gr;=kbbBYw?2jpP93k_@1CU{HDEm*ps;jQh4@ue`44j|mMG|#B}A3DTp>g_GBUWJ12j{)?!o9`#_^| z3_Dr-jO0)`*+!ne}>_3e)d5!s}T!>oQY=kHjCI7 zVu2c8#DL>f`~m|$RGn7DXA}R$emv{0(>YKYxR=lvLVhR* zNkYuL|5?@|7{#^%iApM-UoY__L>5w%Soc#XEC6R3g0D3uQuPtPMXVY8F2wh+7i*~p zsm<`$*uo#oUn!o?miv}qYwR86M0{|7_{Qhbl%%*q(ezO1@|%Wx@h>pZ^c?{1;d;r z)`r?Va38QPt39k!2<*kZ2=0bZSBtuWlPDDH!n!EApA0mFMq;0+sZC8KIBAH@179)# zG{ZdMiuI#58Sy~XO$YZ1%?DBMBj5k2ipW_A8wrS|<&-V;Qk7$Wio$QY?+Et~#U5}w zD}O(=2WXa@0X88XK~0FBE;+UCtX*{I;!+Pkqw4+p_?O0FWgv*1!KYE=h)+cPG=7f4 zQra|J1-@vb;u`NpT>)aJZi6Ngu(N~21~X(e`pwm$XHaiE{wLAkGRa&F&@oGG z?L(uMeE#nUu?c>P(>11fO&Gt~=h8t6>&Z?dT9#Njd?~|xvlBZ-gKp%-4#5v%{YM6- z$p>P2(5u35L9A<#Z$_`zaCTZ%e7&Bsmz}7HH6Y$or~jl_451Km(TL1NI0;^fp*|8X zgySo4ts4j&AW)P^10WufuGl5Wcfn!c1>#-6iHKLl zTjMRMi9w_{Yq3kLFCi!v1$U^fU$OSbPuWt&$EUiEm)rk6oBR+4FhH=La0^3SWxaqV zC1|i8P8PjFQaeh;Wi2+0oVV0#{5!);(e-n*JfmJwY#o*b5mD z-dXvs#6vtp2UtgwVk)=-LL7pXaIxO(P1}Z0F5*GdULpRPx;6~`L>pITok7=4?dqid z5c^n$C`*m?5F)Seqf9hP8~H#O#Cod=xUzR=Ur>co(e#En2{@DZO}G~j^Z<*I4`x8q z&Y;~K&O9^*FxXJd&6n^0{?|ew4re;CItT{hPKXZS3gtq`5s})&Oglw<3H}6kz<*Ic z3tvQ&w|ao<=q;gOJeY>sLhu@s|KvjdCJ64v&yySv?h$1KT*W+R&2okA&n#(2L^xG&;yWCq<7SA0@to%PBTc zPm@)0Dv}d^dR#2M=39`P#C`}mTktHL*wnb4<+MQ_Hq-E1_zemsQ812zwB-AO zXPCM)u~GOHv))+{67CBm%L+Di}koBHo&~BVr5iUexc@(?4fFj=^1Y z--)5#!LN^gebsnPtS{b;Ix+LUWZUu4i{fWox;v1P<6kLGLvaojb!Eu$46utv`&icp zcd{4jjc7Btzx5yz3n7<;*kfWZC4l)cXg9R$B;}_*KM^Q|_#Me4i%t{fm~Q*1=Wgxt z1O@r{2fO$33m6jQ8SLZk<>}|^9_Sh5+27rFpu4aCVD_;Q)g3%?Co@vLy#l;_VlVV? zh^QDlc&YX_hE`b##nyC+z0yj`FI7>!#`m7aKHbn#_sRn z__Df7IrmZ(Dwi!8yD8eSd6OLR`)9^a3QyP(`XVeMVM$p0rg`xZV-ljayjZv>VS7~U z&&Q4vb7WYYFmbvq*`N+*iC?kxdCbb#5C^9YrD9)|b_#Ew>)E_<&*sO($Bm1hF*RYq zp7^1!sDmzelb2gcEDt(QOyh3REQ?b+MF;o)Ykn)$fT#cHpb76jh_=^D~o-3 J(`kH#{{d!ZWl{hD delta 60011 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 diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 1a4bbe6d40..ccefde7c91 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -4101,7 +4101,16 @@ int MachineObject::parse_json(std::string payload) GUI::wxGetApp().CallAfter([cali_mode, reason] { wxString info = ""; if (reason == "invalid nozzle_diameter") { - info = _L("Invalid nozzle diameter"); + info = _L("This calibration does not support the currently selected nozzle diameter"); + } + else if (reason == "invalid handle_flowrate_cali param") { + info = _L("Current flowrate cali param is invalid"); + } + else if (reason == "nozzle_diameter is not matched") { + info = _L("Selected diameter and machine diameter do not match"); + } + else if (reason == "generate auto filament cali gcode failure") { + info = _L("Failed to generate cali gcode"); } else { info = reason; From bdaabf614b2f5b1bf0f8fd0f95c3f177c4c53f20 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Mon, 25 Sep 2023 19:29:59 +0800 Subject: [PATCH 12/92] FIX: CLI: fix a 3mf saving issue some model returns -122 which is caused by the picture size not aligned JIRA: no jira Change-Id: I6501403262dfd271e3022ef70ee11b1ac4d6651b --- src/libslic3r/Format/bbs_3mf.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/Format/bbs_3mf.cpp b/src/libslic3r/Format/bbs_3mf.cpp index 313b47a855..f104d516de 100644 --- a/src/libslic3r/Format/bbs_3mf.cpp +++ b/src/libslic3r/Format/bbs_3mf.cpp @@ -5890,8 +5890,11 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) /* step width and step height */ int sw = thumbnail_data.width / PLATE_THUMBNAIL_SMALL_WIDTH; int sh = thumbnail_data.height / PLATE_THUMBNAIL_SMALL_HEIGHT; - for (int i = 0; i < thumbnail_data.height; i += sh) { - for (int j = 0; j < thumbnail_data.width; j += sw) { + int clampped_width = sw * PLATE_THUMBNAIL_SMALL_WIDTH; + int clampped_height = sh * PLATE_THUMBNAIL_SMALL_HEIGHT; + + for (int i = 0; i < clampped_height; i += sh) { + for (int j = 0; j < clampped_width; j += sw) { int r = 0, g = 0, b = 0, a = 0; for (int m = 0; m < sh; m++) { for (int n = 0; n < sw; n++) { From 634347319dcd00602893506937634e9ca4341995 Mon Sep 17 00:00:00 2001 From: "qing.zhang" Date: Tue, 26 Sep 2023 09:20:16 +0800 Subject: [PATCH 13/92] FIX: change M600 to M601 to prevent kobra crash Jira: 4606 Github: #2607 Signed-off-by: qing.zhang Change-Id: Ifeaac0c4f744ea82496f36ebea90e56647c14704 --- .../Anycubic/machine/Anycubic Kobra Max 0.4 nozzle.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/profiles/Anycubic/machine/Anycubic Kobra Max 0.4 nozzle.json b/resources/profiles/Anycubic/machine/Anycubic Kobra Max 0.4 nozzle.json index 86105538d3..32a5b37e5d 100644 --- a/resources/profiles/Anycubic/machine/Anycubic Kobra Max 0.4 nozzle.json +++ b/resources/profiles/Anycubic/machine/Anycubic Kobra Max 0.4 nozzle.json @@ -111,7 +111,7 @@ "40" ], "single_extruder_multi_material": "0", - "change_filament_gcode": "M600", + "change_filament_gcode": "M601", "machine_pause_gcode": "M601", "default_filament_profile": [ "Generic PLA @Anycubic" From 110079f77e48bbb80fd4b40a492f72f52fbe7722 Mon Sep 17 00:00:00 2001 From: "hu.wang" Date: Tue, 26 Sep 2023 11:11:11 +0800 Subject: [PATCH 14/92] FIX:translation of chamber temperature JIRA:STUDIO-4624 Change-Id: Ifacd32a901705b1ffc359657afb6de5356e60400 --- bbl/i18n/BambuStudio.pot | 45 +++++-------- bbl/i18n/de/BambuStudio_de.po | 96 ++++++++++++++++------------ bbl/i18n/en/BambuStudio_en.po | 92 ++++++++++++++------------ bbl/i18n/es/BambuStudio_es.po | 92 ++++++++++++++------------ bbl/i18n/fr/BambuStudio_fr.po | 92 ++++++++++++++------------ bbl/i18n/hu/BambuStudio_hu.po | 92 ++++++++++++++------------ bbl/i18n/it/BambuStudio_it.po | 92 ++++++++++++++------------ bbl/i18n/ja/BambuStudio_ja.po | 92 ++++++++++++++------------ bbl/i18n/ko/BambuStudio_ko.po | 92 ++++++++++++++------------ bbl/i18n/nl/BambuStudio_nl.po | 92 ++++++++++++++------------ bbl/i18n/sv/BambuStudio_sv.po | 96 ++++++++++++++++------------ bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 83 +++++++++++------------- resources/i18n/de/BambuStudio.mo | Bin 296030 -> 295489 bytes resources/i18n/en/BambuStudio.mo | Bin 271443 -> 270932 bytes resources/i18n/es/BambuStudio.mo | Bin 292774 -> 292261 bytes resources/i18n/fr/BambuStudio.mo | Bin 302167 -> 301656 bytes resources/i18n/hu/BambuStudio.mo | Bin 296697 -> 296136 bytes resources/i18n/it/BambuStudio.mo | Bin 290622 -> 290109 bytes resources/i18n/ja/BambuStudio.mo | Bin 279907 -> 279398 bytes resources/i18n/ko/BambuStudio.mo | Bin 290790 -> 290191 bytes resources/i18n/nl/BambuStudio.mo | Bin 291104 -> 290592 bytes resources/i18n/sv/BambuStudio.mo | Bin 280282 -> 279759 bytes resources/i18n/zh_cn/BambuStudio.mo | Bin 266720 -> 266664 bytes src/slic3r/GUI/AmsMappingPopup.cpp | 1 + 24 files changed, 577 insertions(+), 480 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 1e5638bf88..36df51b5db 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1920,13 +1920,13 @@ msgstr "" msgid "Max volumetric speed" msgstr "" -msgid "\\u2103" +msgid "℃" msgstr "" msgid "Bed temperature" msgstr "" -msgid "mm\\u00B3" +msgid "mm³" msgstr "" msgid "Start calibration" @@ -2511,20 +2511,20 @@ msgstr "" msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5287,8 +5287,8 @@ msgstr "" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" @@ -7224,9 +7224,6 @@ msgstr "" msgid "Minimal purge on wipe tower" msgstr "" -msgid "mm³" -msgstr "" - msgid "Filament load time" msgstr "" @@ -9306,10 +9303,10 @@ msgstr "" msgid "Printing Parameters" msgstr "" -msgid "- \\u2103" +msgid "- ℃" msgstr "" -msgid " \\u2103" +msgid " ℃" msgstr "" msgid "Plate Type" @@ -9361,15 +9358,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "" @@ -9379,9 +9367,6 @@ msgstr "" msgid "To Volumetric Speed" msgstr "" -msgid "mm\\u00B3/s" -msgstr "" - msgid "Flow Dynamics Calibration Result" msgstr "" @@ -9485,7 +9470,7 @@ msgstr "" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" @@ -9500,7 +9485,7 @@ msgstr "" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index e2c9b8482b..92a0705ea1 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2040,14 +2040,14 @@ msgstr "Druckbetttemperatur" msgid "Max volumetric speed" msgstr "Maximale Volumengeschwindigkeit" -msgid "\\u2103" -msgstr "\\u2103" +msgid "℃" +msgstr "" msgid "Bed temperature" msgstr "Druckbetttemperatur" -msgid "mm\\u00B3" -msgstr "mm\\u00B3" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "Starten" @@ -2757,20 +2757,20 @@ msgstr "Update fehlgeschlagen." msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5723,8 +5723,8 @@ msgstr "Allgemeine Geschäftsbedingungen" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "Vielen Dank für den Kauf eines Bambu Lab Geräts. Bevor Sie Ihr Bambu Lab " @@ -7987,9 +7987,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "Minimale Wischmenge im Wischturm" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "Ladedauer des Filaments" @@ -9984,8 +9981,8 @@ msgid "" "No layers were detected. You might want to repair your STL file(s) or check " "their size or thickness and retry.\n" msgstr "" -"Es wurden keine Schichten erkannt. Möglicherweise möchten Sie Ihre STL-Datei" -"(en) reparieren oder ihre Größe oder Dicke überprüfen und es erneut " +"Es wurden keine Schichten erkannt. Möglicherweise möchten Sie Ihre STL-" +"Datei(en) reparieren oder ihre Größe oder Dicke überprüfen und es erneut " "versuchen.\n" msgid "" @@ -10490,11 +10487,11 @@ msgstr "" msgid "Printing Parameters" msgstr "Druckparameter" -msgid "- \\u2103" -msgstr "- u2103" +msgid "- ℃" +msgstr "" -msgid " \\u2103" -msgstr "u2103" +msgid " ℃" +msgstr "" msgid "Plate Type" msgstr "Druckbetttyp" @@ -10551,15 +10548,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "" "Der Düsendurchmesser wurde von den Druckereinstellungen synchronisiert." @@ -10570,9 +10558,6 @@ msgstr "Von Volumengeschwindigkeit" msgid "To Volumetric Speed" msgstr "Bis Volumengeschwindigkeit" -msgid "mm\\u00B3/s" -msgstr "mm\\u00B3/s" - msgid "Flow Dynamics Calibration Result" msgstr "Ergebnis der Flussdynamik-Kalibrierung" @@ -10684,12 +10669,9 @@ msgstr "Schritt:" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" -"Bitte geben Sie gültige Werte ein:\n" -"Start > 0 \\Schritt >= 0\n" -"End > Start + Schritt)" msgid "VFA test" msgstr "VFA Test" @@ -10702,12 +10684,9 @@ msgstr "Endgeschwindigkeit:" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" -"Bitte geben Sie gültige Werte ein:\n" -"Start > 0 \\Schritt >= 0\n" -"End > Start + Schritt)" msgid "Start retraction length: " msgstr "Start Rückzugslänge:" @@ -11122,6 +11101,39 @@ msgstr "" "Wussten Sie, dass Sie die Festigkeit des Modells durch mehr Wandlinien und " "eine höhere Dichte der Füllung verbessern können?" +#~ msgid "\\u2103" +#~ msgstr "\\u2103" + +#~ msgid "mm\\u00B3" +#~ msgstr "mm\\u00B3" + +#~ msgid "- \\u2103" +#~ msgstr "- u2103" + +#~ msgid " \\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3/s" +#~ msgstr "mm\\u00B3/s" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Bitte geben Sie gültige Werte ein:\n" +#~ "Start > 0 \\Schritt >= 0\n" +#~ "End > Start + Schritt)" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 10 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Bitte geben Sie gültige Werte ein:\n" +#~ "Start > 0 \\Schritt >= 0\n" +#~ "End > Start + Schritt)" + #~ msgid "Invalid nozzle diameter" #~ msgstr "Ungültiger Düsendurchmesser" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index c8fa9ef3cb..cea1b45c18 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1989,14 +1989,14 @@ msgstr "Bed Temperature" msgid "Max volumetric speed" msgstr "Max volumetric speed" -msgid "\\u2103" -msgstr "\\u2103" +msgid "℃" +msgstr "" msgid "Bed temperature" msgstr "Bed temperature" -msgid "mm\\u00B3" -msgstr "mm\\u00B3" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "Start" @@ -2682,20 +2682,20 @@ msgstr "Update failed." msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5584,8 +5584,8 @@ msgstr "Terms and Conditions" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "Thank you for purchasing a Bambu Lab device. Before using your Bambu Lab " @@ -7778,9 +7778,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "Minimal purge on wipe tower" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "Filament load time" @@ -10198,11 +10195,11 @@ msgstr "" msgid "Printing Parameters" msgstr "Printing Parameters" -msgid "- \\u2103" -msgstr "- u2103" +msgid "- ℃" +msgstr "" -msgid " \\u2103" -msgstr "u2103" +msgid " ℃" +msgstr "" msgid "Plate Type" msgstr "Plate Type" @@ -10257,15 +10254,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "The nozzle diameter has been synchronized from the printer settings." @@ -10275,9 +10263,6 @@ msgstr "From Volumetric Speed" msgid "To Volumetric Speed" msgstr "To Volumetric Speed" -msgid "mm\\u00B3/s" -msgstr "mm\\u00B3/s" - msgid "Flow Dynamics Calibration Result" msgstr "Flow Dynamics Calibration Result" @@ -10389,12 +10374,9 @@ msgstr "step:" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" -"Please input valid values:\n" -"start > 0 \\step >= 0\n" -"end > start + step)" msgid "VFA test" msgstr "VFA test" @@ -10407,12 +10389,9 @@ msgstr "End speed:" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" -"Please input valid values:\n" -"start > 0 \\step >= 0\n" -"end > start + step)" msgid "Start retraction length: " msgstr "Start retraction length:" @@ -10817,6 +10796,39 @@ msgstr "" "Did you know that you can use more wall loops and higher sparse infill " "density to improve the strength of the model?" +#~ msgid "\\u2103" +#~ msgstr "\\u2103" + +#~ msgid "mm\\u00B3" +#~ msgstr "mm\\u00B3" + +#~ msgid "- \\u2103" +#~ msgstr "- u2103" + +#~ msgid " \\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3/s" +#~ msgstr "mm\\u00B3/s" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 10 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" + #~ msgid "Invalid nozzle diameter" #~ msgstr "Invalid nozzle diameter" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index 0b00d45d97..f1eef859ef 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2037,14 +2037,14 @@ msgstr "Temperatura de la base" msgid "Max volumetric speed" msgstr "Velocidad volumétrica máxima" -msgid "\\u2103" -msgstr "\\ u2103" +msgid "℃" +msgstr "" msgid "Bed temperature" msgstr "Temperatura de la base" -msgid "mm\\u00B3" -msgstr "mm\\ u00b3" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "Iniciar" @@ -2748,20 +2748,20 @@ msgstr "Actualización fallida." msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5691,8 +5691,8 @@ msgstr "Términos y condiciones" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "Thank you for purchasing a Bambu Lab device. Before using your Bambu Lab " @@ -7944,9 +7944,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "Purga mínima en la torre de limpieza" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "Tiempo de carga de filamento" @@ -10409,11 +10406,11 @@ msgstr "" msgid "Printing Parameters" msgstr "Printing Parameters" -msgid "- \\u2103" -msgstr "- u2103" +msgid "- ℃" +msgstr "" -msgid " \\u2103" -msgstr "u2103" +msgid " ℃" +msgstr "" msgid "Plate Type" msgstr "Tipo de cama" @@ -10468,15 +10465,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "The nozzle diameter has been synchronized from the printer settings." @@ -10486,9 +10474,6 @@ msgstr "From Volumetric Speed" msgid "To Volumetric Speed" msgstr "To Volumetric Speed" -msgid "mm\\u00B3/s" -msgstr "mm\\u00B3/s" - msgid "Flow Dynamics Calibration Result" msgstr "Flow Dynamics Calibration Result" @@ -10600,12 +10585,9 @@ msgstr "step:" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" -"Please input valid values:\n" -"start > 0 \\step >= 0\n" -"end > start + step)" msgid "VFA test" msgstr "VFA test" @@ -10618,12 +10600,9 @@ msgstr "End speed:" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" -"Please input valid values:\n" -"start > 0 \\step >= 0\n" -"end > start + step)" msgid "Start retraction length: " msgstr "Start retraction length:" @@ -11029,6 +11008,39 @@ msgstr "" "¿Sabía que puede utilizar más bucles de pared y una densidad de relleno " "dispersa más alta para mejorar la resistencia del modelo?" +#~ msgid "\\u2103" +#~ msgstr "\\ u2103" + +#~ msgid "mm\\u00B3" +#~ msgstr "mm\\ u00b3" + +#~ msgid "- \\u2103" +#~ msgstr "- u2103" + +#~ msgid " \\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3/s" +#~ msgstr "mm\\u00B3/s" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 10 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" + #~ msgid "Invalid nozzle diameter" #~ msgstr "Diámetro de boquilla no válido" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 8a49181ff1..104adad207 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2036,14 +2036,14 @@ msgstr "Température du lit" msgid "Max volumetric speed" msgstr "Vitesse volumétrique maximale" -msgid "\\u2103" -msgstr "\\u2103" +msgid "℃" +msgstr "" msgid "Bed temperature" msgstr "Température du plateau" -msgid "mm\\u00B3" -msgstr "mm\\u00B3" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "Démarrer" @@ -2739,20 +2739,20 @@ msgstr "Mise à jour a échoué." msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5704,8 +5704,8 @@ msgstr "Termes et conditions" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "Nous vous remercions d'avoir acheté un produit Bambu Lab. Avant d'utiliser " @@ -7989,9 +7989,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "Purge minimale sur la tour de nettoyage" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "Temps de chargement du filament" @@ -10498,11 +10495,11 @@ msgstr "" msgid "Printing Parameters" msgstr "Printing Parameters" -msgid "- \\u2103" -msgstr "- u2103" +msgid "- ℃" +msgstr "" -msgid " \\u2103" -msgstr "u2103" +msgid " ℃" +msgstr "" msgid "Plate Type" msgstr "Type de plaque" @@ -10557,15 +10554,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "The nozzle diameter has been synchronized from the printer settings." @@ -10575,9 +10563,6 @@ msgstr "From Volumetric Speed" msgid "To Volumetric Speed" msgstr "To Volumetric Speed" -msgid "mm\\u00B3/s" -msgstr "mm\\u00B3/s" - msgid "Flow Dynamics Calibration Result" msgstr "Flow Dynamics Calibration Result" @@ -10689,12 +10674,9 @@ msgstr "step:" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" -"Please input valid values:\n" -"start > 0 \\step >= 0\n" -"end > start + step)" msgid "VFA test" msgstr "VFA test" @@ -10707,12 +10689,9 @@ msgstr "End speed:" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" -"Please input valid values:\n" -"start > 0 \\step >= 0\n" -"end > start + step)" msgid "Start retraction length: " msgstr "Start retraction length:" @@ -11126,6 +11105,39 @@ msgstr "" "Saviez-vous que vous pouvez définir un plus grand nombre de périmètre et une " "densité de remplissage plus élevée pour améliorer la résistance du modèle ?" +#~ msgid "\\u2103" +#~ msgstr "\\u2103" + +#~ msgid "mm\\u00B3" +#~ msgstr "mm\\u00B3" + +#~ msgid "- \\u2103" +#~ msgstr "- u2103" + +#~ msgid " \\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3/s" +#~ msgstr "mm\\u00B3/s" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 10 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" + #~ msgid "Invalid nozzle diameter" #~ msgstr "Diamètre de buse invalide" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index 1236a8c46e..c185fb3bfb 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2025,14 +2025,14 @@ msgstr "Asztalhőmérséklet" msgid "Max volumetric speed" msgstr "Max. volumetrikus sebesség" -msgid "\\u2103" -msgstr "\\u2103" +msgid "℃" +msgstr "" msgid "Bed temperature" msgstr "Asztalhőmérséklet" -msgid "mm\\u00B3" -msgstr "mm\\u00B3" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "Start" @@ -2722,20 +2722,20 @@ msgstr "A frissítés sikertelen." msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5645,8 +5645,8 @@ msgstr "Felhasználási feltételek" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "Köszönjük, hogy Bambu Lab készüléket vásároltál. Mielőtt használnád az új " @@ -7883,9 +7883,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "Minimális tisztítás a törlőtoronyban" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "Filament betöltési idő" @@ -10345,11 +10342,11 @@ msgstr "" msgid "Printing Parameters" msgstr "Nyomtatási paraméterek" -msgid "- \\u2103" -msgstr "- u2103" +msgid "- ℃" +msgstr "" -msgid " \\u2103" -msgstr "u2103" +msgid " ℃" +msgstr "" msgid "Plate Type" msgstr "Tálcatípus" @@ -10404,15 +10401,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "A fúvóka átmérője a nyomtató beállításaiból került szinkronizálásra." @@ -10422,9 +10410,6 @@ msgstr "Ettől a volumetrikus sebességtől" msgid "To Volumetric Speed" msgstr "Eddig a volumetrikus sebességig" -msgid "mm\\u00B3/s" -msgstr "mm\\u00B3/s" - msgid "Flow Dynamics Calibration Result" msgstr "Áramlásdinamikai kalibrációs eredmény" @@ -10536,12 +10521,9 @@ msgstr "lépcső:" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" -"Kérjük, adj meg érvényes értékeket:\n" -"\\lépcső>= 0\n" -"befejező > kezdő + lépcső)" msgid "VFA test" msgstr "VFA teszt" @@ -10554,12 +10536,9 @@ msgstr "Befejező sebesség:" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" -"Kérjük, adj meg érvényes értékeket:\n" -"kezdő > 0 \\lépcső >= 0\n" -"befejező > kezdő + lépcső)" msgid "Start retraction length: " msgstr "Kezdő visszahúzás hossza:" @@ -10965,6 +10944,39 @@ msgstr "" "Tudtad, hogy több fal vagy nagyobb kitöltés használatával javíthatod a " "modell szilárdságát?" +#~ msgid "\\u2103" +#~ msgstr "\\u2103" + +#~ msgid "mm\\u00B3" +#~ msgstr "mm\\u00B3" + +#~ msgid "- \\u2103" +#~ msgstr "- u2103" + +#~ msgid " \\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3/s" +#~ msgstr "mm\\u00B3/s" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Kérjük, adj meg érvényes értékeket:\n" +#~ "\\lépcső>= 0\n" +#~ "befejező > kezdő + lépcső)" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 10 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Kérjük, adj meg érvényes értékeket:\n" +#~ "kezdő > 0 \\lépcső >= 0\n" +#~ "befejező > kezdő + lépcső)" + #~ msgid "Invalid nozzle diameter" #~ msgstr "Érvénytelen fúvóka átmérő" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index 290bd92482..6d523461f4 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2022,14 +2022,14 @@ msgstr "Temperatura piano" msgid "Max volumetric speed" msgstr "Massima velocità volumetrica" -msgid "\\u2103" -msgstr "\\u2103" +msgid "℃" +msgstr "" msgid "Bed temperature" msgstr "Temperatura piano" -msgid "mm\\u00B3" -msgstr "mm\\u00B3" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "Calibra" @@ -2729,20 +2729,20 @@ msgstr "Aggiornamento fallito" msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5661,8 +5661,8 @@ msgstr "Termini e condizioni" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "Grazie per aver acquistato un dispositivo Bambu Lab. Prima di utilizzare il " @@ -7923,9 +7923,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "Spurgo minimo sulla torre di pulitura" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "Durata caricamento filamento" @@ -10414,11 +10411,11 @@ msgstr "" msgid "Printing Parameters" msgstr "Parametri di stampa" -msgid "- \\u2103" -msgstr "- u2103" +msgid "- ℃" +msgstr "" -msgid " \\u2103" -msgstr "u2103" +msgid " ℃" +msgstr "" msgid "Plate Type" msgstr "Tipo di piatto" @@ -10474,15 +10471,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "" "Il diametro del nozzle è stato sincronizzato dalle impostazioni della " @@ -10494,9 +10482,6 @@ msgstr "Dalla velocità volumetrica" msgid "To Volumetric Speed" msgstr "Alla velocità volumetrica" -msgid "mm\\u00B3/s" -msgstr "mm\\u00B3/s" - msgid "Flow Dynamics Calibration Result" msgstr "Risultato Calibrazione Flusso Dinamica" @@ -10608,12 +10593,9 @@ msgstr "passo:" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" -"Inserisci valori validi:\n" -"avvio > 0\\ step >= 0\n" -"fine > inizio + passo)" msgid "VFA test" msgstr "Test VFA" @@ -10626,12 +10608,9 @@ msgstr "Velocità finale:" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" -"Inserisci valori validi:\n" -"avvio > 0\\ step >= 0\n" -"fine > inizio + passo)" msgid "Start retraction length: " msgstr "Lunghezza iniziale retrazione:" @@ -11040,6 +11019,39 @@ msgstr "" "Sapevate che è possibile utilizzare un maggior numero di anelli a parete e " "una maggiore densità riempimento per migliorare la resistenza del modello?" +#~ msgid "\\u2103" +#~ msgstr "\\u2103" + +#~ msgid "mm\\u00B3" +#~ msgstr "mm\\u00B3" + +#~ msgid "- \\u2103" +#~ msgstr "- u2103" + +#~ msgid " \\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3/s" +#~ msgstr "mm\\u00B3/s" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Inserisci valori validi:\n" +#~ "avvio > 0\\ step >= 0\n" +#~ "fine > inizio + passo)" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 10 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Inserisci valori validi:\n" +#~ "avvio > 0\\ step >= 0\n" +#~ "fine > inizio + passo)" + #~ msgid "Invalid nozzle diameter" #~ msgstr "Diametro nozzle non valido" diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index a565cca9fb..474fea016b 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1968,14 +1968,14 @@ msgstr "ベッド温度" msgid "Max volumetric speed" msgstr "最大体積速度" -msgid "\\u2103" -msgstr "u2103" +msgid "℃" +msgstr "" msgid "Bed temperature" msgstr "ベッド温度" -msgid "mm\\u00B3" -msgstr "mmu00B3" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "開始" @@ -2621,20 +2621,20 @@ msgstr "更新が失敗しました。" msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5477,8 +5477,8 @@ msgstr "Terms and Conditions" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "Thank you for purchasing a Bambu Lab device. Before using your Bambu Lab " @@ -7576,9 +7576,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "プライムタワー上最小フラッシュ量" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "フィラメントロード時間" @@ -9907,11 +9904,11 @@ msgstr "" msgid "Printing Parameters" msgstr "Printing Parameters" -msgid "- \\u2103" -msgstr "- u2103" +msgid "- ℃" +msgstr "" -msgid " \\u2103" -msgstr "u2103" +msgid " ℃" +msgstr "" msgid "Plate Type" msgstr "Plate Type" @@ -9966,15 +9963,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "The nozzle diameter has been synchronized from the printer settings." @@ -9984,9 +9972,6 @@ msgstr "From Volumetric Speed" msgid "To Volumetric Speed" msgstr "To Volumetric Speed" -msgid "mm\\u00B3/s" -msgstr "mm\\u00B3/s" - msgid "Flow Dynamics Calibration Result" msgstr "Flow Dynamics Calibration Result" @@ -10098,12 +10083,9 @@ msgstr "step:" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" -"Please input valid values:\n" -"start > 0 \\step >= 0\n" -"end > start + step)" msgid "VFA test" msgstr "VFA test" @@ -10116,12 +10098,9 @@ msgstr "End speed:" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" -"Please input valid values:\n" -"start > 0 \\step >= 0\n" -"end > start + step)" msgid "Start retraction length: " msgstr "Start retraction length:" @@ -10498,6 +10477,39 @@ msgstr "" "強度の向上\n" "壁面層数やインフィルの充填密度を増やして造形強度を向上できます。" +#~ msgid "\\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3" +#~ msgstr "mmu00B3" + +#~ msgid "- \\u2103" +#~ msgstr "- u2103" + +#~ msgid " \\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3/s" +#~ msgstr "mm\\u00B3/s" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 10 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" + #~ msgid "Invalid nozzle diameter" #~ msgstr "Invalid nozzle diameter" diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index 33f1ab474d..319313f23f 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -1977,14 +1977,14 @@ msgstr "베드 온도" msgid "Max volumetric speed" msgstr "최대 체적 속도" -msgid "\\u2103" -msgstr "\\u2103" +msgid "℃" +msgstr "" msgid "Bed temperature" msgstr "베드 온도" -msgid "mm\\u00B3" -msgstr "mm\\u00B3" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "시작" @@ -2655,20 +2655,20 @@ msgstr "업데이트 실패" msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5537,8 +5537,8 @@ msgstr "이용약관" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "Bambu Lab 기기를 구매해 주셔서 감사합니다. Bambu Lab 기기를 사용하기 전에 이" @@ -7677,9 +7677,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "와이프타워에 최소 짜내기" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "필라멘트 로드 시간" @@ -10041,11 +10038,11 @@ msgstr "" msgid "Printing Parameters" msgstr "Printing Parameters" -msgid "- \\u2103" -msgstr "- u2103" +msgid "- ℃" +msgstr "" -msgid " \\u2103" -msgstr "u2103" +msgid " ℃" +msgstr "" msgid "Plate Type" msgstr "플레이트 유형" @@ -10100,15 +10097,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "The nozzle diameter has been synchronized from the printer settings." @@ -10118,9 +10106,6 @@ msgstr "From Volumetric Speed" msgid "To Volumetric Speed" msgstr "To Volumetric Speed" -msgid "mm\\u00B3/s" -msgstr "mm\\u00B3/s" - msgid "Flow Dynamics Calibration Result" msgstr "Flow Dynamics Calibration Result" @@ -10232,12 +10217,9 @@ msgstr "" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" -"Please input valid values:\n" -"start > 0 \\step >= 0\n" -"end > start + step)" msgid "VFA test" msgstr "VFA test" @@ -10250,12 +10232,9 @@ msgstr "End speed:" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" -"Please input valid values:\n" -"start > 0 \\step >= 0\n" -"end > start + step)" msgid "Start retraction length: " msgstr "Start retraction length:" @@ -10657,6 +10636,39 @@ msgstr "" "더 많은 벽 루프와 더 높은 내부채움 밀도를 사용하여 모델의 강도를 높일 수 있다" "는 사실을 알고 계셨습니까?" +#~ msgid "\\u2103" +#~ msgstr "\\u2103" + +#~ msgid "mm\\u00B3" +#~ msgstr "mm\\u00B3" + +#~ msgid "- \\u2103" +#~ msgstr "- u2103" + +#~ msgid " \\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3/s" +#~ msgstr "mm\\u00B3/s" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 10 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" + #~ msgid "Invalid nozzle diameter" #~ msgstr "Invalid nozzle diameter" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 7358dd8684..47a9f68245 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2040,14 +2040,14 @@ msgstr "Bed Temperatuur" msgid "Max volumetric speed" msgstr "Maximale volumetrische snelheid" -msgid "\\u2103" -msgstr "\\ u2103" +msgid "℃" +msgstr "" msgid "Bed temperature" msgstr "Printbed temperatuur" -msgid "mm\\u00B3" -msgstr "mm\\u00B3" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "Starten" @@ -2744,20 +2744,20 @@ msgstr "Updaten mislukt." msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5704,8 +5704,8 @@ msgstr "Algemene voorwaarden" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "Bedankt voor de aanschaf van een Bambu Lab-apparaat. Lees de algemene " @@ -7970,9 +7970,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "Minimale filament reiniging op de wipe tower" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "Filament laadt tijd" @@ -10466,11 +10463,11 @@ msgstr "" msgid "Printing Parameters" msgstr "Afdrukparameters" -msgid "- \\u2103" -msgstr "- u2103" +msgid "- ℃" +msgstr "" -msgid " \\u2103" -msgstr "u2103" +msgid " ℃" +msgstr "" msgid "Plate Type" msgstr "Bedtype" @@ -10525,15 +10522,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "" "De diameter van de nozzle is gesynchroniseerd met de printerinstellingen." @@ -10544,9 +10532,6 @@ msgstr "Van Volumetric Speed" msgid "To Volumetric Speed" msgstr "Naar volumetrische snelheid" -msgid "mm\\u00B3/s" -msgstr "mm\\u00B3/s" - msgid "Flow Dynamics Calibration Result" msgstr "Kalibratieresultaat van Flow Dynamics" @@ -10658,12 +10643,9 @@ msgstr "stap:" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" -"Voer geldige waarden in:\n" -"start > 0 \\step >= 0\n" -"einde > begin + stap)" msgid "VFA test" msgstr "VFA-test" @@ -10676,12 +10658,9 @@ msgstr "Eindsnelheid:" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" -"Voer geldige waarden in:\n" -"start > 0 \\step >= 0\n" -"einde > begin + stap)" msgid "Start retraction length: " msgstr "Begin terugtreklengte:" @@ -11088,6 +11067,39 @@ msgstr "" "Wist je dat je meer wandlussen en een hogere dunne invuldichtheid kunt " "gebruiken om de sterkte van het model te verbeteren?" +#~ msgid "\\u2103" +#~ msgstr "\\ u2103" + +#~ msgid "mm\\u00B3" +#~ msgstr "mm\\u00B3" + +#~ msgid "- \\u2103" +#~ msgstr "- u2103" + +#~ msgid " \\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3/s" +#~ msgstr "mm\\u00B3/s" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Voer geldige waarden in:\n" +#~ "start > 0 \\step >= 0\n" +#~ "einde > begin + stap)" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 10 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Voer geldige waarden in:\n" +#~ "start > 0 \\step >= 0\n" +#~ "einde > begin + stap)" + #~ msgid "Invalid nozzle diameter" #~ msgstr "Ongeldige nozzle diameter" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 100ebd5c2e..655d673c6e 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2004,14 +2004,14 @@ msgstr "Byggplattans temperatur" msgid "Max volumetric speed" msgstr "Max volymetrisk hastighet" -msgid "\\u2103" -msgstr "\\u2103" +msgid "℃" +msgstr "" msgid "Bed temperature" msgstr "Byggplattans temperatur" -msgid "mm\\u00B3" -msgstr "mm\\u00B3" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "Starta" @@ -2699,20 +2699,20 @@ msgstr "Uppdatering misslyckades." msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." msgstr "" msgid "Failed to start printing job" @@ -5607,8 +5607,8 @@ msgstr "Villkor och bestämmelser" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "Tack för att du har köpt en Bambu Lab enhet. Innan du använder din Bambu Lab " @@ -7799,9 +7799,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "Minimal purge på wipe torn" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "Inmatningstid för filament" @@ -9063,8 +9060,8 @@ msgid "" "interface is Concentric" msgstr "" "Linje mönster för support gränssnittsytan .Standardmönstret för olösligt " -"(material) support gränssnittet är Räta medan standardmönstret för lösligt" -"(material) stödgränssnittet är koncentriskt" +"(material) support gränssnittet är Räta medan standardmönstret för " +"lösligt(material) stödgränssnittet är koncentriskt" msgid "Rectilinear Interlaced" msgstr "Rätlinjig sammanflätning" @@ -10235,11 +10232,11 @@ msgstr "" msgid "Printing Parameters" msgstr "Parametrar för utskrift" -msgid "- \\u2103" -msgstr "- u2103" +msgid "- ℃" +msgstr "" -msgid " \\u2103" -msgstr "u2103" +msgid " ℃" +msgstr "" msgid "Plate Type" msgstr "Typ av byggplatta" @@ -10294,15 +10291,6 @@ msgstr "" msgid "Step value" msgstr "" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "Nozzle diametern har synkroniserats från skrivar inställningarna." @@ -10312,9 +10300,6 @@ msgstr "Från volymetrisk hastighet" msgid "To Volumetric Speed" msgstr "Till volymetrisk hastighet" -msgid "mm\\u00B3/s" -msgstr "mm\\u00B3/s" - msgid "Flow Dynamics Calibration Result" msgstr "Resultat för kalibrering av flödesdynamik" @@ -10426,12 +10411,9 @@ msgstr "steg:" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" -"Vänligen ange giltiga värden:\n" -"start > 0 \\steg >= 0\n" -"slut > start + steg)" msgid "VFA test" msgstr "VFA test" @@ -10444,12 +10426,9 @@ msgstr "Sluthastighet:" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" -"Vänligen ange giltiga värden:\n" -"start > 0 \\steg >= 0\n" -"slut > start + steg)" msgid "Start retraction length: " msgstr "Starta retractions längd:" @@ -10855,6 +10834,39 @@ msgstr "" "Visste du att du kan använda fler väggslingor och högre gles fyllningstäthet " "för att förbättra modellens styrka?" +#~ msgid "\\u2103" +#~ msgstr "\\u2103" + +#~ msgid "mm\\u00B3" +#~ msgstr "mm\\u00B3" + +#~ msgid "- \\u2103" +#~ msgstr "- u2103" + +#~ msgid " \\u2103" +#~ msgstr "u2103" + +#~ msgid "mm\\u00B3/s" +#~ msgstr "mm\\u00B3/s" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 0 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Vänligen ange giltiga värden:\n" +#~ "start > 0 \\steg >= 0\n" +#~ "slut > start + steg)" + +#~ msgid "" +#~ "Please input valid values:\n" +#~ "start > 10 \\step >= 0\n" +#~ "end > start + step)" +#~ msgstr "" +#~ "Vänligen ange giltiga värden:\n" +#~ "start > 0 \\steg >= 0\n" +#~ "slut > start + steg)" + #~ msgid "Invalid nozzle diameter" #~ msgstr "Ogiltig nozzle diameter" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index 7e46b5464e..d125504db7 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-25 17:40+0800\n" +"POT-Creation-Date: 2023-09-26 11:09+0800\n" "PO-Revision-Date: 2023-09-18 09:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -1942,14 +1942,14 @@ msgstr "热床温度" msgid "Max volumetric speed" msgstr "最大体积速度" -msgid "\\u2103" +msgid "℃" msgstr "" msgid "Bed temperature" msgstr "床温" -msgid "mm\\u00B3" -msgstr "" +msgid "mm³" +msgstr "mm³" msgid "Start calibration" msgstr "开始" @@ -2592,8 +2592,8 @@ msgstr "更新失败。" msgid "" "The current chamber temperature or the target chamber temperature exceeds " -"45\\u2103.In order to avoid extruder clogging,low temperature filament(PLA/" -"PETG/TPU) is not allowed to be loaded." +"45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" +"TPU) is not allowed to be loaded." msgstr "" "当前打印机腔内温度或者目标腔内温度超过了45度,为了避免挤出机堵塞,不允许加载" "低温打印丝(PLA/PETG/TPU)" @@ -2601,18 +2601,16 @@ msgstr "" msgid "" "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order to " "avoid extruder clogging,it is not allowed to set the chamber temperature " -"above 45\\u2103." +"above 45℃." msgstr "" "挤出机内装入低温长丝(PLA/PETG/TPU)。为了避免挤出机堵塞,不允许将打印机腔内温" "度设置在45度以上。" msgid "" -"When you set the chamber temperature below 40\\u2103, the chamber " -"temperature control will not be activated. And the target chamber " -"temperature will automatically be set to 0\\u2103." -msgstr "" -"当您设置的腔温低于40\\u2103时,腔温控制将不会启动。并且目标腔温将自动设置为" -"0\\u2103" +"When you set the chamber temperature below 40℃, the chamber temperature " +"control will not be activated. And the target chamber temperature will " +"automatically be set to 0℃." +msgstr "当您设置的腔温低于40℃时,腔温控制将不会启动。并且目标腔温将自动设置为0℃。" msgid "Failed to start printing job" msgstr "发起打印任务失败" @@ -5425,8 +5423,8 @@ msgstr "用户使用协议" msgid "" "Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab " "device, please read the termsand conditions.By clicking to agree to use your " -"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use" -"(collectively, the \"Terms\"). If you do not comply with or agree to the " +"Bambu Lab device, you agree to abide by the Privacy Policyand Terms of " +"Use(collectively, the \"Terms\"). If you do not comply with or agree to the " "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." msgstr "" "感谢您购买Bambu Lab设备,使用Bambu Lab设备前,请阅读一下条款,单击同意使用您" @@ -7460,9 +7458,6 @@ msgstr "mm³/s" msgid "Minimal purge on wipe tower" msgstr "擦拭塔上的最小清理量" -msgid "mm³" -msgstr "mm³" - msgid "Filament load time" msgstr "加载耗材丝的时间" @@ -9704,10 +9699,10 @@ msgstr "将打印一份测试模型。在校准之前,请清理打印平台并 msgid "Printing Parameters" msgstr "打印参数" -msgid "- \\u2103" +msgid "- ℃" msgstr "" -msgid " \\u2103" +msgid " ℃" msgstr "" msgid "Plate Type" @@ -9762,15 +9757,6 @@ msgstr "结束k值" msgid "Step value" msgstr "步长值" -msgid "0.5" -msgstr "" - -msgid "0.05" -msgstr "" - -msgid "0.005" -msgstr "" - msgid "The nozzle diameter has been synchronized from the printer Settings" msgstr "喷嘴直径已从打印机设置同步" @@ -9780,9 +9766,6 @@ msgstr "从体积速度" msgid "To Volumetric Speed" msgstr "至体积速度" -msgid "mm\\u00B3/s" -msgstr "" - msgid "Flow Dynamics Calibration Result" msgstr "动态流量校准结果" @@ -9894,11 +9877,11 @@ msgstr "值步长" msgid "" "Please input valid values:\n" -"start > 0 \\step >= 0\n" +"start > 0 step >= 0\n" "end > start + step)" msgstr "" "请输入有效值:\n" -"起始值 > 0 \\值步长 >= 0\n" +"起始值 > 0,值步长 >= 0\n" "结束值 > 起始值 + 值步长)" msgid "VFA test" @@ -9912,11 +9895,11 @@ msgstr "结束速度" msgid "" "Please input valid values:\n" -"start > 10 \\step >= 0\n" +"start > 10 step >= 0\n" "end > start + step)" msgstr "" "请输入有效值:\n" -"起始值 > 0 \\值步长 >= 0\n" +"起始值 > 0,值步长 >= 0\n" "结束值 > 起始值 + 值步长)" msgid "Start retraction length: " @@ -10300,13 +10283,10 @@ msgstr "" "提高强度\n" "你知道吗?你可以使用更多的墙层数和更高的疏散填充密度来提高模型的强度。" -#~ msgid "Invalid nozzle diameter" -#~ msgstr "非法喷嘴口径" - #~ msgid "" #~ "The current chamber temperature or the target chamber temperature exceeds " -#~ "45℃.In order to avoid extruder clogging,low temperature filament(PLA/PETG/" -#~ "TPU) is not allowed to be loaded." +#~ "45\\u2103.In order to avoid extruder clogging,low temperature " +#~ "filament(PLA/PETG/TPU) is not allowed to be loaded." #~ msgstr "" #~ "当前打印机腔内温度或者目标腔内温度超过了45度,为了避免挤出机堵塞,不允许加" #~ "载低温打印丝(PLA/PETG/TPU)" @@ -10314,29 +10294,40 @@ msgstr "" #~ msgid "" #~ "Low temperature filament(PLA/PETG/TPU) is loaded in the extruder.In order " #~ "to avoid extruder clogging,it is not allowed to set the chamber " -#~ "temperature above 45℃." +#~ "temperature above 45\\u2103." #~ msgstr "" #~ "挤出机内装入低温长丝(PLA/PETG/TPU)。为了避免挤出机堵塞,不允许将打印机腔内" #~ "温度设置在45度以上。" +#~ msgid "" +#~ "When you set the chamber temperature below 40\\u2103, the chamber " +#~ "temperature control will not be activated. And the target chamber " +#~ "temperature will automatically be set to 0\\u2103." +#~ msgstr "" +#~ "当您设置的腔温低于40\\u2103时,腔温控制将不会启动。并且目标腔温将自动设置" +#~ "为0\\u2103" + #~ msgid "" #~ "Please input valid values:\n" -#~ "start > 0 step >= 0\n" +#~ "start > 0 \\step >= 0\n" #~ "end > start + step)" #~ msgstr "" #~ "请输入有效值:\n" -#~ "起始值 > 0,值步长 >= 0\n" +#~ "起始值 > 0 \\值步长 >= 0\n" #~ "结束值 > 起始值 + 值步长)" #~ msgid "" #~ "Please input valid values:\n" -#~ "start > 10 step >= 0\n" +#~ "start > 10 \\step >= 0\n" #~ "end > start + step)" #~ msgstr "" #~ "请输入有效值:\n" -#~ "起始值 > 0,值步长 >= 0\n" +#~ "起始值 > 0 \\值步长 >= 0\n" #~ "结束值 > 起始值 + 值步长)" +#~ msgid "Invalid nozzle diameter" +#~ msgstr "非法喷嘴口径" + #~ msgid "Rating" #~ msgstr "评分" diff --git a/resources/i18n/de/BambuStudio.mo b/resources/i18n/de/BambuStudio.mo index bc6146d9c10a280cc365af6f6f7fe2f0240028d8..a3ed38e89d1fdd0c80bbd12fdce4fde04966baac 100644 GIT binary patch delta 58806 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ûWOI9|}< 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 Di1GNt delta 59246 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 diff --git a/resources/i18n/es/BambuStudio.mo b/resources/i18n/es/BambuStudio.mo index 70fea391eeea7fb29c682aebfd77cde8dfa9013a..860bec450421f8c68620480126f47681f23e6582 100644 GIT binary patch delta 58805 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 delta 59229 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 DE|$u_ diff --git a/resources/i18n/fr/BambuStudio.mo b/resources/i18n/fr/BambuStudio.mo index 96e98a1beb6de2e50a4ea16bb92c1819791eda39..137c4d4b593e6369257b2a7456afc10f2aef7833 100644 GIT binary patch delta 58806 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%0A5Jg)35k~^SF8$av4O-AZ)Wa}FCOb) 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 KI@3AQ<^KTiKZZO2 delta 59226 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 delta 59243 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 z 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 BqmKXp diff --git a/resources/i18n/ja/BambuStudio.mo b/resources/i18n/ja/BambuStudio.mo index 210ed4bcc111aaa9e54b7a23556d016a5885a813..6642c3e37542c8264b78f758758465b12ddae190 100644 GIT binary patch delta 58816 zcmXWkcc7QkAHebNy|+PWhaz>`d+)u|&|aESNQz2JsIL+w?UdCJku8eQR4EiiG>IQd zQOPca-~0VN=l9R+obx=-8J{zr=U&zCyP5fpKbS9hG=G*w3I6wbjzppeuI!mebjY1Z zRC>wMMB@7I6NyW)4_<{suozCpX1ENm#jmk0mOYk8G{qZ`Y7)!wGJF-s;(AQOYR40a z=7~fyQG-NF3dUkNd>gCa|1bmd{*Xw}w?sj#j>WJ&cE$R*1gqkHER5Msga$M5YVwuQ z0kp#_uzU12yoB}>Q%L0H!c6pmCowy&Lr1U~jm#(U`cG(wvY!kU=f|w%i$qJHBQ6*7 zwWAHA%`qp}uf@A*Khd3pA^8Nm;og`p`C}+AjRhz#i*~djX2I)XzAM^+!Dz#`q9YxL z6LA(^g4uo|ikJs|z7!^HxIBq!SP>0ne{@P_;lsEWyIX!LHD`&{*p>XR=v=ot9m=Pn zYh*{v{|`r!FL@?JbRjyWPvYgc{0#B8$8S<_DQ-nax*K!hH<%C4U@=Vm92QX~<|n%d zovP=t60XL|_!T@{g*_dH*UdfSm@U< zXT>lt`HE8Br@F^OJ zBhiy+i2p(>&i`9@t~lDUN|*;5qxEz|8|)jek3id-gw~&Ykc2nR!`pBv7Qjn>4~wNp zw0g7+=I44p^u9aLZ8sI2iY3vNXhScf4ZVrE(%DV%`p18!o=+yeAYo`uqBow#qWBkH zgID~ONR+`^=*arvKpc((@FVoOa_7Q*HLyDQKIp(6jy@KB7CTY?2Ih1Br=1V0u>jgY zd8~)^u^QfquJUKF0e*+Iu;|~3#8cQEcjE6@1vgwsBx8X=M za^umH?jdwwb8r@m?J+DwzH~OuKYQLJTd+Oa^Iqt-84}CKp=)6ZzJYI`Bf2?zTI!uK z9*dG+fZq2ycENAa`fFYiI?xn-t{vWieUl`vAn_p?yJIb0MgDDc zYW87S`~jWQJUPNhYhXL_b5gr7s(Nv)EindLql@nyd>D`63>=*+MDA}aNIrY+&|ncXl4a43*GIQ|MVZt>-*W#7py}CGNxf(Sc>jo0gbj9!Izl zv*rsUyAwxq;W&=P>+`22rs2nEzFUE`#8ljgcCdZH5c=-u)Qm?vG9L}~Gw7mz6BmGN&AU!Nw^ySMnhEK@~|e#q7^iW`HpBsH=zg1@R%QsM(8fIfroG%E<#s- z$1Bnjk7GA9(x=c4{)tILm3C#QI3HSZA+(~R=#3R(zBXE6b2I{N& zqYtAEKZVx&7TWMfSPs9$r!i~t>ad8ON6&#>SRB7a8_ZH9L?S2Jp`z%NRYZ43Lv$+I zp^@x{PFa5(fkUx8evV!7Uv!&yxh5_3GE2@QVa2=9{eBQ_xK7b9*NxE;v_Ko~6}<)R z@OZ3>vvD47M7Le1Vqr=?z-!2Vjz-{D^!_ZFsYoXiwMaO}ozb})iXHH-a6@8yEdLrS zQhpY#ut@PRRSnQZ+Y_CVerSisp=;Rm+8j8loc~g?4NT`jgUHw8Fh;J^RrJ9*h1O%l|{yRPOS@%h8AzDbM~- z?Q;t3c~i9F{#Y9CLPxd?ZD0+$%D1Acd^dU^9l&<@CAv1sR0#Q2=t$?F#K#i-;3`5?=f|> zqXQ{WJuUUaYdLiLj!BYmBva4`%tA-_LM&f{c4!mYksWvn55)5AHA2XDquc8c+VP*z zk^hS>=E5~YJ=M_ideLNe5{BjuG?cT@DVUE|_zJpeH)9z*fquK?sTDff0e!9~x)%E4 zbvOtQ;VWndrq>QrxD4&!D@a6=i7h02@QZlE5%hr{(GjQB2_wvpHdG9~zZANtD&SLC z9bJ5%p`ra6T{EZAdM;vf%vCphfON*I-2dH4+`xr9&<8$2EBY#R109L^to6cv&yQuf zel?cBmN)=!L8oqe^b>Sy52Cy2JGB0vaTxxK+1>xQ)(;JiLVG?5jljd`;&~d~$LrCK zox{4AwLv&J8>3Uw6aBQBk49z@+JPnL;#-B*yCJ#{lUDd63H=LwAWOrrdh?(MQ)zSr zebD=Ej^2qLOiA=;eg}=nF?4@l(kSefLRgD@BXseNM%TcsM(lr&%HJQMl--9-I2<_mv*aQDSBip`NT4ERWL_1zQ z**uJ>3fi*<=-aRbw#UA){8_9*{uL~ZUt%{*Z;_Vhi#>4=u0|JGzLsJ8W@1b7HPE#* z9;@SAw4UU9Bwiu$12(`#t-^)9c$EB~XwScB9U}1!8scB@Va(npY|Dk{wtNhYz%q0V ztctEf&y$^K!-tTmPbU5&;hYw@HXNPB&@;LwW@67+J{}#}Of=MwqvydhXvNQ?A$=De z>CWgkXvfZ@&;N%$m%FV~#QrNlq9_Gr&>pu&N7xf>Xm~6ihfd7{Xor_#d3*sK(LQu_ zpGT*%V7suLi=Z8-fF3~A&^2=>X1f0;k}$+ipo{HUv?FiD{0_832hgMVG}@6X+NULk zV-@uNC(seTh<4;1^xXIydt<&1X^9~?3|+(@V=_IBo?e%h`YqU%9n(_32e<)m=Z4qN zj$P9!?B8&*TyMj}t=u)nLK zBj}5UY#6$YM#lV9^n{#&Hncdp0^PnZN8dvuwjayjDRhbpbP1uaf!<%gOEUa)+bLeS z13hrYp`l)j74fTh{nD=Ch|P<3v>-Z{CD9R8KKU)!h_*8(I3_3hlrQ zq+`j%(S0jXs8@$ge=>b_Y6FAEP663*p+SQe{apO&}@`=BG*gof}_w1Gd+iVO7#*27NZug9ji3di9O zSQQ8K4Rbvk&A*7<@GvF~P33-JF6*MJv^84Z6`kvT=ytp_UcU?N&@^-nJdduGx6u2( zKqGntt>=4mYR{ncpU1l~Yk&6tND}w;53BSn8p^Z*VNG0x?&C`6DsF+(u{*j*kDw=7 z+Q9HDnw!x@co;|E88m|ZZV1ocfp$EJuDNG!VE@~|n-rACT{s^9zp!upv5+;8SUQn4oh#X=u1U18b9CfbN11qTe9*B@^dJ*z=5A zLxVZco)$uX5UGieV`p?kC(*T#7#8l&haS1bunLw%ulGVjKNQpG*evW$e$H*-2b6Cy zi~GOo@Ni=-EY1yma4p`0F0yJPSX5Nd3(enlds<=x&O=vu$2&pnup(Mf6SU&a=<~g!R4|&Uuyz zX^C_!87+gZsq$!jZP0o;;3L=*U%?--jr;$xyTZrk*GNI4?8NYTyaU~@E3iHOfjMcZ z+1-qY?Ree2X^96Y?>{Mw=v#b)e6Go%qg&99e~w1vD|B&xkDeo0nEKrA|Eozj*ZwX@ z>!91P1s22!Xeei)i|tu766?^=??TtaA$0$rjMx8*w;(pYod#;CAv7tYV~e>)OB*dyLB1dYh3n4gArV16v$fUf4f z=%V@=t@v-WBiR>(@_gvQQv{7r$yi<;jYuQBv=xcw@j?eot#))|x1tr?gElx7ZD0i& zv6o_g&BFSnuTK4kyaSY!<;o9O5A!SxtD!BrL672d_$T_4#L`DXSGSEF=+IkW zP3#e!fwjqRK`51qu}Xit-91Qwwcy@KwKchL^) zLEjGFpd;juBBY)#j81Z8bkgdfbI=%V?^<;6bWW0R(gva(7>#yd3VP!rw4$Zx7svBx zM_!Gt$13DMK)*o#LhrwTHkj@4kk5<0Z?8t{EsD0AEJMO6sE_vOT6BcH&*LS| z?#Ds67*h>mszLO*Y)^!f=W2A7HbO%`1^eJaG@_@Gfg}@IpG-@vp&&n6!47PON6@dy zB1=MK>O|W_dqr@gn|+-v7fh;dOTrT|-x`3>~SwGVcFc6xeW!Xy53a=;EA- zuKvf+#kLIHB`=^O+K3(~+tD@iF*@QO(5d+aeLnGQ*pAuIMVZr&GPlDu6nJB4v?I09 zx4?DL>(LkaP3ZP}5Z%`cS2IXX2*(TMzxcJv~;=+a&e4PJtdxH#IO%F)JX2Rfql^+Vga z87t!`O#O%aWh7cs@DrZEs;`7UK~(6~(9qK8N_6|Ygf_G(`U&1o{%E{D__gph9EU9^ ze*rV`6xz{Tt3$^MW72IA?EYE5f)?dH`xEK${G~hhApuyzKTAuAMNpv=oI{kPSL;7oNL0!3ZW6H zk9MRT`dmNsxuNJ3j7005h~77Q4g0?miRBbn!ESVJzeMNmJM=^S7wn9A)`p)TZorY` zA3=X?&GKfruQ-+=-xNFHEtrXKqHAYAI)EeSNqHhk!k*@QD_pn|?OCa4ooL&5y)SzI zP;@PfiPs-QNA?&xkeAVIx&i&sXBWEf)7OQg`%3iwWL*-5r~|r-<69NM9mN)E8YNccAy(jka_DCicHQ zn@53jwiunuE$AHWi5|uk&jUlT8u_JI z9Y5KU46nh&dtp)4L%($TVk>+bJK#T98ry9Rkr;`!$^TM+#Bkx9&LnaRnWE33|-yh(Gzh2*2Oo_GyX@kBgOZJ1}dTvYk*E&2Q)(cup$n@~*+KUI zXc9XpFvRr^g@#(A4|GB+>V<}K1p2eyG;~`%iQe}$dfyM|*YQ8-%cs!cv_vLrqato5 zf8CJ~iOaqW9WL@E`@c9B8c|?H1JO|3g7$noy2$R0*QcPX`Jq@o5AE0@bWUGE=Xe8p z-v>AW_n`G%`&EcsN3@+Ak|b^i#ME(`G3(V$@X=4umHOFN?}QC7Rzr!Lp=^% z8#B<6FNxQmLD$Awbj^H@4(vE`e=_kq2^ZTX-^3FR?P-l@OLPQ1&{aMh{m6V8ZD<3! zIJcn@+Ko=dmofhnRwaKSTJeA3#O#+c$y}1KfpzG}K8g8X(F!m9HoWf(V;S;|&<+kk zBQzEr`4mj81$3@oK|8W0x)rVO)9C*&7wsp0A>mu>KXfW`d>3xak2X{SU8FV95%-Mt zNADkkuKM9j)kx;_C*)f0xXBi z&^h0Uj{Gp%u`}p>f1o2zI~MYJ(J3l|u7%QQ$6FtZ-~SycNT*;RevUVyp{#Q}*a;ok zE$BgYAG(T{p&fn(T|=*;Q?d;m>E2lWP0as+)|>T*u&b{5AsJR<0}AYUTeN~6SP^eT zLpvLN@OgBNY(XRUJ(k5E(dY7?2vb!IJ&>BCq3?}$@K!Xklh6TdPLeP*+tF?Dar6k< zz)7@%pV0~vCqt;OKpVU!S|OI#MI+KAmbb&y35u?T5okM;(fg9K;th|YbNUK8(kW8cZ$>*b4m}a)$Na146n%tF#WA$QxlV{~UHjHMC=$(Cv5|I`YxzKqjJ*eF$9(D=_H|Ye+b< z^=Qc7N9SxGy4?<975o$JQ0cQ_f7d`e+8mwRe(0JQiavJ_mdD4@wY4p}AARoRS@yqk znej__t7T#Z@=dWC-iFTUljwo64Gr;U*a;KAhLLv0YsvOPBe)E`e-&=Sw_^V8-@+Pu z2)*yA-`M|-^aTp+>8og{528Ih8a;>Jm;d+h+Po4CVKp=&EzmX784dMFv;)a_eGVF- zC-DYch0`#5@(=#=bs9f%VNVM7{TVt?{;x14RnfOzee``jDwaQlR=5!B(K|UIv+Yx7TuPWu_CrY4~|i21NWedZ5DRM zh3H!P4vpApG?Krf_h0sRTIz3=UV~%Y|F@9vi{>!8n$KemEO;R-#%s|j>4}c4AG)}P zU}KzuMrbp-c>lx!nB`(PR|ZG#LI*Ynufr!XtNZ^%yl@7)a^V8n(~ke7C6?nrtc3rf zi?8Cp;m=g{!G7e|V@k zU~T*amtdB(^i+sfpb>aJ=2u78;bO`+p=+XNdV1nTyb+DuWf|$IDaemi$yY)L(jSvm zNX#VR2;af6cpQyDzbxsgRXhTBkiQ45utnC;p|;qXd}nmEFG3g9N_2azMR&2V9Bt8qqCfiJNVFqU&_%QWo#U6$3g1O{#ZGhzzClM;FncI( zfiBK|=wcjP*|kjqT8%=;q=tc1%0p=`T5urPvB&1a#c9EHsVv{ z`(B-%Sb-O?I4&&`7U||9?Egs=d_}?S*zcP3)W3o7A$BrfG|b(LIGg<6SRH2+OHcjn z@pmzke9O#m5Z#2n6JEsmcmf^3-Nn;WpWP?13;BvA!qnVbg8ko@g6Al3(WR9Pb6!4r z19~zp!p*o9-M3RqrKkSO$45hWaD8PS#EVtZ6OVGedbRY_uj@X+L$54@yCn34h5hx{|x75|CloolB18crq_kr={-Z_(A?rdF8yBzi7z}D{nLnOL$p;*1( z81zWqiH0~w{V*j>uo?NW=)v+PI(5I|7|h!sJ@w%-4KvBFLq~iNf58e3!_ix$QF`i= z?NhAd{?FMsJ#iRYpsV+qCSlw3!`H}P#B%s@)AZC|(EkG8CO^Ab=un&HVV_UOODSK3 zMrt{_IFF(SQOg#ggSX>*Du(fH<)Z2LO!TnD4&i^DR0|8)H4ICli%5%{qNkKj~Ci>NKfn`{{WuB zp4X+P{!mw|j-mWMbo+Ga6pq{vF$?)aF@F?Y%xADQ*617}au+%kQ_=fB$K`maGy6X) ziHTi;N%U-f01My@^n_f39+|7K8?Hv*mKj|`0|n8J7e%+<8T6 z@hkMXf1_D?hbhc~dEEc`NfgHt*cw}52b_t9c0U@S@6n$B6!RC*MVEek=*Va2^)Jx@ zoI*RAy-zSNT2EmtgPEB6i~QG;@WEbaXm3Hk1Mb6$xDc&qGkV_#=wdpER(J~S=x^vg zPwN{7(j04&pN>XqJ$m2!=&st=m;HYuiK7%)VY7Z=_4Ytd!eKZIS7BwW)jx!GFkVak z9(0jzi++Kw{vXiYa1m`V=YTLZh0!%p6zx!j0qlQYpS37(WW&+LcTc=w2Bwi;fNr-( z&`3OnC2?~tbtEO_hBjW*=|fv{ki&zxRnqdMbG>dLxTITg8M(~O{_vL zRKu;f8VBH*o6}Rj8Tk|qWuc+ziM`kWy)Wmj>8W2zeS$~H|AW==%VFVzBiC)|slP8j z6z%w@=u{lQLUia9X1C?6BSOe?Mf0PJ=1O!eltx!;4Rk6Rql>OPdZOKoPRR;%-+zGK z_dj$h|H7(xG3G1X9@bKI%;CsuleiI^VJmzZ2jUOtc4~7+_>y@LCz9WbQ?dQXa4>z0 zPm<3V6+*upeQrD6gjq(10SrSwT*ji?`*lq2^F|Wg@v%EYk58f7;}^6e7tl!b9TV2Z zP&A~I(X}%TUG)pm$UK4WmX~9GH5!qv==pLGeTV!yhW+oV%orOQE{6836c)p}=q~7u zu7Nwz`yW9oT8%EokI)W%hIZf}I@dqO>;IwKHT$@*8!Do!zumZGc<@FFtY9c+;_Wd% z2d(gt=yPZX-$qBi3mwVf=ugp$(Ol!heMQlFDx(KoQ}ns+$(XnaT`c3!P~MH+I0ZeJ z7GXL*i+14o=z8?IPte7;FP5J|JNO^kQ0@sKa>dY&G(@i_JCa}@CiHo$+-(AT>wT$@f9u6;GmbzZ2aRyRba|8q14J3zDOiDq z_9S}4MRW>s-V-`h4AaP$LCedbi>eXYkwNHl!_WcTg`N*dv?J@$Df|!J4e9rCKkX+9 zk#GcM(FZG|2Tm=t=S|Tmxeoo}>5m>z6VZmJV+ovx9^Gru4t|6V=qTFYFK9d2Cxt1@ zh2hWtk#M`!N4HZSwBj4F72bwc@ESUT_t8220PV=`c>OTi(X;5(B_@aGE zB`l36u_ES~8amz(jZo96v4QRs^rPVUXqNj!1%uEIE<;24A-c`JL`U!kdZhk`HqdBV zn6g{Z>*HcR8S}HEi_xik$_tKsW4!Pc8mb@Ax&JGcXL%r$=SJ5^(P(LOPAj1isev7^ z2^x`^*b`^P{I}8X(Fi1ulkkA}8?89!gCU)$H9KB^7G2eE$LmMYx8gA@i)r)1NXw)3HpQaYEtZc)@1KsTKmYd(3173X zquXmYI?^NP+V}~r=ptHCp83HlXhj{->%-6x--|xK0IT8Cv3wtT|4DQTvMyl%8_IGE z!Y*hUy#cK#iO%sNw8Ev)SJ2RJ#9W+6JJCpe@kp48FVX8K(dT|c-w7Fu!goYDY)8KR zBKE&MdW3>;xH?*9ad>bEx{6;$NAexIxC%ZREEcVRohYx3);A4ZOHW1LMI-!q^k-~O zK1cGgaG_^(6yC#yhmq}($o_a(O!wh@^4rjD+4G6;+p>O`8UXrsTaB)P4o`-Nj6oxK zH+tVx^Z;9i4k)>fgsb!fw#LRwLdEyvBJvy15O!M{rerW$!CiO@&PPwkbMbn~W$B4# zS?eLfA{io0dv#tmcxf)#?C9tmV|4Jl$S=^K=V6~$A{V;mtB~J(QqZJoH7h5H? z<27+UJ#T}C_~5hQDE=K&9epmC3*9|eq0iOF)bIbUBjFU>A1@q4AN&b@;2ieHD_4b= z)L3+6d(rz&qTBROya}^EAD$b5UVj*!>&MW8=tFb>*T2C2w}Bf-Sm9)}XOE(*{zdf0 z|Dh-03G`rU@M5^XCAu5>qu&8T(T2vMk$4Up;8t9U|KJ_?I-=~a1`DDCD2`55GxWap=u{1fjzOQhKj!D5&pq{OG8_z> z;|<@Vi{%&et(N_@P+?)T!W!tVXn}V8V9ZZhot}7*{FSe#C+@>#xDboI5%Ozr68Tzd z!W6uLkCJbmT$`R)PvQ{T!$og~4m^#H=#GEs(vp>2&WuAcFRfzeyh5#5P4Fat;8BD8_5?}XL-gNA$@y3HPq`RDOv@*kmVWy1P! z{UP-1e*%4OE!vU&=m63-1asr1zW=W#Vb4oPE1?mo8S^cp?PGb@n78;ol??e~f z8|XG{voS3030Rf<67>Gv=z#ZQ(mDB;gbn7~6t@#P70u8dw?iN7gw z+0muwbFbia_#yh5y<%JVVycb~tQ~g7KIruq(5c+Mjs5R;`xg|r-O{#)IlBs-l16B# zTB1E3jxNR|8i7T)8b8GPc=!9^=Yh3o$9_TY&$T0b@0UcUrdf1!l7u%tjW)O``aat8 z-8dekrSNMi&fp+|6^!kYCBj}phfVblgbU?LshYqzu>P;r@ zBGH!%Phc_p19_V!F8?@GP#9gLC1bu$v>AF|d$a?c&<^)R7uy}^bN8SjpM$>CHe*5j z6I1_?N6t?|1y@CjqdhN&uI3u(>K=zT<4&}~%6mej2BHz1g@bShI?}RxgLTmkUW<09 z6B?--@lN;uLnIpFMI6i5Y`ss@6V33Iec_i;XTAt?pJ#tqOtsLFwvP_M_T=wHN4^tn z@N@Ks%p>T4&Y`dC^aJ6WFc&8CQgAtmjaUZl;rD1of1#^4%fZm#Rp?@^iC17}w4qzj z=Wa(A>3!&l_bl4*UUXX@j`{Q0l6=M?_P>d14}}LGMnkt6eQ*ofz(+U@KgC1X>u^|< z)sBRQyP+Mr8J*jE(XZtB=+XQrruKbwJ37FxkFftuoT9)HoR1eS`!f81P#C>F1l|9m zFgH#^BexJo;7YW^`MwGbU5&SquY=yd0*%~ibn13Tk0nVs;(yT&AMMZs=n1+KXX6fZN_rem zPdw!QA4*~X{(@fU{6px-V02N9L>rihHh3R;RL?{A^KpC+e?bSZ=0tD{`rOB8M?Oc} z`7M@rJ<0wzG}n{pfD5o09z|Dmu^+>q=b42zob#s`0c=IS7CNUBu{zGhGWZ@k(i3Qd z<4=V-{~WFNlGCBSai`<^{{ae|vlTcKcVHImdM51SUT9?cqazuKPQ{$)D)gw{67v~9 zhmI9N_k9iYgzbo~orlopxBQ$8Hy)zE27X2xPCpywEIS&~@-bg0dObQdccYP+hKBkP zw4Nu?j=mbNe~j+`uh8et$MTHiFJa^b&>q!8d)O7-r!&xsHld$nU!e!eadcb$fo<_T zT5*eC!~NHx9UqQ1d>7i$N6>?7B|3Gu=$K`_YOQq9I<2Huw$R zgynw^A0Bh?dGb~MNKgHd>jT(?{F8r%^W-pko?QA@=vZH*zGPx32|Ms2I>Oy(N4`K; z_i3~P=g=Ofp9>u;gg#deT|4d3DHw^~Hy$hFEHtw3#_RjgNF2sX{r>-vL@o+`M;lB( zAIybTR0wUL3O2&-=z%m3otnL9sDH+5@FG^jtNsr4bii`tdtqlxVh!Absqg>v3t=uV zLo3RQHhc{lk(%*(BXoq#&=FjV9$dZA=Z2tbXB4)=RX7z-#p@$4hQ)a=`uto>8k*%K z3gg@89Djx`n#=zQR!66xBO0OJSQ-bT&(A=oVg(whZP62GgmV2G$}6E~e^+#uJn%33 z-^63_hL_L^_o5>?i4`#OzhH;xcq~u(3UsaPLg)HBw84Dr4WFxqMzUXYG&=I>=q`FR zk<3Vq>^TY?*=ls8>!a_Zk=TPi_!HW}3-Nlvv`}6Yoq{UShUhz_ZL|v-nd{LhoP@P; zT9Sk#eHRV=FW4PxrH6)QUImNg^w`Q0o!2wm;>;V9gQbFfObP|-%TLzidINd0ix2JQHG zG~^$lYwDYr{~J?_`;rieYmi7M6D>%%2ChR#bOX8_C!pKu0rXq$8T7svq8qRP`8{ZZ z-=V)HJCAL!*QFtXOQUZ^_n>R!L@Lkz&z>VA_51%!bZ%$jID7^TS>c@Ffzjv`%|loF zKFo`MpwDHyELaR}pdNO{-Z&3e;d0A!g#jMKvb3K#PQsDp&K)W!j^-QSNbHD)ZX^0l z_z}8hYUBxva~OI~Jb*@G4!T%ZqMvAMu_1nl%`t1gVs|XeZE>OZ<0SFnOc0;Q((^~ zVru)LBY7X6PU9ySbbC%N7_L8r^~f(o*Uawd_woA0Xtv8kJ$bP>_mx4XrY#=Cp_jA& zUB%6=2se&KZYl>vHU_pYNx}+$yDB5~yPL{ahYH?9L-+|AiG64YPe#w82h3mS0rel+!K;e| ztDyHcM;C3|SpINy8QRh0>m=;iCai?FUlT4o5nUBsi+1EabnzWP8^~QW+MxD{(AXZY$Np#qZ=xO8iiY|F^lf$|nx}Xu zZ;5uKSIiGWKh?&dyJiBq+wRBIfB$=ogcZJuhVZ?Z{}dg`_h<)xLihi*OkjO2E7 zTiuV=Gao&WR-(^uL_4${T{EA={C-S&!#5IVsUzcM4`;s_8fp4w!(qYakVmkRw(XQy?>4A=9 zOmq@1AwM1O!BSz$x=v+S-U4Z_ux(to*J~Vr>H=EJly$=dd1LStTR&uful1f5=}^l?GUK1*?TAs$4T8 z^<#PibXRpnJDwa%q6mrQXoxqU4IIIp_!BxsYib2QMmzWeR>FVKwNasVusXWP>fsgG z4D(`dbdlZ~%g2ZEWMXzKScW$AX3XzFx5;rdbQiEZR;v@v^1kSHy%*c!3T%x(q64T_ zH`omAU>8h%Eu#Y+f|vRIKb3^5e=ge44s47U(A8SMUKqi3=$s9Rjz=RgH~K8P8`h&! z_dzWG9-Z^QF*lZ|AD*j@rF{QiOTxF<2y||ypjuYtRw* zMms(<=AVtei5|u8qc6MvFcYgaWdHjK)s=(|-HcXrXLKqWss%U>Uq{aDMA=56ydCx> ze=GLDZD>7(8i&PP8Xa-{m~R{HA05@0{qGIaDDXg7h|bj#v?I?%*Psn=LnCnvJy_D3 zgx!-3or*%}ny7+)FLaOP1F<3bv1kNVqpSaaP1yf7cv;h60dxdc#e7+`;wm^1TgB^} z;`Lo~N`U41)&?zX?G9$478>72xFZz7;R-q#Wk$U*=|0Ha^fNk=ORfzKT#kmaV$8Qk7wMo_elOb5C()C33%b3(!piRd3nW~P<=cjed!Qq{ zF*+PQQpcekn1ps(GYxp%osFw1Yd)0esw^{a=v8VG1(w zXKaOeJA{$;#9`#`KpQ@YKKMJH!L;i_181=r`HYU?9nuQjegmVoNAHb3jJ|cB=$H(N zmt(=E=w5VW-=d*ChtA=Zox&PvgkHZ5y?!6M|CdMCM0ZAyU?$gp#>tqsbLimQWK1lJ zz7pLK-4#6?JsCZRWvD27m(Z~)=sTo4I`ZMsyQ2?9AHxw`UxiLZvS8N`(yOE8ur3#B zqjP>cdgG*ceH!|uGe4HUi%!jZ=v;q=)$lCN$Ku^WJ!{bCwxRc(LL$fikrxS9f6?w4 zsXtKE4!vPD8rp5>oPUdU-sR)nP{lHqHnc+=yNO4x8}R(qO8>?Om$0i zjoi_P{qMoEoC16PB0AD-Xa#%GFPGzJgPDCpc};W#?a+q1;6m(+PSF|k`9!~vzXBVP zEr+&qGhTv|`?3F>i|G{jjrI(>sCJa~SJ4g~i=IPwOU?n|U2-*= z?~HczhUhJ52X2qoA54;P#EWCWGw1_r(67~Z(UI&xUrt|QPs}ke{I+Wlc1dGO&`+@3 zgTnJe&;i_rc4TaHTJ#Zoi1OshSWxB0@OEkv?T0>i7dp}zXh)w!D}El`wr`;O`YRlW z*#?J*-i(fP3c6UIK-bn%oPjICb>9C&!kOI?`*C3aI*0F|N9rzgioQmt=t8vQP2r`| z0sZdZjwLY1&0#xMMjLF6cBEZ&FuE=8!PKAsd4q%vevXdtI6Cs*(2-``5;~A8S{^G= z-WuH%ccS;tN7v2@^n>Fy9ELm42CEItNd4)zq3CzOek|bo|2Goekp0&1%b_OdTrWn~ z!gjQQUFcdk68$BbeOTz=HRwyKK6>B4SUwhgeqPK!g`N)^Flk7S#)53Og&WJE+pZou z_jjTXJb+HcDzw6F(S2y-zKfoX<^M!;4G#mk290Pbba7W1&i;398pI3T(FO;^{3!JM z;BK_RxoAX|qxU_Bj`W@A9`sZ07#fMfBf|Yn&;hhY?;nZ|WYP%szXgv|-~sU(+M!eE ziIw&CaMl+@52_;Q!BI9^4gH-^eY9guF$=aq7heZ-#GTPd_d(m6g0}Z)l7ylA99>NbZqz{>JgoV9Vy?AnV5fE*tRvX75Rs;1MbDrSY&)yj4jamhGGp| zisjt@dr5edp2rUeMX3qlOX&37A*4O-35#V08shh{y7yxXtaxvHonlw=%drpsg0A`w zlfv`2qwk0paRB~@$<$|ojc%uB(N+5qy2`WP7v}ylG{hy) z#aKSt99@)s;`KYD6VWwx-+kKMQ@C zWS<&3G7sG)&tZ04js76>HulC3(T*3tKO^;T#+JFCk=T<9(=t;3uTVK32sh40J9ZLX z-DjiO9?VGmN4^LSPQ&S(2bi1@K0szX6f80`)VmrT*cKd$AEWivemJ~4IwVQB*lxq} zxEc-NVa$cUq7@`&g$Hw?_m@OJNQR-;x1$Hlr!jvXy)WDBFqPLuC!pm|N0TQ=SV5IJ zVY@Yqc8cDJMrbU$x~HM5`$H^-m(LBWxi-38Z$(FV4>}d|u>d}aM)Wm&0^dU3p2`AoZ=cDVP`mlzNbZf^HwgU>7=x8?am;T+SN(Cc-c}3j z0Q;{i3Af3p=mNY*el5~)3B<=CgU>Wq>XoTL^ z6CJ?K=$F;K=oGJs*S|mqcIT=QMn0g)?`aF8y8}a%9G;(Lrxi9ogn3~d<`uG34kZ^>((K()oE~3ZKIeh_V;#M^D z9aqK^4-M%cbc)8K*B?ZuW?sDhDEfuegvRLo!UYzTEx z^uFroea+F4^+rdWjIKl@_#s-)cj$BfMe{tDk!VT2*mLZE6GJHQhE-^V>(CK=9m|iS zk@z#3XH}@UT(lLsCI+D=;B>Tui_plvgyr#Lw4J}u4rhNp8Ropw^P$1M(Hqglbt@Xu zd(bI)0DW*VI+yFwj(&hHx;o z=8weuKj>5xc{PNvDmn$dF%$1a8(fM;@Pl~$JX&AT*TVgcu^sur=oGz-_1*s)NH~%| z(UBxpXCyYk6=?noG!j3dKl>$K5BFb+j-&wQz^Z724WfO}HF6iacppFqvMiRrj>Tv{ zv5AB|IvQ^{6K_a+BQ%g39a#l*4fMmExCndVfHk3^HE0L6plj-Dw80W z6H|Zx=P43)U=2DI+t866!#gnT&9GQTp&u4=(28HeJ8=`*aP_xB16|PP2cY*&jODXp z{_&W9`7QRpKaso>FXUbqzt7R_QU>i1!MxT3l zeR$hFhECZY^qrE}kdgY+vQ=;#*@f62FHLR?Be?}@QSdWM9NRKd|4zU)Xk?y1>s^I6;j74b!1v$w@L&n_h9>9;TcZ`- zhW-#b3Ef7oqucc(G%}x~+w>y(eE#>t^}^`=CD9HvLcc58q2CETv8Ma~b`pki1^U1q zwBZwIg%@xLrtio|+={oL9oU10@(_C8Nwl7`=y_3eXQ-zpx)$1?_f0@MG#T?H(^xbl z##6BLgRrOyei$r)RVc59HSh*(g$uA59*EZqeH0>bEn4wNG$Qw+yJSJkzm87PPV~d( zJ52rl?{5;0xWulE#1yQJZkKgvMTc-L{*2zYa(9TxIy7Qef1HuH5o@9MFGeHwGI})U z{Umg-A=<$q=x6tAyj^6)Hy#5v1 zq09CLOJjEOO)xLEL8qoS`guQMZ!&xgZl}OdeT^gVU+jy+Kg~$}10y@ok@Wg3+&2Y{ z&{OD~Z^c1)78_&Nec>RRi;nmawB8jlpZoK$7OqZ`Fk~grxv7Vq@jcMhItM+Vp1^cm zhZ*=TX5uESi(jJyxblnenyrJrlv<;Ut_#|c-stMTDVn@DUU($B0)60BG?Z_mA^QY< z`+bL2bP8Sl=cAYI=hyLR{K^$aQNG|n_#;^v2g7f{lhKpt_3npKzvN0Lwv(7aLB+!v zsedGPE#61I*OBmBumfmFn|vA0g?n)_`4!j(GrtNyq7B7<L01Bj;@vL zUuUHLwY>W1^-I5T%Gm$qNOYp$A$%GS;_Z0P|1wg4hwCKPA>ZTM(1C}sIr-J-0rV@@ z#;d*yc0ucV5EtSX=(Zj9eMaiv34IlBB46Sd9r67?okTHw4)4Jocqg_v9)6$qCR(2T zhwvNC`_aW$>qK~&^g_@4-RNS>b24EAm&E>-y;1@J8&8tFQxJK)3C+ z=fd?VXoz>BBmEa$6MfEy?fyKDBflw0!k0s>zr%@lGxi|=F#e9;;A{BBg|N>bxEOZB zMm$XU1+?P*|74{8@2gAy8`j9Dm^xYi%SgP*^~Z4!cINk=o_xj9vZRjkZ9CDI%l1pMr2bzp51^6Qa%q;-H{0bovZO{j9J^BfF1qM0 z%b6wha%zB|k^dPj-+Eb=)MxxzTtoh~Tv@`)CwCa|C`|qNzX>E}a>F#7hk5dZjy#1A zlV5|r@0;e$lKOwaZinX2VpjYcGcb`aOX`z|HPW)^Arf7Y>8KspM{R>d9;H4m>0jnocK%hA2gDe7R-`b14YoIx+eNu z%V|_1_0qQA2u23jw{{DXi8@VL&K$&bYDEEnjpxhMa6z_p@Mcyg8WU~hJ0Hr<`DED$7Q0jv~ zc?N9>mIXJ1!utf40e^xvX;3n|v-y^24aE>p;=@5X@ib5hmx40+8qFUDrO{uH zN#n_KSalf{vnl2Q{owoN;PEe)q%DD5;4H8+xEtKXHT2495g+EVPL|fo+5A7@B|te@ z2$&V#F0d2+?cC1hXU0~_W8Ehv=5;ndGj=_Aki0FQ-Y2}R`$(9#&Dne%{+EE5&EkNj5LzksvhOgsRTD^MDgD^Ojr1t@pco}hdc4F`p{1eB-x zji4O-myL})hZppBHR#^Cy-{K3^Emzn_vbgFP-LreZh5L3ou7P>zQ&mDEIP{ zU==V~A?r#t1jF%HgQDx@=WHwiZNY3RvoQ)go3Bu+fFZbBKzWY$@VBmrA1IHKRqCGx z63XQ2J~Eh7z9e)Xi$V_fsMduumt!Cl8SGT!G@C)CX$5 zlE#A+8)?3|Vp~w^JD2A1FPk0&0OdtvVbyBF_5PXBM_9^zAPvY&tOo#CdAm-$h~(ZD1&ST<@@tpif(1C+psGr z_xc{7++-1;)U5`kQ5+}(>{Yy=_!yL%@GB^M&vMovKA=1S*{W(_FeoRSt+)~lz~2r^ zgZH4E{2M5b2KVyT!>tl1`3{PqU`71ipxlYKgHGU0Q0|O(K)Lrn0J%@tj1ShvNLs;&EMJIMst7*}4V9Qpz|h-OSh$-xNCEh}Soz?VR*gDvmckuI zt(YgZ13By*G#8qmzfQ0Kj@S-xxDv&G3o%5eEkSNQzLRpNBRrVgROKI~iP%=+Tdb|I z4Spz`ApB7FMO3S|4n9eq|Hb-~;Om8Hah%`-yC@0{g1cESIL%5kYZzH+G)HMnB7#S|`NW4Cu~HWBNBNIizC#+r-& z0s*lT?48IxMEE27QLHS~e?znpE1Y#xhigM^e0aQpW-O%U2RXa(rkIgO{{G$;gcDG3 zp5!y8E{(qz>;n#$LU1RT3(i*+$c<*0VfIhObk*S?i1?D zaPleSvyh)IxBqG;ldo31k!f^;_^(ks8NqTCimhdz&Dt7H2u;K<3x6{_-mx=n0^ZB55Z`WN z@wYM1cAB(v7-lC8ud~t-{|E9;`lSGE@gV=#>T1QhLtGaKO);4orhPvD4U zLZ}tocX|McErhd%SS{sBES&l_%DIU@nSEb*{2yb}5%LKd@x7vPlA<8?rM1BXEt&;K z>=viGtGUVezY&(Nm>G$Au*Q(Ds$3T^DSB`8kbAfZ!qA>cjl6^_B9-%1Y!boMR5%-TUiZW!@oehxem5WPuWYG{vp0JvfL&&TOg5-cp3GEIEnH#Rt4H8Lvaq3 zx#84AxfQ&>EGMR!K#q^oF&gS5FX8cnM8gN23EJ%;H6_s5!`eq(GxB27C3W+Zr|W%=MXT4nc1)2c+L33b71p4V-NFVz4<= zvep+@ZQB_peMgc%9c(mZ^@7wAY{fdrN%&){rWK%3bNn{y^S-xf{A|=nq60`^5qUm5 z>tEZ;{t3;Z7)>$>%$5qIm>?U{*nzWTs%H6zS!guVQ@EkZ~2E1#&8y^kO}O zKY& z80~1hjDT1+NEw(?>^A$kdirkc|6w)6&!TzZv_(WLfI$kQ(~sO9V&C8nq1i?DhrsQs z?*gX~!wuEL+CEUokBN;#5ZiziS?O3iArwdKIrxCpkyr)RDEMs=7i-Jn-G5^;u}j3N zu-`?jGR^$p27`^1n+<(FP|Mf~r#E;O?PBKN_obi@wPrt<*gZHy z5WG!%5DmS-SUuG$PSl0iTKNB0ra>Zdo^a$1FR_*E#U{{jHT(D4#ESAUAMoGccxkgZ{Ic*?6U#^ACJdXNSS#|$ z<@JSFF@pRBcjGAj3|23ONkB~O25~;K%m^din`Upx9Y(M_equzbTQp-m{%ajhLTjlz z%aGkzRf+e7+m-qT9Lx>9NAPX&w8?u&V*Ma}0`IZPuu`jFCCFq=vJV`PG!J}a>)Xl|pw zY1A4i2-abVEmk4fXQjanE%b&sj{Odb(`n57)zCq_G&#bI5hF0K{_-SJLt~R!$fH# zepqj`hW9|8|C6wJ=^${5ro|!LM7XKmmJi_^*W$)B&g;N0rs91WO02VD6F7%hQUv!f1R%#V+e$-{34Jege)Z8t`ib zrj_I0XfAU%cpIp>0#+dZ3|>19(@^`^o)WMggnT=##Z4f-*P*6UoKkPEVift(>;?j2 zp6ovp%co)z>!@{8$sN$TDd;65ep!d_#4yh6SIAqB=^`)ebC0~g&)N2d@D&HCi#m?T z-em7jK3p8kL!~p&Mr;Mgm`80Y{N!*Cvj0HaH>_w{@dGNOJT<}WJHp=wKMlEYU}~$6 z&HQbGF3fpJ&tNL^PeBM5AaD6kd<6b0;+x?#;F@%%=?MH@#3#}4JPkd;A2gZI`U>wV zv88a=6R*qOhk@&whu~IlAu*cZM5eqALHZ3QX16hj+wD914sg%0svs^l+XCYTu{y+t zQIuiSF5@gXpZ6GvE=#pq7_pzfuhEWX$sklzO~ z60zzdo)O_A)QVL@=O{}o3T#7sJ1Z{(JZG59petC4n&s5CMa#B?iP{njK=3d78eD-t zB!(j}8qx~lX%OiQ$DegaPhhp-i>VG4OHS+y>phLmQZpQGb9CmhzmCp!^!~E8uvfDg zaU`2FQ8)>)EeLL-Xf;?8zZc{<1nqVg{|G}KhhK|Tkz9UO8Z=rc$(v#JQ}2p)0d3Yr zHTaz8f9;Gs6|F>M5X7w{?jxK;2N6~y_R$ok(ip$St0A?C;DgQksp5UYSxK9b260yY zFdEN*9}Ny>6=q)^&V2H*)K{a)Wz{%Gd@O4(19e49j9*YQY<#k@Q5*7ll43;()+QFI zehc=ih_6I^B*oQr^1phL!iWuWxMHF)58q!lST^#h(AbTx*ha0tNGzW#U%fIhZ6LyS z8yFdO*v*y^+88Z4py!>-NON`edfL(z86VzTH%Pkt)A zOw{*bwb0`vv1+U*=g$bgg~%`58IcIb;@4+C7m;xcuw0u;!(l9bIm>8FJRvJHxl{Pv z5x>cvAJ7`JX!3{UfzEPt^TX>+t~;8g@x92EWPe#+A>SaGm!{(p{z~#H{%)p|0ZR}c z1kslz7D6tw1lTV9gV{7fN}VP z5v_!uUQb?+LAK#Pp|%LzrPQ^@7b^~)182ZBZ~r_F4KED5#_py&)+Nc1)X^Dt0RPEOAwUYQDVr97GLG1UCJIl(WcdVY&y6G@Q;m?&qYyks^h0<#< z{7S6CiQ4gfHVr!>;tPY4G$vRiTFnNeaM~AQ??{0mV;O=a-74o zv*b_WRE=D8*3I^XkqSr_yiR5bYFAL+N4JD1^r0r0e176nSYpG--zO%vfz=Uz6kSHM z7URFvNhL29i1rw2U&9N=Pp+4Qt=U??lEy)mRNC$dcjFg zz79p-iGOCLq`^T3EkZmYzQ5`uXJ3Ss0sp4PEG6E`fWJg^$OoadMDFLV1h<>h@Di32 zEoS!T^DE4Q-e)un0Vs+v4B<@O{-?XOs z>~o-FKF-`|`iF_cDyZmZ2I@~N75+)$TOhZx+_>0$nXzkvGj zsy&?AiOSu^{RLnMm{Bkj6tOsiaC2%WtT>CAXiI zjzQic@&W#4n%-fbhS*qqu|8UthMWuW2gLHB!Ef6AYYB*_QvN-8$H14s6bf=fx`5xB zf?W9R5wnpy!}N}Jh4_5psksRTF_hRWYKK!J)(}jm4aC2v`@-zY>3%bHx#4vljfgJ| zA0e;piO;aeulUqqrrVmy;_G?-x@J2Qw0XP3)DZtJ&Buf%{*p zf_9;V+}qC6G#Wyfk{(h}NsqIHX65iFBR&`5tgIKTn%bZYjWa6uGy6&mT9bSkmT5HU zL#?B&S7$ET+*i5a6dqE+ln7)dk)PBW3L8bn-jG-I32njJCO6WpS>?#)Kz=(jU*e{~4GeiAk-$74rF?j00AE!DV z1Ow5YugRg{402O#OkRxQtKf1K?~3SZroRO#l&QPYpew$Zx1M6Zo?tKBR#wVb&weu+ zrSuTxRWE@0^Tf`ulEUFP#!QPPZabtx5}D_4>Z%&=K*O38I8*2XrsPyBSz-7oXi$&3 zR`_qVnW@Y_-x&A;wS~wfp^;b`)*#h=VD;hytRYq+5d%(x+#f;=g(tWou_{_yPu-lN z#^fgxug%IyyuFH-(Ni6#E+xa+Z9lvO@Y)gRL2f4eAbKq`>$v^XA{e5Lq^K^%^`wA! z9Q)LIRj#RG8vGFAO&InZyt0USXnhd5a>T`+QZF+Fk{7#A^K=B35f>Xs-24MJ#Rx>< zOktg7FlWH`$s{;0T9ctWhPSHTD7sm>;bJjPHvSv9oj zSZY#nuuWR{);fgE2xf}wkPZ;YtKxq0ySl%02-?Vt2{^MA+H9Ev=Zd z4%Y|03B)T|jSOG7b{nHtYLff{V<6E^kXk~R#|bLpuVTL(j8L)6H0?qzAwwKsplJ+{ zTm={7zlQq>jorkeSf2QdYMml8rVl85yK z!mB`RD=RN`?P%}{{s(PzmAKeV{7KZLX0Tl}+(i5@yk*2=$d@H|lw1Hg^Y%BZ^q)@< zXR)tIvMfzTLQb!_Tlm9R@folaXtx78Kv_YV}9Y#3CiA_VNDtRXwN6_Oqd(38x zM(B{axBeMRVOk0rFhEs=XIexfhQho4XGC!FJJ#J5gbpl5DmoE zI5gjZUkj1z4A_81lPDIe2LB~Xtd{bf;njj8Hk0*H^WqOx&QtC2me_RoMe7nMNpd9( zLReV|<{(y(;$}*Y=IC-^z#8#~)E#+b~gi(ov3DetjW zMlqL;bdmEXWxq|Yl_|qN+fbQDO+~#v_IN5b;qY^6y~HE6b_M*|bgoUz#fsUCtZcHA zC{5#@>`x%L5*!7o2qLd2c+9a@s^BOZ&t>S7)QEYp7EyD9H3zO(Ao*wTk`fckPW>zn z_Zhzk@g92Zz2&7=axEIEI30r6Y{-$U$25LIt_B0P(0h*LOXxl)oPG|c-Nj%PXy!?i z{NMwJnnXJEND&Z=ysod4Rq4Z}xd*R>#>=Dl6n=d; zufT#(PI^{t?)cLeuZUkm#BKv2{b86}6i;EF zlf*5Wo}o!=xDR#EAaY-bO=LCK;?Cs8qIHXAV%@3xrTZALF}Y518+6m)dx}>v-DLH* z(O?Zl4H0j`K8E}*Q0$JLW&t8IiKmC>2QMD`+q3l%S!D&^c-zcLT>+78XSdCH>Qlyh9eO;$C^pLCB<{}PP!Jc zDeRMS;=;=9O`{ydcT?Y<*ilwiI%Ol)8(e_SKsaJWsl5TVCdc`C?M`47guV>0n!P8& zVv)pBbDGrJWC{X_@iXHO1;fFwh;(56fV&usVt_vk{KAqj+H2GN#J8aDLCr|^)mRPb zW!niMm0p3Xpev-FT3iK^qt(E9jX-T09f8+`^@06Zgoc7%4B<!?G{n-tEyVyy5MRNSnN3r% z#%Lvma{=uv#44iI30@)X(M*0^`d@ntAsWE}km4bD838W@mf*jl*;74DW#XTS+ijh0 zy2I&7{5e>Qrau@+OumPHthG+)ra-Tm4U(q@XVX~h8vZ)sZ7kRP_XY(&5r{`F7~U2U zWj|O%SQqg9@Z(tN8NMxz^P$m!y8BS4vlrWeFXo5e8y#COJwbC4e<>C_i@`or4@KBra}D4=KxZq$pIK2HXaffbATE}J{W?9+ICw5* zTyOtbDq>Nsf2$&rgJz?&$XidfhNfa?@bl255kl?sWD?&+>??I1XoeFXP3#N%z0|E$ zjYVjiCjIlWqJ%)Ok;5Qv6fB{62BvLJ{|!3=Po(PRa+w7UOa~~Zm%T5!H3)d=DXTK@Iz(O* zceFr6&!9CQjWg_HSawU{aHxXRUnEx$y?^94_Zm@fT2GOPDc>VLh~{~s*hVwLp}d)PmMw;tYQY7etN&QQM21kOetd7Lk5-7qK5&FP** zxI_hxaq`)G{^gasaRpAsYqmOWN*|{)E^$2vIeEH7ZMQkSjaxg+X?%h>Xq~@C#a54> YJub)=fA#jbcmd9(T;uANadu1aKV4JT`~Uy| delta 59237 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 UZ+=|tTWzaB+|SA9Cds`v3p{ delta 59104 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

pDk=VSDPg;tRMFAIF<73ETM6 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 delta 59228 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 diff --git a/resources/i18n/sv/BambuStudio.mo b/resources/i18n/sv/BambuStudio.mo index 1c0c3c5313a1d47910166af66ddb57f40b9f3ec4..d4626fa600b045a92c2fcb40b510d53b720abd0b 100644 GIT binary patch delta 58801 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 delta 59221 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 d`}zOqF&_}$;n%{; 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"There are currently no identical spare consumables available, and automatic replenishment is currently not possible. \n(Currently supporting automatic supply of consumables with the same brand, material type, and color)")); + label_txt->Wrap(FromDIP(380)); } m_scrollview_groups->Layout(); From 638a961e3295d6a8013d68327d5a076f019b19ca Mon Sep 17 00:00:00 2001 From: "liz.li" Date: Tue, 26 Sep 2023 15:22:35 +0800 Subject: [PATCH 15/92] FIX: message dialog line wrap issue Jira: STUDIO-4553 Change-Id: I89a69488803d493b12a7a1b94b9afa7c60429186 --- src/slic3r/GUI/MsgDialog.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 9ff0d36c6e..8db7463304 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -298,10 +298,15 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin page_size = wxSize(68 * em, page_height); } else { + Label* wrapped_text = new Label(html, msg); + wrapped_text->Wrap(68 * em); + msg = wrapped_text->GetLabel(); + wrapped_text->Destroy(); wxClientDC dc(parent); wxSize msg_sz = dc.GetMultiLineTextExtent(msg); - page_size = wxSize(std::min(msg_sz.GetX() + 2 * em, 68 * em), - std::min(msg_sz.GetY() + 2 * em, 68 * em)); + + page_size = wxSize(std::min(msg_sz.GetX(), 68 * em), + std::min(msg_sz.GetY(), 68 * em)); } html->SetMinSize(page_size); From 4c2cbe4c154fb46c998fd14be117836179309f92 Mon Sep 17 00:00:00 2001 From: "liz.li" Date: Tue, 26 Sep 2023 15:33:23 +0800 Subject: [PATCH 16/92] FIX: cali: sync history window flickering Jira: STUDIO-4469 Change-Id: I1b88fa4d1a35f83de821c69da11c01701c3d3658 --- src/slic3r/GUI/CaliHistoryDialog.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/CaliHistoryDialog.cpp b/src/slic3r/GUI/CaliHistoryDialog.cpp index bf79768399..1190edfc70 100644 --- a/src/slic3r/GUI/CaliHistoryDialog.cpp +++ b/src/slic3r/GUI/CaliHistoryDialog.cpp @@ -124,16 +124,16 @@ void HistoryWindow::sync_history_result(MachineObject* obj) if (obj) m_calib_results_history = obj->pa_calib_tab; - sync_history_data(); - if (m_calib_results_history.empty()) { m_tips->SetLabel(_L("No History Result")); + return; } else { m_tips->SetLabel(_L("Success to get history result")); } m_tips->Refresh(); + sync_history_data(); } void HistoryWindow::on_device_connected(MachineObject* obj) @@ -191,8 +191,10 @@ void HistoryWindow::on_select_nozzle(wxCommandEvent& evt) void HistoryWindow::reqeust_history_result(MachineObject* obj) { if (curr_obj) { + // reset curr_obj->reset_pa_cali_history_result(); - sync_history_result(curr_obj); + m_calib_results_history.clear(); + sync_history_data(); float nozzle_value = get_nozzle_value(); if (nozzle_value > 0) { From e591e898af4b9f512562b6f021075fc6b95656ab Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Mon, 25 Sep 2023 15:41:40 +0800 Subject: [PATCH 17/92] ENH: limit network request times Jira: STUDIO-4615 Change-Id: If365de54d3028f98cf3a720873378ba6fcfa5589 --- src/libslic3r/ProjectTask.hpp | 1 + src/slic3r/GUI/StatusPanel.cpp | 62 ++++++++++++++++++---------------- src/slic3r/GUI/StatusPanel.hpp | 7 ++-- 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/src/libslic3r/ProjectTask.hpp b/src/libslic3r/ProjectTask.hpp index a86a24cf47..103d82073f 100644 --- a/src/libslic3r/ProjectTask.hpp +++ b/src/libslic3r/ProjectTask.hpp @@ -105,6 +105,7 @@ public: int job_id; int design_id; int profile_id; + int instance_id; std::string task_id; std::string model_id; std::string model_name; diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 06cbbdbab5..36760cef5e 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -437,6 +437,12 @@ void PrintingTaskPanel::create_panel(wxWindow* parent) m_score_staticline->Hide(); sizer->Add(0, 0, 0, wxTOP, FromDIP(15)); sizer->Add(m_score_staticline, 0, wxEXPAND | wxALL, FromDIP(10)); + m_request_failed_info = new wxStaticText(parent, wxID_ANY, _L("You have completed printing the mall model, but the synchronization of rating information has failed. \nIf you need to resynchronize, please reselect the printer."), wxDefaultPosition, wxDefaultSize, 0); + m_request_failed_info->Wrap(-1); + sizer->Add(m_request_failed_info, 0, wxEXPAND | wxALL, FromDIP(10)); + m_request_failed_info->SetForegroundColour(*wxRED); + m_request_failed_info->SetFont(::Label::Body_10); + m_request_failed_info->Hide(); m_score_subtask_info = new wxPanel(parent, wxID_ANY); m_score_subtask_info->SetBackgroundColour(*wxWHITE); @@ -1717,7 +1723,6 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { if (ret == wxID_OK) { m_score_data->rating_id = -1; - m_project_task_panel->set_star_count_dirty(false); m_print_finish = false; return; } @@ -1755,7 +1760,6 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { if (ret == wxID_OK) { m_score_data->rating_id = -1; - m_project_task_panel->set_star_count_dirty(false); m_print_finish = false; return; } @@ -2789,35 +2793,45 @@ void StatusPanel::update_subtask(MachineObject *obj) m_project_task_panel->enable_abort_button(false); m_project_task_panel->enable_pause_resume_button(false, "resume_disable"); if (wxGetApp().has_model_mall()) { - //determine whether the model is mall model bool is_market_task = obj->get_modeltask() && obj->get_modeltask()->design_id > 0; if (is_market_task) { NetworkAgent *agent = wxGetApp().getAgent(); if (agent && IsShownOnScreen() && !m_print_finish) { - - int job_id = obj->get_modeltask()->job_id; - boost::thread([this, agent, job_id] { + m_project_task_panel->get_request_rating_failed_info()->Hide(); + int instance_id = obj->get_modeltask()->instance_id; + m_print_finish = true; + std::string dev_id = obj->dev_id; + boost::thread([this, agent, instance_id, dev_id] { try { std::string rating_result; - unsigned int http_code = 0; + unsigned int http_code = 404; std::string http_error; int rating_id = -1; - int res = agent->get_model_mall_rating_result(job_id, rating_result, http_code, http_error); + int res = -1; + int request_times = 0; + do { + if (!this || !(this->obj) || this->obj->dev_id != dev_id || request_times > 3) return; + if (request_times) { + std::chrono::seconds sleepDuration(3); + } + res = agent->get_model_mall_rating_result(instance_id, rating_result, http_code, http_error); + BOOST_LOG_TRIVIAL(info) << "request times: "<< request_times; + request_times++; + } while (res != 0 && 404 == http_code); + if (0 == res) { m_rating_result = json::parse(rating_result); if (m_rating_result.contains("id")) { rating_id = m_rating_result["id"].get(); + if (!this || !(this->obj) || this->obj->dev_id != dev_id) return; m_project_task_panel->market_scoring_show(); BOOST_LOG_TRIVIAL(info) << "show scoring page"; - bool is_update = model_score_is_update(); // this mall model has score, user do not click star, Initialize scores only once per print startup program - if (is_update || - (!m_project_task_panel->get_star_count_dirty() && !m_print_finish && IsShownOnScreen() && m_rating_result.contains("score"))) { + if ((m_rating_result.contains("score"))) { int star_count = m_rating_result["score"].get(); m_project_task_panel->set_star_count(star_count); BOOST_LOG_TRIVIAL(info) << "Initialize scores"; - m_project_task_panel->set_star_count_dirty(true); - m_print_finish = true; + if (0 != star_count) { m_project_task_panel->get_market_scoring_button()->Enable(true); m_project_task_panel->set_has_reted_text(true); @@ -2826,6 +2840,10 @@ void StatusPanel::update_subtask(MachineObject *obj) } } } + } else { + m_project_task_panel->get_request_rating_failed_info()->Show(); + BOOST_LOG_TRIVIAL(info) << "model mall result request failed"; + return; } } catch (...) { m_project_task_panel->market_scoring_hide(); @@ -2834,7 +2852,7 @@ void StatusPanel::update_subtask(MachineObject *obj) }); } BOOST_LOG_TRIVIAL(info) << "SHOW_SCORE_BTU: design_id [" << obj->get_modeltask()->design_id << "] print_finish [" << m_print_finish << "]"; - + } else { // model is not mall model. hide scoring page m_project_task_panel->market_scoring_hide(); } @@ -2844,6 +2862,7 @@ void StatusPanel::update_subtask(MachineObject *obj) } else { // model printing is not finished, hide scoring page m_project_task_panel->enable_abort_button(true); m_project_task_panel->market_scoring_hide(); + m_project_task_panel->get_request_rating_failed_info()->Hide(); if (m_print_finish) { m_print_finish = false; } @@ -2887,21 +2906,6 @@ void StatusPanel::update_subtask(MachineObject *obj) this->Layout(); } -bool StatusPanel::model_score_is_update() -{ - try { - if (m_last_result["id"] != m_rating_result["id"] || m_last_result["content"] != m_rating_result["content"] || m_last_result["images"] != m_rating_result["images"]) { - m_last_result = m_rating_result; - return true; - } - } catch (...) { - BOOST_LOG_TRIVIAL(info) << "m_last_result first initial"; - m_last_result = m_rating_result; - } - - return false; -} - void StatusPanel::update_cloud_subtask(MachineObject *obj) { if (!obj) return; diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index 497552177f..bf8d9382cf 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -180,6 +180,7 @@ private: wxStaticText* m_staticText_progress_left; wxStaticText* m_staticText_layers; wxStaticText * m_has_rated_prompt; + wxStaticText * m_request_failed_info; wxStaticBitmap* m_bitmap_thumbnail; wxStaticBitmap* m_bitmap_static_use_time; wxStaticBitmap* m_bitmap_static_use_weight; @@ -226,11 +227,11 @@ public: Button* get_market_scoring_button() {return m_button_market_scoring;}; Button* get_clean_button() {return m_button_clean;}; wxStaticBitmap* get_bitmap_thumbnail() {return m_bitmap_thumbnail;}; + wxStaticText * get_request_rating_failed_info() { return m_request_failed_info; } int get_star_count() { return m_star_count; } void set_star_count(int star_count); std::vector &get_score_star() { return m_score_star; } bool get_star_count_dirty() { return m_star_count_dirty; } - void set_star_count_dirty(bool dirty) { m_star_count_dirty = dirty; } void set_has_reted_text(bool has_rated); }; @@ -466,7 +467,6 @@ protected: bool m_is_load_with_temp = false; bool m_print_finish = false; json m_rating_result; - json m_last_result; wxWebRequest web_request; bool bed_temp_input = false; @@ -577,9 +577,6 @@ protected: void on_webrequest_state(wxWebRequestEvent &evt); bool is_task_changed(MachineObject* obj); - /* model mall score */ - bool model_score_is_update(); - /* camera */ void update_camera_state(MachineObject* obj); bool show_vcamera = false; From 36b8abf24ed4e4d32b84a8b6d0e604b66b108193 Mon Sep 17 00:00:00 2001 From: tao wang Date: Thu, 31 Aug 2023 09:15:02 +0800 Subject: [PATCH 18/92] ENH:optimized display of German and Swedish jira:[STUDIO-3722] Change-Id: I4562b1d55c709a6aac56f91601b12ae3f3459fd1 (cherry picked from commit e4cd09589685bdb1f7bdefada5f2ae28fb1e9552) --- src/slic3r/GUI/SelectMachine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 23afd85d84..bfae727b84 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1953,10 +1953,10 @@ void SelectMachineDialog::update_priner_status_msg(wxString msg, bool is_warning } else { msg = format_text(msg); - auto str_new = msg.ToStdString(); + auto str_new = msg.utf8_string(); stripWhiteSpace(str_new); - auto str_old = m_statictext_printer_msg->GetLabel().ToStdString(); + auto str_old = m_statictext_printer_msg->GetLabel().utf8_string(); stripWhiteSpace(str_old); if (str_new != str_old) { From d3e2f011e420e3651398d020ffff3b21c812cc4b Mon Sep 17 00:00:00 2001 From: tao wang Date: Wed, 23 Aug 2023 17:34:35 +0800 Subject: [PATCH 19/92] FIX:fixed German not displaying error messages jira:STUDIO-3722 Change-Id: I12883b4f494c1344a7b694ce627e95e4e14a3e1d (cherry picked from commit 3ed194f1f08272f077d9e668e5cb8a1be6cc8919) --- src/slic3r/GUI/SelectMachine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index bfae727b84..04be45162d 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -1918,10 +1918,10 @@ void SelectMachineDialog::update_ams_status_msg(wxString msg, bool is_warning) } else { msg = format_text(msg); - auto str_new = msg.ToStdString(); + auto str_new = msg.utf8_string(); stripWhiteSpace(str_new); - auto str_old = m_statictext_ams_msg->GetLabel().ToStdString(); + auto str_old = m_statictext_ams_msg->GetLabel().utf8_string(); stripWhiteSpace(str_old); if (str_new != str_old) { From 999ceddea1ce6c223b1c7655e169a4373f17df5a Mon Sep 17 00:00:00 2001 From: "liz.li" Date: Tue, 26 Sep 2023 17:42:41 +0800 Subject: [PATCH 20/92] FIX: bedshape dialog dark mode issue Jira: STUDIO-4572 refine UI of the dialog under dark mode Change-Id: I188a50bd8909c2ab090fbb1a095c4c45da150071 --- src/slic3r/GUI/2DBed.cpp | 12 +++++++----- src/slic3r/GUI/BedShapeDialog.cpp | 6 ++++++ src/slic3r/GUI/BedShapeDialog.hpp | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/slic3r/GUI/2DBed.cpp b/src/slic3r/GUI/2DBed.cpp index e7c2cbe542..e0feac0605 100644 --- a/src/slic3r/GUI/2DBed.cpp +++ b/src/slic3r/GUI/2DBed.cpp @@ -34,11 +34,13 @@ void Bed_2D::repaint(const std::vector& shape) // On MacOS the background is erased, on Windows the background is not erased // and on Linux / GTK the background is erased to gray color. // Fill DC with the background on Windows & Linux / GTK. -#ifdef _WIN32 - auto color = wxGetApp().get_highlight_default_clr(); -#else - auto color = wxSystemSettings::GetColour(wxSYS_COLOUR_3DLIGHT); //GetSystemColour -#endif + wxColour color; + if (wxGetApp().dark_mode()) {// SetBackgroundColour + color = wxColour(45, 45, 49); + } + else { + color = *wxWHITE; + } dc.SetPen(*new wxPen(color, 1, wxPENSTYLE_SOLID)); dc.SetBrush(*new wxBrush(color, wxBRUSHSTYLE_SOLID)); auto rect = GetUpdateRegion().GetBox(); diff --git a/src/slic3r/GUI/BedShapeDialog.cpp b/src/slic3r/GUI/BedShapeDialog.cpp index d692d45370..216bbad4ae 100644 --- a/src/slic3r/GUI/BedShapeDialog.cpp +++ b/src/slic3r/GUI/BedShapeDialog.cpp @@ -132,6 +132,7 @@ void BedShapeDialog::build_dialog(const ConfigOptionPoints& default_pt, const Co { SetFont(wxGetApp().normal_font()); + SetBackgroundColour(*wxWHITE); m_panel = new BedShapePanel(this); m_panel->build_panel(default_pt, custom_texture, custom_model); @@ -251,6 +252,7 @@ void BedShapePanel::build_panel(const ConfigOptionPoints& default_pt, const Conf ConfigOptionsGroupShp BedShapePanel::init_shape_options_page(const wxString& title) { wxPanel* panel = new wxPanel(m_shape_options_book); + panel->SetBackgroundColour(*wxWHITE); ConfigOptionsGroupShp optgroup = std::make_shared(panel, _L("Settings")); optgroup->label_width = 10; @@ -348,6 +350,8 @@ wxPanel* BedShapePanel::init_texture_panel() remove_btn->Bind(wxEVT_UPDATE_UI, ([this](wxUpdateUIEvent& e) { e.Enable(m_custom_texture != NONE); })); + parent->SetBackgroundColour(*wxWHITE); + return sizer; }; optgroup->append_line(line); @@ -436,6 +440,8 @@ wxPanel* BedShapePanel::init_model_panel() remove_btn->Bind(wxEVT_UPDATE_UI, ([this](wxUpdateUIEvent& e) { e.Enable(m_custom_model != NONE); })); + parent->SetBackgroundColour(*wxWHITE); + return sizer; }; optgroup->append_line(line); diff --git a/src/slic3r/GUI/BedShapeDialog.hpp b/src/slic3r/GUI/BedShapeDialog.hpp index 032aa28800..915b9fb308 100644 --- a/src/slic3r/GUI/BedShapeDialog.hpp +++ b/src/slic3r/GUI/BedShapeDialog.hpp @@ -93,7 +93,7 @@ class BedShapeDialog : public DPIDialog BedShapePanel* m_panel; public: BedShapeDialog(wxWindow* parent) : DPIDialog(parent, wxID_ANY, _(L("Bed Shape")), - wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) {} + wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE) {} void build_dialog(const ConfigOptionPoints& default_pt, const ConfigOptionString& custom_texture, const ConfigOptionString& custom_model); From f6838d8fece74d3181aa55a08c744794d5b08e24 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Tue, 26 Sep 2023 16:34:22 +0800 Subject: [PATCH 21/92] ENH: update PETG-CF filament params 1. update params with cooling jira: STUDIO-3518 Signed-off-by: xun.zhang Change-Id: Iea8cdb055c60e980ef18dff2cf64d848d9b83747 --- .../Bambu PETG-CF @BBL X1C 0.4 nozzle.json | 14 +++++++++++++- .../BBL/filament/Bambu PETG-CF @BBL X1C.json | 15 +++++++++++++++ .../BBL/filament/Generic PETG-CF @BBL X1C.json | 15 +++++++++++++++ .../P1P/Bambu PETG-CF @BBL P1P 0.4 nozzle.json | 14 +++++++++++++- .../BBL/filament/P1P/Bambu PETG-CF @BBL P1P.json | 15 +++++++++++++++ .../filament/P1P/Generic PETG-CF @BBL A1M.json | 12 ++++++++++++ .../filament/P1P/Generic PETG-CF @BBL P1P.json | 15 +++++++++++++++ 7 files changed, 98 insertions(+), 2 deletions(-) diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json index 807069d44b..d0ea93c38c 100644 --- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json @@ -5,8 +5,20 @@ "from": "system", "setting_id": "GFSG50_02", "instantiation": "true", + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], "filament_max_volumetric_speed": [ - "13" + "11.5" + ], + "overhang_fan_speed": [ + "100" ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json index bbfe1b42e2..8d0e7ce354 100644 --- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json @@ -5,6 +5,21 @@ "from": "system", "setting_id": "GFSG50_01", "instantiation": "true", + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], + "filament_max_volumetric_speed": [ + "11.5" + ], + "overhang_fan_speed": [ + "100" + ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 Carbon 0.8 nozzle", diff --git a/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json b/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json index c21a0b8934..59be4dea79 100644 --- a/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json @@ -5,6 +5,21 @@ "from": "system", "setting_id": "GFSG50", "instantiation": "true", + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], + "filament_max_volumetric_speed": [ + "11.5" + ], + "overhang_fan_speed": [ + "100" + ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", diff --git a/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P 0.4 nozzle.json b/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P 0.4 nozzle.json index 4904cf0b10..ccbfad93a5 100644 --- a/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P 0.4 nozzle.json +++ b/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P 0.4 nozzle.json @@ -5,8 +5,20 @@ "from": "system", "setting_id": "GFSG50_03", "instantiation": "true", + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], "filament_max_volumetric_speed": [ - "13" + "11.5" + ], + "overhang_fan_speed": [ + "100" ], "compatible_printers": [ "Bambu Lab P1P 0.4 nozzle" diff --git a/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P.json index fe4edb3f3d..a0a6388bcc 100644 --- a/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P.json +++ b/resources/profiles/BBL/filament/P1P/Bambu PETG-CF @BBL P1P.json @@ -5,6 +5,21 @@ "from": "system", "setting_id": "GFSG50_11", "instantiation": "true", + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], + "filament_max_volumetric_speed": [ + "11.5" + ], + "overhang_fan_speed": [ + "100" + ], "compatible_printers": [ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab P1P 0.8 nozzle" diff --git a/resources/profiles/BBL/filament/P1P/Generic PETG-CF @BBL A1M.json b/resources/profiles/BBL/filament/P1P/Generic PETG-CF @BBL A1M.json index 927e839529..bdf73897b3 100644 --- a/resources/profiles/BBL/filament/P1P/Generic PETG-CF @BBL A1M.json +++ b/resources/profiles/BBL/filament/P1P/Generic PETG-CF @BBL A1M.json @@ -5,9 +5,21 @@ "from": "system", "setting_id": "GFSG98_00", "instantiation": "true", + "fan_cooling_layer_time": [ + "20" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "0" + ], "filament_max_volumetric_speed": [ "8" ], + "overhang_fan_speed": [ + "90" + ], "compatible_printers": [ "Bambu Lab A1 mini 0.4 nozzle", "Bambu Lab A1 mini 0.6 nozzle", diff --git a/resources/profiles/BBL/filament/P1P/Generic PETG-CF @BBL P1P.json b/resources/profiles/BBL/filament/P1P/Generic PETG-CF @BBL P1P.json index bf4c3ae6d8..3bf940e25a 100644 --- a/resources/profiles/BBL/filament/P1P/Generic PETG-CF @BBL P1P.json +++ b/resources/profiles/BBL/filament/P1P/Generic PETG-CF @BBL P1P.json @@ -5,6 +5,21 @@ "from": "system", "setting_id": "GFSG50_10", "instantiation": "true", + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "40" + ], + "fan_min_speed": [ + "5" + ], + "filament_max_volumetric_speed": [ + "11.5" + ], + "overhang_fan_speed": [ + "100" + ], "compatible_printers": [ "Bambu Lab P1P 0.4 nozzle", "Bambu Lab P1P 0.6 nozzle", From 85fd225e48510e37bc3210a189e736ffa058f5c8 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Tue, 26 Sep 2023 17:52:01 +0800 Subject: [PATCH 22/92] ENH: add X1E as upward printers 1. P1P,P1S add X1E to upward printers 2. X1 ,X1C add X1E to upward printers 3. A1 mini add X1E to upward printers jira:STUDIO-3518 Signed-off-by: xun.zhang Change-Id: I574854b3303a879b738e6841bacd30959b5005a7 --- resources/profiles/BBL.json | 2 +- .../BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json | 3 ++- .../BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json | 3 ++- .../BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json | 6 +++++- .../BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json | 6 +++++- .../profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json | 3 ++- .../profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json | 8 +++----- .../profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json | 6 ++---- .../profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json | 6 ++---- .../profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json | 3 ++- .../profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json | 8 +++----- .../profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json | 7 ++++--- .../profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json | 6 ++---- .../profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json | 3 ++- .../profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json | 6 ++---- .../profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json | 7 ++++--- .../profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json | 7 ++++--- .../BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json | 3 ++- .../BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json | 7 ++----- .../BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json | 7 ++++--- .../BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json | 6 ++---- 21 files changed, 57 insertions(+), 56 deletions(-) diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 3031f1ebb7..406ff59c68 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.07.00.26", + "version": "01.07.00.27", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json index d8cea99515..d6e55aa133 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json @@ -27,6 +27,7 @@ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json index d78a910e6d..bffc6623d5 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json @@ -56,7 +56,8 @@ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ], "machine_start_gcode": ";===== machine: A1 mini =========================\n;===== date: 20230912 =====================\n\n;===== start to heat heatbead&hotend==========\nM1002 gcode_claim_action : 2\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG392 S0 ;turn off clog detect\n;=====start printer sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B0 L100 C37 D10 M100 E37 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E43 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C49 D10 M100 E49 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C39 D10 M100 E48 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 W\nM18\n;=====avoid end stop =================\nG91\nG380 S2 Z30 F1200\nG380 S2 Z-20 F1200\nG1 Z5 F1200\nG90\n\n;===== reset machine status =================\nM290 X39 Y39 Z8\nM204 S6000\n\nM630 S0 P0\nG91\nM17 Z0.3 ; lower the z-motor current\n\nG90\nM17 X0.7 Y0.9 Z0.5 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\n;M221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\n;===== prepare print temperature and material ==========\nM1002 gcode_claim_action : 1\nM400\nM18\nM109 S100\nM104 S140\nM400\nM17\nM400\nG28 X\n\nM221 X0 Y0 Z0 ;turn off soft endstop\n\nM975 S1 ; turn on\n\nG1 X0.0 F30000\nG1 X-13.5 F3000\n\nM620 M ;enable remap\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n G392 S1 ;turn on clog detect\n M1002 gcode_claim_action : 4\n M400\n M1002 set_filament_type:UNKNOWN\n M109 S[nozzle_temperature_initial_layer]\n M104 S250\n M400\n T[initial_no_support_extruder]\n G1 X-13.5 F3000\n M400\n M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n M109 S250 ;set nozzle to common flush temp\n M106 P1 S0\n G92 E0\n G1 E50 F200\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n M104 S{nozzle_temperature_range_high[initial_no_support_extruder]}\n G92 E0\n G1 E50 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M400\n M106 P1 S178\n G92 E0\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G92 E0\n G1 E-0.5 F300\n\n G1 X0 F30000\n G1 X-13.5 F3000\n G1 X0 F30000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X0 F30000\n G1 X-13.5 F3000\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G392 S0 ;turn off clog detect\nM621 S[initial_no_support_extruder]A\n\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== mech mode fast check============================\nM1002 gcode_claim_action : 3\nG0 X50 Y175 F20000 ; find a soft place to home\nM104 S0\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-80}\n\nG1 X90 Y-1 Z5 F30000\nM400 P200\nM970.3 Q1 A7 K0 O2\nM974 Q1 S2 P0\n\nG1 X90 Y0 Z5 F30000\nM400 P200\nM970 Q0 A5 B55 C85 H15 K0 M20 O2\n;M970.3 Q0 A7 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X-1 Y10\nG28 X ; re-home XY\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\n;M106 S255\nG29.2 S0 ; turn off ABL\nG0 X50 Y175 F20000 ; find a soft place to home\nG28 Z P0 T300; home z with low precision, permit 300deg temperature\n\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\n\nG0 X85 Y185 F10000 ;move to exposed steel surface and stop the nozzle\nG0 Z-1.01 F10000\nG91\n\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nG90\nG1 Z5 F30000\nG1 X32 Y185 F30000.1 ;Brush material\nG1 Z0.6 F30000.1\nG91\nG1 X-30 F30000\nG1 Y-2\nG1 X27\nG1 Y1.5\nG1 X-28\nG1 Y-2\nG1 X30\nG1 Y1.5\nG1 X-30\n\nG90\nM83\n\nG1 Z10\nG1 X85 Y185\nG1 Z-1.01\n\n\nM221 R; pop softend status\n\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== wait heatbed ====================\nM1002 gcode_claim_action : 2\nM104 S0\nM190 S[bed_temperature_initial_layer_single];set bed temp\nM109 S140\n\nG1 Z5 F3000\nG29.2 S1\nG1 X10 Y10 F20000\n\n;===== bed leveling ==================================\n;M1002 set_flag g29_before_print_flag=1\nM1002 judge_flag g29_before_print_flag\nM622 J1\n M1002 gcode_claim_action : 1\n G29 A\n M400\n M500 ; save cali data\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\n\nG1 X-13.5 Y0 Z10 F10000\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S{nozzle_temperature[initial_extruder]}\nM400\n\nM412 S1 ; ===turn on filament runout detection===\nM400 P10\n\nG392 S1 ;turn on clog detect\n\nM620.3 W1; === turn on filament tangle detection===\nM400 S2\n\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n;M1002 set_flag extrude_cali_flag=1\nM1002 judge_flag extrude_cali_flag\nM622 J1\n M1002 gcode_claim_action : 8\n \n M400\n M900 K0.0 L1000.0 M1.0\n G90\n M83\n G0 X45 Y-4 F30000\n G0 Z0.2 F18000 ;Move to start position\n G0 X65 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X70 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X75 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X80 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X85 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X90 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X120 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X125 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X130 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n M400\n \n G1 X-13.5 Y0 Z10 F10000\n M400\n \n G1 E10 F{outer_wall_volumetric_speed/2.4*60}\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X-13.5 F3000\n M400\n M106 P1 S0\n\n M1002 judge_last_extrude_cali_success\n M622 J0\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n M400\n M106 P1 S0\n M623\nM623 ; end of \"draw extrinsic para cali paint\"\n\n;===== extrude cali test ===============================\nG90\nM83\nG0 X50 Y-2.7 F30000\nG0 Z0.2 F18000 ;Move to start position\nG0 X60 E4 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X65 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X70 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X75 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X80 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X85 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X90 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X120 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X125 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X130 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nM400\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\n\nM400 ; wait all motion done before implement the emprical L parameters\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.02} ; for Textured PEI Plate\n{endif}\n\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n\nM211 X0 Y0 Z0 ;turn off soft endstop\n", "machine_end_gcode": ";===== date: 20230912 =====================\n;turn off nozzle clog detect\nG392 S0\n\n{if timelapse_type == 2}\nM991 S0 P-1 ;end timelapse immediately\n{endif}\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X0 F12000 ; move to safe pos \n{if timelapse_type == 1}\nM991 S0 P-1 ;end timelapse at safe pos\n{endif}\n\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\n;G1 X27 F15000 ; wipe\n\n; pull back filament to AMS\nM620 S255\nG1 X181 F12000\nT255\nG1 X0 F18000\nG1 X-13.0 F3000\nG1 X0 F18000 ; wipe\nM621 S255\n\nM104 S0 ; turn off hotend\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 180}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z180 F600\n G1 Z180\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X-13 Y180 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\n;=====printer finish sound=========\nM17\nM400 S1\nM1006 S1\nM1006 A0 B20 L100 C37 D20 M100 E42 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C46 D10 M100 E46 F10 N100\nM1006 A44 B20 L100 C39 D20 M100 E48 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E48 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B20 L100 C41 D20 M100 E49 F20 N100\nM1006 A0 B20 L100 C0 D20 M100 E0 F20 N100\nM1006 A0 B20 L100 C37 D20 M100 E37 F20 N100\nM1006 W\n;=====printer finish sound=========\nM400 S1\nM18\n", diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json index 3ef6460dc4..846a62c517 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json @@ -10,6 +10,9 @@ ], "printer_model": "Bambu Lab A1 mini", "printer_variant": "0.6", + "default_filament_profile": [ + "Bambu PLA Basic @BBL A1M" + ], "default_print_profile": "0.30mm Standard @BBL A1M 0.6 nozzle", "max_layer_height": [ "0.42" @@ -28,6 +31,7 @@ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab P1P 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json index 82fcdb8140..2c69cd3455 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json @@ -10,6 +10,9 @@ ], "printer_model": "Bambu Lab A1 mini", "printer_variant": "0.8", + "default_filament_profile": [ + "Bambu PLA Basic @BBL A1M" + ], "default_print_profile": "0.40mm Standard @BBL A1M 0.8 nozzle", "max_layer_height": [ "0.56" @@ -28,6 +31,7 @@ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json index 31aa9e7c85..da7b3beea7 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json @@ -26,7 +26,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z-0.04 ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json index 247608475c..c70c535727 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json @@ -28,14 +28,12 @@ "machine_unload_filament_time": "28", "nozzle_type": "stainless_steel", "scan_first_layer": "0", - "z_hop": [ - "0.4" - ], "upward_compatible_machine": [ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression", "layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n{if timelapse_type == 0} ; timelapse without wipe tower\nM971 S11 C10 O0\n{elsif timelapse_type == 1} ; timelapse with wipe tower\nG92 E0\nG1 E-[retraction_length] F1800\nG17\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 X65 Y245 F20000 ; move to safe pos\nG17\nG2 Z{layer_z} I0.86 J0.86 P1 F20000\nG1 Y265 F3000\nM400 P300\nM971 S11 C11 O0\nG92 E0\nG1 E[retraction_length] F300\nG1 X100 F5000\nG1 Y255 F20000\n{endif}\nM623\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change" -} +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json index e2e35ce501..a9918192e1 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json @@ -20,9 +20,6 @@ "min_layer_height": [ "0.12" ], - "z_hop": [ - "0.4" - ], "nozzle_type": "hardened_steel", "retraction_length": [ "1.4" @@ -33,7 +30,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X18 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json index 04375fdf73..9361311d89 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json @@ -24,16 +24,14 @@ "retract_length_toolchange": [ "3" ], - "z_hop": [ - "0.4" - ], "retraction_length": [ "3" ], "upward_compatible_machine": [ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y15 E1.500 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.500\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X18 E15\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json index 2ef87a37ad..bbb6bcc475 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json @@ -26,7 +26,8 @@ "upward_compatible_machine": [ "Bambu Lab P1P 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z-0.04 ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json index 8fd2c82da3..a148d661f0 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json @@ -27,14 +27,12 @@ "machine_unload_filament_time": "28", "nozzle_type": "stainless_steel", "scan_first_layer": "0", - "z_hop": [ - "0.4" - ], "upward_compatible_machine": [ "Bambu Lab P1P 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression", "layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n{if timelapse_type == 0} ; timelapse without wipe tower\nM971 S11 C10 O0\n{elsif timelapse_type == 1} ; timelapse with wipe tower\nG92 E0\nG1 E-[retraction_length] F1800\nG17\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 X65 Y245 F20000 ; move to safe pos\nG17\nG2 Z{layer_z} I0.86 J0.86 P1 F20000\nG1 Y265 F3000\nM400 P300\nM971 S11 C11 O0\nG92 E0\nG1 E[retraction_length] F300\nG1 X100 F5000\nG1 Y255 F20000\n{endif}\nM623\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change" -} +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json index dbae519daa..a7c92573fa 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab P1S", "printer_variant": "0.6", - "z_hop": [ - "0.4" + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C" ], "default_print_profile": "0.30mm Standard @BBL X1C 0.6 nozzle", "max_layer_height": [ @@ -30,7 +30,8 @@ "upward_compatible_machine": [ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X18 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json index 8c48198d33..f4196bd168 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json @@ -10,9 +10,6 @@ ], "printer_model": "Bambu Lab P1S", "printer_variant": "0.8", - "z_hop": [ - "0.4" - ], "default_filament_profile": [ "Bambu PLA Basic @BBL X1" ], @@ -33,7 +30,8 @@ "upward_compatible_machine": [ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y15 E1.500 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.500\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X18 E15\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json index 5c0352f9bf..c0dcb29ee2 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json @@ -26,7 +26,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json index 69975f20e3..e84d3cb0a6 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json @@ -28,13 +28,11 @@ "machine_unload_filament_time": "28", "nozzle_type": "stainless_steel", "scan_first_layer": "1", - "z_hop": [ - "0.4" - ], "upward_compatible_machine": [ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json index b6e49250c0..87fa2b42c7 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab X1", "printer_variant": "0.6", - "z_hop": [ - "0.4" + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1" ], "default_print_profile": "0.30mm Standard @BBL X1 0.6 nozzle", "max_layer_height": [ @@ -30,7 +30,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab P1P 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json index 6a3b52e579..57396a8b04 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab X1", "printer_variant": "0.8", - "z_hop": [ - "0.4" + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1" ], "default_print_profile": "0.40mm Standard @BBL X1 0.8 nozzle", "max_layer_height": [ @@ -30,7 +30,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json index 84b682ce57..15503fa892 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json @@ -27,7 +27,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab X1 0.2 nozzle" + "Bambu Lab X1 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json index 8139efe731..3d46a130dd 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json @@ -26,14 +26,11 @@ "machine_load_filament_time": "29", "machine_unload_filament_time": "28", "scan_first_layer": "1", - "z_hop": [ - "0.4" - ], - "printer_structure": "corexy", "upward_compatible_machine": [ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", - "Bambu Lab X1 0.4 nozzle" + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json index 1aa8c94661..91f621db45 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab X1 Carbon", "printer_variant": "0.6", - "z_hop": [ - "0.4" + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C" ], "default_print_profile": "0.30mm Standard @BBL X1C 0.6 nozzle", "max_layer_height": [ @@ -29,7 +29,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab P1P 0.6 nozzle", - "Bambu Lab X1 0.6 nozzle" + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json index ac6d31e35c..71730007b0 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json @@ -10,9 +10,6 @@ ], "printer_model": "Bambu Lab X1 Carbon", "printer_variant": "0.8", - "z_hop": [ - "0.4" - ], "default_filament_profile": [ "Bambu PLA Basic @BBL X1C 0.8 nozzle" ], @@ -32,7 +29,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", - "Bambu Lab X1 0.8 nozzle" + "Bambu Lab X1 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file From 24d0b522a89d2e66d52b3a13f44e8101514f35e2 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Tue, 26 Sep 2023 18:58:06 +0800 Subject: [PATCH 23/92] ENH: add param link for chamber temp jira:STUDIO-3518 Signed-off-by: xun.zhang Change-Id: I275d1006f7478a4d5b5d6854513a50025f46d670 --- src/slic3r/GUI/Tab.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 193da16779..6215990b26 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -2644,7 +2644,7 @@ void TabFilament::build() optgroup = page->new_optgroup(L("Print temperature"), L"param_temperature"); - optgroup->append_single_option_line("chamber_temperatures"); + optgroup->append_single_option_line("chamber_temperatures","chamber-temperature"); line = { L("Nozzle"), L("Nozzle temperature when printing") }; line.append_option(optgroup->get_option("nozzle_temperature_initial_layer")); From 1c1f33bc0b46043eb66e05f3cd3d3362caaacaa0 Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Tue, 26 Sep 2023 18:32:38 +0800 Subject: [PATCH 24/92] FIX: [STUDIO-4559 4557] translation Change-Id: I54370aed677b6620c3b9b030a4e5d5ababe34569 --- bbl/i18n/BambuStudio.pot | 18 ++++++++++++++--- bbl/i18n/de/BambuStudio_de.po | 20 +++++++++++++++---- bbl/i18n/en/BambuStudio_en.po | 20 +++++++++++++++---- bbl/i18n/es/BambuStudio_es.po | 20 +++++++++++++++---- bbl/i18n/fr/BambuStudio_fr.po | 20 +++++++++++++++---- bbl/i18n/hu/BambuStudio_hu.po | 20 +++++++++++++++---- bbl/i18n/it/BambuStudio_it.po | 20 +++++++++++++++---- bbl/i18n/ja/BambuStudio_ja.po | 20 +++++++++++++++---- bbl/i18n/ko/BambuStudio_ko.po | 20 +++++++++++++++---- bbl/i18n/nl/BambuStudio_nl.po | 20 +++++++++++++++---- bbl/i18n/sv/BambuStudio_sv.po | 20 +++++++++++++++---- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 30 ++++++++++++++++++---------- resources/i18n/zh_cn/BambuStudio.mo | Bin 266664 -> 267120 bytes src/slic3r/GUI/Plater.cpp | 4 ++-- 14 files changed, 196 insertions(+), 56 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 36df51b5db..0008e79237 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3696,6 +3696,12 @@ msgstr "" msgid "Clear" msgstr "" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4374,16 +4380,22 @@ msgstr "" msgid "Another export job is running." msgstr "" +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "" + msgid "Select a new file" msgstr "" msgid "File for the replace wasn't selected" msgstr "" -msgid "Error during replace" +msgid "Please select a file" msgstr "" -msgid "Please select a file" +msgid "Do you want to replace it" msgstr "" msgid "Slicing" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 92a0705ea1..96644f5883 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3984,6 +3984,12 @@ msgstr "Schicht: N/A" msgid "Clear" msgstr "Löschen" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4719,18 +4725,24 @@ msgstr "Das ausgewählte Objekt konnte nicht geteilt werden." msgid "Another export job is running." msgstr "Ein weiterer Exportauftrag läuft gerade." +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "Fehler beim Ersetzen" + msgid "Select a new file" msgstr "Wähle eine neue Datei aus" msgid "File for the replace wasn't selected" msgstr "Datei für die Ersetzung wurde nicht ausgewählt" -msgid "Error during replace" -msgstr "Fehler beim Ersetzen" - msgid "Please select a file" msgstr "Bitte wählen Sie eine Datei" +msgid "Do you want to replace it" +msgstr "" + msgid "Slicing" msgstr "Slicen" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index cea1b45c18..65c11ff32f 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3897,6 +3897,12 @@ msgstr "Layer: N/A" msgid "Clear" msgstr "Clear" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4615,18 +4621,24 @@ msgstr "The selected object couldn't be split." msgid "Another export job is running." msgstr "Another export job is running." +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "Error during replacement" + msgid "Select a new file" msgstr "Select a new file" msgid "File for the replace wasn't selected" msgstr "File for the replacement wasn't selected" -msgid "Error during replace" -msgstr "Error during replacement" - msgid "Please select a file" msgstr "Please select a file" +msgid "Do you want to replace it" +msgstr "" + msgid "Slicing" msgstr "Slicing" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index f1eef859ef..cd8d31f975 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3967,6 +3967,12 @@ msgstr "Capa: N/A" msgid "Clear" msgstr "Borrar" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4697,18 +4703,24 @@ msgstr "El objeto seleccionado no ha podido ser dividido." msgid "Another export job is running." msgstr "Otro trabajo de exportación está en marcha." +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "Error durante la sustitución" + msgid "Select a new file" msgstr "Selecciona un archivo nuevo" msgid "File for the replace wasn't selected" msgstr "No se ha seleccionado el archivo para la sustitución" -msgid "Error during replace" -msgstr "Error durante la sustitución" - msgid "Please select a file" msgstr "Por favor, seleccione un archivo" +msgid "Do you want to replace it" +msgstr "" + msgid "Slicing" msgstr "Laminando" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 104adad207..e8161c2f6f 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3964,6 +3964,12 @@ msgstr "Couche : N/A" msgid "Clear" msgstr "Nettoyer" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4693,18 +4699,24 @@ msgstr "L'objet sélectionné n'a pas pu être divisé." msgid "Another export job is running." msgstr "Une autre tâche d'exportation est en cours d'exécution." +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "Erreur lors du remplacement" + msgid "Select a new file" msgstr "Sélectionnez un nouveau fichier" msgid "File for the replace wasn't selected" msgstr "Le fichier de remplacement n'a pas été sélectionné" -msgid "Error during replace" -msgstr "Erreur lors du remplacement" - msgid "Please select a file" msgstr "Veuillez sélectionner un fichier" +msgid "Do you want to replace it" +msgstr "" + msgid "Slicing" msgstr "Découpe" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index c185fb3bfb..d6e8dd6f26 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3940,6 +3940,12 @@ msgstr "Réteg: N/A" msgid "Clear" msgstr "Törlés" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4662,18 +4668,24 @@ msgstr "A kijelölt objektumot nem lehet feldarabolni." msgid "Another export job is running." msgstr "Egy másik exportálási feladat is fut." +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "Hiba a csere során" + msgid "Select a new file" msgstr "Válassz egy új fájlt" msgid "File for the replace wasn't selected" msgstr "A cserefájl nem lett kiválasztva" -msgid "Error during replace" -msgstr "Hiba a csere során" - msgid "Please select a file" msgstr "Kérjük, válassz egy fájlt" +msgid "Do you want to replace it" +msgstr "" + msgid "Slicing" msgstr "Szeletelés" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index 6d523461f4..459cc15abd 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3948,6 +3948,12 @@ msgstr "Layer: N/A" msgid "Clear" msgstr "Cancella" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4675,18 +4681,24 @@ msgstr "L'oggetto selezionato non può essere diviso." msgid "Another export job is running." msgstr "È in esecuzione un altro processo di esportazione." +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "Errore durante la sostituzione" + msgid "Select a new file" msgstr "Seleziona nuovo file" msgid "File for the replace wasn't selected" msgstr "Il file per la sostituzione non è stato selezionato" -msgid "Error during replace" -msgstr "Errore durante la sostituzione" - msgid "Please select a file" msgstr "Seleziona file" +msgid "Do you want to replace it" +msgstr "" + msgid "Slicing" msgstr "Slicing" diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index 474fea016b..662d994b7e 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3824,6 +3824,12 @@ msgstr "Layer: N/A" msgid "Clear" msgstr "クリア" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4531,18 +4537,24 @@ msgstr "選択したオブジェクトを分割できませんでした。" msgid "Another export job is running." msgstr "エクスポート中です" +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "交換時のエラー" + msgid "Select a new file" msgstr "ファイルを選択" msgid "File for the replace wasn't selected" msgstr "交換用のファイルが選択されていません" -msgid "Error during replace" -msgstr "交換時のエラー" - msgid "Please select a file" msgstr "ファイルを選択してください" +msgid "Do you want to replace it" +msgstr "" + msgid "Slicing" msgstr "スライス中" diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index 319313f23f..56bf71492c 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3866,6 +3866,12 @@ msgstr "레이어: N/A" msgid "Clear" msgstr "지우기" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4580,18 +4586,24 @@ msgstr "선택한 객체를 분할할 수 없습니다." msgid "Another export job is running." msgstr "다른 내보내기 작업이 실행 중입니다." +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "교체 중 오류" + msgid "Select a new file" msgstr "새 파일 선택" msgid "File for the replace wasn't selected" msgstr "교체할 파일이 선택되지 않았습니다." -msgid "Error during replace" -msgstr "교체 중 오류" - msgid "Please select a file" msgstr "파일을 선택해 주십시오" +msgid "Do you want to replace it" +msgstr "" + msgid "Slicing" msgstr "슬라이싱" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 47a9f68245..09876afa1a 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3963,6 +3963,12 @@ msgstr "Laag: N/A" msgid "Clear" msgstr "Wissen" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4704,18 +4710,24 @@ msgstr "Het geselecteerde object kan niet opgesplitst worden." msgid "Another export job is running." msgstr "Er is reeds een export taak actief." +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "Fout tijdens vervanging" + msgid "Select a new file" msgstr "Selecteer een nieuw bestand" msgid "File for the replace wasn't selected" msgstr "Het bestand voor de vervanging is niet geselecteerd" -msgid "Error during replace" -msgstr "Fout tijdens vervanging" - msgid "Please select a file" msgstr "Selecteer een bestand" +msgid "Do you want to replace it" +msgstr "" + msgid "Slicing" msgstr "Slicen" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 655d673c6e..85d9ffaac3 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3915,6 +3915,12 @@ msgstr "Lager: N/A" msgid "Clear" msgstr "Rensa" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" + msgid "How do you like this printing file?" msgstr "" @@ -4634,18 +4640,24 @@ msgstr "Det valda objektet kan inte delas." msgid "Another export job is running." msgstr "En annan exportering pågår." +msgid "Unable to replace with more than one volume" +msgstr "" + +msgid "Error during replace" +msgstr "Fel vid byte" + msgid "Select a new file" msgstr "Välj en ny fil" msgid "File for the replace wasn't selected" msgstr "Ersättningsfilen valdes inte" -msgid "Error during replace" -msgstr "Fel vid byte" - msgid "Please select a file" msgstr "Välj en fil" +msgid "Do you want to replace it" +msgstr "" + msgid "Slicing" msgstr "Bereder" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index d125504db7..170c0ba3c8 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 11:09+0800\n" +"POT-Creation-Date: 2023-09-26 18:29+0800\n" "PO-Revision-Date: 2023-09-18 09:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -2610,7 +2610,8 @@ msgid "" "When you set the chamber temperature below 40℃, the chamber temperature " "control will not be activated. And the target chamber temperature will " "automatically be set to 0℃." -msgstr "当您设置的腔温低于40℃时,腔温控制将不会启动。并且目标腔温将自动设置为0℃。" +msgstr "" +"当您设置的腔温低于40℃时,腔温控制将不会启动。并且目标腔温将自动设置为0℃。" msgid "Failed to start printing job" msgstr "发起打印任务失败" @@ -3798,6 +3799,13 @@ msgstr "层: N/A" msgid "Clear" msgstr "清除" +msgid "" +"You have completed printing the mall model, but the synchronization of " +"rating information has failed. \n" +"If you need to resynchronize, please reselect the printer." +msgstr "" +"您已完成打印商城模型,但评分信息的同步失败了。\n如果需要重新同步,请重新选择打印机。" + msgid "How do you like this printing file?" msgstr "您喜欢这个打印文件吗?" @@ -4491,18 +4499,24 @@ msgstr "选中的模型不可分裂。" msgid "Another export job is running." msgstr "有其他导出任务正在进行中。" +msgid "Unable to replace with more than one volume" +msgstr "超过1个零件,无法替换" + +msgid "Error during replace" +msgstr "替换时发生错误" + msgid "Select a new file" msgstr "选择新文件" msgid "File for the replace wasn't selected" msgstr "未选择替换文件" -msgid "Error during replace" -msgstr "替换时发生错误" - msgid "Please select a file" msgstr "请选择一个文件" +msgid "Do you want to replace it" +msgstr "您是否要替换" + msgid "Slicing" msgstr "正在切片" @@ -13587,12 +13601,6 @@ msgstr "" #~ msgid "Replace from:" #~ msgstr "替换:" -#~ msgid "Unable to replace with more than one volume" -#~ msgstr "超过1个零件,无法替换" - -#~ msgid "Do you want to replace it" -#~ msgstr "您是否要替换" - #~ msgid "Reload from:" #~ msgstr "重新加载:" diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index e35f15468efdf2369873a30f4256207612390bf5..8442c23cd407981a471e05cf0105552aa0a0c8cd 100644 GIT binary patch delta 59893 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 W!ip%$jD*n5uU15Orf?XW>Hh%mR+>lv delta 59448 zcmXusbzm09+J^B>Leb(*3j_@iEI7pp?(R;D7k69S-HN+Y910YQyOkovp-}Vy#ofN^ ze&_klKfjsT-H~TxH-U1VEswWyNj(2Xf+*8H{&z2?=Y5Zr>U!S9IG)#kok~4#`vcF* zk2^33pJNPsiIMmjQ(%dQo|gt2VL}{;sc{Mx$4yukU!v+O^gqul=6Sx?jRfs^oAF!R zkLt*uR{j{flmCe7K<7s^hFwt|*n*kx9cITgk3Fv`R>Kh7fH83kM&KT-fX}fY?R$lv zcwP<)dSY^1j^E;5{0>iH419=5@TD2^KhKL!J`KjhEU5bnVKl6Zaj+?BKpj!n$D%s4 z0%Op=w~2%r+=buZF|3JyVk}Je)bsjc4panIV-5Tj73#034kUc$c~LMuDxVou?+>Vs zm&HEV1l93N=qDm^i-anEgE{dX=D^I)U5M-BSn~5w9n1W}O~C-HPJRzEmtOpruDm*G zO-!}?I_yOL8EQ(Jz4E-o_~R?$uO9ZLKp`H932`#U#$^~EH)Co%gx&EjX2k}tJue%M zM2%=GYNWeS^Z+VF^q>7P#wI7 zYUmm2zW10Ey?36M7LuW^7s5DL3N_-IsDac)4X`chz5zZ7Ert=O9#2L!G~Zl_io_;! zFDkUBQ4KsqJ^v2X(UA9^7Z($u>PwGmI0AJ&64h`mR6BlS61uT9w!`kI9^S-6_|lC2 z!R1q80?Kot?kkPSu|8_mcQgB;8XAgfXdK24_PiOW4lex^xZn4-kWfXtP@y`5df+^! z!W)%&vdH4ff$2^#fJ+u%j;}QH1v*T|;LEdD%i`w43f`bCPXaJ`2 zDfo+oe1=-RokQG>BT*q8k6Mh=QK4UinQ#kM#OoN2nWF>+I$9h1lAnNjKE^jefsn^X zMLG?Z!@THg)ef{97NJ755v$_AsF3E4>K-hDn!D;)8JnX*x*oL%cbP{}9X^X%12<6j z-M9QJ)MES`HOTjhl86&6$SZ`EQ4fqpt?ntP)xQYU@OsPd!F1$LVP<@8`R}3=Qu4*H z6E;D0>@;e-UPeXmAJj?tGP>_Z_>O{ctiIqFLChm>z;E3MR+?K-BiM^tBd4tVCTdMQ z!cF*nY&Wt$QD^->s1AKX-S=IbAg>x$LPcnvPeLJHg$l`L?1%?ZYaw^spuo$c0%j%O z8b{+a)NV-?FDP&xq(#kb5e&oXsHyFP8tGgtkBd+deuQeze?>we`X;^$bv)FGmI~Ei zK2%3qqPA0CEQX74Al^c4zh()70!Q?2R0MBeH++j)ob3|^1>PaQ;3)Fx5(Ogad%u#< zL9+t`bA<}=Wz>isp+@=@H3cDwUBu#{)`p4n7 z+IRCwsG>F42Y2Ei%$vlG@HZT+e9|DV18zf&EPb*duM5t^?ie$9khcPT9EM>jT=}m! zgnXLsTt}Cpre-as(7r!Iq6j`hMI!U}u7^cY5vhjS4GmGNxE*TobU}?|0BXu6qC&p{ z6}i2rsXLE){*mQBpbnz=DcS$3FewRzEETHa9Jmb&VPKo!Eb{MAi*-sW*Ri>%$gM!t zvkg`8Zd5%7Q3E(*`Kzexc)o^FbghOyK zu0buPD(T!@cfmB|N1+;Ajf%uZREG|tBJ~$)xA?b6XfB?jLi`RjXTj;+YLAVX$@j(T zxD>Vj-=N-p`7*eQyP(d2fvASBq2~Hu)Bql!8vbN{n=#N~-}|0K4ld-zN!Sv#4PT+A zq+?i6;Qikh6@i(k`&XkveFZhguTfJMJCl1Wrb1nBhbkYA;Wz_R;{L#O_TN7wv}!-1 z<|HVy>+yG}(B;6~SQ1-cPt1y!&8S)2$a14X9EsX?)liXZjru;Aj3w|eszcGkiInz# zauS+?P}KW6Gp@o2ROqgvI`|ZIw!cQLfs|Q;yxLd>E8$$sjt@~CPL?gm%ZrsT7Y;#P z---qC4*K~>q{{AkSR0iegF1-z;rIAAs-l-z7>^i>wu@W1~=^o`71+tE_xGjwHVu zHI-#@x^`-yA}}&1`(HhqNr7IMCr}mMM^*F$71B>;j0jhr1hvRApdyyl@_A5;tPpDI zDxwC^1XX`O%z(e32KYw=`(F*6r9i9y7HaiBLap96SROy37ES3~F5eP0;UqpUZsaLZtGocJqN=FS*R|`d%^|1=%|k_WCu%D8BK7*-H4<9Q|6xW%ze+tMJ>V&sL=j_S~Dk56<$H@>qn>#XDjYLSn{LRNFi*Bbx_a!hN|z7u516F zwSp(8bKnDpVMqygq=us^9&JuV&FwtYwpxkW?^{p}Jixa27Bw}^OS%Tzq6W|t6_H`+ z>uofLg!c6oRL`Dce*A(uTJuG^DXD_`6dQwz&;(RRrlS_&LR7_D&6BA5{xzSOpHa`n zEXDrUYEE3rjUXH~qNb<^+nc>nC)RM(8NLVg)_a6nba6_%-IEIQkS~b}eJ|8nn1VV< zm!THp4$O)dOZzTFQOX1beh~Qfi&cg&$F& ztyVtBJAn;R9S^JE29yW2n~I}4=$9s;Ij)Qq@F%;l0kf0ejyf{$V-1X5G01Cx&9E8n zL@m1SE4gzb93#mWL9MO97=g1<^_;}D_yT{>{$E(xUAT%jxDZsujo=?tL>{3+{Rzin zf~sx=^HJx)5>zBsq1M7Cb3f|fI*V%f4r&d=tmYz-3KMGoXCa}pyC{ZYv%m#dJCYh)Sv3h@RKYH%Ma z{}*P$+o%r2su|?9$8@OsCZZy<0M&tYm<^Ai&XKoR7xUB#@>=3J)M9>y!9o1~w{}qA z*Kj}7VgFaMIAs5P*c+d zHK2j0DVvCTei5d|)%Do_Sx6kGKqGpMfw`;i<|-yCpAr??bf|_R%)+SsT-I!an#wMi z5l5otdL3#CPND8UkLtif-!8;x;0~a8sL)r%aO{nGa4D*TYb^geY9#wm`}jC&?VLqT z(KS?L9^3VISd_fi(4CycuoPLp1qnT{0@ctq%kM^w^fYS!UPeVARwEag9)B|-<*MCCo<3SjT z(@-JZiaKJCqZaLds18JJ;yMHYYzAb>qLNir?V{O!>20v@cN&d_YZINJkg) z6sS+FjHqo}3Y%e5)ByG(9r3;6B(zWebOqi+)Exh3<)1K=e3DLXcjQM^&=VEPLAWr8 zpX*U`p1+H`UJ~3aovyC|=K3VF2NuA+FTNF+wR^}UP7I4_bmS!)xnTH?(=y&sv~#J|ID|jhP}RS@y0@RAQdWt8Bx0-e_!^$4vO*= zXg{|?t@7chjx9q?$sSbCub_6r3sgnl^m7#_K`p*isCx36wNTG>GsmJ%&?Trfw5uQc zUp+lcfkO8e>cF^xI+Fi~YUnv?1i}5CF;Op}1gMc@#0gjcHMd7lQ*aXX{8`ii_Aly0 zjW)myB#Tc%Hx@xP7>Npb1=Rknj~a1XEANlGZ!D_AQ?NZQuzak6ZY?B3O<{Jkuvq~$ zW%W=U^_!E>$XZ!JN3$C$q`h$`i*O=lC0}un3t?|m1C#L{ETQK9|~ zv*2C~$4BnE?h%YHp{Y*34$q2+rU%ynxl|XuF~A2aH|A z+(&1-;qGH|BbMR5_m~TdkI=Sc|92x%fr29#E0{SQ>Hdf%)o4aQg)4D5*SC*xBPcr7 z{aH_2)EfAHoa=B-R0Im57IAS@1e>9zv=?e^jWDNR9@_WjlhF1%hgzKvP>U*PylWsK zD%4@9kmg10_tJK~p_O;S8kGB}4xhyctT!RZJA`BKDOQ_EJ0Wy%68m2vtUuK)rY5M> z+8))R{;0(_8FeBq#ZcUf8tE+@jSo=wb)DuqJ{(ogFQ^EuM76UE6@h)I0iBx0{?|+5 zDg_$Rd(?i7JKaSh4Aqh1W^D{5-wsvrSk(OsP-|oxX2%DZ0h7*fYo-Y1A>Rl~;AB)J z&&^=}EAcM{ItN~&diVu31u=hd<=e-a0b@Gqp0Uo&JEP-d)Y{+XC+*LSIzv<>}}V_q0WUlsE#Z}Euvq|-%;noQB(u> zQH$;^YH@x-Js)?Ti*z!Krv0Crgl;H=T0~V)CzX$?U^VK&^{D%{qYkPQsE%L2HFyWL zb|%etNBUe;gchTwcs**3?L$3xQrETruaZ!RAE*F7p*j#_fh*608d*711+7u{bwzc= zxAM`bZ8;4UnK@Rz3N?@|sQY(V`2qCRv(qFrvVTw&yhJtl0rf!gg)Zdjurm2@RCym% z#X~JW3e~|Ws419-VYn6x;04qgiL=Np=B10+|H~=ZMS)(6Ef>2AMxa*nWOFU*WITp? zC)~#L7bKP{V^~34XBFmq3(N$1@W6@E^@`pvZ%;ZMNN5ApM-ke4Yj{Vqbgd2+D7Y8 z+w%bGrE(q>iC3r!VlQ_QOM{w}pOow__;fSMdXWLWS<_T4&UC&ctSV)H@`%S;cH?4#SLGUw|d>F!~Bn^!0A! zp=M6AxLFNrb6+#m`S2Smq<@&lQ7@H?sHu#*!QGeK3`MmQhMLM^mXF-P{#VEwQlM?u z9vkCG)EwPKHS_@$x@a5SePO8mABl=w8~lW0QO}LqXLTs^h0oi|_)fL;r4K z|10s)3KDL1H-w{hK|$1_D~6i;3aD+<993Zt)Pd6c8!Kg?~K}Bp1>b~WuIp2Wl z=oZxdJCLd3=YJCUDY%IWZPIP-H5`r#Q6p6Ok5~+QqvmisR=~rk5y#)|rYID3e|}U) zDxxA-2i2h#R^9zDfYQVlNEJiaa71_m@Tm# z`R*8oH&Kf$+J4vZ?@&__hMKY*W?>8^Umg{icBuRMq9Q-UC!vbQp&DL@S#cBUft#q2 zJVnjf8`O7ylmqUsXr{$HBy@!Shnj-; zhujEKqB@ktENoV>>&;O2|BRaZK6ZT^YC!W*1K5Pxp8GK${)IZCqaO|&>HPdhLJt%{ zg{C@c`_#wu*a8)Sk*JC$U{0Ke3gKx~$S!mfWYV;ylFPKJTs|AmuK zk8+`UTo$z(>Y~;_3sfY!S$;TbG0s4}l=h%HeiL;x-$xA~#!=Vd1gNP?gPAdhmDiWr z|7}R9f?lYGeRB+|qUorS&No-0BDM)Nb%#+Seu!%5De6G`jCwx#F*m@ps5#G%id10? z{QbX35_+$n$C+cfUwzb;3m?>q!@}qNv?b1y%75b1$j`M^GI+ zgNpFqsEFS?$^O^KKT@Echn#XZ#z)O*Qq*crkE*x?YE6_wy^epz95@WME4E;EJd4>d z=(O8SIZzR7gz8W$RJ)x{v;PC3r$8a~QHy4(-M9eNk(HrCPSj$&i<+`m=2u)q zKIWgU!@r_Jz8Q7jb}WtuP*W7eKjVI@9g5obO))QyL#^`t7=bTQZ^;aQxkc6(^`+!v zDZGwajA_rhzx`GcGmxKvfykihJ&U<8`Z;%y`GrVmL@iMbjK{OQun(cm{+Sou6kJ0c zneQ<-=DXx7XosqJ3aY`QSRMbv`dIw3JA!9pN%FC-xO%G~YryxWkWj-bFc02D&0V6a z?hlbmq87_+RD{-}7V9-sM_!@UM5b$QAeB)e?}a*;`lIH2BI>!B<_3(b_y186S{#>9 zbAKDP3;si`jjyOR5be5KBZ*LpF%y=?9H>Rw12uptsNHbH%yq-nI}f$`SE1_Nf$_Be z_mQZBXHh-Rd^5;9&vwg>x-sOIyB-URkZ*xnj0;g6UT$u}3FLR;Hs0f|G zaJ+MNmEdppz`numIR6RINz9_N4264l`gsCusZBoxw@s1q&LBey-$qHb)3y0Ihb zb9)$SRWHC$*2pH@L;l=j7m=w?T!)vSo@P>ZK0D#Si&iY8iqKIS05&b)!y$j5oL9PB&sK^vVRag@h@+PQyI-@!;7&V~DsE%$ie@8vH7faxY z*X;lNBx1jDi>owdB3~V~&HAE7J|5MvMW{u%64lTa^B^h`=k5Bxs407jdTG5gGrV>A z8mKkn`y@2N1*j3Mz+l{t=W!=0Sz{J z`45(_imKOdNf~C7I$C$4rrBm0pl@V$#9G=k(GUC2_QIud5)MKutKs-Qfo!Um`*>5OWympRPJC!-=V z)5@2ip4)(0Glwy@-v5_K=*D|?!*kT!NBiVPngVq$Utj3*1qXUu8C78&RKuN7 zYhr*o)UJ<4jeH4eckD)W>>8@$?@*D99_-o)4fcZrAsCazX|!& z7cm@#Iv38P8n}rH{WH|dba>{4wqs# ze1e+$=KSZ-4YmIVk0K{$b?@(63Ix84~Jg+IYd<0?dtB@f>RLdGUk2=8zp5;w03`_87JLLlXoC z{^DXD)Y|BVy>KdOzsE}GA{vTnrxI$wjS~j@fz{ueg1i(g!MS)D73!XeTm%N7^25z> zID`CD)Y{0BIM`c_`A{Rgg_?rZV%Y8#G5?UpI1&@V*|Y$Ix$-$$*f1j$|GQu-wHvWY-F zSPIpVI;at}M$PeHRD}~!yJIeD3bvxA=%JM-P2oD46SWxgV|gr$U2z1e1Mf{g%6D$n z$3-=e5%pkh41A8GI#3ri!k;ibcC`FdRD|Z@T=w^3)KnEq8SLG{GN|V>rE=y&t&vj5 zqV~NXNoWK^uoP~}ar<=!>c*S651*l?YE#D(eKfm+pF zP#qbE>d1W5RBpBWpQy;*!%*7yzDXY(`0UPzs-Uvv+o0ZF6H)JkHK>Zup|;gsR75_Y zA`zUy?fZDBh-O69SIf#fq298?Q3uz4^v94$kkLIj5B0!iRL@VNdU_X&VU#epnoFV9 zNMF?J)W;6^3#ubgGPx;AfI2DDVknkIMXVKS7fs5<{@4Efn*wd8+o;#$b1Z;yGP?@P zqOR9Q-T$N685NQKsE$l9m!s<0jXDvpqB`~*HL$O!2qwwmyHy>Y#chi`sE`&z&2?Gq z#;R_B9m$^#cZ;(~R=52IVSdWDU>$snwJ|bVaNswnvrq?Gvh2a$LfndruuhKPz}N9R zpM+Ltik$APRRDh`{~J!m^bzj8{~Kz~zR4BrjmO#;f&bztOq|<=cs?q$d$0(8lgHH) ziQC9uKn-Mk-e7%xd;TX9)kqZ0=jLW2YO(FW26)Tzh4Z_)|IwU{S-E}&_uyyL_Wh$k zaNxiB2rd{L_@kFr_#@>PQH!te4{rbW!9LpmvqI#{$EN$H(U-B z@YijNyH#5nGf>_JBXI&A$FsN#=amTdife6@q#~RX8SMQ+`I%C|f#3hNDeb1@9BSmR zQ0+vN3HJJ78?2@Me}{zTtYF#Tz^_bwtWN$isyw`$dw+MqmgIM%c1POsZf!KgjO15i zCHxDEVyX(kf&Y%UG0r9*t)e>-7o&E~VGR8J|4StFlJF|IiYnmuWV={?0;(fhu_k^r zt5$ZqVF@bK_b>~lsN$xmG!`e{4;6u3sKx#syJ6C*?EhRO##VKq+Kn3dO?-|K)!fmX zuDbj7yMzj1f*Qfz6)cZh<>_k%dke7zuE&sC!GRy+H)ALA*HF8rQf;>juHbg^Q|kDx zhZXC(17aM;;KFQF2$!N(@4u*%t6V+ziPjbOkza;dyshg8dsA=&7RSg2ZjOhc8uA(j z2mXtw9jJQaH*!aNHJ`)<3Oe91EZI2N+l${e3HJWMQ>eLJ*VIkX1>8$Mbu)J)|AVS9 zw7EMEnxfXgWK{VL{1a2Q2<9K8;o}nv;kA~o+)wtS+injqE*F~rGRQYh! zE|`v53zt!mO5Ms$S!UGz{cr&e!f!CNwKF3Ilh29?F$eM?;(L)U;Z;F>VARJN*aG$X z-HK}HFlr=cQ2Tdb8+V2uLLFFFQ02jGU3nPlfGUjYSX)#*9Z~O)-hn*(Zx{(RGy!$? zFTfC7f$Gp2)XQfJ>ZNf2^-{TndhS2eh`w4rVLR7AdQ3ujPSo|X_$@X>ZND}c`0xMv zl2E9|peme%YG4uSt+fpam3Ii$^E0T9UBi-i7d5Au+Pe|{h^nU}MnxZWB91_HU?HlW zwHWyG{~cCv0CnS^sQv%YjM~AyUelR{P!-ffb)+dOv~5sprK^<>L4|%SYJiilEzUrF zXLvue|Mimj?q_#k^hDkGE2`p6sET)*hfo#%iOKLhhT;>{b8$L46QQOu1*$`7F%9Oz z(pU>C;_Qy>e}(uS1q#(G)B_(aAFGpFbO}%$xsAI17&U@VsE#J>?4A!rZPzf=nyG@i zzcDJZKcl`YMq)V5_DQIM!>AkoL@kz^s1ChEb?}2-kKV;qoD4ORFwBiVqdK?3P zOU^P+VtVplaTBKR9qjEVgcmV_{OrEYlc?A67i@%?`?23~1lGc+{mJhq(U3%AOf|s$ zj;22<#0LfjduQ-2>b~FDE!nZppkQwuuEZNycd+~ARlXta1Ew`8*bPn0 zPN+pR2o=iVsQbpDI=B#naRaIYo6Ws=@iFj;zBPxD|iE=u_MjM53-Y#uE4=>SePWHTP#RBmRwkW)h$6LfBL{ zl5o@QFf=uVvP^>rGGx*H4%pJ7OeGMJ>{cI2-RwW&dlW{xmo8 z38=YVh-Gm%Dx^`TyND!5g+3FiBZV;tBdxqNvZ%cJs16K3)jtAt|8y*bb5R|-G@bpg zx%+;G+Xbmn59GzbB1An{0kv(2P-~zR>Hw;Pnu?yNiU(pT9EqynBx(S+QFD72)scsG{Vl4av1hvb zQ=;;@u@s^6BS~bXVAL!Z%B`poZo|BI5Y^)ks1C-S?Y2)CD%1rq0vlmLoM8E*n2-Di zR0JaCxCoX*)l(B`$M=3Fp_fHp)Lh;{J#Y_0@w4Sq&2^E}iJIGocKx%J zC!FuksSPn}mul+xsgkHb%P!afuHSjZPE~_nYBW!}&hHX&|c0_f22x`rY z!&W#SwP?Rt=*quE)td@+o`hmHtcbos)rUkIT#Lmp$s!lRI#`1I7}T~oiFz>lVmFd} zs5vf!&2Ru}N^YQz-rK0Dd5IeN7cVf*Gk#;b{H=gKs9s}b^R=AN^WBq zM*G!W&tVocBT-+wl~Ds(j9Q#q1G4`PlgL5AMGVDgYu(9~2~}PRGh=_8fy;3d7Fp*y z{0xVZ|8Bh-@dDIhT#oA4V;qTzHn{U;E-I2+F`D-OE)ojSK~xX_LY-K5P}?hHqZ{cD zs0y26O&p1O?yC8~e2v=1!JFLmlBjyCVlHff`uLoVzA89NLMPu%^Bp!IAAhrZumdXe zzB$^QYR*HAXoa~B)!rI#zqTyRXf5+y6bRUH_x3nPq3(~j*O?9#k$h&PE9dWjkkANP z+J$yzFLM}bB$F+_2sMIr=0Q|LS5O0aVn*HP8cdC&$mphU+B{xTzV94avVj9jP@AI=7%Yn&gn%t{GAJidYI8qB^<|6^YFlQ~Q6f6`Vlz z^pfRoqK?wXs1biK;~jPtWi$(-o~wkaxTfWsnXRq7quCD!bKfWo{P+JckGS6f$3<{y+1%`Of@mMm_2lY3!ry|2kBZ)CxMHLe?AAz$jG1 z(=9(2wYpcKLb(|gnZuU9hFSwptvvcM_XU&+RZmV-z4^^j$JqaBusQ{!u(@6MpZOMb zJ<4(SU?Nn*X)qe*F$<$QRtnXDDrRd`gM%zT-dt|(@hx%5e2#jn#XRBuR4g3j9Cp^Qtme(!F$--jpgtk)R~?6l(QD9As?&b z2+LnGZ=yzc4;87GX2@wbH3>0LA9mz=Eo_Phkmr0a-Jh-lIZ+MOK>f5@A2qkbQ6Zm$ zYG57eV{|tv)E`hCNO;E86NP03KKj3-g=h!p4Dkz3L9QJ>|TQP*#wz8ex;a1kkw>S%kci1SbpdWeC4|ML?G zeJ~{c+kGn4MvZVas>jDrp*w?$#62s2gI&pgwtQ#av3eKuLfy9pwYGMmeiM2fRo`p# z(?#~bLKW_c>i!*;KZc6XHPn6YEdSN6e|O96rtD@- zRK$BD_xs)|m+&^2+fYBd?Z$no5Y^!Cw_T5qqkdqyi29;=g!<|CgZb^hE)uECOgN6~ zxljYzW92t+3hjFjNT`8+ciayKV^JfWYpzG_j{T?*2j6ug{T3CegxCZ#qv{!D&O}9K zrR5Kzo&BHN6q=o=3a^;AP#t-I8tH2@)&rMMgSwvIEQK0jb;~zIJ=X>` z=L4;Ly}9dw?f+wT!{4ZmM0@BCj*O^~mP3u89_pkUfa>@fyT04Lj;eTpxe3*QLw5ZFYQ#4!{}@%#8&tW{NekZDfW1k1=^S$XLRMBGWjhj#nhQDy;G7F+2Q{1dr!pia*CuU-8aF!25_L81j08lW2d!#s`}(M424Pf$m5`Zw+; zpeCq4<@z1<8;=BU-CtU%hZV>deCNI=hT%`-FQe`+_TIJg%X{{}_VZE-G>2y~7QRLG zJmiDBF$pSU=}_glF(#I=>(x;mZGyV5J8BAsq3WM!)x{9jj_6PRA3SLv7k$*B{ ze6)s96{ka0SP-?!Yna{58K{tNN8P_4HK0pY{uxt{kM_wupBA+kOZgnY&Qi@-S)*ME~rzUq;mZEm7@swtO$t^Zqar`h~&-jE!4R9odiZ z@B%8N_fUU+_XbsAtS>Gi$xsoAuzXEaJsnVsxUZGZK%J25Eq@w`l<(aqp$b3Sg_vJm z2hyP`$cO4c4OBxd%wbl(9M$39%wtx54OQ=B)JWf3K7_rad^`;7{}fgbW=5dqun?-@ z>SlAh-o^6$Pz{W={7lr(ge%Prs5P@475cwWFQrSU`o9edasU2jS`v9FD2p1&0Mvt% zP&ckJ_t^CdScCEhs58A#a7f_ux+NAM-w(Cwx1bi?ZPfPsj2cj6NJwBRYND?YcO{|F zPCzxh!EQK)`to^zZ81|6*WeV?eZO1&9IAnjsECyKCM0msR6%{BwLq13K@D&qDk77= z331>5Gbzw^S!NfGqdN8%YObD`Z_S{nA%XoL3w2&3!ETrq8{rJpNMD*E(OfGJACfoHL7IL5+B0 zQdiMK^Nkt8zaFX%#6!Ikl3G41s^Q$I28*LcS`!taPUZyERIE+L{#W9#72HHU_zpFa zSjk;O-=XeHi>j~?s=~Uc`+A}p9$`*37n*C$-_0Ya0h~|H{#ON8DNraM*$uBzp$kso zt|vo%$7e!4I14p33sKK4MJ>j4=4C67@}0Xs4(h(dW@=Q2Gy5defqYg_2Gu}K%QrAv zo83_z8*KSsP|q(lw_tSg2T}E$LN$Ee@;6W&zl(a#e@LPd+v`1Q`;|%Qrl7Am9ye0H z5LID~RBkHjn_W@mV^JsG6muJDgxBo)L(4xyb?7s)i}?3nQilZoHcDpH+*U)4umh^% zAvg&~>pC4x5gHQs=Qi`Daf|de7T|h{v@Ty0^|3k@Tj74Jj+xViczbxhAGRi6C_@PU zudVFAB_zgDFgIgJ;L|BnSV-U(24zqqIEU)UKjwW*P5wVr2;*dO_oXt!%>tN<>!ncx z>TOQIz?4bt|1Bic&_UGd|I2Q;WBFH>kCxfJj+0_f?yHMA@HGC3UvQoBSwg%e{E}%v zxa)YD?5^HSsD=w!z9I&G{%=A;2T&KgFcvl9`8Wobp*ol|hpV6nDqk7(BUS^{{Tbj+szWhyx%<91GovcVhg!{Lth}0) zH#UDZ2cQnD@u-OWYVPn!1WrIyk8h$Hd~M~?bK4xE?#qO#poHbCU=H%Ft^60%2gy>) zpG9@_ChACkiflVCERWMKPeKj0M}=r0s)6C=6mtP;E&OWv{CVAdr7$z))v*%xv+|?n z1@pG~)cl0B%m4plK3CEAsKt~S71BahUfQgIicnM3h7y6x8)vG zeaBIeIgjZuIKQ4}|78p$__aH#f;^}PN?5)k&LCgU@=sAm=qFSMyaMh+BO2sO%`({@y7ui!9@{)3y6 z@u>Vl)X|=ykgK-@szc=pvHz8*X9aCgH}*ECS@{NYFRG(wP#wI2S`)WWYv3)aqcID+ z^C2lJUl?^?c~pm+qIT2Z!i-;wZZ-w_lKB;NuI6)Kn)C9gA3!SG^>e6-{y{Cq`=|FM#T!n{G&v!2A zK4^xbBDxLrk^8rKCm{Rpg%$8~abVxZF;km4%@U{))xdPv#`5D(zj9e@`Ms9^8U(pyqxJDx~XCq1=Vq4S!-Z{D7L%;IhsbsK~^#d`8sNWJ5h)2Gz0p zSPOew`Khw@{{M#pJ@CXXL@nojbCDdiU-RH$tb?jBWqEf!Cu-4EM0Kbks^cwC1M6fC zFvr^US*ZJ$m-pQRYbj6%en&NM4z;@Pna@xo{D68eUIlkODJo)VP~{m=9ms0e3tB!B zRc|%Rw?svxvu_0x&AF&KTZJ0gAymZ|?D{n;e~1exe{bcpD!K-in>);t=1tUMe1U2> zMkQCTpNWJT%z+uPB5LGaQ4#5n8qsuAM;4o_tb7A10)JTfK2*n#qDFiP_2&SOtUOa? zcg_?*>hry3Box}#SPTcCI`9YTo9+mz13^_>g>lR@sD|>Ou9re}usZ7bdZ>Z5Kn-Ld zszbln_0`Dw=kuFH9WHD~RT#IbdmuIHN2vm+cR~r&^;W0`d!i~FirQ{7P$52o>c9>B z86RLitW(VmXguoqBbY$@|2zpr;67>upHV%IQr&I0l&BDAKwZy_YB(pVqDZqEs)LPD z_x+6ONO!wF5H*mos19vFUm?FwVlRf(2nqcEcs)Q>(4?mGCsf59P!0AsM`KI!Gc5lB z^$v+v%Pq1TsDV^LJ=Yr5@$RVlM%H5gYk&Vjf!u+bv#Xd9-=ZRusNuEu zJyZi%Pz~NkjnJ#(8qANnUI7zgUCXzx!~R!~dQ;FA$D%5DZ8yfL>mE#tYB-1G^O=#T zj#smMSJZvJIRZ6+@#YfL_rwm%-~Im^KT@C`2G?_oC@yN-WJHCuCF;{`EULp-P$7JR zI+{PDetgeV-_3C&R7VD*Iyeed|7z58+fW_zkC0G>*X_bH)Qw&PXKYl+QlK8pj=I07 z<*TDAYL4niFVypkt$aP|{zIq^T|zC&o5)+!_a2ha1JN2f6Jaj$X;2T=GFzi6=xYu} zJvYjnj;eSus-wT6?%!qk19ttKm0!oe@BiLJ-h|92jQ&(~PW^V3Nq4s$$ zRK+t;-vJ9y4X!ZPp&Hm~9<}nTsE*#Y{8QBH`AswSzeW`HOb_nfVztB{5sLdK00Z|IW;0<#}7M|J6WY3UtKQ#?)9J73w}1Xc$%D z3>=9IQ6taP(wPIb3-Y11VI@?(gD@M;LLI$FEdSW@Df}PZNQ$AhPis^~Q;^SNZzZb2 z4_2Q2C-;^tg^JuTR7V%0BC-Kh&m}XYl`GGVItS`tAx7HU%Ka^EU8t|2enIdNb71av z&X%ap@2RLMxr}x29X7$L?Lz{8qj??HCZDi_vn{G)dr$-T6Vbaa8D=qNb*m<-4I8>}!rOXWRAFsQWis`R+hD`|q?}xPY3o z+kp#20`+zb?&LyU60?$Tg7t7L>d%Dkpeiob*>$XvSrb*>06So7)EYXE^Mm+4z^K~) z1G>6Diy4Oc;<<<#Vf=3Hfn;V{987suT!ZUSi?Km>_lH%tu?P7YJ=}9gQT3d~GI$x) zq0pW#QrXbgOQr}3g}yH;0?SZ0?lw=Dmr&dDE^1ZB?d9$(f||k#mT!joBKjG%Navfs zquTi!wOE6C+xLIw-mXXa%ra&jRLEMP9_);&cn+$gCs7@_i#m7`_Hp%OH1naJFM}FT zHM21;C*Q6Q`(GF0_jRU1RTPd2T~V{NU9W^`DX))BvA>mHL*4(-d}ifuQE$&E{apRY zun_qSsQa7yB(!SVn7vUQ7=BDX z-N#(`0Xc8@`yVz1KcPm{)zsAJ!9jL?l9kUxRkYOd+fYaAZd3>Uwen|{e~apPltFGW zra;}F4+HQ2h9p#B8`O>cP#u|!>cC7ZUuo_}HFO^J+%42dUzxE7yXzUv+^BkrqZVs5 z%MZjD+W!-jz?pVovAN0Ik6QI-QQIbDh}#X}sC*q%M+RbQoQ!I4BdVkOP}}e{>LmT2 zm47>w{jVF6lTZa2Q8yMuMW8n7dLy%~+0z_~ir6I70G6Yk+koo8Hq`S+Q1za->(8wG z?NIi=9*8o`RTK;LU>a0;1ge4pW@)nqs=}tI`}&zfP#qbK`u?Aa3i)xn{tk7Hd_~op zWjKpN4dx&2Dk_V*PzAMJ8k%jbyq7r))$nB0_xw!rp!p0HneRuqZ@*lqPrL%C4wk}Q zSj8uy8)J=hBT8cyK`pBKsD`?tD(GY7!%-cbj~c)lE8l7P^X45?q+X$>INm7tTsqUw zNg^E=ilA<2j_Oc%)PrMC9axT9Y->>sUqE&6HtN2QR-SaUyPh6PQXYYNzPpw8!YFl~x zfb744RxlYgqNS*c{y;r=*}R8ZR4-B6G0RvNk%p-IhN2prgzDfD)YPmte@AuTII5k0 zF!1}o_ayZ9bP|tq73D-#R0Kn@8V3G&4)x$z)Kn}*t>%-cir=Cdjy>MhlL(bhgX%~o zvj8e$AM&+<1>9eazaC)y-u3e;lD zhN`as>bYX54mH+GMGcOkKo3qwjdUfde7EIKphkKNGh*DyZlw88&s9Y|*8&xZ-WZD0 z%&n-e;J;D##hl{m5A{jt4-&GW=CmoQrz25k^#sdrKy_#vF2RGAZ!^_(qzCG`38?Kn z9W}>0Fcc4<>brxwFX}Y+oFAKnPP&Y!2J)b8EMfVUsDr1o+20(6`ud%QUGXXE-*#y+ zJ@8%c^_$@uI)a*-)2Q8Z1GR_~{}O1|_p*~v!-cUJmPb7>+RA5He!1m;!ya5efcle@ zf-{{JQS~%N{ZQKuH8n?3Bfe_aZ=;Uvr-3~C|GQc4#!RRR3ZY)3qTHN}bMxTz_Of$#q^B-C(a`~e$acAReI2T>LM zg&I-Hxz3!Z=OVE#Rzr1krIoKo)wj#?Z*ds;DD&K69*w>}g|?Asgx65NpD#Gy{U9;{ z)$^kmm^;+kNW37#Ylitz9hiwKUxw=75maQZpd$4@)DJdM7rH-FDvny5hZnN{^$UeF z6zCmr88w3II2iAs8fdjBB=FB@c0*l{x7an56xDDRvy$1-oP@o(z6sT#@FmVds9jWX ziSH_WN`ZRx1}mYr)a5Iibx{pBM|G%;*#q@17=nuAX4G!Ego?x+RKssk&qrJ4@^Mht zQ~4xRVT4^MY8R@Y7E5z;G-@g~qV7L}s_;CP!K+vg(=K-%?}xf?IO@mtDVE=edTuvr zYWzba)WcimbJPJ6w8Gt(!OV&ygZRCG<#(pdvWH z@{2Gd`Ms#cdLJ`mjP*UlTR$Oc({s<{yL_FIekA@mSx4j-U87G;Aw zh*F>;Q3X5TWYqO9s179B=$^}mfxrJ(gM^OW_NWoBK~2SZ)a&vpw!rtO4mR54uD3-^ zMQ3xgxfu1f+=;sXq4@?iu#nB}dXmlTe}%jh1-eiRm2ZveKrhP=L{&7woMWyux1!FG z{iu#awzzuZpspw0!v4>}s?J0~M+)j~b$=3i1ofMdc)z*GRK`l=$D`f} zSFj6)ZVL(gTdq^EH~Bc*L%e1<6165CpgI(7hx^NDDN)Z4!t`aNfHzwL2Qd8}x2PUqW%A*BUA_thNWh#JW()FNAt`j)$np&0#; zdoD9-wU;!1L><*5P`hRurl)=H90@h}4rgHKVfV7xh9RttT1TAqj=H}A)#zAA;Qwap zK5DV{JnkACfts2H*bL91rYO$|XGe1->b~1j`#;G^H%Apvzw;f8Iq)0~$Bgfek$YT8ED$IboznVD`wOe+h?)!-4FzH#>P%~7=`k)3d5l`aTv+V!zBo>?t3H+zi z+0MH~)CI`?nf=^`j_0kA7xHN z?XDS@*#8wsoS;BGPjcBUl3X~Gd`naaKcUWtuq$pc&cLqZcj9c!e${e_PU!y{t z?OI4+fMv|{xSaA9*Ifi+_%~d`f1?)R3tWjQZn}^jz#`wQAc%4)D$eiS$G9c zWA|IG;mF$|-VXAOP-`m5zwQKWgIcsbP$#TE+%Akm-8jp9WaUNfxX@NWJun+b;Ud)Q zHOpOBo(Dt77eX~q3}a$d%QryX-wxGIcTA}Lf0%?SzJiyBq8lySrQ0Mr>WXy9*1uv9K_)#qRF>ezSM( z|LpnZobh?znP;Av_inJeAP6rDD9;;t!IatCn5!CqQW&t@~K8CHuFa3=sUz#MWS0_Wi(6a2F_#qEhe8J7*hE zbZrAz$Vu0Nslg+lA9xFt6Mq9m*zJRP5+6|F85DDa1=yF+eNV+w(|EL12yV=4-nX;6C;#ewYu-OJEvwQvNirOuk<{{=*>zv6u_~1La;j_qX|i;xM>} zeV#vNe^iXcPXcnXg060kCyw5V=Ro=TpEZt~K7;{^@{K2xHF~#<<6NAlq*t5_r*ZD^VU@C3d)t9sC(N27IG8p1?5h65|oF{E8WL; zH}|=o=^}_^a_mNz8mwQ1U525%2@$WC5Ujv8n=kfFr=w;1t~#@Gx(h@`}wsdDQgt zaI-ls={^F|@S+m#fYRs-C|BY)C|AhvH1CAopgaX<2c@on?#qHD*jESTDSbRB^*ce~ z?NN*bMgOuVkAGR*Bp{PNP<#i$NnKE$U>bt*MAA;Nzv6hsxgbyV zMr(>rfMV6-n;6RLa(6^mv$rj06Gv`L%mp09{sf+h>wAhj#ZpM)Azu?UwFuTj;I1Ox zAugX8$b@Q(IIg!G8IysZpz#H66mBOV&xQl=j%JO`C`?ek`ib%S(D*>X85#u8_&)pL z5WBLjk7!r+ml&=K`-X73u@@Vo4P{-9{6KQ@{2#)4FpWFGZ^ybfYd5&^)iOPOU<+ z+aRo`uqFH);420@K|Cw#VfGo}KG}Jt>agNO+EC^A-G)T!sygr09Tsel4)?ZgrB4we zwa~e2CX6u*y$(&WQzjTA+3#i@AvYIRK-F4MFLs1ZV#SE_BHSpXUD6OsM$JR?bKwc# z&xE_&!RC(FjKDlC?nTiEuGDIpd9i+oSYPt5IZ8(2wJ1ug4W+&nf*p0xk8rN)O}d8l z0@Z8|hmRYKKJdaAWIo=RSU2*|dEq60)s+`A<~U^$mq=OYs5l z2b1q44QMo*TpoOz(_o^Oh*(iHcIlN$!M-5A1C3=;D<)s~#GXSOWiE{kB>CXP@l*3Y zTC6Ff8pR1|I)G;Uz8qscbTva+zrK0AhNC z#hwv7jeyu@3cbJ#;CJ%xiF?BRL+pr(wzg;3>0M_KyG3NrlC4NKleUV`@vEVF3C}L0 z5o-tUD!la6Z3N?T1Tp!a$rbTX`-dCewvzNbq;us_Mrr2V&3Y}Ehb~36L;nA}`l;X? zA|H=VbyY(;#KQkh?k2gzXe_4NQKq=e+LKrkxK-g?m*4r>g}@7nF6d!v(B!i{aF?$w zpSDdznOG9J0Orz2=F~1R`I59d0>7N*1yV7V3m2m=-kSYj#<=Wsgt~MtLGC76k#Oy* z`IcCoxZG{hLlB#faA`aZ{*UBxP;3TGndeERL z`9^p@8drp$8PVNv#nw`nme@4#KZ7?@dlXTvzTFTQMq(_*sUf$7Fj+~hb;`A>kX29N z4X*&Xg^2KZgpmzDL`@5H!c_PH=nKyek7d{^^m$^>7vU4~i1W|Y8|Wn!iOJN#OHkpD z$|)+wvR?*g1NruJs!gm7G0Rer+e~gA`~k#0sO8si8DWlR;=*LI5y=K-gn13Lp|FJV zqOi(xj+RtaW#36}{g%X|h;PHg@d|nktd3b(WI>}ZzK8WQ{5CaWKU723UhdqbLMcv9 zauHsUaN0&2J5 zu^cQdUJmYK;wj*G%U$XoV!bGGw!`d8Ly*_AV&xIeipVmGuOf0qhlwF~R|m<9sAb2= zcYr0gBf#1LDm$O_i0X|zzui@*x_abjY*xjI+CcFK1I^`A`)eGlFo z_?2)z!!g#tU&8t(xCvf0^k3oW;Qm3Q$u<5d!KN4!-G;c6FiJ;^>F+YKrZHJ-p6OVv|UuEG!-K;<1>%l;_D zp2Wl&vo3?0SR2$vQ6EBmD*QFM#ptw0I}GfqHS5^_VG=h`etH)R=C>sAg@vLA;B1nX zRf6=LV$0f*&w!8%;xQEeBFA^@_$5X>4}-4c3)?^J^Ugk!onhOJ%YP{*iLkg!)?HX6WPDf9-WoHl>7qfTZ8v> zjuq&?r0-p7+7tVMr=V_>UWF&r&ciPfTTShJd>$@8ja13J-ZtYr8~JA5F^ZFcrAQpm z!(UfqE~6r%i4kjqKr$V!z20cY$knD+Yzux<>*NhxfO7pAe1r}zJh4ym5Kl|-W{Qs^ zzCy_nibC3om#5JMIGH%9m?!&E>}!HsiT#G3ga%^$Y2J@G-z{+%AJrKZ@b~E7WB35p z3#eI4wvD~PK~Gy-GF{0eB-4saCX^?mXk*;$th0_9a8 zb{w4%y00vK*rx`?g6LD0PZ}KG;mc2;gI>3?kQP!Dmw_tbIUID}E|TBH`Z;;A5)3w! zroQa+!SkYKH8_PsM3C>R13f1Gon}XgUu38Ycs^=NvM=N6c$(v70s+e&Ll#@41Ic;^ zMNf6|a&Y(2GzQE7XF2>rPTU}PNy+iCsl%qgl^>|Qu05W!K0x!CGNAT%yzT!4F|S^( zYv4}y`6;?*>KK_d7t4Mt>&+UEMQlIo0W_4q+$f)C%f}Rb*?-odg?f-&9AZsmgH1-; z(f<{s{7ln_z+A+lIn5>3XYrgS*SNttmx`4}NUT0rWtyJyGy~<;cwDYXu&#yIjQx1> zZ^1y^vH*8JUOC3@CBhFO%(1^Y>}%UZ`z&}dq;t^1*+#IRh=hFdJ(U)_;FQ4+GxjX@ z>&S1!!-$j_x&F}d~CN}<6=N)Ed#|M{;WjmF?& zn>k5w2&pLej9@8mIaCT^1Y7ejJ;oHTO47V3j4C&BA1!dZXv%D{7Ov(vHa9L#lxvT zNNgCj@u)k+fg*^FBDV|P19I{4l?*wV+!k^f6L9`J5ac7&UIc#N&2`F;iZbbW;$qz? z+`#~1A4EvwW`z3&ji)o*WNNp8f2BFRiL6&rx50`3lXwq4{4`cjJ&VGx;06jZtJ-u# z&aviOKgNCHV(%#udyCLCu1Ze^YKV9{_BlYY5csv=Z_}EE8ehlh%i;UT7X`bawaJFS zKLT%P#_xvx&m2E+z^=MZT$y}fZN6Bs9w*u(qIyMgpd-fbr2fxFkT1e+zUIa-bbaNw zBj$KYx=K*2i;{e3P=khI>u`65@Ybf@h#zL%SA;oXLah~U1L7O;D%#+<4xb!dKOL$Y zvCJI$Ay_>j{f8nFg_tXW-mIS@lmvpq9!+S&d0P4K?ZUlj7t*IWCX?txVes;v`55HTi{s5)y9(aW(?Ib)ag*v%|Z}{wv(0I#i_7 zP=4f6!&y!3Q}D44lbm=yuGW6MmR=zvJtP-IEo-Pkeh^mCpr<`H(mODc5pJ-%i=5bg zq$=TJdx)I|qiBM{cQ1qfLdC9)^D@LWsaBQs^o>jG8(s423>{g^ z?785aW^s?&5PS%}2F@PzHnGkPN30*d23}?O=j8V~6(;ZkQdI&e5g(7B*gt%UHtE5T z4alW)8df;N;J&7|2MtbUKK*t_y^DG-?5% zDan>3y(yf6;C^B!*~cOvR)U7fS)V3%M29)AO(fp}ok%#h^bm__l8&aysM$b%1^QwK zi91XlTA^%ml8B4o3ksYtvu+~0b-m+Wi8iP1p@v;M7(rB-Y(^_Eqp zwk>&nce3NRuu9xkmwz%rdXHE^PI7}}XHG0u7UB3b|4QK=3I}TAp6o5V52p{lLj#@3 zU83fw9^w}JQRv=+lN6jmuRmJP^P0{0MqynV27tRrl+x3R-YUpZKk5Z?cdvUutjAOa1`bG{<2aPiU-+`BXujO7duLBj(mP%*=TE z8d~;MuS#hI{K!2-&_iSK7}{p_XD6gh z_(DVrGtha*rQy8`1Jp4!jVcuKE2RxT@D4T2R9Mo(h#g>GLt`D#If+hP;`{K{th1o? zisAq2m8ik~x;(YN&_Drg`h&~T5O=32J_Vma%l5-9OOq7%Q)x=VgSy2G)EcgQYw)sO zwK1%3Q5&WDqR|T8Me_Nm9Z8QjF5Lcc2sR*jkHBEuvip!WkP}gjqGNk<|3IpBpT#E{z)vy5;28{P5IxL7U*?gb8DUz)o8?D z1==LWN8w+{uawrB7fycobHPh=tWT!{aI#VNT)L_q2Ak8PrgpXBG1T66H#!(kRInM? zp6olCyvN(n)UuVjuH_UPi-0FJd1-iz_*<|D9?dZRs`(Ml7_Qq^d)f;=f#vk3J;gYd zRfS>MB-V|n&cLYq?5!_&+m66Y%`An{FM)R@Yni83rge%&dF6Y3Rl)KFWH zn%8U=X-a{WI#v$RAwoNAVk)&PJ#i-X0fwOK}K((CMaoMd2TW|G^ngT@bt?Q zBWIfnPwX8zv8vz(J=jBg?<@Ycp1PB4C9;)J-%Y1U?E913#n|U{Dt}`6m>?8h4mdgS zT=;VBx({A;?Ie0Vs6Xv=f{AdWsjmn>xe%;-x~%5lqjcO#T*Hd2n<8)&(S8(+R^dG0 z8shVb-C?+~aEDXd7{5ZZvc$r5;J7qg4_7QVu{JdC!rFuN4m_v)(Cb75z7w1Qime5+ zLcC6KLyF_+37(U?K>RTALCW<4D`-A3@pQP@5aK-;Bt7-h74Gv zCLe7sjkY>w0GLksk_v#ojSgj*;3M&+I>{U~2H~yfvqz6r5WO1I7m!!A83^`cvk;N2 z6o!IH7+^1g2gnsiRBR^rllVH~VpUjAN9Z@}RCrydVLDS6R|gR8dYb#_{-+MHmU>>s z$v>uLwufBzwcR89l6jx&H5mz>qxB)m`C~yw5%wEZ>a;Zqm=|w{bast(1xv8^;b`%- zWo_1ClhOM?pF)f^QTq&Ie1G`>Z!XPqnLHy2#Iw5Y388^wW~SBwE|EKhXl_JS(4-QA zOYxbw%pvst_L!%GZm+^TtC{J+|MR#a) zmwj#Ghwz=a3*3#=wbB7+vv-3x27Y(yPBHLfVwQE#bxOrl)D@7cWdCx*(-tBtCtHg` zD2!BeaJE^*z7XrB@g+<(P8BaQ)dSV3LwpYL-|WY+4k5RUiLw$q&H4~Au~+ydSI5uU zaic>XNMab*Cn=4ZFoaka6-`ak_v9ZS(uBNNE%poTM`OGL>L}|o(Wg4nGgz~^APK-# z#Cq6&#Q56YY3)xkE2wWxpWI}(q0oiB*a?OdTTLt-ylvFf01L5S&OwTR`G`$tRxh~G zXbdDjh#B39S+*X%*=&jsFJ@}nj4XQf!VpPM&@=J$vPA^&}k!S(3|33;76+hjHgXj zA$p!+>%p&0JSF>_@Z*`MGFr*cVK_dvI|0kG&8*9yz#n8YR>NFF#R%=#j939x&&Zga z$oC_6h4o#~kLljAZVc}NIxDGNf{Wc}O3PBPD5>!e^0OFyDZWc_YGsUI)MJQy(QF@r z*>KAqAhaBA8gfP93_)lB>kh1E;<@!O!--#GpA7yaV*MDZJ9YhuO<*ndnfM$xZ@!{y zkp$C`TxFke+uOEVqk}06rbSc6dOsSQ9Pust zN^k=8ICap=Ph9LHoQ!DLRO1!@O~Y8r<^<#$H1BF%126(n56BORS45;60(Dr6tzwvS z#OhI-3GRK?1+~c}_WSX+#P*V}s5K#A76up>s<;e4jY-kv69>3J?*C!l%M=#V4S47C#R& zpLUs|BYaWi+!}8|T~=Z(HSbPcMe4-(A4U%2|KB+55&w2)%0{}kHDGa$f*2i7SVIsi zrTa$Y+*Irl=+AMw=)l5VAbIvTx#%?{;ABUL4PeMpG@P$P&(zx>4E@XU8ax97$Tb~- z_(Gj(DWroG@dp}>DmutnI2(vrwwqjH6>Y2o6(M$prqdZJoW^hAH(=da^Q+*OgR>pZ zD)JlU$05ekbb?ML;<+dos+YDmSe$|>#Fin_Tf48MCcX~iiC9U5qlvjW4S13ov4_-K zb^wiX@S4D@fuE5NL95feEQ~({GUy;V^kiot7bI2)U(PV!oW#!1paprcqwxE%{wo91 zVjw~z$<0M%KEm#JF^2j` zJUgOSRKthZN*b((R|SkiJSW^f@ba>sOnwvl!|Zb<;J-xmgm_fCV$qQAfP=w{#G8W? z5HE?>#cNZv6OoRr#iCh9BPcc-?jT*ivY&t8YkNZEJ((~u{J<2xPUuC@rwLB;t zgp-CNTQ*!(to>ke?WA7gKj=D1*U!-te&p@IN#aBqYrm!AkKGMd;S*Or-O{YQ;ILbbPAqrA+ z6pdH-2?iRjjoOp%&pKS|ld@0GKAY-z(DR0QPc-MTlZb(Q5yARkAcTIL)UqhVgW)Vd zq&I^N(%eE7w0MG}hz(&lu?pz*!sDPhkSmk{9al8U6Z^0K84}CzN4N|A8-ZE)5}Lf# z6I@4d88zcTFN(9nt4{tC!_+`WyypQgEG#aP>yJ@T_nftU*7 zb_&-a_E#rwLhP3|w~AcJrNrA(d=J4R)c8{q3-<)^Wn49}zFOxiIo0!rpBxuUuK8N> zt;#S00}@`3bClN`JMa#E%gdTdo*Jy&t+k@;cD6L3$=lIg2)XI#QWKBnkKoh-+p_m|%0(a^ik=I#w`C|eQ^DcH=b#fx-5Ywv zm!HfK^TnUwiAh*?N>4eT;ylDXIjJ@7L1KTE7|nVyE_Msv5LwftD)qsvt5P?cVWu&F z5BYF%VueKC-u|hl?FOtcSYu%&BiaRwV$}S^hT}2#L|m*GoLpZWN4T|C@qF z#6IW%&-BKgk3dW1J|*{!0}OS@@+v^NzjS|=p##vF1!p+xF*-o?_7Lvk-I#P5V#ic) zC$XYuv<_6oc&k^kFWct4D}9vWg1jgjn~Aw;4R`=uSeU$e#W)BO*9ey z6}A`bbgGh+vBuGH56TBvR|a?MHS9?DAh>^Ybeb6>$+;7INbIEqux?D&0__UKKe5k_ z_HA&-^XHk`g$4w 1 || new_model.objects.front()->volumes.size() > 1) { - MessageDialog dlg(q, _devL("Unable to replace with more than one volume"), _devL("Error during replace"), wxOK | wxOK_DEFAULT | wxICON_WARNING); + MessageDialog dlg(q, _L("Unable to replace with more than one volume"), _L("Error during replace"), wxOK | wxOK_DEFAULT | wxICON_WARNING); dlg.ShowModal(); return false; } @@ -5053,7 +5053,7 @@ void Plater::priv::reload_from_disk() } } else { - wxString message = _devL("Do you want to replace it") + " ?"; + wxString message = _L("Do you want to replace it") + " ?"; MessageDialog dlg(q, message, wxMessageBoxCaptionStr, wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION); if (dlg.ShowModal() == wxID_YES) #if ENABLE_RELOAD_FROM_DISK_REWORK From 9499ce1efa58fd6628a483d2aa1414f572b8eeb0 Mon Sep 17 00:00:00 2001 From: gerrit Date: Wed, 27 Sep 2023 04:36:57 +0800 Subject: [PATCH 25/92] ci: update build version to 01.07.07.81 Change-Id: I495a275a63cc1ccf121e670a94c5cf76c870777f --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index b9a598eddc..9beda7c89f 100644 --- a/version.inc +++ b/version.inc @@ -12,4 +12,4 @@ set(BBL_INTERNAL_TESTING "1") endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.07.07.80") +set(SLIC3R_VERSION "01.07.07.81") From 907ffb95eb937f1b9d0e5bff9fabd1e3efbe06eb Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Tue, 26 Sep 2023 21:18:19 +0800 Subject: [PATCH 26/92] ENH: add link Jira: XXXX Change-Id: Icd1417f10253d804a3098822fa377be2b1d42a17 --- src/slic3r/GUI/Tab.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 6215990b26..0ea5e3291d 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -2040,7 +2040,7 @@ void TabPrint::build() optgroup = page->new_optgroup(L("Special mode"), L"param_special"); optgroup->append_single_option_line("slicing_mode"); - optgroup->append_single_option_line("print_sequence"); + optgroup->append_single_option_line("print_sequence", "sequent-print"); optgroup->append_single_option_line("spiral_mode", "spiral-vase"); optgroup->append_single_option_line("timelapse_type", "Timelapse"); From 7ada04ff1a7778ce9bd4ad841af3f0779b0ac350 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Tue, 26 Sep 2023 19:30:17 +0800 Subject: [PATCH 27/92] FIX: Add protection for cali (for crash) Jira: 4434 Change-Id: I2b82c68b81dd0c65fe2188ad6824f5f2dda4c8a6 --- src/slic3r/GUI/CalibrationWizardPresetPage.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp index 8ae078b6b9..8cc156c849 100644 --- a/src/slic3r/GUI/CalibrationWizardPresetPage.cpp +++ b/src/slic3r/GUI/CalibrationWizardPresetPage.cpp @@ -1139,6 +1139,9 @@ void CalibrationPresetPage::update_combobox_filaments(MachineObject* obj) { if (!obj) return; + if (!obj->is_info_ready()) + return; + //step 1: update combobox filament list float nozzle_value = get_nozzle_value(); obj->cali_selected_nozzle_dia = nozzle_value; From e8257103b7f2aac4cfce842089e35a2f1edbdd1e Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Tue, 26 Sep 2023 22:24:57 +0800 Subject: [PATCH 28/92] FIX: CLI: fix the wipe tower depth not correct issue estimate the wipe tower depth using more logic JIRA: MAK-XXXX Change-Id: Ieb66ebb7e75b20e61b7c0cb8e60496287434d31b --- src/BambuStudio.cpp | 35 +++++++++++++++++++++++++++-------- src/slic3r/GUI/GLCanvas3D.cpp | 6 ++++-- src/slic3r/GUI/PartPlate.cpp | 19 ++++++++++++------- src/slic3r/GUI/PartPlate.hpp | 2 +- 4 files changed, 44 insertions(+), 18 deletions(-) diff --git a/src/BambuStudio.cpp b/src/BambuStudio.cpp index 354968c937..55905ef73b 100644 --- a/src/BambuStudio.cpp +++ b/src/BambuStudio.cpp @@ -2604,20 +2604,39 @@ int CLI::run(int argc, char **argv) if (layer_height_opt) layer_height = layer_height_opt->getFloat(); - float depth = v * (filaments_cnt - 1) / (layer_height * w); - - BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: x=%1%, y=%2%, width=%3%, depth=%4%, angle=%5%, prime_volume=%6%, filaments_cnt=%7%, layer_height=%8%") - %x %y %w %depth %a %v %filaments_cnt %layer_height; + //float depth = v * (filaments_cnt - 1) / (layer_height * w); + Vec3d wipe_tower_size = cur_plate->estimate_wipe_tower_size(m_print_config, w, v, filaments_cnt); Vec3d plate_origin = cur_plate->get_origin(); + int plate_width, plate_depth, plate_height; + partplate_list.get_plate_size(plate_width, plate_depth, plate_height); + float depth = wipe_tower_size(1); + float margin = 15.f, wp_brim_width = 0.f; + ConfigOption *wipe_tower_brim_width_opt = m_print_config.option("prime_tower_brim_width"); + if (wipe_tower_brim_width_opt ) { + wp_brim_width = wipe_tower_brim_width_opt->getFloat(); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: wp_brim_width %1%")%wp_brim_width; + } + + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: x=%1%, y=%2%, width=%3%, depth=%4%, angle=%5%, prime_volume=%6%, filaments_cnt=%7%, layer_height=%8%, plate_width=%9%, plate_depth=%10%") + %x %y %w %depth %a %v %filaments_cnt %layer_height %plate_width %plate_depth; + if ((y + depth + margin + wp_brim_width) > (float)plate_depth) { + y = (float)plate_depth - depth - margin - wp_brim_width; + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: exceeds the border, change y to %1%, plate_depth=%2%")%y %plate_depth; + } + + if ((x + w + margin + wp_brim_width) > (float)plate_width) { + x = (float)plate_width - w - margin - wp_brim_width; + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: exceeds the border, change x to %1%, plate_width=%2%")%y %plate_width; + } ArrangePolygon wipe_tower_ap; Polygon ap({ - {scaled(x), scaled(y)}, - {scaled(x + w), scaled(y)}, - {scaled(x + w), scaled(y + depth)}, - {scaled(x), scaled(y + depth)} + {scaled(x - wp_brim_width), scaled(y - wp_brim_width)}, + {scaled(x + w + wp_brim_width), scaled(y - wp_brim_width)}, + {scaled(x + w + wp_brim_width), scaled(y + depth + wp_brim_width)}, + {scaled(x - wp_brim_width), scaled(y + depth + wp_brim_width)} }); wipe_tower_ap.bed_idx = 0; wipe_tower_ap.setter = NULL; // do not move wipe tower diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 87276a05db..ccffb3c08b 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1748,7 +1748,8 @@ Points GLCanvas3D::estimate_wipe_tower_points(int plate_index, bool global) cons if (plate_index >= plate_count) { plate_index = 0; } float w = dynamic_cast(m_config->option("prime_tower_width"))->value; float v = dynamic_cast(m_config->option("prime_volume"))->value; - Vec3d wipe_tower_size = ppl.get_plate(plate_index)->estimate_wipe_tower_size(w, v); + const DynamicPrintConfig &print_cfg = wxGetApp().preset_bundle->prints.get_edited_preset().config; + Vec3d wipe_tower_size = ppl.get_plate(plate_index)->estimate_wipe_tower_size(print_cfg, w, v); if (wipe_tower_size(1) == 0) { // when depth is unavailable (no items on this plate), we have to estimate the depth using the extruder number of all plates @@ -2630,7 +2631,8 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re const Print* print = m_process->fff_print(); float brim_width = print->wipe_tower_data(filaments_count).brim_width; - Vec3d wipe_tower_size = ppl.get_plate(plate_id)->estimate_wipe_tower_size(w, v); + const DynamicPrintConfig &print_cfg = wxGetApp().preset_bundle->prints.get_edited_preset().config; + Vec3d wipe_tower_size = ppl.get_plate(plate_id)->estimate_wipe_tower_size(print_cfg, w, v); const float margin = 15.f; BoundingBoxf3 plate_bbox = wxGetApp().plater()->get_partplate_list().get_plate(plate_id)->get_bounding_box(); diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index 18d8a986e1..025a759707 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -1590,21 +1590,26 @@ std::vector PartPlate::get_used_extruders() return used_extruders; } -Vec3d PartPlate::estimate_wipe_tower_size(const double w, const double wipe_volume) const +Vec3d PartPlate::estimate_wipe_tower_size(const DynamicPrintConfig & config, const double w, const double wipe_volume, int plate_extruder_size) const { Vec3d wipe_tower_size; - std::vector plate_extruders = get_extruders(true); + double layer_height = 0.08f; // hard code layer height double max_height = 0.f; wipe_tower_size.setZero(); wipe_tower_size(0) = w; - ConfigOption* layer_height_opt = wxGetApp().preset_bundle->prints.get_edited_preset().config.option("layer_height"); + const ConfigOption* layer_height_opt = config.option("layer_height"); if (layer_height_opt) layer_height = layer_height_opt->getFloat(); // empty plate - if (plate_extruders.empty()) + if (plate_extruder_size == 0) + { + std::vector plate_extruders = get_extruders(true); + plate_extruder_size = plate_extruders.size(); + } + if (plate_extruder_size == 0) return wipe_tower_size; for (int obj_idx = 0; obj_idx < m_model->objects.size(); obj_idx++) { @@ -1616,11 +1621,11 @@ Vec3d PartPlate::estimate_wipe_tower_size(const double w, const double wipe_volu } wipe_tower_size(2) = max_height; - const DynamicPrintConfig &dconfig = wxGetApp().preset_bundle->prints.get_edited_preset().config; - auto timelapse_type = dconfig.option>("timelapse_type"); + //const DynamicPrintConfig &dconfig = wxGetApp().preset_bundle->prints.get_edited_preset().config; + auto timelapse_type = config.option>("timelapse_type"); bool timelapse_enabled = timelapse_type ? (timelapse_type->value == TimelapseType::tlSmooth) : false; - double depth = wipe_volume * (plate_extruders.size() - 1) / (layer_height * w); + double depth = wipe_volume * (plate_extruder_size - 1) / (layer_height * w); if (timelapse_enabled || depth > EPSILON) { float min_wipe_tower_depth = 0.f; auto iter = WipeTower::min_depth_per_height.begin(); diff --git a/src/slic3r/GUI/PartPlate.hpp b/src/slic3r/GUI/PartPlate.hpp index d6a36ef63e..c6e8698c09 100644 --- a/src/slic3r/GUI/PartPlate.hpp +++ b/src/slic3r/GUI/PartPlate.hpp @@ -289,7 +289,7 @@ public: ModelInstance* get_instance(int obj_id, int instance_id); Vec3d get_origin() { return m_origin; } - Vec3d estimate_wipe_tower_size(const double w, const double wipe_volume) const; + Vec3d estimate_wipe_tower_size(const DynamicPrintConfig & config, const double w, const double wipe_volume, int plate_extruder_size = 0) const; std::vector get_extruders(bool conside_custom_gcode = false) const; std::vector get_extruders_under_cli(bool conside_custom_gcode, DynamicPrintConfig& full_config) const; std::vector get_extruders_without_support(bool conside_custom_gcode = false) const; From 537e0ae31ced2b5335fcac44069f614d55921a17 Mon Sep 17 00:00:00 2001 From: tao wang Date: Thu, 21 Sep 2023 10:27:10 +0800 Subject: [PATCH 29/92] ENH:removed tips for flow calibration of N1 jira:[for a1 mini] Change-Id: Ibf069524964dfeb861db277d58efd8eaad079355 --- src/slic3r/GUI/SelectMachine.cpp | 31 ++++++++++++++++++++----------- src/slic3r/GUI/SelectMachine.hpp | 2 +- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 04be45162d..0070f17a6d 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -3442,18 +3442,17 @@ wxImage *SelectMachineDialog::LoadImageFromBlob(const unsigned char *data, int s return NULL; } -void SelectMachineDialog::set_flow_calibration_state(bool state) +void SelectMachineDialog::set_flow_calibration_state(bool state, bool show_tips) { if (!state) { m_checkbox_list["flow_cali"]->SetValue(state); auto tool_tip = _L("Caution to use! Flow calibration on Textured PEI Plate may fail due to the scattered surface."); m_checkbox_list["flow_cali"]->SetToolTip(tool_tip); m_checkbox_list["flow_cali"]->Enable(); - //m_checkbox_state_list["flow_cali"] = state; for (auto win : select_flow->GetWindowChildren()) { win->SetToolTip(tool_tip); } - select_flow->SetToolTip(tool_tip); + //select_flow->SetToolTip(tool_tip); } else { @@ -3466,11 +3465,16 @@ void SelectMachineDialog::set_flow_calibration_state(bool state) } m_checkbox_list["flow_cali"]->Enable(); - //m_checkbox_state_list["flow_cali"] = state; for (auto win : select_flow->GetWindowChildren()) { win->SetToolTip( _L("Automatic flow calibration using Micro Lidar")); } } + + if (!show_tips) { + for (auto win : select_flow->GetWindowChildren()) { + win->SetToolTip(wxEmptyString); + } + } } void SelectMachineDialog::set_default() @@ -3633,6 +3637,10 @@ void SelectMachineDialog::set_default_normal() m_materialList.clear(); m_filaments.clear(); + DeviceManager* dev_manager = Slic3r::GUI::wxGetApp().getDeviceManager(); + if (!dev_manager) return; + MachineObject* obj_ = dev_manager->get_selected_machine(); + for (auto i = 0; i < extruders.size(); i++) { auto extruder = extruders[i] - 1; auto colour = wxGetApp().preset_bundle->project_config.opt_string("filament_colour", (unsigned int) extruder); @@ -3647,7 +3655,7 @@ void SelectMachineDialog::set_default_normal() m_sizer_material->Add(item, 0, wxALL, FromDIP(4)); item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent& e) {}); - item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder](wxMouseEvent& e) { + item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder, obj_](wxMouseEvent& e) { MaterialHash::iterator iter = m_materialList.begin(); while (iter != m_materialList.end()) { int id = iter->first; @@ -3664,10 +3672,7 @@ void SelectMachineDialog::set_default_normal() auto mouse_pos = ClientToScreen(e.GetPosition()); wxPoint rect = item->ClientToScreen(wxPoint(0, 0)); // update ams data - DeviceManager* dev_manager = Slic3r::GUI::wxGetApp().getDeviceManager(); - if (!dev_manager) return; - MachineObject* obj_ = dev_manager->get_selected_machine(); - + if (obj_ && obj_->is_support_ams_mapping()) { if (m_mapping_popup.IsShown()) return; wxPoint pos = item->ClientToScreen(wxPoint(0, 0)); @@ -3720,11 +3725,15 @@ void SelectMachineDialog::set_default_normal() //disable pei bed auto bed_type = m_plater->get_partplate_list().get_curr_plate()->get_bed_type(true); + auto show_cali_tips = true; + + if (obj_ && obj_->printer_type == "N1") { show_cali_tips = false; } + if (bed_type == BedType::btPTE) { - set_flow_calibration_state(false); + set_flow_calibration_state(false, show_cali_tips); } else { - set_flow_calibration_state(true); + set_flow_calibration_state(true, show_cali_tips); } wxSize screenSize = wxGetDisplaySize(); diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index 0b85eab444..9719891a14 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -442,7 +442,7 @@ public: void update_priner_status_msg(wxString msg, bool is_warning = false); void update_print_status_msg(wxString msg, bool is_warning = false, bool is_printer = true); void update_print_error_info(int code, std::string msg, std::string extra); - void set_flow_calibration_state(bool state); + void set_flow_calibration_state(bool state, bool show_tips = true); bool is_show_timelapse(); bool has_timelapse_warning(); void update_timelapse_enable_status(); From faf2a85311505fce74237ec97d183b1bbeb2b462 Mon Sep 17 00:00:00 2001 From: tao wang Date: Wed, 27 Sep 2023 12:46:02 +0800 Subject: [PATCH 30/92] ENH:add check for flow cali Change-Id: Ic3c808b16a1a07e459323604f5db175e26dc41e1 --- src/slic3r/GUI/SelectMachine.cpp | 29 ++++++++++++++++++----------- src/slic3r/GUI/SelectMachine.hpp | 1 + 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 0070f17a6d..ad9a3e3f01 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -3046,6 +3046,8 @@ void SelectMachineDialog::on_selection_changed(wxCommandEvent &event) //reset print status + update_flow_cali_check(obj); + show_status(PrintDialogStatus::PrintStatusInit); reset_ams_material(); @@ -3053,6 +3055,21 @@ void SelectMachineDialog::on_selection_changed(wxCommandEvent &event) update_show_status(); } +void SelectMachineDialog::update_flow_cali_check(MachineObject* obj) +{ + auto bed_type = m_plater->get_partplate_list().get_curr_plate()->get_bed_type(true); + auto show_cali_tips = true; + + if (obj && obj->printer_type == "N1") { show_cali_tips = false; } + + if (bed_type == BedType::btPTE) { + set_flow_calibration_state(false, show_cali_tips); + } + else { + set_flow_calibration_state(true, show_cali_tips); + } +} + void SelectMachineDialog::update_ams_check(MachineObject* obj) { if (obj && obj->is_function_supported(FUNC_USE_AMS) @@ -3724,17 +3741,7 @@ void SelectMachineDialog::set_default_normal() m_scrollable_view->SetMaxSize(m_scrollable_region->GetSize()); //disable pei bed - auto bed_type = m_plater->get_partplate_list().get_curr_plate()->get_bed_type(true); - auto show_cali_tips = true; - - if (obj_ && obj_->printer_type == "N1") { show_cali_tips = false; } - - if (bed_type == BedType::btPTE) { - set_flow_calibration_state(false, show_cali_tips); - } - else { - set_flow_calibration_state(true, show_cali_tips); - } + update_flow_cali_check(obj_); wxSize screenSize = wxGetDisplaySize(); auto dialogSize = this->GetSize(); diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index 9719891a14..e57ce40743 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -432,6 +432,7 @@ public: void update_page_turn_state(bool show); void on_timer(wxTimerEvent& event); void on_selection_changed(wxCommandEvent& event); + void update_flow_cali_check(MachineObject* obj); void Enable_Refresh_Button(bool en); void Enable_Send_Button(bool en); void on_dpi_changed(const wxRect& suggested_rect) override; From dc0193076a9856f1555fc6d77704845099cf8eab Mon Sep 17 00:00:00 2001 From: "zorro.zhang" Date: Wed, 27 Sep 2023 14:24:59 +0800 Subject: [PATCH 31/92] FIX: fix the model name display issue under project page JIRA STUDIO-4625 Change-Id: I9d9627967dcec845f66422e06eadfd2bfe964bb9 --- resources/web/model/index.html | 2 +- resources/web/model/model.css | 26 ++++++++++++++++++++++++-- resources/web/model/model.js | 1 + resources/web/model/test.js | 2 +- 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/resources/web/model/index.html b/resources/web/model/index.html index 37933f60b2..717c18bbae 100644 --- a/resources/web/model/index.html +++ b/resources/web/model/index.html @@ -50,7 +50,7 @@

-
Model name:xxxxxxxxxx
+
Model name
:
xxxxxxxxxx
Model Author:xxxxxxx
diff --git a/resources/web/model/model.css b/resources/web/model/model.css index 464d71c363..1e5544f941 100644 --- a/resources/web/model/model.css +++ b/resources/web/model/model.css @@ -81,7 +81,7 @@ body { font-size: 16px; font-weight: 700; - color: black; + color: black; } .Text_Value @@ -103,9 +103,31 @@ body .Text_TitleArea div { height: 32px; - line-height: 32px + line-height: 32px; } +#Model_Name_Line +{ + width: 800px; +} + +#ModelNameBar +{ + width: 100%; + display: flex; + overflow:hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +#ModelName +{ + overflow:hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + + .Block_BKGA { background-color: white; diff --git a/resources/web/model/model.js b/resources/web/model/model.js index 75e7602d3e..73958122a4 100644 --- a/resources/web/model/model.js +++ b/resources/web/model/model.js @@ -209,6 +209,7 @@ function ShowModelInfo( pModel ) SendWXDebugInfo("Model Name: "+sModelName); $('#ModelName').html(sModelName); + $('#ModelName').attr('title',sModelName); $('#ModelAuthorName').html(sModelAuthor); switch(UploadType) diff --git a/resources/web/model/test.js b/resources/web/model/test.js index 3566871401..46a8394073 100644 --- a/resources/web/model/test.js +++ b/resources/web/model/test.js @@ -1,6 +1,6 @@ var TestProjectData={ "model": { - "name": "xxxxxxxxxxxxxxxxxxxxxxxxx easy print", + "name": "xxxxxxxxxxxxxxxxxxxxxxxxx easy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy printeasy print", "author": "Zorro Zhang", "upload_type": "share", "license": "CC0", From 2ffadb72f04a9c08f02b1ec3c8b8214e80ca2194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=83=E5=96=9C?= Date: Wed, 27 Sep 2023 16:53:37 +0800 Subject: [PATCH 32/92] Revert "ENH: add X1E as upward printers" This reverts commit 1e8d981b3c368775112b6f4a7496f14849d4c8d9. Reason for revert: need to hide X1E in current stage Change-Id: Ida1b57fd68a6a993aa148b12a46ff8a52092dc69 --- resources/profiles/BBL.json | 2 +- .../BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json | 3 +-- .../BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json | 3 +-- .../BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json | 6 +----- .../BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json | 6 +----- .../profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json | 3 +-- .../profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json | 8 +++++--- .../profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json | 6 ++++-- .../profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json | 6 ++++-- .../profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json | 3 +-- .../profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json | 8 +++++--- .../profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json | 7 +++---- .../profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json | 6 ++++-- .../profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json | 3 +-- .../profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json | 6 ++++-- .../profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json | 7 +++---- .../profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json | 7 +++---- .../BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json | 3 +-- .../BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json | 7 +++++-- .../BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json | 7 +++---- .../BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json | 6 ++++-- 21 files changed, 56 insertions(+), 57 deletions(-) diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 406ff59c68..3031f1ebb7 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.07.00.27", + "version": "01.07.00.26", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json index d6e55aa133..d8cea99515 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json @@ -27,7 +27,6 @@ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json index bffc6623d5..d78a910e6d 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json @@ -56,8 +56,7 @@ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle" ], "machine_start_gcode": ";===== machine: A1 mini =========================\n;===== date: 20230912 =====================\n\n;===== start to heat heatbead&hotend==========\nM1002 gcode_claim_action : 2\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG392 S0 ;turn off clog detect\n;=====start printer sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B0 L100 C37 D10 M100 E37 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E43 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C49 D10 M100 E49 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C39 D10 M100 E48 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 W\nM18\n;=====avoid end stop =================\nG91\nG380 S2 Z30 F1200\nG380 S2 Z-20 F1200\nG1 Z5 F1200\nG90\n\n;===== reset machine status =================\nM290 X39 Y39 Z8\nM204 S6000\n\nM630 S0 P0\nG91\nM17 Z0.3 ; lower the z-motor current\n\nG90\nM17 X0.7 Y0.9 Z0.5 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\n;M221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\n;===== prepare print temperature and material ==========\nM1002 gcode_claim_action : 1\nM400\nM18\nM109 S100\nM104 S140\nM400\nM17\nM400\nG28 X\n\nM221 X0 Y0 Z0 ;turn off soft endstop\n\nM975 S1 ; turn on\n\nG1 X0.0 F30000\nG1 X-13.5 F3000\n\nM620 M ;enable remap\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n G392 S1 ;turn on clog detect\n M1002 gcode_claim_action : 4\n M400\n M1002 set_filament_type:UNKNOWN\n M109 S[nozzle_temperature_initial_layer]\n M104 S250\n M400\n T[initial_no_support_extruder]\n G1 X-13.5 F3000\n M400\n M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n M109 S250 ;set nozzle to common flush temp\n M106 P1 S0\n G92 E0\n G1 E50 F200\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n M104 S{nozzle_temperature_range_high[initial_no_support_extruder]}\n G92 E0\n G1 E50 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M400\n M106 P1 S178\n G92 E0\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G92 E0\n G1 E-0.5 F300\n\n G1 X0 F30000\n G1 X-13.5 F3000\n G1 X0 F30000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X0 F30000\n G1 X-13.5 F3000\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G392 S0 ;turn off clog detect\nM621 S[initial_no_support_extruder]A\n\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== mech mode fast check============================\nM1002 gcode_claim_action : 3\nG0 X50 Y175 F20000 ; find a soft place to home\nM104 S0\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-80}\n\nG1 X90 Y-1 Z5 F30000\nM400 P200\nM970.3 Q1 A7 K0 O2\nM974 Q1 S2 P0\n\nG1 X90 Y0 Z5 F30000\nM400 P200\nM970 Q0 A5 B55 C85 H15 K0 M20 O2\n;M970.3 Q0 A7 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X-1 Y10\nG28 X ; re-home XY\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\n;M106 S255\nG29.2 S0 ; turn off ABL\nG0 X50 Y175 F20000 ; find a soft place to home\nG28 Z P0 T300; home z with low precision, permit 300deg temperature\n\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\n\nG0 X85 Y185 F10000 ;move to exposed steel surface and stop the nozzle\nG0 Z-1.01 F10000\nG91\n\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nG90\nG1 Z5 F30000\nG1 X32 Y185 F30000.1 ;Brush material\nG1 Z0.6 F30000.1\nG91\nG1 X-30 F30000\nG1 Y-2\nG1 X27\nG1 Y1.5\nG1 X-28\nG1 Y-2\nG1 X30\nG1 Y1.5\nG1 X-30\n\nG90\nM83\n\nG1 Z10\nG1 X85 Y185\nG1 Z-1.01\n\n\nM221 R; pop softend status\n\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== wait heatbed ====================\nM1002 gcode_claim_action : 2\nM104 S0\nM190 S[bed_temperature_initial_layer_single];set bed temp\nM109 S140\n\nG1 Z5 F3000\nG29.2 S1\nG1 X10 Y10 F20000\n\n;===== bed leveling ==================================\n;M1002 set_flag g29_before_print_flag=1\nM1002 judge_flag g29_before_print_flag\nM622 J1\n M1002 gcode_claim_action : 1\n G29 A\n M400\n M500 ; save cali data\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\n\nG1 X-13.5 Y0 Z10 F10000\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S{nozzle_temperature[initial_extruder]}\nM400\n\nM412 S1 ; ===turn on filament runout detection===\nM400 P10\n\nG392 S1 ;turn on clog detect\n\nM620.3 W1; === turn on filament tangle detection===\nM400 S2\n\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n;M1002 set_flag extrude_cali_flag=1\nM1002 judge_flag extrude_cali_flag\nM622 J1\n M1002 gcode_claim_action : 8\n \n M400\n M900 K0.0 L1000.0 M1.0\n G90\n M83\n G0 X45 Y-4 F30000\n G0 Z0.2 F18000 ;Move to start position\n G0 X65 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X70 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X75 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X80 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X85 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X90 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X120 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X125 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X130 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n M400\n \n G1 X-13.5 Y0 Z10 F10000\n M400\n \n G1 E10 F{outer_wall_volumetric_speed/2.4*60}\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X-13.5 F3000\n M400\n M106 P1 S0\n\n M1002 judge_last_extrude_cali_success\n M622 J0\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n M400\n M106 P1 S0\n M623\nM623 ; end of \"draw extrinsic para cali paint\"\n\n;===== extrude cali test ===============================\nG90\nM83\nG0 X50 Y-2.7 F30000\nG0 Z0.2 F18000 ;Move to start position\nG0 X60 E4 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X65 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X70 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X75 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X80 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X85 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X90 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X120 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X125 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X130 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nM400\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\n\nM400 ; wait all motion done before implement the emprical L parameters\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.02} ; for Textured PEI Plate\n{endif}\n\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n\nM211 X0 Y0 Z0 ;turn off soft endstop\n", "machine_end_gcode": ";===== date: 20230912 =====================\n;turn off nozzle clog detect\nG392 S0\n\n{if timelapse_type == 2}\nM991 S0 P-1 ;end timelapse immediately\n{endif}\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X0 F12000 ; move to safe pos \n{if timelapse_type == 1}\nM991 S0 P-1 ;end timelapse at safe pos\n{endif}\n\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\n;G1 X27 F15000 ; wipe\n\n; pull back filament to AMS\nM620 S255\nG1 X181 F12000\nT255\nG1 X0 F18000\nG1 X-13.0 F3000\nG1 X0 F18000 ; wipe\nM621 S255\n\nM104 S0 ; turn off hotend\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 180}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z180 F600\n G1 Z180\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X-13 Y180 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\n;=====printer finish sound=========\nM17\nM400 S1\nM1006 S1\nM1006 A0 B20 L100 C37 D20 M100 E42 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C46 D10 M100 E46 F10 N100\nM1006 A44 B20 L100 C39 D20 M100 E48 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E48 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B20 L100 C41 D20 M100 E49 F20 N100\nM1006 A0 B20 L100 C0 D20 M100 E0 F20 N100\nM1006 A0 B20 L100 C37 D20 M100 E37 F20 N100\nM1006 W\n;=====printer finish sound=========\nM400 S1\nM18\n", diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json index 846a62c517..3ef6460dc4 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json @@ -10,9 +10,6 @@ ], "printer_model": "Bambu Lab A1 mini", "printer_variant": "0.6", - "default_filament_profile": [ - "Bambu PLA Basic @BBL A1M" - ], "default_print_profile": "0.30mm Standard @BBL A1M 0.6 nozzle", "max_layer_height": [ "0.42" @@ -31,7 +28,6 @@ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab P1P 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json index 2c69cd3455..82fcdb8140 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json @@ -10,9 +10,6 @@ ], "printer_model": "Bambu Lab A1 mini", "printer_variant": "0.8", - "default_filament_profile": [ - "Bambu PLA Basic @BBL A1M" - ], "default_print_profile": "0.40mm Standard @BBL A1M 0.8 nozzle", "max_layer_height": [ "0.56" @@ -31,7 +28,6 @@ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json index da7b3beea7..31aa9e7c85 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json @@ -26,8 +26,7 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z-0.04 ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json index c70c535727..247608475c 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json @@ -28,12 +28,14 @@ "machine_unload_filament_time": "28", "nozzle_type": "stainless_steel", "scan_first_layer": "0", + "z_hop": [ + "0.4" + ], "upward_compatible_machine": [ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression", "layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n{if timelapse_type == 0} ; timelapse without wipe tower\nM971 S11 C10 O0\n{elsif timelapse_type == 1} ; timelapse with wipe tower\nG92 E0\nG1 E-[retraction_length] F1800\nG17\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 X65 Y245 F20000 ; move to safe pos\nG17\nG2 Z{layer_z} I0.86 J0.86 P1 F20000\nG1 Y265 F3000\nM400 P300\nM971 S11 C11 O0\nG92 E0\nG1 E[retraction_length] F300\nG1 X100 F5000\nG1 Y255 F20000\n{endif}\nM623\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change" -} \ No newline at end of file +} diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json index a9918192e1..e2e35ce501 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json @@ -20,6 +20,9 @@ "min_layer_height": [ "0.12" ], + "z_hop": [ + "0.4" + ], "nozzle_type": "hardened_steel", "retraction_length": [ "1.4" @@ -30,8 +33,7 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X18 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json index 9361311d89..04375fdf73 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json @@ -24,14 +24,16 @@ "retract_length_toolchange": [ "3" ], + "z_hop": [ + "0.4" + ], "retraction_length": [ "3" ], "upward_compatible_machine": [ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y15 E1.500 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.500\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X18 E15\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json index bbb6bcc475..2ef87a37ad 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json @@ -26,8 +26,7 @@ "upward_compatible_machine": [ "Bambu Lab P1P 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z-0.04 ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json index a148d661f0..8fd2c82da3 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json @@ -27,12 +27,14 @@ "machine_unload_filament_time": "28", "nozzle_type": "stainless_steel", "scan_first_layer": "0", + "z_hop": [ + "0.4" + ], "upward_compatible_machine": [ "Bambu Lab P1P 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression", "layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n{if timelapse_type == 0} ; timelapse without wipe tower\nM971 S11 C10 O0\n{elsif timelapse_type == 1} ; timelapse with wipe tower\nG92 E0\nG1 E-[retraction_length] F1800\nG17\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 X65 Y245 F20000 ; move to safe pos\nG17\nG2 Z{layer_z} I0.86 J0.86 P1 F20000\nG1 Y265 F3000\nM400 P300\nM971 S11 C11 O0\nG92 E0\nG1 E[retraction_length] F300\nG1 X100 F5000\nG1 Y255 F20000\n{endif}\nM623\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change" -} \ No newline at end of file +} diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json index a7c92573fa..dbae519daa 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab P1S", "printer_variant": "0.6", - "default_filament_profile": [ - "Bambu PLA Basic @BBL X1C" + "z_hop": [ + "0.4" ], "default_print_profile": "0.30mm Standard @BBL X1C 0.6 nozzle", "max_layer_height": [ @@ -30,8 +30,7 @@ "upward_compatible_machine": [ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X18 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json index f4196bd168..8c48198d33 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json @@ -10,6 +10,9 @@ ], "printer_model": "Bambu Lab P1S", "printer_variant": "0.8", + "z_hop": [ + "0.4" + ], "default_filament_profile": [ "Bambu PLA Basic @BBL X1" ], @@ -30,8 +33,7 @@ "upward_compatible_machine": [ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y15 E1.500 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.500\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X18 E15\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json index c0dcb29ee2..5c0352f9bf 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json @@ -26,8 +26,7 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json index e84d3cb0a6..69975f20e3 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json @@ -28,11 +28,13 @@ "machine_unload_filament_time": "28", "nozzle_type": "stainless_steel", "scan_first_layer": "1", + "z_hop": [ + "0.4" + ], "upward_compatible_machine": [ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json index 87fa2b42c7..b6e49250c0 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab X1", "printer_variant": "0.6", - "default_filament_profile": [ - "Bambu PLA Basic @BBL X1" + "z_hop": [ + "0.4" ], "default_print_profile": "0.30mm Standard @BBL X1 0.6 nozzle", "max_layer_height": [ @@ -30,8 +30,7 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab P1P 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json index 57396a8b04..6a3b52e579 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab X1", "printer_variant": "0.8", - "default_filament_profile": [ - "Bambu PLA Basic @BBL X1" + "z_hop": [ + "0.4" ], "default_print_profile": "0.40mm Standard @BBL X1 0.8 nozzle", "max_layer_height": [ @@ -30,8 +30,7 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json index 15503fa892..84b682ce57 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json @@ -27,8 +27,7 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab X1 0.2 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json index 3d46a130dd..8139efe731 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json @@ -26,11 +26,14 @@ "machine_load_filament_time": "29", "machine_unload_filament_time": "28", "scan_first_layer": "1", + "z_hop": [ + "0.4" + ], + "printer_structure": "corexy", "upward_compatible_machine": [ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", - "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab X1 0.4 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json index 91f621db45..1aa8c94661 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab X1 Carbon", "printer_variant": "0.6", - "default_filament_profile": [ - "Bambu PLA Basic @BBL X1C" + "z_hop": [ + "0.4" ], "default_print_profile": "0.30mm Standard @BBL X1C 0.6 nozzle", "max_layer_height": [ @@ -29,8 +29,7 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab P1P 0.6 nozzle", - "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab X1 0.6 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json index 71730007b0..ac6d31e35c 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json @@ -10,6 +10,9 @@ ], "printer_model": "Bambu Lab X1 Carbon", "printer_variant": "0.8", + "z_hop": [ + "0.4" + ], "default_filament_profile": [ "Bambu PLA Basic @BBL X1C 0.8 nozzle" ], @@ -29,8 +32,7 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", - "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab X1 0.8 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file From dbd24e76f22d531d010e4a5ffa525ba964f3f083 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=83=E5=96=9C?= Date: Wed, 27 Sep 2023 16:55:38 +0800 Subject: [PATCH 33/92] Revert "ENH: update X1E start gcode" This reverts commit c047bd3a0776f061b4d532008b40db55ab83118f. Reason for revert: remove X1E related Change-Id: If5922b012c42a38f80f70fdee387388fccc7e656 --- resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json index 358b8494de..ebc0ce597e 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json @@ -30,5 +30,5 @@ "Bambu Lab X1 0.2 nozzle", "Bambu Lab X1 Carbon 0.2 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json index 7cfa3300c5..1f08b9bb5f 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json @@ -34,6 +34,6 @@ "Bambu Lab X1 0.4 nozzle", "Bambu Lab X1 Carbon 0.4 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", "machine_end_gcode": ";===== date: 20230428 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM141 S0 ; turn off chamber \nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X128 Y250 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json index fde3275fdc..d5da018423 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json @@ -32,5 +32,5 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json index f6514c5eab..24c677e158 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json @@ -32,5 +32,5 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab X1 Carbon 0.8 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file From 250e3bb0190e439514909ec7b751244b66036ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=83=E5=96=9C?= Date: Wed, 27 Sep 2023 16:56:31 +0800 Subject: [PATCH 34/92] Revert "ENH: add profiles for X1E" This reverts commit 8e2e709bb7037d28f1b32fdeb80eadcfafdc57f2. Reason for revert: remove X1E related Change-Id: I9a7b395dcbfa19adeef6891a59ed1074dee1fb18 --- resources/profiles/BBL.json | 140 +----------------- .../profiles/BBL/Bambu Lab X1E_cover.png | Bin 13025 -> 0 bytes .../Bambu ABS @BBL X1E 0.2 nozzle.json | 11 -- .../Bambu ABS @BBL X1E 0.8 nozzle.json | 11 -- .../BBL/filament/Bambu ABS @BBL X1E.json | 12 -- .../Bambu ASA @BBL X1E 0.2 nozzle.json | 11 -- .../Bambu ASA @BBL X1E 0.4 nozzle.json | 14 -- .../BBL/filament/Bambu ASA @BBL X1E.json | 12 -- .../BBL/filament/Bambu PA-CF @BBL X1E.json | 16 -- .../BBL/filament/Bambu PA6-CF @BBL X1E.json | 16 -- .../BBL/filament/Bambu PAHT-CF @BBL X1C.json | 5 +- .../Bambu PC @BBL X1E 0.2 nozzle.json | 14 -- .../Bambu PC @BBL X1E 0.6 nozzle.json | 14 -- .../Bambu PC @BBL X1E 0.8 nozzle.json | 14 -- .../BBL/filament/Bambu PC @BBL X1E.json | 14 -- .../BBL/filament/Bambu PET-CF @BBL X1E.json | 16 -- .../Bambu PETG Basic @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu PETG Basic @BBL X1C 0.8 nozzle.json | 4 +- .../filament/Bambu PETG Basic @BBL X1C.json | 3 +- .../Bambu PETG-CF @BBL X1C 0.4 nozzle.json | 3 +- .../BBL/filament/Bambu PETG-CF @BBL X1C.json | 4 +- .../BBL/filament/Bambu PLA Aero @BBL X1C.json | 5 +- .../Bambu PLA Basic @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu PLA Basic @BBL X1C 0.8 nozzle.json | 3 +- .../filament/Bambu PLA Basic @BBL X1C.json | 4 +- .../filament/Bambu PLA Marble @BBL X1C.json | 5 +- .../Bambu PLA Matte @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu PLA Matte @BBL X1C 0.8 nozzle.json | 3 +- .../filament/Bambu PLA Matte @BBL X1C.json | 4 +- .../Bambu PLA Metal @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Bambu PLA Metal @BBL X1C.json | 5 +- .../Bambu PLA Silk @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/Bambu PLA Silk @BBL X1C.json | 5 +- .../filament/Bambu PLA Sparkle @BBL X1C.json | 5 +- .../Bambu PLA Tough @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Bambu PLA Tough @BBL X1C.json | 5 +- .../Bambu PLA-CF @BBL X1C 0.8 nozzle.json | 4 +- .../BBL/filament/Bambu PLA-CF @BBL X1C.json | 3 +- .../Bambu Support For PA PET @BBL X1C.json | 5 +- ...u Support For PLA @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu Support For PLA @BBL X1C.json | 5 +- .../filament/Bambu Support G @BBL X1E.json | 16 -- .../Bambu Support W @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Bambu Support W @BBL X1C.json | 5 +- .../BBL/filament/Bambu TPU 95A @BBL X1C.json | 5 +- .../Generic ABS @BBL X1E 0.2 nozzle.json | 11 -- .../BBL/filament/Generic ABS @BBL X1E.json | 13 -- .../Generic ASA @BBL X1E 0.2 nozzle.json | 11 -- .../BBL/filament/Generic ASA @BBL X1E.json | 13 -- .../Generic HIPS @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/Generic HIPS @BBL X1C.json | 5 +- .../BBL/filament/Generic PA-CF @BBL X1E.json | 16 -- .../profiles/BBL/filament/Generic PA.json | 5 +- .../Generic PC @BBL X1E 0.2 nozzle.json | 14 -- .../BBL/filament/Generic PC @BBL X1E.json | 16 -- .../filament/Generic PETG @0.2 nozzle.json | 3 +- .../filament/Generic PETG-CF @BBL X1C.json | 5 +- .../profiles/BBL/filament/Generic PETG.json | 5 +- .../BBL/filament/Generic PLA @0.2 nozzle.json | 3 +- ...ic PLA High Speed @BBL X1C 0.2 nozzle.json | 3 +- .../Generic PLA High Speed @BBL X1C.json | 5 +- .../BBL/filament/Generic PLA Silk.json | 5 +- .../profiles/BBL/filament/Generic PLA-CF.json | 5 +- .../profiles/BBL/filament/Generic PLA.json | 5 +- .../BBL/filament/Generic PPA-CF @BBL X1E.json | 19 --- .../BBL/filament/Generic PPA-GF @BBL X1E.json | 25 ---- .../BBL/filament/Generic PPS @BBL X1E.json | 13 -- .../BBL/filament/Generic PPS-CF @BBL X1E.json | 13 -- .../BBL/filament/Generic PVA @0.2 nozzle.json | 3 +- .../profiles/BBL/filament/Generic PVA.json | 5 +- .../profiles/BBL/filament/Generic TPU.json | 5 +- ...verture Matte PLA @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Overture Matte PLA @BBL X1C.json | 5 +- .../Overture PLA @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/Overture PLA @BBL X1C.json | 5 +- .../PolyLite ABS @BBL X1E 0.2 nozzle.json | 11 -- .../BBL/filament/PolyLite ABS @BBL X1E.json | 13 -- .../PolyLite ASA @BBL X1E 0.2 nozzle.json | 14 -- .../BBL/filament/PolyLite ASA @BBL X1E.json | 13 -- .../PolyLite PETG @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/PolyLite PETG @BBL X1C.json | 5 +- .../PolyLite PLA @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/PolyLite PLA @BBL X1C.json | 5 +- .../PolyTerra PLA @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/PolyTerra PLA @BBL X1C.json | 5 +- .../eSUN PLA+ @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/eSUN PLA+ @BBL X1C.json | 5 +- .../BBL/machine/Bambu Lab X1E 0.2 nozzle.json | 34 ----- .../BBL/machine/Bambu Lab X1E 0.4 nozzle.json | 39 ----- .../BBL/machine/Bambu Lab X1E 0.6 nozzle.json | 36 ----- .../BBL/machine/Bambu Lab X1E 0.8 nozzle.json | 36 ----- .../profiles/BBL/machine/Bambu Lab X1E.json | 12 -- .../0.06mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../process/0.08mm Extra Fine @BBL X1C.json | 3 +- .../0.08mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../0.10mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/process/0.12mm Fine @BBL X1C.json | 3 +- .../0.12mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../0.14mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/process/0.16mm Optimal @BBL X1C.json | 3 +- .../0.18mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.20mm Bambu Support W @BBL X1C.json | 3 +- .../BBL/process/0.20mm Standard @BBL X1C.json | 3 +- .../BBL/process/0.20mm Strength @BBL X1C.json | 3 +- .../BBL/process/0.24mm Draft @BBL X1C.json | 3 +- .../0.24mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.24mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../process/0.28mm Extra Draft @BBL X1C.json | 3 +- .../0.30mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.30mm Strength @BBL X1C 0.6 nozzle.json | 3 +- .../0.32mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../0.36mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.40mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../0.42mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.48mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../0.56mm Standard @BBL X1C 0.8 nozzle.json | 3 +- 116 files changed, 82 insertions(+), 920 deletions(-) delete mode 100644 resources/profiles/BBL/Bambu Lab X1E_cover.png delete mode 100644 resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json delete mode 100644 resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json delete mode 100644 resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json delete mode 100644 resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json delete mode 100644 resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json delete mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json delete mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json delete mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json delete mode 100644 resources/profiles/BBL/filament/Generic ABS @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json delete mode 100644 resources/profiles/BBL/filament/Generic ASA @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json delete mode 100644 resources/profiles/BBL/filament/Generic PC @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Generic PPS @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json delete mode 100644 resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json delete mode 100644 resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json delete mode 100644 resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json delete mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json delete mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json delete mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json delete mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json delete mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E.json diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 3031f1ebb7..3878929990 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.07.00.26", + "version": "01.07.00.25", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ @@ -24,10 +24,6 @@ { "name": "Bambu Lab A1 mini", "sub_path": "machine/Bambu Lab A1 mini.json" - }, - { - "name": "Bambu Lab X1E", - "sub_path": "machine/Bambu Lab X1E.json" } ], "process_list": [ @@ -1321,10 +1317,6 @@ "name": "Bambu PA-CF @BBL P1P", "sub_path": "filament/P1P/Bambu PA-CF @BBL P1P.json" }, - { - "name": "Generic PA-CF @BBL X1E", - "sub_path": "filament/Generic PA-CF @BBL X1E.json" - }, { "name": "Bambu PAHT-CF @BBL X1C", "sub_path": "filament/Bambu PAHT-CF @BBL X1C.json" @@ -1345,10 +1337,6 @@ "name": "Bambu PA6-CF @BBL X1C", "sub_path": "filament/Bambu PA6-CF @BBL X1C.json" }, - { - "name": "Bambu PA6-CF @BBL X1E", - "sub_path": "filament/Bambu PA6-CF @BBL X1E.json" - }, { "name": "Generic HIPS @BBL X1C", "sub_path": "filament/Generic HIPS @BBL X1C.json" @@ -1365,18 +1353,6 @@ "name": "Generic HIPS @BBL A1M 0.2 nozzle", "sub_path": "filament/Generic HIPS @BBL A1M 0.2 nozzle.json" }, - { - "name": "Generic PPS-CF @BBL X1E", - "sub_path": "filament/Generic PPS-CF @BBL X1E.json" - }, - { - "name": "Generic PPS @BBL X1E", - "sub_path": "filament/Generic PPS @BBL X1E.json" - }, - { - "name": "Generic PPA-CF @BBL X1E", - "sub_path": "filament/Generic PPA-CF @BBL X1E.json" - }, { "name": "Generic PPA-CF @BBL X1C", "sub_path": "filament/Generic PPA-CF @BBL X1C.json" @@ -1385,10 +1361,6 @@ "name": "Generic PPA-GF @BBL X1C", "sub_path": "filament/Generic PPA-GF @BBL X1C.json" }, - { - "name": "Generic PPA-GF @BBL X1E", - "sub_path": "filament/Generic PPA-GF @BBL X1E.json" - }, { "name": "PolyTerra PLA @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json" @@ -1461,10 +1433,6 @@ "name": "Bambu PETG-CF @BBL A1M 0.4 nozzle", "sub_path": "filament/Bambu PETG-CF @BBL A1M 0.4 nozzle.json" }, - { - "name": "Bambu PET-CF @BBL X1E", - "sub_path": "filament/Bambu PET-CF @BBL X1E.json" - }, { "name": "PolyLite PETG @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyLite PETG @BBL X1C 0.2 nozzle.json" @@ -1477,30 +1445,6 @@ "name": "PolyLite PETG @BBL A1M 0.2 nozzle", "sub_path": "filament/PolyLite PETG @BBL A1M 0.2 nozzle.json" }, - { - "name": "Bambu ABS @BBL X1E", - "sub_path": "filament/Bambu ABS @BBL X1E.json" - }, - { - "name": "Bambu ABS @BBL X1E 0.2 nozzle", - "sub_path": "filament/Bambu ABS @BBL X1E 0.2 nozzle.json" - }, - { - "name": "Bambu ABS @BBL X1E 0.8 nozzle", - "sub_path": "filament/Bambu ABS @BBL X1E 0.8 nozzle.json" - }, - { - "name": "Generic ABS @BBL X1E", - "sub_path": "filament/Generic ABS @BBL X1E.json" - }, - { - "name": "Generic ABS @BBL X1E 0.2 nozzle", - "sub_path": "filament/Generic ABS @BBL X1E 0.2 nozzle.json" - }, - { - "name": "PolyLite ABS @BBL X1E", - "sub_path": "filament/PolyLite ABS @BBL X1E.json" - }, { "name": "PolyLite ABS @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyLite ABS @BBL X1C 0.2 nozzle.json" @@ -1513,97 +1457,33 @@ "name": "Bambu PC @BBL P1S", "sub_path": "filament/Bambu PC @BBL P1S.json" }, - { - "name": "Bambu PC @BBL X1E", - "sub_path": "filament/Bambu PC @BBL X1E.json" - }, { "name": "Bambu PC @BBL P1S 0.2 nozzle", "sub_path": "filament/Bambu PC @BBL P1S 0.2 nozzle.json" }, - { - "name": "Bambu PC @BBL X1E 0.2 nozzle", - "sub_path": "filament/Bambu PC @BBL X1E 0.2 nozzle.json" - }, { "name": "Bambu PC @BBL P1S 0.8 nozzle", "sub_path": "filament/Bambu PC @BBL P1S 0.8 nozzle.json" }, - { - "name": "Bambu PC @BBL X1E 0.8 nozzle", - "sub_path": "filament/Bambu PC @BBL X1E 0.8 nozzle.json" - }, { "name": "Bambu PC @BBL P1S 0.6 nozzle", "sub_path": "filament/Bambu PC @BBL P1S 0.6 nozzle.json" }, - { - "name": "Bambu PC @BBL X1E 0.6 nozzle", - "sub_path": "filament/Bambu PC @BBL X1E 0.6 nozzle.json" - }, { "name": "Generic PC @BBL P1S 0.2 nozzle", "sub_path": "filament/Generic PC @BBL P1S 0.2 nozzle.json" }, - { - "name": "Generic PC @BBL X1E 0.2 nozzle", - "sub_path": "filament/Generic PC @BBL X1E 0.2 nozzle.json" - }, { "name": "Generic PC @BBL P1S", "sub_path": "filament/Generic PC @BBL P1S.json" }, - { - "name": "Generic PC @BBL X1E", - "sub_path": "filament/Generic PC @BBL X1E.json" - }, - { - "name": "Generic ASA @BBL X1E 0.2 nozzle", - "sub_path": "filament/Generic ASA @BBL X1E 0.2 nozzle.json" - }, - { - "name": "Generic ASA @BBL X1E", - "sub_path": "filament/Generic ASA @BBL X1E.json" - }, - { - "name": "Bambu ASA @BBL X1E", - "sub_path": "filament/Bambu ASA @BBL X1E.json" - }, - { - "name": "Bambu ASA @BBL X1E 0.2 nozzle", - "sub_path": "filament/Bambu ASA @BBL X1E 0.2 nozzle.json" - }, - { - "name": "Bambu ASA @BBL X1E 0.4 nozzle", - "sub_path": "filament/Bambu ASA @BBL X1E 0.4 nozzle.json" - }, { "name": "PolyLite ASA @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyLite ASA @BBL X1C 0.2 nozzle.json" }, - { - "name": "PolyLite ASA @BBL X1E", - "sub_path": "filament/PolyLite ASA @BBL X1E.json" - }, { "name": "PolyLite ASA @BBL P1P 0.2 nozzle", "sub_path": "filament/PolyLite ASA @BBL P1P 0.2 nozzle.json" - }, - { - "name": "Bambu Support G @BBL X1E", - "sub_path": "filament/Bambu Support G @BBL X1E.json" - }, - { - "name": "Bambu PA-CF @BBL X1E", - "sub_path": "filament/Bambu PA-CF @BBL X1E.json" - }, - { - "name": "PolyLite ABS @BBL X1E 0.2 nozzle", - "sub_path": "filament/PolyLite ABS @BBL X1E 0.2 nozzle.json" - }, - { - "name": "PolyLite ASA @BBL X1E 0.2 nozzle", - "sub_path": "filament/PolyLite ASA @BBL X1E 0.2 nozzle.json" } ], "machine_list": [ @@ -1635,10 +1515,6 @@ "name": "Bambu Lab A1 mini 0.4 nozzle", "sub_path": "machine/Bambu Lab A1 mini 0.4 nozzle.json" }, - { - "name": "Bambu Lab X1E 0.4 nozzle", - "sub_path": "machine/Bambu Lab X1E 0.4 nozzle.json" - }, { "name": "Bambu Lab X1 Carbon 0.2 nozzle", "sub_path": "machine/Bambu Lab X1 Carbon 0.2 nozzle.json" @@ -1698,18 +1574,6 @@ { "name": "Bambu Lab A1 mini 0.8 nozzle", "sub_path": "machine/Bambu Lab A1 mini 0.8 nozzle.json" - }, - { - "name": "Bambu Lab X1E 0.2 nozzle", - "sub_path": "machine/Bambu Lab X1E 0.2 nozzle.json" - }, - { - "name": "Bambu Lab X1E 0.6 nozzle", - "sub_path": "machine/Bambu Lab X1E 0.6 nozzle.json" - }, - { - "name": "Bambu Lab X1E 0.8 nozzle", - "sub_path": "machine/Bambu Lab X1E 0.8 nozzle.json" } ] -} +} \ No newline at end of file diff --git a/resources/profiles/BBL/Bambu Lab X1E_cover.png b/resources/profiles/BBL/Bambu Lab X1E_cover.png deleted file mode 100644 index 1daaf9c3a9c1f1e913d4117af4d9cb4f84c1fd7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13025 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

?1(QEy&5z$hY?Sf5#QBDW7|)~k zn05fEf0W~p;~~vlp<^K5ymXQ|Y>gs304$(kax4fc{wcy2L6H&mO3x#5 z__z9ile%gBRC}14Z(9Lw7TPWtqp^gBzJ>OgApzt}j;v~zYFS%(Qz*p_R4Y?1>4d~x zdH$b5$!mUI`aMc>vR`}jA$734C9p;Bk*6~ok=LsG@}c% zKwtvz|A}PH!nZ3yi)B*c;8Hb2(7>*KzC&6*nYi;pTLri42;0oHPM2um>g0fs&{;{b zr{NK#SgY){aHYnOHtB0b%raRTI%WqGUyJ7Ns^Q5G9=}qxlBgx`8ckWt z=gF)?!TWlGOv%p$h~A<1bm#?4X%(u;pu zejUFU1OoUm-Z< zbIfuiG28Yd`@J>&v1HxyyO@dyUjmpShTq@R>O=qHb6CRDta&}QG3u)5)Vy7cP&Iq< z?ugM;RuFb7X`aqZp$eB$%KVd*KYGTmXgtN_+CfnSP}f{@7`A`p)O#U+g_(rpl-qSI zCZw|Lj@(iS8h)=I>_(}2Jk0rRY!W$f{R_XQ7g&|tB3{;?+e+nZW7!sOr zo^yNa8^A#`z<1AsBQhM1s`X}Eg-5BHjX8RIO?%!g;?k4PjA|HAlR3GI> zWKVhODF&lrC=;dmPVyd+xaH3`581ED4(udpCs8)ffCCRd3P8Kqh&VlsruBy(ijz!u zy*`8cd?7ML!&^cHq}P{^p(k=%Igu=N*N8~xXX8E0?k~9Bk^e5a)lDw@Q*p}bgWP6e zmG!hl%B#g={A)x)O#E~|N%f@f_`)7LqOU5`0@*0sql!?$SSx`S^<>^q4;o1GejcLZ z6@29iHQNmd6}e+i_b;j3hu*7IK&d-*DRuPwwaMu|etRv->epV7xsX>fE_T;<%t)q$ z`$BqRp-E{^5DO%*KtUL6^8${iB*;Rhl%|LCC&#|ayV+{ZuRYWcA6(dA^>BjcY`cQ> z+bwZuSuFDYRnAhAq9GuZW68@zmQXZ4!g6xz$CE5e#4G}0k8uW92g_O_?@#3Jm^6&i zJjl~os45>Z$A-+4&|4(1lC}-_5LVXlnrz%Gd$tV{6nV(ic}47A-*HTYuaU03Y#!$${4B%m~#QRQH4} zZ_u5F&81imT!>?=s<8SjRC~L=DchpLw{KB~{|ndtKhu_1*paGCE(-r=wypkI(8r*g zFT~Vs>B965lGIQ?m965zbR%)EDcI6C*eI!&N;Bhfp?4lbjHvrBRL;q`0;c-W#F{BIZ5f*n%ycfttW9Mpe<8!lTNMCD&0Pv|7Y^A;NdLlfd8Yb z@SztS+f3q(ykkRtf8JRM&cp^2V0VV$uALo-?_s*G&4F|4Vo7N{61V z6nce9B~gzW|Ille&qGtfSKhr-&JJAt5ab~b#E(zjwJ=UT-D+4V`MRkIw0x&UK{XSe zT6HT0ZwG;}dUi>};n=#w4gqp0{&IgndMTsIwk_HlIO`H3W}xB^yponS`^`7(1WB<_ zh$xiL0)lSS^b&Cw@eq5?Br=ik=QaiVtTi;IPn%xQ?6B<#^@Ah?3v?Uktsa^F7<9V_ z`c+_Xo*F$8NQg9m=;R3UpWDd;kurw9Jfp9_ zEnNQTaJ)M7v$eoscM;l;81qLLViU35W=L|XI#OgsE7Y!9CE@%D9w-GK&R$r=7#D8T z{yIdwGh1fYgZcTe6}xJgUSBRM0Tgl3MytsyZqqN;YBt2e3JYIsgCw diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json deleted file mode 100644 index 97c7af9a10..0000000000 --- a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "filament", - "name": "Bambu ABS @BBL X1E 0.2 nozzle", - "inherits": "Bambu ABS @BBL X1C 0.2 nozzle", - "from": "system", - "setting_id": "GFSB00_05", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.2 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json deleted file mode 100644 index 6f5d353ded..0000000000 --- a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "filament", - "name": "Bambu ABS @BBL X1E 0.8 nozzle", - "inherits": "Bambu ABS @BBL X1C 0.8 nozzle", - "from": "system", - "setting_id": "GFSB00_06", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json deleted file mode 100644 index e281fa4032..0000000000 --- a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "filament", - "name": "Bambu ABS @BBL X1E", - "inherits": "Bambu ABS @BBL X1C", - "from": "system", - "setting_id": "GFSB00_04", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json deleted file mode 100644 index a2a1ee66dd..0000000000 --- a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "filament", - "name": "Bambu ASA @BBL X1E 0.2 nozzle", - "inherits": "Bambu ASA @BBL X1C 0.2 nozzle", - "from": "system", - "setting_id": "GFSB01_06", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.2 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json deleted file mode 100644 index 795272b92d..0000000000 --- a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "Bambu ASA @BBL X1E 0.4 nozzle", - "inherits": "Bambu ASA @BBL X1C 0.4 nozzle", - "from": "system", - "setting_id": "GFSB01_07", - "instantiation": "true", - "chamber_temperatures": [ - "0" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json deleted file mode 100644 index 9d15dcb1c2..0000000000 --- a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "filament", - "name": "Bambu ASA @BBL X1E", - "inherits": "Bambu ASA @BBL X1C", - "from": "system", - "setting_id": "GFSB01_05", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json deleted file mode 100644 index 56aecc4f50..0000000000 --- a/resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Bambu PA-CF @BBL X1E", - "inherits": "Bambu PA-CF @BBL X1C", - "from": "system", - "setting_id": "GFSN03_00", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json deleted file mode 100644 index 98cd1f7621..0000000000 --- a/resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Bambu PA6-CF @BBL X1E", - "inherits": "Bambu PA6-CF @base", - "from": "system", - "setting_id": "GFSN05_03", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json index 8e02c61fdb..6d4344b3a7 100644 --- a/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json @@ -17,9 +17,6 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json deleted file mode 100644 index a89ee103c4..0000000000 --- a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "Bambu PC @BBL X1E 0.2 nozzle", - "inherits": "Bambu PC @BBL X1C 0.2 nozzle", - "from": "system", - "setting_id": "GFSC00_09", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.2 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json deleted file mode 100644 index 3464603199..0000000000 --- a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "Bambu PC @BBL X1E 0.6 nozzle", - "inherits": "Bambu PC @BBL X1C 0.6 nozzle", - "from": "system", - "setting_id": "GFSC00_10", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.6 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json deleted file mode 100644 index 1930bde03d..0000000000 --- a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "Bambu PC @BBL X1E 0.8 nozzle", - "inherits": "Bambu PC @BBL X1C 0.8 nozzle", - "from": "system", - "setting_id": "GFSC00_11", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E.json deleted file mode 100644 index 75cdf76d8e..0000000000 --- a/resources/profiles/BBL/filament/Bambu PC @BBL X1E.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "Bambu PC @BBL X1E", - "inherits": "Bambu PC @BBL X1C", - "from": "system", - "setting_id": "GFSC00_12", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json deleted file mode 100644 index 44be4cef2c..0000000000 --- a/resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Bambu PET-CF @BBL X1E", - "inherits": "Bambu PET-CF @BBL X1C", - "from": "system", - "setting_id": "GFST01_00", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json index c7dd9923cd..f1e94f7f99 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json @@ -12,7 +12,6 @@ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json index 0a24cb5a1a..e12b65d701 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json @@ -22,8 +22,6 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json index d68745bb17..c40928fb49 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json @@ -12,7 +12,6 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json index d0ea93c38c..eddfde35c1 100644 --- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json @@ -23,7 +23,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json index 8d0e7ce354..9ff725c287 100644 --- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json @@ -26,8 +26,6 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json index f3160585a6..5e72c32a96 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json @@ -17,9 +17,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json index ddaeb7a616..7dbd894526 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json index d8d8307fc0..7e98cd452b 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json @@ -10,7 +10,6 @@ ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json index 2cb005d6f5..d5cb0165b3 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json @@ -12,8 +12,6 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json index 4199fd943d..d8e67b7b16 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json @@ -11,9 +11,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json index 824e96a5e3..724412a738 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json index 7e2d1f4fc9..4764dde452 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json @@ -10,7 +10,6 @@ ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json index a7e1e76634..0351e674a0 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json @@ -12,8 +12,6 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json index 7ed6ab8f3e..75ef9a15ad 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json index 91995ef069..1739a9ebdc 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json @@ -14,9 +14,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json index 85c560fcdb..2ce7e49f44 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json index 5d75934310..a4ecedcc8a 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json @@ -11,9 +11,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json index fdc02d06c5..7d18fcfe2a 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json @@ -11,9 +11,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json index eb6f63a2f3..85fdd47846 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json index 418cc8f9ca..78626f437c 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json @@ -14,9 +14,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json index 3b5c25a41f..e9017e3513 100644 --- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json @@ -20,8 +20,6 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json index c917e0745a..f22fe330ce 100644 --- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json @@ -17,7 +17,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json index bcf6a2ad8f..f963959089 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json @@ -17,9 +17,6 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json index cf064eb4de..b7a0f007a5 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json @@ -17,7 +17,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json index d136f6380d..52fa72bd5b 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json @@ -14,9 +14,6 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json b/resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json deleted file mode 100644 index 043f8661f7..0000000000 --- a/resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Bambu Support G @BBL X1E", - "inherits": "Bambu Support G @BBL X1C", - "from": "system", - "setting_id": "GFSS01_00", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json index 1b18733d10..b7ecb14a81 100644 --- a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json @@ -17,7 +17,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json index 206d74ec83..ebd8d00134 100644 --- a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json @@ -11,9 +11,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json b/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json index 0916bf63a5..838fc4eb2e 100644 --- a/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json @@ -14,9 +14,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json deleted file mode 100644 index 217ee39225..0000000000 --- a/resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "filament", - "name": "Generic ABS @BBL X1E 0.2 nozzle", - "inherits": "Generic ABS @0.2 nozzle", - "from": "system", - "setting_id": "GFSB99_04", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.2 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ABS @BBL X1E.json b/resources/profiles/BBL/filament/Generic ABS @BBL X1E.json deleted file mode 100644 index f8755a9f65..0000000000 --- a/resources/profiles/BBL/filament/Generic ABS @BBL X1E.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "Generic ABS @BBL X1E", - "inherits": "Generic ABS", - "from": "system", - "setting_id": "GFSB99_03", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json deleted file mode 100644 index 758d7aa64b..0000000000 --- a/resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "filament", - "name": "Generic ASA @BBL X1E 0.2 nozzle", - "inherits": "Generic ASA @0.2 nozzle", - "from": "system", - "setting_id": "GFSB98_01", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.2 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ASA @BBL X1E.json b/resources/profiles/BBL/filament/Generic ASA @BBL X1E.json deleted file mode 100644 index c93c41ffb7..0000000000 --- a/resources/profiles/BBL/filament/Generic ASA @BBL X1E.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "Generic ASA @BBL X1E", - "inherits": "Generic ASA", - "from": "system", - "setting_id": "GFSB98_02", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json index f4f53fb2d3..ea504f770a 100644 --- a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json @@ -12,7 +12,6 @@ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json index 9890712738..cf3280305b 100644 --- a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json @@ -17,9 +17,6 @@ "Bambu Lab P1P 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json deleted file mode 100644 index 6c2b48142f..0000000000 --- a/resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Generic PA-CF @BBL X1E", - "inherits": "Generic PA-CF", - "from": "system", - "setting_id": "GFSN98_00", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PA.json b/resources/profiles/BBL/filament/Generic PA.json index ac30ee5409..2fb23d1705 100644 --- a/resources/profiles/BBL/filament/Generic PA.json +++ b/resources/profiles/BBL/filament/Generic PA.json @@ -30,9 +30,6 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json deleted file mode 100644 index ed8ebb495e..0000000000 --- a/resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "Generic PC @BBL X1E 0.2 nozzle", - "inherits": "Generic PC @0.2 nozzle", - "from": "system", - "setting_id": "GFSC99_05", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.2 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PC @BBL X1E.json b/resources/profiles/BBL/filament/Generic PC @BBL X1E.json deleted file mode 100644 index 9d8c61a978..0000000000 --- a/resources/profiles/BBL/filament/Generic PC @BBL X1E.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "filament", - "name": "Generic PC @BBL X1E", - "inherits": "Generic PC", - "from": "system", - "setting_id": "GFSC99_06", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json index 0c415d9844..ce6645dbf1 100644 --- a/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json b/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json index 59be4dea79..6775d1e85f 100644 --- a/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json @@ -29,9 +29,6 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PETG.json b/resources/profiles/BBL/filament/Generic PETG.json index 4052484a56..50827d352f 100644 --- a/resources/profiles/BBL/filament/Generic PETG.json +++ b/resources/profiles/BBL/filament/Generic PETG.json @@ -14,9 +14,6 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json index d80a580773..734c0d5faf 100644 --- a/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json @@ -11,8 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ], "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}" diff --git a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json index 51a76c165a..b5312c39f6 100644 --- a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json index f2e682804f..ca0e526bdf 100644 --- a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json @@ -12,14 +12,11 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", "Bambu Lab X1 0.6 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA Silk.json b/resources/profiles/BBL/filament/Generic PLA Silk.json index c1011d708b..183cea5d65 100644 --- a/resources/profiles/BBL/filament/Generic PLA Silk.json +++ b/resources/profiles/BBL/filament/Generic PLA Silk.json @@ -20,9 +20,6 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA-CF.json b/resources/profiles/BBL/filament/Generic PLA-CF.json index b4e3affc2c..d1c4a8e9bd 100644 --- a/resources/profiles/BBL/filament/Generic PLA-CF.json +++ b/resources/profiles/BBL/filament/Generic PLA-CF.json @@ -14,9 +14,6 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA.json b/resources/profiles/BBL/filament/Generic PLA.json index 70ccc0d984..800947d83a 100644 --- a/resources/profiles/BBL/filament/Generic PLA.json +++ b/resources/profiles/BBL/filament/Generic PLA.json @@ -14,10 +14,7 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ], "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}" diff --git a/resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json deleted file mode 100644 index b032627561..0000000000 --- a/resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "filament", - "name": "Generic PPA-CF @BBL X1E", - "inherits": "Generic PPA-CF @base", - "from": "system", - "setting_id": "GFSN97_01", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "filament_type": [ - "PPA-CF" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json deleted file mode 100644 index fec89c9804..0000000000 --- a/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "type": "filament", - "name": "Generic PPA-GF @BBL X1E", - "inherits": "Generic PPA-GF @base", - "from": "system", - "setting_id": "GFSN96_01", - "instantiation": "true", - "chamber_temperatures": [ - "60" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PPA-GF" - ], - "filament_vendor": [ - "Bambu Lab" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PPS @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPS @BBL X1E.json deleted file mode 100644 index 9afaeeb5ea..0000000000 --- a/resources/profiles/BBL/filament/Generic PPS @BBL X1E.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "Generic PPS @BBL X1E", - "inherits": "Generic PPS @base", - "from": "system", - "setting_id": "GFST97_00", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json deleted file mode 100644 index 929ccff925..0000000000 --- a/resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "Generic PPS-CF @BBL X1E", - "inherits": "Generic PPS-CF @base", - "from": "system", - "setting_id": "GFST98_00", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json index 6df4727ea0..63afb9af10 100644 --- a/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PVA.json b/resources/profiles/BBL/filament/Generic PVA.json index 7db3aac32b..fe621b3df7 100644 --- a/resources/profiles/BBL/filament/Generic PVA.json +++ b/resources/profiles/BBL/filament/Generic PVA.json @@ -14,9 +14,6 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic TPU.json b/resources/profiles/BBL/filament/Generic TPU.json index 273e917570..b8b689644f 100644 --- a/resources/profiles/BBL/filament/Generic TPU.json +++ b/resources/profiles/BBL/filament/Generic TPU.json @@ -18,10 +18,7 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >30)||(bed_temperature_initial_layer[current_extruder] >30)}M106 P3 S180\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}" diff --git a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json index 4ffd147c38..75e17fe8c8 100644 --- a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 0.2 nozzle", "Bambu Lab X1 Carbon 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json index 7d5a7ecd57..421c52ff84 100644 --- a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json @@ -11,9 +11,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json index 80f5acd18e..d8e4eb5116 100644 --- a/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json b/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json index 15c06a2ca6..28e21b831e 100644 --- a/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json @@ -11,9 +11,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json deleted file mode 100644 index ceb5d54a40..0000000000 --- a/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "filament", - "name": "PolyLite ABS @BBL X1E 0.2 nozzle", - "inherits": "PolyLite ABS @BBL X1C 0.2 nozzle", - "from": "system", - "setting_id": "GFSB60_03", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.2 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json b/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json deleted file mode 100644 index ae174b951f..0000000000 --- a/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "PolyLite ABS @BBL X1E", - "inherits": "PolyLite ABS @BBL X1C", - "from": "system", - "setting_id": "GFSB60_01", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json deleted file mode 100644 index 7c9c00acac..0000000000 --- a/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "filament", - "name": "PolyLite ASA @BBL X1E 0.2 nozzle", - "inherits": "PolyLite ASA @BBL X1E", - "from": "system", - "setting_id": "GFSB61_03", - "instantiation": "true", - "filament_max_volumetric_speed": [ - "2" - ], - "compatible_printers": [ - "Bambu Lab X1E 0.2 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json b/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json deleted file mode 100644 index 2d259d6dc1..0000000000 --- a/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "PolyLite ASA @BBL X1E", - "inherits": "PolyLite ASA @BBL X1C", - "from": "system", - "setting_id": "GFSB61_02", - "instantiation": "true", - "compatible_printers": [ - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle" - ] -} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json index 5bf2589627..9a58b91bfb 100644 --- a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json index 829f11eec3..ea9688b83e 100644 --- a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json +++ b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json @@ -20,9 +20,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json index e8a4157228..353f029cbc 100644 --- a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json index c9c27d9143..e214da24df 100644 --- a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json @@ -14,9 +14,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json index ed5b54fb10..123f71d69e 100644 --- a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json index c3444436a2..2925ff8bbf 100644 --- a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json @@ -14,9 +14,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json index b05b011f21..25394b7ff7 100644 --- a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json index 551e467844..686d1dd3cb 100644 --- a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json +++ b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json @@ -11,9 +11,6 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.4 nozzle", - "Bambu Lab X1E 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json deleted file mode 100644 index ebc0ce597e..0000000000 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "type": "machine", - "name": "Bambu Lab X1E 0.2 nozzle", - "inherits": "Bambu Lab X1E 0.4 nozzle", - "from": "system", - "setting_id": "GM025", - "instantiation": "true", - "nozzle_diameter": [ - "0.2" - ], - "printer_model": "Bambu Lab X1E", - "printer_variant": "0.2", - "default_filament_profile": [ - "Bambu PLA Basic @BBL X1C 0.2 nozzle" - ], - "default_print_profile": "0.10mm Standard @BBL X1C 0.2 nozzle", - "max_layer_height": [ - "0.14" - ], - "min_layer_height": [ - "0.04" - ], - "nozzle_type": "stainless_steel", - "retraction_length": [ - "0.4" - ], - "upward_compatible_machine": [ - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle" - ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" -} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json deleted file mode 100644 index 1f08b9bb5f..0000000000 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "type": "machine", - "name": "Bambu Lab X1E 0.4 nozzle", - "inherits": "fdm_bbl_3dp_001_common", - "from": "system", - "setting_id": "GM026", - "instantiation": "true", - "nozzle_diameter": [ - "0.4" - ], - "printer_model": "Bambu Lab X1E", - "printer_variant": "0.4", - "bed_exclude_area": [ - "0x0", - "18x0", - "18x28", - "0x28" - ], - "default_filament_profile": [ - "Bambu PLA Basic @BBL X1C" - ], - "default_print_profile": "0.20mm Standard @BBL X1C", - "extruder_offset": [ - "0x2" - ], - "machine_load_filament_time": "29", - "machine_unload_filament_time": "28", - "scan_first_layer": "1", - "support_air_filtration": "1", - "support_chamber_temp_control": "1", - "upward_compatible_machine": [ - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab P1P 0.4 nozzle", - "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle" - ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", - "machine_end_gcode": ";===== date: 20230428 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM141 S0 ; turn off chamber \nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X128 Y250 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\n" -} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json deleted file mode 100644 index d5da018423..0000000000 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "type": "machine", - "name": "Bambu Lab X1E 0.6 nozzle", - "inherits": "Bambu Lab X1E 0.4 nozzle", - "from": "system", - "setting_id": "GM027", - "instantiation": "true", - "nozzle_diameter": [ - "0.6" - ], - "printer_model": "Bambu Lab X1E", - "printer_variant": "0.6", - "default_filament_profile": [ - "Bambu PLA Basic @BBL X1C" - ], - "default_print_profile": "0.30mm Standard @BBL X1C 0.6 nozzle", - "max_layer_height": [ - "0.42" - ], - "min_layer_height": [ - "0.12" - ], - "retraction_length": [ - "1.4" - ], - "retraction_minimum_travel": [ - "3" - ], - "upward_compatible_machine": [ - "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1P 0.6 nozzle", - "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle" - ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" -} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json deleted file mode 100644 index 24c677e158..0000000000 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "type": "machine", - "name": "Bambu Lab X1E 0.8 nozzle", - "inherits": "Bambu Lab X1E 0.4 nozzle", - "from": "system", - "setting_id": "GM028", - "instantiation": "true", - "nozzle_diameter": [ - "0.8" - ], - "printer_model": "Bambu Lab X1E", - "printer_variant": "0.8", - "default_filament_profile": [ - "Bambu PLA Basic @BBL X1C 0.8 nozzle" - ], - "default_print_profile": "0.40mm Standard @BBL X1C 0.8 nozzle", - "max_layer_height": [ - "0.56" - ], - "min_layer_height": [ - "0.16" - ], - "retract_length_toolchange": [ - "3" - ], - "retraction_length": [ - "3" - ], - "upward_compatible_machine": [ - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab P1P 0.8 nozzle", - "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle" - ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" -} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E.json b/resources/profiles/BBL/machine/Bambu Lab X1E.json deleted file mode 100644 index 0c7396a5c1..0000000000 --- a/resources/profiles/BBL/machine/Bambu Lab X1E.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "machine_model", - "name": "Bambu Lab X1E", - "nozzle_diameter": "0.4;0.2;0.6;0.8", - "bed_model": "bbl-3dp-X1.stl", - "bed_texture": "bbl-3dp-logo.svg", - "family": "BBL-3DP", - "machine_tech": "FFF", - "model_id": "C13", - "url": "http://www.bambulab.com/Parameters/printer_model/Bambu Lab X1 Carbon.json", - "default_materials": "Bambu ABS @BBL X1E;Bambu PC @BBL X1E;Generic PLA Silk @BBL X1C;Generic PLA @BBL X1C;Bambu PLA Matte @BBL X1C;Bambu PLA Basic @BBL X1C;Bambu Support W @BBL X1C;Bambu TPU 95A @BBL X1C;PolyLite PLA @BBL X1C;PolyTerra PLA @BBL X1C" -} \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json index 7a9b9bf315..f2af60320d 100644 --- a/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json b/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json index f591722386..1742e8dc4e 100644 --- a/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json +++ b/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json index d584de99c7..9c87571fef 100644 --- a/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json index 5fff3ebd87..d699cb76cf 100644 --- a/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json b/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json index 16c75d85ce..ecfd6a45ec 100644 --- a/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json +++ b/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json index d36cce2026..63e4db5ee9 100644 --- a/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json index d486de8697..cc737b50b4 100644 --- a/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle", - "Bambu Lab X1E 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json b/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json index 2465e38c1d..6f98d9b8cb 100644 --- a/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json +++ b/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json index ad403a0007..c2ffcfa7df 100644 --- a/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json b/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json index 0a01e92daa..dbe5144430 100644 --- a/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json +++ b/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json @@ -17,7 +17,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } diff --git a/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json b/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json index 1d05bdfa6f..8ac7f03d8c 100644 --- a/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json +++ b/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json b/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json index 27b9c03128..06af7e79e0 100644 --- a/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json +++ b/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json @@ -11,7 +11,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json b/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json index 4ef6dae40e..204262d78f 100644 --- a/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json +++ b/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json index 7870260cab..c162ab88e8 100644 --- a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json index 3a50374efa..fa77ea78fd 100644 --- a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json b/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json index 211a43a31e..eb00aab2a6 100644 --- a/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json +++ b/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab X1E 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json index 31e55d13fd..3ce90daed1 100644 --- a/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json @@ -7,7 +7,6 @@ "instantiation": "true", "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json index b1a7451a46..e61d98d21c 100644 --- a/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json @@ -10,7 +10,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json index e6cd89b08b..9bc34fc8cd 100644 --- a/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json index 9afac00ad1..4cded0e547 100644 --- a/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json index b6d0c07917..ac53792b5f 100644 --- a/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json @@ -7,7 +7,6 @@ "instantiation": "true", "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json index a6951dd6bb..f46d7d641a 100644 --- a/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab X1E 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json index 0b259149d0..a0cf1b8369 100644 --- a/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json index c5c002865d..45b1ef9d3c 100644 --- a/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json @@ -8,7 +8,6 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle", - "Bambu Lab X1E 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle" ] } \ No newline at end of file From 87bee0c6ecb062e17780b38fb7d148f624ce33da Mon Sep 17 00:00:00 2001 From: Arthur Date: Wed, 27 Sep 2023 19:26:43 +0800 Subject: [PATCH 35/92] FIX: auto-arranging crash for single plate arranging Jira: STUDIO-4651 Change-Id: I8e4be997292d7f7dbd741368e20db5a0d2e693cb (cherry picked from commit 7d75f5903f67fb332eaff4563308d5f196e45d1f) --- src/libnest2d/include/libnest2d/selections/firstfit.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libnest2d/include/libnest2d/selections/firstfit.hpp b/src/libnest2d/include/libnest2d/selections/firstfit.hpp index ef05398dad..bb7f4b45c0 100644 --- a/src/libnest2d/include/libnest2d/selections/firstfit.hpp +++ b/src/libnest2d/include/libnest2d/selections/firstfit.hpp @@ -163,7 +163,8 @@ public: if (was_packed && it->get().has_tried_with_excluded) { placers[j].clearItems([](const Item &itm) { return itm.isFixed() && !itm.is_wipe_tower; }); - placers[j].preload(fixed_bins[placers.size() - 1]); + if (fixed_bins.size() >= placers.size()) + placers[j].preload(fixed_bins[placers.size() - 1]); } bool placer_not_packed = !was_packed && !placers.empty() && j == placers.size() && placers[j - 1].getPackedSize() == 0; // large item is not placed into the bin if (placer_not_packed) { From 9cbf3a4a1eb053fea45de03a1872b1b1d162d5a8 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Wed, 27 Sep 2023 18:03:25 +0800 Subject: [PATCH 36/92] FIX:(cali) should not save preset when the select block is empty Jira: 4644 Change-Id: I18b690a983d34521ca7ef6f0a6707e2df9bb1d3d --- src/slic3r/GUI/CalibrationWizardSavePage.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/CalibrationWizardSavePage.cpp b/src/slic3r/GUI/CalibrationWizardSavePage.cpp index d2e027286b..b399673682 100644 --- a/src/slic3r/GUI/CalibrationWizardSavePage.cpp +++ b/src/slic3r/GUI/CalibrationWizardSavePage.cpp @@ -1292,7 +1292,7 @@ void CalibrationFlowCoarseSavePage::set_curr_flow_ratio(const float value) { bool CalibrationFlowCoarseSavePage::get_result(float* out_value, wxString* out_name) { // Check if the value is valid - if (m_coarse_flow_ratio <= 0.0 || m_coarse_flow_ratio >= 2.0) { + if (m_optimal_block_coarse->GetSelection() == -1 || m_coarse_flow_ratio <= 0.0 || m_coarse_flow_ratio >= 2.0) { MessageDialog msg_dlg(nullptr, _L("Please choose a block with smoothest top surface"), wxEmptyString, wxICON_WARNING | wxOK); msg_dlg.ShowModal(); return false; @@ -1424,7 +1424,7 @@ void CalibrationFlowFineSavePage::set_curr_flow_ratio(const float value) { bool CalibrationFlowFineSavePage::get_result(float* out_value, wxString* out_name) { // Check if the value is valid - if (m_fine_flow_ratio <= 0.0 || m_fine_flow_ratio >= 2.0) { + if (m_optimal_block_fine->GetSelection() == -1 || m_fine_flow_ratio <= 0.0 || m_fine_flow_ratio >= 2.0) { MessageDialog msg_dlg(nullptr, _L("Please choose a block with smoothest top surface."), wxEmptyString, wxICON_WARNING | wxOK); msg_dlg.ShowModal(); return false; From 28c33d21b42bb6d85caf018924fc75a6bec1ce00 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Thu, 28 Sep 2023 10:42:11 +0800 Subject: [PATCH 37/92] ENH: translation: update some translation for plate Change-Id: Id0e3f7d93726b40f437202602a0527f99df20f44 --- bbl/i18n/BambuStudio.pot | 2 +- bbl/i18n/de/BambuStudio_de.po | 2 +- bbl/i18n/en/BambuStudio_en.po | 2 +- bbl/i18n/es/BambuStudio_es.po | 2 +- bbl/i18n/fr/BambuStudio_fr.po | 2 +- bbl/i18n/hu/BambuStudio_hu.po | 2 +- bbl/i18n/it/BambuStudio_it.po | 2 +- bbl/i18n/ja/BambuStudio_ja.po | 2 +- bbl/i18n/ko/BambuStudio_ko.po | 2 +- bbl/i18n/nl/BambuStudio_nl.po | 2 +- bbl/i18n/sv/BambuStudio_sv.po | 2 +- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 46 +++++++++++++++------------- resources/i18n/zh_cn/BambuStudio.mo | Bin 267120 -> 267170 bytes 13 files changed, 35 insertions(+), 33 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 0008e79237..851f8c51e8 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 96644f5883..36d3693904 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index 65c11ff32f..fdefbe2e57 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index cd8d31f975..af74fca1d8 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index e8161c2f6f..cfbe5ee334 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index d6e8dd6f26..dd38aa9e63 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index 459cc15abd..604c9694f4 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index 662d994b7e..dc1e8afc11 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index 56bf71492c..f567d77aa4 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 09876afa1a..d2e7b7795c 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 85d9ffaac3..66cbc0d398 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index 170c0ba3c8..c1108cf491 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-26 18:29+0800\n" +"POT-Creation-Date: 2023-09-28 10:41+0800\n" "PO-Revision-Date: 2023-09-18 09:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -3804,7 +3804,8 @@ msgid "" "rating information has failed. \n" "If you need to resynchronize, please reselect the printer." msgstr "" -"您已完成打印商城模型,但评分信息的同步失败了。\n如果需要重新同步,请重新选择打印机。" +"您已完成打印商城模型,但评分信息的同步失败了。\n" +"如果需要重新同步,请重新选择打印机。" msgid "How do you like this printing file?" msgstr "您喜欢这个打印文件吗?" @@ -5188,22 +5189,22 @@ msgid "Busy" msgstr "忙碌" msgid "Bambu Cool Plate" -msgstr "低温打印板" +msgstr "Bambu 低温打印板" msgid "PLA Plate" msgstr "PLA打印板" msgid "Bambu Engineering Plate" -msgstr "Bambu 工程构建板" +msgstr "Bambu 工程打印板" msgid "Bambu Smooth PEI Plate" -msgstr "Bambu 光滑PEI构建板" +msgstr "Bambu 光面PEI打印板" msgid "High temperature Plate" -msgstr "高温构建板" +msgstr "高温打印板" msgid "Bambu Textured PEI Plate" -msgstr "Bambu 纹理PEI构建板" +msgstr "Bambu 纹理PEI打印板" msgid "Send print job to" msgstr "发送打印任务至" @@ -5369,7 +5370,7 @@ msgstr "名称长度超过限制。" msgid "" "Caution to use! Flow calibration on Textured PEI Plate may fail due to the " "scattered surface." -msgstr "小心使用!纹理PEI板上的流量校准可能会因表面散射而失败。" +msgstr "小心使用!纹理PEI打印板上的流量校准可能会因表面散射而失败。" msgid "Automatic flow calibration using Micro Lidar" msgstr "使用微型激光雷达进行自动流量校准" @@ -5683,7 +5684,7 @@ msgstr "低温打印板 / PLA打印板" msgid "" "Bed temperature when cool plate is installed. Value 0 means the filament " "does not support to print on the Cool Plate" -msgstr "安装低温打印热床时的热床温度。0值表示这个耗材丝不支持低温打印热床" +msgstr "安装低温打印板时的热床温度。0值表示这个耗材丝不支持低温打印板" msgid "Engineering Plate" msgstr "工程材料打印板" @@ -5691,17 +5692,18 @@ msgstr "工程材料打印板" msgid "" "Bed temperature when engineering plate is installed. Value 0 means the " "filament does not support to print on the Engineering Plate" -msgstr "安装工程材料热床时的热床温度。0值表示这个耗材丝不支持工程材料热床" +msgstr "安装工程材料打印板时的热床温度。0值表示这个耗材丝不支持工程材料打印板" msgid "Smooth PEI Plate / High Temp Plate" -msgstr "光滑构建板/高温构建板" +msgstr "光面PEI打印板 / 高温打印板" msgid "" "Bed temperature when Smooth PEI Plate/High temperature plate is installed. " "Value 0 means the filament does not support to print on the Smooth PEI Plate/" "High Temp Plate" msgstr "" -"安装光滑PEI板/高温板时的热床温度,值0表示灯丝不支持在平滑PEI板/高温板上打印" +"安装光面PEI打印板/高温打印板时的热床温度,值0表示灯丝不支持在光面PEI打印板/高" +"温打印板上打印" msgid "Textured PEI Plate" msgstr "纹理PEI打印板" @@ -5709,7 +5711,7 @@ msgstr "纹理PEI打印板" msgid "" "Bed temperature when Textured PEI Plate is installed. Value 0 means the " "filament does not support to print on the Textured PEI Plate" -msgstr "安装纹理PEI热床时的热床温度。0值表示这个耗材丝不支持纹理PEI热床" +msgstr "安装纹理PEI打印板时的热床温度。0值表示这个耗材丝不支持纹理PEI打印板" msgid "Volumetric speed limitation" msgstr "体积速度限制" @@ -6907,7 +6909,7 @@ msgstr "其它层" msgid "" "Bed temperature for layers except the initial one. Value 0 means the " "filament does not support to print on the Cool Plate" -msgstr "非首层热床温度。0值表示这个耗材丝不支持低温打印热床" +msgstr "非首层热床温度。0值表示这个耗材丝不支持低温打印板" msgid "°C" msgstr "°C" @@ -6915,17 +6917,17 @@ msgstr "°C" msgid "" "Bed temperature for layers except the initial one. Value 0 means the " "filament does not support to print on the Engineering Plate" -msgstr "非首层热床温度。0值表示这个耗材丝不支持工程材料热床" +msgstr "非首层热床温度。0值表示这个耗材丝不支持工程材料打印板" msgid "" "Bed temperature for layers except the initial one. Value 0 means the " "filament does not support to print on the High Temp Plate" -msgstr "非首层热床温度。0值表示这个耗材丝不支持高温打印热床" +msgstr "非首层热床温度。0值表示这个耗材丝不支持高温打印板" msgid "" "Bed temperature for layers except the initial one. Value 0 means the " "filament does not support to print on the Textured PEI Plate" -msgstr "非首层热床温度。0值表示这个耗材丝不支持纹理PEI热床" +msgstr "非首层热床温度。0值表示这个耗材丝不支持纹理PEI打印板" msgid "Initial layer" msgstr "首层" @@ -6936,22 +6938,22 @@ msgstr "首层床温" msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Cool Plate" -msgstr "首层热床温度。0值表示这个耗材丝不支持低温打印热床" +msgstr "首层热床温度。0值表示这个耗材丝不支持低温打印板" msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Engineering Plate" -msgstr "首层热床温度。0值表示这个耗材丝不支持工程材料热床" +msgstr "首层热床温度。0值表示这个耗材丝不支持工程材料打印板" msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the High Temp Plate" -msgstr "首层热床温度。0值表示这个耗材丝不支持高温打印热床" +msgstr "首层热床温度。0值表示这个耗材丝不支持高温打印板" msgid "" "Bed temperature of the initial layer. Value 0 means the filament does not " "support to print on the Textured PEI Plate" -msgstr "首层热床温度。0值表示这个耗材丝不支持纹理PEI热床" +msgstr "首层热床温度。0值表示这个耗材丝不支持纹理PEI打印板" msgid "Bed types supported by the printer" msgstr "打印机所支持的打印板类型" @@ -9720,7 +9722,7 @@ msgid " ℃" msgstr "" msgid "Plate Type" -msgstr "热床类型" +msgstr "打印板类型" msgid "filament position" msgstr "耗材丝位置" diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index 8442c23cd407981a471e05cf0105552aa0a0c8cd..82ff2af54bdf91a29f3cb997db78b2bda1fb66ba 100644 GIT binary patch delta 20960 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 delta 20902 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 K_q*WL{{Ih`g`yb% From 5b0a5b81e283dd750a8f9df82be74f37e1d55412 Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Wed, 27 Sep 2023 11:54:29 +0800 Subject: [PATCH 38/92] ENH: [STUDIO-4579] limit request rating result count Jira: 4579 Change-Id: I1d546c33a58247f22c346fb17580927c282655d5 --- src/slic3r/GUI/StatusPanel.cpp | 160 +++++++++++++++++++-------------- src/slic3r/GUI/StatusPanel.hpp | 9 +- 2 files changed, 103 insertions(+), 66 deletions(-) diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 36760cef5e..965fd0ef9d 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -437,12 +437,30 @@ void PrintingTaskPanel::create_panel(wxWindow* parent) m_score_staticline->Hide(); sizer->Add(0, 0, 0, wxTOP, FromDIP(15)); sizer->Add(m_score_staticline, 0, wxEXPAND | wxALL, FromDIP(10)); - m_request_failed_info = new wxStaticText(parent, wxID_ANY, _L("You have completed printing the mall model, but the synchronization of rating information has failed. \nIf you need to resynchronize, please reselect the printer."), wxDefaultPosition, wxDefaultSize, 0); + m_request_failed_panel = new wxPanel(parent, wxID_ANY); + m_request_failed_panel->SetBackgroundColour(*wxWHITE); + wxBoxSizer *static_request_failed_panel_sizer = new wxBoxSizer(wxHORIZONTAL); + m_request_failed_info = new wxStaticText(m_request_failed_panel, wxID_ANY, _L("You have completed printing the mall model, \nbut the synchronization of rating information has failed."), wxDefaultPosition, wxDefaultSize, 0); m_request_failed_info->Wrap(-1); - sizer->Add(m_request_failed_info, 0, wxEXPAND | wxALL, FromDIP(10)); m_request_failed_info->SetForegroundColour(*wxRED); m_request_failed_info->SetFont(::Label::Body_10); - m_request_failed_info->Hide(); + static_request_failed_panel_sizer->Add(m_request_failed_info, 0, wxEXPAND | wxALL, FromDIP(10)); + StateColor btn_bg_green(std::pair(AMS_CONTROL_DISABLE_COLOUR, StateColor::Disabled), std::pair(wxColour(27, 136, 68), StateColor::Pressed), + std::pair(wxColour(61, 203, 115), StateColor::Hovered), std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Normal)); + StateColor btn_bd_green(std::pair(AMS_CONTROL_WHITE_COLOUR, StateColor::Disabled), std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Enabled)); + m_button_market_retry = new Button(m_request_failed_panel, _L("Retry")); + m_button_market_retry->SetBackgroundColor(btn_bg_green); + m_button_market_retry->SetBorderColor(btn_bd_green); + m_button_market_retry->SetTextColor(wxColour("#FFFFFE")); + m_button_market_retry->SetSize(wxSize(FromDIP(128), FromDIP(26))); + m_button_market_retry->SetMinSize(wxSize(-1, FromDIP(26))); + m_button_market_retry->SetCornerRadius(FromDIP(13)); + static_request_failed_panel_sizer->Add(0, 0, 1, wxEXPAND, 0); + static_request_failed_panel_sizer->Add(m_button_market_retry, 0, wxEXPAND | wxALL, FromDIP(10)); + m_request_failed_panel->SetSizer(static_request_failed_panel_sizer); + m_request_failed_panel->Hide(); + sizer->Add(m_request_failed_panel, 0, wxEXPAND | wxALL, FromDIP(10)); + m_score_subtask_info = new wxPanel(parent, wxID_ANY); m_score_subtask_info->SetBackgroundColour(*wxWHITE); @@ -482,10 +500,6 @@ void PrintingTaskPanel::create_panel(wxWindow* parent) static_score_star_sizer->Add(m_score_star[i], 0, wxEXPAND | wxLEFT, FromDIP(10)); } - StateColor btn_bg_green(std::pair(AMS_CONTROL_DISABLE_COLOUR, StateColor::Disabled), std::pair(wxColour(27, 136, 68), StateColor::Pressed), - std::pair(wxColour(61, 203, 115), StateColor::Hovered), std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Normal)); - StateColor btn_bd_green(std::pair(AMS_CONTROL_WHITE_COLOUR, StateColor::Disabled), std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Enabled)); - m_button_market_scoring = new Button(m_score_subtask_info, _L("Rate")); m_button_market_scoring->SetBackgroundColor(btn_bg_green); m_button_market_scoring->SetBorderColor(btn_bd_green); @@ -1605,6 +1619,7 @@ StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, co m_project_task_panel->get_pause_resume_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_pause_resume), NULL, this); m_project_task_panel->get_abort_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_abort), NULL, this); m_project_task_panel->get_market_scoring_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_scoring), NULL, this); + m_project_task_panel->get_market_retry_buttom()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_retry), NULL, this); m_project_task_panel->get_clean_button()->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_print_error_clean), NULL, this); m_setting_button->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler(StatusPanel::on_camera_enter), NULL, this); @@ -1653,6 +1668,7 @@ StatusPanel::~StatusPanel() m_project_task_panel->get_pause_resume_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_pause_resume), NULL, this); m_project_task_panel->get_abort_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_subtask_abort), NULL, this); m_project_task_panel->get_market_scoring_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_scoring), NULL, this); + m_project_task_panel->get_market_retry_buttom()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_market_retry), NULL, this); m_project_task_panel->get_clean_button()->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_print_error_clean), NULL, this); m_setting_button->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(StatusPanel::on_camera_enter), NULL, this); @@ -1716,13 +1732,17 @@ void StatusPanel::init_scaled_buttons() void StatusPanel::on_market_scoring(wxCommandEvent &event) { if (obj && obj->get_modeltask() && obj->get_modeltask()->design_id > 0 && m_rating_result.contains("id")) { // model is mall model and has rating_id - + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": on_market_scoring" ; if (m_score_data && m_score_data->rating_id == m_rating_result["id"].get()) { // current score data for model is same as mall model ScoreDialog m_score_dlg(this, m_score_data); int ret = m_score_dlg.ShowModal(); - + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": old data"; + if (ret == wxID_OK) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": old data is upload"; m_score_data->rating_id = -1; + m_project_task_panel->set_star_count_dirty(false); + requested_rating_map.clear(); m_print_finish = false; return; } @@ -1742,7 +1762,8 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { success_print = m_rating_result["successPrinted"].get(); ScoreDialog m_score_dlg(this, obj->get_modeltask()->design_id, obj->get_modeltask()->model_id, obj->get_modeltask()->profile_id, m_rating_result["id"].get(), success_print, star_count); - + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": new data"; + if (m_rating_result.contains("content")) { std::string comment = m_rating_result["content"].get(); if (!comment.empty()) { @@ -1759,7 +1780,10 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { int ret = m_score_dlg.ShowModal(); if (ret == wxID_OK) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": new data is upload"; m_score_data->rating_id = -1; + m_project_task_panel->set_star_count_dirty(false); + requested_rating_map.clear(); m_print_finish = false; return; } @@ -1770,11 +1794,15 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { m_score_data = new ScoreData(m_score_dlg.get_score_data()); m_project_task_panel->set_star_count(m_score_data->star_count); } - - } } +void StatusPanel::on_market_retry(wxCommandEvent &event) +{ + m_print_finish = false; + requested_rating_map.clear(); +} + void StatusPanel::on_subtask_pause_resume(wxCommandEvent &event) { if (obj) { @@ -1872,6 +1900,7 @@ bool StatusPanel::is_task_changed(MachineObject* obj) || last_profile_id != obj->profile_id_ || last_task_id != obj->task_id_ ) { + requested_rating_map.erase(last_task_id); last_subtask = obj->subtask_; last_profile_id = obj->profile_id_; last_task_id = obj->task_id_; @@ -2789,67 +2818,64 @@ void StatusPanel::update_subtask(MachineObject *obj) m_project_task_panel->enable_pause_resume_button(true, "pause"); } if (obj->print_status == "FINISH") { - m_project_task_panel->enable_abort_button(false); m_project_task_panel->enable_pause_resume_button(false, "resume_disable"); if (wxGetApp().has_model_mall()) { bool is_market_task = obj->get_modeltask() && obj->get_modeltask()->design_id > 0; if (is_market_task) { NetworkAgent *agent = wxGetApp().getAgent(); - if (agent && IsShownOnScreen() && !m_print_finish) { - m_project_task_panel->get_request_rating_failed_info()->Hide(); - int instance_id = obj->get_modeltask()->instance_id; - m_print_finish = true; - std::string dev_id = obj->dev_id; - boost::thread([this, agent, instance_id, dev_id] { - try { - std::string rating_result; - unsigned int http_code = 404; - std::string http_error; - int rating_id = -1; - int res = -1; - int request_times = 0; - do { - if (!this || !(this->obj) || this->obj->dev_id != dev_id || request_times > 3) return; - if (request_times) { - std::chrono::seconds sleepDuration(3); - } + if (agent && IsShownOnScreen()) { + if (requested_rating_map.find(obj->subtask_id_) == requested_rating_map.end()) { + requested_rating_map[obj->subtask_id_] = true; + m_project_task_panel->get_request_failed_panel()->Hide(); + int instance_id = obj->get_modeltask()->instance_id; + std::string dev_id = obj->dev_id; + boost::thread([this, agent, instance_id, dev_id] { + try { + std::string rating_result; + unsigned int http_code = 404; + std::string http_error; + int rating_id = -1; + int res = -1; + if (!this || !(this->obj) || this->obj->dev_id != dev_id) return; + if (m_model_mall_request_count > 20) return; res = agent->get_model_mall_rating_result(instance_id, rating_result, http_code, http_error); - BOOST_LOG_TRIVIAL(info) << "request times: "<< request_times; - request_times++; - } while (res != 0 && 404 == http_code); + m_model_mall_request_count++; + BOOST_LOG_TRIVIAL(info) << "request times :" << m_model_mall_request_count; + if (0 == res) { + m_rating_result = json::parse(rating_result); + if (m_rating_result.contains("id")) { + rating_id = m_rating_result["id"].get(); + if (!this || !(this->obj) || this->obj->dev_id != dev_id) return; + m_project_task_panel->market_scoring_show(); + BOOST_LOG_TRIVIAL(info) << "show scoring page"; + // this mall model has score, user do not click star, Initialize scores only once per print startup program + if ((m_rating_result.contains("score"))) { + int star_count = m_rating_result["score"].get(); + m_project_task_panel->set_star_count(star_count); + m_project_task_panel->set_star_count_dirty(true); + BOOST_LOG_TRIVIAL(info) << "Initialize scores"; - if (0 == res) { - m_rating_result = json::parse(rating_result); - if (m_rating_result.contains("id")) { - rating_id = m_rating_result["id"].get(); - if (!this || !(this->obj) || this->obj->dev_id != dev_id) return; - m_project_task_panel->market_scoring_show(); - BOOST_LOG_TRIVIAL(info) << "show scoring page"; - // this mall model has score, user do not click star, Initialize scores only once per print startup program - if ((m_rating_result.contains("score"))) { - int star_count = m_rating_result["score"].get(); - m_project_task_panel->set_star_count(star_count); - BOOST_LOG_TRIVIAL(info) << "Initialize scores"; - - if (0 != star_count) { - m_project_task_panel->get_market_scoring_button()->Enable(true); - m_project_task_panel->set_has_reted_text(true); - } else { - m_project_task_panel->set_has_reted_text(false); + if (0 != star_count) { + m_project_task_panel->get_market_scoring_button()->Enable(true); + m_project_task_panel->set_has_reted_text(true); + } else { + m_project_task_panel->set_has_reted_text(false); + } } } + m_model_mall_request_count = 0; + } else { + m_project_task_panel->get_request_failed_panel()->Show(); + BOOST_LOG_TRIVIAL(info) << "model mall result request failed"; + return; } - } else { - m_project_task_panel->get_request_rating_failed_info()->Show(); - BOOST_LOG_TRIVIAL(info) << "model mall result request failed"; - return; + } catch (...) { + m_project_task_panel->market_scoring_hide(); + BOOST_LOG_TRIVIAL(info) << "get mall model rating id failed and hide scoring page"; } - } catch (...) { - m_project_task_panel->market_scoring_hide(); - BOOST_LOG_TRIVIAL(info) << "get mall model rating id failed and hide scoring page"; - } - }); + }); + } } BOOST_LOG_TRIVIAL(info) << "SHOW_SCORE_BTU: design_id [" << obj->get_modeltask()->design_id << "] print_finish [" << m_print_finish << "]"; @@ -2862,7 +2888,7 @@ void StatusPanel::update_subtask(MachineObject *obj) } else { // model printing is not finished, hide scoring page m_project_task_panel->enable_abort_button(true); m_project_task_panel->market_scoring_hide(); - m_project_task_panel->get_request_rating_failed_info()->Hide(); + m_project_task_panel->get_request_failed_panel()->Hide(); if (m_print_finish) { m_print_finish = false; } @@ -4150,7 +4176,7 @@ std::pair ScoreDialog::create_local_thu bitmap_to_image_msg.first = imageCtrl; bitmap_to_image_msg.second = cur_image_msg; - + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": local picture is download"; return bitmap_to_image_msg; } @@ -4193,7 +4219,7 @@ std::pair ScoreDialog::create_oss_thumb bitmap_to_image_msg.first = imageCtrl; bitmap_to_image_msg.second = cur_image_msg; - + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": oss picture is download"; return bitmap_to_image_msg; } @@ -4364,7 +4390,7 @@ wxBoxSizer *ScoreDialog::get_photo_btn_sizer() { m_add_photo->Bind(wxEVT_LEFT_DOWN, [this](auto &e) { // add photo logic - wxFileDialog openFileDialog(this, "Select Images", "", "", "Image files (*.png;*.jpg)|*.png;*.jpg", wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_MULTIPLE); + wxFileDialog openFileDialog(this, "Select Images", "", "", "Image files (*.png;*.jpg;*jpeg)|*.png;*.jpg;*.jpeg", wxFD_OPEN | wxFD_FILE_MUST_EXIST | wxFD_MULTIPLE); if (openFileDialog.ShowModal() == wxID_CANCEL) return; @@ -4449,6 +4475,7 @@ wxBoxSizer *ScoreDialog::get_button_sizer() } std::set> need_upload_images = add_need_upload_imgs(); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": get need upload picture count: " << need_upload_images.size(); std::string comment = into_u8(m_comment_text->GetValue()); unsigned int http_code; @@ -4460,6 +4487,7 @@ wxBoxSizer *ScoreDialog::get_button_sizer() int ret = wxGetApp().getAgent()->get_oss_config(config, wxGetApp().app_config->get_country_code(), http_code, http_error); if (ret == -1) { error_info += into_u8(_L("Get oss config failed.")) + "\n\thttp code: " + std::to_string(http_code) + "\n\thttp error: " + http_error; + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": get oss config filed and http_error: " << http_error; m_upload_status_code = StatusCode::UPLOAD_EXIST_ISSUE; } if (m_upload_status_code == StatusCode::UPLOAD_PROGRESS) { @@ -4547,6 +4575,7 @@ wxBoxSizer *ScoreDialog::get_button_sizer() _L("Your comment result cannot be uploaded due to some reasons. As follows:\n\n error code: ") + std::to_string(http_code) + "\n " + _L("error message: ") + http_error + _L("\n\nWould you like to redirect to the webpage for rating?"), wxString(_L("info")), wxOK | wxNO | wxCENTER); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": upload rating picture failed and http error" << http_error; if (dlg_info->ShowModal() == wxID_OK) { market_model_scoring_page(m_design_id); EndModal(wxID_OK); @@ -4557,6 +4586,7 @@ wxBoxSizer *ScoreDialog::get_button_sizer() } else if (m_upload_status_code == StatusCode::UPLOAD_IMG_FAILED) { MessageDialog *dlg_info = new MessageDialog(this, _L("Some of your images failed to upload. Would you like to redirect to the webpage for rating?"), wxString(_L("info")), wxOK | wxNO | wxCENTER); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": upload rating picture failed or get oss config failed"; if (dlg_info->ShowModal() == wxID_OK) { market_model_scoring_page(m_design_id); EndModal(wxID_OK); diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index bf8d9382cf..f9094bc3c8 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -188,8 +188,10 @@ private: ScalableButton* m_button_abort; Button* m_button_market_scoring; Button* m_button_clean; + Button * m_button_market_retry; wxPanel * m_score_subtask_info; wxPanel * m_score_staticline; + wxPanel * m_request_failed_panel; // score page int m_star_count; std::vector m_score_star; @@ -225,13 +227,15 @@ public: ScalableButton* get_abort_button() {return m_button_abort;}; ScalableButton* get_pause_resume_button() {return m_button_pause_resume;}; Button* get_market_scoring_button() {return m_button_market_scoring;}; + Button * get_market_retry_buttom() { return m_button_market_retry; }; Button* get_clean_button() {return m_button_clean;}; wxStaticBitmap* get_bitmap_thumbnail() {return m_bitmap_thumbnail;}; - wxStaticText * get_request_rating_failed_info() { return m_request_failed_info; } + wxPanel * get_request_failed_panel() { return m_request_failed_panel; } int get_star_count() { return m_star_count; } void set_star_count(int star_count); std::vector &get_score_star() { return m_score_star; } bool get_star_count_dirty() { return m_star_count_dirty; } + void set_star_count_dirty(bool dirty) { m_star_count_dirty = dirty; } void set_has_reted_text(bool has_rated); }; @@ -464,6 +468,7 @@ protected: int m_last_timelapse = -1; int m_last_extrusion = -1; int m_last_vcamera = -1; + int m_model_mall_request_count = 0; bool m_is_load_with_temp = false; bool m_print_finish = false; json m_rating_result; @@ -473,6 +478,7 @@ protected: bool nozzle_temp_input = false; bool cham_temp_input = false; bool request_model_info_flag = false; + std::map requested_rating_map; int speed_lvl = 1; // 0 - 3 int speed_lvl_timeout {0}; boost::posix_time::ptime speed_dismiss_time; @@ -490,6 +496,7 @@ protected: void update_tasklist_info(); void on_market_scoring(wxCommandEvent &event); + void on_market_retry(wxCommandEvent &event); void on_subtask_pause_resume(wxCommandEvent &event); void on_subtask_abort(wxCommandEvent &event); void on_print_error_clean(wxCommandEvent &event); From ce3744016262b0d09ba1bf85c96bd69955821448 Mon Sep 17 00:00:00 2001 From: gerrit Date: Thu, 28 Sep 2023 10:48:47 +0800 Subject: [PATCH 39/92] ci: update build version to 01.07.07.82 Change-Id: I01dda519ae9acc3785d3d0107ba5e38d65b43410 --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index 9beda7c89f..da9a52823b 100644 --- a/version.inc +++ b/version.inc @@ -12,4 +12,4 @@ set(BBL_INTERNAL_TESTING "1") endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.07.07.81") +set(SLIC3R_VERSION "01.07.07.82") From c661e0257effd6d4dfad5b5dc77775a4d6009088 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Thu, 28 Sep 2023 18:10:28 +0800 Subject: [PATCH 40/92] ENH: update A1 mini start gcode 1.shorten prime line and change x axis freq sweep jira: [NEW] Signed-off-by: xun.zhang Change-Id: I3582f7fb17dfa173f33ad74f49d7d2b70036df5f --- .../profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json index d78a910e6d..9bbe2a9671 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json @@ -58,7 +58,7 @@ "Bambu Lab X1 0.4 nozzle", "Bambu Lab X1 Carbon 0.4 nozzle" ], - "machine_start_gcode": ";===== machine: A1 mini =========================\n;===== date: 20230912 =====================\n\n;===== start to heat heatbead&hotend==========\nM1002 gcode_claim_action : 2\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG392 S0 ;turn off clog detect\n;=====start printer sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B0 L100 C37 D10 M100 E37 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E43 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C49 D10 M100 E49 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C39 D10 M100 E48 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 W\nM18\n;=====avoid end stop =================\nG91\nG380 S2 Z30 F1200\nG380 S2 Z-20 F1200\nG1 Z5 F1200\nG90\n\n;===== reset machine status =================\nM290 X39 Y39 Z8\nM204 S6000\n\nM630 S0 P0\nG91\nM17 Z0.3 ; lower the z-motor current\n\nG90\nM17 X0.7 Y0.9 Z0.5 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\n;M221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\n;===== prepare print temperature and material ==========\nM1002 gcode_claim_action : 1\nM400\nM18\nM109 S100\nM104 S140\nM400\nM17\nM400\nG28 X\n\nM221 X0 Y0 Z0 ;turn off soft endstop\n\nM975 S1 ; turn on\n\nG1 X0.0 F30000\nG1 X-13.5 F3000\n\nM620 M ;enable remap\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n G392 S1 ;turn on clog detect\n M1002 gcode_claim_action : 4\n M400\n M1002 set_filament_type:UNKNOWN\n M109 S[nozzle_temperature_initial_layer]\n M104 S250\n M400\n T[initial_no_support_extruder]\n G1 X-13.5 F3000\n M400\n M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n M109 S250 ;set nozzle to common flush temp\n M106 P1 S0\n G92 E0\n G1 E50 F200\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n M104 S{nozzle_temperature_range_high[initial_no_support_extruder]}\n G92 E0\n G1 E50 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M400\n M106 P1 S178\n G92 E0\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G92 E0\n G1 E-0.5 F300\n\n G1 X0 F30000\n G1 X-13.5 F3000\n G1 X0 F30000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X0 F30000\n G1 X-13.5 F3000\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G392 S0 ;turn off clog detect\nM621 S[initial_no_support_extruder]A\n\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== mech mode fast check============================\nM1002 gcode_claim_action : 3\nG0 X50 Y175 F20000 ; find a soft place to home\nM104 S0\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-80}\n\nG1 X90 Y-1 Z5 F30000\nM400 P200\nM970.3 Q1 A7 K0 O2\nM974 Q1 S2 P0\n\nG1 X90 Y0 Z5 F30000\nM400 P200\nM970 Q0 A5 B55 C85 H15 K0 M20 O2\n;M970.3 Q0 A7 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X-1 Y10\nG28 X ; re-home XY\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\n;M106 S255\nG29.2 S0 ; turn off ABL\nG0 X50 Y175 F20000 ; find a soft place to home\nG28 Z P0 T300; home z with low precision, permit 300deg temperature\n\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\n\nG0 X85 Y185 F10000 ;move to exposed steel surface and stop the nozzle\nG0 Z-1.01 F10000\nG91\n\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nG90\nG1 Z5 F30000\nG1 X32 Y185 F30000.1 ;Brush material\nG1 Z0.6 F30000.1\nG91\nG1 X-30 F30000\nG1 Y-2\nG1 X27\nG1 Y1.5\nG1 X-28\nG1 Y-2\nG1 X30\nG1 Y1.5\nG1 X-30\n\nG90\nM83\n\nG1 Z10\nG1 X85 Y185\nG1 Z-1.01\n\n\nM221 R; pop softend status\n\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== wait heatbed ====================\nM1002 gcode_claim_action : 2\nM104 S0\nM190 S[bed_temperature_initial_layer_single];set bed temp\nM109 S140\n\nG1 Z5 F3000\nG29.2 S1\nG1 X10 Y10 F20000\n\n;===== bed leveling ==================================\n;M1002 set_flag g29_before_print_flag=1\nM1002 judge_flag g29_before_print_flag\nM622 J1\n M1002 gcode_claim_action : 1\n G29 A\n M400\n M500 ; save cali data\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\n\nG1 X-13.5 Y0 Z10 F10000\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S{nozzle_temperature[initial_extruder]}\nM400\n\nM412 S1 ; ===turn on filament runout detection===\nM400 P10\n\nG392 S1 ;turn on clog detect\n\nM620.3 W1; === turn on filament tangle detection===\nM400 S2\n\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n;M1002 set_flag extrude_cali_flag=1\nM1002 judge_flag extrude_cali_flag\nM622 J1\n M1002 gcode_claim_action : 8\n \n M400\n M900 K0.0 L1000.0 M1.0\n G90\n M83\n G0 X45 Y-4 F30000\n G0 Z0.2 F18000 ;Move to start position\n G0 X65 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X70 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X75 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X80 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X85 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X90 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X120 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X125 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X130 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n M400\n \n G1 X-13.5 Y0 Z10 F10000\n M400\n \n G1 E10 F{outer_wall_volumetric_speed/2.4*60}\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X-13.5 F3000\n M400\n M106 P1 S0\n\n M1002 judge_last_extrude_cali_success\n M622 J0\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n M400\n M106 P1 S0\n M623\nM623 ; end of \"draw extrinsic para cali paint\"\n\n;===== extrude cali test ===============================\nG90\nM83\nG0 X50 Y-2.7 F30000\nG0 Z0.2 F18000 ;Move to start position\nG0 X60 E4 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X65 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X70 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X75 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X80 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X85 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X90 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X95 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X100 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X105 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X110 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X115 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X120 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X125 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X130 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nM400\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\n\nM400 ; wait all motion done before implement the emprical L parameters\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.02} ; for Textured PEI Plate\n{endif}\n\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n\nM211 X0 Y0 Z0 ;turn off soft endstop\n", + "machine_start_gcode": ";===== machine: A1 mini =========================\n;===== date: 20230928 =====================\n\n;===== start to heat heatbead&hotend==========\nM1002 gcode_claim_action : 2\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG392 S0 ;turn off clog detect\n;=====start printer sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B0 L100 C37 D10 M100 E37 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E43 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C49 D10 M100 E49 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C39 D10 M100 E48 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 W\nM18\n;=====avoid end stop =================\nG91\nG380 S2 Z30 F1200\nG380 S2 Z-20 F1200\nG1 Z5 F1200\nG90\n\n;===== reset machine status =================\nM290 X39 Y39 Z8\nM204 S6000\n\nM630 S0 P0\nG91\nM17 Z0.3 ; lower the z-motor current\n\nG90\nM17 X0.7 Y0.9 Z0.5 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\n;M221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\n;===== prepare print temperature and material ==========\nM1002 gcode_claim_action : 1\nM400\nM18\nM109 S100\nM104 S140\nM400\nM17\nM400\nG28 X\n\nM221 X0 Y0 Z0 ;turn off soft endstop\n\nM975 S1 ; turn on\n\nG1 X0.0 F30000\nG1 X-13.5 F3000\n\nM620 M ;enable remap\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n G392 S1 ;turn on clog detect\n M1002 gcode_claim_action : 4\n M400\n M1002 set_filament_type:UNKNOWN\n M109 S[nozzle_temperature_initial_layer]\n M104 S250\n M400\n T[initial_no_support_extruder]\n G1 X-13.5 F3000\n M400\n M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n M109 S250 ;set nozzle to common flush temp\n M106 P1 S0\n G92 E0\n G1 E50 F200\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n M104 S{nozzle_temperature_range_high[initial_no_support_extruder]}\n G92 E0\n G1 E50 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M400\n M106 P1 S178\n G92 E0\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G92 E0\n G1 E-0.5 F300\n\n G1 X0 F30000\n G1 X-13.5 F3000\n G1 X0 F30000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X0 F30000\n G1 X-13.5 F3000\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G392 S0 ;turn off clog detect\nM621 S[initial_no_support_extruder]A\n\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== mech mode fast check============================\nM1002 gcode_claim_action : 3\nG0 X50 Y175 F20000 ; find a soft place to home\nM104 S0\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-80}\n\nG1 X90 Y-1 Z5 F30000\nM400 P200\nM970.3 Q1 A7 K0 O2\nM974 Q1 S2 P0\n\nG1 X90 Y0 Z5 F30000\nM400 P200\nM970 Q0 A5 B50 C90 H15 K0 M20 O3\n;M970.3 Q0 A7 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X-1 Y10\nG28 X ; re-home XY\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\n;M106 S255\nG29.2 S0 ; turn off ABL\nG0 X50 Y175 F20000 ; find a soft place to home\nG28 Z P0 T300; home z with low precision, permit 300deg temperature\n\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\n\nG0 X85 Y185 F10000 ;move to exposed steel surface and stop the nozzle\nG0 Z-1.01 F10000\nG91\n\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nG90\nG1 Z5 F30000\nG1 X32 Y185 F30000.1 ;Brush material\nG1 Z0.6 F30000.1\nG91\nG1 X-30 F30000\nG1 Y-2\nG1 X27\nG1 Y1.5\nG1 X-28\nG1 Y-2\nG1 X30\nG1 Y1.5\nG1 X-30\n\nG90\nM83\n\nG1 Z10\nG1 X85 Y185\nG1 Z-1.01\nG1 X95\nG1 X90\n\n\nM221 R; pop softend status\n\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== wait heatbed ====================\nM1002 gcode_claim_action : 2\nM104 S0\nM190 S[bed_temperature_initial_layer_single];set bed temp\nM109 S140\n\nG1 Z5 F3000\nG29.2 S1\nG1 X10 Y10 F20000\n\n;===== bed leveling ==================================\n;M1002 set_flag g29_before_print_flag=1\nM1002 judge_flag g29_before_print_flag\nM622 J1\n M1002 gcode_claim_action : 1\n G29 A\n M400\n M500 ; save cali data\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\n\nG1 X-13.5 Y0 Z10 F10000\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S{nozzle_temperature[initial_extruder]}\nM400\n\nM412 S1 ; ===turn on filament runout detection===\nM400 P10\n\nG392 S1 ;turn on clog detect\n\nM620.3 W1; === turn on filament tangle detection===\nM400 S2\n\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n;M1002 set_flag extrude_cali_flag=1\nM1002 judge_flag extrude_cali_flag\nM622 J1\n M1002 gcode_claim_action : 8\n \n M400\n M900 K0.0 L1000.0 M1.0\n G90\n M83\n G0 X68 Y-4 F30000\n G0 Z0.2 F18000 ;Move to start position\n G0 X88 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 Y0 Z0 F20000\n M400\n \n G1 X-13.5 Y0 Z10 F10000\n M400\n \n G1 E10 F{outer_wall_volumetric_speed/2.4*60}\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X-13.5 F3000\n M400\n M106 P1 S0\n\n M1002 judge_last_extrude_cali_success\n M622 J0\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n M400\n M106 P1 S0\n M623\nM623 ; end of \"draw extrinsic para cali paint\"\n\n;===== extrude cali test ===============================\nG90\nM83\nG0 X68 Y-2.5 F30000\nG0 Z0.2 F18000 ;Move to start position\nG0 X88 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X115 Z0 F20000\nG0 Z5\nM400\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\n\nM400 ; wait all motion done before implement the emprical L parameters\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.02} ; for Textured PEI Plate\n{endif}\n\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n\nM211 X0 Y0 Z0 ;turn off soft endstop\n", "machine_end_gcode": ";===== date: 20230912 =====================\n;turn off nozzle clog detect\nG392 S0\n\n{if timelapse_type == 2}\nM991 S0 P-1 ;end timelapse immediately\n{endif}\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X0 F12000 ; move to safe pos \n{if timelapse_type == 1}\nM991 S0 P-1 ;end timelapse at safe pos\n{endif}\n\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\n;G1 X27 F15000 ; wipe\n\n; pull back filament to AMS\nM620 S255\nG1 X181 F12000\nT255\nG1 X0 F18000\nG1 X-13.0 F3000\nG1 X0 F18000 ; wipe\nM621 S255\n\nM104 S0 ; turn off hotend\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 180}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z180 F600\n G1 Z180\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X-13 Y180 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\n;=====printer finish sound=========\nM17\nM400 S1\nM1006 S1\nM1006 A0 B20 L100 C37 D20 M100 E42 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C46 D10 M100 E46 F10 N100\nM1006 A44 B20 L100 C39 D20 M100 E48 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E48 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B20 L100 C41 D20 M100 E49 F20 N100\nM1006 A0 B20 L100 C0 D20 M100 E0 F20 N100\nM1006 A0 B20 L100 C37 D20 M100 E37 F20 N100\nM1006 W\n;=====printer finish sound=========\nM400 S1\nM18\n", "layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change\n", "time_lapse_gcode": "{if !spiral_mode && print_sequence != \"by object\"}\n;===================== date: 20230922 =====================\n; timelapse gcode\n; don't support timelapse gcode in spiral_mode and by object sequence for I3 structure printer\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\nG92 E0\nG17\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 Z{max_layer_z + 0.4}\nG1 X0 Y{first_layer_center_no_wipe_tower[1]} F18000 ; move to safe pos\nG1 X-13.0 F3000 ; move to safe pos\nM400 P300\nM971 S11 C11 O0\nG92 E0\nG1 X0 F18000\nM623\n\n{if layer_num == 2}\n M400\n G90\n M83\n M204 S5000\n G0 Z2 F4000\n G0 X-6 Y170 F20000\n M400 P200\n G39 S1\n G0 Z2 F4000\n G0 X90 Y90 F30000\n{endif}\n\n{endif}\n", From 081941b530a543cdbb317f732f0492fa55e0853f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=83=E5=96=9C?= Date: Sat, 7 Oct 2023 07:56:17 +0800 Subject: [PATCH 41/92] Revert "Revert "ENH: add profiles for X1E"" This reverts commit 68cfc58e87e25bb7292eabac161b6db5a71bb89c. Reason for revert: add x1e back Change-Id: Ie4152de548b30912a2a6ba96f8ebc3d25dbcd8cf --- resources/profiles/BBL.json | 140 +++++++++++++++++- .../profiles/BBL/Bambu Lab X1E_cover.png | Bin 0 -> 13025 bytes .../Bambu ABS @BBL X1E 0.2 nozzle.json | 11 ++ .../Bambu ABS @BBL X1E 0.8 nozzle.json | 11 ++ .../BBL/filament/Bambu ABS @BBL X1E.json | 12 ++ .../Bambu ASA @BBL X1E 0.2 nozzle.json | 11 ++ .../Bambu ASA @BBL X1E 0.4 nozzle.json | 14 ++ .../BBL/filament/Bambu ASA @BBL X1E.json | 12 ++ .../BBL/filament/Bambu PA-CF @BBL X1E.json | 16 ++ .../BBL/filament/Bambu PA6-CF @BBL X1E.json | 16 ++ .../BBL/filament/Bambu PAHT-CF @BBL X1C.json | 5 +- .../Bambu PC @BBL X1E 0.2 nozzle.json | 14 ++ .../Bambu PC @BBL X1E 0.6 nozzle.json | 14 ++ .../Bambu PC @BBL X1E 0.8 nozzle.json | 14 ++ .../BBL/filament/Bambu PC @BBL X1E.json | 14 ++ .../BBL/filament/Bambu PET-CF @BBL X1E.json | 16 ++ .../Bambu PETG Basic @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu PETG Basic @BBL X1C 0.8 nozzle.json | 4 +- .../filament/Bambu PETG Basic @BBL X1C.json | 3 +- .../Bambu PETG-CF @BBL X1C 0.4 nozzle.json | 3 +- .../BBL/filament/Bambu PETG-CF @BBL X1C.json | 4 +- .../BBL/filament/Bambu PLA Aero @BBL X1C.json | 5 +- .../Bambu PLA Basic @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu PLA Basic @BBL X1C 0.8 nozzle.json | 3 +- .../filament/Bambu PLA Basic @BBL X1C.json | 4 +- .../filament/Bambu PLA Marble @BBL X1C.json | 5 +- .../Bambu PLA Matte @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu PLA Matte @BBL X1C 0.8 nozzle.json | 3 +- .../filament/Bambu PLA Matte @BBL X1C.json | 4 +- .../Bambu PLA Metal @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Bambu PLA Metal @BBL X1C.json | 5 +- .../Bambu PLA Silk @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/Bambu PLA Silk @BBL X1C.json | 5 +- .../filament/Bambu PLA Sparkle @BBL X1C.json | 5 +- .../Bambu PLA Tough @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Bambu PLA Tough @BBL X1C.json | 5 +- .../Bambu PLA-CF @BBL X1C 0.8 nozzle.json | 4 +- .../BBL/filament/Bambu PLA-CF @BBL X1C.json | 3 +- .../Bambu Support For PA PET @BBL X1C.json | 5 +- ...u Support For PLA @BBL X1C 0.2 nozzle.json | 3 +- .../Bambu Support For PLA @BBL X1C.json | 5 +- .../filament/Bambu Support G @BBL X1E.json | 16 ++ .../Bambu Support W @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Bambu Support W @BBL X1C.json | 5 +- .../BBL/filament/Bambu TPU 95A @BBL X1C.json | 5 +- .../Generic ABS @BBL X1E 0.2 nozzle.json | 11 ++ .../BBL/filament/Generic ABS @BBL X1E.json | 13 ++ .../Generic ASA @BBL X1E 0.2 nozzle.json | 11 ++ .../BBL/filament/Generic ASA @BBL X1E.json | 13 ++ .../Generic HIPS @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/Generic HIPS @BBL X1C.json | 5 +- .../BBL/filament/Generic PA-CF @BBL X1E.json | 16 ++ .../profiles/BBL/filament/Generic PA.json | 5 +- .../Generic PC @BBL X1E 0.2 nozzle.json | 14 ++ .../BBL/filament/Generic PC @BBL X1E.json | 16 ++ .../filament/Generic PETG @0.2 nozzle.json | 3 +- .../filament/Generic PETG-CF @BBL X1C.json | 5 +- .../profiles/BBL/filament/Generic PETG.json | 5 +- .../BBL/filament/Generic PLA @0.2 nozzle.json | 3 +- ...ic PLA High Speed @BBL X1C 0.2 nozzle.json | 3 +- .../Generic PLA High Speed @BBL X1C.json | 5 +- .../BBL/filament/Generic PLA Silk.json | 5 +- .../profiles/BBL/filament/Generic PLA-CF.json | 5 +- .../profiles/BBL/filament/Generic PLA.json | 5 +- .../BBL/filament/Generic PPA-CF @BBL X1E.json | 19 +++ .../BBL/filament/Generic PPA-GF @BBL X1E.json | 25 ++++ .../BBL/filament/Generic PPS @BBL X1E.json | 13 ++ .../BBL/filament/Generic PPS-CF @BBL X1E.json | 13 ++ .../BBL/filament/Generic PVA @0.2 nozzle.json | 3 +- .../profiles/BBL/filament/Generic PVA.json | 5 +- .../profiles/BBL/filament/Generic TPU.json | 5 +- ...verture Matte PLA @BBL X1C 0.2 nozzle.json | 3 +- .../filament/Overture Matte PLA @BBL X1C.json | 5 +- .../Overture PLA @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/Overture PLA @BBL X1C.json | 5 +- .../PolyLite ABS @BBL X1E 0.2 nozzle.json | 11 ++ .../BBL/filament/PolyLite ABS @BBL X1E.json | 13 ++ .../PolyLite ASA @BBL X1E 0.2 nozzle.json | 14 ++ .../BBL/filament/PolyLite ASA @BBL X1E.json | 13 ++ .../PolyLite PETG @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/PolyLite PETG @BBL X1C.json | 5 +- .../PolyLite PLA @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/PolyLite PLA @BBL X1C.json | 5 +- .../PolyTerra PLA @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/PolyTerra PLA @BBL X1C.json | 5 +- .../eSUN PLA+ @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/filament/eSUN PLA+ @BBL X1C.json | 5 +- .../BBL/machine/Bambu Lab X1E 0.2 nozzle.json | 34 +++++ .../BBL/machine/Bambu Lab X1E 0.4 nozzle.json | 39 +++++ .../BBL/machine/Bambu Lab X1E 0.6 nozzle.json | 36 +++++ .../BBL/machine/Bambu Lab X1E 0.8 nozzle.json | 36 +++++ .../profiles/BBL/machine/Bambu Lab X1E.json | 12 ++ .../0.06mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../process/0.08mm Extra Fine @BBL X1C.json | 3 +- .../0.08mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../0.10mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/process/0.12mm Fine @BBL X1C.json | 3 +- .../0.12mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../0.14mm Standard @BBL X1C 0.2 nozzle.json | 3 +- .../BBL/process/0.16mm Optimal @BBL X1C.json | 3 +- .../0.18mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.20mm Bambu Support W @BBL X1C.json | 3 +- .../BBL/process/0.20mm Standard @BBL X1C.json | 3 +- .../BBL/process/0.20mm Strength @BBL X1C.json | 3 +- .../BBL/process/0.24mm Draft @BBL X1C.json | 3 +- .../0.24mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.24mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../process/0.28mm Extra Draft @BBL X1C.json | 3 +- .../0.30mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.30mm Strength @BBL X1C 0.6 nozzle.json | 3 +- .../0.32mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../0.36mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.40mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../0.42mm Standard @BBL X1C 0.6 nozzle.json | 3 +- .../0.48mm Standard @BBL X1C 0.8 nozzle.json | 3 +- .../0.56mm Standard @BBL X1C 0.8 nozzle.json | 3 +- 116 files changed, 920 insertions(+), 82 deletions(-) create mode 100644 resources/profiles/BBL/Bambu Lab X1E_cover.png create mode 100644 resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json create mode 100644 resources/profiles/BBL/filament/Bambu PC @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Generic ABS @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Generic ASA @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/Generic PC @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PPS @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json create mode 100644 resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json create mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json create mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json create mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json create mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json create mode 100644 resources/profiles/BBL/machine/Bambu Lab X1E.json diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 3878929990..3031f1ebb7 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.07.00.25", + "version": "01.07.00.26", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ @@ -24,6 +24,10 @@ { "name": "Bambu Lab A1 mini", "sub_path": "machine/Bambu Lab A1 mini.json" + }, + { + "name": "Bambu Lab X1E", + "sub_path": "machine/Bambu Lab X1E.json" } ], "process_list": [ @@ -1317,6 +1321,10 @@ "name": "Bambu PA-CF @BBL P1P", "sub_path": "filament/P1P/Bambu PA-CF @BBL P1P.json" }, + { + "name": "Generic PA-CF @BBL X1E", + "sub_path": "filament/Generic PA-CF @BBL X1E.json" + }, { "name": "Bambu PAHT-CF @BBL X1C", "sub_path": "filament/Bambu PAHT-CF @BBL X1C.json" @@ -1337,6 +1345,10 @@ "name": "Bambu PA6-CF @BBL X1C", "sub_path": "filament/Bambu PA6-CF @BBL X1C.json" }, + { + "name": "Bambu PA6-CF @BBL X1E", + "sub_path": "filament/Bambu PA6-CF @BBL X1E.json" + }, { "name": "Generic HIPS @BBL X1C", "sub_path": "filament/Generic HIPS @BBL X1C.json" @@ -1353,6 +1365,18 @@ "name": "Generic HIPS @BBL A1M 0.2 nozzle", "sub_path": "filament/Generic HIPS @BBL A1M 0.2 nozzle.json" }, + { + "name": "Generic PPS-CF @BBL X1E", + "sub_path": "filament/Generic PPS-CF @BBL X1E.json" + }, + { + "name": "Generic PPS @BBL X1E", + "sub_path": "filament/Generic PPS @BBL X1E.json" + }, + { + "name": "Generic PPA-CF @BBL X1E", + "sub_path": "filament/Generic PPA-CF @BBL X1E.json" + }, { "name": "Generic PPA-CF @BBL X1C", "sub_path": "filament/Generic PPA-CF @BBL X1C.json" @@ -1361,6 +1385,10 @@ "name": "Generic PPA-GF @BBL X1C", "sub_path": "filament/Generic PPA-GF @BBL X1C.json" }, + { + "name": "Generic PPA-GF @BBL X1E", + "sub_path": "filament/Generic PPA-GF @BBL X1E.json" + }, { "name": "PolyTerra PLA @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json" @@ -1433,6 +1461,10 @@ "name": "Bambu PETG-CF @BBL A1M 0.4 nozzle", "sub_path": "filament/Bambu PETG-CF @BBL A1M 0.4 nozzle.json" }, + { + "name": "Bambu PET-CF @BBL X1E", + "sub_path": "filament/Bambu PET-CF @BBL X1E.json" + }, { "name": "PolyLite PETG @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyLite PETG @BBL X1C 0.2 nozzle.json" @@ -1445,6 +1477,30 @@ "name": "PolyLite PETG @BBL A1M 0.2 nozzle", "sub_path": "filament/PolyLite PETG @BBL A1M 0.2 nozzle.json" }, + { + "name": "Bambu ABS @BBL X1E", + "sub_path": "filament/Bambu ABS @BBL X1E.json" + }, + { + "name": "Bambu ABS @BBL X1E 0.2 nozzle", + "sub_path": "filament/Bambu ABS @BBL X1E 0.2 nozzle.json" + }, + { + "name": "Bambu ABS @BBL X1E 0.8 nozzle", + "sub_path": "filament/Bambu ABS @BBL X1E 0.8 nozzle.json" + }, + { + "name": "Generic ABS @BBL X1E", + "sub_path": "filament/Generic ABS @BBL X1E.json" + }, + { + "name": "Generic ABS @BBL X1E 0.2 nozzle", + "sub_path": "filament/Generic ABS @BBL X1E 0.2 nozzle.json" + }, + { + "name": "PolyLite ABS @BBL X1E", + "sub_path": "filament/PolyLite ABS @BBL X1E.json" + }, { "name": "PolyLite ABS @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyLite ABS @BBL X1C 0.2 nozzle.json" @@ -1457,33 +1513,97 @@ "name": "Bambu PC @BBL P1S", "sub_path": "filament/Bambu PC @BBL P1S.json" }, + { + "name": "Bambu PC @BBL X1E", + "sub_path": "filament/Bambu PC @BBL X1E.json" + }, { "name": "Bambu PC @BBL P1S 0.2 nozzle", "sub_path": "filament/Bambu PC @BBL P1S 0.2 nozzle.json" }, + { + "name": "Bambu PC @BBL X1E 0.2 nozzle", + "sub_path": "filament/Bambu PC @BBL X1E 0.2 nozzle.json" + }, { "name": "Bambu PC @BBL P1S 0.8 nozzle", "sub_path": "filament/Bambu PC @BBL P1S 0.8 nozzle.json" }, + { + "name": "Bambu PC @BBL X1E 0.8 nozzle", + "sub_path": "filament/Bambu PC @BBL X1E 0.8 nozzle.json" + }, { "name": "Bambu PC @BBL P1S 0.6 nozzle", "sub_path": "filament/Bambu PC @BBL P1S 0.6 nozzle.json" }, + { + "name": "Bambu PC @BBL X1E 0.6 nozzle", + "sub_path": "filament/Bambu PC @BBL X1E 0.6 nozzle.json" + }, { "name": "Generic PC @BBL P1S 0.2 nozzle", "sub_path": "filament/Generic PC @BBL P1S 0.2 nozzle.json" }, + { + "name": "Generic PC @BBL X1E 0.2 nozzle", + "sub_path": "filament/Generic PC @BBL X1E 0.2 nozzle.json" + }, { "name": "Generic PC @BBL P1S", "sub_path": "filament/Generic PC @BBL P1S.json" }, + { + "name": "Generic PC @BBL X1E", + "sub_path": "filament/Generic PC @BBL X1E.json" + }, + { + "name": "Generic ASA @BBL X1E 0.2 nozzle", + "sub_path": "filament/Generic ASA @BBL X1E 0.2 nozzle.json" + }, + { + "name": "Generic ASA @BBL X1E", + "sub_path": "filament/Generic ASA @BBL X1E.json" + }, + { + "name": "Bambu ASA @BBL X1E", + "sub_path": "filament/Bambu ASA @BBL X1E.json" + }, + { + "name": "Bambu ASA @BBL X1E 0.2 nozzle", + "sub_path": "filament/Bambu ASA @BBL X1E 0.2 nozzle.json" + }, + { + "name": "Bambu ASA @BBL X1E 0.4 nozzle", + "sub_path": "filament/Bambu ASA @BBL X1E 0.4 nozzle.json" + }, { "name": "PolyLite ASA @BBL X1C 0.2 nozzle", "sub_path": "filament/PolyLite ASA @BBL X1C 0.2 nozzle.json" }, + { + "name": "PolyLite ASA @BBL X1E", + "sub_path": "filament/PolyLite ASA @BBL X1E.json" + }, { "name": "PolyLite ASA @BBL P1P 0.2 nozzle", "sub_path": "filament/PolyLite ASA @BBL P1P 0.2 nozzle.json" + }, + { + "name": "Bambu Support G @BBL X1E", + "sub_path": "filament/Bambu Support G @BBL X1E.json" + }, + { + "name": "Bambu PA-CF @BBL X1E", + "sub_path": "filament/Bambu PA-CF @BBL X1E.json" + }, + { + "name": "PolyLite ABS @BBL X1E 0.2 nozzle", + "sub_path": "filament/PolyLite ABS @BBL X1E 0.2 nozzle.json" + }, + { + "name": "PolyLite ASA @BBL X1E 0.2 nozzle", + "sub_path": "filament/PolyLite ASA @BBL X1E 0.2 nozzle.json" } ], "machine_list": [ @@ -1515,6 +1635,10 @@ "name": "Bambu Lab A1 mini 0.4 nozzle", "sub_path": "machine/Bambu Lab A1 mini 0.4 nozzle.json" }, + { + "name": "Bambu Lab X1E 0.4 nozzle", + "sub_path": "machine/Bambu Lab X1E 0.4 nozzle.json" + }, { "name": "Bambu Lab X1 Carbon 0.2 nozzle", "sub_path": "machine/Bambu Lab X1 Carbon 0.2 nozzle.json" @@ -1574,6 +1698,18 @@ { "name": "Bambu Lab A1 mini 0.8 nozzle", "sub_path": "machine/Bambu Lab A1 mini 0.8 nozzle.json" + }, + { + "name": "Bambu Lab X1E 0.2 nozzle", + "sub_path": "machine/Bambu Lab X1E 0.2 nozzle.json" + }, + { + "name": "Bambu Lab X1E 0.6 nozzle", + "sub_path": "machine/Bambu Lab X1E 0.6 nozzle.json" + }, + { + "name": "Bambu Lab X1E 0.8 nozzle", + "sub_path": "machine/Bambu Lab X1E 0.8 nozzle.json" } ] -} \ No newline at end of file +} diff --git a/resources/profiles/BBL/Bambu Lab X1E_cover.png b/resources/profiles/BBL/Bambu Lab X1E_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..1daaf9c3a9c1f1e913d4117af4d9cb4f84c1fd7e GIT binary patch literal 13025 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

?1(QEy&5z$hY?Sf5#QBDW7|)~k zn05fEf0W~p;~~vlp<^K5ymXQ|Y>gs304$(kax4fc{wcy2L6H&mO3x#5 z__z9ile%gBRC}14Z(9Lw7TPWtqp^gBzJ>OgApzt}j;v~zYFS%(Qz*p_R4Y?1>4d~x zdH$b5$!mUI`aMc>vR`}jA$734C9p;Bk*6~ok=LsG@}c% zKwtvz|A}PH!nZ3yi)B*c;8Hb2(7>*KzC&6*nYi;pTLri42;0oHPM2um>g0fs&{;{b zr{NK#SgY){aHYnOHtB0b%raRTI%WqGUyJ7Ns^Q5G9=}qxlBgx`8ckWt z=gF)?!TWlGOv%p$h~A<1bm#?4X%(u;pu zejUFU1OoUm-Z< zbIfuiG28Yd`@J>&v1HxyyO@dyUjmpShTq@R>O=qHb6CRDta&}QG3u)5)Vy7cP&Iq< z?ugM;RuFb7X`aqZp$eB$%KVd*KYGTmXgtN_+CfnSP}f{@7`A`p)O#U+g_(rpl-qSI zCZw|Lj@(iS8h)=I>_(}2Jk0rRY!W$f{R_XQ7g&|tB3{;?+e+nZW7!sOr zo^yNa8^A#`z<1AsBQhM1s`X}Eg-5BHjX8RIO?%!g;?k4PjA|HAlR3GI> zWKVhODF&lrC=;dmPVyd+xaH3`581ED4(udpCs8)ffCCRd3P8Kqh&VlsruBy(ijz!u zy*`8cd?7ML!&^cHq}P{^p(k=%Igu=N*N8~xXX8E0?k~9Bk^e5a)lDw@Q*p}bgWP6e zmG!hl%B#g={A)x)O#E~|N%f@f_`)7LqOU5`0@*0sql!?$SSx`S^<>^q4;o1GejcLZ z6@29iHQNmd6}e+i_b;j3hu*7IK&d-*DRuPwwaMu|etRv->epV7xsX>fE_T;<%t)q$ z`$BqRp-E{^5DO%*KtUL6^8${iB*;Rhl%|LCC&#|ayV+{ZuRYWcA6(dA^>BjcY`cQ> z+bwZuSuFDYRnAhAq9GuZW68@zmQXZ4!g6xz$CE5e#4G}0k8uW92g_O_?@#3Jm^6&i zJjl~os45>Z$A-+4&|4(1lC}-_5LVXlnrz%Gd$tV{6nV(ic}47A-*HTYuaU03Y#!$${4B%m~#QRQH4} zZ_u5F&81imT!>?=s<8SjRC~L=DchpLw{KB~{|ndtKhu_1*paGCE(-r=wypkI(8r*g zFT~Vs>B965lGIQ?m965zbR%)EDcI6C*eI!&N;Bhfp?4lbjHvrBRL;q`0;c-W#F{BIZ5f*n%ycfttW9Mpe<8!lTNMCD&0Pv|7Y^A;NdLlfd8Yb z@SztS+f3q(ykkRtf8JRM&cp^2V0VV$uALo-?_s*G&4F|4Vo7N{61V z6nce9B~gzW|Ille&qGtfSKhr-&JJAt5ab~b#E(zjwJ=UT-D+4V`MRkIw0x&UK{XSe zT6HT0ZwG;}dUi>};n=#w4gqp0{&IgndMTsIwk_HlIO`H3W}xB^yponS`^`7(1WB<_ zh$xiL0)lSS^b&Cw@eq5?Br=ik=QaiVtTi;IPn%xQ?6B<#^@Ah?3v?Uktsa^F7<9V_ z`c+_Xo*F$8NQg9m=;R3UpWDd;kurw9Jfp9_ zEnNQTaJ)M7v$eoscM;l;81qLLViU35W=L|XI#OgsE7Y!9CE@%D9w-GK&R$r=7#D8T z{yIdwGh1fYgZcTe6}xJgUSBRM0Tgl3MytsyZqqN;YBt2e3JYIsgCw literal 0 HcmV?d00001 diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..97c7af9a10 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Bambu ABS @BBL X1E 0.2 nozzle", + "inherits": "Bambu ABS @BBL X1C 0.2 nozzle", + "from": "system", + "setting_id": "GFSB00_05", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json new file mode 100644 index 0000000000..6f5d353ded --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Bambu ABS @BBL X1E 0.8 nozzle", + "inherits": "Bambu ABS @BBL X1C 0.8 nozzle", + "from": "system", + "setting_id": "GFSB00_06", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json new file mode 100644 index 0000000000..e281fa4032 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ABS @BBL X1E.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Bambu ABS @BBL X1E", + "inherits": "Bambu ABS @BBL X1C", + "from": "system", + "setting_id": "GFSB00_04", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..a2a1ee66dd --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Bambu ASA @BBL X1E 0.2 nozzle", + "inherits": "Bambu ASA @BBL X1C 0.2 nozzle", + "from": "system", + "setting_id": "GFSB01_06", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json new file mode 100644 index 0000000000..795272b92d --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E 0.4 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Bambu ASA @BBL X1E 0.4 nozzle", + "inherits": "Bambu ASA @BBL X1C 0.4 nozzle", + "from": "system", + "setting_id": "GFSB01_07", + "instantiation": "true", + "chamber_temperatures": [ + "0" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json new file mode 100644 index 0000000000..9d15dcb1c2 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu ASA @BBL X1E.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "name": "Bambu ASA @BBL X1E", + "inherits": "Bambu ASA @BBL X1C", + "from": "system", + "setting_id": "GFSB01_05", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json new file mode 100644 index 0000000000..56aecc4f50 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PA-CF @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Bambu PA-CF @BBL X1E", + "inherits": "Bambu PA-CF @BBL X1C", + "from": "system", + "setting_id": "GFSN03_00", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json new file mode 100644 index 0000000000..98cd1f7621 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PA6-CF @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Bambu PA6-CF @BBL X1E", + "inherits": "Bambu PA6-CF @base", + "from": "system", + "setting_id": "GFSN05_03", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json index 6d4344b3a7..8e02c61fdb 100644 --- a/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PAHT-CF @BBL X1C.json @@ -17,6 +17,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..a89ee103c4 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.2 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Bambu PC @BBL X1E 0.2 nozzle", + "inherits": "Bambu PC @BBL X1C 0.2 nozzle", + "from": "system", + "setting_id": "GFSC00_09", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json new file mode 100644 index 0000000000..3464603199 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.6 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Bambu PC @BBL X1E 0.6 nozzle", + "inherits": "Bambu PC @BBL X1C 0.6 nozzle", + "from": "system", + "setting_id": "GFSC00_10", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json new file mode 100644 index 0000000000..1930bde03d --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC @BBL X1E 0.8 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Bambu PC @BBL X1E 0.8 nozzle", + "inherits": "Bambu PC @BBL X1C 0.8 nozzle", + "from": "system", + "setting_id": "GFSC00_11", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PC @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PC @BBL X1E.json new file mode 100644 index 0000000000..75cdf76d8e --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PC @BBL X1E.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Bambu PC @BBL X1E", + "inherits": "Bambu PC @BBL X1C", + "from": "system", + "setting_id": "GFSC00_12", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json b/resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json new file mode 100644 index 0000000000..44be4cef2c --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu PET-CF @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Bambu PET-CF @BBL X1E", + "inherits": "Bambu PET-CF @BBL X1C", + "from": "system", + "setting_id": "GFST01_00", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json index f1e94f7f99..c7dd9923cd 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.2 nozzle.json @@ -12,6 +12,7 @@ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json index e12b65d701..0a24cb5a1a 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C 0.8 nozzle.json @@ -22,6 +22,8 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json index c40928fb49..d68745bb17 100644 --- a/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PETG Basic @BBL X1C.json @@ -12,6 +12,7 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json index eddfde35c1..d0ea93c38c 100644 --- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C 0.4 nozzle.json @@ -23,6 +23,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json index 9ff725c287..8d0e7ce354 100644 --- a/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PETG-CF @BBL X1C.json @@ -26,6 +26,8 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json index 5e72c32a96..f3160585a6 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Aero @BBL X1C.json @@ -17,6 +17,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json index 7dbd894526..ddaeb7a616 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json index 7e98cd452b..d8d8307fc0 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C 0.8 nozzle.json @@ -10,6 +10,7 @@ ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json index d5cb0165b3..2cb005d6f5 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Basic @BBL X1C.json @@ -12,6 +12,8 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json index d8e67b7b16..4199fd943d 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Marble @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json index 724412a738..824e96a5e3 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json index 4764dde452..7e2d1f4fc9 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C 0.8 nozzle.json @@ -10,6 +10,7 @@ ], "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json index 0351e674a0..a7e1e76634 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Matte @BBL X1C.json @@ -12,6 +12,8 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab P1S 0.4 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json index 75ef9a15ad..7ed6ab8f3e 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json index 1739a9ebdc..91995ef069 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json index 2ce7e49f44..85c560fcdb 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json index a4ecedcc8a..5d75934310 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Silk @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json index 7d18fcfe2a..fdc02d06c5 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Sparkle @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json index 85fdd47846..eb6f63a2f3 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json index 78626f437c..418cc8f9ca 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA Tough @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json index e9017e3513..3b5c25a41f 100644 --- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C 0.8 nozzle.json @@ -20,6 +20,8 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json index f22fe330ce..c917e0745a 100644 --- a/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu PLA-CF @BBL X1C.json @@ -17,6 +17,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json index f963959089..bcf6a2ad8f 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu Support For PA PET @BBL X1C.json @@ -17,6 +17,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json index b7a0f007a5..cf064eb4de 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C 0.2 nozzle.json @@ -17,6 +17,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json index 52fa72bd5b..d136f6380d 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu Support For PLA @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json b/resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json new file mode 100644 index 0000000000..043f8661f7 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu Support G @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Bambu Support G @BBL X1E", + "inherits": "Bambu Support G @BBL X1C", + "from": "system", + "setting_id": "GFSS01_00", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json index b7ecb14a81..1b18733d10 100644 --- a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C 0.2 nozzle.json @@ -17,6 +17,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json index ebd8d00134..206d74ec83 100644 --- a/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu Support W @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json b/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json index 838fc4eb2e..0916bf63a5 100644 --- a/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json +++ b/resources/profiles/BBL/filament/Bambu TPU 95A @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..217ee39225 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic ABS @BBL X1E 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Generic ABS @BBL X1E 0.2 nozzle", + "inherits": "Generic ABS @0.2 nozzle", + "from": "system", + "setting_id": "GFSB99_04", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ABS @BBL X1E.json b/resources/profiles/BBL/filament/Generic ABS @BBL X1E.json new file mode 100644 index 0000000000..f8755a9f65 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic ABS @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic ABS @BBL X1E", + "inherits": "Generic ABS", + "from": "system", + "setting_id": "GFSB99_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..758d7aa64b --- /dev/null +++ b/resources/profiles/BBL/filament/Generic ASA @BBL X1E 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "Generic ASA @BBL X1E 0.2 nozzle", + "inherits": "Generic ASA @0.2 nozzle", + "from": "system", + "setting_id": "GFSB98_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic ASA @BBL X1E.json b/resources/profiles/BBL/filament/Generic ASA @BBL X1E.json new file mode 100644 index 0000000000..c93c41ffb7 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic ASA @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic ASA @BBL X1E", + "inherits": "Generic ASA", + "from": "system", + "setting_id": "GFSB98_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json index ea504f770a..f4f53fb2d3 100644 --- a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C 0.2 nozzle.json @@ -12,6 +12,7 @@ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json index cf3280305b..9890712738 100644 --- a/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic HIPS @BBL X1C.json @@ -17,6 +17,9 @@ "Bambu Lab P1P 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json new file mode 100644 index 0000000000..6c2b48142f --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PA-CF @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PA-CF @BBL X1E", + "inherits": "Generic PA-CF", + "from": "system", + "setting_id": "GFSN98_00", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PA.json b/resources/profiles/BBL/filament/Generic PA.json index 2fb23d1705..ac30ee5409 100644 --- a/resources/profiles/BBL/filament/Generic PA.json +++ b/resources/profiles/BBL/filament/Generic PA.json @@ -30,6 +30,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..ed8ebb495e --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PC @BBL X1E 0.2 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "Generic PC @BBL X1E 0.2 nozzle", + "inherits": "Generic PC @0.2 nozzle", + "from": "system", + "setting_id": "GFSC99_05", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PC @BBL X1E.json b/resources/profiles/BBL/filament/Generic PC @BBL X1E.json new file mode 100644 index 0000000000..9d8c61a978 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PC @BBL X1E.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Generic PC @BBL X1E", + "inherits": "Generic PC", + "from": "system", + "setting_id": "GFSC99_06", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json index ce6645dbf1..0c415d9844 100644 --- a/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PETG @0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json b/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json index 6775d1e85f..59be4dea79 100644 --- a/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic PETG-CF @BBL X1C.json @@ -29,6 +29,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PETG.json b/resources/profiles/BBL/filament/Generic PETG.json index 50827d352f..4052484a56 100644 --- a/resources/profiles/BBL/filament/Generic PETG.json +++ b/resources/profiles/BBL/filament/Generic PETG.json @@ -14,6 +14,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json index 734c0d5faf..d80a580773 100644 --- a/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PLA @0.2 nozzle.json @@ -11,7 +11,8 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ], "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}" diff --git a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json index b5312c39f6..51a76c165a 100644 --- a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json index ca0e526bdf..f2e682804f 100644 --- a/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic PLA High Speed @BBL X1C.json @@ -12,11 +12,14 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", "Bambu Lab X1 0.6 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA Silk.json b/resources/profiles/BBL/filament/Generic PLA Silk.json index 183cea5d65..c1011d708b 100644 --- a/resources/profiles/BBL/filament/Generic PLA Silk.json +++ b/resources/profiles/BBL/filament/Generic PLA Silk.json @@ -20,6 +20,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA-CF.json b/resources/profiles/BBL/filament/Generic PLA-CF.json index d1c4a8e9bd..b4e3affc2c 100644 --- a/resources/profiles/BBL/filament/Generic PLA-CF.json +++ b/resources/profiles/BBL/filament/Generic PLA-CF.json @@ -14,6 +14,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PLA.json b/resources/profiles/BBL/filament/Generic PLA.json index 800947d83a..70ccc0d984 100644 --- a/resources/profiles/BBL/filament/Generic PLA.json +++ b/resources/profiles/BBL/filament/Generic PLA.json @@ -14,7 +14,10 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "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}" diff --git a/resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json new file mode 100644 index 0000000000..b032627561 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PPA-CF @BBL X1E.json @@ -0,0 +1,19 @@ +{ + "type": "filament", + "name": "Generic PPA-CF @BBL X1E", + "inherits": "Generic PPA-CF @base", + "from": "system", + "setting_id": "GFSN97_01", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "filament_type": [ + "PPA-CF" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json new file mode 100644 index 0000000000..fec89c9804 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json @@ -0,0 +1,25 @@ +{ + "type": "filament", + "name": "Generic PPA-GF @BBL X1E", + "inherits": "Generic PPA-GF @base", + "from": "system", + "setting_id": "GFSN96_01", + "instantiation": "true", + "chamber_temperatures": [ + "60" + ], + "filament_max_volumetric_speed": [ + "8" + ], + "filament_type": [ + "PPA-GF" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PPS @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPS @BBL X1E.json new file mode 100644 index 0000000000..9afaeeb5ea --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PPS @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic PPS @BBL X1E", + "inherits": "Generic PPS @base", + "from": "system", + "setting_id": "GFST97_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json new file mode 100644 index 0000000000..929ccff925 --- /dev/null +++ b/resources/profiles/BBL/filament/Generic PPS-CF @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Generic PPS-CF @BBL X1E", + "inherits": "Generic PPS-CF @base", + "from": "system", + "setting_id": "GFST98_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json b/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json index 63afb9af10..6df4727ea0 100644 --- a/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Generic PVA @0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PVA.json b/resources/profiles/BBL/filament/Generic PVA.json index fe621b3df7..7db3aac32b 100644 --- a/resources/profiles/BBL/filament/Generic PVA.json +++ b/resources/profiles/BBL/filament/Generic PVA.json @@ -14,6 +14,9 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic TPU.json b/resources/profiles/BBL/filament/Generic TPU.json index b8b689644f..273e917570 100644 --- a/resources/profiles/BBL/filament/Generic TPU.json +++ b/resources/profiles/BBL/filament/Generic TPU.json @@ -18,7 +18,10 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S255\n{elsif (bed_temperature[current_extruder] >30)||(bed_temperature_initial_layer[current_extruder] >30)}M106 P3 S180\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}" diff --git a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json index 75e17fe8c8..4ffd147c38 100644 --- a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 0.2 nozzle", "Bambu Lab X1 Carbon 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json index 421c52ff84..7d5a7ecd57 100644 --- a/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/Overture Matte PLA @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json index d8e4eb5116..80f5acd18e 100644 --- a/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/Overture PLA @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json b/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json index 28e21b831e..15c06a2ca6 100644 --- a/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/Overture PLA @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..ceb5d54a40 --- /dev/null +++ b/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "filament", + "name": "PolyLite ABS @BBL X1E 0.2 nozzle", + "inherits": "PolyLite ABS @BBL X1C 0.2 nozzle", + "from": "system", + "setting_id": "GFSB60_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json b/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json new file mode 100644 index 0000000000..ae174b951f --- /dev/null +++ b/resources/profiles/BBL/filament/PolyLite ABS @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite ABS @BBL X1E", + "inherits": "PolyLite ABS @BBL X1C", + "from": "system", + "setting_id": "GFSB60_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json new file mode 100644 index 0000000000..7c9c00acac --- /dev/null +++ b/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E 0.2 nozzle.json @@ -0,0 +1,14 @@ +{ + "type": "filament", + "name": "PolyLite ASA @BBL X1E 0.2 nozzle", + "inherits": "PolyLite ASA @BBL X1E", + "from": "system", + "setting_id": "GFSB61_03", + "instantiation": "true", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Bambu Lab X1E 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json b/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json new file mode 100644 index 0000000000..2d259d6dc1 --- /dev/null +++ b/resources/profiles/BBL/filament/PolyLite ASA @BBL X1E.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "PolyLite ASA @BBL X1E", + "inherits": "PolyLite ASA @BBL X1C", + "from": "system", + "setting_id": "GFSB61_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json index 9a58b91bfb..5bf2589627 100644 --- a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json index ea9688b83e..829f11eec3 100644 --- a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json +++ b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json @@ -20,6 +20,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json index 353f029cbc..e8a4157228 100644 --- a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json index e214da24df..c9c27d9143 100644 --- a/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/PolyLite PLA @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json index 123f71d69e..ed5b54fb10 100644 --- a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json index 2925ff8bbf..c3444436a2 100644 --- a/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json +++ b/resources/profiles/BBL/filament/PolyTerra PLA @BBL X1C.json @@ -14,6 +14,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json index 25394b7ff7..b05b011f21 100644 --- a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C 0.2 nozzle.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json index 686d1dd3cb..551e467844 100644 --- a/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json +++ b/resources/profiles/BBL/filament/eSUN PLA+ @BBL X1C.json @@ -11,6 +11,9 @@ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1S 0.6 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json new file mode 100644 index 0000000000..ebc0ce597e --- /dev/null +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json @@ -0,0 +1,34 @@ +{ + "type": "machine", + "name": "Bambu Lab X1E 0.2 nozzle", + "inherits": "Bambu Lab X1E 0.4 nozzle", + "from": "system", + "setting_id": "GM025", + "instantiation": "true", + "nozzle_diameter": [ + "0.2" + ], + "printer_model": "Bambu Lab X1E", + "printer_variant": "0.2", + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C 0.2 nozzle" + ], + "default_print_profile": "0.10mm Standard @BBL X1C 0.2 nozzle", + "max_layer_height": [ + "0.14" + ], + "min_layer_height": [ + "0.04" + ], + "nozzle_type": "stainless_steel", + "retraction_length": [ + "0.4" + ], + "upward_compatible_machine": [ + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab P1P 0.2 nozzle", + "Bambu Lab X1 0.2 nozzle", + "Bambu Lab X1 Carbon 0.2 nozzle" + ], + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json new file mode 100644 index 0000000000..1f08b9bb5f --- /dev/null +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json @@ -0,0 +1,39 @@ +{ + "type": "machine", + "name": "Bambu Lab X1E 0.4 nozzle", + "inherits": "fdm_bbl_3dp_001_common", + "from": "system", + "setting_id": "GM026", + "instantiation": "true", + "nozzle_diameter": [ + "0.4" + ], + "printer_model": "Bambu Lab X1E", + "printer_variant": "0.4", + "bed_exclude_area": [ + "0x0", + "18x0", + "18x28", + "0x28" + ], + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C" + ], + "default_print_profile": "0.20mm Standard @BBL X1C", + "extruder_offset": [ + "0x2" + ], + "machine_load_filament_time": "29", + "machine_unload_filament_time": "28", + "scan_first_layer": "1", + "support_air_filtration": "1", + "support_chamber_temp_control": "1", + "upward_compatible_machine": [ + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 Carbon 0.4 nozzle" + ], + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", + "machine_end_gcode": ";===== date: 20230428 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM141 S0 ; turn off chamber \nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X128 Y250 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\n" +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json new file mode 100644 index 0000000000..d5da018423 --- /dev/null +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json @@ -0,0 +1,36 @@ +{ + "type": "machine", + "name": "Bambu Lab X1E 0.6 nozzle", + "inherits": "Bambu Lab X1E 0.4 nozzle", + "from": "system", + "setting_id": "GM027", + "instantiation": "true", + "nozzle_diameter": [ + "0.6" + ], + "printer_model": "Bambu Lab X1E", + "printer_variant": "0.6", + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C" + ], + "default_print_profile": "0.30mm Standard @BBL X1C 0.6 nozzle", + "max_layer_height": [ + "0.42" + ], + "min_layer_height": [ + "0.12" + ], + "retraction_length": [ + "1.4" + ], + "retraction_minimum_travel": [ + "3" + ], + "upward_compatible_machine": [ + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 Carbon 0.6 nozzle" + ], + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json new file mode 100644 index 0000000000..24c677e158 --- /dev/null +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json @@ -0,0 +1,36 @@ +{ + "type": "machine", + "name": "Bambu Lab X1E 0.8 nozzle", + "inherits": "Bambu Lab X1E 0.4 nozzle", + "from": "system", + "setting_id": "GM028", + "instantiation": "true", + "nozzle_diameter": [ + "0.8" + ], + "printer_model": "Bambu Lab X1E", + "printer_variant": "0.8", + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C 0.8 nozzle" + ], + "default_print_profile": "0.40mm Standard @BBL X1C 0.8 nozzle", + "max_layer_height": [ + "0.56" + ], + "min_layer_height": [ + "0.16" + ], + "retract_length_toolchange": [ + "3" + ], + "retraction_length": [ + "3" + ], + "upward_compatible_machine": [ + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab P1P 0.8 nozzle", + "Bambu Lab X1 0.8 nozzle", + "Bambu Lab X1 Carbon 0.8 nozzle" + ], + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E.json b/resources/profiles/BBL/machine/Bambu Lab X1E.json new file mode 100644 index 0000000000..0c7396a5c1 --- /dev/null +++ b/resources/profiles/BBL/machine/Bambu Lab X1E.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Bambu Lab X1E", + "nozzle_diameter": "0.4;0.2;0.6;0.8", + "bed_model": "bbl-3dp-X1.stl", + "bed_texture": "bbl-3dp-logo.svg", + "family": "BBL-3DP", + "machine_tech": "FFF", + "model_id": "C13", + "url": "http://www.bambulab.com/Parameters/printer_model/Bambu Lab X1 Carbon.json", + "default_materials": "Bambu ABS @BBL X1E;Bambu PC @BBL X1E;Generic PLA Silk @BBL X1C;Generic PLA @BBL X1C;Bambu PLA Matte @BBL X1C;Bambu PLA Basic @BBL X1C;Bambu Support W @BBL X1C;Bambu TPU 95A @BBL X1C;PolyLite PLA @BBL X1C;PolyTerra PLA @BBL X1C" +} \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json index f2af60320d..7a9b9bf315 100644 --- a/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.06mm Standard @BBL X1C 0.2 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json b/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json index 1742e8dc4e..f591722386 100644 --- a/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json +++ b/resources/profiles/BBL/process/0.08mm Extra Fine @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json index 9c87571fef..d584de99c7 100644 --- a/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.08mm Standard @BBL X1C 0.2 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json index d699cb76cf..5fff3ebd87 100644 --- a/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.10mm Standard @BBL X1C 0.2 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json b/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json index ecfd6a45ec..16c75d85ce 100644 --- a/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json +++ b/resources/profiles/BBL/process/0.12mm Fine @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json index 63e4db5ee9..d36cce2026 100644 --- a/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.12mm Standard @BBL X1C 0.2 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json b/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json index cc737b50b4..d486de8697 100644 --- a/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json +++ b/resources/profiles/BBL/process/0.14mm Standard @BBL X1C 0.2 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab P1S 0.2 nozzle" + "Bambu Lab P1S 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json b/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json index 6f98d9b8cb..2465e38c1d 100644 --- a/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json +++ b/resources/profiles/BBL/process/0.16mm Optimal @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json index c2ffcfa7df..ad403a0007 100644 --- a/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.18mm Standard @BBL X1C 0.6 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json b/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json index dbe5144430..0a01e92daa 100644 --- a/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json +++ b/resources/profiles/BBL/process/0.20mm Bambu Support W @BBL X1C.json @@ -17,6 +17,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } diff --git a/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json b/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json index 8ac7f03d8c..1d05bdfa6f 100644 --- a/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json +++ b/resources/profiles/BBL/process/0.20mm Standard @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json b/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json index 06af7e79e0..27b9c03128 100644 --- a/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json +++ b/resources/profiles/BBL/process/0.20mm Strength @BBL X1C.json @@ -11,6 +11,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json b/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json index 204262d78f..4ef6dae40e 100644 --- a/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json +++ b/resources/profiles/BBL/process/0.24mm Draft @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json index c162ab88e8..7870260cab 100644 --- a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.6 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json index fa77ea78fd..3a50374efa 100644 --- a/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.24mm Standard @BBL X1C 0.8 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json b/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json index eb00aab2a6..211a43a31e 100644 --- a/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json +++ b/resources/profiles/BBL/process/0.28mm Extra Draft @BBL X1C.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab P1S 0.4 nozzle" + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json index 3ce90daed1..31e55d13fd 100644 --- a/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.30mm Standard @BBL X1C 0.6 nozzle.json @@ -7,6 +7,7 @@ "instantiation": "true", "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json index e61d98d21c..b1a7451a46 100644 --- a/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.30mm Strength @BBL X1C 0.6 nozzle.json @@ -10,6 +10,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json index 9bc34fc8cd..e6cd89b08b 100644 --- a/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.32mm Standard @BBL X1C 0.8 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json index 4cded0e547..9afac00ad1 100644 --- a/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.36mm Standard @BBL X1C 0.6 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json index ac53792b5f..b6d0c07917 100644 --- a/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.40mm Standard @BBL X1C 0.8 nozzle.json @@ -7,6 +7,7 @@ "instantiation": "true", "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json b/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json index f46d7d641a..a6951dd6bb 100644 --- a/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json +++ b/resources/profiles/BBL/process/0.42mm Standard @BBL X1C 0.6 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json index a0cf1b8369..0b259149d0 100644 --- a/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.48mm Standard @BBL X1C 0.8 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.6 nozzle" + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json b/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json index 45b1ef9d3c..c5c002865d 100644 --- a/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json +++ b/resources/profiles/BBL/process/0.56mm Standard @BBL X1C 0.8 nozzle.json @@ -8,6 +8,7 @@ "compatible_printers": [ "Bambu Lab X1 Carbon 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab P1S 0.8 nozzle" + "Bambu Lab P1S 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file From 759525250481a8276bf52303ac31336856cfc44b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=83=E5=96=9C?= Date: Sat, 7 Oct 2023 07:56:56 +0800 Subject: [PATCH 42/92] Revert "Revert "ENH: update X1E start gcode"" This reverts commit ae66ad25419b2a3762dfbf4e95b33b1fe944f09b. Reason for revert: add x1e back Change-Id: I90b771c5155c286299c2a48e673785150c69c709 --- resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json index ebc0ce597e..358b8494de 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json @@ -30,5 +30,5 @@ "Bambu Lab X1 0.2 nozzle", "Bambu Lab X1 Carbon 0.2 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json index 1f08b9bb5f..7cfa3300c5 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json @@ -34,6 +34,6 @@ "Bambu Lab X1 0.4 nozzle", "Bambu Lab X1 Carbon 0.4 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", "machine_end_gcode": ";===== date: 20230428 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM141 S0 ; turn off chamber \nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X128 Y250 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json index d5da018423..fde3275fdc 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json @@ -32,5 +32,5 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json index 24c677e158..f6514c5eab 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json @@ -32,5 +32,5 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab X1 Carbon 0.8 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file From 740384a55da43c6295eb99b67a477850503f5a92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=83=E5=96=9C?= Date: Sat, 7 Oct 2023 07:57:18 +0800 Subject: [PATCH 43/92] Revert "Revert "ENH: add X1E as upward printers"" This reverts commit f3102c5ea759047389e140d14d6297dc82341e60. Reason for revert: add x1e back Change-Id: I6c6f21bb67811d10915ad8b7508022d888b4aee0 --- resources/profiles/BBL.json | 2 +- .../BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json | 3 ++- .../BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json | 3 ++- .../BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json | 6 +++++- .../BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json | 6 +++++- .../profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json | 3 ++- .../profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json | 8 +++----- .../profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json | 6 ++---- .../profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json | 6 ++---- .../profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json | 3 ++- .../profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json | 8 +++----- .../profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json | 7 ++++--- .../profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json | 6 ++---- .../profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json | 3 ++- .../profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json | 6 ++---- .../profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json | 7 ++++--- .../profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json | 7 ++++--- .../BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json | 3 ++- .../BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json | 7 ++----- .../BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json | 7 ++++--- .../BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json | 6 ++---- 21 files changed, 57 insertions(+), 56 deletions(-) diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 3031f1ebb7..406ff59c68 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.07.00.26", + "version": "01.07.00.27", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json index d8cea99515..d6e55aa133 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.2 nozzle.json @@ -27,6 +27,7 @@ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json index 9bbe2a9671..90d634dccd 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json @@ -56,7 +56,8 @@ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ], "machine_start_gcode": ";===== machine: A1 mini =========================\n;===== date: 20230928 =====================\n\n;===== start to heat heatbead&hotend==========\nM1002 gcode_claim_action : 2\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG392 S0 ;turn off clog detect\n;=====start printer sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B0 L100 C37 D10 M100 E37 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E43 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C49 D10 M100 E49 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C39 D10 M100 E48 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 W\nM18\n;=====avoid end stop =================\nG91\nG380 S2 Z30 F1200\nG380 S2 Z-20 F1200\nG1 Z5 F1200\nG90\n\n;===== reset machine status =================\nM290 X39 Y39 Z8\nM204 S6000\n\nM630 S0 P0\nG91\nM17 Z0.3 ; lower the z-motor current\n\nG90\nM17 X0.7 Y0.9 Z0.5 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\n;M221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\n;===== prepare print temperature and material ==========\nM1002 gcode_claim_action : 1\nM400\nM18\nM109 S100\nM104 S140\nM400\nM17\nM400\nG28 X\n\nM221 X0 Y0 Z0 ;turn off soft endstop\n\nM975 S1 ; turn on\n\nG1 X0.0 F30000\nG1 X-13.5 F3000\n\nM620 M ;enable remap\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n G392 S1 ;turn on clog detect\n M1002 gcode_claim_action : 4\n M400\n M1002 set_filament_type:UNKNOWN\n M109 S[nozzle_temperature_initial_layer]\n M104 S250\n M400\n T[initial_no_support_extruder]\n G1 X-13.5 F3000\n M400\n M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n M109 S250 ;set nozzle to common flush temp\n M106 P1 S0\n G92 E0\n G1 E50 F200\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n M104 S{nozzle_temperature_range_high[initial_no_support_extruder]}\n G92 E0\n G1 E50 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M400\n M106 P1 S178\n G92 E0\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G92 E0\n G1 E-0.5 F300\n\n G1 X0 F30000\n G1 X-13.5 F3000\n G1 X0 F30000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X0 F30000\n G1 X-13.5 F3000\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G392 S0 ;turn off clog detect\nM621 S[initial_no_support_extruder]A\n\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== mech mode fast check============================\nM1002 gcode_claim_action : 3\nG0 X50 Y175 F20000 ; find a soft place to home\nM104 S0\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-80}\n\nG1 X90 Y-1 Z5 F30000\nM400 P200\nM970.3 Q1 A7 K0 O2\nM974 Q1 S2 P0\n\nG1 X90 Y0 Z5 F30000\nM400 P200\nM970 Q0 A5 B50 C90 H15 K0 M20 O3\n;M970.3 Q0 A7 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X-1 Y10\nG28 X ; re-home XY\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\n;M106 S255\nG29.2 S0 ; turn off ABL\nG0 X50 Y175 F20000 ; find a soft place to home\nG28 Z P0 T300; home z with low precision, permit 300deg temperature\n\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\n\nG0 X85 Y185 F10000 ;move to exposed steel surface and stop the nozzle\nG0 Z-1.01 F10000\nG91\n\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nG90\nG1 Z5 F30000\nG1 X32 Y185 F30000.1 ;Brush material\nG1 Z0.6 F30000.1\nG91\nG1 X-30 F30000\nG1 Y-2\nG1 X27\nG1 Y1.5\nG1 X-28\nG1 Y-2\nG1 X30\nG1 Y1.5\nG1 X-30\n\nG90\nM83\n\nG1 Z10\nG1 X85 Y185\nG1 Z-1.01\nG1 X95\nG1 X90\n\n\nM221 R; pop softend status\n\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== wait heatbed ====================\nM1002 gcode_claim_action : 2\nM104 S0\nM190 S[bed_temperature_initial_layer_single];set bed temp\nM109 S140\n\nG1 Z5 F3000\nG29.2 S1\nG1 X10 Y10 F20000\n\n;===== bed leveling ==================================\n;M1002 set_flag g29_before_print_flag=1\nM1002 judge_flag g29_before_print_flag\nM622 J1\n M1002 gcode_claim_action : 1\n G29 A\n M400\n M500 ; save cali data\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\n\nG1 X-13.5 Y0 Z10 F10000\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S{nozzle_temperature[initial_extruder]}\nM400\n\nM412 S1 ; ===turn on filament runout detection===\nM400 P10\n\nG392 S1 ;turn on clog detect\n\nM620.3 W1; === turn on filament tangle detection===\nM400 S2\n\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n;M1002 set_flag extrude_cali_flag=1\nM1002 judge_flag extrude_cali_flag\nM622 J1\n M1002 gcode_claim_action : 8\n \n M400\n M900 K0.0 L1000.0 M1.0\n G90\n M83\n G0 X68 Y-4 F30000\n G0 Z0.2 F18000 ;Move to start position\n G0 X88 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 Y0 Z0 F20000\n M400\n \n G1 X-13.5 Y0 Z10 F10000\n M400\n \n G1 E10 F{outer_wall_volumetric_speed/2.4*60}\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X-13.5 F3000\n M400\n M106 P1 S0\n\n M1002 judge_last_extrude_cali_success\n M622 J0\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n M400\n M106 P1 S0\n M623\nM623 ; end of \"draw extrinsic para cali paint\"\n\n;===== extrude cali test ===============================\nG90\nM83\nG0 X68 Y-2.5 F30000\nG0 Z0.2 F18000 ;Move to start position\nG0 X88 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X115 Z0 F20000\nG0 Z5\nM400\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\n\nM400 ; wait all motion done before implement the emprical L parameters\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.02} ; for Textured PEI Plate\n{endif}\n\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n\nM211 X0 Y0 Z0 ;turn off soft endstop\n", "machine_end_gcode": ";===== date: 20230912 =====================\n;turn off nozzle clog detect\nG392 S0\n\n{if timelapse_type == 2}\nM991 S0 P-1 ;end timelapse immediately\n{endif}\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X0 F12000 ; move to safe pos \n{if timelapse_type == 1}\nM991 S0 P-1 ;end timelapse at safe pos\n{endif}\n\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\n;G1 X27 F15000 ; wipe\n\n; pull back filament to AMS\nM620 S255\nG1 X181 F12000\nT255\nG1 X0 F18000\nG1 X-13.0 F3000\nG1 X0 F18000 ; wipe\nM621 S255\n\nM104 S0 ; turn off hotend\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 180}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z180 F600\n G1 Z180\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X-13 Y180 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\n;=====printer finish sound=========\nM17\nM400 S1\nM1006 S1\nM1006 A0 B20 L100 C37 D20 M100 E42 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C46 D10 M100 E46 F10 N100\nM1006 A44 B20 L100 C39 D20 M100 E48 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E48 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B20 L100 C41 D20 M100 E49 F20 N100\nM1006 A0 B20 L100 C0 D20 M100 E0 F20 N100\nM1006 A0 B20 L100 C37 D20 M100 E37 F20 N100\nM1006 W\n;=====printer finish sound=========\nM400 S1\nM18\n", diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json index 3ef6460dc4..846a62c517 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.6 nozzle.json @@ -10,6 +10,9 @@ ], "printer_model": "Bambu Lab A1 mini", "printer_variant": "0.6", + "default_filament_profile": [ + "Bambu PLA Basic @BBL A1M" + ], "default_print_profile": "0.30mm Standard @BBL A1M 0.6 nozzle", "max_layer_height": [ "0.42" @@ -28,6 +31,7 @@ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab P1P 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json index 82fcdb8140..2c69cd3455 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.8 nozzle.json @@ -10,6 +10,9 @@ ], "printer_model": "Bambu Lab A1 mini", "printer_variant": "0.8", + "default_filament_profile": [ + "Bambu PLA Basic @BBL A1M" + ], "default_print_profile": "0.40mm Standard @BBL A1M 0.8 nozzle", "max_layer_height": [ "0.56" @@ -28,6 +31,7 @@ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json index 31aa9e7c85..da7b3beea7 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.2 nozzle.json @@ -26,7 +26,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z-0.04 ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json index 247608475c..c70c535727 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.4 nozzle.json @@ -28,14 +28,12 @@ "machine_unload_filament_time": "28", "nozzle_type": "stainless_steel", "scan_first_layer": "0", - "z_hop": [ - "0.4" - ], "upward_compatible_machine": [ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression", "layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n{if timelapse_type == 0} ; timelapse without wipe tower\nM971 S11 C10 O0\n{elsif timelapse_type == 1} ; timelapse with wipe tower\nG92 E0\nG1 E-[retraction_length] F1800\nG17\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 X65 Y245 F20000 ; move to safe pos\nG17\nG2 Z{layer_z} I0.86 J0.86 P1 F20000\nG1 Y265 F3000\nM400 P300\nM971 S11 C11 O0\nG92 E0\nG1 E[retraction_length] F300\nG1 X100 F5000\nG1 Y255 F20000\n{endif}\nM623\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change" -} +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json index e2e35ce501..a9918192e1 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.6 nozzle.json @@ -20,9 +20,6 @@ "min_layer_height": [ "0.12" ], - "z_hop": [ - "0.4" - ], "nozzle_type": "hardened_steel", "retraction_length": [ "1.4" @@ -33,7 +30,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X18 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json index 04375fdf73..9361311d89 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1P 0.8 nozzle.json @@ -24,16 +24,14 @@ "retract_length_toolchange": [ "3" ], - "z_hop": [ - "0.4" - ], "retraction_length": [ "3" ], "upward_compatible_machine": [ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "machine_start_gcode": ";===== machine: P1P ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y15 E1.500 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.500\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X18 E15\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json index 2ef87a37ad..bbb6bcc475 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.2 nozzle.json @@ -26,7 +26,8 @@ "upward_compatible_machine": [ "Bambu Lab P1P 0.2 nozzle", "Bambu Lab X1 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z-0.04 ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json index 8fd2c82da3..a148d661f0 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.4 nozzle.json @@ -27,14 +27,12 @@ "machine_unload_filament_time": "28", "nozzle_type": "stainless_steel", "scan_first_layer": "0", - "z_hop": [ - "0.4" - ], "upward_compatible_machine": [ "Bambu Lab P1P 0.4 nozzle", "Bambu Lab X1 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression", "layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n{if timelapse_type == 0} ; timelapse without wipe tower\nM971 S11 C10 O0\n{elsif timelapse_type == 1} ; timelapse with wipe tower\nG92 E0\nG1 E-[retraction_length] F1800\nG17\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 X65 Y245 F20000 ; move to safe pos\nG17\nG2 Z{layer_z} I0.86 J0.86 P1 F20000\nG1 Y265 F3000\nM400 P300\nM971 S11 C11 O0\nG92 E0\nG1 E[retraction_length] F300\nG1 X100 F5000\nG1 Y255 F20000\n{endif}\nM623\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change" -} +} \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json index dbae519daa..a7c92573fa 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.6 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab P1S", "printer_variant": "0.6", - "z_hop": [ - "0.4" + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C" ], "default_print_profile": "0.30mm Standard @BBL X1C 0.6 nozzle", "max_layer_height": [ @@ -30,7 +30,8 @@ "upward_compatible_machine": [ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab X1 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X18 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json index 8c48198d33..f4196bd168 100644 --- a/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab P1S 0.8 nozzle.json @@ -10,9 +10,6 @@ ], "printer_model": "Bambu Lab P1S", "printer_variant": "0.8", - "z_hop": [ - "0.4" - ], "default_filament_profile": [ "Bambu PLA Basic @BBL X1" ], @@ -33,7 +30,8 @@ "upward_compatible_machine": [ "Bambu Lab P1P 0.6 nozzle", "Bambu Lab X1 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "machine_start_gcode": ";===== machine: P1S ========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X230 Y15\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_extruder]==\"PLA\"}\n {if (bed_temperature[initial_extruder] >45)||(bed_temperature_initial_layer[initial_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_extruder] >50)||(bed_temperature_initial_layer[initial_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n\nM104 S{nozzle_temperature_initial_layer[initial_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== fmech mode fast check============================\n\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature_initial_layer[initial_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y15 E1.500 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.500\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X18 E15\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json index 5c0352f9bf..c0dcb29ee2 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json @@ -26,7 +26,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab X1 Carbon 0.2 nozzle" + "Bambu Lab X1 Carbon 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json index 69975f20e3..e84d3cb0a6 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.4 nozzle.json @@ -28,13 +28,11 @@ "machine_unload_filament_time": "28", "nozzle_type": "stainless_steel", "scan_first_layer": "1", - "z_hop": [ - "0.4" - ], "upward_compatible_machine": [ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", - "Bambu Lab X1 Carbon 0.4 nozzle" + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json index b6e49250c0..87fa2b42c7 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab X1", "printer_variant": "0.6", - "z_hop": [ - "0.4" + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1" ], "default_print_profile": "0.30mm Standard @BBL X1 0.6 nozzle", "max_layer_height": [ @@ -30,7 +30,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab P1P 0.6 nozzle", - "Bambu Lab X1 Carbon 0.6 nozzle" + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json index 6a3b52e579..57396a8b04 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab X1", "printer_variant": "0.8", - "z_hop": [ - "0.4" + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1" ], "default_print_profile": "0.40mm Standard @BBL X1 0.8 nozzle", "max_layer_height": [ @@ -30,7 +30,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", - "Bambu Lab X1 Carbon 0.8 nozzle" + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json index 84b682ce57..15503fa892 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json @@ -27,7 +27,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.2 nozzle", "Bambu Lab P1P 0.2 nozzle", - "Bambu Lab X1 0.2 nozzle" + "Bambu Lab X1 0.2 nozzle", + "Bambu Lab X1E 0.2 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json index 8139efe731..3d46a130dd 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.4 nozzle.json @@ -26,14 +26,11 @@ "machine_load_filament_time": "29", "machine_unload_filament_time": "28", "scan_first_layer": "1", - "z_hop": [ - "0.4" - ], - "printer_structure": "corexy", "upward_compatible_machine": [ "Bambu Lab P1S 0.4 nozzle", "Bambu Lab P1P 0.4 nozzle", - "Bambu Lab X1 0.4 nozzle" + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1E 0.4 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json index 1aa8c94661..91f621db45 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json @@ -10,8 +10,8 @@ ], "printer_model": "Bambu Lab X1 Carbon", "printer_variant": "0.6", - "z_hop": [ - "0.4" + "default_filament_profile": [ + "Bambu PLA Basic @BBL X1C" ], "default_print_profile": "0.30mm Standard @BBL X1C 0.6 nozzle", "max_layer_height": [ @@ -29,7 +29,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.6 nozzle", "Bambu Lab P1P 0.6 nozzle", - "Bambu Lab X1 0.6 nozzle" + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1E 0.6 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json index ac6d31e35c..71730007b0 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json @@ -10,9 +10,6 @@ ], "printer_model": "Bambu Lab X1 Carbon", "printer_variant": "0.8", - "z_hop": [ - "0.4" - ], "default_filament_profile": [ "Bambu PLA Basic @BBL X1C 0.8 nozzle" ], @@ -32,7 +29,8 @@ "upward_compatible_machine": [ "Bambu Lab P1S 0.8 nozzle", "Bambu Lab P1P 0.8 nozzle", - "Bambu Lab X1 0.8 nozzle" + "Bambu Lab X1 0.8 nozzle", + "Bambu Lab X1E 0.8 nozzle" ], "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20230707 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file From 3b0490ae3504fe1b87f5bfd28e5539f2b8a012f2 Mon Sep 17 00:00:00 2001 From: gerrit Date: Sat, 7 Oct 2023 09:45:29 +0800 Subject: [PATCH 44/92] ci: update build version to 01.07.07.83 Change-Id: Ied7f76866cb4d70c8eeeec0aaa41ea1702408782 --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index da9a52823b..15bbbd5ed1 100644 --- a/version.inc +++ b/version.inc @@ -12,4 +12,4 @@ set(BBL_INTERNAL_TESTING "1") endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.07.07.82") +set(SLIC3R_VERSION "01.07.07.83") From 5196bcdee0084b4dcd72e568b0766e27435700e2 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Sat, 7 Oct 2023 11:06:23 +0800 Subject: [PATCH 45/92] ENH: update X1E start gcode 1.Optimize the heating sequence for the X1E chamber Signed-off-by: xun.zhang Change-Id: I22650b71961218b32247a84eefb9bf8dc5dceeb7 --- resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json | 2 +- resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json index 358b8494de..2ab1813a3a 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.2 nozzle.json @@ -30,5 +30,5 @@ "Bambu Lab X1 0.2 nozzle", "Bambu Lab X1 Carbon 0.2 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM141 S[overall_chamber_temperature] ; Let Chamber begin to heat\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;===== wait chamber temperature reaching the reference value =======\n{if (overall_chamber_temperature >= 40)}\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S0 ; reset chamber fan cmd\n{endif}\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json index 7cfa3300c5..30a52d8824 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.4 nozzle.json @@ -34,6 +34,6 @@ "Bambu Lab X1 0.4 nozzle", "Bambu Lab X1 Carbon 0.4 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4", + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM141 S[overall_chamber_temperature] ; Let Chamber begin to heat\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.040\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.020\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.020 K0.040\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.02 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.02}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;===== wait chamber temperature reaching the reference value =======\n{if (overall_chamber_temperature >= 40)}\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S0 ; reset chamber fan cmd\n{endif}\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n\n", "machine_end_gcode": ";===== date: 20230428 =====================\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X65 Y245 F12000 ; move to safe pos \nG1 Y265 F3000\n\nG1 X65 Y245 F12000\nG1 Y265 F3000\nM141 S0 ; turn off chamber \nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\nG1 X100 F12000 ; wipe\n; pull back filament to AMS\nM620 S255\nG1 X20 Y50 F12000\nG1 Y-3\nT255\nG1 X65 F12000\nG1 Y265\nG1 X100 F12000 ; wipe\nM621 S255\nM104 S0 ; turn off hotend\n\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\n M400 ; wait all motion done\n M991 S0 P-1 ;end smooth timelapse at safe pos\n M400 S3 ;wait for last picture to be taken\nM623; end of \"timelapse_record_flag\"\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 250}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z250 F600\n G1 Z248\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X128 Y250 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\nM17 X0.8 Y0.8 Z0.5 ; lower motor current to 45% power\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json index fde3275fdc..1f0bf643f6 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.6 nozzle.json @@ -32,5 +32,5 @@ "Bambu Lab X1 0.6 nozzle", "Bambu Lab X1 Carbon 0.6 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM141 S[overall_chamber_temperature] ; Let Chamber begin to heat\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;===== wait chamber temperature reaching the reference value =======\n{if (overall_chamber_temperature >= 40)}\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S0 ; reset chamber fan cmd\n{endif}\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json index f6514c5eab..9d18166836 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1E 0.8 nozzle.json @@ -32,5 +32,5 @@ "Bambu Lab X1 0.8 nozzle", "Bambu Lab X1 Carbon 0.8 nozzle" ], - "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature and wait ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S100 ; reset chamber fan cmd\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" + "machine_start_gcode": ";===== machine: X1E =========================\n;===== date: 20230815 =====================\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;==== if Chamber Cooling is necessary ==== \n\n{if (filament_type[initial_no_support_extruder]==\"PLA\") || (filament_type[initial_no_support_extruder]==\"PETG\") || (filament_type[initial_no_support_extruder]==\"TPU\") || (filament_type[initial_no_support_extruder]==\"PVA\") || (filament_type[initial_no_support_extruder]==\"PLA-CF\") || (filament_type[initial_no_support_extruder]==\"PETG-CF\")}\nM1002 gcode_claim_action : 29\nG28\nG90\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nG1 Z200\nM140 S0 ; stop heatbed from heating\nM106 P2 S255 ; open auxiliary fan for cooling\nM106 P3 S255 ; open chamber fan for cooling\nM191 S0 ; wait for chamber temp\nM106 P3 S0 ; reset chamber fan cmd\nM106 P2 S0; reset auxiliary fan cmd\n{endif}\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S290 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n\n;===== set chamber temperature ==========\n{if (overall_chamber_temperature >= 40)}\nM106 P2 S255 ; open big fan to help heating\nM141 S[overall_chamber_temperature] ; Let Chamber begin to heat\n{endif}\n\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {elsif (bed_temperature[initial_no_support_extruder] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {endif};Prevent PLA from jamming\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;===== wait chamber temperature reaching the reference value =======\n{if (overall_chamber_temperature >= 40)}\nM191 S[overall_chamber_temperature] ; wait for chamber temp\nM106 P2 S0 ; reset chamber fan cmd\n{endif}\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4" } \ No newline at end of file From b8fb221813660c17be96a7a9064b6753651ecd34 Mon Sep 17 00:00:00 2001 From: "salt.wei" Date: Sat, 7 Oct 2023 17:29:50 +0800 Subject: [PATCH 46/92] ENH: fix 0 space exception when slicing JIRA: none. found by cli slicing Signed-off-by: salt.wei Change-Id: I47a754e99e193394b0d34cd05e27304910af521f --- src/libslic3r/VariableWidth.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/VariableWidth.cpp b/src/libslic3r/VariableWidth.cpp index 6f7407d702..e01050e4a4 100644 --- a/src/libslic3r/VariableWidth.cpp +++ b/src/libslic3r/VariableWidth.cpp @@ -123,11 +123,11 @@ static ExtrusionPaths thick_polyline_to_extrusion_paths_2(const ThickPolyline& t if (start_index != i){ path = ExtrusionPath(role); double length = lines[start_index].length(); - double sum = lines[start_index].length() * lines[start_index].a_width; + double sum = lines[start_index].length() * 0.5 * (lines[start_index].a_width + lines[start_index].b_width); path.polyline.append(lines[start_index].a); for (int idx = start_index + 1; idx < i; idx++) { length += lines[idx].length(); - sum += lines[idx].length() * lines[idx].a_width; + sum += lines[idx].length() * 0.5 * (lines[idx].a_width + lines[idx].b_width); path.polyline.append(lines[idx].a); } path.polyline.append(lines[i].a); From 84524e76857a2468da1aa447e12c3058c6f3a217 Mon Sep 17 00:00:00 2001 From: tao wang Date: Sat, 7 Oct 2023 16:57:46 +0800 Subject: [PATCH 47/92] FIX:set print mode before print all plate jira:[STUDIO-4649,STUDIO-4650] Change-Id: Ib4ddda6f1461a31a7d7407786bcb0d1859b3fb82 --- src/slic3r/GUI/Plater.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 55094b30b8..25b8d830af 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -6314,6 +6314,7 @@ void Plater::priv::on_action_print_all(SimpleEvent&) //BBS if (!m_select_machine_dlg) m_select_machine_dlg = new SelectMachineDialog(q); + m_select_machine_dlg->set_print_type(PrintFromType::FROM_NORMAL); m_select_machine_dlg->prepare(PLATE_ALL_IDX); m_select_machine_dlg->ShowModal(); record_start_print_preset("print_all"); From 390c295a63742b2cbad0d3fec37e7f40eeaadc10 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Sat, 7 Oct 2023 18:15:27 +0800 Subject: [PATCH 48/92] ENH: update max v speed for PolyLite PETG 1. Set max volumertic speed to 11.5 for PolyLite PETG jira:STUDIO-3518 Signed-off-by: xun.zhang Change-Id: I5ee019d07124870893df9ab636851adc0f2a6425 --- resources/profiles/BBL.json | 2 +- resources/profiles/BBL/filament/PolyLite PETG @BBL P1P.json | 2 +- resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index 406ff59c68..ab828dca02 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.07.00.27", + "version": "01.07.00.28", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ diff --git a/resources/profiles/BBL/filament/PolyLite PETG @BBL P1P.json b/resources/profiles/BBL/filament/PolyLite PETG @BBL P1P.json index 9d3d627736..9420b28be2 100644 --- a/resources/profiles/BBL/filament/PolyLite PETG @BBL P1P.json +++ b/resources/profiles/BBL/filament/PolyLite PETG @BBL P1P.json @@ -6,7 +6,7 @@ "setting_id": "GFSG60_02", "instantiation": "true", "filament_max_volumetric_speed": [ - "11" + "11.5" ], "hot_plate_temp": [ "80" diff --git a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json index 829f11eec3..23c0311956 100644 --- a/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json +++ b/resources/profiles/BBL/filament/PolyLite PETG @BBL X1C.json @@ -6,7 +6,7 @@ "setting_id": "GFSG60_00", "instantiation": "true", "filament_max_volumetric_speed": [ - "11" + "11.5" ], "nozzle_temperature_range_high": [ "270" From a5e5237b22ff4ba2493c79d97e18756d8b119752 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Sat, 7 Oct 2023 18:01:18 +0800 Subject: [PATCH 49/92] FIX: Unhandled unknown exception terminating the application when cali Jira: 4386 Change-Id: I80ab306882176cfe2453f791992911fb4de19d83 --- src/slic3r/Utils/CalibUtils.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/slic3r/Utils/CalibUtils.cpp b/src/slic3r/Utils/CalibUtils.cpp index d176278ef4..729904cb05 100644 --- a/src/slic3r/Utils/CalibUtils.cpp +++ b/src/slic3r/Utils/CalibUtils.cpp @@ -11,7 +11,8 @@ namespace Slic3r { namespace GUI { std::shared_ptr CalibUtils::print_job; -static const std::string temp_dir = fs::path(fs::temp_directory_path() / "calib").string(); +wxString wxstr_temp_dir = fs::path(fs::temp_directory_path() / "calib").wstring(); +static const std::string temp_dir = wxstr_temp_dir.utf8_string(); static const std::string temp_gcode_path = temp_dir + "/temp.gcode"; static const std::string path = temp_dir + "/test.3mf"; static const std::string config_3mf_path = temp_dir + "/test_config.3mf"; From a004356fdc019191a5c3a6672e8f5e04ed85f17f Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Wed, 27 Sep 2023 11:54:29 +0800 Subject: [PATCH 50/92] ENH: [STUDIO-4579] limit request rating result count Jira: 4579 Change-Id: Ifae6f50b46fc39254ce7c59d0deb1cf1e1940579 Signed-off-by: Stone Li Signed-off-by: maosheng.wei --- src/slic3r/GUI/DeviceManager.cpp | 96 ++++++++++++++++++++ src/slic3r/GUI/DeviceManager.hpp | 20 ++++- src/slic3r/GUI/Monitor.cpp | 1 - src/slic3r/GUI/StatusPanel.cpp | 147 ++++++++++--------------------- src/slic3r/GUI/StatusPanel.hpp | 3 - 5 files changed, 162 insertions(+), 105 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index ccefde7c91..f2cea8cf7f 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -1414,6 +1414,15 @@ int MachineObject::get_bed_temperature_limit() return BED_TEMP_LIMIT; } +bool MachineObject::is_makeworld_subtask() +{ + if (model_task && model_task->design_id > 0) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " model task id: " << model_task->task_id << " is makeworld model"; + return true; + } + return false; +} + bool MachineObject::is_sdcard_printing() { if (can_abort() @@ -2509,6 +2518,7 @@ bool MachineObject::is_in_printing_status(std::string status) return false; } + bool MachineObject::is_in_printing() { /* use print_status if print_status is valid */ @@ -4501,6 +4511,92 @@ void MachineObject::set_modeltask(BBLModelTask* task) model_task = task; } +void MachineObject::update_model_task() +{ + if (request_model_result > 10) return; + if (!m_agent) return; + if (!model_task) return; + if (!subtask_) return; + if (model_task->task_id != subtask_->task_id) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " times: " << request_model_result << " model_task_id !=subtask_id"; + return; + } + if (model_task->instance_id <= 0) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " times: " << request_model_result << " instance_id <= 0"; + return; + } + + if ((!subtask_id_.empty() && last_subtask_id_ != subtask_id_) || get_model_mall_result_need_retry) { + if (!subtask_id_.empty() && last_subtask_id_ != subtask_id_) { + BOOST_LOG_TRIVIAL(info) << "update_model_task: last=" << last_subtask_id_ << ", curr=" << subtask_id_; + last_subtask_id_ = subtask_id_; + request_model_result = 0; + } + if (get_model_mall_result_need_retry) { + BOOST_LOG_TRIVIAL(info) << "need retry"; + get_model_mall_result_need_retry = false; + } + } else { + BOOST_LOG_TRIVIAL(info) << "subtask_id_ no change and do not need retry"; + return; + } + + int curr_instance_id = model_task->instance_id; + if (rating_info) { + delete rating_info; + rating_info = nullptr; + } + get_model_task_thread = new boost::thread([this, curr_instance_id]{ + try { + std::string rating_result; + unsigned int http_code = 404; + std::string http_error; + int res = -1; + res = m_agent->get_model_mall_rating_result(curr_instance_id, rating_result, http_code, http_error); + request_model_result++; + BOOST_LOG_TRIVIAL(info) << "request times: " << request_model_result << " http code: " << http_code; + rating_info = new RatingInfo(); + if (0 == res && 200 == http_code) { + try { + json rating_json = json::parse(rating_result); + if (rating_json.contains("id")) { + rating_info->rating_id = rating_json["id"].get(); + //rating id is necessary info, so rating id must have + request_model_result = 0; + rating_info->request_successful = true; + BOOST_LOG_TRIVIAL(info) << "get rating id"; + } else { + rating_info->request_successful = false; + BOOST_LOG_TRIVIAL(info) << "can not get rating id"; + return; + } + if (rating_json.contains("score")) { + rating_info->start_count = rating_json["score"].get(); + } + if (rating_json.contains("content")) + rating_info->content = rating_json["content"].get(); + if (rating_json.contains("successPrinted")) + rating_info->success_printed = rating_json["successPrinted"].get(); + if (rating_json.contains("images")) { + rating_info->image_url_paths = rating_json["images"].get>(); + } + } catch (...) { + BOOST_LOG_TRIVIAL(info) << "parse model mall result json failed"; + } + } + else { + rating_info->request_successful = false; + BOOST_LOG_TRIVIAL(info) << "model mall result request failed, request time: " << request_model_result << " http_code: " << http_code + << " error msg: " << http_error; + return; + } + } + catch (...) { + BOOST_LOG_TRIVIAL(info) << "get mall model rating id failed and hide scoring page"; + } + }); +} + void MachineObject::update_slice_info(std::string project_id, std::string profile_id, std::string subtask_id, int plate_idx) { if (!m_agent) return; diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 1f0c464f74..a5d5159c05 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -179,6 +179,15 @@ enum ManualPaCaliMethod { PA_PATTERN, }; +struct RatingInfo { + bool request_successful; + int rating_id; + int start_count; + bool success_printed; + std::string content; + std::vector image_url_paths; +}; + class AmsTray { public: AmsTray(std::string tray_id) { @@ -761,15 +770,23 @@ public: std::string profile_id_; std::string task_id_; std::string subtask_id_; + std::string last_subtask_id_; BBLSliceInfo* slice_info {nullptr}; boost::thread* get_slice_info_thread { nullptr }; + boost::thread* get_model_task_thread { nullptr }; + + bool is_makeworld_subtask(); int plate_index { -1 }; std::string m_gcode_file; int gcode_file_prepare_percent = 0; BBLSubTask* subtask_; - BBLModelTask* model_task; + BBLModelTask *model_task { nullptr }; + RatingInfo* rating_info { nullptr }; + int request_model_result = 0; + bool get_model_mall_result_need_retry = false; + std::string obj_subtask_id; // subtask_id == 0 for sdcard std::string subtask_name; bool is_sdcard_printing(); @@ -909,6 +926,7 @@ public: BBLSubTask* get_subtask(); BBLModelTask* get_modeltask(); void set_modeltask(BBLModelTask* task); + void update_model_task(); void update_slice_info(std::string project_id, std::string profile_id, std::string subtask_id, int plate_idx); bool m_firmware_valid { false }; diff --git a/src/slic3r/GUI/Monitor.cpp b/src/slic3r/GUI/Monitor.cpp index 2e9fc9ed3e..4c7019f76f 100644 --- a/src/slic3r/GUI/Monitor.cpp +++ b/src/slic3r/GUI/Monitor.cpp @@ -274,7 +274,6 @@ void MonitorPanel::on_update_all(wxMouseEvent &event) return; set_default(); - m_status_info_panel->set_print_finish_status(false); update_all(); MachineObject *obj_ = dev->get_selected_machine(); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 965fd0ef9d..02b4209fd0 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -1731,9 +1731,10 @@ void StatusPanel::init_scaled_buttons() } void StatusPanel::on_market_scoring(wxCommandEvent &event) { - if (obj && obj->get_modeltask() && obj->get_modeltask()->design_id > 0 && m_rating_result.contains("id")) { // model is mall model and has rating_id + if (obj && obj->is_makeworld_subtask() && obj->rating_info && obj->rating_info->request_successful) { // model is mall model and has rating_id BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": on_market_scoring" ; - if (m_score_data && m_score_data->rating_id == m_rating_result["id"].get()) { // current score data for model is same as mall model + if (m_score_data && m_score_data->rating_id == obj->rating_info->rating_id) { // current score data for model is same as mall model + if (m_score_data->star_count != m_project_task_panel->get_star_count()) m_score_data->star_count = m_project_task_panel->get_star_count(); ScoreDialog m_score_dlg(this, m_score_data); int ret = m_score_dlg.ShowModal(); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": old data"; @@ -1742,8 +1743,7 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": old data is upload"; m_score_data->rating_id = -1; m_project_task_panel->set_star_count_dirty(false); - requested_rating_map.clear(); - m_print_finish = false; + if (obj) obj->get_model_mall_result_need_retry = true; return; } if (m_score_data != nullptr) { @@ -1753,29 +1753,18 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { m_score_data = new ScoreData(m_score_dlg.get_score_data()); // when user do not submit score, store the data for next opening the score dialog m_project_task_panel->set_star_count(m_score_data->star_count); } else { - //to do: if user has rated the model, show the comment on the dialog - int star_count = 0; - if (m_rating_result.contains("content")) - star_count = m_project_task_panel->get_star_count_dirty() ? m_project_task_panel->get_star_count() : m_rating_result["score"].get(); - bool success_print = true; - if (m_rating_result.contains("successPrinted")) - success_print = m_rating_result["successPrinted"].get(); - ScoreDialog m_score_dlg(this, obj->get_modeltask()->design_id, obj->get_modeltask()->model_id, obj->get_modeltask()->profile_id, - m_rating_result["id"].get(), success_print, star_count); + int star_count = m_project_task_panel->get_star_count_dirty() ? m_project_task_panel->get_star_count() : obj->rating_info->start_count; + bool success_print = obj->rating_info->success_printed; + ScoreDialog m_score_dlg(this, obj->get_modeltask()->design_id, obj->get_modeltask()->model_id, obj->get_modeltask()->profile_id, obj->rating_info->rating_id, + success_print, star_count); BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": new data"; - if (m_rating_result.contains("content")) { - std::string comment = m_rating_result["content"].get(); - if (!comment.empty()) { - m_score_dlg.set_comment(comment); - } - } + std::string comment = obj->rating_info->content; + if (!comment.empty()) { m_score_dlg.set_comment(comment); } - if (m_rating_result.contains("images")) { - std::vector images_json_array; - images_json_array = m_rating_result["images"].get>(); - m_score_dlg.set_cloud_bitmap(images_json_array); - } + std::vector images_json_array; + images_json_array = obj->rating_info->image_url_paths; + if (!images_json_array.empty()) m_score_dlg.set_cloud_bitmap(images_json_array); int ret = m_score_dlg.ShowModal(); @@ -1783,8 +1772,7 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ": new data is upload"; m_score_data->rating_id = -1; m_project_task_panel->set_star_count_dirty(false); - requested_rating_map.clear(); - m_print_finish = false; + if (obj) obj->get_model_mall_result_need_retry = true; return; } if (m_score_data != nullptr) { @@ -1799,8 +1787,11 @@ void StatusPanel::on_market_scoring(wxCommandEvent &event) { void StatusPanel::on_market_retry(wxCommandEvent &event) { - m_print_finish = false; - requested_rating_map.clear(); + if (obj) { + obj->get_model_mall_result_need_retry = true; + } else { + BOOST_LOG_TRIVIAL(info)<< __FUNCTION__ << "retury failed"; + } } void StatusPanel::on_subtask_pause_resume(wxCommandEvent &event) @@ -1900,11 +1891,11 @@ bool StatusPanel::is_task_changed(MachineObject* obj) || last_profile_id != obj->profile_id_ || last_task_id != obj->task_id_ ) { - requested_rating_map.erase(last_task_id); last_subtask = obj->subtask_; last_profile_id = obj->profile_id_; last_task_id = obj->task_id_; request_model_info_flag = false; + m_project_task_panel->set_star_count_dirty(false); return true; } return false; @@ -2739,7 +2730,6 @@ void StatusPanel::update_model_info() if (wxGetApp().getAgent() && obj) { - BBLSubTask* curr_task = obj->get_subtask(); if (curr_task) { BBLModelTask* curr_model_task = obj->get_modeltask(); @@ -2808,90 +2798,51 @@ void StatusPanel::update_subtask(MachineObject *obj) else { m_project_task_panel->show_profile_info(false); } - update_basic_print_data(false); } else { if (obj->can_resume()) { m_project_task_panel->enable_pause_resume_button(true, "resume"); - } else { m_project_task_panel->enable_pause_resume_button(true, "pause"); } - if (obj->print_status == "FINISH") { + if (obj->is_printing_finished()) { + obj->update_model_task(); m_project_task_panel->enable_abort_button(false); m_project_task_panel->enable_pause_resume_button(false, "resume_disable"); - if (wxGetApp().has_model_mall()) { - bool is_market_task = obj->get_modeltask() && obj->get_modeltask()->design_id > 0; - if (is_market_task) { - NetworkAgent *agent = wxGetApp().getAgent(); - if (agent && IsShownOnScreen()) { - if (requested_rating_map.find(obj->subtask_id_) == requested_rating_map.end()) { - requested_rating_map[obj->subtask_id_] = true; - m_project_task_panel->get_request_failed_panel()->Hide(); - int instance_id = obj->get_modeltask()->instance_id; - std::string dev_id = obj->dev_id; - boost::thread([this, agent, instance_id, dev_id] { - try { - std::string rating_result; - unsigned int http_code = 404; - std::string http_error; - int rating_id = -1; - int res = -1; - if (!this || !(this->obj) || this->obj->dev_id != dev_id) return; - if (m_model_mall_request_count > 20) return; - res = agent->get_model_mall_rating_result(instance_id, rating_result, http_code, http_error); - m_model_mall_request_count++; - BOOST_LOG_TRIVIAL(info) << "request times :" << m_model_mall_request_count; - if (0 == res) { - m_rating_result = json::parse(rating_result); - if (m_rating_result.contains("id")) { - rating_id = m_rating_result["id"].get(); - if (!this || !(this->obj) || this->obj->dev_id != dev_id) return; - m_project_task_panel->market_scoring_show(); - BOOST_LOG_TRIVIAL(info) << "show scoring page"; - // this mall model has score, user do not click star, Initialize scores only once per print startup program - if ((m_rating_result.contains("score"))) { - int star_count = m_rating_result["score"].get(); - m_project_task_panel->set_star_count(star_count); - m_project_task_panel->set_star_count_dirty(true); - BOOST_LOG_TRIVIAL(info) << "Initialize scores"; - - if (0 != star_count) { - m_project_task_panel->get_market_scoring_button()->Enable(true); - m_project_task_panel->set_has_reted_text(true); - } else { - m_project_task_panel->set_has_reted_text(false); - } - } - } - m_model_mall_request_count = 0; - } else { - m_project_task_panel->get_request_failed_panel()->Show(); - BOOST_LOG_TRIVIAL(info) << "model mall result request failed"; - return; - } - } catch (...) { - m_project_task_panel->market_scoring_hide(); - BOOST_LOG_TRIVIAL(info) << "get mall model rating id failed and hide scoring page"; - } - }); + // is makeworld subtask + if (wxGetApp().has_model_mall() && obj->is_makeworld_subtask()) { + // has model mall rating result + if (obj && obj->rating_info && obj->rating_info->request_successful) { + m_project_task_panel->get_request_failed_panel()->Hide(); + BOOST_LOG_TRIVIAL(info) << "model mall result request successful"; + // has start count + if (!m_project_task_panel->get_star_count_dirty()) { + if (obj->rating_info->start_count > 0) { + m_project_task_panel->set_star_count(obj->rating_info->start_count); + m_project_task_panel->set_star_count_dirty(true); + BOOST_LOG_TRIVIAL(info) << "Initialize scores"; + m_project_task_panel->get_market_scoring_button()->Enable(true); + m_project_task_panel->set_has_reted_text(true); + } else { + m_project_task_panel->set_star_count(0); + m_project_task_panel->set_star_count_dirty(false); + m_project_task_panel->get_market_scoring_button()->Enable(false); + m_project_task_panel->set_has_reted_text(false); } } - BOOST_LOG_TRIVIAL(info) << "SHOW_SCORE_BTU: design_id [" << obj->get_modeltask()->design_id << "] print_finish [" << m_print_finish << "]"; - - } else { // model is not mall model. hide scoring page - m_project_task_panel->market_scoring_hide(); + m_project_task_panel->market_scoring_show(); + } else if (obj && obj->rating_info && !obj->rating_info->request_successful) { + BOOST_LOG_TRIVIAL(info) << "model mall result request failed"; + m_project_task_panel->get_market_retry_buttom()->Enable(!obj->get_model_mall_result_need_retry); + m_project_task_panel->get_request_failed_panel()->Show(); } - } else { // have no model mall, hide scoring page + } else { m_project_task_panel->market_scoring_hide(); } } else { // model printing is not finished, hide scoring page m_project_task_panel->enable_abort_button(true); m_project_task_panel->market_scoring_hide(); m_project_task_panel->get_request_failed_panel()->Hide(); - if (m_print_finish) { - m_print_finish = false; - } } // update printing stage @@ -3932,10 +3883,6 @@ void StatusPanel::show_status(int status) } } -void StatusPanel::set_print_finish_status(bool is_finish) { - m_print_finish = is_finish; -} - void StatusPanel::set_hold_count(int& count) { if (obj) { diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index f9094bc3c8..8d1f67d5dc 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -470,7 +470,6 @@ protected: int m_last_vcamera = -1; int m_model_mall_request_count = 0; bool m_is_load_with_temp = false; - bool m_print_finish = false; json m_rating_result; wxWebRequest web_request; @@ -478,7 +477,6 @@ protected: bool nozzle_temp_input = false; bool cham_temp_input = false; bool request_model_info_flag = false; - std::map requested_rating_map; int speed_lvl = 1; // 0 - 3 int speed_lvl_timeout {0}; boost::posix_time::ptime speed_dismiss_time; @@ -627,7 +625,6 @@ public: void set_default(); void show_status(int status); - void set_print_finish_status(bool is_finish); void set_hold_count(int& count); void rescale_camera_icons(); From 92ba240173cd54da9b358bdb7d08ffc2daa1de37 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Sat, 7 Oct 2023 10:42:11 +0800 Subject: [PATCH 51/92] FIX: PrinterFileSystem crash when switch file type Change-Id: I25b0659d7a33bda5bb1157c967dac300b41696a9 Github: 2633 --- src/slic3r/GUI/ImageGrid.cpp | 6 +++++- src/slic3r/GUI/Printer/PrinterFileSystem.cpp | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/ImageGrid.cpp b/src/slic3r/GUI/ImageGrid.cpp index ed34579d99..9944abb363 100644 --- a/src/slic3r/GUI/ImageGrid.cpp +++ b/src/slic3r/GUI/ImageGrid.cpp @@ -92,8 +92,12 @@ void Slic3r::GUI::ImageGrid::SetFileType(int type, std::string const &storage) void Slic3r::GUI::ImageGrid::SetGroupMode(int mode) { - if (!m_file_sys || m_file_sys->GetCount() == 0) + if (!m_file_sys) return; + if (m_file_sys->GetCount() == 0) { + m_file_sys->SetGroupMode((PrinterFileSystem::GroupMode) mode); + return; + } wxSize size = GetClientSize(); int index = (m_row_offset + 1 < m_row_count || m_row_count == 0) ? m_row_offset / 4 * m_col_count diff --git a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp index e95ae83763..ca7718faba 100644 --- a/src/slic3r/GUI/Printer/PrinterFileSystem.cpp +++ b/src/slic3r/GUI/Printer/PrinterFileSystem.cpp @@ -91,6 +91,7 @@ void PrinterFileSystem::SetFileType(FileType type, std::string const &storage) m_file_list.swap(m_file_list_cache[{m_file_type, m_file_storage}]); m_lock_start = m_lock_end = 0; BuildGroups(); + UpdateGroupSelect(); SendChangedEvent(EVT_FILE_CHANGED); if (type == F_INVALID_TYPE) return; @@ -515,10 +516,10 @@ void PrinterFileSystem::Stop(bool quit) void PrinterFileSystem::BuildGroups() { - if (m_file_list.empty()) - return; m_group_year.clear(); m_group_month.clear(); + if (m_file_list.empty()) + return; wxDateTime t = wxDateTime((time_t) m_file_list.front().time); m_group_year.push_back(0); m_group_month.push_back(0); From c35ece24fe442a03bb82d00a43a798da326ea5ee Mon Sep 17 00:00:00 2001 From: Stone Li Date: Sun, 8 Oct 2023 08:48:35 +0800 Subject: [PATCH 52/92] FIX: fix a crash issue of mac os GITHUB: https://github.com/bambulab/BambuStudio/issues/2573 Change-Id: Ic365bc411dd829701ce4ffd0090b09367cb6eddc Signed-off-by: Stone Li --- src/slic3r/GUI/PrinterWebView.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/slic3r/GUI/PrinterWebView.cpp b/src/slic3r/GUI/PrinterWebView.cpp index 5830d13798..8065015453 100644 --- a/src/slic3r/GUI/PrinterWebView.cpp +++ b/src/slic3r/GUI/PrinterWebView.cpp @@ -37,12 +37,14 @@ PrinterWebView::PrinterWebView(wxWindow *parent) topsizer->Add(m_browser, wxSizerFlags().Expand().Proportion(1)); // Log backend information + /* m_browser->GetUserAgent() may lead crash if (wxGetApp().get_mode() == comDevelop) { wxLogMessage(wxWebView::GetBackendVersionInfo().ToString()); wxLogMessage("Backend: %s Version: %s", m_browser->GetClassInfo()->GetClassName(), wxWebView::GetBackendVersionInfo().ToString()); wxLogMessage("User Agent: %s", m_browser->GetUserAgent()); } + */ //Zoom m_zoomFactor = 100; From 04552e4c9b43f83b1771b2fbff8b43a3f5ef0b58 Mon Sep 17 00:00:00 2001 From: Arthur Date: Sat, 7 Oct 2023 14:23:15 +0800 Subject: [PATCH 53/92] FIX: cli arrange failed in some cases 1. set different bed_shrink for seq_print and layered print 2. fix the bug that seq_print arranging may get collision with exclusion area. 3. remove unused functions. Jira: STUDIO-4663 Change-Id: I8b726704cca33fe37bb3cb7c4502963a9ad8d16b (cherry picked from commit f27d00f81315fe4675bbc55ef932403e31a9264f) --- src/BambuStudio.cpp | 15 +++++--- src/libslic3r/Arrange.cpp | 22 ++++++------ src/libslic3r/Arrange.hpp | 9 +++-- src/libslic3r/Print.cpp | 2 +- src/slic3r/GUI/GLCanvas3D.hpp | 2 -- src/slic3r/GUI/Jobs/ArrangeJob.cpp | 58 ++++++------------------------ src/slic3r/GUI/Jobs/ArrangeJob.hpp | 5 --- src/slic3r/GUI/Jobs/FillBedJob.cpp | 5 +-- src/slic3r/GUI/Plater.cpp | 2 +- 9 files changed, 40 insertions(+), 80 deletions(-) diff --git a/src/BambuStudio.cpp b/src/BambuStudio.cpp index 55905ef73b..aadcf80c7b 100644 --- a/src/BambuStudio.cpp +++ b/src/BambuStudio.cpp @@ -2048,7 +2048,6 @@ int CLI::run(int argc, char **argv) bool user_center_specified = false; Points beds = get_bed_shape(m_print_config); ArrangeParams arrange_cfg; - arrange_cfg.min_obj_distance = scaled(min_object_distance(m_print_config)); BOOST_LOG_TRIVIAL(info) << "will start transforms, commands count " << m_transforms.size() << "\n"; #if defined(__linux__) || defined(__LINUX__) @@ -2445,13 +2444,13 @@ int CLI::run(int argc, char **argv) Slic3r::GUI::PartPlate* cur_plate = nullptr; int low_duplicate_count = 0, up_duplicate_count = duplicate_count, arrange_count = 0; - arrange_cfg.is_seq_print = false; if (duplicate_count > 0) { original_model = model; } while(!finished_arrange) { + arrange_cfg = ArrangeParams(); // reset all params arrange_count++; //step-0: duplicate model if (duplicate_count > 0) @@ -2666,20 +2665,26 @@ int CLI::run(int argc, char **argv) arrange_cfg.cleareance_radius = cleareance_radius; arrange_cfg.printable_height = print_height; arrange_cfg.min_obj_distance = 0; - + if (arrange_cfg.is_seq_print) { + arrange_cfg.bed_shrink_x = BED_SHRINK_SEQ_PRINT; + arrange_cfg.bed_shrink_y = BED_SHRINK_SEQ_PRINT; + } if (auto printer_structure_opt = m_print_config.option>("printer_structure")) { arrange_cfg.align_to_y_axis = (printer_structure_opt->value == PrinterStructure::psI3); } - arrangement::update_arrange_params(arrange_cfg, m_print_config, selected); + arrangement::update_arrange_params(arrange_cfg, &m_print_config, selected); arrangement::update_selected_items_inflation(selected, &m_print_config, arrange_cfg); arrangement::update_unselected_items_inflation(unselected, &m_print_config, arrange_cfg); arrangement::update_selected_items_axis_align(selected, &m_print_config, arrange_cfg); beds=get_shrink_bedpts(&m_print_config, arrange_cfg); + partplate_list.preprocess_exclude_areas(arrange_cfg.excluded_regions, 1, scale_(1)); + { - BOOST_LOG_TRIVIAL(debug)<< "Arrange full params: "<< arrange_cfg.to_json(); + BOOST_LOG_TRIVIAL(debug) << "arrange bedpts:" << beds[0].transpose() << ", " << beds[1].transpose() << ", " << beds[2].transpose() << ", " << beds[3].transpose(); + BOOST_LOG_TRIVIAL(warning)<< "Arrange full params: "<< arrange_cfg.to_json(); BOOST_LOG_TRIVIAL(info) << boost::format("arrange: items selected before arranging: %1%")%selected.size(); for (auto item : selected) BOOST_LOG_TRIVIAL(trace) << item.name << ", extruder: " << item.extrude_ids.back() << ", bed: " << item.bed_idx diff --git a/src/libslic3r/Arrange.cpp b/src/libslic3r/Arrange.cpp index 3ea4955fe8..6eb6371fb2 100644 --- a/src/libslic3r/Arrange.cpp +++ b/src/libslic3r/Arrange.cpp @@ -80,19 +80,18 @@ using ItemGroup = std::vector>; const double BIG_ITEM_TRESHOLD = 0.02; #define VITRIFY_TEMP_DIFF_THRSH 15 // bed temp can be higher than vitrify temp, but not higher than this thresh -void update_arrange_params(ArrangeParams& params, const DynamicPrintConfig& print_cfg, const ArrangePolygons& selected) +void update_arrange_params(ArrangeParams& params, const DynamicPrintConfig* print_cfg, const ArrangePolygons& selected) { - double skirt_distance = get_real_skirt_dist(print_cfg); + double skirt_distance = get_real_skirt_dist(*print_cfg); // Note: skirt_distance is now defined between outermost brim and skirt, not the object and skirt. // So we can't do max but do adding instead. params.brim_skirt_distance = skirt_distance; - params.bed_shrink_x = params.brim_skirt_distance; - params.bed_shrink_y = params.brim_skirt_distance; + params.bed_shrink_x += params.brim_skirt_distance; + params.bed_shrink_y += params.brim_skirt_distance; // for sequential print, we need to inflate the bed because cleareance_radius is so large if (params.is_seq_print) { - float shift_dist = params.cleareance_radius / 2 - 5; - params.bed_shrink_x -= shift_dist; - params.bed_shrink_y -= shift_dist; + params.bed_shrink_x -= params.cleareance_radius / 2; + params.bed_shrink_y -= params.cleareance_radius / 2; } } @@ -126,11 +125,13 @@ void update_selected_items_inflation(ArrangePolygons& selected, const DynamicPri void update_unselected_items_inflation(ArrangePolygons& unselected, const DynamicPrintConfig* print_cfg, const ArrangeParams& params) { + float exclusion_gap = 1.f; if (params.is_seq_print) { - float shift_dist = params.cleareance_radius / 2 - 5; + // bed_shrink_x is typically (-params.cleareance_radius / 2+5) for seq_print + exclusion_gap = std::max(exclusion_gap, params.cleareance_radius / 2 + params.bed_shrink_x); // dont forget to move the excluded region for (auto& region : unselected) { - if (region.is_virt_object) region.poly.translate(-scaled(shift_dist), -scaled(shift_dist)); + if (region.is_virt_object) region.poly.translate(scaled(params.bed_shrink_x), scaled(params.bed_shrink_y)); } } // For occulusion regions, inflation should be larger to prevent genrating brim on them. @@ -138,10 +139,9 @@ void update_unselected_items_inflation(ArrangePolygons& unselected, const Dynami // 屏蔽区域只需要膨胀brim宽度,防止brim长过去;挤出标定区域不需要膨胀,brim可以长过去。 // 以前我们认为还需要膨胀clearance_radius/2,这其实是不需要的,因为这些区域并不会真的摆放物体, // 其他物体的膨胀轮廓是可以跟它们重叠的。 - double scaled_exclusion_gap = scale_(1); std::for_each(unselected.begin(), unselected.end(), [&](auto& ap) { ap.inflation = !ap.is_virt_object ? (params.min_obj_distance == 0 ? scaled(ap.brim_width) : params.min_obj_distance / 2) - : (ap.is_extrusion_cali_object ? 0 : scaled_exclusion_gap); }); + : (ap.is_extrusion_cali_object ? 0 : scale_(exclusion_gap)); }); } void update_selected_items_axis_align(ArrangePolygons& selected, const DynamicPrintConfig* print_cfg, const ArrangeParams& params) diff --git a/src/libslic3r/Arrange.hpp b/src/libslic3r/Arrange.hpp index 352ca846e6..63f180859a 100644 --- a/src/libslic3r/Arrange.hpp +++ b/src/libslic3r/Arrange.hpp @@ -3,6 +3,9 @@ #include "ExPolygon.hpp" #include "PrintConfig.hpp" + +#define BED_SHRINK_SEQ_PRINT 5 + namespace Slic3r { class BoundingBox; @@ -122,8 +125,8 @@ struct ArrangeParams { bool avoid_extrusion_cali_region = true; bool is_seq_print = false; bool align_to_y_axis = false; - float bed_shrink_x = 0; - float bed_shrink_y = 0; + float bed_shrink_x = 1; + float bed_shrink_y = 1; float brim_skirt_distance = 0; float clearance_height_to_rod = 0; float clearance_height_to_lid = 0; @@ -170,7 +173,7 @@ struct ArrangeParams { }; -void update_arrange_params(ArrangeParams& params, const DynamicPrintConfig& print_cfg, const ArrangePolygons& selected); +void update_arrange_params(ArrangeParams& params, const DynamicPrintConfig* print_cfg, const ArrangePolygons& selected); void update_selected_items_inflation(ArrangePolygons& selected, const DynamicPrintConfig* print_cfg, ArrangeParams& params); diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 78624782b2..4f8c99cbd9 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -533,7 +533,7 @@ StringObjectException Print::sequential_print_clearance_valid(const Print &print auto tmp = offset(convex_hull_no_offset, // Shrink the extruder_clearance_radius a tiny bit, so that if the object arrangement algorithm placed the objects // exactly by satisfying the extruder_clearance_radius, this test will not trigger collision. - float(scale_(0.5 * print.config().extruder_clearance_max_radius.value - 0.01)), + float(scale_(0.5 * print.config().extruder_clearance_max_radius.value - 0.1)), jtRound, scale_(0.1)); if (!tmp.empty()) { // tmp may be empty due to clipper's bug, see STUDIO-2452 convex_hull = tmp.front(); diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 776a4edb01..cf5336a1cd 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -481,8 +481,6 @@ public: bool avoid_extrusion_cali_region = true; //BBS: add more arrangeSettings bool is_seq_print = false; - float bed_shrink_x = 0.f; - float bed_shrink_y = 0.f; bool align_to_y_axis = false; }; diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.cpp b/src/slic3r/GUI/Jobs/ArrangeJob.cpp index 7a8c1bd982..1a909472b4 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.cpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.cpp @@ -491,23 +491,20 @@ void ArrangeJob::on_exception(const std::exception_ptr &eptr) void ArrangeJob::process() { - const GLCanvas3D::ArrangeSettings &settings = - static_cast(m_plater->canvas3D())->get_arrange_settings(); auto & partplate_list = m_plater->get_partplate_list(); - auto& print = wxGetApp().plater()->get_partplate_list().get_current_fff_print(); const Slic3r::DynamicPrintConfig& global_config = wxGetApp().preset_bundle->full_config(); if (params.avoid_extrusion_cali_region && global_config.opt_bool("scan_first_layer")) partplate_list.preprocess_nonprefered_areas(m_unselected, MAX_NUM_PLATES); - update_arrange_params(params, *m_plater, m_selected); + update_arrange_params(params, m_plater->config(), m_selected); update_selected_items_inflation(m_selected, m_plater->config(), params); update_unselected_items_inflation(m_unselected, m_plater->config(), params); update_selected_items_axis_align(m_selected, m_plater->config(), params); Points bedpts = get_shrink_bedpts(m_plater->config(),params); - double scaled_exclusion_gap = scale_(1); - partplate_list.preprocess_exclude_areas(params.excluded_regions, 1, scaled_exclusion_gap); + + partplate_list.preprocess_exclude_areas(params.excluded_regions, 1, scale_(1)); BOOST_LOG_TRIVIAL(debug) << "arrange bedpts:" << bedpts[0].transpose() << ", " << bedpts[1].transpose() << ", " << bedpts[2].transpose() << ", " << bedpts[3].transpose(); @@ -518,8 +515,8 @@ void ArrangeJob::process() }; { - BOOST_LOG_TRIVIAL(debug)<< "Arrange full params: "<< params.to_json(); - BOOST_LOG_TRIVIAL(debug) << "items selected before arrange: "; + BOOST_LOG_TRIVIAL(warning)<< "Arrange full params: "<< params.to_json(); + BOOST_LOG_TRIVIAL(info) << boost::format("arrange: items selected before arranging: %1%") % m_selected.size(); for (auto selected : m_selected) BOOST_LOG_TRIVIAL(debug) << selected.name << ", extruder: " << selected.extrude_ids.back() << ", bed: " << selected.bed_idx << ", bed_temp: " << selected.first_bed_temp << ", print_temp: " << selected.print_temp; @@ -533,7 +530,7 @@ void ArrangeJob::process() // sort by item id std::sort(m_selected.begin(), m_selected.end(), [](auto a, auto b) {return a.itemid < b.itemid; }); { - BOOST_LOG_TRIVIAL(debug) << "items selected after arrange: "; + BOOST_LOG_TRIVIAL(info) << boost::format("arrange: items unselected before arranging: %1%") % m_unselected.size(); for (auto selected : m_selected) BOOST_LOG_TRIVIAL(debug) << selected.name << ", extruder: " << selected.extrude_ids.back() << ", bed: " << selected.bed_idx << ", bed_temp: " << selected.first_bed_temp << ", print_temp: " << selected.print_temp @@ -707,23 +704,6 @@ double bed_stride_y(const Plater* plater) { return (1. + LOGICAL_BED_GAP) * beddepth; } - -arrangement::ArrangeParams get_arrange_params(Plater *p) -{ - const GLCanvas3D::ArrangeSettings &settings = - static_cast(p->canvas3D())->get_arrange_settings(); - - arrangement::ArrangeParams params; - params.allow_rotations = settings.enable_rotation; - params.min_obj_distance = scaled(settings.distance); - //BBS: add specific params - params.is_seq_print = settings.is_seq_print; - params.bed_shrink_x = settings.bed_shrink_x; - params.bed_shrink_y = settings.bed_shrink_y; - - return params; -} - // call before get selected and unselected arrangement::ArrangeParams init_arrange_params(Plater *p) { @@ -742,8 +722,6 @@ arrangement::ArrangeParams init_arrange_params(Plater *p) params.avoid_extrusion_cali_region = settings.avoid_extrusion_cali_region; params.is_seq_print = settings.is_seq_print; params.min_obj_distance = scaled(settings.distance); - params.bed_shrink_x = settings.bed_shrink_x; - params.bed_shrink_y = settings.bed_shrink_y; params.align_to_y_axis = settings.align_to_y_axis; int state = p->get_prepare_state(); @@ -753,28 +731,12 @@ arrangement::ArrangeParams init_arrange_params(Plater *p) params.is_seq_print = plate->get_real_print_seq() == PrintSequence::ByObject; } - if (params.is_seq_print) + if (params.is_seq_print) { params.min_obj_distance = std::max(params.min_obj_distance, scaled(params.cleareance_radius + 0.001)); // +0.001mm to avoid clearance check fail due to rounding error + params.bed_shrink_x = BED_SHRINK_SEQ_PRINT; + params.bed_shrink_y = BED_SHRINK_SEQ_PRINT; + } return params; } -//after get selected call this to update bed_shrink -void update_arrange_params(arrangement::ArrangeParams ¶ms, const Plater &p, const arrangement::ArrangePolygons &selected) -{ - const GLCanvas3D::ArrangeSettings &settings = static_cast(p.canvas3D())->get_arrange_settings(); - auto & print = wxGetApp().plater()->get_partplate_list().get_current_fff_print(); - double skirt_distance = print.has_skirt() ? print.config().skirt_distance.value : 0; - // Note: skirt_distance is now defined between outermost brim and skirt, not the object and skirt. - // So we can't do max but do adding instead. - params.brim_skirt_distance = skirt_distance; - params.bed_shrink_x = settings.bed_shrink_x + params.brim_skirt_distance; - params.bed_shrink_y = settings.bed_shrink_y + params.brim_skirt_distance; - // for sequential print, we need to inflate the bed because cleareance_radius is so large - if (params.is_seq_print) { - float shift_dist = params.cleareance_radius / 2 - 5; - params.bed_shrink_x -= shift_dist; - params.bed_shrink_y -= shift_dist; - } -} - }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.hpp b/src/slic3r/GUI/Jobs/ArrangeJob.hpp index d51822296c..717fd38b26 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.hpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.hpp @@ -75,13 +75,8 @@ static const constexpr double LOGICAL_BED_GAP = 1. / 5.; double bed_stride_x(const Plater* plater); double bed_stride_y(const Plater* plater); - -arrangement::ArrangeParams get_arrange_params(Plater *p); - arrangement::ArrangeParams init_arrange_params(Plater *p); -void update_arrange_params(arrangement::ArrangeParams ¶ms, const Plater &p, const arrangement::ArrangePolygons &selected); - }} // namespace Slic3r::GUI #endif // ARRANGEJOB_HPP diff --git a/src/slic3r/GUI/Jobs/FillBedJob.cpp b/src/slic3r/GUI/Jobs/FillBedJob.cpp index 6e53d61838..868a094380 100644 --- a/src/slic3r/GUI/Jobs/FillBedJob.cpp +++ b/src/slic3r/GUI/Jobs/FillBedJob.cpp @@ -202,10 +202,7 @@ void FillBedJob::process() { if (m_object_idx == -1 || m_selected.empty()) return; - const GLCanvas3D::ArrangeSettings &settings = - static_cast(m_plater->canvas3D())->get_arrange_settings(); - - update_arrange_params(params, *m_plater, m_selected); + update_arrange_params(params, m_plater->config(), m_selected); m_bedpts = get_shrink_bedpts(m_plater->config(), params); auto &partplate_list = m_plater->get_partplate_list(); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 25b8d830af..f1bb7c5f78 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -4249,7 +4249,7 @@ void Plater::priv::mirror(Axis axis) void Plater::find_new_position(const ModelInstancePtrs &instances) { arrangement::ArrangePolygons movable, fixed; - arrangement::ArrangeParams arr_params = get_arrange_params(this); + arrangement::ArrangeParams arr_params = init_arrange_params(this); for (const ModelObject *mo : p->model.objects) for (ModelInstance *inst : mo->instances) { From 165bb96e3544c06b33191c3e0c2dd021aeaf6df9 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 7 Oct 2023 22:15:31 +0800 Subject: [PATCH 54/92] ENH: CLI: add time estimation for non-cache slicing JIRA: XXXX Change-Id: Ifed2d70e8d6355087694df96e413cdbcf792d6d9 --- src/BambuStudio.cpp | 14 +++++++++++--- src/libslic3r/Print.cpp | 15 ++++++++++++++- src/libslic3r/Print.hpp | 2 +- src/libslic3r/PrintBase.hpp | 2 +- src/libslic3r/SLAPrint.cpp | 2 +- src/libslic3r/SLAPrint.hpp | 2 +- 6 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/BambuStudio.cpp b/src/BambuStudio.cpp index aadcf80c7b..ea0c7f204d 100644 --- a/src/BambuStudio.cpp +++ b/src/BambuStudio.cpp @@ -145,6 +145,7 @@ std::map cli_errors = { typedef struct _sliced_plate_info{ int plate_id{0}; size_t sliced_time {0}; + size_t sliced_time_with_cache {0}; size_t triangle_count{0}; std::string warning_message; }sliced_plate_info_t; @@ -419,6 +420,7 @@ void record_exit_reson(std::string outputdir, int code, int plate_id, std::strin json plate_json; plate_json["id"] = sliced_info.sliced_plates[index].plate_id; plate_json["sliced_time"] = sliced_info.sliced_plates[index].sliced_time; + plate_json["sliced_time_with_cache"] = sliced_info.sliced_plates[index].sliced_time_with_cache; plate_json["triangle_count"] = sliced_info.sliced_plates[index].triangle_count; plate_json["warning_message"] = sliced_info.sliced_plates[index].warning_message; j["sliced_plates"].push_back(plate_json); @@ -3101,7 +3103,7 @@ int CLI::run(int argc, char **argv) model.curr_plate_index = index; BOOST_LOG_TRIVIAL(info) << boost::format("Plate %1%: pre_check %2%, start")%(index+1)%pre_check; - long long start_time = 0, end_time = 0; + long long start_time = 0, end_time = 0, temp_time = 0, time_using_cache = 0; start_time = (long long)Slic3r::Utils::get_current_time_utc(); //get the current partplate Slic3r::GUI::PartPlate* part_plate = partplate_list.get_plate(index); @@ -3322,12 +3324,13 @@ int CLI::run(int argc, char **argv) cli_status_callback(slicing_status); } #endif - print->process(true); + print->process(nullptr, true); BOOST_LOG_TRIVIAL(info) << "plate "<< index+1<< ": finished print::process."; } } else { - print->process(); + print->process(&time_using_cache); + BOOST_LOG_TRIVIAL(info) << "print::process: first time_using_cache is " << time_using_cache << " secs."; } if (printer_technology == ptFFF) { std::string conflict_result = print_fff->get_conflict_string(); @@ -3379,7 +3382,11 @@ int CLI::run(int argc, char **argv) part_plate->set_tmp_gcode_path(outfile); } BOOST_LOG_TRIVIAL(info) << "process finished, will export gcode temporily to " << outfile << std::endl; + temp_time = (long long)Slic3r::Utils::get_current_time_utc(); outfile = print_fff->export_gcode(outfile, gcode_result, nullptr); + time_using_cache = time_using_cache + ((long long)Slic3r::Utils::get_current_time_utc() - temp_time); + BOOST_LOG_TRIVIAL(info) << "export_gcode finished: time_using_cache update to " << time_using_cache << " secs."; + //outfile_final = (dynamic_cast(print))->print_statistics().finalize_output_path(outfile); //m_fff_print->export_gcode(m_temp_output_path, m_gcode_result, [this](const ThumbnailsParams& params) { return this->render_thumbnails(params); }); }/* else { @@ -3422,6 +3429,7 @@ int CLI::run(int argc, char **argv) } end_time = (long long)Slic3r::Utils::get_current_time_utc(); sliced_plate_info.sliced_time = end_time - start_time; + sliced_plate_info.sliced_time_with_cache = time_using_cache; if (max_slicing_time_per_plate != 0) { long long time_cost = end_time - start_time; diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 4f8c99cbd9..74582c1a7a 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -10,6 +10,7 @@ #include "ShortestPath.hpp" #include "SupportMaterial.hpp" #include "Thread.hpp" +#include "Time.hpp" #include "GCode.hpp" #include "GCode/WipeTower.hpp" #include "Utils.hpp" @@ -1479,8 +1480,12 @@ std::map getObjectExtruderMap(const Print& print) { } // Slicing process, running at a background thread. -void Print::process(bool use_cache) +void Print::process(long long *time_cost_with_cache, bool use_cache) { + long long start_time = 0, end_time = 0; + if (time_cost_with_cache) + *time_cost_with_cache = 0; + name_tbb_thread_pool_threads_set_locale(); //compute the PrintObject with the same geometries @@ -1680,6 +1685,9 @@ void Print::process(bool use_cache) if (this->set_started(psSkirtBrim)) { this->set_status(70, L("Generating skirt & brim")); + if (time_cost_with_cache) + start_time = (long long)Slic3r::Utils::get_current_time_utc(); + m_skirt.clear(); m_skirt_convex_hull.clear(); m_first_layer_convex_hull.points.clear(); @@ -1764,6 +1772,11 @@ void Print::process(bool use_cache) this->finalize_first_layer_convex_hull(); this->set_done(psSkirtBrim); + + if (time_cost_with_cache) { + end_time = (long long)Slic3r::Utils::get_current_time_utc(); + *time_cost_with_cache = *time_cost_with_cache + end_time - start_time; + } } //BBS for (PrintObject *obj : m_objects) { diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index 5a98909bea..fa022743e3 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -698,7 +698,7 @@ public: ApplyStatus apply(const Model &model, DynamicPrintConfig config) override; - void process(bool use_cache = false) override; + void process(long long *time_cost_with_cache = nullptr, bool use_cache = false) override; // Exports G-code into a file name based on the path_template, returns the file path of the generated G-code file. // If preview_data is not null, the preview_data is filled in for the G-code visualization (not used by the command line Slic3r). std::string export_gcode(const std::string& path_template, GCodeProcessorResult* result, ThumbnailsGeneratorCallback thumbnail_cb = nullptr); diff --git a/src/libslic3r/PrintBase.hpp b/src/libslic3r/PrintBase.hpp index 79e231a175..3f37205fb9 100644 --- a/src/libslic3r/PrintBase.hpp +++ b/src/libslic3r/PrintBase.hpp @@ -422,7 +422,7 @@ public: // After calling the apply() function, call set_task() to limit the task to be processed by process(). virtual void set_task(const TaskParams ¶ms) {} // Perform the calculation. This is the only method that is to be called at a worker thread. - virtual void process(bool use_cache = false) = 0; + virtual void process(long long *time_cost_with_cache = nullptr, bool use_cache = false) = 0; virtual int export_cached_data(const std::string& dir_path, bool with_space=false) { return 0;} virtual int load_cached_data(const std::string& directory) { return 0;} // Clean up after process() finished, either with success, error or if canceled. diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp index f5efaa4454..569d22501e 100644 --- a/src/libslic3r/SLAPrint.cpp +++ b/src/libslic3r/SLAPrint.cpp @@ -686,7 +686,7 @@ bool SLAPrint::invalidate_step(SLAPrintStep step) return invalidated; } -void SLAPrint::process(bool use_cache) +void SLAPrint::process(long long *time_cost_with_cache, bool use_cache) { if (m_objects.empty()) return; diff --git a/src/libslic3r/SLAPrint.hpp b/src/libslic3r/SLAPrint.hpp index 5c838b3673..3fa6757d59 100644 --- a/src/libslic3r/SLAPrint.hpp +++ b/src/libslic3r/SLAPrint.hpp @@ -451,7 +451,7 @@ public: std::vector print_object_ids() const override; ApplyStatus apply(const Model &model, DynamicPrintConfig config) override; void set_task(const TaskParams ¶ms) override; - void process(bool use_cache = false) override; + void process(long long *time_cost_with_cache = nullptr, bool use_cache = false) override; void finalize() override; // Returns true if an object step is done on all objects and there's at least one object. bool is_step_done(SLAPrintObjectStep step) const; From b27dc119d777931a4bfa864c68da5a942cb19ac2 Mon Sep 17 00:00:00 2001 From: tao wang Date: Thu, 24 Aug 2023 17:57:19 +0800 Subject: [PATCH 55/92] FIX:fixed incomplete operation buttons jira:[STUDIO-4119] Change-Id: I73dd64fae9a42bfe248e6535d9cedb1343a2cc08 (cherry picked from commit f3176c419506a337ebb2801c66dffa4a4c8ae788) --- src/slic3r/GUI/ReleaseNote.cpp | 32 +++++++++++++++++++------------- src/slic3r/GUI/ReleaseNote.hpp | 11 +++++++---- src/slic3r/GUI/StatusPanel.cpp | 15 +++++++++------ src/slic3r/GUI/StatusPanel.hpp | 2 +- 4 files changed, 36 insertions(+), 24 deletions(-) diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp index 1597c3c85e..4fe82d332b 100644 --- a/src/slic3r/GUI/ReleaseNote.cpp +++ b/src/slic3r/GUI/ReleaseNote.cpp @@ -26,7 +26,7 @@ namespace Slic3r { namespace GUI { wxDEFINE_EVENT(EVT_SECONDARY_CHECK_CONFIRM, wxCommandEvent); wxDEFINE_EVENT(EVT_SECONDARY_CHECK_CANCEL, wxCommandEvent); -wxDEFINE_EVENT(EVT_SECONDARY_CHECK_FUNC, wxCommandEvent); +wxDEFINE_EVENT(EVT_SECONDARY_CHECK_DONE, wxCommandEvent); wxDEFINE_EVENT(EVT_CHECKBOX_CHANGE, wxCommandEvent); wxDEFINE_EVENT(EVT_ENTER_IP_ADDRESS, wxCommandEvent); wxDEFINE_EVENT(EVT_CLOSE_IPADDRESS_DLG, wxCommandEvent); @@ -531,10 +531,10 @@ SecondaryCheckDialog::SecondaryCheckDialog(wxWindow* parent, wxWindowID id, cons auto bottom_sizer = new wxBoxSizer(wxVERTICAL); auto sizer_button = new wxBoxSizer(wxHORIZONTAL); - StateColor btn_bg_green(std::pair(wxColour(27, 136, 68), StateColor::Pressed), std::pair(wxColour(61, 203, 115), StateColor::Hovered), + btn_bg_green = StateColor(std::pair(wxColour(27, 136, 68), StateColor::Pressed), std::pair(wxColour(61, 203, 115), StateColor::Hovered), std::pair(AMS_CONTROL_BRAND_COLOUR, StateColor::Normal)); - StateColor btn_bg_white(std::pair(wxColour(206, 206, 206), StateColor::Pressed), std::pair(wxColour(238, 238, 238), StateColor::Hovered), + btn_bg_white = StateColor(std::pair(wxColour(206, 206, 206), StateColor::Pressed), std::pair(wxColour(238, 238, 238), StateColor::Hovered), std::pair(*wxWHITE, StateColor::Normal)); @@ -609,7 +609,7 @@ SecondaryCheckDialog::SecondaryCheckDialog(wxWindow* parent, wxWindowID id, cons m_button_fn->SetCornerRadius(FromDIP(12)); m_button_fn->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent& e) { - post_event(wxCommandEvent(EVT_SECONDARY_CHECK_FUNC)); + post_event(wxCommandEvent(EVT_SECONDARY_CHECK_DONE)); e.Skip(); }); @@ -617,14 +617,20 @@ SecondaryCheckDialog::SecondaryCheckDialog(wxWindow* parent, wxWindowID id, cons m_button_cancel->Show(); m_button_fn->Hide(); m_button_retry->Hide(); - } else if (btn_style == CONFIRM_AND_FUNC) { + } else if (btn_style == CONFIRM_AND_DONE) { m_button_cancel->Hide(); m_button_fn->Show(); m_button_retry->Hide(); } else if (btn_style == CONFIRM_AND_RETRY) { m_button_retry->Show(); m_button_cancel->Hide(); - } else { + m_button_fn->Hide(); + } else if (style == DONE_AND_RETRY) { + m_button_retry->Show(); + m_button_fn->Show(); + m_button_cancel->Hide(); + } + else { m_button_retry->Hide(); m_button_cancel->Hide(); m_button_fn->Hide(); @@ -734,7 +740,7 @@ void SecondaryCheckDialog::update_title_style(wxString title, SecondaryCheckDial m_button_fn->Hide(); m_button_retry->Hide(); } - else if (style == CONFIRM_AND_FUNC) { + else if (style == CONFIRM_AND_DONE) { m_button_cancel->Hide(); m_button_fn->Show(); m_button_retry->Hide(); @@ -742,6 +748,12 @@ void SecondaryCheckDialog::update_title_style(wxString title, SecondaryCheckDial else if (style == CONFIRM_AND_RETRY) { m_button_retry->Show(); m_button_cancel->Hide(); + m_button_fn->Hide(); + } + else if (style == DONE_AND_RETRY) { + m_button_retry->Show(); + m_button_fn->Show(); + m_button_cancel->Hide(); } else { m_button_retry->Hide(); @@ -753,12 +765,6 @@ void SecondaryCheckDialog::update_title_style(wxString title, SecondaryCheckDial Layout(); } -void SecondaryCheckDialog::update_func_btn(wxString func_btn_text) -{ - m_button_fn->SetLabel(func_btn_text); - rescale(); -} - void SecondaryCheckDialog::update_btn_label(wxString ok_btn_text, wxString cancel_btn_text) { m_button_ok->SetLabel(ok_btn_text); diff --git a/src/slic3r/GUI/ReleaseNote.hpp b/src/slic3r/GUI/ReleaseNote.hpp index ec4dda5089..f6c9e27bd1 100644 --- a/src/slic3r/GUI/ReleaseNote.hpp +++ b/src/slic3r/GUI/ReleaseNote.hpp @@ -40,7 +40,7 @@ namespace Slic3r { namespace GUI { wxDECLARE_EVENT(EVT_SECONDARY_CHECK_CONFIRM, wxCommandEvent); wxDECLARE_EVENT(EVT_SECONDARY_CHECK_CANCEL, wxCommandEvent); -wxDECLARE_EVENT(EVT_SECONDARY_CHECK_FUNC, wxCommandEvent); +wxDECLARE_EVENT(EVT_SECONDARY_CHECK_DONE, wxCommandEvent); wxDECLARE_EVENT(EVT_SECONDARY_CHECK_RETRY, wxCommandEvent); class ReleaseNoteDialog : public DPIDialog @@ -107,9 +107,10 @@ public: enum ButtonStyle { ONLY_CONFIRM = 0, CONFIRM_AND_CANCEL = 1, - CONFIRM_AND_FUNC = 2, + CONFIRM_AND_DONE = 2, CONFIRM_AND_RETRY = 3, - MAX_STYLE_NUM = 4 + DONE_AND_RETRY = 4, + MAX_STYLE_NUM = 5 }; SecondaryCheckDialog( wxWindow* parent, @@ -126,13 +127,15 @@ public: void on_hide(); void update_btn_label(wxString ok_btn_text, wxString cancel_btn_text); void update_title_style(wxString title, SecondaryCheckDialog::ButtonStyle style, wxWindow* parent = nullptr); - void update_func_btn(wxString func_btn_text); void post_event(wxCommandEvent&& event); void rescale(); ~SecondaryCheckDialog(); void on_dpi_changed(const wxRect& suggested_rect); void msw_rescale(); + + StateColor btn_bg_green; + StateColor btn_bg_white; Label* m_staticText_release_note {nullptr}; wxBoxSizer* m_sizer_main; wxScrolledWindow *m_vebview_release_note {nullptr}; diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 02b4209fd0..c2fd9d62ba 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -1654,7 +1654,7 @@ StatusPanel::StatusPanel(wxWindow *parent, wxWindowID id, const wxPoint &pos, co Bind(EVT_AMS_GUIDE_WIKI, &StatusPanel::on_ams_guide, this); Bind(EVT_AMS_RETRY, &StatusPanel::on_ams_retry, this); Bind(EVT_FAN_CHANGED, &StatusPanel::on_fan_changed, this); - Bind(EVT_SECONDARY_CHECK_FUNC, &StatusPanel::on_print_error_func, this); + Bind(EVT_SECONDARY_CHECK_DONE, &StatusPanel::on_print_error_done, this); m_switch_speed->Connect(wxEVT_LEFT_DOWN, wxCommandEventHandler(StatusPanel::on_switch_speed), NULL, this); m_calibration_btn->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(StatusPanel::on_start_calibration), NULL, this); @@ -2024,9 +2024,12 @@ void StatusPanel::show_error_message(MachineObject* obj, wxString msg, std::stri if (m_print_error_dlg == nullptr) { m_print_error_dlg = new SecondaryCheckDialog(this->GetParent(), wxID_ANY, _L("Warning"), SecondaryCheckDialog::ButtonStyle::ONLY_CONFIRM); } - if (it_done != message_containing_done.end()) { - m_print_error_dlg->update_func_btn(_L("Done")); - m_print_error_dlg->update_title_style(_L("Warning"), SecondaryCheckDialog::ButtonStyle::CONFIRM_AND_FUNC, this); + + if (it_done != message_containing_done.end() && it_retry != message_containing_retry.end()) { + m_print_error_dlg->update_title_style(_L("Warning"), SecondaryCheckDialog::ButtonStyle::DONE_AND_RETRY, this); + } + else if (it_done != message_containing_done.end()) { + m_print_error_dlg->update_title_style(_L("Warning"), SecondaryCheckDialog::ButtonStyle::CONFIRM_AND_DONE, this); } else if (it_retry != message_containing_retry.end()) { m_print_error_dlg->update_title_style(_L("Warning"), SecondaryCheckDialog::ButtonStyle::CONFIRM_AND_RETRY, this); @@ -3513,9 +3516,9 @@ void StatusPanel::on_ams_retry(wxCommandEvent& event) } } -void StatusPanel::on_print_error_func(wxCommandEvent& event) +void StatusPanel::on_print_error_done(wxCommandEvent& event) { - BOOST_LOG_TRIVIAL(info) << "on_print_error_func"; + BOOST_LOG_TRIVIAL(info) << "on_print_error_done"; if (obj) { obj->command_ams_control("done"); if (m_print_error_dlg) { diff --git a/src/slic3r/GUI/StatusPanel.hpp b/src/slic3r/GUI/StatusPanel.hpp index 8d1f67d5dc..bda4f01da8 100644 --- a/src/slic3r/GUI/StatusPanel.hpp +++ b/src/slic3r/GUI/StatusPanel.hpp @@ -537,7 +537,7 @@ protected: void on_ams_selected(wxCommandEvent &event); void on_ams_guide(wxCommandEvent &event); void on_ams_retry(wxCommandEvent &event); - void on_print_error_func(wxCommandEvent& event); + void on_print_error_done(wxCommandEvent& event); void on_fan_changed(wxCommandEvent& event); void on_cham_temp_kill_focus(wxFocusEvent& event); From 2164da1cc081ff108478e6aecc0eb8466bd46d50 Mon Sep 17 00:00:00 2001 From: "zorro.zhang" Date: Sun, 8 Oct 2023 11:45:52 +0800 Subject: [PATCH 56/92] ENH: Reduce ImageSize of HotModel from Mekarworld Change-Id: Icc370b57591345b372314587f71d04323d71c746 --- resources/web/homepage/js/home.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/resources/web/homepage/js/home.js b/resources/web/homepage/js/home.js index 23f3a2eed5..6a9f3f6ad3 100644 --- a/resources/web/homepage/js/home.js +++ b/resources/web/homepage/js/home.js @@ -1,5 +1,6 @@ /*var TestData={"sequence_id":"0","command":"studio_send_recentfile","data":[{"path":"D:\\work\\Models\\Toy\\3d-puzzle-cube-model_files\\3d-puzzle-cube.3mf","time":"2022\/3\/24 20:33:10"},{"path":"D:\\work\\Models\\Art\\Carved Stone Vase - remeshed+drainage\\Carved Stone Vase.3mf","time":"2022\/3\/24 17:11:51"},{"path":"D:\\work\\Models\\Art\\Kity & Cat\\Cat.3mf","time":"2022\/3\/24 17:07:55"},{"path":"D:\\work\\Models\\Toy\\鐩村墤.3mf","time":"2022\/3\/24 17:06:02"},{"path":"D:\\work\\Models\\Toy\\minimalistic-dual-tone-whistle-model_files\\minimalistic-dual-tone-whistle.3mf","time":"2022\/3\/22 21:12:22"},{"path":"D:\\work\\Models\\Toy\\spiral-city-model_files\\spiral-city.3mf","time":"2022\/3\/22 18:58:37"},{"path":"D:\\work\\Models\\Toy\\impossible-dovetail-puzzle-box-model_files\\impossible-dovetail-puzzle-box.3mf","time":"2022\/3\/22 20:08:40"}]};*/ +var m_HotModelList=null; function OnInit() { @@ -22,7 +23,7 @@ var RightBtnFilePath=''; var MousePosX=0; var MousePosY=0; var sImages = {}; - + function Set_RecentFile_MouseRightBtn_Event() { $(".FileItem").mousedown( @@ -123,7 +124,17 @@ function HandleStudio( pVal ) else if( strCmd=="modelmall_model_advise_get") { //alert('hot'); - ShowStaffPick( pVal['hits'] ); + if( m_HotModelList!=null ) + { + let SS1=JSON.stringify(pVal['hits']); + let SS2=JSON.stringify(m_HotModelList); + + if( SS1==SS2 ) + return; + } + + m_HotModelList=pVal['hits']; + ShowStaffPick( m_HotModelList ); } } @@ -477,10 +488,10 @@ function ShowStaffPick( ModelList ) let ModelID=OnePickModel['design']['id']; let ModelName=OnePickModel['design']['title']; - let ModelCover=OnePickModel['design']['cover']; + let ModelCover=OnePickModel['design']['cover']+'?image_process=resize,w_200/format,webp'; let DesignerName=OnePickModel['design']['designCreator']['name']; - let DesignerAvatar=OnePickModel['design']['designCreator']['avatar']; + let DesignerAvatar=OnePickModel['design']['designCreator']['avatar']+'?image_process=resize,w_32/format,webp'; strPickHtml+='

'+ '
'+DesignerName+'
'+ From 1c705d85e968bc2c98c7fd1579d5b4b96e8ff62c Mon Sep 17 00:00:00 2001 From: tao wang Date: Wed, 2 Aug 2023 18:09:36 +0800 Subject: [PATCH 57/92] ENH:fixed display the wrong tray type in AMS 1. no longer using track_type 2. type using tray_info_idx query Change-Id: I3ad08dc92e90c86041232d57b80331c563fe24c5 (cherry picked from commit aaebb55ac55c0d11dbc72ff17fce9b96854aec5e) --- src/slic3r/GUI/DeviceManager.cpp | 37 ++++++++++++++++++++++++++++---- src/slic3r/GUI/DeviceManager.hpp | 1 + 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index f2cea8cf7f..53775d099b 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -2851,6 +2851,31 @@ int MachineObject::local_publish_json(std::string json_str, int qos) return result; } +std::string MachineObject::setting_id_to_type(std::string setting_id, std::string tray_type) +{ + std::string type; + + PresetBundle* preset_bundle = GUI::wxGetApp().preset_bundle; + if (preset_bundle) { + for (auto it = preset_bundle->filaments.begin(); it != preset_bundle->filaments.end(); it++) { + + if (it->filament_id.compare(setting_id) == 0) { + std::string display_filament_type; + it->config.get_filament_type(display_filament_type); + type = display_filament_type; + break; + } + } + } + + if (tray_type != type || type.empty()) { + if (type.empty()) {type = tray_type;} + BOOST_LOG_TRIVIAL(info) << "The values of tray_info_idx and tray_type do not match tray_info_idx " << setting_id << " tray_type " << tray_type; + } + + return type; +} + int MachineObject::parse_json(std::string payload) { CNumericLocalesSetter locales_setter; @@ -3711,7 +3736,8 @@ int MachineObject::parse_json(std::string payload) curr_tray->tag_uid = "0"; if (tray_it->contains("tray_info_idx") && tray_it->contains("tray_type")) { curr_tray->setting_id = (*tray_it)["tray_info_idx"].get(); - std::string type = (*tray_it)["tray_type"].get(); + //std::string type = (*tray_it)["tray_type"].get(); + std::string type = setting_id_to_type(curr_tray->setting_id, (*tray_it)["tray_type"].get()); if (curr_tray->setting_id == "GFS00") { curr_tray->type = "PLA-S"; } @@ -3872,7 +3898,8 @@ int MachineObject::parse_json(std::string payload) vt_tray.tag_uid = "0"; if (jj["vt_tray"].contains("tray_info_idx") && jj["vt_tray"].contains("tray_type")) { vt_tray.setting_id = jj["vt_tray"]["tray_info_idx"].get(); - std::string type = jj["vt_tray"]["tray_type"].get(); + //std::string type = jj["vt_tray"]["tray_type"].get(); + std::string type = setting_id_to_type(vt_tray.setting_id, jj["vt_tray"]["tray_type"].get()); if (vt_tray.setting_id == "GFS00") { vt_tray.type = "PLA-S"; } @@ -4011,9 +4038,10 @@ int MachineObject::parse_json(std::string payload) BOOST_LOG_TRIVIAL(trace) << "ams_filament_setting, parse tray info"; vt_tray.nozzle_temp_max = std::to_string(jj["nozzle_temp_max"].get()); vt_tray.nozzle_temp_min = std::to_string(jj["nozzle_temp_min"].get()); - vt_tray.type = jj["tray_type"].get(); vt_tray.color = jj["tray_color"].get(); vt_tray.setting_id = jj["tray_info_idx"].get(); + //vt_tray.type = jj["tray_type"].get(); + vt_tray.type = setting_id_to_type(vt_tray.setting_id, jj["tray_info_idx"].get()); // delay update vt_tray.set_hold_count(); } else { @@ -4025,7 +4053,7 @@ int MachineObject::parse_json(std::string payload) BOOST_LOG_TRIVIAL(trace) << "ams_filament_setting, parse tray info"; tray_it->second->nozzle_temp_max = std::to_string(jj["nozzle_temp_max"].get()); tray_it->second->nozzle_temp_min = std::to_string(jj["nozzle_temp_min"].get()); - tray_it->second->type = jj["tray_type"].get(); + //tray_it->second->type = jj["tray_type"].get(); tray_it->second->color = jj["tray_color"].get(); /*tray_it->second->cols.clear(); @@ -4038,6 +4066,7 @@ int MachineObject::parse_json(std::string payload) }*/ tray_it->second->setting_id = jj["tray_info_idx"].get(); + tray_it->second->type = setting_id_to_type(tray_it->second->setting_id, jj["tray_type"].get()); // delay update tray_it->second->set_hold_count(); } else { diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index a5d5159c05..aece0eb044 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -923,6 +923,7 @@ public: int parse_json(std::string payload); int publish_gcode(std::string gcode_str); + std::string setting_id_to_type(std::string setting_id, std::string tray_type); BBLSubTask* get_subtask(); BBLModelTask* get_modeltask(); void set_modeltask(BBLModelTask* task); From 01968ce29f1b8ff9b9a374861e2961f4726a9a2e Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Sun, 8 Oct 2023 10:23:34 +0800 Subject: [PATCH 58/92] FIX: [4670] Cloud disabled rating interface, displaying error prompt Jira: STUDIO-4670 Change-Id: Ie571fd042010d5972aaef76063a52b67ef7ccb6a --- src/slic3r/GUI/DeviceManager.cpp | 1 + src/slic3r/GUI/DeviceManager.hpp | 1 + src/slic3r/GUI/StatusPanel.cpp | 11 +++++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 53775d099b..99f2fc0c60 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -4585,6 +4585,7 @@ void MachineObject::update_model_task() request_model_result++; BOOST_LOG_TRIVIAL(info) << "request times: " << request_model_result << " http code: " << http_code; rating_info = new RatingInfo(); + rating_info->http_code = http_code; if (0 == res && 200 == http_code) { try { json rating_json = json::parse(rating_result); diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index aece0eb044..56c9aa89a7 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -181,6 +181,7 @@ enum ManualPaCaliMethod { struct RatingInfo { bool request_successful; + int http_code; int rating_id; int start_count; bool success_printed; diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index c2fd9d62ba..b7cab4edcc 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -2767,6 +2767,7 @@ void StatusPanel::update_subtask(MachineObject *obj) } else if (obj->is_in_printing() || obj->print_status == "FINISH") { if (obj->is_in_prepare() || obj->print_status == "SLICING") { m_project_task_panel->market_scoring_hide(); + m_project_task_panel->get_request_failed_panel()->Hide(); m_project_task_panel->enable_abort_button(false); m_project_task_panel->enable_pause_resume_button(false, "pause_disable"); wxString prepare_text; @@ -2836,8 +2837,13 @@ void StatusPanel::update_subtask(MachineObject *obj) m_project_task_panel->market_scoring_show(); } else if (obj && obj->rating_info && !obj->rating_info->request_successful) { BOOST_LOG_TRIVIAL(info) << "model mall result request failed"; - m_project_task_panel->get_market_retry_buttom()->Enable(!obj->get_model_mall_result_need_retry); - m_project_task_panel->get_request_failed_panel()->Show(); + if (403 != obj->rating_info->http_code) { + BOOST_LOG_TRIVIAL(info) << "Request need retry"; + m_project_task_panel->get_market_retry_buttom()->Enable(!obj->get_model_mall_result_need_retry); + m_project_task_panel->get_request_failed_panel()->Show(); + } else { + BOOST_LOG_TRIVIAL(info) << "Request rejected"; + } } } else { m_project_task_panel->market_scoring_hide(); @@ -2948,6 +2954,7 @@ void StatusPanel::reset_printing_values() m_project_task_panel->market_scoring_hide(); + m_project_task_panel->get_request_failed_panel()->Hide(); update_basic_print_data(false); m_project_task_panel->update_left_time(NA_STR); m_project_task_panel->update_layers_num(true, wxString::Format(_L("Layer: %s"), NA_STR)); From df0f3ea72c4d91502571e3479473107b4b72797c Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sun, 8 Oct 2023 10:50:46 +0800 Subject: [PATCH 59/92] ENH: CLI: return error when the printable size exceeds the default one also refine some logs JIRA: XXXX Change-Id: Ibec090e98b8d93b1396e691ecff97ced13b1d8c8 --- src/BambuStudio.cpp | 23 +++++++++++++++++++++-- src/libslic3r/TreeSupport.cpp | 2 +- src/slic3r/GUI/GUI_App.cpp | 1 + 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/BambuStudio.cpp b/src/BambuStudio.cpp index ea0c7f204d..c065378067 100644 --- a/src/BambuStudio.cpp +++ b/src/BambuStudio.cpp @@ -515,7 +515,6 @@ int CLI::run(int argc, char **argv) boost::nowide::cerr << text.c_str() << std::endl; return CLI_ENVIRONMENT_ERROR; } - BOOST_LOG_TRIVIAL(warning) << "Current BambuStudio Version "<< SLIC3R_VERSION << std::endl; /*BOOST_LOG_TRIVIAL(info) << "begin to setup params, argc=" << argc << std::endl; for (int index=0; index < argc; index++) @@ -643,7 +642,7 @@ int CLI::run(int argc, char **argv) } global_begin_time = (long long)Slic3r::Utils::get_current_time_utc(); - BOOST_LOG_TRIVIAL(info) << boost::format("cli mode, begin at %1%")%global_begin_time; + BOOST_LOG_TRIVIAL(warning) << boost::format("cli mode, Current BambuStudio Version %1%")%SLIC3R_VERSION; //BBS: add plate data related logic PlateDataPtrs plate_data_src; @@ -1237,6 +1236,26 @@ int CLI::run(int argc, char **argv) record_exit_reson(outfile_dir, ret, 0, cli_errors[ret], sliced_info); flush_and_exit(ret); } + int orig_printable_width, orig_printable_depth, orig_printable_height; + Pointfs orig_printable_area; + orig_printable_area = config.option("printable_area", true)->values; + if (orig_printable_area.size() >= 4) { + orig_printable_width = (int)(orig_printable_area[2].x() - orig_printable_area[0].x()); + orig_printable_depth = (int)(orig_printable_area[2].y() - orig_printable_area[0].y()); + } + orig_printable_height = (int)(config.opt_float("printable_height")); + BOOST_LOG_TRIVIAL(info) << __FUNCTION__<< boost::format(":%1%, check printable size: old_printable_width=%2%, orig_printable_width=%3%, old_printable_depth=%4%, orig_printable_depth=%5%, old_printable_height=%6%, orig_printable_height=%7%") + %__LINE__ %old_printable_width %orig_printable_width %old_printable_depth %orig_printable_depth %old_printable_height %orig_printable_height; + if ((orig_printable_width > 0) && (orig_printable_depth > 0) && (orig_printable_height > 0)) + { + if ((old_printable_width > orig_printable_width) || (old_printable_depth > orig_printable_depth) || (old_printable_height > orig_printable_height)) + { + std::string error_str = (boost::format("Invalid printable size {%1%, %2%, %3%} exceeds the default size.")%old_printable_width %old_printable_depth %old_printable_height).str(); + BOOST_LOG_TRIVIAL(error) << error_str; + record_exit_reson(outfile_dir, CLI_INVALID_VALUES_IN_3MF, 0, error_str, sliced_info); + flush_and_exit(CLI_INVALID_VALUES_IN_3MF); + } + } upward_compatible_printers = config.option("upward_compatible_machine", true)->values; config.set("printer_settings_id", config_name, true); load_machine_config = std::move(config); diff --git a/src/libslic3r/TreeSupport.cpp b/src/libslic3r/TreeSupport.cpp index ef92a1cf18..bf60680571 100644 --- a/src/libslic3r/TreeSupport.cpp +++ b/src/libslic3r/TreeSupport.cpp @@ -3344,7 +3344,7 @@ std::vector TreeSupport::plan_layer_heights(std::vectornext_layer_nr: " << layer_heights[i].print_z << " " << layer_heights[i].height << " " + BOOST_LOG_TRIVIAL(trace) << "plan_layer_heights print_z, height, layer_nr->next_layer_nr: " << layer_heights[i].print_z << " " << layer_heights[i].height << " " << i << "->" << layer_heights[i].next_layer_nr << std::endl; } diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 239ff07b4b..92ac99cd9b 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -2355,6 +2355,7 @@ bool GUI_App::on_init_inner() } #endif + BOOST_LOG_TRIVIAL(info) << boost::format("gui mode, Current BambuStudio Version %1%")%SLIC3R_VERSION; // Enable this to get the default Win32 COMCTRL32 behavior of static boxes. // wxSystemOptions::SetOption("msw.staticbox.optimized-paint", 0); // Enable this to disable Windows Vista themes for all wxNotebooks. The themes seem to lead to terrible From e209c5de09ac128cff4bdbbb8f266583e4fc8ea2 Mon Sep 17 00:00:00 2001 From: "salt.wei" Date: Mon, 25 Sep 2023 19:04:16 +0800 Subject: [PATCH 60/92] ENH: save overhang polygons in cache data JIRA: none Signed-off-by: salt.wei Change-Id: I6887774f986843b094c05da48de3e2d6234a2c9e --- src/libslic3r/Print.cpp | 56 ++++++++++++++++++++++++++--------- src/libslic3r/Print.hpp | 2 +- src/libslic3r/PrintObject.cpp | 2 +- 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 74582c1a7a..5dd229e7e7 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -1637,6 +1637,16 @@ void Print::process(long long *time_cost_with_cache, bool use_cache) } } ); + + for (PrintObject* obj : m_objects) { + if (need_slicing_objects.count(obj) != 0) { + obj->detect_overhangs_for_lift(); + } + else { + if (obj->set_started(posDetectOverhangsForLift)) + obj->set_done(posDetectOverhangsForLift); + } + } } else { for (PrintObject *obj : m_objects) { @@ -1653,20 +1663,25 @@ void Print::process(long long *time_cost_with_cache, bool use_cache) obj->set_done(posIroning); if (obj->set_started(posSupportMaterial)) obj->set_done(posSupportMaterial); + if (obj->set_started(posDetectOverhangsForLift)) + obj->set_done(posDetectOverhangsForLift); } else { obj->make_perimeters(); obj->infill(); obj->ironing(); obj->generate_support_material(); + obj->detect_overhangs_for_lift(); } } } for (PrintObject *obj : m_objects) { - if (need_slicing_objects.count(obj) == 0) + if (need_slicing_objects.count(obj) == 0) { obj->copy_layers_from_shared_object(); + obj->copy_layers_overhang_from_shared_object(); + } } if (this->set_started(psWipeTower)) { @@ -1794,18 +1809,6 @@ void Print::process(long long *time_cost_with_cache, bool use_cache) } } - // BBS - for (PrintObject* obj : m_objects) { - if (need_slicing_objects.count(obj) != 0) { - obj->detect_overhangs_for_lift(); - } - else { - obj->copy_layers_overhang_from_shared_object(); - if (obj->set_started(posDetectOverhangsForLift)) - obj->set_done(posDetectOverhangsForLift); - } - } - // BBS if(!m_no_check) { @@ -2418,6 +2421,8 @@ std::string PrintStatistics::finalize_output_path(const std::string &path_in) co #define JSON_LAYER_ID "layer_id" #define JSON_LAYER_SLICED_POLYGONS "sliced_polygons" #define JSON_LAYER_SLLICED_BBOXES "sliced_bboxes" +#define JSON_LAYER_OVERHANG_POLYGONS "overhang_polygons" +#define JSON_LAYER_OVERHANG_BBOX "overhang_bbox" #define JSON_SUPPORT_LAYER_ISLANDS "support_islands" #define JSON_SUPPORT_LAYER_FILLS "support_fills" @@ -3054,6 +3059,19 @@ void extract_layer(const json& layer_json, Layer& layer) { layer.lslices_bboxes.push_back(std::move(bbox)); } + //overhang_polygons + int overhang_polygons_count = layer_json[JSON_LAYER_OVERHANG_POLYGONS].size(); + for (int polygon_index = 0; polygon_index < overhang_polygons_count; polygon_index++) + { + ExPolygon polygon; + + polygon = layer_json[JSON_LAYER_OVERHANG_POLYGONS][polygon_index]; + layer.loverhangs.push_back(std::move(polygon)); + } + + //overhang_box + layer.loverhangs_bbox = layer_json[JSON_LAYER_OVERHANG_BBOX]; + //layer_regions int layer_region_count = layer.region_count(); for (int layer_region_index = 0; layer_region_index < layer_region_count; layer_region_index++) @@ -3129,7 +3147,7 @@ int Print::export_cached_data(const std::string& directory, bool with_space) boost::filesystem::path directory_path(directory); auto convert_layer_to_json = [](json& layer_json, const Layer* layer) { - json slice_polygons_json = json::array(), slice_bboxs_json = json::array(), layer_regions_json = json::array(); + json slice_polygons_json = json::array(), slice_bboxs_json = json::array(), overhang_polygons_json = json::array(), layer_regions_json = json::array(); layer_json[JSON_LAYER_PRINT_Z] = layer->print_z; layer_json[JSON_LAYER_HEIGHT] = layer->height; layer_json[JSON_LAYER_SLICE_Z] = layer->slice_z; @@ -3152,6 +3170,16 @@ int Print::export_cached_data(const std::string& directory, bool with_space) } layer_json[JSON_LAYER_SLLICED_BBOXES] = std::move(slice_bboxs_json); + //overhang_polygons + for (const ExPolygon& overhang_polygon : layer->loverhangs) { + json overhang_polygon_json = overhang_polygon; + overhang_polygons_json.push_back(std::move(overhang_polygon_json)); + } + layer_json[JSON_LAYER_OVERHANG_POLYGONS] = std::move(overhang_polygons_json); + + //overhang_box + layer_json[JSON_LAYER_OVERHANG_BBOX] = layer->loverhangs_bbox; + for (const LayerRegion *layer_region : layer->regions()) { json region_json = *layer_region; diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index fa022743e3..a8056fa260 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -89,8 +89,8 @@ enum PrintObjectStep { posSlice, posPerimeters, posPrepareInfill, posInfill, posIroning, posSupportMaterial, // BBS - posSimplifyWall, posSimplifyInfill, posSimplifySupportPath, posDetectOverhangsForLift, + posSimplifyWall, posSimplifyInfill, posSimplifySupportPath, posCount, }; diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index d75fa7ec3f..9a6034219b 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -427,7 +427,7 @@ void PrintObject::detect_overhangs_for_lift() size_t num_layers = this->layer_count(); size_t num_raft_layers = m_slicing_params.raft_layers(); - m_print->set_status(78, L("Detect overhangs for auto-lift")); + m_print->set_status(71, L("Detect overhangs for auto-lift")); this->clear_overhangs_for_lift(); From b484fb14067c3613bb82919b33a99805130c5738 Mon Sep 17 00:00:00 2001 From: gerrit Date: Sun, 8 Oct 2023 13:10:36 +0800 Subject: [PATCH 61/92] ci: update build version to 01.07.07.84 Change-Id: I1c34df762c329ab81c04cbd2a79d1259f04cb7bb --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index 15bbbd5ed1..d2570a12a5 100644 --- a/version.inc +++ b/version.inc @@ -12,4 +12,4 @@ set(BBL_INTERNAL_TESTING "1") endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.07.07.83") +set(SLIC3R_VERSION "01.07.07.84") From 1ed54b1d5d237c83337bc7ba753898e8d7b4c71e Mon Sep 17 00:00:00 2001 From: tao wang Date: Sun, 8 Oct 2023 14:22:04 +0800 Subject: [PATCH 62/92] FIX:add protection if task information is empty jira:[for new] Change-Id: Icfdf254eca23022ea3f861168d3894ef866fe792 --- src/slic3r/GUI/DeviceManager.cpp | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 99f2fc0c60..d8871b84bd 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -4662,22 +4662,26 @@ void MachineObject::update_slice_info(std::string project_id, std::string profil std::string http_body; if (m_agent->get_subtask_info(subtask_id, &subtask_json, &http_code, &http_body) == 0) { try { - json task_j = json::parse(subtask_json); - if (task_j.contains("content")) { - std::string content_str = task_j["content"].get(); - json content_j = json::parse(content_str); - plate_index = content_j["info"]["plate_idx"].get(); - } + if (!subtask_json.empty()){ - if (task_j.contains("context") && task_j["context"].contains("plates")) { - for (int i = 0; i < task_j["context"]["plates"].size(); i++) { - if (task_j["context"]["plates"][i].contains("index") && task_j["context"]["plates"][i]["index"].get() == plate_index) { - slice_info->thumbnail_url = task_j["context"]["plates"][i]["thumbnail"]["url"].get(); - BOOST_LOG_TRIVIAL(trace) << "task_info: thumbnail url=" << slice_info->thumbnail_url; + json task_j = json::parse(subtask_json); + if (task_j.contains("content")) { + std::string content_str = task_j["content"].get(); + json content_j = json::parse(content_str); + plate_index = content_j["info"]["plate_idx"].get(); + } + + if (task_j.contains("context") && task_j["context"].contains("plates")) { + for (int i = 0; i < task_j["context"]["plates"].size(); i++) { + if (task_j["context"]["plates"][i].contains("index") && task_j["context"]["plates"][i]["index"].get() == plate_index) { + slice_info->thumbnail_url = task_j["context"]["plates"][i]["thumbnail"]["url"].get(); + BOOST_LOG_TRIVIAL(trace) << "task_info: thumbnail url=" << slice_info->thumbnail_url; + } } } - } else { - BOOST_LOG_TRIVIAL(error) << "task_info: no context or plates"; + else { + BOOST_LOG_TRIVIAL(error) << "task_info: no context or plates"; + } } } catch(...) { From 01f13afa56419218a6fd4378f39080a6ea3f28b2 Mon Sep 17 00:00:00 2001 From: tao wang Date: Sun, 8 Oct 2023 14:45:43 +0800 Subject: [PATCH 63/92] FIX:fixed failure to open AMS mapping window jira:[STUDIO-4669] Change-Id: Ia9c9ca0b8833903443c173b97e61ba4e88e5d2bb --- src/slic3r/GUI/SelectMachine.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index ad9a3e3f01..a4ca561443 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -3654,10 +3654,6 @@ void SelectMachineDialog::set_default_normal() m_materialList.clear(); m_filaments.clear(); - DeviceManager* dev_manager = Slic3r::GUI::wxGetApp().getDeviceManager(); - if (!dev_manager) return; - MachineObject* obj_ = dev_manager->get_selected_machine(); - for (auto i = 0; i < extruders.size(); i++) { auto extruder = extruders[i] - 1; auto colour = wxGetApp().preset_bundle->project_config.opt_string("filament_colour", (unsigned int) extruder); @@ -3672,7 +3668,12 @@ void SelectMachineDialog::set_default_normal() m_sizer_material->Add(item, 0, wxALL, FromDIP(4)); item->Bind(wxEVT_LEFT_UP, [this, item, materials, extruder](wxMouseEvent& e) {}); - item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder, obj_](wxMouseEvent& e) { + item->Bind(wxEVT_LEFT_DOWN, [this, item, materials, extruder](wxMouseEvent& e) { + + DeviceManager* dev_manager = Slic3r::GUI::wxGetApp().getDeviceManager(); + if (!dev_manager) return; + MachineObject* curr_obj = dev_manager->get_selected_machine(); + MaterialHash::iterator iter = m_materialList.begin(); while (iter != m_materialList.end()) { int id = iter->first; @@ -3690,25 +3691,24 @@ void SelectMachineDialog::set_default_normal() wxPoint rect = item->ClientToScreen(wxPoint(0, 0)); // update ams data - if (obj_ && obj_->is_support_ams_mapping()) { + if (curr_obj && curr_obj->is_support_ams_mapping()) { if (m_mapping_popup.IsShown()) return; wxPoint pos = item->ClientToScreen(wxPoint(0, 0)); pos.y += item->GetRect().height; m_mapping_popup.Move(pos); - if (obj_ && - obj_->has_ams() && + if (curr_obj->has_ams() && m_checkbox_list["use_ams"]->GetValue() && - obj_->dev_id == m_printer_last_select) + curr_obj->dev_id == m_printer_last_select) { m_mapping_popup.set_parent_item(item); m_mapping_popup.set_current_filament_id(extruder); m_mapping_popup.set_tag_texture(materials[extruder]); - m_mapping_popup.update_ams_data(obj_->amsList); + m_mapping_popup.update_ams_data(curr_obj->amsList); m_mapping_popup.Popup(); } } - }); + }); Material* material_item = new Material(); material_item->id = extruder; @@ -3741,6 +3741,9 @@ void SelectMachineDialog::set_default_normal() m_scrollable_view->SetMaxSize(m_scrollable_region->GetSize()); //disable pei bed + DeviceManager* dev_manager = Slic3r::GUI::wxGetApp().getDeviceManager(); + if (!dev_manager) return; + MachineObject* obj_ = dev_manager->get_selected_machine(); update_flow_cali_check(obj_); wxSize screenSize = wxGetDisplaySize(); From 6487b2d0e8a972881d7c43f1cb68d17f1e268712 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Thu, 21 Sep 2023 10:49:32 +0800 Subject: [PATCH 64/92] ENH: refine tl temp check logic and tip 1. refine warning tips jira:STUDIO-4532 Signed-off-by: xun.zhang Change-Id: Ida6f8a8a4fca5cf8cf04e622bd2f3af1baf82d52 --- src/libslic3r/PrintConfig.cpp | 4 ++-- src/slic3r/GUI/Plater.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 0638018a88..fda94fa37a 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1378,8 +1378,8 @@ void PrintConfigDef::init_fff_params() // BBS def = this->add("temperature_vitrification", coInts); - def->label = L("Temperature of vitrificaiton"); - def->tooltip = L("Material becomes soft at this temperature. Thus the heatbed cannot be hotter than this tempature"); + def->label = L("Glass transition temperature"); + def->tooltip = L("At this temperature,glass state transists to rubbery state. Thus the heatbed cannot be hotter than this temperature"); def->mode = comSimple; def->set_default_value(new ConfigOptionInts{ 100 }); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index f1bb7c5f78..c9f713d708 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2847,7 +2847,7 @@ wxColour Plater::get_next_color_for_filament() wxString Plater::get_slice_warning_string(GCodeProcessorResult::SliceWarning& warning) { if (warning.msg == BED_TEMP_TOO_HIGH_THAN_FILAMENT) { - return _L("The bed temperature exceeds filament's vitrification temperature. Please open the front door of printer before printing to avoid nozzle clog."); + return _L("The current hot bed temperature is relatively high.The nozzle may be clogged when printing this filament in a closed enclosure."); } else if (warning.msg == NOZZLE_HRC_CHECKER) { return _L("The nozzle hardness required by the filament is higher than the default nozzle hardness of the printer. Please replace the hardened nozzle or filament, otherwise, the nozzle will be attrited or damaged."); } else if (warning.msg == NOT_SUPPORT_TRADITIONAL_TIMELAPSE) { From c9445dd7076d4b4485dcb9c8e9694fe5e70b2405 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Thu, 21 Sep 2023 12:30:29 +0800 Subject: [PATCH 65/92] ENH: modify pla,pva temperature vitrification jira:STUDIO-3518 Signed-off-by: xun.zhang Change-Id: Ibbaa8d6fba0d724ebe9e90b9c0357c7d68c063de --- resources/profiles/BBL/filament/Bambu PETG-CF @base.json | 2 +- resources/profiles/BBL/filament/Generic PETG-CF @base.json | 2 +- resources/profiles/BBL/filament/fdm_filament_pla.json | 2 +- resources/profiles/BBL/filament/fdm_filament_pva.json | 2 +- resources/profiles/BBL/filament/fdm_filament_tpu.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/profiles/BBL/filament/Bambu PETG-CF @base.json b/resources/profiles/BBL/filament/Bambu PETG-CF @base.json index 5263e70059..31b96e91b0 100644 --- a/resources/profiles/BBL/filament/Bambu PETG-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PETG-CF @base.json @@ -66,7 +66,7 @@ "6" ], "temperature_vitrification": [ - "75" + "70" ], "textured_plate_temp": [ "70" diff --git a/resources/profiles/BBL/filament/Generic PETG-CF @base.json b/resources/profiles/BBL/filament/Generic PETG-CF @base.json index c794c3566c..a8aa4714a7 100644 --- a/resources/profiles/BBL/filament/Generic PETG-CF @base.json +++ b/resources/profiles/BBL/filament/Generic PETG-CF @base.json @@ -66,7 +66,7 @@ "6" ], "temperature_vitrification": [ - "75" + "70" ], "textured_plate_temp": [ "70" diff --git a/resources/profiles/BBL/filament/fdm_filament_pla.json b/resources/profiles/BBL/filament/fdm_filament_pla.json index 8228827102..a93b981098 100644 --- a/resources/profiles/BBL/filament/fdm_filament_pla.json +++ b/resources/profiles/BBL/filament/fdm_filament_pla.json @@ -59,7 +59,7 @@ "220" ], "temperature_vitrification": [ - "55" + "45" ], "nozzle_temperature_range_low": [ "190" diff --git a/resources/profiles/BBL/filament/fdm_filament_pva.json b/resources/profiles/BBL/filament/fdm_filament_pva.json index 870a18368f..7d0bdf1b4a 100644 --- a/resources/profiles/BBL/filament/fdm_filament_pva.json +++ b/resources/profiles/BBL/filament/fdm_filament_pva.json @@ -77,7 +77,7 @@ "50" ], "temperature_vitrification": [ - "55" + "45" ], "textured_plate_temp": [ "55" diff --git a/resources/profiles/BBL/filament/fdm_filament_tpu.json b/resources/profiles/BBL/filament/fdm_filament_tpu.json index 126c101399..8ec0a4fec3 100644 --- a/resources/profiles/BBL/filament/fdm_filament_tpu.json +++ b/resources/profiles/BBL/filament/fdm_filament_tpu.json @@ -65,7 +65,7 @@ "1" ], "temperature_vitrification": [ - "35" + "30" ], "textured_plate_temp": [ "35" From 463716dd55755aefd235a6110f922ce913a2f33f Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Sun, 8 Oct 2023 19:46:37 +0800 Subject: [PATCH 66/92] ENH: refine some tip with softening temperature 1. refine some tip 2. alert when bed temperture greq than softening temperature jira: STUDIO-4532 Signed-off-by: xun.zhang Change-Id: Ib9623553a40825015744783f30c6e439827a49c6 --- src/libslic3r/GCode/GCodeProcessor.cpp | 2 +- src/libslic3r/PrintConfig.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 59ad386b76..56508daa7e 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -4300,7 +4300,7 @@ void GCodeProcessor::update_slice_warnings() if (m_highest_bed_temp != 0) { for (size_t i = 0; i < used_extruders.size(); i++) { int temperature = get_filament_vitrification_temperature(used_extruders[i]); - if (temperature != 0 && m_highest_bed_temp > temperature) + if (temperature != 0 && m_highest_bed_temp >= temperature) warning.params.push_back(std::to_string(used_extruders[i])); } } diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index fda94fa37a..67fc9d233d 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1378,8 +1378,8 @@ void PrintConfigDef::init_fff_params() // BBS def = this->add("temperature_vitrification", coInts); - def->label = L("Glass transition temperature"); - def->tooltip = L("At this temperature,glass state transists to rubbery state. Thus the heatbed cannot be hotter than this temperature"); + def->label = L("Softening temperature"); + def->tooltip = L("The material softens at this temperature, so when the bed temperature is equal to or greater than it, it's highly recommended to open the front door and/or remove the upper glass to avoid cloggings."); def->mode = comSimple; def->set_default_value(new ConfigOptionInts{ 100 }); From a3e94f42a033718928a50ee7d69e6262d7de77bf Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Sun, 8 Oct 2023 20:25:26 +0800 Subject: [PATCH 67/92] ENH: add translations jira:[NEW] Signed-off-by: xun.zhang Change-Id: I121adb40fb4eb68a62b52b8eda4270ef1b1d38f5 --- bbl/i18n/BambuStudio.pot | 24 ++++++------ bbl/i18n/de/BambuStudio_de.po | 49 +++++++++++++++--------- bbl/i18n/en/BambuStudio_en.po | 47 ++++++++++++++--------- bbl/i18n/es/BambuStudio_es.po | 49 +++++++++++++++--------- bbl/i18n/fr/BambuStudio_fr.po | 49 +++++++++++++++--------- bbl/i18n/hu/BambuStudio_hu.po | 49 +++++++++++++++--------- bbl/i18n/it/BambuStudio_it.po | 49 +++++++++++++++--------- bbl/i18n/ja/BambuStudio_ja.po | 47 ++++++++++++++--------- bbl/i18n/ko/BambuStudio_ko.po | 47 ++++++++++++++--------- bbl/i18n/nl/BambuStudio_nl.po | 49 +++++++++++++++--------- bbl/i18n/sv/BambuStudio_sv.po | 49 +++++++++++++++--------- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 57 ++++++++++++++++++---------- resources/i18n/de/BambuStudio.mo | Bin 295489 -> 294857 bytes resources/i18n/en/BambuStudio.mo | Bin 270932 -> 270342 bytes resources/i18n/es/BambuStudio.mo | Bin 292261 -> 291612 bytes resources/i18n/fr/BambuStudio.mo | Bin 301656 -> 301001 bytes resources/i18n/hu/BambuStudio.mo | Bin 296136 -> 295493 bytes resources/i18n/it/BambuStudio.mo | Bin 290109 -> 289461 bytes resources/i18n/ja/BambuStudio.mo | Bin 279398 -> 278734 bytes resources/i18n/ko/BambuStudio.mo | Bin 290191 -> 289573 bytes resources/i18n/nl/BambuStudio.mo | Bin 290592 -> 289956 bytes resources/i18n/sv/BambuStudio.mo | Bin 279759 -> 279141 bytes resources/i18n/zh_cn/BambuStudio.mo | Bin 267170 -> 267174 bytes 23 files changed, 357 insertions(+), 208 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 851f8c51e8..40ad7d1f59 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -3697,9 +3697,8 @@ msgid "Clear" msgstr "" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -3761,9 +3760,6 @@ msgstr "" msgid "Are you sure you want to cancel this print?" msgstr "" -msgid "Done" -msgstr "" - msgid "Downloading..." msgstr "" @@ -4247,8 +4243,8 @@ msgid "Restore" msgstr "" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" msgid "" @@ -6167,6 +6163,9 @@ msgstr "" msgid "Don't remind me of this version again" msgstr "" +msgid "Done" +msgstr "" + msgid "LAN Connection Failed (Sending print file)" msgstr "" @@ -7279,12 +7278,13 @@ msgid "" "Support material is commonly used to print support and support interface" msgstr "" -msgid "Temperature of vitrificaiton" +msgid "Softening temperature" msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" msgid "Price" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 36d3693904..0b83589247 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3985,9 +3985,8 @@ msgid "Clear" msgstr "Löschen" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -4049,9 +4048,6 @@ msgstr "Druck abbrechen" msgid "Are you sure you want to cancel this print?" msgstr "Möchten Sie diesen Druck wirklich abbrechen?" -msgid "Done" -msgstr "Fertig" - msgid "Downloading..." msgstr "Herunterladen..." @@ -4562,12 +4558,9 @@ msgid "Restore" msgstr "Wiederherstellen" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" -"Die Druckbetttemperatur überschreitet die Verglasungstemperatur des " -"Filaments. Bitte öffnen Sie die Vordertür des Druckers vor dem Druck, um ein " -"Verstopfen der Düse zu vermeiden." msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6716,6 +6709,9 @@ msgstr "Neue Version von Bambu Studio" msgid "Don't remind me of this version again" msgstr "Erinnern Sie mich nicht mehr an diese Version." +msgid "Done" +msgstr "Fertig" + msgid "LAN Connection Failed (Sending print file)" msgstr "LAN-Verbindung fehlgeschlagen (Senden einer Druckdatei)" @@ -8052,15 +8048,14 @@ msgstr "" "Stützmaterial wird üblicherweise zum Drucken von Stützen und Stütz-" "Schnittstellen verwendet." -msgid "Temperature of vitrificaiton" -msgstr "Verglasungstemperatur" +msgid "Softening temperature" +msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" -"Bei dieser Temperatur wird das Material weich. Daher kann das Heizbett nicht " -"heißer als diese Temperatur sein" msgid "Price" msgstr "Preis" @@ -11113,6 +11108,24 @@ msgstr "" "Wussten Sie, dass Sie die Festigkeit des Modells durch mehr Wandlinien und " "eine höhere Dichte der Füllung verbessern können?" +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "" +#~ "Die Druckbetttemperatur überschreitet die Verglasungstemperatur des " +#~ "Filaments. Bitte öffnen Sie die Vordertür des Druckers vor dem Druck, um " +#~ "ein Verstopfen der Düse zu vermeiden." + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "Verglasungstemperatur" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "" +#~ "Bei dieser Temperatur wird das Material weich. Daher kann das Heizbett " +#~ "nicht heißer als diese Temperatur sein" + #~ msgid "\\u2103" #~ msgstr "\\u2103" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index fdefbe2e57..f057b915b5 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3898,9 +3898,8 @@ msgid "Clear" msgstr "Clear" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -3962,9 +3961,6 @@ msgstr "Cancel print" msgid "Are you sure you want to cancel this print?" msgstr "Are you sure you want to cancel this print?" -msgid "Done" -msgstr "Done" - msgid "Downloading..." msgstr "Downloading..." @@ -4467,11 +4463,9 @@ msgid "Restore" msgstr "Restore" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clogs." msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6546,6 +6540,9 @@ msgstr "New version of Bambu Studio" msgid "Don't remind me of this version again" msgstr "Don't remind me about this version again." +msgid "Done" +msgstr "Done" + msgid "LAN Connection Failed (Sending print file)" msgstr "LAN Connection Failed (Sending print file)" @@ -7841,15 +7838,14 @@ msgid "" msgstr "" "Support material is commonly used to print support and support interfaces." -msgid "Temperature of vitrificaiton" -msgstr "Temperature of vitrification" +msgid "Softening temperature" +msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" -"Material becomes soft at this temperature. Thus, the heat bed cannot be " -"hotter than this temperature." msgid "Price" msgstr "Price" @@ -10808,6 +10804,23 @@ msgstr "" "Did you know that you can use more wall loops and higher sparse infill " "density to improve the strength of the model?" +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clogs." + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "Temperature of vitrification" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "" +#~ "Material becomes soft at this temperature. Thus, the heat bed cannot be " +#~ "hotter than this temperature." + #~ msgid "\\u2103" #~ msgstr "\\u2103" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index af74fca1d8..ceb066dcd7 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3968,9 +3968,8 @@ msgid "Clear" msgstr "Borrar" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -4032,9 +4031,6 @@ msgstr "Cancelar impresión" msgid "Are you sure you want to cancel this print?" msgstr "¿Está seguro de cancelar la impresión?" -msgid "Done" -msgstr "Listo" - msgid "Downloading..." msgstr "Descargando…" @@ -4543,12 +4539,9 @@ msgid "Restore" msgstr "Restaurar" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" -"La temperatura del lecho supera la temperatura de vitrificación del " -"filamento. Abra la puerta frontal de la impresora antes de imprimir para " -"evitar que se obstruya la boquilla." msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6675,6 +6668,9 @@ msgstr "Nueva versión de Bambu Studio" msgid "Don't remind me of this version again" msgstr "No vuelvas a recordarme esta versión." +msgid "Done" +msgstr "Listo" + msgid "LAN Connection Failed (Sending print file)" msgstr "Fallo en la conexión LAN (envío del archivo de impresión)" @@ -8009,15 +8005,14 @@ msgstr "" "El material de soporte se utiliza habitualmente para imprimir el soporte y " "interficies de soporte" -msgid "Temperature of vitrificaiton" -msgstr "Temperatura de vitrificación" +msgid "Softening temperature" +msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" -"El material se ablanda a esta temperatura. Por lo tanto, el lecho térmico no " -"puede estar más caliente que esta temperatura" msgid "Price" msgstr "Precio" @@ -11020,6 +11015,24 @@ msgstr "" "¿Sabía que puede utilizar más bucles de pared y una densidad de relleno " "dispersa más alta para mejorar la resistencia del modelo?" +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "" +#~ "La temperatura del lecho supera la temperatura de vitrificación del " +#~ "filamento. Abra la puerta frontal de la impresora antes de imprimir para " +#~ "evitar que se obstruya la boquilla." + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "Temperatura de vitrificación" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "" +#~ "El material se ablanda a esta temperatura. Por lo tanto, el lecho térmico " +#~ "no puede estar más caliente que esta temperatura" + #~ msgid "\\u2103" #~ msgstr "\\ u2103" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index cfbe5ee334..2e847a61c7 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3965,9 +3965,8 @@ msgid "Clear" msgstr "Nettoyer" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -4029,9 +4028,6 @@ msgstr "Annuler l'impression" msgid "Are you sure you want to cancel this print?" msgstr "Êtes-vous sûr de vouloir annuler cette impression ?" -msgid "Done" -msgstr "Terminé" - msgid "Downloading..." msgstr "Téléchargement…" @@ -4536,12 +4532,9 @@ msgid "Restore" msgstr "Restaurer" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" -"La température du plateau dépasse la température de vitrification du " -"filament. Veuillez ouvrir la porte avant de l'imprimante avant l'impression " -"pour éviter le bouchage de la buse." msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6705,6 +6698,9 @@ msgstr "Nouvelle version de Bambu Studio" msgid "Don't remind me of this version again" msgstr "Ne me rappelez plus cette version." +msgid "Done" +msgstr "Terminé" + msgid "LAN Connection Failed (Sending print file)" msgstr "Échec de la connexion au réseau local (envoi du fichier d'impression)" @@ -8054,15 +8050,14 @@ msgstr "" "Le matériau de support est généralement utilisé pour imprimer le support et " "les interfaces de support." -msgid "Temperature of vitrificaiton" -msgstr "Température de vitrification" +msgid "Softening temperature" +msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" -"Le matériau devient mou à cette température. Ainsi, le lit chauffant ne peut " -"pas être plus chaud que cette température" msgid "Price" msgstr "Tarif" @@ -11117,6 +11112,24 @@ msgstr "" "Saviez-vous que vous pouvez définir un plus grand nombre de périmètre et une " "densité de remplissage plus élevée pour améliorer la résistance du modèle ?" +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "" +#~ "La température du plateau dépasse la température de vitrification du " +#~ "filament. Veuillez ouvrir la porte avant de l'imprimante avant " +#~ "l'impression pour éviter le bouchage de la buse." + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "Température de vitrification" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "" +#~ "Le matériau devient mou à cette température. Ainsi, le lit chauffant ne " +#~ "peut pas être plus chaud que cette température" + #~ msgid "\\u2103" #~ msgstr "\\u2103" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index dd38aa9e63..91209fb274 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3941,9 +3941,8 @@ msgid "Clear" msgstr "Törlés" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -4005,9 +4004,6 @@ msgstr "Nyomtatás megszakítása" msgid "Are you sure you want to cancel this print?" msgstr "Biztosan megszakítod ezt a nyomtatást?" -msgid "Done" -msgstr "Kész" - msgid "Downloading..." msgstr "Letöltés..." @@ -4511,12 +4507,9 @@ msgid "Restore" msgstr "Visszaállítás" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" -"Az asztalhőmérséklet magasabb, mint a filament üvegesedési hőmérséklete. " -"Kérjük, hogy a nyomtatás során tartsd nyitva a nyomtatót, vagy csökkentsd az " -"asztalhőmérsékletet." msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6621,6 +6614,9 @@ msgstr "A Bambu Studio új verziója" msgid "Don't remind me of this version again" msgstr "Ne emlékeztessen újra erre a verzióra." +msgid "Done" +msgstr "Kész" + msgid "LAN Connection Failed (Sending print file)" msgstr "LAN kapcsolódás sikertelen (nyomtatási fájl küldése)" @@ -7948,15 +7944,14 @@ msgstr "" "A támaszanyag a támaszok és a támasz érintkező felületeinek nyomtatásához " "van használva." -msgid "Temperature of vitrificaiton" -msgstr "Üvegesedési hőmérséklet" +msgid "Softening temperature" +msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" -"Az anyag ezen a hőmérsékleten meglágyul. Ezért a tárgyasztal hőmérséklete " -"nem lehet ennél magasabb." msgid "Price" msgstr "Költség" @@ -10956,6 +10951,24 @@ msgstr "" "Tudtad, hogy több fal vagy nagyobb kitöltés használatával javíthatod a " "modell szilárdságát?" +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "" +#~ "Az asztalhőmérséklet magasabb, mint a filament üvegesedési hőmérséklete. " +#~ "Kérjük, hogy a nyomtatás során tartsd nyitva a nyomtatót, vagy csökkentsd " +#~ "az asztalhőmérsékletet." + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "Üvegesedési hőmérséklet" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "" +#~ "Az anyag ezen a hőmérsékleten meglágyul. Ezért a tárgyasztal hőmérséklete " +#~ "nem lehet ennél magasabb." + #~ msgid "\\u2103" #~ msgstr "\\u2103" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index 604c9694f4..a0aa98b1d2 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3949,9 +3949,8 @@ msgid "Clear" msgstr "Cancella" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -4013,9 +4012,6 @@ msgstr "Annulla la stampa" msgid "Are you sure you want to cancel this print?" msgstr "Sei sicuro di voler annullare la stampa?" -msgid "Done" -msgstr "Fine" - msgid "Downloading..." msgstr "Download in corso…" @@ -4522,12 +4518,9 @@ msgid "Restore" msgstr "Ripristina" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" -"La temperatura del piano supera la temperatura di vetrificazione del " -"filamento. Aprire lo sportello anteriore della stampante prima di stampare " -"per evitare l'intasamento del nozzle." msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6646,6 +6639,9 @@ msgstr "Nuova versione di Bambu Studio" msgid "Don't remind me of this version again" msgstr "Non ricordarmi più questa versione." +msgid "Done" +msgstr "Fine" + msgid "LAN Connection Failed (Sending print file)" msgstr "Connessione LAN fallita (invio del file di stampa)" @@ -7988,15 +7984,14 @@ msgstr "" "Il materiale di supporto viene comunemente utilizzato per stampare il " "supporto e le interfacce di supporto." -msgid "Temperature of vitrificaiton" -msgstr "Temperatura di vetrificazione" +msgid "Softening temperature" +msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" -"Il materiale diventa morbido a questa temperatura. Pertanto, il piano non " -"può essere più caldo di questa temperatura." msgid "Price" msgstr "Prezzo" @@ -11031,6 +11026,24 @@ msgstr "" "Sapevate che è possibile utilizzare un maggior numero di anelli a parete e " "una maggiore densità riempimento per migliorare la resistenza del modello?" +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "" +#~ "La temperatura del piano supera la temperatura di vetrificazione del " +#~ "filamento. Aprire lo sportello anteriore della stampante prima di " +#~ "stampare per evitare l'intasamento del nozzle." + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "Temperatura di vetrificazione" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "" +#~ "Il materiale diventa morbido a questa temperatura. Pertanto, il piano non " +#~ "può essere più caldo di questa temperatura." + #~ msgid "\\u2103" #~ msgstr "\\u2103" diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index dc1e8afc11..d41ffd4d68 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3825,9 +3825,8 @@ msgid "Clear" msgstr "クリア" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -3889,9 +3888,6 @@ msgstr "造形を取消し" msgid "Are you sure you want to cancel this print?" msgstr "現在の造形をキャンセルしても宜しいでしょうか?" -msgid "Done" -msgstr "Done" - msgid "Downloading..." msgstr "ダウンロード中" @@ -4385,11 +4381,9 @@ msgid "Restore" msgstr "復元" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" -"ベッド温度がフィラメントの軟化温度より高いです、ノズル詰まりが発生する可能性" -"があります。ベッド温度を下げるか、プリンタのドアを開けてください。" msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6411,6 +6405,9 @@ msgstr "新バージョン" msgid "Don't remind me of this version again" msgstr "今後このバージョンの通知をしません" +msgid "Done" +msgstr "Done" + msgid "LAN Connection Failed (Sending print file)" msgstr "LAN接続失敗 (造形ファイル送信)" @@ -7637,15 +7634,14 @@ msgid "" "Support material is commonly used to print support and support interface" msgstr "サポート素材は、サポート又はサポート接触面の造形によく使われます。" -msgid "Temperature of vitrificaiton" -msgstr "軟化温度" +msgid "Softening temperature" +msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" -"この温度でフィラメントが柔らかくなります、ベッド温度をこれ以下に設定してくだ" -"さい" msgid "Price" msgstr "価格" @@ -10489,6 +10485,23 @@ msgstr "" "強度の向上\n" "壁面層数やインフィルの充填密度を増やして造形強度を向上できます。" +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "" +#~ "ベッド温度がフィラメントの軟化温度より高いです、ノズル詰まりが発生する可能" +#~ "性があります。ベッド温度を下げるか、プリンタのドアを開けてください。" + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "軟化温度" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "" +#~ "この温度でフィラメントが柔らかくなります、ベッド温度をこれ以下に設定してく" +#~ "ださい" + #~ msgid "\\u2103" #~ msgstr "u2103" diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index f567d77aa4..b0f380c419 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -3867,9 +3867,8 @@ msgid "Clear" msgstr "지우기" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -3931,9 +3930,6 @@ msgstr "출력 취소" msgid "Are you sure you want to cancel this print?" msgstr "이 출력을 취소하시겠습니까?" -msgid "Done" -msgstr "완료" - msgid "Downloading..." msgstr "다운로드 중…" @@ -4432,11 +4428,9 @@ msgid "Restore" msgstr "복원" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" -"베드 온도가 필라멘트의 유리화 온도를 초과합니다.노즐이 막히지 않도록 출력 전" -"에 프린터의 전면 도어를 여십시오." msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6483,6 +6477,9 @@ msgstr "뱀부 스튜디오의 새 버전" msgid "Don't remind me of this version again" msgstr "이 버전에 대해 다시 상기시키지 않습니다." +msgid "Done" +msgstr "완료" + msgid "LAN Connection Failed (Sending print file)" msgstr "LAN 연결 실패 (출력 파일 전송 중)" @@ -7741,15 +7738,14 @@ msgstr "" "서포트 재료는 일반적으로 서포트 및 서포트 인터페이스를 인쇄하는 데 사용됩니" "다." -msgid "Temperature of vitrificaiton" -msgstr "유리화 온도" +msgid "Softening temperature" +msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" -"이 온도에서 재료의 변형이 시작됩니다. 따라서 히팅베드는 이 온도보다 더 높아서" -"는 안됩니다." msgid "Price" msgstr "가격" @@ -10648,6 +10644,23 @@ msgstr "" "더 많은 벽 루프와 더 높은 내부채움 밀도를 사용하여 모델의 강도를 높일 수 있다" "는 사실을 알고 계셨습니까?" +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "" +#~ "베드 온도가 필라멘트의 유리화 온도를 초과합니다.노즐이 막히지 않도록 출력 " +#~ "전에 프린터의 전면 도어를 여십시오." + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "유리화 온도" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "" +#~ "이 온도에서 재료의 변형이 시작됩니다. 따라서 히팅베드는 이 온도보다 더 높" +#~ "아서는 안됩니다." + #~ msgid "\\u2103" #~ msgstr "\\u2103" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index d2e7b7795c..59b5ba926f 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3964,9 +3964,8 @@ msgid "Clear" msgstr "Wissen" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -4028,9 +4027,6 @@ msgstr "Print annuleren" msgid "Are you sure you want to cancel this print?" msgstr "Weet je zeker dat je deze print wilt annuleren?" -msgid "Done" -msgstr "Gereed" - msgid "Downloading..." msgstr "Downloaden..." @@ -4546,12 +4542,9 @@ msgid "Restore" msgstr "Herstellen" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" -"De bedtemperatuur overschrijdt de vitrificatietemperatuur van het filament. " -"Open de voorkdeur van de printer voor het printen om verstopping van de " -"nozzles te voorkomen." msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6698,6 +6691,9 @@ msgstr "Nieuwe versie van Bambu Studio" msgid "Don't remind me of this version again" msgstr "Herinner me niet meer aan deze versie." +msgid "Done" +msgstr "Gereed" + msgid "LAN Connection Failed (Sending print file)" msgstr "LAN-verbinding mislukt (verzenden afdrukbestand)" @@ -8035,15 +8031,14 @@ msgstr "" "Support materiaal wordt vaak gebruikt om support en support interfaces af te " "drukken." -msgid "Temperature of vitrificaiton" -msgstr "Temperatuur van verglazing" +msgid "Softening temperature" +msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" -"Op deze temperatuur zal het materiaal zacht worden. Daarom kan de " -"temperatuur van het printbed niet hoger dan deze waarde." msgid "Price" msgstr "Prijs" @@ -11079,6 +11074,24 @@ msgstr "" "Wist je dat je meer wandlussen en een hogere dunne invuldichtheid kunt " "gebruiken om de sterkte van het model te verbeteren?" +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "" +#~ "De bedtemperatuur overschrijdt de vitrificatietemperatuur van het " +#~ "filament. Open de voorkdeur van de printer voor het printen om " +#~ "verstopping van de nozzles te voorkomen." + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "Temperatuur van verglazing" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "" +#~ "Op deze temperatuur zal het materiaal zacht worden. Daarom kan de " +#~ "temperatuur van het printbed niet hoger dan deze waarde." + #~ msgid "\\u2103" #~ msgstr "\\ u2103" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 66cbc0d398..613f7b0e4d 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3916,9 +3916,8 @@ msgid "Clear" msgstr "Rensa" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." msgstr "" msgid "How do you like this printing file?" @@ -3980,9 +3979,6 @@ msgstr "Avbryt utskrift" msgid "Are you sure you want to cancel this print?" msgstr "Är du säker på att du vill avbryta utskriften?" -msgid "Done" -msgstr "Klar" - msgid "Downloading..." msgstr "Laddar ner..." @@ -4484,12 +4480,9 @@ msgid "Restore" msgstr "Återställ" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." msgstr "" -"Byggplattans temperatur överskrider filamentens förglasningstemperatur. " -"Öppna skrivarens främre dörr innan du skriver ut för att undvika att nozzeln " -"täpps till." msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6581,6 +6574,9 @@ msgstr "Ny version av Bambu Studio" msgid "Don't remind me of this version again" msgstr "Påminn mig inte om den här versionen igen." +msgid "Done" +msgstr "Klar" + msgid "LAN Connection Failed (Sending print file)" msgstr "LAN-anslutning misslyckades (skickar utskriftsfil)" @@ -7863,15 +7859,14 @@ msgstr "" "Support material används ofta för att skriva ut support och stödja " "gränssnittet" -msgid "Temperature of vitrificaiton" -msgstr "Kristalliserings temperatur" +msgid "Softening temperature" +msgstr "" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." msgstr "" -"Materialet mjuknar vid denna temperatur. Därför får inte byggplattan vara " -"varmare än denna temperatur" msgid "Price" msgstr "Pris" @@ -10846,6 +10841,24 @@ msgstr "" "Visste du att du kan använda fler väggslingor och högre gles fyllningstäthet " "för att förbättra modellens styrka?" +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "" +#~ "Byggplattans temperatur överskrider filamentens förglasningstemperatur. " +#~ "Öppna skrivarens främre dörr innan du skriver ut för att undvika att " +#~ "nozzeln täpps till." + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "Kristalliserings temperatur" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "" +#~ "Materialet mjuknar vid denna temperatur. Därför får inte byggplattan vara " +#~ "varmare än denna temperatur" + #~ msgid "\\u2103" #~ msgstr "\\u2103" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index c1108cf491..150eaad6be 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-09-28 10:41+0800\n" +"POT-Creation-Date: 2023-10-08 20:22+0800\n" "PO-Revision-Date: 2023-09-18 09:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -3800,12 +3800,9 @@ msgid "Clear" msgstr "清除" msgid "" -"You have completed printing the mall model, but the synchronization of " -"rating information has failed. \n" -"If you need to resynchronize, please reselect the printer." -msgstr "" -"您已完成打印商城模型,但评分信息的同步失败了。\n" -"如果需要重新同步,请重新选择打印机。" +"You have completed printing the mall model, \n" +"but the synchronization of rating information has failed." +msgstr "您已完成打印商城模型,\n但评分信息的同步失败了。" msgid "How do you like this printing file?" msgstr "您喜欢这个打印文件吗?" @@ -3866,9 +3863,6 @@ msgstr "取消打印" msgid "Are you sure you want to cancel this print?" msgstr "你确定要取消这次打印吗?" -msgid "Done" -msgstr "完成" - msgid "Downloading..." msgstr "下载中..." @@ -4359,9 +4353,9 @@ msgid "Restore" msgstr "恢复" msgid "" -"The bed temperature exceeds filament's vitrification temperature. Please " -"open the front door of printer before printing to avoid nozzle clog." -msgstr "热床温度超过了材料的软化温度。请在打印前打开打印机前门以防堵头。" +"The current hot bed temperature is relatively high.The nozzle may be clogged " +"when printing this filament in a closed enclosure." +msgstr "当前热床温度较高,在封闭箱体中打印可能导致喷嘴堵塞" msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -6343,6 +6337,9 @@ msgstr "新版本的Bambu Studio" msgid "Don't remind me of this version again" msgstr "此版本不再提示" +msgid "Done" +msgstr "完成" + msgid "LAN Connection Failed (Sending print file)" msgstr "LAN连接失败(发送打印文件)" @@ -7517,13 +7514,14 @@ msgid "" "Support material is commonly used to print support and support interface" msgstr "支撑材料通常用于打印支撑体和支撑接触面" -msgid "Temperature of vitrificaiton" +msgid "Softening temperature" msgstr "软化温度" msgid "" -"Material becomes soft at this temperature. Thus the heatbed cannot be hotter " -"than this tempature" -msgstr "材料在这个温度开始变软。因此热床温度不能超过这个温度。" +"The material softens at this temperature, so when the bed temperature is " +"equal to or greater than it, it's highly recommended to open the front door " +"and/or remove the upper glass to avoid cloggings." +msgstr "材料在此温度下软化,因此当热床温度大于等于此温度时需要把前门和(或)顶盖打开,以防止发生堵头" msgid "Price" msgstr "价格" @@ -8733,9 +8731,9 @@ msgid "" "high to avoid cloggings, so 0 which stands for turning off is highly " "recommended" msgstr "" -"更高的腔温可以帮助抑制或减少扭曲,并可能会提高高温材料(如ABS、ASA、PC、PA)" +"更高的腔温可以帮助抑制或减少翘曲,并可能会提高高温材料(如ABS、ASA、PC、PA)" "的层间粘合强度。与此同时,ABS和ASA的空气过滤效果将变差。而对于PLA、PETG、" -"TPU、PVA等低温材料,实际腔温不应过高,以避免堵塞,因此强烈建议将室温设为0°C, " +"TPU、PVA等低温材料,实际腔温不应过高,以避免堵塞,因此强烈建议将腔温设为0°C, " "即关闭" msgid "Nozzle temperature for layers after the initial one" @@ -10299,6 +10297,27 @@ msgstr "" "提高强度\n" "你知道吗?你可以使用更多的墙层数和更高的疏散填充密度来提高模型的强度。" +#~ msgid "" +#~ "You have completed printing the mall model, but the synchronization of " +#~ "rating information has failed. \n" +#~ "If you need to resynchronize, please reselect the printer." +#~ msgstr "" +#~ "您已完成打印商城模型,但评分信息的同步失败了。\n" +#~ "如果需要重新同步,请重新选择打印机。" + +#~ msgid "" +#~ "The bed temperature exceeds filament's vitrification temperature. Please " +#~ "open the front door of printer before printing to avoid nozzle clog." +#~ msgstr "热床温度超过了材料的软化温度。请在打印前打开打印机前门以防堵头。" + +#~ msgid "Temperature of vitrificaiton" +#~ msgstr "软化温度" + +#~ msgid "" +#~ "Material becomes soft at this temperature. Thus the heatbed cannot be " +#~ "hotter than this tempature" +#~ msgstr "材料在这个温度开始变软。因此热床温度不能超过这个温度。" + #~ msgid "" #~ "The current chamber temperature or the target chamber temperature exceeds " #~ "45\\u2103.In order to avoid extruder clogging,low temperature " diff --git a/resources/i18n/de/BambuStudio.mo b/resources/i18n/de/BambuStudio.mo index a3ed38e89d1fdd0c80bbd12fdce4fde04966baac..976cfd6e5344016cc1a62209094bc5cf9c1c6d8d 100644 GIT binary patch delta 56588 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 delta 57228 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 GTmK)zKok@J delta 57144 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

bBK>){wsp%@6ojX~HGeSySW}Kz}s3 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 GG5-fZ);w_l delta 57190 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

bkwQegc(z7cmO&V@VA3@o~L3 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 delta 57192 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 z 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 MmZ^_PTyy7t0LE{G8~^|S delta 43538 zcmYh^1$0!`-iP6t1c%@rAV7eih2ZY)TA)bLQrx9Tr??gC6o&$Z;_mM5?(S|a#o>E@ zv;Y0powepZ+wJUq&Pkx$`3vIzxgh?^x|w~=JRVPvgCvF*}AY^?JgvCT7MisPa?It>z6gXqnH=Fyk_>=K}@HV_Yn?+*#B7 z-t2@a$sb@&G1r*KF%$WZuoT8$;Z~?NYUb_CzUC;O1*Ty=3M|HG=vnEOG`g7>3y_=+ zV`4*8xt3--)TQW(x|Aa=J_gnCUl@w(unC?*T_Ru3Rj#A5sHLlgD%ce>;26{ruEtMz z4ps5=YOg0XKEQ++b&VTPatt9Jh8j=~vz*z)@_S-b`u7YbpiMUtb?tx0M7RVs!yOm{ z_oFt^3DgQaLS3rAk%l}$YrUQ*7z4FQLohmqp~^*|29zI@V|7eK|DHAkVw2F%9FFOT z`%$}k9jf8omVW@%;2E5Vw^8N#taF=isJYs_Va8eS^(3KOA=DnKfidXc(~f{f)Eza$ zUr{rhk1Dtl(%8=)>yJ5)mhQ3IKXTEW?<0WG!k^_YhEF4Ug7iMlkOPy>y- ziSr*sAkikTrz$2z6=;cCs-CD0Mx)O8B-C!+j9Q7qsFgc|8SyD<;0ZUodTFsU@oZQK zr(+g8XZc?@bN+ShVr_9tmJBt6%%}n6My*gq)QD@MHf23j$Bj`l?}-}NKyw0WAahXd ztw2p=6Xw9Zs0qLJ5hz2T#8$88Ar8hN*kPON=#}{nbZ=sef#!hz)OPkG6m+TkRN({y>I11I^ zN7N<`+2!>V#Ryb-E7YFpW${tSCiQt{xPWIFwxhsyjKD0rU4>exC2ozn6kSo5>?d;= zrX}u2t;||fxxJ{RKZ@%3JZd11F*|<3csl=C_PCi8LM=^6)Saz5*1!&!7q?<(e1)m7 z`CeDx=f8&nILw@41s0V=KOD6((^02qF8VSMSV}MpK1Jn{G zKj2239#t+U>Xw@yHNc{lU(u|G8gL6#`JSi&^+yeO0_rr(Il%d66L^-ApcUALil0Dj z#+#@a#60Lmo&|MljzrC%4r;)SQJ1bgX2G8qGmqK9D{oJ{EmSM z=xa_uySWpp;nAo)@f+%1zX5aNanz~!g5O}Obq%AQaMv~`>Y5cdE8!gCbx{NU7q#S{EkEd_*He;s2v(6m_3QlKzThrFri<>DSqAfv{tK#swWx-#qB=}? z$?K_w1+gKH!Y+6hOJlvu?wK+LwFj=EI(~(DG0PQq>6)UiJ_)}PP{F&XC3=s^Fw<2x zkm9I4(G4||$*3jYg*xZ^QP=zus@`q$18OrSyyo^sdepVgjyeSeuW|mhNh*<`Jx~j^ zNt&XrZ8t23KcP114%7^;qE17C>(2hDh996h{2SG7@D0~dZ2XpZD%8NcBdhP}bHnEf zR=ed2)Wc#FSc=+=k5LW3G(X{3;xTS}Jr{5?&cn`kyq=+$_^#J89;cxul`YzN8okZP9pP|Zq zMV*3t5A5|G3lQ&$dRF)r5zt6(qB?ktx;F1oOBw5-TcMPgjd*&jfYnjEeiCXRYf*dX z0jmBd)IdTWxxEpFy0n>5=|yp?&VO|Ry2r;{kxlMpYAx&$>**YaCb!%Z;)J7ZUz zj9TiLPh3YyQRTx>?L?qfv>57!RuA>Y)d8dH{I4XSf*Vn<+s9G6`VppOlYGJ*#8W?W zD{>7r;Ag0gLY}+yB&Y#rL~XKcs7;*9;ssCxDT-R@x)_`OJuL~SU}x-&y-*E3M>X^h zYUJ-xmn8lRXIfN#F4QH=hZ;}`)F!Kd+7tCq^}3;6#|L3;oP$1XzJCa)LgANgvsE7TUlZhU#D~YGy|){sPrrw13=tL{iK|ybx-D&3pv3 zL|suc`5CoIenahn#i)U-GQ8dQD`)Fmr~*|D_Q*_?seGlx(Ue1w|7D-6P* zcRT}h{-YAml3zAoqgEi+dv}M+fZFw?Q7cjbwb^Q;E?pbcKzmsF5Q|SmwYvy)40oX} z)pgVao?;xG|91qkVbl-q5=5dZRz+>5R;VQ&fe|=sDFd1q^a-upeh8kEk)HQ5t@nNXb@+az&Y(owF z9;&0Ss7)8+t1~`oWs{=@ngz9@#e4*U2~0sDYP8UAo$+rEZ5>(f+7QG74319Dbwozl?x7yo$QhJwgrS9qQU83=Rq` zSsGNu+^9FDny5|G*Bpa^37{_3X4KQ}0%pa3F&Czb5)`;(wK1;Fe_sMx!jV`VH=uTX zw5UOWH=PjF3e`gmuqp1rjuwxM78KY+B~df1j~ZZO)Cvwm4eVEQKC0YKOs@04kARly zI%*|eqORp<)RLx-?mEta$}fsqnM(LQ*25vV4$JexQaDCX;CIObW4ZxcK<%MxsHfip z)Z;r%tRRn183hQa!BSWVt66+FY8U%ayLUQj084QIZnE?OvE4u`qRKVErq~u${vc{4 z&Y@1*70iaOV+Z*HH-r0q~0O+w9h0c!W}#(ek;XJB|@x6;0y1ayrLSi%YOJWeA08ftI! zND|~(jK82}m@TQh1d*7Ncoozs>W7?b&mzKXFX|MH#{D|~(+H@+=E>cN z+F&{2olphWqE5jc)G<7RIxSaGOaB}-vyZ5mMy3b~?5W16TWuTEeWD+#-dNNM&Bhcu z|Emb-8XrM5cnNhp?xQZjSJce%q;%=cQJb_cYBLVRN;nL=;Yo~zWkQ|RQMvts68?kwW*h* zCU6wX;s-2^CBiuW-x3%^Km{(L_CoZuZpq`J8V*A(Sq{_^7DvsfCh7&H4XUHjSPd7U z%D+XGkC86OvldgL(odj{>&{ z19^zLAAGfViVW`j=fbq4*T78J1yz5t#aCzG{OhrLiG&DzgK9W+Mt7`oqE@6VY9*?o z&i{9)73+d(@DEGhgnG=LK;5|FWD4?(!p5k24^ZVlqXwSb7vV;l6HAa#9krXsqBhB1 z)Z_FJcEDSxfmF}zE>UCDow5U_#c`MgSE5eQWz_Lao5h``?5L+>5iE$l1_adL1S>EL zRbjcg8MPw&Q3JVXzC<+?BdeQPMpQdRP&2E9x-m6FZR(z=Q}HuuMMol++UJ=-pu3ls zP3%NQ^6YMR4o4lo!&m^n;J27RhkLq>!JmoWLEX_>d=uoEjbCvN&dwPWcsnkg%Wck9 zIDqs)*bzOEL7oXZ|D6a_S3+)g&1&EnqO&j(bL0u~jKJ?PEj~moZOpvxSy2Ng5FdjZ zFf5;&$OSA#ynKH53N`|DX)dAmT5y3N&v!ci*$60M80y+DH}7J0;wcLT1%3fh0d;<( z7Yg#U#H!c@S7IwnSJ-X7VW{)J2Ye8h#S~^>_a?BQO0ane>$9f&#z)Ta9Unr!MbiUK}-$e%KFJ zV_p2Fg1cmcu_5t8SPR1|`dmiOithQn1+}y>D!Jp)0kt>&Lft_A!KxTq**%Vb#6`px z;54jN#oZB~qE1cxs_xRJM?E7dquTi$b$Yh=Ea4(*Q+>rcSgx9LD(YVS40RfERd-Lh zR;Wuf4ol)bEQ--;xJy|EyAyAYx$zvP#TYf+%(LJt;=XIMaVj{l6EiD#b#+-t>70<=mxDL2=9dtrHZ2DUM1dK!cFVyi{jqz|VYNgJi+PjQN@JTz)zn)s& z_HL=-p&Cw!8dxSQjXALhc0E#9*4Rr})qmErBtcpc@asE|tBng`NN-TuCQ5}7<^eDYuep1wnN@mo( zy*z3lEl{VYJ!+)}qb|vBr~%Eyw73@2<2lp--}UDFtD`R@sG(?m+`}iHSsF8t-V;~j zG~CS^R{P043*z^4md32)_rS(D3w3M%gmtlhf9l~WY=XZJaKEZ~?IWNiF2q1iVk1<+ z?7z4lqhH{1;%Np3d9LFz%!Nw_xi^_>*p_&K!EQ!#P?u@}CTE~qQ4>5j#9fMO=55qo z@;xA+P4Wh{WI;pSH3~spl5o_WFCXesbw%9|rl79nD$I!oP@D2C>fZhd)t+ZqP~cBQ zV`FooGq5av!KOO@Wrn-A)jv^>+uc|RgGRWw*Qz*(_jJl!aFiMFAh z|F==?6dvu~EBc}aas%~-^cb~55x+_)8FSohnl zSg4h2i`rzpP@8HD>h$x0cB1F@-kCMFM)5yhiQn;Bjt1VHid{H|qG* zM(vf3sB+^_ce*90YrGFNfMckR&!A>{&+z8^=u}X=(+!pw6)mb!%OW z>To@3Ap5a49>c)PR~gDppOycN^qKGbo1h#L4;)PxdEamOwbs-L15 z`2AmL0@?$OQOB(l>QanFH9QH+;w;p;y^ET`2h_Fwj2eh{s>_du8fZp~=d*YfEX&e0 z!tCVFp2kY*{2wEr8J@s=coj9`gwx&T%81&vB~VLU6C<$)>S;OO;x{or@q{zn3RFU^ zU^CQxqCKjgp{QrZZ|Kvt{6s)Y_65^ol9?`^AGI>oP#u1cn(+iw!xK@vc{b+3!{!&% z?+J4M;U-cGwIZ!7-UD?f9sURBU*~j!6b1&7wR#*ZkEsO=0vmIxlV$*mOr9q*b8+G2ckM0hU#b_XK)h#J6Ym+tf2u#EdI!SfQe``@DOWU&^wiaAl~ zg-{JvMeU6`W?NLlKJ!=9wV#Trx5(1BTKrHTpYwM$5a8G9<|kA`aTdCYDNyn3s0Is} zl`OxZ<##ZDGKXPv%KK3Rc!L^nj74rQrI9-SxhKJ~9s?ZfR(;?<)^EcE|PQ?@K zvbm^h+kJ^EKM*zG5f-0l@foOVzQ{a+K3(%?1T?ecOWhwnWj2SPI=YFaDjmY9gCaoAa1?9disq2{vE2_HkcdxqFz3iS^i_xz~1^S5Pz-vIXw%i z;t~*f4{HTGKL|w{isLkkWVhP<*kI%uF8RuL4 z1Zt$Ou_4A@?;3248bD`M!@Vp%7kFfYN)Pz1@;P3w?+Uovjr7UVj zt55|tq6T&fGvZxKkG0K}3rB6btf))X1+}DoQLk#_Q7<+#EPV-Tg?FLazl#w%|DOpI z!;IVAk4i1E8S#Hm1E{ydRrnG0&=`n%h&)E^@-#c0^HJr$+2t&Sx-@mo=9b~eP;B<>WL0z(ZdpQ5) z2@Klf5)Pr_N%y*nO>hYD1*ltT_I>UKH5S_te~cPv?fve!wm`*)V_BSx8t7Hjz+Rv> z=O>FtKj3pCO?iyisD;@RHNz38hR0cahB?>L7n>V!Am#RA6fA$x z{Z6=wkAOzB*F1rG23$sU@XCCL>gcN(=a7r1K$Xj6<}mY`MaQi?QZ^p>Te8=;Qr&8 zX&IT0xPp051xi}HCaU8msC#!8vkz)uzn}&%%AAYpaI3`+nYYc4X5yo&$N9@aAOjW3 zV`prSy60a(-DrZ3xu1~2P%|oq>Y%Jy%WP`4M-8lxImrAKTarEr^%(wu6?Oho9e4Na z*5-IrM_W+8(b#SAlqXzzI@AC%qgE=PSq^mx>Y<(i?XeS1!tXKaNms8mY5?8Pr;dIn zpr2N!qZ&AXTJmeC4ql>OMm?w8QWr%HpdPBB7O3(=P%AbW)$STpdz&r)B&yyW%#JTl zasI0lNPXH}f({r?d;+TDb*KvaP><)+s2@aLp&qBm zSOssO2AGXUqBd)BEP?fX1oWyj88ySFs1e7$=$0-aYQ&jQ=>@SHmazD0)W9~O$~{93 z;4|u1J7Jexy#i)&)QXlfeYGv{y%p$Sb~pQ4{y^!bgk8zU_`#8dSN$ z7B7V=-vo6->taqsE%|0t`6uRU44nV>1oX3;=Z^g~98`y&P&0{h*Zstj0`*3d19gut zYF0*>c;USYDq_-W-twPr`v&=;WNwkJaO^( zs1CzXH=;tQ33bHW*aLM*7FhZo)C3PB1NV6@5KzOn%zsb=i2l^gEE%doI*WgU>YyNM z;3ZJ?o1$*vU9k(!K-CL*=Kh{gO4KuBDyseS7)|H@J^>Yc7D(W^Y;o^%cMp$?>aZlv z!wRVKPtEtJOAzgaD;FQNBFRwi5jiZq9_lBn#;BDYiUoE47ZcD!=ML&=nEj<|s2{4M zL0AgMp+Dd`nt7sE?$Tw#9>go6X1WbEkPmnQj{dT03w-njPCpvp(022dPTuKF9!zcSj8pxxgC zwOc2l(pRGfvcuwsP%jwgQO}0Ur~xJT*UdCJs(gObL`s@kLE9C_Ad7(x_YXPuK|8pxzDRy>mZ=w!xdkmtkcb``*1*T*B7Gzxm+G|BmYC zDe74J-V@L@jQHq&YORVIc>`3z_NXQ6W9cI>7V+tpKOZ&FHK=ljP&2!P>fp7dr~Tws zDi^B#0xs_JR3@N~YMD*V_Na#Ypc)*DxwC(63~c_1QK`%nfJ`6=HIA+en2%G{fjdJ>Uf5tc6$@l@#}{wzY(=Z_F4QW zs{SR+sPlh^KnTYC>IRYw^;FD?TGAq@KgX+rYOonQgZ7RA8N|FtdSd(=wwK{YTMHGl=Ejy9N=Ed3*@d~B~X4XS)3YM`Z1Gp%m% z1{QB^@y_00U!XvL%NT|l*?3e#^Ud{^zu)2~Q61d0_%qbchM&!-L2jlYsHM+@dN}1k zwci}IM|ubOf&+i#GJ^!o&=l0AScqET13m&;+B>L@qegWF(xBdeieXzEfa>r8s$9HiE}j|HK~2<( zOhVmg=AvHJHdy+8)CA9|cRGBKa$Hv(F+PuLQ(#taVp7(Nztt-hdMy%NWAGw+O=$p}=v z>8K75p~_!EP3Q%-$HcLN19!k*Py@J+TEV|Dp`QP7;$ zgZHS0;)S^KsZayRgesrk;>A!mnrf(5u|BAJi%@%LJtoolj~UknfE$SyM>X`;{DP_& zHJ(dPh?+qP)Jo*WW>^kYZa%918q|O{Tl}QuUqIEni#|2x}Q399$H)>}5w^@PRpUo_T8bBk|=KB%VPH$8{qs+NDjQG}soPUk5Od_|04N(=^ zqGr$^3*cZ>!&^|N6L+8*Xptpiq||&rF4CHw#kV=gCDt zOIgwiR7NdbeOJKK5%oSl09Elh>e9SH)q9WHjKQg#-=NYPqRO|lcssKPYQR5Z;NSll zZ3)v+6&6~2g}K!{gc{g+i$6uJzfpfN7f69>Cp~H)SuCChHSofydd0D-{`|c< z0Uf{TY1}0^Vcy17q`yHmxFF13v*qRiRQgTS9q)k|C#{=dBr3nS#mk`vR2y}Q8lx{0 zfu9NJ+Wv)_;Vx9g3pgIHE1!XOP8aN1LVR?3w@C|xyQf}f)TUjCdRe`RKVY&9!GXWH z{4?&L{z+^@`uI%2o_F{z6X$<4fmad1fmf#inS%qrIGB#QMwzp?f#frbVi@UVP)pbn zRj#}Fi#Y~!lRgbKp=0J93|ulZW>%kTAVpTU^qEiv3R%38#T%m@#~rX2F2$S}o-H`= zqg5STu6Xuf&s=`lbQ-mSy>hyC2cX&=Z}HjY8Xp1Ofc9I$O;p9daTI<)&2VTg*T8S6 z_@AgBu~wkU?=laXCs5_in|I8YsDXU8xGyBq6-c76C%3aaYRP{=ZMI3M0nWDg0@MIjAp`Vzb`j96@i^+9{V!@0MdWbh@mi`p=Lh|0?5&7Ie^P)~iS=6!XZ~lP^_59ySKpmYyb#U2yVE%*J3*P)L|5tM= zW+8n(R>hN+p1Oc5m(?s_mNjdkCfXDO@Bdv1XfyqcTGH{TflM5BpiWg=RC|Mb1XOVtR>$$E4sKY1`>2KP`CEJMP0j-Py?E2`j%N>8>-+j^O2=TE#@jDK@Bt`YJfRW zdm=xo!>Xu(evi6ebg=jYRJlJ;173?-f%C|o^Lbtn(3_06xT}~H^*k?v+3*Kc!@r?A znuU?L8a1H1=5xz`XT~n!%BL|SQ8O=#8cwb01T^#hsJ$=+HNp+%Nz{xVp$78O z;-66sMk(n`Y-TX?qUx1J4YZ2I>!I3dEOq|d63`v67iv@df%*aDPgKForCdY#Fc$Hm zs0J&bW>O0^kT$6Dy)AtRY5>zLeU7;tYmvSM1Hb3L%q;kM6GC?vhF1}n_0-LP?qzrx8Hgs=-jq6dzeGbNvN4F zK;1yLS^O62S1xZYo}`?MXTzkVS2CNKz0I*0c;PAM3l99pVY^7sKqi-W{$;K)ccBJ& z!n|p|GJ`6(nI=L##B!rLXo+gqXO1zan~Rj8-~DbtU3*VOx1>=}OPK(58ZuyXtbw|w z_06WJm1%A9eyB?~2vvVN>Jlu+x_Hde(^qo+`0^1@h0>@BjZnWX>x4S5BXK`2vHWh8 zUH(wirkjl#&`Q)^*npbxUh}kh)AFCA%71im{{7b~ZUFI61IUcp-9^lDs2SEkRcvkP z9Z)OQ%hLOz1~Aa_$69;}s@=aVz7e$|`vP&!-(Aaig}P>6P%}$e)peK^)o>&#y*SRo z>X!Z-)xk$IZZ#KAXXZt1#tNv8o1!K%07G^DhY-kwvr#iYfVw27P#r%;Rd{QDvGl0b z-3lZ`OM0DRel}%w6t3Zl)%%d0VJ&9-sMuE2JkJa!Iow( zR7WE%e=4fM`KbEKP%F6sHIXx@`cEzYE9%n4tjYQRmOw~N*I+ADg&r6K$Dkf2lPrG= zYCuO&4PHbYw12n%OLKJ`N z4P3#NsEWN&9S^biXmbi`27g)n0IJ+s^9pJLx6OB`_ldX-U3y^*{Qkct0d-U#wTW6` z;P>~aYYcI$C6IMKy53JdY}W&3ue%_$_K8-X^Ym0#rOXDnGNO=SI~p)P(b|j>=m? zL)7m50ks!~qB{Nq1J7%V??N?j5Y_NG%fDgiA5r&@7)^scQ8583o(wghw3eQ$Dd#^n z3HeD-gQZaes(~6v3)BDxqAHF+4P*+c{91Dts@!o@N9WAzsEIs4wd?slIPlkZ5@8df z!+Zp;5V(tf;m&5R;UAj2Yu_Dp&WEEKeuBC&{e$Z8lNsE?br8!;jmpo38fXEFmqk6E ztDq+0YiJogF$)R(Q8S;98u>m{1J^D71a&H+v~>B|QTgS}+NewNJ!$}LExn65z|uz{ z?ep({5YR1lF^1uC)KVWeucI1#j>GXCs^MQ+IftW8!C2HWoQE3tMa+S(P{%T?wTqWU z#k*mI-v1{P(DB)UYUnZQ_1N=+Yp^ydeHiK~IRmwHS5X6fhgy*sZCpFK%tom6VW|7S zaxB73Pg;7M_N+Ahd-4*{F9_;jP8@A+LA`!IL0yu_4#9z^Wld~Kd;zw?XdQzC|K3-7 za~Eo0$vU|SM4%?v2sMylSOphi;Q9ZL6^PZ@%`_jXLKRenUZ?>~K`s3T)HUC3@gt}X zPn);R*OnjD#g&hVDwh=1PNpuLe>IeY1YNVjmQe?_)Zd|&dKzZO_1FOKp#Ds#Xjj+p zWK@Im%q5n-8at4_1GR^;cMJCX;pMoa%Af1*bAJ|dwYz&k$l1eXv_)0uV)n&>#E0M# zjMmd_#?{!Fc;Q~|@x2&TFKutvPF5^WJQ6k0KByHKih9OO^bycfpGK{~XH>zYeVpND zF3duDG1RVZW9bu7oAXbLZ$!Nj?L)2Hzh=UpTtDBSHf2LpKfZwkG@`NQALeq@Otzy2 zco5a_->89R=<5bj40UH~k80;XDvN%e^Q+_x?5>dRJkIkb}CxD25R7qQJb+F>ef5f^4AQs=l@PCcm~zLBh&z1 zTDoVDYbYtIqwJ`G6hf^~RkO9_|7?y%wKD~EY8G1jJZk0c53(hEX&E2PSc6@~l&D>w z6?JSHp-#hKi!VnFP}kP(p#BbeFW6N&!~bEP%E&^3amAE zna9m5sHJ^~n#mVby%L}Mh z4%7e(qsrB>^v-5~EKT}IRQ;otegOIjaQuQ_T32B6v-gQ`CpHL+!uzQ;U2+RpzY5;UVvsD_gK>MBN>#ZjB83hFox zLaoRe%fEu^@F8k|A5jAd8skie8bEqfKLt_!)EdM5_1mtFBxs}~Pz_DQw73xU$8(2J z74M)r{)F1i8OFMXYoI!AjcTWZ#eYH#1YQ<(-{$d{ijbs(7;xY5G`2aQYe^3p@ z8t39EQO7G6s(w?{0Q+Kd^kXA@gBob9@vi;;sCpw&1NLnopc!ws0;eqFx_J-v>-ndc z480TF505EO@dBuU)j+lLz1a=5*@mJz8jt#+b24f`>yQciJU0ob;xp7tJ-@k;CPl@= zQ6nydnXnCNrejg{7NE*)My>_S*EqpMH;_X@uH`M%fL>Yri^bzkb#J+$$e-PKCYW1MiyzCq2XuQ>*lKO5`gGE{?6|8VJXQ0=9#cwHPq zyg6z!-$zX}v2T|9YjcHAzn`Ck`c35%)Nai<+g-aNsJ+n*o8j-M0lcyFpgC@U8Bi-z z0JTyTQ0=wEp*Rz@0^xtU-zWHT5YRIqKWYYraUhmLb+89#;7QBxIM;R512v%G<|6Zm z`3(DzA8(!;&J%+R`ty0J{^dqg2dk3N#Nvz1wWxt@M-6D7c^dUBxPe;A`19Rq z$%ndBrBEwT7gfKN#oJqcKa8XEKh`p)TgDR9X4!7uM_r1z3)}!Qpc;(C@>mcXpbxdQ z7f}Pfjrytig~j78boD|}mnJ>N)A=v109HrcK$@aD7-Wvb;a+Z`7Eiu7*t3QFFjPlZ z%!jCl)f?0~kGI6V?`Ov1#2caZ!Zg(T!CCZWCy;EZ>#!_pAXUspW_z` znGL80kD&$>f0?L*;izU25MP%UERzdr_P3ti`XOI(}ll zGo!9^=?PK4m<&U$L}pY+#Vx;<*%Z}od&}>JIr;ye@C+r;iHvpY-JgVJ*x-IO(h;>X zi?J#`Mm-Y>Yzz+k|NacXe#Bp3A8fxV*wYN}qV`0&&2B)g@CV|3QT1?x!3 zKbn9#I)TkF-qzs2zgpV`TM_>Yb%Tku&0XW17`UaPo^~^FJbpwC^w;e!{}Sr4n`nm{ zNM%$z&9Ej8Rh<4k=LzVc^U=(@)7^j?;vUimqBd2zUBQ9>D0KuXejfGANU=LO@DCJp z!c@e6N4+1cLd`hN9`}%{jY?mPUoh%k&c8NMlzpy1YSf*tCn|j=YQ*a?C0;>Y<9|_` zD9(QOE>{@S5^s&FHw^V`m}Txl-Ky`Pc7NgnuH9S*IREOf9to3h0P10r_#h7@?s%)r zb%)&FfZB98IPibJRrZM6y=PDz-a#F|PuL7|9d(yrf_cP@dd!t8VRk>}bJu7A3HqJy zba@qn14G3DbioZCcaaWwG{s9iqnynA!miMll9F1QA7V|n85um+a680;B` z<4~6}?2_Bm>rv68{@3>-nGgvKx7K)Fv5+Q*bA0#tpBy`@;~_X8aqwVe+fN zfq&6#H0q@?(>3>7t=g!WkHRrH*NnXGe(|^iwE{ofP`{kNJU87nu7L~5=#5&^w6}r- z|13unRL9d%muM&I5_oP0d!|AGJdUSO9nZcK?Ae5yP4`b<=Z^H3dbwDjE;KZIJLGpKrZ z9&!Fv@TDbuKy?uPvHS0W;-b!fSyXxl)PTENd?0F|BTx-aN42-mTy1Ve4S2tK!+htn zK!PW(Kvq;kWl#;(G{3|6#9N^T($nm3`GZmSjWL)M&!Bz+dW@Pt{-^F2luc3X{%mF$ zVS(RJ4bL#=qAtl|bEm)gUx@<$Z!vdC(GZ`bn*NAYG5nc(ymUe3A3?Qv(Y#^a#{;B4 zLzP?i+^ykm)Eb>b4e>cD|DB~reZg+g)l2ijWqgBL{359I>Zk!VMKv%C)xdajCTc*7 zExyX!j=HEvPzU=G>P{5@rK?{G1MR4%-51$2=U>-6yTKuW`-i-Elu!qN|ClRWF zBp8Nas18b)RV}|E<{-T#YNiuVD>cXR7ou)~zSS1EfNJOys$k52obgdl_++RV9=`0e(WgUq^f6OoO`P`h) zHL=u(V9#d!4Rs)^edOJVhWx0NS^mlWM;(W8GV%VO-KI_a#l1-s#f_vdMGdg^SNAlU ziVgI%I8Q(`$;p4uscV%VFJgHNyoh_F5aLA~RW1i=rSh7k%<8E6jV#_CBZ>FH6u8*j zi@Kv+M_)LBHw3h#DT17-Q5~hj;+Pq~#WtuF*pAu*QG%lcexzxLdb8+_dd{vwy_P;V zD@BPC_7d1-YcPCY&@~`EmC*c$c4e%cfEOE3bfp;E1>KtE1?e@o*2xCQe zra|39b7KuGgL}}A`LKQrw^C!wX;_l<1r~o8!xts6x!#bV8OM$pC9s(iqIPL2)XLe4;}>bQaVz4-&`b+V(y$DtaU zWa+C>13YW_4^RVnZuws@Iq|fyUHgSl`6W^HYMQ>5meI=+hM7}Q4JmWI5#WJHNmfh0xm}M-#4kp(5ukQk$4yXzPQ8OK3>GMz>Z$gcHKWb$zS^7uR z9*GeWCGZN96jiP?YR2_Y18R-+uq_tG9T<39{6Ih*CynclOKQ|Lu7OJLgxa+|&DoZI z1cOLFjXI|1Py@M+I<8Mq^hO@|pGOVk1!^V!MXk^W4E$}8kOXemhodUyuy|oCLcA>M z-u?@!f#s-jtIZv#4vv~Z3;3#o~j_ z8L0B>P{(I0Y9OakceERp|F8KObq9=+$hDUrb;&BBCQ>y~XLrqNlAs$&Q?s-Ai#Y+g z<$GFCYcJ|kCAxDIZ{{&*bw2TVgrn$M@(IEr#1HVzz!T~qn_{;A)$*_`ZKCp%w8mkd znanA%=EXUKBCmE@~^VR?1*eOQv-)A4~PN#kv|N9jY3GPuc79~nhvM_e@ zN3Kld9qTW*GCbrOX`QWRYJbm_Va=BjOa4D?9k+4(K;w@seFWj*jAW3-W7A4h%5`Lf zgK;u>t0+^7^uzRco^NZyQ(3c){x>W0Za>u7xeY5#qa z_?xT>O|qDrX5?hUr?k1BHZ%LjtP1xQ@vmA{#9PzF7QdajP3H~CoXxiv75Y-(NA&vBtqJoM@|RkZ zD9KvollH%#NB*{JB2rW)CpJUs&CvO`Q#^}lx-s7Y{zYrTy>K0{wmnpfQwtlx7FGab_K3>ZCqj>xq)`x`j zpxyxDL#UI|e`Gy65tJaHF|NFe4_CSmCqU>pACFc^JPfIf_Zzh)IyO%V5zG0ou zU~7NJO`(M*lT)5AKhN=xps>pbU&5u7s7y;w`KD#8UugY2-(rLd)ALpTu1(4E6(SVI zXk(GOiS`>Y(|MGtLJJ*;S0bO6a?f_YzmZ;r&Dho z_4ZJw9wQq~`~`jJ)6PadoBWxy+X8P;N1s1w{|TeJPMse}`@lCT^#(CEeeP3tD&JG2 zEu`)YzSH^Y57^5yTRsUr$B5|n(|f3#5R3cUZVgQkLbcWuO=QFP!9Q_pM8-O#q-6j; z8$h55{)eAcS;ocek_uIm&6{Y6Sw493c+_avMvh#5)y=kMwu+x|{Tq zw0nYYZt4~#UV^VafBM^Q4^QxbUi2wV?iO0TEjdAA6!^rzSn;eF#TwIeigjJ5lecJtC^ zcj8lM|1_&~itrJ>`jw|X7YXO^kJ%CGJ>*}sBg{M8e`rT&%qP^mL+g|M&vvvdG?Y+s zyH>?$<9|P8DXGs#@>7%7pZH!J%X-E0kK7qv>>NGl^Ntd$8O=Vv!$^BXsk*fMJ9+mh zJ(#rKfs!0@(o>K>#s6q$sQ0=*>aOr4e)7lJY9GMO^mN!?Y*#XGUw^$_5lP}vXEt^8 zX+nDi`5yC6*cBSJ5;gnySM3TbG?h?OEAx=?9AHJ0@Eu3mJ>uWehCU^1Rtmo-eU3lo z?(mE&$el>fE2yy!-%@HLX?dvqfbVKbZui&Povhw^Qg4wPgYP{0{FSk+AUB+v*C?qs z^RC1{@NHs!{%xwyfb$x)NS^bgw5~bL0 zV^B+}$W2M@zX(6@H`x~+5=6QGKK1=$_GQa>-A1;BvgNF`O{5*9*ilB3j<8=Zn*Nvj zq7?e$f9h{$hMyS2?~F&E+^o(y+-R*VW+c%`d&k)G_;c(J_b%|)+8-8qj5hR>^<(N* zq-=7^47d4xC4H97pflwfkQe5kvp-RjXO!+tPX|ezMCyLNKib&e+X#-4mXox)j4UH# zPeAMUskec2eWud#_vC*^-uL7srrucE+v-nnAX$n-gm&@O=Y+MW@b~^w2Z|JmM$T{4 zFKeSy&UdtX*{*Xr(o4|SXB*QK;#Dbg$-nME8Q&{n`DpVZJ-4;>DMgDhsQs2&o0xwe ztJ#J4f1jI_>CShJCA1^&6m@pnD6SA6M7viglK_8bL|?4FkAB`#ueR6Y?|m?J>iD$3 zp8Q4BE&V@zBvJeRRRM-U7v>oC19!eH-7Nuu1g5&;lhf0LZ zvvKTZ{FD714~2T8_(vX!@J9EqI+V;C?mu)WPe=jE9Je-m`C}d~Qt1FGbr``GzAXqx z(B>1Zie0Cw#4izkLa+Mdwb~!(r9R)7)QL{{H~uk)lNEYED_bcQk5aR#)tnst;^Pdh z=rfq_6>1!_)|A$gawq-Q4o5V$8CTz^}959A!!opGH0X zb3;!FU$Ysj?DQBOf9Inqyx;go9<9K?spvm_G<}Y*D#SONb+C|%K~zdZCxcXrPZAs0 zdVjiOVd+K_J5A}6)^s@ConW|e_zvXzufO@R(2S>Ovo39IqjVNZJS614L3qv&Ow|Ix{?)CUONQrp(oT*}n6b&c)Mc&b3Y36$u^2=vKE?j%Z1ARLWa z|1!$*gjd>Ji&9pfV*UxII)`kgbUbqMQR*ju$muY)R*uu5zBQB@LhUk?982Cz#^|Li ze_zSdmN5U~sOJ-9K9Dz(u~Z`5lJIqU9#5SXScP~$%Ifo&e6Qw5T0_EDu|IihXlE$# zueAMy{>~F$5|zKLREq_PMk9Slcu3*fe3MZi(x!2gIDcgB8A8RLe4o+DBpPbW_XocE zyr6CqzB_HPl=hT*UuoAvo#Fl*XCk~){PoUMDOR338^{|?RxjFJM?c4{9sNm4Zt9Gn zt!$LZ&Nm0&KN*icTm09~gn38%Kc5LpGKhBdDbM)J5pG0VyZw=8^JH9Ytwp2eVp8?V zNm@%LS>VpyHpHj6Rz z`kI>g8SiMjHUs>x&WEMzLVw?qqfcy`-ATfSshN|KbN!JQ@_2*&tuKT{mZa<%zEepr zOa4)MyhcygiPs{12j6vkgXnE3JvH~QyHFr%3R=&rXGE5!HmX2p{LfDGVqpoht{`kDAJ!cEDW!)P;;cF5oLVzL~^$mv5)f7T`eZ8o->+9nRXDWqEaA%u*u%dhM5u&N2P6`zn6WjIWvcQ-se2ebI!Yy$sce@n0ZB)Q_>bj9Siz$TF}t`cEm%T%N1dedbV4q$i_V-RT=N)6h(T;{bb$CqI5(eB7Cl z=Yv0tEq|xHGU>T#7}(1=PsMGc zauI6JTDd2^d)ej}Y_gcijcT*4aE_qi2g0Wm!INs5L(f?{M>cIHrAWsJb%aW*=IB2^T1jm@7;=UMUu^NR6!64njQ z_bR_}YX47A@0meene$lDz6I#?!k*#LS z-eSd(wTx~@JyTE=9Q&%r(m^F1(L6--$Q)+Z;y`;=Y}xl~+@Iy1in;kOv1%)~FI9Gs%CJ4b63 zuI}+#hN$Z<)`H?}cW&k)Tx3jxUrF-T1%LCC(UWByXVx|{M%u^$T-T9*Vs^iB{U_?J zs8{mLKs^p#G5v3t{4BR@BR{3LQr7S^^cnPj2&bs)ai%uIz9~-jWS83EW|400)rHqz z(dl%%(X@l_;EpoFYW_X42QEX0pGnHdRQ(cB5G&5VAN0R4FX6J6r;O#Os@eECQpW8l zR)NV^Q9grzmpBlcX1opi0K0rkUZ#Eqhw0?!F#Ex-a32|CP|N~f%f7pDbkmPe|2x^f z_2&rikHKYZSI^bxM+ukZNIgq6T`aU7EGWUt4dZ25mc?A*Uodc&#bxfpys zzQ1SIWf8S4l+63bv&=G94L|PC>z-}bVlvC7ONEw~*7Ref?BJ?w;i_ooO;u=vJ z&&@movKr)d5C@Exc%BfE_@hhO=)6Ry1nraf$XLWym)UMESf#q@X|OqL|1jKZ@Vw+P zu>E8mZfW2$(%?^E!VY!z%Dsrg>Rz&b5ssg{i|^IW-n@bd)KNTS6f@%wO4|hXFZ4sz zUKM)Cq|0UShVsmeHUN6Y^Y_TY5kTP3M{Es?+!sIb1)`@8Ei;VqdN+O1u4o39SHO&@hfz@snlhJ#*@*X{C#&9*$-vY|^b8Z<^XUU3^nSxEPI zeXa__A08X}Q4{tC@E^QWiO+C_3_Vb3$ias02?qROy(|z2>I|z4di`>*d4?wtG?GWJ zf4&|L=&l6;Z<+27RHs$@4BhPu%zwa~^oVVY-R#V_{qc5l@>E-W@%q0-Yz0nzSdm9x z7^u?yEGD%BVA*4~}w zhM(D|ZqqIQ&je%`)q)t?`zfy~|sy zw$({OthFw&{BYvK6^Wy(1`8pZpB38Ee`Q|UWWPSrJpI0XV90L=E0da7+sgQ@!M&Sa zXNFbVkn}~Lc*kU$ctlur?^=;MSsbcK9^;K|Absn1#|}32ZP;&Z{lMD!z8rb#puN&& zzInuc-w< Date: Mon, 9 Oct 2023 07:45:25 +0800 Subject: [PATCH 68/92] ci: update build version to 01.07.07.85 Change-Id: I08ab209f6bbf6aff155afed5e9a8fe007212a730 --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index d2570a12a5..28237555ce 100644 --- a/version.inc +++ b/version.inc @@ -12,4 +12,4 @@ set(BBL_INTERNAL_TESTING "1") endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.07.07.84") +set(SLIC3R_VERSION "01.07.07.85") From 241d10c637097b691f8433c518ecc29fe0543797 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Mon, 9 Oct 2023 10:59:23 +0800 Subject: [PATCH 69/92] ENH: refine enclosed printing logic 1.Display a pop-up window based on whether is enclosed jira: STUDIO-4532 Signed-off-by: xun.zhang Change-Id: I5e7c85f6590ebe1c65f957c6bcc57a969e804964 --- src/slic3r/GUI/DeviceManager.cpp | 12 ++++++++++++ src/slic3r/GUI/DeviceManager.hpp | 1 + src/slic3r/GUI/SelectMachine.cpp | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index d8871b84bd..a1839d032d 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -474,6 +474,18 @@ PrinterArch MachineObject::get_printer_arch() const return DeviceManager::get_printer_arch(printer_type); } +//BBS: check if machine is enclosed +bool MachineObject::is_printer_enclosed() const +{ + std::unordered_setenclosed_printers = { + "C12", + "BL-P002", + "BL-P001", + "C13" + }; + return enclosed_printers.find(printer_type) != enclosed_printers.end(); +} + MachineObject::MachineObject(NetworkAgent* agent, std::string name, std::string id, std::string ip) :dev_name(name), dev_id(id), diff --git a/src/slic3r/GUI/DeviceManager.hpp b/src/slic3r/GUI/DeviceManager.hpp index 56c9aa89a7..700745da67 100644 --- a/src/slic3r/GUI/DeviceManager.hpp +++ b/src/slic3r/GUI/DeviceManager.hpp @@ -471,6 +471,7 @@ public: std::string printer_type; /* model_id */ PrinterSeries get_printer_series() const; PrinterArch get_printer_arch() const; + bool is_printer_enclosed() const; std::string printer_thumbnail_img; std::string monitor_upgrade_printer_img; diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index a4ca561443..4642a3a819 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -2286,7 +2286,7 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event) for (auto warning : plate->get_slice_result()->warnings) { if (warning.msg == BED_TEMP_TOO_HIGH_THAN_FILAMENT) { - if ((obj_->get_printer_series() == PrinterSeries::SERIES_X1)) { + if (obj_->is_printer_enclosed()) { confirm_text.push_back(Plater::get_slice_warning_string(warning) + "\n"); has_slice_warnings = true; } From 1c0e3e2e96835aa9f27926ac8184dba408c14e92 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Mon, 9 Oct 2023 13:15:08 +0800 Subject: [PATCH 70/92] ENH: refine open door printing tip jira:STUDIO-4532 Signed-off-by: xun.zhang Change-Id: I887e6b2bec90facbe9722622be4d7e7d0ee35796 --- src/slic3r/GUI/Plater.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index c9f713d708..a7e6dfd0c1 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2847,7 +2847,7 @@ wxColour Plater::get_next_color_for_filament() wxString Plater::get_slice_warning_string(GCodeProcessorResult::SliceWarning& warning) { if (warning.msg == BED_TEMP_TOO_HIGH_THAN_FILAMENT) { - return _L("The current hot bed temperature is relatively high.The nozzle may be clogged when printing this filament in a closed enclosure."); + return _L("The current hot bed temperature is relatively high.The nozzle may be clogged when printing this filament in a closed enclosure.Please open the front door and/or remove the upper glass."); } else if (warning.msg == NOZZLE_HRC_CHECKER) { return _L("The nozzle hardness required by the filament is higher than the default nozzle hardness of the printer. Please replace the hardened nozzle or filament, otherwise, the nozzle will be attrited or damaged."); } else if (warning.msg == NOT_SUPPORT_TRADITIONAL_TIMELAPSE) { From ce40bb2ecfa7abfcdaf01c948b539929478f1b3a Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Mon, 9 Oct 2023 13:19:57 +0800 Subject: [PATCH 71/92] ENH: add translation jira:[NEW] Signed-off-by: xun.zhang Change-Id: I241470bbe5e080173419715caabaa624d045ea56 --- bbl/i18n/BambuStudio.pot | 5 +++-- bbl/i18n/de/BambuStudio_de.po | 5 +++-- bbl/i18n/en/BambuStudio_en.po | 5 +++-- bbl/i18n/es/BambuStudio_es.po | 5 +++-- bbl/i18n/fr/BambuStudio_fr.po | 5 +++-- bbl/i18n/hu/BambuStudio_hu.po | 5 +++-- bbl/i18n/it/BambuStudio_it.po | 5 +++-- bbl/i18n/ja/BambuStudio_ja.po | 5 +++-- bbl/i18n/ko/BambuStudio_ko.po | 5 +++-- bbl/i18n/nl/BambuStudio_nl.po | 5 +++-- bbl/i18n/sv/BambuStudio_sv.po | 5 +++-- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 20 +++++++++++++++----- resources/i18n/zh_cn/BambuStudio.mo | Bin 267174 -> 267273 bytes 13 files changed, 48 insertions(+), 27 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 40ad7d1f59..16f10329c8 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4244,7 +4244,8 @@ msgstr "" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 0b83589247..541b48c56e 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4559,7 +4559,8 @@ msgstr "Wiederherstellen" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index f057b915b5..034954c367 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4464,7 +4464,8 @@ msgstr "Restore" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index ceb066dcd7..602e67f5aa 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4540,7 +4540,8 @@ msgstr "Restaurar" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 2e847a61c7..941fc87831 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4533,7 +4533,8 @@ msgstr "Restaurer" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index 91209fb274..d6e1aebc95 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4508,7 +4508,8 @@ msgstr "Visszaállítás" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index a0aa98b1d2..c02cbea279 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4519,7 +4519,8 @@ msgstr "Ripristina" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index d41ffd4d68..e6d3ceba00 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4382,7 +4382,8 @@ msgstr "復元" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index b0f380c419..ff1f1961b8 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4429,7 +4429,8 @@ msgstr "복원" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 59b5ba926f..3f92455fef 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4543,7 +4543,8 @@ msgstr "Herstellen" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 613f7b0e4d..b48a75cc3f 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4481,7 +4481,8 @@ msgstr "Återställ" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index 150eaad6be..c67db588dd 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-08 20:22+0800\n" +"POT-Creation-Date: 2023-10-09 13:16+0800\n" "PO-Revision-Date: 2023-09-18 09:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -3802,7 +3802,9 @@ msgstr "清除" msgid "" "You have completed printing the mall model, \n" "but the synchronization of rating information has failed." -msgstr "您已完成打印商城模型,\n但评分信息的同步失败了。" +msgstr "" +"您已完成打印商城模型,\n" +"但评分信息的同步失败了。" msgid "How do you like this printing file?" msgstr "您喜欢这个打印文件吗?" @@ -4354,8 +4356,9 @@ msgstr "恢复" msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure." -msgstr "当前热床温度较高,在封闭箱体中打印可能导致喷嘴堵塞" +"when printing this filament in a closed enclosure.Please open the front door " +"and/or remove the upper glass." +msgstr "当前热床温度较高,在封闭箱体中打印可能导致喷嘴堵塞,请把前门和(或)顶盖打开。" msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -7521,7 +7524,9 @@ msgid "" "The material softens at this temperature, so when the bed temperature is " "equal to or greater than it, it's highly recommended to open the front door " "and/or remove the upper glass to avoid cloggings." -msgstr "材料在此温度下软化,因此当热床温度大于等于此温度时需要把前门和(或)顶盖打开,以防止发生堵头" +msgstr "" +"材料在此温度下软化,因此当热床温度大于等于此温度时需要把前门和(或)顶盖打" +"开,以防止发生堵头" msgid "Price" msgstr "价格" @@ -10297,6 +10302,11 @@ msgstr "" "提高强度\n" "你知道吗?你可以使用更多的墙层数和更高的疏散填充密度来提高模型的强度。" +#~ msgid "" +#~ "The current hot bed temperature is relatively high.The nozzle may be " +#~ "clogged when printing this filament in a closed enclosure." +#~ msgstr "当前热床温度较高,在封闭箱体中打印可能导致喷嘴堵塞。" + #~ msgid "" #~ "You have completed printing the mall model, but the synchronization of " #~ "rating information has failed. \n" diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index ea316d13ecaf210ed2d13561ae35927e687d8010..753f54b04006ab424e888088a626e9d8ef1f43a7 100644 GIT binary patch delta 26732 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 delta 26704 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 QFFLq=+_rmrg6SLmA6`XMHUIzs From b293346272384b5c800b521ca9672076faf68f61 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Sun, 8 Oct 2023 20:46:37 +0800 Subject: [PATCH 72/92] FIX: The warning is not translated that nozzle diameter is not supported in old firmware Jira: 4675 Change-Id: I6045dd33f4821ee7dd11bd8782f8c6f9b2a4010e --- src/slic3r/GUI/DeviceManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index a1839d032d..7ed9466b4f 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -4151,7 +4151,7 @@ int MachineObject::parse_json(std::string payload) std::string reason = jj["reason"].get(); GUI::wxGetApp().CallAfter([cali_mode, reason] { wxString info = ""; - if (reason == "invalid nozzle_diameter") { + if (reason == "invalid nozzle_diameter" || reason == "nozzle_diameter is not supported") { info = _L("This calibration does not support the currently selected nozzle diameter"); } else if (reason == "invalid handle_flowrate_cali param") { From 6e646878e563d7bc790262256d9db1029dd235d1 Mon Sep 17 00:00:00 2001 From: gerrit Date: Mon, 9 Oct 2023 14:34:49 +0800 Subject: [PATCH 73/92] ci: update build version to 01.07.07.86 Change-Id: I449b349672a26a190a7b36addc9015cceae14b1b --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index 28237555ce..b88659ef23 100644 --- a/version.inc +++ b/version.inc @@ -12,4 +12,4 @@ set(BBL_INTERNAL_TESTING "1") endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.07.07.85") +set(SLIC3R_VERSION "01.07.07.86") From fa71b9600bd9d2fb0a51790cecd12333b3dcf67f Mon Sep 17 00:00:00 2001 From: tao wang Date: Mon, 11 Sep 2023 20:06:33 +0800 Subject: [PATCH 74/92] ENH:update text in auto refill jira:[STUDIO-4344] Change-Id: Ieb1f40e03fd4a266b768f8b97e28328858fe63cc (cherry picked from commit 621d4319760cea15e224a9927768bb643b852139) --- src/slic3r/GUI/AmsMappingPopup.cpp | 17 ++++++++++++++--- src/slic3r/GUI/StatusPanel.cpp | 8 +------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/slic3r/GUI/AmsMappingPopup.cpp b/src/slic3r/GUI/AmsMappingPopup.cpp index decae46714..1938fb6d22 100644 --- a/src/slic3r/GUI/AmsMappingPopup.cpp +++ b/src/slic3r/GUI/AmsMappingPopup.cpp @@ -1163,6 +1163,7 @@ void MappingContainer::doRender(wxDC& dc) AmsReplaceMaterialDialog::AmsReplaceMaterialDialog(wxWindow* parent) : DPIDialog(parent, wxID_ANY, _L("Auto Refill"), wxDefaultPosition, wxDefaultSize, wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX) { + #ifdef __WINDOWS__ SetDoubleBuffered(true); #endif //__WINDOWS__ @@ -1331,9 +1332,19 @@ void AmsReplaceMaterialDialog::update_machine_obj(MachineObject* obj) m_scrollview_groups->SetMinSize(wxSize(FromDIP(400), height)); m_scrollview_groups->SetMaxSize(wxSize(FromDIP(400), height)); } else { - if (label_txt) - label_txt->SetLabelText(_L("There are currently no identical spare consumables available, and automatic replenishment is currently not possible. \n(Currently supporting automatic supply of consumables with the same brand, material type, and color)")); - label_txt->Wrap(FromDIP(380)); + if (!obj->is_function_supported(PrinterFunction::FUNC_FILAMENT_BACKUP)) { + label_txt->SetLabel(_L("The printer does not currently support auto refill.")); + } + else if (!obj->ams_auto_switch_filament_flag) { + label_txt->SetLabelText(_L("AMS filament backup is not enabled, please enable it in the AMS settings.")); + } + else { + label_txt->SetLabelText(_L("If there are two identical filaments in AMS, AMS filament backup will be enabled. \n(Currently supporting automatic supply of consumables with the same brand, material type, and color)")); + } + + label_txt->SetMinSize(wxSize(FromDIP(380), -1)); + label_txt->SetMaxSize(wxSize(FromDIP(380), -1)); + label_txt->Wrap(FromDIP(380)); } m_scrollview_groups->Layout(); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index b7cab4edcc..daca398cfa 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -2412,13 +2412,7 @@ void StatusPanel::update_ams(MachineObject *obj) m_ams_control->SetAmsModel(ams_mode, ams_mode); show_ams_group(true); - - if (!is_support_filament_backup || !obj->ams_support_auto_switch_filament_flag) { - m_ams_control->show_auto_refill(false); - } - else { - m_ams_control->show_auto_refill(true); - } + m_ams_control->show_auto_refill(true); } From 440185f12db7313463f40b2c5473bc5f5fa7dcfc Mon Sep 17 00:00:00 2001 From: tao wang Date: Mon, 9 Oct 2023 17:34:33 +0800 Subject: [PATCH 75/92] ENH:update Chinese translations related to auto refill Change-Id: I13efdea9032a99c17159db5815526dc850767f2d --- bbl/i18n/BambuStudio.pot | 13 +++++++++--- bbl/i18n/de/BambuStudio_de.po | 28 +++++++++++++++++++------- bbl/i18n/en/BambuStudio_en.po | 28 +++++++++++++++++++------- bbl/i18n/es/BambuStudio_es.po | 28 +++++++++++++++++++------- bbl/i18n/fr/BambuStudio_fr.po | 28 +++++++++++++++++++------- bbl/i18n/hu/BambuStudio_hu.po | 28 +++++++++++++++++++------- bbl/i18n/it/BambuStudio_it.po | 28 +++++++++++++++++++------- bbl/i18n/ja/BambuStudio_ja.po | 28 +++++++++++++++++++------- bbl/i18n/ko/BambuStudio_ko.po | 28 +++++++++++++++++++------- bbl/i18n/nl/BambuStudio_nl.po | 28 +++++++++++++++++++------- bbl/i18n/sv/BambuStudio_sv.po | 28 +++++++++++++++++++------- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 30 ++++++++++++++++++++++------ resources/i18n/de/BambuStudio.mo | Bin 294857 -> 294371 bytes resources/i18n/en/BambuStudio.mo | Bin 270342 -> 269888 bytes resources/i18n/es/BambuStudio.mo | Bin 291612 -> 291158 bytes resources/i18n/fr/BambuStudio.mo | Bin 301001 -> 300500 bytes resources/i18n/hu/BambuStudio.mo | Bin 295493 -> 295043 bytes resources/i18n/it/BambuStudio.mo | Bin 289461 -> 288970 bytes resources/i18n/ja/BambuStudio.mo | Bin 278734 -> 278280 bytes resources/i18n/ko/BambuStudio.mo | Bin 289573 -> 289119 bytes resources/i18n/nl/BambuStudio.mo | Bin 289956 -> 289470 bytes resources/i18n/sv/BambuStudio.mo | Bin 279141 -> 278636 bytes resources/i18n/zh_cn/BambuStudio.mo | Bin 267273 -> 267502 bytes 23 files changed, 244 insertions(+), 79 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 16f10329c8..8946ae401d 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2042,9 +2042,16 @@ msgstr "" msgid "Group" msgstr "" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 541b48c56e..b81d9b8cd2 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2183,16 +2183,19 @@ msgstr "" msgid "Group" msgstr "Gruppe" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"Da derzeit keine identischen Ersatzmaterialien verfügbar sind, ist ein " -"automatisches Nachladen derzeit nicht möglich. (Wir unterstützen derzeit die " -"automatische Nachladung von Filamenten derselben Marke, derselben " -"Materialart und derselben Farbe.)" msgid "AMS Settings" msgstr "AMS Einstellungen" @@ -11109,6 +11112,17 @@ msgstr "" "Wussten Sie, dass Sie die Festigkeit des Modells durch mehr Wandlinien und " "eine höhere Dichte der Füllung verbessern können?" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "Da derzeit keine identischen Ersatzmaterialien verfügbar sind, ist ein " +#~ "automatisches Nachladen derzeit nicht möglich. (Wir unterstützen derzeit " +#~ "die automatische Nachladung von Filamenten derselben Marke, derselben " +#~ "Materialart und derselben Farbe.)" + #~ msgid "" #~ "The bed temperature exceeds filament's vitrification temperature. Please " #~ "open the front door of printer before printing to avoid nozzle clog." diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index 034954c367..ed1446b3a7 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2126,16 +2126,19 @@ msgstr "" msgid "Group" msgstr "Group" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"There are currently no identical spare consumables available, so automatic " -"replenishment is currently not possible. \n" -"(We currently support automatic supply of consumables with the same brand, " -"material type, and color.)" msgid "AMS Settings" msgstr "AMS Settings" @@ -10805,6 +10808,17 @@ msgstr "" "Did you know that you can use more wall loops and higher sparse infill " "density to improve the strength of the model?" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "There are currently no identical spare consumables available, so " +#~ "automatic replenishment is currently not possible. \n" +#~ "(We currently support automatic supply of consumables with the same " +#~ "brand, material type, and color.)" + #~ msgid "" #~ "The bed temperature exceeds filament's vitrification temperature. Please " #~ "open the front door of printer before printing to avoid nozzle clog." diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index 602e67f5aa..7cb30ddcaf 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2175,16 +2175,19 @@ msgstr "" msgid "Group" msgstr "Grupo" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"There are currently no identical spare consumables available, so automatic " -"replenishment is currently not possible. \n" -"(We currently support automatic supply of consumables with the same brand, " -"material type, and color.)" msgid "AMS Settings" msgstr "Ajustes del AMS" @@ -11016,6 +11019,17 @@ msgstr "" "¿Sabía que puede utilizar más bucles de pared y una densidad de relleno " "dispersa más alta para mejorar la resistencia del modelo?" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "There are currently no identical spare consumables available, so " +#~ "automatic replenishment is currently not possible. \n" +#~ "(We currently support automatic supply of consumables with the same " +#~ "brand, material type, and color.)" + #~ msgid "" #~ "The bed temperature exceeds filament's vitrification temperature. Please " #~ "open the front door of printer before printing to avoid nozzle clog." diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 941fc87831..5ec89e5a8e 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2178,16 +2178,19 @@ msgstr "" msgid "Group" msgstr "Groupe" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"Aucun matériau de rechange identique n'est disponible, de ce fait la " -"réalimentation automatique n'est pas possible pour le moment.\n" -"(Nous prenons actuellement en charge la réalimentation automatique de " -"filament de même marque, du même type et de même couleur)." msgid "AMS Settings" msgstr "Paramètres AMS" @@ -11113,6 +11116,17 @@ msgstr "" "Saviez-vous que vous pouvez définir un plus grand nombre de périmètre et une " "densité de remplissage plus élevée pour améliorer la résistance du modèle ?" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "Aucun matériau de rechange identique n'est disponible, de ce fait la " +#~ "réalimentation automatique n'est pas possible pour le moment.\n" +#~ "(Nous prenons actuellement en charge la réalimentation automatique de " +#~ "filament de même marque, du même type et de même couleur)." + #~ msgid "" #~ "The bed temperature exceeds filament's vitrification temperature. Please " #~ "open the front door of printer before printing to avoid nozzle clog." diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index d6e1aebc95..3ba0853ce5 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2165,16 +2165,19 @@ msgstr "" msgid "Group" msgstr "Csoport" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"Nincs azonos típusú tartalék filament, így az automatikus utántöltés nem " -"lehetséges.\n" -"(Jelenleg csak azonos márkájú, anyagtípusú és színű filamentek esetén érhető " -"el az automatikus utántöltés.)" msgid "AMS Settings" msgstr "AMS beállítások" @@ -10952,6 +10955,17 @@ msgstr "" "Tudtad, hogy több fal vagy nagyobb kitöltés használatával javíthatod a " "modell szilárdságát?" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "Nincs azonos típusú tartalék filament, így az automatikus utántöltés nem " +#~ "lehetséges.\n" +#~ "(Jelenleg csak azonos márkájú, anyagtípusú és színű filamentek esetén " +#~ "érhető el az automatikus utántöltés.)" + #~ msgid "" #~ "The bed temperature exceeds filament's vitrification temperature. Please " #~ "open the front door of printer before printing to avoid nozzle clog." diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index c02cbea279..63f2c10698 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2163,16 +2163,19 @@ msgstr "" msgid "Group" msgstr "Gruppo" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"Al momento non sono disponibili consumabili di ricambio identici, pertanto " -"il rifornimento automatico non è attualmente possibile. \n" -"(Attualmente supportiamo la fornitura automatica di materiali di consumo con " -"la stessa marca, tipo di materiale e colore.)" msgid "AMS Settings" msgstr "Impostazioni AMS" @@ -11027,6 +11030,17 @@ msgstr "" "Sapevate che è possibile utilizzare un maggior numero di anelli a parete e " "una maggiore densità riempimento per migliorare la resistenza del modello?" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "Al momento non sono disponibili consumabili di ricambio identici, " +#~ "pertanto il rifornimento automatico non è attualmente possibile. \n" +#~ "(Attualmente supportiamo la fornitura automatica di materiali di consumo " +#~ "con la stessa marca, tipo di materiale e colore.)" + #~ msgid "" #~ "The bed temperature exceeds filament's vitrification temperature. Please " #~ "open the front door of printer before printing to avoid nozzle clog." diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index e6d3ceba00..30b7fed999 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2099,16 +2099,19 @@ msgstr "" msgid "Group" msgstr "Group" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"There are currently no identical spare consumables available, so automatic " -"replenishment is currently not possible. \n" -"(We currently support automatic supply of consumables with the same brand, " -"material type, and color.)" msgid "AMS Settings" msgstr "AMS 設定" @@ -10486,6 +10489,17 @@ msgstr "" "強度の向上\n" "壁面層数やインフィルの充填密度を増やして造形強度を向上できます。" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "There are currently no identical spare consumables available, so " +#~ "automatic replenishment is currently not possible. \n" +#~ "(We currently support automatic supply of consumables with the same " +#~ "brand, material type, and color.)" + #~ msgid "" #~ "The bed temperature exceeds filament's vitrification temperature. Please " #~ "open the front door of printer before printing to avoid nozzle clog." diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index ff1f1961b8..8e6ac7a930 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2110,16 +2110,19 @@ msgstr "" msgid "Group" msgstr "그룹" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"There are currently no identical spare consumables available, so automatic " -"replenishment is currently not possible. \n" -"(We currently support automatic supply of consumables with the same brand, " -"material type, and color.)" msgid "AMS Settings" msgstr "AMS 설정" @@ -10645,6 +10648,17 @@ msgstr "" "더 많은 벽 루프와 더 높은 내부채움 밀도를 사용하여 모델의 강도를 높일 수 있다" "는 사실을 알고 계셨습니까?" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "There are currently no identical spare consumables available, so " +#~ "automatic replenishment is currently not possible. \n" +#~ "(We currently support automatic supply of consumables with the same " +#~ "brand, material type, and color.)" + #~ msgid "" #~ "The bed temperature exceeds filament's vitrification temperature. Please " #~ "open the front door of printer before printing to avoid nozzle clog." diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 3f92455fef..86a9122e2c 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2180,16 +2180,19 @@ msgstr "" msgid "Group" msgstr "Groep" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"Er zijn momenteel geen identieke verbruiksartikelen beschikbaar, dus " -"automatische aanvulling is momenteel niet mogelijk. \n" -"(We ondersteunen momenteel de automatische levering van verbruiksartikelen " -"van hetzelfde merk, materiaaltype en dezelfde kleur.)" msgid "AMS Settings" msgstr "AMS Instellingen" @@ -11075,6 +11078,17 @@ msgstr "" "Wist je dat je meer wandlussen en een hogere dunne invuldichtheid kunt " "gebruiken om de sterkte van het model te verbeteren?" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "Er zijn momenteel geen identieke verbruiksartikelen beschikbaar, dus " +#~ "automatische aanvulling is momenteel niet mogelijk. \n" +#~ "(We ondersteunen momenteel de automatische levering van " +#~ "verbruiksartikelen van hetzelfde merk, materiaaltype en dezelfde kleur.)" + #~ msgid "" #~ "The bed temperature exceeds filament's vitrification temperature. Please " #~ "open the front door of printer before printing to avoid nozzle clog." diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index b48a75cc3f..014d045575 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2144,16 +2144,19 @@ msgstr "" msgid "Group" msgstr "Grupp" +msgid "The printer does not currently support auto refill." +msgstr "" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"Det finns för närvarande inga identiska reserv förbrukningsmaterial " -"tillgängliga, så automatisk påfyllning är för närvarande inte möjlig.\n" -"(Vi stöder för närvarande automatisk påfyllning av förbrukningmaterial med " -"samma varumärke, materialtyp och färg)." msgid "AMS Settings" msgstr "AMS Inställningar" @@ -10842,6 +10845,17 @@ msgstr "" "Visste du att du kan använda fler väggslingor och högre gles fyllningstäthet " "för att förbättra modellens styrka?" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "Det finns för närvarande inga identiska reserv förbrukningsmaterial " +#~ "tillgängliga, så automatisk påfyllning är för närvarande inte möjlig.\n" +#~ "(Vi stöder för närvarande automatisk påfyllning av förbrukningmaterial " +#~ "med samma varumärke, materialtyp och färg)." + #~ msgid "" #~ "The bed temperature exceeds filament's vitrification temperature. Please " #~ "open the front door of printer before printing to avoid nozzle clog." diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index c67db588dd..dc57391b57 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 13:16+0800\n" +"POT-Creation-Date: 2023-10-09 17:00+0800\n" "PO-Revision-Date: 2023-09-18 09:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -2069,14 +2069,21 @@ msgstr "当前材料耗尽时,打印机将按照以下顺序继续打印。" msgid "Group" msgstr "组" +msgid "The printer does not currently support auto refill." +msgstr "打印机当前不支持自动重新填充。" + msgid "" -"There are currently no identical spare consumables available, and automatic " -"replenishment is currently not possible. \n" +"AMS filament backup is not enabled, please enable it in the AMS settings." +msgstr "" +"AMS自动续料未启用,请在AMS设置中启用。" + +msgid "" +"If there are two identical filaments in AMS, AMS filament backup will be " +"enabled. \n" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"当前无相同的备用耗材,暂时无法自动补给。\n" -"(目前支持品牌、材料种类、颜色相同的耗材的自动补给)" +"如果AMS中有两卷相同的耗材,则自动补给将会启用(目前支持品牌、材料种类、颜色相同的耗材的自动补给)" msgid "AMS Settings" msgstr "AMS 设置" @@ -4358,7 +4365,9 @@ msgid "" "The current hot bed temperature is relatively high.The nozzle may be clogged " "when printing this filament in a closed enclosure.Please open the front door " "and/or remove the upper glass." -msgstr "当前热床温度较高,在封闭箱体中打印可能导致喷嘴堵塞,请把前门和(或)顶盖打开。" +msgstr "" +"当前热床温度较高,在封闭箱体中打印可能导致喷嘴堵塞,请把前门和(或)顶盖打" +"开。" msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -10302,6 +10311,15 @@ msgstr "" "提高强度\n" "你知道吗?你可以使用更多的墙层数和更高的疏散填充密度来提高模型的强度。" +#~ msgid "" +#~ "There are currently no identical spare consumables available, and " +#~ "automatic replenishment is currently not possible. \n" +#~ "(Currently supporting automatic supply of consumables with the same " +#~ "brand, material type, and color)" +#~ msgstr "" +#~ "当前无相同的备用耗材,暂时无法自动补给。\n" +#~ "(目前支持品牌、材料种类、颜色相同的耗材的自动补给)" + #~ msgid "" #~ "The current hot bed temperature is relatively high.The nozzle may be " #~ "clogged when printing this filament in a closed enclosure." diff --git a/resources/i18n/de/BambuStudio.mo b/resources/i18n/de/BambuStudio.mo index 976cfd6e5344016cc1a62209094bc5cf9c1c6d8d..e19867661c42d4e002d48f062f33a974f8fab0ef 100644 GIT binary patch delta 47703 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 delta 48190 zcmXWkcfgKSAHebZ8M0+0D|zg__ueBTS(!q zPAWyoNXq;D-simke9pP<>pJ6ie&<~G^Pu<8KLxg2D3IJ+FmrB#|E730OeAO~F&gvWM7$lRV;Uxo zBoeI?iDV+3LR;$Xuo6CkHSl%J!2QVB5{I!i9>>mD`lm#qF^Z5-r{*L$|F66}7=u8)4UR;F*@B=J`U!qBL z0t@2s`Z$NcyYI^aBihK?>p?<<9NP$6D#f%&L+M3ebyEPw;hiH=HAaHRKRE}V*v zbPn3VQZy1PqU+EQZ$=wFh(7lRI4SOxvO8QNbrwEg7O6zp&aj=)>6 z5bi;fFlQX`J&UQ=aY$L6b#Ke z^v3t`a@>q1@d#GH%rjwTRdF!&rg#l5K%YB{-j{whoD-GNi4Bb26ukqlRmkuEBcvJ1)Vp=NK%0f;Di)KZ(RFd>7r8-Oh*I(+i#0 z3rM$#O?at=4*!N5uffzdL6dDH8tU;_38!HfT!U5d0y@yD|8bDu_2~2a(24wnF3}n6 zgt;#y5@oPA`uTWF)~4_

cx4P{P_BOfe;-dGX4VM8>e51~mnJGuxR@Qdi0zk%NO zeyndrlkY2RfrqgvmQ71brXIL9EiIMJH=)@+9_{#{Sf7h!sXvF6adWKyftOP+oE`>L z58Z|>(a3c`PrCl-#0KLGlI z>}jcYMhA2tL(%&lz^iaI+I~ikFo28E=ZfL2SS3l}QVLJuWw;8f;paFN&!M~H!JKKS zeg6o$G|yp0T#K&hK6Iw(xzZ9>V0LsVdY~N+K$mPJ8sR(9ev%JTaNE3&EpZP{#G<*= zQrl}jmZE+N$6?_-X{qF!iqomTiH~6GydiR1@e=CapdB7VBY6fLc+PxbLM4$%CljS9 zxHdJ=HE)EDyc0Uo9_S3NMb~sptWQR_?Hsg&m(itr4{c`)PQd@+{n+c`FtM-k0qgnG z5~JLRyC^ubHU-iWWAQD#9V-<~OFW2+(0Z9dX^BZVA01%vOG4<&VsYvn(1Bcs&U_qt zL{CJM@=-Jw=Aid2!6NjZSWUrf+=_*ZMpb!HbKAwXTSUx_Pu88nJQc za}T2(JP~~!&5<{81#Uw_KfYMFZ)!32e=#mB;DQakfp+jInoNhHC(sD}i!N1W@$g(p zbS4eatnUyVh;}>%ZFdUV@dB)bui&$|D@noqdsm6D#!q8u>Z{QXzeXeR9Xg=j(MbJ+ z?vC7-g{3HlMzRdLWYusKHpI&KJodmZ&~2VoGA;EoOAeu6!%yQi_#)czMVE)Q&Wp~V zAlh+-Xah7!J77(`24~`<=(fAOR9KQHu_X29(FlBm-v2cc>0}}^E39!TbnO~q7wm*C z#hiHkHLObgL$twT@$+1zL(-NO=k%KocG!I@oyM&cH9 zW_P2Zn}zl8U37pa&K}+wrKL*jlM%3N85P?o8dt;r%F`}18R*% zwj(CZ-l6e>vG_3c@#uECfOeF-QkZ!wbYMNupOhX%XSf7yXE_?dH=`fL>)X+Y?T!A3 zM*LVM_P=X%o(qor;>w}nYFM6nCv;}Fq8&^|vwSw1KdV)>9xYz zFG2VJ8<;xU(TN7luuoXJ;ZfFDsqRDd` zx{s%$1N#&k;x6>c@y2=d(ho-6zgH0W+C}nqd73B8T;R(ax@oA!pT?- zm!jGF1^NTSZmfcZn}>n4LL2Cc4*c5aD0JWx&^3P?U9u(d^Ow+e-->?Foc-?zH*vub z{epgvzkmQ&I|cVG>?56j~#*b{f+04(1oEinY|N0aOTx_wVzTTE{o za;XE>rhYBjPI4B7S1GK;COEuZ_+Sa{rM?Lr`LgyQ606V445`02=C>(T>NV4c~=^ zbQ-#A=0{gyHtJi@=eMKJ?Ztxb|3eg9^V8^v3wH`LERS~76usUa-EMu*0pEg^aRNG{ z=g=c}3%X>7(d~Q;9l$yC07_gDa;6Ptx&N=AV2DScS$hZC;gndPhlczGtc35Q137{t z@jvwb5uL*f??wkQ6+Jhe$G&&~hhgI`A&D1ZGChrvQs~GBKXpw@{T`rZx3t79)RXAI zena=~S#-wLuMBJ47ahnDG$MDQ_dkdpG>@Z8vK*b*8g!{XL33pHmF)jg6!vkU3SL0h zs7m(`vc~8(Y8mT2(UA5-JGvn{7Tv!0MrWZBTaFd*J#>i=q1!e6s&IeKtCHcT+snD& z2Q9D#wnsz#AXdd!u1oc&fYW3JPX~&RndrCgGOp(bRrs|S!n1NqV2wleoKBI{l1a> zhJtJL7urznULl){p&@IDCevVa029#rXQTJO6hB{!ZquEZg-6gO$=*Ahu$Q5^(h40w zKV)FZ#BCHzipl7R=c3zg2|D7J(NMn=Ki?Al8oh5H8v38n2>glOpRG@L{u1=Qat|F5KA1J_1x!gAEdqDwFjU8_at48F%Y_!qXpidTooj6j!iGG^g&G`TmU&;5iq z;05&g8~XA!-TnU*1=n&rR>ZV^X^HExGCHHjuq-Y`JJ^Ued^DP)e_HA{nw796*T>@> zxE5<-^#Nh6uR-f~V^4e;lZNJB3a(}Lfgwu^qt{ELYh4vR!P>;nJD~&WjXrl5nk!S# z`<9^*U4gdq2D-E#pu1oT-i^Bkvj0a@xN1qo{v?MzHF&q5T%%stvp)Z%musS}0=F$czv+sxtNdO^&hUJcz1-OvVRpb?yhOVapag06M98^h=Qus-#n=q`9Nx(c~3nfR1~ zBmWBR@LP1GN6{ZdGHwdLy()#yXdQZ@eTm+G06kKVV+}kLKd*3eh)_dJV_<`@7oQIv z5q>~fjhXKM3lvG zNXF~4(E%^T)ON*@)ZdKt(zl1)sDZZEF4{903q#PgycM0ncyz}1#`=TNsaTEckD;M_ z7j5usJc0+&fo!=WeEuam;GfZu|BY2JC z7Cwir`PZ0^C!?p)ocbGW@6z$1of0^QdU<>m-@y*<|C{a#Up`+$E+o!i9c(cn?ANi_ znfgY|O;7pnX25L6%kE9%5284b?h7+ojjO5ufDUx##4zyZ(TKc?CiffYIr25;bN~NJ z!L>dYy@;G}8y3V%up=7kL1?nwfp+jP8v3Wv2)=~w|8?>6?eY2{bf71(Hcq%dEwK?- z;Boi=*azrsm;g{*xT9l(=lvb~C)h#z7Wevi)VU!01WQ^I|Zp#xotX8#&= zz@MN?vIm{;514cYKU46>?=$EO3O^k7ZB=yUZP9@YijKuB>Qm5$UqJWyyJ&8Fg&xJ3 zkAxGmE}AR-(a7F~t?|`I*#Cy^I2ZH+dLCRnHH@%0I+F_M^+wnL+oBEKjm_~jbf&+d zYx^I%T?Ku2~>tdEM`ADt6Fe-S+o)}jOX z5Y3@aqr1_yK8$vd@pwqOLTC~fMW3&VL^_$MN5O`=#~b=$Q|cqo2rS1c_zjx9=`%wE z+0h2`qX$)4bOP0J1vW#o{3v?F|Aj{C9JkJeQql{kZ!VD=93;P3Y_KmN}t;nP@gY z9bJo_2VbGD(_>f;^Un>}>!Z8kN_35{M`wNux-IXCpU*}k_TpUjzax7yUicy2_zSx2 z(&mMT6vVpJ%SHQPed;sNhCV_gw;dbf0W?A-<_F87k*JC;ZBulh-RHCajlgg&*wB6G zwwZw7k0<`e)Ki`E86hyXve3~CCK?y7*G*(f)&u`lT9gj zLwodrUT8-*pdF1sAGiava2mG56==v$V1Gqeo2{`bUXSMBOss})peuC%D`DEAaDSC(x9FJY z6PU$)Z!Jn2oH$3}8!otHI~NBJL{CI7ps$8}&jc$++eNR%3VePyw#KDsY8`r_a^(`K zDOTm@qdr_|itg)KXsDiyE<;}mtI@Uj1-0hGp$9}=G#Q$qGrk&KgCS@GqtWek2byemquD(Jy>AXWkmt~| z{@v(iEKU6@G{UEn6l^GcS-3Gf+CU+ki)GLo-$t`(WAx8xspa8%SM=bRfF{G^=tN#d z&xbYWgg!$jbOgOGd4hrmO70iJ1DB!Ot2}yREp*#8K?m9by}vEGB)zdA-i#g~OR*Nd ziALlIw#47jC93ga_}1JEnP@WcFa`J5JhXvV(E)5gL-!dvkUjDGLG-2b8=6#kUJ6T4 z2_0Y)^uTF}U9nC4{BblwOVRe%Vp(6aA5kz%kDwttjfU(3mdBzmhmp5HAMA>wu`f2p z%~%=JR)o*1qD$5Q9e7)`<8Ej~hM@x;i5Jm-Vhja49FNX;COV*n(O1yWy@xiq6&=Xe zSRMDFGtK)-_#>48c$E5Ld=MXgH6(YQmBB*j?kSF`{a>Ae9X7|w*e%|$1M5;hjBT*! zYiX&YX&^e#d(nYCg6@KOSOs6iO86BTq4VgHHCPqwgD%nStJwc;yYXBYgA>t)j-%O{ z_ImiGQwj8XKQu>1#QH=u8D~b9;t1-iu_BgS9qw?>tt+d~3qGL zjquayIP}JuSOHh!mADJDu-uy=dD^1`?~J~E`l189J6@lH4(y5Ovgq3Q`4;s4m$g_x)J(=$?Y!zZ{LwJLoR@2+QF%G!iG!$elq4p0+l1 zJ(^s4fB7jm;yUO|o1$yh87pJIczsfI7TUlPwBr}i=hvV!d=H(_CUn4`q5J(S^d#Mb z-uFG0asMBoUtZJ-r8kPhfc*Bk9<3>tw6Xv2@89X%0UfWCZ|q7hk#6LBjJ z#Vg+7dK$mZ!{kOTy#H^NavyrE{nc`sTraJdk+o$N9aIyq67UYetrsF!hg_T zx#W01v{xQY?rK;AJHOBVuSQ`47YxaAw4+sMh}T6opb^@F=Ex7|eLtfe{fQ3j0=i_` zJ_t)$6J4Sf(JOE%_1@?NPk+GvH-!Jj8`9T@FN1l}kY9-{a0EKgm#{wW##)%?!|>B< zbM!4Z8cX8~=r^4$*bXah2!D5M6qcv{HX4b&NeVW29_wJ8kHX0{9G%IdxRb0|i*2b- z+Z00j1vaDpE7rwIo5OR1(DoigJ9-Cu;C}3nbv_MCHUk}Saw&y+6#j?RG2fQ(XR^)E zwVi{hnWIUy8}0CSEQe*bhJkiOBRLk`u6LqKG!=brcJyUT- z{%>?`)3$}R&xfvA8ElW0(c~J9PGAOl_HT$*`z*9OAMNltwB0pmKkwqz?*GpyIP$We zrzO5-TU0`C{PzoQAepv@-{lNKlWYMx;3d&l@GXp)`8N_ea(yF%xZQ0UENG&``dEMrbQm#hus@|3kC7 z!|pJU>(LyVk3RnjniKD%+j-M&_P-NaXI?-%dIP=xeYBm8Xe7TwzjL14lMLG`*Z;zeSE4swjeb2Ig=X`^m_=?Z z!1dJM{We76p6|kdr=$CR1=``~Xry+b1OE}tv0vloC(vX*n~Wb^Ku4DOeVF-W=o(i= zZ)}L;u?5=TTWI9oLp%Bc?O-pubcfJ^{D$VtDKr-{ehBwxpc;>XVC|a zq60V`P2U?rmJbbmd9=d@=$F@~XotPy=YwMX7IaDOh}S2f$@c`7b^pH>Kllm_^(Pd9N4M1sbO~NU2fh}4{$s3)U!svck3LuA zr;sBxlN1bHFRY0D(FY$u*Xl9!Kw5>)a1%PfZ_v;lL$_g#qaiYN(SbCJc1GLphdw_T zZErLh>EuHc>~Kc(srbQibPZpP*Wbp}5sGfV@6e8ZL+|@1etyx+bU>rg0X~3kyZPt%IMWZXBW^@PnD@`{z@_*x_42X) zGn!;)(fckw8D?4(9cW23)E&_Qc8lJKM&tqXtvMx0!4N)!hU9g0%|Adxy%&wp@A310 z(Fo=GEBxK?OYuSKcVdS$wjuVR-sW@|z?0~bEXD@-BHHo3cs+TRf(@ph3EM9pTJMCe zd2ck!2cZMJ1@FVV&G zoC_z=5Y_l6JTM%up*{{hSaw8zLTC0bcEw!hL&JU1>(^ip9Dxq>J$wc~$7*=XzajY+ z;C1w$_>{sxtny#@(P|2s{qJB4`~uC1ycfcE!0PCEunZ05J7`Bo&~1DM&HjSC3+rQZ zT!`b)2((1C45llVK_gukHey`GsKe*d>NGd=a?^8@t8%xvkYq$-4Nud?VasfLEQ z1v;}X=u96#k}2^D8o9OT_lj-kb9>Q&oIrCZ?V|KlPL#MP85*q21-C^5tc%^znN5z@ zUq>Uf6-~w+cm?jp+b}D87{C+g02ib8tw57<6`F+G(Fy&4gCx$q`Bz+Ko5Gx!@QZLkwwjnmQ352D$gKTn8gQFI`c(1;`(P%uOt z(f!#U`CgtFgC4zeup6#MAMoGGdw&6Z1Iwb<_n_PH=UA_kFFmn=dRufUvR#~>+7(67 z6LJKSL&?M(3TEvmXv6!^f&784RgV0jUIqE zke=E#jnIg6!@TbQJ`~*F!_bgTKpT7^UjGQ2QQw0eOoa=kC#K0dN&)*e&5R-;xCIv_IZ1f#;W;@Xaj-pF)8a;UOUK+Bv z47%;Aq9JX7u5}9>m&O+kyp{UKA|W~J6%D&8amT&O}eF zi;Jfxmf$P66uXs3Pkk#sjwWY;%hFRXqndaN^;dBgmMEE?dab{TF4=jkja@HKPyL(l ziI_z_dnxvRdkU3GrKjEjx1tTaf{wgJR(k4d_N#am_2cMLv?`sR`qwQZ&?MW4uJLct zvSq?a*dNz(eG0lwJCsdN{Xxfcyq@~`Bn6Y}x^iJ(FUASfKR~xrqw--O58z$YPhe+4 zdvk>lfj26qr~W?hPILg>D}{sQA@qoT8BNA-(cSbndcYN`oSu5wB|B0m&xMIt4xh(* zxFz23U#!=!5|VNRdjF%?7T4fbJcIAyM^)1ktr%dk8tveR)zcI6xqhlfdg|A6kJb#K zKZ_0A|HW#hC+^{ftFSkIhAv6z+Ucp^Sl);|sBb{87pjwvu?(Z%X za$>W@+RDc z2XPC&-JbpbA%#gD(i8i!ZO0Jea-Gss*SnxcXr3!VLtU{p_37x^z8|mW>YSd~PW=k} z9gB5IPyJP`99_fpcIfW8q+2*)AH_`Si@GJlg=e{7Hm^q4_B0xiW>Fh{1y`cmdI1`t7t#A)i}m%mo%$wB{WF_+ zeZvh)&>5^kN4hQgHQLY*SOE{CIg`6zc&<1a+A8S#za3V^zGyp>(E-drcgI4sy;c3# z|BiGm7u@F?(V1lHACAy2XsD9teN)j~nUB}uvuJ~v148l^#pcwj;|v^$)$uGE*$M;G zQ$OCfM3eO4f$V<^PjSKQUxCi-L$t%~=+gXv=EOmCK))kzuf$n&W;F+edj%~bJ3-E8jCWZRp?B%j0hp$5#5dE%y;NP^fMZn)96y9jSLYkf=#Jc z#tP10I0dtF272Q%bS>Y-n)qR?pFor86x#6LcpYYr3STa7z`@j4pt~v8E#ZqyXPiKN z4o<>+w}yjh7ABwO!e$DFe%R>n;3IfF^-s}`s*efZTpFSK`wsjHAHiNYXlxkpDm44w zL3*qjLvXOtly4CWD0t~EJV-#x6q{Aj7I7Z zIO_WDIfpaZ-Yo%!SFL>4Dw;kD?8(H-cG2hoQ9Ku@}iJHmrSqLt7H zG)5!Y0==(2dNB3Jbi5fIz^G^veJ(khg2^{Oey|Gd_+xa0JJHY`LI-joeqP|tunn`& zld%ihVPAA0H)2n`6`SA&H1y}==a-I8{bZF)l%(Lx;#zd=r=us;<5(Hrir4p}GdYZ| z-A`yT9Y<$!3hnqDI-s<>!u7n-g6QW(&;#gl%;x^Dm@1IvSdI_sVq5HoX755=fG?qu zX*VH6q8E0gJ{%40tLWz+qD!zH?eGwCY$Se(*N>q&mAIRMxc|#h@WJZn1I@50wnYb$ zL}&gnx*Im3_kWK@;8*myKhW)Z79DuTJz+`mqu+S4&;zPD8i6jDEJL9;1<&sB=*S;K zXY?%E;hShj+t4-Kf#$-m=yv-TU6PXbhK9>yJL)yi=f|NFn2Ij(40Iqf?`8jc!(uL& zJa3?D_X&Fa%Xs|=mLi6y(V1O3G2}*BtUo23bY7=@ueUqf%_WKh(I&)7BOHdd~Q?HDMwhOxEz3_4zie>QubU@3{=U1V*@J@6C z8re_LHQy6GfG%nB7YeS$349L!LnHF+gW(K+9<66Q6wHR6fZ5SpDTQvox@b-`LL2Uk zc6b$X~hpn*zHpIJdAg;o5a7cpZL#4`J4{5YgqB;r?Gq!6jIY&R`oF${)}f{)8sYKj_SJ zOb^MIg%hZEMt8+0=o0NkPrTovm1cxU3`6@Fh2HlNrv91j915ekuo64r<&UN(hU1O+ z1b&WB;&qROWI7kU=<%>k3!ZihUx!bnS^ z57x&y*d2Y~Fq-ujqLss{nd@p(+EkI}d4m#tH(1Gkk`}-C1aw46d9S?+D zbHf0NU@95WHLr)Bkgc&CUXQ+%rlKe28k~$<(d4>vUI^{iSeyEO?1%;Dhlmb{-Wr{h zr0^g&%tN8HZ4=WoVesISG#(%8NW!gsv&Pp7B; z(b*|9CzdV@ze#x!ok;R03iBxxSQJA25}Hh(pdtJm&DLG$njc1g#5#w)vC-o2Bi5tn z0N=$mcnWRjrDsA;tVW;Th}YwHSd;z}t(Jrv#$X#hn2aNF6WTzXrQyM*Xma(y$MJeJ zi~mBGD)DTn=SAzq(37zO8p+zxmS_%i!>;cC!4wST3betK@rDbrp8vU!l$W8AXn=;U zJ=Va{SP2)SNAhNL;J>2V@h@~&okQEt^L)siqBtv=!O2I#tl#iLxZykWOXyE%_Mb+q6S!dvhQG{ieG3-_UKzr?HIt=Jq5{cSh~??dnZ9qsR*_<5d{asL-t z86K>Jp83~cdz_1t@H@N~2fr2~@c}NRegGTc#8n}y*P`3-G#cuAUk{Oa1Rc;)G@`Gd z=f&pNli{rYkqd_8IGQZkR)_ss2pxGvbmaBW2(?FZU5Bt3%* zF!!492N}z8IrUD-H^KpO9H($$+?(l%NAVoGB#*om{zRn2+OSO*pznk_Z>J|-z)k1? zZ(SFDUw98Xpy$wuY(P)I?dU-Ep-FiXP0Hlov5@o52{{);*B+jqk+rw=2~@#lZM(7=nO|u=kvtBc!e?_X7+zOE?nS(p>FqS2+a-XS|)KAK7oFI2Hn@iwuFPKCVC#+h}CcgI^cC^uB=CY z4)`AJ@GSPlTwB8*+YL=paOV54JJ#M7I(`7%K6BCJdJ${kCUl9;paW_AS?I7kx*PhS zAs>o6aTMB4%g@70sVDlg-yySuO_^$qCt zOTG+$GCCATQeT7BvDA+6E8K24g!%*MQXj+y*lK5LNs@{26wJ!WXvm*K_wQO9jUS;i zsPk3$^S$7(k&j-jDA4 zZRpzWN4L}ISWo{Zyd{g`M6P#3v;8wH%=d_Ykkv{Q_%1|r{|{lniM=6tOP~{LjumhK zCI?e^fP%@h9}U@WSQ*cv$y8=vuo`;sG(eZ6IhIS~XT13N9s5I;C(+Mmp%Z!@UE+1< zHvJ#^4e7*w_P^WbZ!VbKmmdgUD7vFJjKMNE0S)~^G^A^>F8+mAVx@y&0^`vEK8Ox{ zI=U2d@jRYIUuvfgg@NWhoD4^5sl#EdYoHBuLX)aHI^vP&(K`t}`DUSSy`|BY(Ea^7 zZpDw$BlfW$!@yra+xsZG7d;2gB`FyCo<~A*T#NImPef;Y=}#eqwXq8I4(Nc!q7ixo zjl?W8QX6p`9z~OL(9y7@BhaM11I?+aXe5$zDLh2sRkXpnKZhAMLmTLdb~pfiU@W%4 zsqynqu_g80=zW*|68{JWGpUcn)Ka1moPd5geI%Gnyh6cHeHm}~84dB-SkLim=(q^B z;(ATAp)u$=kc`g6j?|Z;FSVbs5|%p_?(2p|a4@#PshIlvf1gosh;i^xD{LB9r5~G=$fBEpHKfiM64J(fr{w$hUhtRCAzzAijKq7zyF;`!DM;}YvZHn znZF(z;19S3FF76txEDXC{ujE|ADsvtHuxh9v;&&`-O#n}iw<-c-hg++>)&J2-?<#6 zU=sfPX9(44w1Mm=!$DC12T*T>uH_S09T#F9+=|`sUmS{E{z^~%Mdg*~IZ*jjNaAML zk9rSu$zMLj{&&V7bD=(-!qr&yba=_^#TwLWpP|k`hoGTdb2dccWAsG(AAX3Z(WP4Z zcklx=i8rE4`xTnRKcm|*?Hv2RCWVsc!di7hAGjWE_%<|&9*@3_F3kZn`7WT5%KuO3 zusC|+l}5K)1GJsa(HqeLK8Q|adXj=k@idml<>-m{8JawQphstp^WlL?Xa|k340c1; zb_~|VNoXYBLX++ongbX88<%d7OZ*`Q;bF_1fsR>xRDn@4`EAH$F=LBu+-^_j})AE7rJST1M&*kM2s( zNZiDY-{1^vm64Ge=;zpu`W|$9mdwmZC1qc9fJ4yG--%9S8hVmG73*)H1N<0M|2I3k zDLBKUSP}ol?pQusxPAwk_0!NLc>-O-m(g5#9gX06wBfC2dp|_~L~|hfMH#6dZp)!d zJP1?&ne7KCIKruDsGj!&+>V{`8*~?x$)1t=&ej7Rz%=BwpO}Rv5c2Xh&CKYaEP5 zUPvD)6tF>p)-CRUEBBL z=bxgX`!-%b8n2&3Pta_6L&yuF9hN|ounxLJt>foC(S8Od;|HVB0o)&Nm>qo@9r5#M zLtmoXXdjlw=J`TST#NmwKZ!=@Pc)Z`T%3_QSK6T0Z$cydC_akG*D186&@z8U>ihm= z>_B}NHpI&cWTbvE(Hjlvci0L~VO?xcFe7!~j6esv1aHRAu(zKV%1HevHXXZBFMmlG z*f^w~Of05wFCQF3Lv}M?Wlfs<(Ik2rz5WKeJ-4A>vroqBf1@X7{!2shH9+sX0=;i6 zx(mif??;z(D(3e4{~QWWb72WShRuqEY~6;b8KYTyDw>=BB%aw^8lS`3SRHraeV9=! zBlRa851?yYq6PvaLFS>b@HT{?um5&G6_jd}4}Gzo7h&HkTEVHOvh zN#Qc#!HVd9u7S>=E!y!FXhTPeNtGwkujbd|nyb@OfP{ zf_IirhQdrPxIbS;kKT9D?e#Ibjef*b=qh9+4pMK8zLv{X4EME*-hd9|5v+}~(TRP6 z4tO_CAVU9QAL`?il`~TB;m^^~SFaL6*$B-cn$6FW3lvU>Lhv)Wvd@%Rv5ir30?ChXk=UA)z~A}UqlDK4paX(J72{Q4x%ACi4NeR2BD$6 zXhaI3Gr9~ju_89XYUtA4i0Hcs=!Za0r%ao{_kYp67dI_zO+)M6zv2rgG@l=x%5PZjRoAt*AeWuGtspZa9i&{YCA9CDG)o zhc4k2@%kV%>BgZEdl={9BJ7CCy6ssrW^fM{!>JuI5(~(>=Q@TXw?&t*1YOV$2B8BS zi|+f$=x$hr&hUS@84seb@0YuV`#(kpunXPBzamS_-~Z|sk|uYw7*^(nis+1cpfetc zhHNU@@T+LVHep3Ph-EO>m0>{Du@m*H(O+0RgKoRM=t-KlyYB+tzfCC&;KD?7X8%Kz z?pJiJ&PQ`x6(Vp6n&p+TF*Za)ITqXFI&{DnFbhle2m@__o*x6ym)UKY`u%^Bf;T=9 zeFF{kF0`Rv(0!hxXRs(5iArcBx}psaNAJH6z5i+S^}GU|(5LAA|HC@?Cnimn^1U)r zzZ7nSM&Nezfhjl?=f}^_VR`BedItxgYd#5`(e&t(=s~p%x8NIS#}oU60nSIyjW_$S z|8J*of(t${{OT~1+tGo{KqIjjO`bKez6BllUUUF|pa;si_<6Rz;kn}In%6{gX)wB^ zccJIPgMHcmZja}(QLpgxT?H^!e}c z8$5HHQ$8}Q_w zCIgL9sp#lU{g`f@}RW8mblOh~Grl?gMoH zZo>+A7|rtB!@}o<(C4zy0aU?stdF+S2;Ii5(Sclz_IKkj_P+xd&jlNJEZ+Dex&*JH z9es>GxD8$V@3A(X$6;9G`Vf)XX#Evzfcb}qNOZ)Xs9%jf-{OXFunoQ;8Io)R7hKze z(SM^wZw%M#q9MOBdQ)^#bRoJ8-$DnrFV+j(6zWaTqj(gS$EoNM{#r5?zKWiSmbf|m zyxtO0#2(F2K65WNKXh)*iMuvL1Xj`)+9G2@XzQW7W&k>XThRfJN0;E?=<_Mre;eWr zd(j#Gj%M*GG;0%M!;A`}yP+gHz$)kw+ZNrv-O&SPDEj5~CN#NkL6i7FbYL^kZMy_h z|NiH_c*7=iW?!Hq|1)0y2i?yZw}o9%5O-3qgbv^zH0iRB3pS39j4ndgdOLc4{E4=o zb$i_Zl_{8&td%V0qXT&S4)*^|6rSXQ4X521eixh{JxWKR5xE=Pev8p1csqW+5nZaUVtp@WQ9p)$ z6UsY2OrR>dv@Otqw#U)fc|7~ygXSGBc-DW3&fqB4$MaYY>)aIv*cWa12CRb*q7hn) z4tOgr#XZ;*@178TbMh8C@U*)_JNeN2OC~8ev#My8wnvkw4?5z3@$;c*gziPpf$3<+ z3(=)`Eq?wk+Rj#Ngx{jux6nP|*KZTBExTqjKEw57?)$>pu0T6pgLbeEU9+vx?{N+F z-{a@cP7EjB8tl&X@6pIqBckR|XY~2r=s-PbYv2T|hA(0-_x~;m?(fR?hl8O9`tlfy zM&Ndwj`yGqWq%;7adGTHy(zlQ9z{QY9-Y8iG!mai_uvE6k78vUG0DiY|L0IJge%c3 ze<#*ILTB&=I`aLoe(~gRy)?R}b+Y{}mZ*(x4Ys1lrBp;@*gu*x-41= zopC*M#?8?IbwppcL(rwT4;}bSbm`_H-?o#97brNw!|05EMUT#WGsBP9ozaLqh~~!Q zXh;{K9WO&?yb|qbBih~`G#U4ykvWC6Fl|)!}mHKl}hv!b9Cu5O?;e5CmJ%C=vw)hhoiK>g(|AQzD zqAp))JKINaC_J5j$MJ&?BGO_=AIu(o$#6Y8_kv;TASS1rGyyQ9jIkhIsLOEv@j zk~#-nx;0DK|GswLjX3Ye z&=adFnjD?5BVLP!@&$DNzKwSLJ(_&k)`S!Da{P|^EpLR5u6Q$iu^EW&s>$dHxeQC- zYnb};|7{ky@D)1a@6c>Miq7mf8sbyv46?lyB2)xzumXO8wa{I20UcPbwP9jq(e|36 zYu^U#rw^un|38$1`*keZ(Q@BIaGKZ``?4(axNJ9W@u>pqXU|RX7gHfO}C)~+>g%uMEv|5x-|LT3HR4Q zm#hPNuJlE}7mSYeX=uC8zQg`Eq;GM-0ep%B@JDo8wR$(q^jb72N1!vDfPN!-9PQvG ztc@G64xU7luflubms3}v_uYdP@CmfPcajur=o@tAe_$;v{(cBm7qsKSXal#P4LpQ~ z^c6Jp@1O(Q5$ivp_y32UoR@wOCej#Wjt-;`8lhpx37)tc^Q7^G1dF@>r+pM=vhHgW*;eF^fdK69KrRad(ji2vEXM7}neg@680-M8q zl{d5h4P84fWa0Jb5a*}? zzB|#+D}SDm`X?9N(1E^*Mj-hy1(W9}nk@gJq0IOqWOXjgqFx1!NEb9hccHnl03G;C zXoKs}CEbh8{J;45rQ5^ADxd>sgq$nMLaVnp2z5i2aPsu*eQy@9e+c6ue;}8j1DT4tL=|EWR_W>7Ce% z`n_n9eTfeA2P~b&(H-lBz77Mfi0+p5=x(|SYhge1M4gJ4x&LQdz}L{we1^UYzKz#2 zc7=gup-a#J-DbnkT{00}iYL$rJ&PmoO?(lvc4s6WVt`xFleYVwFrim4X;!YL;P(0e zZ8+Ee!pzE}4K_w+-W8qE5;R9v#Lriw1K)^C@hf!K-0^Kl-pA3%zKHAb12oAee#ibd z6f?gIA$tmIP+yBaa0G4WJlf%<--kbjFNtoWNoZ(ipaY+SF3D@?F8CN1VC5e|(td(Q z@CdfVLVMZ&u4S*iAtXc425&&O&8=udv#~9nMF-q$Uq)gGwnrnlJh~cf?*qIUx1mW~ ze}72M_BfOJAauaLB`JJHA;*F6!{jcsqY?)*QvVL%TAWAy40gcB4uxdhh5e|X#q!wW zaQMq; zfsCUWssBJ}K6GhLpx>CzpdDQLbLg-OTAvu}Yw&66N08h~CMNw7I-ZL^@WFD-h7bN4 zI-Z7CP@j#4@_TgckD*I(8eQ`XXy^+a3qM6?VQuPz(EA@lL;fV1TWc`&{eKGu4~`wt zqw$6dXhaJC7Pe;vY(c#(Ho-|~a=wp7;2ShjdvORJ!714B_t4H4=s@?OC+$hha{r&D z;QlRkJdCswwxM1JZSW5Cf%}mEMsZ>i=EnQ}2n|pDGq?aNaNi27k2|q7<~SLCkm-yA zsLw_ZqTeuS2rvID?B9y$jO(NOvjZBkewc;huo}+6Qn&#p;{h~+!%u}s-HSg_e+r%0 z1E)hoW}@{!&|FHKVgI|PyU&D?9l-H&Zj~}1|&b$yTf$7xiUWqf`YRtk3=<^HErCo;ZjyEy2gvfvIn!g>D=|9I!CO%KkO#Rlo zZ$@V7uU5Q+&3WKYG_Hh&&ZaU`j^jBaWnPW7iA`1$G_2mtjM03TI(-x zF7=WXj=_v1p?HeIP(E0cKQr|m zE>R#e^%sd3U@NW{Etr}5hSMLPp*|UVV%b8Osec)9CoZL)aR~#Yy=CZhbG^}#WGXd zwh!9T{n!crhreN&;+ct@3@m?%%*1Fcei@O&X(cn0slVBL`tr=w-vM7$DvYptR%Yr1 z?1fL!z&v!#YLyO=nuE7cKZDod@G>DHoACzf#mi=<4yFgNEA?#UGE*mCPxQOrtLS~d zluKr&&h#GTGZXJ}VP>>zh0N4ZnxkUK`kLs>JK&8t9(}9rLl2@$DrKf#uXV9E^&4;m zzKgxELgmcVcgnl5DfRWS{!fyEA#7D8gnSBm0&c}e@D#SeiB-e)+JHAvKZrF5VV7!| ziIvpvuAZ6teo(naXm1Rjr(Dk&^;A}|Kc3`_4d!>fA6)|UTf{O_u1!MM1YrI3s_ju%2{(3{|GlCIMmu%^PP{= zW1Tf;^#$mI{5I6P;0KrwpL^EY)f=JSuHVD^FshApdq%dkCUgQWM;;jGtobo~C2%tB zSK2xCtL24`->B&3>($=rxB*8)-86kVIBULS+9BTQ_?dRMj?S8=T3jb*&FA-Qn2vnv zbJp#58tQG=IP@t*%Z-gyH^=?&hp{PNybVC)P#iMBzKA zC*U3U60FtT+H7v9CtL+ggGZres7a!=hnhn@@%|1~{!ds7-i7+``4#HP8PJ2f0{@OM zDmgF`>gRx^@DW%FufbhVpI${t)@D2kThqP?bq(wHbk=+#N`kuChC>~{5$XiWpdQ6l zHZMU9;Coo84)0N^3!m&|&Ac(xfz52jLw(xyfjWaRP@e^_Lj5TAzRe9#4IhRscowSO zFHqkn>OOC^T~NoxJP&-F^?&ro9sCURnhs;A%J#o`8B=CKM)H2AA4gWph2$x7ISKkspA%yU)XD zSg)_Oxw=8s>uGZUe1i5+*b?SK-4iR}5co4xd;L=Ez%%ViHq=Z^g8Kcyv!O1{!hY5X z_b${_mO^!S4(i%ogQ|BA>ZWw`x8$)lpNE<`H&n+nVK2BCvIK>Wi&Qk#w_ttv@Bqt! z3+h@ngMDE~s7LQS*b4pxHIT*wExj11OVbrDfXPtpUVshYJ@`BfdBJ)Q7zNwu^FK7z zn&BX*2TB3d6dr>$GlaS~?%DFk2U-0Mp{{)!sJGX1P$$qAc88;(&bS!rU9-pTzW_CAS@YquEmX&Yp)Sn?*a%L8I-`|PH{o8W;}1jqfN~0Uf=|3? z?U8;^^#(!RgfGD`_&O{cPUT}N9pFRhR>WOlN7|`S4KIe8k>xhmLKp3F*c4uas`uz% z>zt?u{b;v@8u)WC81{nAUM07-GE}4uSeC5E#mt z`sPqe@8g%OXT!HJj{XM2tv97~c%Sw?sJGoOBb<))Q_Hb#krS zZz@znuR-1IXW?CV8)m{Q6RephPP9(Q0nm-y4LR})9TimcVQ?DiY7 zqo8hzp3nt{L3KD2>LyzOqv1BF8Ttn59{Cs4+cS8QwFJ$f+UWu{W2sOBN{70KM%bJL z3w6`Xw*?Dregrkr9Z(&Y+wx0LQ~#6Qu07eBc`#JN@lYS*{h=OYBcWz;3Df|KpdQ(q z;ApsOGWUOPDotLt4w5{m=fHBP?`R)Fo$)tNXA(HYS@YGbV5q52geso`bs{sMF3l{c z6POEi2^K=lz&lU_T5iifnZo_A3dOcU2~-1Hp&BT+c@REJy9y43wWeD4@gTU9b|%!B zH=Jf=C>9Q&od7j6??SyhilIIu_CTFzbs-f)!g0G}Em}gfBuj z>;<<&&46=;br(GXH4qonnYMyDu9MyF0d?;TfNHnUO+`1+B&ch&4C;Vl7z0b8?%tbF zZ=*UhtvwL|wLbxBYQ466Dpb99p$l$=I@8lo*Zv~Z%zO>GTN3yuFl+77q0VF|)W}9a zO<4idnas7@OKh&T4wfmC(`RKsO{4-+L#|QtC;23NBQ#Zde zmjztUiF;j$=_E7O#rTe={~+^iB&F*j8h4?k-=3{yCf2lcN0wq$9Ziu%i&-D;vjyL0 zByxR}`KzSz_fVO=KEQk`OV)=6=c!F%$b<*bYeW4YarTuH=!o209~GKNpO#wiQTo2q z?MT^4%sCQW5@x1Ja!H(DuB~?;8%46HB%pCTlAmZjWyg6C52v}h5t|<~S&FqrQdtsW z2FT5l$)>ps+Yk|2k5O;iBP#JV1I!l4%S6N*e#l|>O z8WY%y?qu8ecT9UAVQ-V*&EcWXAgynww3_<+OjFBP>fcNH=BUuS)MgOeF~(KEt#)#p zB&CHEZSHJ_%hk;R!N<`{!tM@6_dusLxtxKPDy*2`WbN z1LJ~Z_Lc;bDf_pi1*XzhpGbyd!w)}No|RTx159m6+?wXsA8P^hU!(8;Wc5~I6Li`Z zWZsk1ZDGbK1>53MCt{-nyZYZAUx1_V{x##4;Bz`-W3l}N~E$10ORm}Dz6Dqy7hnb(nvpp)fKcn>J`W9BU*68sZ!tx+lvwe5tKzb+PpSL8( zW48TxZ2Mws4Hv&-&~Z{0?eO|kAWae9vJ{go>183NgA|md_})bNSFR7Gsw~1Rkh^6m zp;u^UaQ%n5Uxc5+0Bq}<@w?*QnHKyd(sVp(xk_Aztg7P$Ik7X&%og8Wog3sZVxPV4 zr)}L|(fb?n14MR6JiEe77n!>&!lX*ct`NWG^qj+*mZzl}$pR$hc6R2A**&holSs6D zgoWkItuF1lWMeP&e-hPgS+F}P@+h^9_NrR?d?2O$ca#jWh2{>fR_5E3@~;_>aJ6DG_Li!A>(N-y706ml4y+nbYo> z#mp9=xdKk-YDvAbn2I2uBWTW%(29@-pHtJ)mj1rv>MwSC81>c2Ka%u{g^k}sx(q*B z`rE7WFdC7_>)G<9;QL>~mEHItE=D2%Xvp~^rhq)w`mGS0L@i`pk zyN~{n_?aNlhr>*7Nj_X?c1zXa81tswNAkObevuaX3tF|fv{Yjuk9s(xwET}O`Xb7= zBa(T<8YcU{h;22K)_nVx+DQEfF|UR_SjdMMKZ3Cy+M|hTGwmlO@<@nrOX86zvtK42 z2{Jx1_sEClutZk{na3ruDuLwAt%^6TWPeq-sUx?l;(dR@LM*viCecR+n(i{2zq`qq zqn-Wz$WtiM=&SW-*dHjSI!IdXenh$-t7lx2ek{UoE;`@aS?MDSj)j|hQgSTTza8>X z#H%HWdV$`Y^E8`te0bm(G{@peOO&m%Q|=v)3T;EradJ_` z^%ybn#n_s%7Wp3OdLqaqO8SZ3evi=BqOXRNrQ}4I$(Iu+!u(&r^8&mjb2Y-UTg=HA z-^FP6!`}ze{$!XLA?YVOM_xx$jd!x+xJ+)IMDT$f`^(6+`mB_nj4>DF&dG4zLIO|a znx|yWsTlunZM`9kJBO!Tvj0@PF=9>!_)etnO?-Bf(9_{2OS+y;Fn46m>CVB~^vp!N zlDTPloHz%=a=COm*1RSDXY~Ck`b?CWCFy5kf}gSH`2>0oN?T-aOA$IxNY$Be-vZi4 zvDZrOor#HDX2+%4tL*v|Mz4P`9QI?x6zP99DYzJoLv}1{?So?>TrMSN-!Lnr{g-j3 zuT1hAm7fus%!f=C9A)RYd;6+ zOhz_lL<}*lr*}VET1L{Bh5SL;OCLXD(J=zSZxVbt%`B0Lmjg_Q%(?94l)QI2$()t0 zS7KTXXJj+1jby|Xv=`g6-E8}AP1}ptJlzR!#nvm=DdKlKiRi|mfAI`i56DH*5<$L<)jQ*1;l@dwrsQ>aj*^@uUl|LrS z<#lIgxkl#UzPStES$Q5J&7U&C4k;sdd~ROk8+YStZMhp?`|O>~i6(=<<>t01S42)+3gW%*P8q?_r<`Y(GA%oUJ`Nx3<$ z9wb>4X$|pajUP!Z*_}6zNivx~1lH``dHFcX{8LX4cizaX7LkrbuWQTEXlG!*{|B^3 BW>^3K diff --git a/resources/i18n/en/BambuStudio.mo b/resources/i18n/en/BambuStudio.mo index 1301531dc384fa3d6e18b87c0ed627177df6de90..21361cea085c2cb4ef9c9dd18b4d73686de8d2fd 100644 GIT binary patch delta 47708 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 delta 48149 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 diff --git a/resources/i18n/es/BambuStudio.mo b/resources/i18n/es/BambuStudio.mo index 7a5dd8c8919cfd5b924ea0d6d7b379f471fa7015..02abb310a680e37f3fd1f1dc093802b0fa32f13c 100644 GIT binary patch delta 47703 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

h_<5-pc6VFn}!jIAYy$>J90>6jsU5G2Fzl*(b z$l=i8hiHhmqUXk*=pl5iPoYQgB}c+`9*PI3k3u7O-BI?xBO5}&2F79*PQrosGCG6o z$HEtfyy!M;hkkxHn!H=_LG1WPnCVyO5xg4*<1sWMy^n|Od^=X4KKD5Le2 z;X-WrcSz!2u^WH>JaOeeA(^KAo1VCZ8;;@>>~TIO5w@a!44YuB3n8S#(Sh8Hx$p^e zX3wJoehH1-Iy48qLC|B2`jt*=TNZ2O=yU}#=4j%EhDunTB9$WnV5mI z(d{)CeQpIh^S99ZK0pWdDSF?x=sEEVI)J0t63<}LFNY1&Gg50c49$Tr&>MH7ug`<% z4AL?(Qc0PG{x-ZC`n}*bbVlRQh&_c4U>Uj;tK;XJ(Ifd+^q{*aGb8-@|N5C3sgQO> zv;0Q%#!2W~?iDPLo6&)sL_5xxE!S%GXfjs91!#v~U}gLZ&4serli|ij z*+YoBp~*4;jl^)|EtPl>ozcwboahoXQmfDg-$e)Z4f_1A=yPY$$fREst`|ikQ!Pos z23kiuV^!+C(4>11d*fs*g?q3*{)hgcQa?vVD*0xjGkYD4z%Hza={Yk}FRLmzhI(6U zjUQr9OlIZ^$%l(K;6;% z?n8IO1T?af(d?gzo~U#2DO`pRx&ND88rE(D`r7;+Jz|fe$(B1`_`E8vq}~$Uo~Lju zR?MG~dR;F^&4m+K8?#*&*1jQTx&N=GV1sw!LVO9AV%vflsRQRY zW>LR@CQYeA8L78eJv6xn<5avG-TxP`1!gZCmY^LPsr%80Oh4nQMPyF}QAP0^#hD>~!H zq6^W9tS!O*_Xz!(3!drQ(Szq8nq(K3q+zU$Hn1Jt$4AloGfRbm6v777v(V4`Vja8_ zdor*^cs=!VSsAIfVV}~W-}jOfYVyIyXve4VH!M;nWPjQf8Hv6$Pz7ypQrV2eS$qeL zz#HX4#MYsa_z=y39cTo1$NCZU3(aYCH)NF$=S8wAg)&^|gKcpvIRg zXR#U{su1ogTrqrJ34N|nv=cg^0qB4pKqK=Qnv4sOw`MZ2l7bCxLAS?w^rWjg<2ltP}+Y zPzxP-BQzq-Ln&-$0Y?b9C)~ zK_heqUBaAALY5atm!>}Yd~ckEcVY{?sA)#(-+pP2=cy<2G~-6H?vmyqROMQQ25VzE zZfJvM>(E$#0G+`SG-tlUw{aIbz?rSX{Y#@Cq67LKU5c~O%r>by|4VxmD)B){^c~P1 z-Cj4N9Y2V^17@T9_)YY@_!@n^{)>jT=vCnWYm6(OM~g74%1unaEf z9G387^xW8m*Wx8z!h~<@k`ey?|9CDq;~DXT`O!C{o8sp`qWk)H^t?EQ&h%U~=hfj$ zYB4mT9ngbp09M4o=x&*TM*798+5g_KDSq%RHm3e-wA3}><#H{0G(U&FBj%vVxhU4x zp#%8{H{*9`MCNr316_%B{5JaBXXu3YBq?~~F*KBE-9o7Ip%2u;me?9y>xa=3ZV}qR zH)yi%K_hb*ozQ9YD83M{XLb*t=SDv-g!Y%rqF_Tc(d=xFZmVn22JS;cHv#=>wFK>G z6`FMKq7nHFZD$MG@NP6mj$s|l=#i27v!f00dFoS8=dotkkPq_r3Jr9^ z8q}{vlW8itX0Krt+=@oxzj(cB?=XRG=s@p42X-H3VG^C#0(7a~$9nGnuPL}DnSFxA z(Iu&kM&v4NkAu*eEW@jCH@ZY+`-bgUAH9Ax8sewXNXUQzb!Z2lq6682F2OJ8c0G>f%%%OqxlkRgcSWBcj;Z}W zmVymTLqjwVz42XiMn9n2t<<%lgRk5yr_cc` zxt9I!h~MObA>V**v+d}S`2!k>gP4W?VjC=RT^Q(%cn|d?`cgWLK38f$Mq&q6L%;cC zULW2GSD^2bo6&(xxSsuQ;Ylu-1B;{YN4G@}N7HWz_Z7to++P!GVqd%hA48LJ1)8M0 zur6jF7$(p-dR_GXWGu`>8(fbq)0iET<$LrDT-h*c8LA1kDv0ivcj08Hv+UV}6k4B_% ztY3|0eGkmS+tFPyEjkCQCAsh_1qZMT4fzrDXg!I}S-%g9p&0dIdefK0vqAXXrq7pflc&uK6K!e;-FX z%6Ugd>X*zF(IvSLJL41Rgnq)_cnEE;#c=k&$#%`~aN%uqWE;^?9YzQ6Py9URonc9e zpx4WyOH&&iKyP#jMxhg!j2=u+;s|^Ojr2u#g^3ouD;Z``gA0bVJ*G}7^v0*q0lkdw z>&@tabPgRr?hzTOKMzdxP*Zfk?PC4*Bn6Xg6dKa|(d{z{ zU7CgHKvtjwTaV80`}q0qXh&zzw`aDI;VWD->_q)pEY7a^AI_zI;hxa$oKa!7BwwN6 zj8>v+`Dt_yK1=-^x;>v59lrf8!+z9%!SdMn-msl+MAv*II>0IDzMqS=@G~?rf1?p? zc3*0@B@;JOaE&IR5qK2G;dFGyxyFPC%AgIjM`t_@9q(IHIzFYW$I!5Ll5Zg8!Oqam%2CZpeyeem}9c@i5@e;&PW z8@fA=paU&BF(g+fbml$L>(|HYGtdFfp2+^Uu!IY){c7|meGfgcK0=q~OLWbCMrU#e zvtjxJVXbqZ11y6^qCR>aT!lvRW^^eZLAUt}XcB(?03-H+)A7cP2SZ2Y&}^=Su4#Mp zb=n_oXe#>L0(ASnj?Q!q`WE~s`UN`Bt>^@QKqt5tGjM;Bf)5@--+rgi85VjdeA%pl zK6n#m;ZSsmrlJE}9P96+9qmN#-yPkLCfgA#kC#r$NPLG4a5N@!Jxn2uABQmm&pi^> z^xsFrKrWjc8mtzri!McDw8M62GIc>;w*%3o7#}~M5kG$xU5cgX05>B8OD4Xf(1#0W zupM6gSV+ca(S{eJxv&-u?I&mizCxGaH*_Fp(T>l@dcG;)04j{;P%Cu%_CS+;Aim-E z|GOyILFuW%s^|j^a1gdfvwRsgzzt~j|Baon?zC`yV)PyC$o1oB$QwT%ephrOcBlS3 zw#BB?Ihfr4lPFZeH_%@c?!wx5=@a2S-Wn@YABLZiHM7u$20j&%@=f$S*oSqn^wZ(F zURa;{1iTVgV>djGo+GWEVgH+Sb0}Pe>(Pd?JsXb9RydscaLmG=(a$fS$=7&R=&(C_ z@H~QzaXGqF2hqqKN0U6qb73O+(Q~EgbL@YUrau>4g3;(2J%Apm)6s@rL$~1?G@Cz1 zljta#GpErXSencZKOgkRd#TUIyRq=|;XIgvKDQJd*c+Z;j^r~g^uhh;{%raJH}Y0$ zg?8LwZbs^VIqO<%Pkj^G(53T2G8K+iz%^WNfQ8sif8Z|a*%ySD+AlbR`hbO@-D61# z&M@&}_=RImG_=Felkp)OfHSc({(+9X$)fOiPjnaDh+ZFo-uDX0 z`enB6(h%W}(H`i#;W{kh{vSsniwjSqyI?iCB>$jEmANdOY-P~UHADZCOkX@eedY2n zfahKf1AY}tbA3BHz_aK8|BLkkD?;uR$JGDQP8kZ$sA{w}n&l1Ah+K!R@klh(58@P@ zhCWyLwQy9IK<}%Mc6=3@LtW4#``TC^j4shAO#S`8cPNzS!k2g}p2F*~|LdWFwP*vI zqFd25+=I^SEZX74Z-g~2fNtmd=n}LQSB9i3f?3q7p!an~lk-Njy^(0vPeUWP6z%xK=(c$Mx0USw`h4&o7hLQ5t3rr- zMz2RZxDB&#Lafh6kLcA{2Y-w8%ij$3YtZa}2y5XYbU@qDfu2N{I3xL1xS;~No%*4n z8HSF05>~($(6#><9ne?kjDAJ$I~&cjI(%LZQ?F_CxpwFmmu_f3x1#Tq~c_R7}y5?)qfow!)yaVm{cQiNhd=NUSjNaD-v#<-g ztA?XXIt_hp3D(8UAF%&DcoOSFs4AcXXoj7z2VRZy(T3fG zkK=Y6jW>P5Z^v*K8lfs1`QZ{fpi8?LP14uUNPdm(uH^3&9N}^FJKWjm<)4NFq9wYo zhoSd9fj0Oo8rpgB^LNpi?T(+HK_hhmP1YQn!gHmuKJ`k$WMUu%lWG$sE__84CrgLogL_T z@hc`hQ0jae8tjK|k73vf$D-TleRM6qN0;Uo^uCPm!WWTz=u*u=x8rN*0N10*`5ii; z4qHPzebIhz+{*s%Okpw?%z^FbE;xjSFvqrx)Zbpc6dk}gG{g_14NONnd<*@;vJqdv zvfINKnh!CH`ax`tId+7Bw@2IWy@UPl+Fs8ElV&J($H%b??nP%({rm8z+*+aoeH~58 zkI_i%LAT#gbfC?4hJm%m!PNVqyWk`I7I$Gyd^Pz)$kLzjW-eU3D}?MWY(f1X8j*@W zh7++JdSX6>i*X&g3kLlZe)LMBNA0`lQM&`1;osN@8~vP-`nTdnqHoLO6}v;BI=a6b zp`mGkpJ0150=f5uKRA$uetrNQ*fDe_x%Y;z-_6joeK^*^MK}S!N6&}ezl2;Fj$iox zpGd)wb^2de+g{j#`t?`{UqRP+J$m0aXx8sSlkN|6ZPR`Yuh*97edE#OeI&X79r!vl zLK`sk{r_hQZi_Q$E@bQrBh8C#saHUE!*DdDE73@8M}JoQ3ESf@_$XH1AD&-@cJu|> z@qVm`N6`rtI>10VfB2gY;WwML(1u4v$0Pr`a^fLO$8o=fWSej(I1MXv|MS=sH==LL zjNe1@cE?fF7oba0=x`WFC-fZYfvLa$KZJrI9fOW+IvV=5y2fv#2T-;%VF^lOI`w*(feq0JHbLK--O;6(5`7+X zQBN+TVAiijL-P?jpsnbBJ&A6kTxY{BDT_v=7W#P)wBg&)GkzSJ?Nczdgm@px`wEWd zdg;Hy7n6C&lJoa}C>ZL-e}`-xjW<$1f|K!@e?o|N;(F>+{tbURw&VG*olc`kTH->8 z;8plI^?mpn-u+)_uQZ#rH}y&A(f%VY^8H^aEi?7a=PT^N2Pe@R+NNiw{^CxDVe!`6DKIlz*{cL zOhw`hmZDxOM`r4eN_4}a)Q{k7?2|Jy^`1Y0GYRcuxiV8rQv8z4)XbY=C+^#fm9TK` z%+zi!SMtnDm5um4e&w6uM0+=LrvXMbGfD*b-mEdU!m3UOsPT>ZjYT*oNy5 z;!fOz*%;V@OEVMq;NpCli78mTKxS%57GIW``n_VWf|<$GFPlCon3-tJgQxIWY)~jO zF$llLeps_`X6hFcQ}9~qC(!NGrATJ#8_ql&OZ^Nwkr72RQ-9s=6*RZfie;vLi`E1i zQGXsc;I?AP%+y~xomD(Db&zzuJTsNm_h1cfn1*)r9@fI#B{Ea{x;dJ3*Wpz-35Vks z*cTg>49WH+wxWIr-S<^Xg-8v-megNMQgFK+$61&+D>L;g)FtS9{a3sn(@JM1PGb^R z;yq$55eXB`g~)}}$X&zT%+%D#$}Drq zj#kt&Gt-v~D(+~gps1j@lY*JMJ}Y}m*{fIP`=0sz{D1!U)6eg{=bn4+x#upw>pii#ut)|6ERV-DcRGGW{xQ@kkQUaqyaF|pEn7N+NAWnQ zp)7`{Va)`#9d^z_-36hooP>|h1>hpe16w*qmrd^rsM{BJE8eV^}yy6BEUZSW)1gQ#Az#pbX+<)@(<&VdiY8Bp~X+2yTJUrrTJ z^=?3o&~4~}HQQUeD6BpEUtbz65om}~p?cl}>f5Ow)T4M9>;^YM_1uwS8FE3LqDZI* zR}9pSyFy*mBcR%!40S5rf{o!K*aQ}(m*aD&Bm5iGb0Hs&hm}yLu2ZVje!9)Kq1s)PYYUb_HMj=qNH#-lSPj*1y(g^t z2cbIRg&Imf^uuJRi#G?3fCudQK$_Jq6>6lOg4(_p)ZLal(5@KO(OLtOpw9UmsEVs? zZiVV`3Dgs<0_yv}-jmiGH--%;w}UFrh8^J~s8g{6>RKs>It3RY1Iu;X)5)5ndQc5} zVIMdc>TW268kw6=*T^qW=d@wQnAL=3;3yH8} z4%92zT&M$i4>p5&F!=kw2gzv2uESdJ4%8{A)zxyS5!8msQ0K4{>;RvJsc<3GHFDBs z6>LEHJXA*<-K>Z{3==6%ggVeQFjwcOgp77jySp{AdQexnAL?Rk4;#awP#v5H^&naV zRc{;ANR>mqj#op~{}aZ+*dA5{Gi~;TI+cTZu>V_=8H+&YdIi)DtKemL2ks<>mouEf zd;QW(>ot4=>Z*4>!wm>Fhjq{^fukrN>Io?)_OcG9<-Kv7aw#mK{%{{_3KnFs|Nlb8 zt}JKp?|Mg`wG4#ybq4=NGZSiP!~0ot90ePpp9D1$gZo?iKL_d>84L9Yei`aonG1E- zEQ7jc*4p(4U<&1Pxn!DDzXBGt|XY2-R>AoB$8P9R1^dy;51osWJ=IjJ~mh$g#DC{-Jn%hFynQ|G_ zZFK)&r{gO0!y(W!#Bz8N)RXfSI1avTmw$!Plxq#OBH9?Tjk*7k(NHEseOYvbMA-2x z)Q5USxpJtXzXi4ZZ5R(d!z}$2*n;vPsHwmRm)&3TxrXXKs`rJL2Y*p>N#OXSZl-! zBXbe7(hSUm55qCA0h|Lh0&Ac)+y~X*C8*o(XQ;v}o@#OoWx}x_5eZQtFkn{*Pr*NR;(dMs`iN;{NWm_cq)YO2Q=F@VD zEX)sWRX}dDC3I{-;{{q|QXWOVh246b?aw@0Z=zJ?XPA)^w=OND2Rcv6gmpQo24iCWVq-BsIN?HBD*AGOVnlF|wxO+29M=O5dlX%?7_& zBE$HzzbxDkYW^lGHuxeYs7-tr0!z`;zq1{{&+c*&o%iL|27gpX>NFX6FLgiY#v&Er z^B74k@S0a7yCBg$*4Dd?jn8CRL1;`{BtKDl$o6wTJ)Gou0^i(>R&~EpbtU~j9 zDcw9ITF}w-Jx_Z(-w3^RJToajD_ypv)D0om49V|k-EqkWTOKtXq;QL$g>iLDAgnXh z-E8AOFl;VLj_ne+)fW|ow7wnEGvq&Jn3{6P{~$SA{ZT)Yn}KsjX}1?{w}ay(DDhIT zHN`wH|JoWFaTL9D?Czv>Cv;k(`y6~mqP8Wt|4!{tENFU8vbXs>EAT0Y0IfyxPue{w z3%8}2AyT<5E36lF_3>l?Hr({1DM3=VhngDFdwZ7qX{?1(e~G%=Qn+1M1l!6k8>ufI;C7RbHVpmG^7+UPJ=lzte z`zv~%BHxc^2W09luSt=-U9qN@6z__3`>8pDHBFIn1Ib(@#ddVw70>Qb(P2n5t-!)3 zjLl8CF3~6<|07=AkR`j*<0{B)vS-!OXDL&@u5tuD=_Q92uZnw5Afz!ix=HGuSoa&$ z-%Yn<(w>Bni%2?2{+=xJpoA3rJTa87(>emyf{#m^;sNHS#n zeH>3cahG__aEUKTG^(G> z!09{z^6ka5H$3DJnr}+{-pJ_HsyGW*pYPpto6+r(xwu%3L!3 zJkZ3vCvgW8cw=WDOpkb!>JF%V!owE~IbMgUbet|l2V*@+bjNoGIf^iRgr}k0I+zd= zpv^gnFAJEpl3f;Qy2#WrziA>X%DiFEQrDF3=4%v4`n4C|NL5*qxktjvy{^5~52l}S zl3eaJPf2!puGuB$$^&M$xDR>FpAvs4E9w`tYVc^P!omddzTg1(;8vC$^1G6dyo;}o zNadk~7BeW#wYStp@`v&HOW28ttVR2Qw0(i{2)x=#IZWCdjx+O+8>i$Q zUT(@Hxgy-umEIL;1UIiD$uyVB3ZHSwZxuT zg*SSYUXA@{#8VY69d_4|UPm7=UdcHc>wX)Zn|4&X%95i#^Q#meP4FZlACAA8nvj1< zLXHK(o}w>JX?D#LS{{}z$GY-1TYPLl*a$R7(vv2?t@D+*j{Bn?qvjZ~sNlH|pZI(# znDUYDmdxYfrlaH>@9M5iS(9D`UzXzIUNccH9`|~B((^oe>(0{<%LB!8BH&tx_S5vY zOuC%#ngNn?A|>t;nrb}R_TxOU;pYgBWw!5AkZU$Uj-LpaYB48$+(Kebjx!Om_+-HI zovqiOc4z3RNGeYz8HadIg}TO5H=90FCH|Dp43*4NY384@_*6>7XlhbawVrS5D{gM^M3U1rdG)2NdY<@Iald(y+oPc;czq;*Vlo# zk8HnGd%2yTO6v`Go5KuROp!rfr$?+ogWrG&rgiqgu>gK7#b3`hf0Zt$6HRxSc{T^IwL-o(t7kBr=>3Kk16wGTgPWu=F^j4ngdTFdrP{UiFLn2jix8jye2cw zc+Ed#$(bb6RI1J-ng*=7$gnx+e1=uNqt7vo{1fO#OKMe8$YgR2WM)->7hOSBsJjK_ z@0g*BjO+_JUe(jYN=&uSbpiPm3cSdSt~f3XsYDKS-%+}Vc(21kI1ZVGC~&7y0uh&2BduuJc{zqNhn2Up1L zODQH!2M>?jS2NRmYAZYUWM6%C4p$|zB!GEyq)rDT;N zBT+(wi0b`*?{nUNKIdHbb)E4$zjLnpdChL(!bMmNccC4g!V>ro zI)P$G6N$oDF4`1x(0`%_g-iHg0Q$hKco9xUXD}0u%=7W{_t63EMjJke+3t)aZ)I~dP zjLx(Jj>mzR19#!2xF3D~PfXhJISRG$JQ~XCzl0?jh|{Pqz^lD}Jhf(t`>_Z0jp$lm z`fIq}3(b)^vHlj0qW%XO(Hl>MCA}33Q6F`J_&ef#_H7X#~Qc{o$+2Y5{J=#&SMeGaVnAMg;}SFe=%_GyUum?1it&0&%uBr!n#_GLKMp`AIwDEIk=~CvaSA%p zC(#ZTqLEkxr)Mi0GYYM-$PG9>zTB?56nn{4=TNlZjU-7@9Tc zjcf5T{1i*!5v+)re}$PP4o5AA8SQDq8Pb6mH`{=gpb|LJZtI>(Q zigcU!1Pfc}_)oZT5T>>XnryeCp&o~oaVmDfl~@h`LkC*zUk(zy34MM)I+35yCHf0H zW3K-aiL%%W{d^oI>rj|Xp*yZYLwPaBkq;I`Z>)sfun`*4htZ^)9i5L3_%(FR-$w6S z8|z!pziq7l9e?I$^jg4^aTY=wL9J}jCm zEw#PoVrlB9aSRs9ot8?zDL9S#JNPKJ$rB>C1uvz(8}0Bo8p*%VfnS_AOsEtR>13h| z1=pq~y5^11k#|N%+5?@zb?BPj9_tUG+xAJcgT?65eSo&J8OP%{ct2j9FHCF)K4ATl zw8RKE;!X7fFhem7+ z`rKr+gD0XdqdD>pF2T>y(2pw??weAK{a=g=&vL2vv_!} z6grbeXx4X(UW0agJKF9eXvfcDWn79c;?5)m_wU^$!Wut^WvH(}JKTXrVlO(N6KJH) zqq`$l$*>f~&`6d=m#jLDz(!aFU&bD|72W1prP5L_v*ch3HvAk8!q?D_vtJh0IuAO7 z0%*q-qYcp{?TEE-5I&BNq1*1V(qT!S#!}Q@MkBBhy?+N1>0}}^E39#8bnO~p7wn8K z#gp;+n^=wd2DHKB@$;NzLef@1m$Di<;0|cy`eQvDfj8g+td1FFmHk(nf-@V0Mq(s7 zvk7SEW?_ANA06N+G(u_RLg;g#uigCkIu=6*@DaM3cB4o2_vqSZE1#C=jWw~W`+pJz zNB9*s@P-O$iMrSfYvOI#1m|Nz+>H(>Z^ck=hbG?y^c^x2ZD%Pq$Af52m97*9)CP@g zCrp~XH^dJ{<7DdN(Czde+EK2`VdkyTf%QOtQksO$Z~@xRA~b^UL^sCk+t7&Zi~fj4 z{CH*dziV`X3ywTrmC$f?tU$dpIggMPxJHlAcKXiuJKi&Ct%Y+F|V% zp!@%AOdaj$L=NELere7yb;I-nWoK<40ad^KKwvTg|ZJal`# zjt=~Nbd9&7$$SiLCs8k4&k;?QqhM%SqM;m!uI=?`gZH9YI}9 zKy#rgcE#HG4c?0mpl^e)gtwssycdZ`GVwSCAABX=umpYJJ#@xjp-FWR9pFjy{y)*A z`WqKuTElSPi)d)yL~~{>+Rhi)2ERwYQI&3FB-nrDC|t*dmgob|qa7|w-M~O%eJA?X zJBXF=7xd^Z*f^Y=4bg}^8GRm2($~=4v=VK9Jr2XIc#-?Rag)$tYjot@&@#eHJJGjeo~B_*DxfpF9*xWpbO0mJ!J3aamCT;LN3i>Jfzz#Hf_oD~X zX>K3Q&n)4-;IWJ zD!OatMweqY>YLH$x1rDN!vgOALlj)|Gw6s5bq+JEfOgajz1{)cZoSa~kHjiC9-Yxk z=#je_U9!XIc0P^{;BWK*N?aatrY&Z<|1YOth=-$DI~MKmkyxLDhWu5mjBC+>9Kl=h zU-bUrSA-c(KnF4fJvUy)zIXs{#3o%r63@qEdKx38(1{Oz>YA4NJwUB)X^D~4ljy*H zMfdMnbjCHV3~SsM9mrrbB6p+rPeKoxndp)%LMOHoU8;}K9NBdx`@b}W{amPu|DkJC zwR;Fz6LcH3iuImoNc*834ULXQx9`O0EHq+^up)kdF7Y9ByQW_i?!Wk|Wcca!GA{T* zOKgc9&`?jpYPc+Z{taeO{{bE7;duQIbVh%pYoF00^~N0;&;%)&)za({|G_Y)4q z|Ip`$_T_83`~MjVuH`nYglYZK5;tKLbVf6<94fKg0}NEy0q)iU9cG^;LdB<|Dz~eH85o91~kdOLUZD0bRS=cpBESuUd!dsBX!za={G?r8gCu4Dh(!NXjrg3sYyxCtj>^TA<;YtU@| z6m9T3bO}zPGt75=7(g-f~WuIDj9}efeXo z|A($^=8$l`0A^9Ij_!tTXam#H2+qL;X?!t3*Sg!y;q!jjfcg#SE_gb+9Jw!<_>6)h z{~GP^TXdvH(H}%IZVA7=Dvi!)4SJ$|iQazzJyK6%P5diBzLi2RImA%Tl+62v$TRQ4QS% zZO}+`LI>Crjlh6-{SGWf|A~7kxTbTlJ}$-7%+QnUWUT*-4lMVm@Gbd6bO0x!e?=3w zhmJ2sll4+`0F}_l)k3qsH70!t^rYba9ffA~3^W(sK$qe(bmWK72G64n=u9rd z8CV-l=Jn_RK1QG4g6{jh=n48CI+3zt*#F+xU`*(+8D>y#iw>kCx)eRpr5KFv<56e> z$#{J>I^czv+OBvj^><>u%$*@OYNGA6kM>N)!eDeQZ$oD=4xRDDSf3P~g4MY`0}bW- zXoEZO2p&WSvUzOy{7ZDe$Iy_U!>X8ZSNLL+tVzKe2A~}eM`th!ePALwut(7M`%J8j zFQIF`1Jm)3=ovJp&Y|rU9v9jvflpGefXnbb?CAc#D(%XJf$qBb%0lXADp`jj#CfiuFgUM*xa;R{(*IH{QYT(O}GS4 zy8lN%KnG;q^$&*7Pk11Id&g>tYf|-wm`(~g6U5IA?N_4;< zqf4>}o$&XVbOy&L_~Z9q=nM)?4*RwmI`ekuKn6xfV;1#C(1u?{_xby1ZhVa%#hH(W z6SE$gEB(>P-i>W=*`w@#LwAx3`X7286Mf7@OY>4g9h9+POd=s7NujtzT zi*DCKQ^SPHqt7>u^$zI3ubIl47}8N(u%l_{i8mi@;9a!gPq7T{L1+3m8mR))LgXr= zyQU-B-qo=_3XR-Etbw!8cGqJg+?tFRvQG~k6~d-`P!SE~^_YdT(Gjmi&xKFXh;2hV z-XA@VPf`i|>G;k5x z;3eomRSum%4P1iF(JViT9`S#ok@_25>WgNX6YRfY6nwBedP6-l)U9K^7dn9JTnDwH|$L3p$Y9@%jODdmcw4^hdm&HakotH(u=i&riXIN?|*c0tw zG#ascV*MdBGLOajY_z?3=n}k&m2fpS#{FoH6n%pIZ#KU{VG(|Uz8*(D85(#T&F1H# ztI_k|YxH$`9LwV+Plf9Z&|PsQy2dx5Gard=%X{MIv(bpX_7wZyk-ZZyd>?Q88Qpei zb3#N4U_I*Pqy4Y}_33Cs8_~#Z!zOqDjZlfX!E$IMs-a8U3>|3qx$J)bT7JX zrlJFQ0ZZd@bmm{84ID#5{0|!X98ZU($%A%W1kI_^=u*~12haw6z6W~WkR$~g8i{7< z-RMB>i%!Fu)SpJbn0$)f|2diqyJGzZ^fmko+VBaq<1^?IT>MNJP!V*3718ID%_w+7 z2lRof(T;|q9Suhx7>ijr72D$yG~}nSKc+t$A~_J9z@4}fA3&dP@LXD=HC};!x15GV zdlpA=)RtXhU)3)E9gsM1-dprqxbz8J&(4SzA!9NakPFJnp_Rh?b;Cs;SFf$ zH!NhE8JnH)hSTW2&HrMEQA4~yy+8UupO?a0?N&4=rl13vhvv#lXvc3wH%AY|&(ERB ze9_Axhw{9f3~67K3pP|8Js|3#$U2zol#U}VE zR>8C-;qz+fk~KsJ-VW`!8yb-t(ShEI+37!VI|Vx&htBwMbU^c>OVQAMfHt@V9mo!> zf&0;!=2;s4NM!&XrT#ol!pX}*a_4>{SPi2I4<0d_n{4)M6)&R zt?)~y66p1QXpRhz_509dd_1}khf`mHm9W%`aDNAM!2QuB7=kX*$QA5=3lq4Ig_F@p zyoPr8F8bgW^ub-|66`|3|OW3iR#M7aiz?c>NJ{U{6F}iLQ>HZ$|G=?xJ8a z9E>-dMrU@>sxXrh=z&xX8)8#*-;YL*?nlu37oib)58Xu@u{?f`M&cA2xxdhXr>#z1 zPbTtG@JKC$j;I8BL#1eabbxKphI*j`xCULS+tJ-{Kbi~E(3#JR^*7LDT#pX;C_2y_ z?|Kxo|1P26i0h&=ZHBJd6<7uP#p@47XQ2%&Ks$a7eSRf6!w=92eS!}73v|DKjh>`? z(EGl_vhM#Q6b#|TYrl2-!m)gpfXkHuy?(DW+zK4(tOo^c&HEY)1$BQ~dlix`gM^ zU%BL18``UYCU|f#tF6mN3vxXe39Y+x0GViKd{>&5ka{RPG>4o=j|~;F^AiX6sRO z?a!fWoA!BF`@HCymBkKN1x>C|=me&tXa9%M>R*I*=b|0Hgtog9?dN^$#z&Dp)>4@=D>V3grB1K?MDajD|%p^L)Sb9qc?|IqSr^G z5xO5e5$B`#y@@9GkC-e?A#G76w3XR+cXh&Po4)&o-cL*KGuV~JkMsp$K`*432`jsqMn?g?t-O;3b5q;n& zI)F3L^nD>@dC|~UKs#)RetB(%cGxR^J}}ltqDwM1UVjixz9+Dp`~S`O!PjW052MNP z7drD?`$LBX(A+48&b%Eu(BA0%H=@ZlE;=0@=)&jq8(H`5PkvB0q&HprlGm;Bs%c7(Sdz{>G(g~fnTDLeC5aBT6AJN(Sz#b zkI9h5d5(k;7eJG!6uKmJ(V4c2*Sp91O=!b+qT6aZx&*JI17D3k{}EQhFVV=s=oBuRz=HhdzHT z+TJKM(#eM@*x~f(Gx38(=o&7I*Wbm|5sGfVy=X_jqW7JTpJzW7wsA>xrnS)h-U$u; zjq&=uNMw_Vrzp7guV52g6a6DzukmyEybU_j-e`yipt&#<9ndIrfDfSCZZ0~2H_(B8 zf-dC_bU=r(r29YdOSn)9U85%GQuIPcJQ3|^4w`H)L|;Wi`X)Mo4QM2Hpx^Tkph@~8 z+Htny;qyZ15nUEb*njo-L1(nX-dF=ip$*JO*L*Eb!0mVycKbDa2Yen=OMsNDK9Zzh2wy-$@)o-0>(Ef|LnCw|e*O;{ zp`3q)zZ+f{CsDr(JEpM>u{ZU$XTkuUMwjGyY>2O+9q*6VlV>T|VESKS`{hOJozXS# zg=YCcbburAUYroGpG60H@!4=+F}#*~RrLNTXe8#K5u1nAa3ykXBoq57*ul@}5}e2G zn0_vdyeAs6foLeNNAJG}JL7a5gFDf+zx?lz%(q}&>JOpGxC$M}$LPeiU@7Tw3o}S8y64{fX!75yETQtOa*d3kOL-G1s zXoR+)$@mpsj=S&<%(^HH;0bhq&!hJ(L6dShnuOcX34M>{@klaW$dx06&WJ{DN42AANZp#7g)t+HS@C z>8V}Q7>!6b%;Wy=O~L(rBO0>tXoIiD>l?8-^*!jpRH#6DVk!MU!-R5cF&HSj@tw(U7e{x8)&pmz+eu?f#2? z;Ycf#o_Y&r!^YIhqU~OT-aia|{_f}`Od6WUDLA4Rqwk?J+m1GH6kU=t=)sexaLD4a z=(ekdhO{BN)-7>N8ecf@HtL&-gygJWH0-W%*of;(in9OB)9b}Nyd`c`}rP0su!(^D^_S~!yWGMt4aN~Nb>>&wt3yMT4D>t*Swe-nNm zW>LSWH2c2;h03MVQ}2M=&<2*GBX60Np8A@-46mYo5?zYcWztjsx@9<;WSh`6{xw>z zY&Z$~<9e}T6&^2158$@9o$eOJu#Q-r)#FCem(bCtq}UN z*wFo7taf_h9&We_d*K)8l9Z{Fp8AdD&Dewbhv@Z!b<-tdY^(lg{VsGM^YLmt z6m8TfWcf5S#9PrNNpDOW z?2m@(Ml?HLM6>;(HerBu@I&f1;cTqfHZ-&bUBbW74(@7~p89t^wc3aFCZk94C%6+2 z;%0oe1N(mig$FyPCw{=D z7VDCp`m0(wx`ylR(cN=tw{XHfhMCmocT0u~FLJ?bUV*Od88jlzuMA7k5q;okd;#ZU zHf+&7*bY64FUNw|6+IaTqwo7$u_xY%zAZmR+uxI<;K&c6+i%5H;fURhCgXAR`lUU> z^(I)I`jzN_?m-*6A3fWrM(4!qFQOeT#fxw)`mWf74lKEuf-i^d=-GY%3*i~`!Q4H= zj7p*PI%r32(Rad?@$(_*H=psCA0NSd_%s@+*U;zRK-*uB4RuP(=j{FM^Cnw(E+SO+xZ;5e|M}OK=1n%OX5Ynl>Jwpf^WYz(f()y zqtSufi#GHKI-|$q^#$k>ypGQB4fK1!+c*HXq5HpT@9_Cxw7sEdd!y9-Kc0dOJ%mN^ zQOv@HXu}($pP_5G6&=VfEQ3d|1Lo+Hp85|IT#0V$XVD0~hTi{Xtgpvy)IY)0KeL(B zH{7rQoxyT+q@PE3pbdSG74a~dGr9VO=Zd4Dt%|H!LB$9UAlefgtJ{6-X+N*6zre}`a%Ebt>|0oUi9pK4jsU1bhm6kBee%zlAq8S z{f=39@pa+*LREBt-OzrnM%%dtdFdq+H-$oCE|%wmEw}HIrlTKJGcZ9Z6V zOZdX^6%M0bZCDujQ|MAWhea9Ca&#t}hlh}V72SpA%wF^$I)+B(47wC)w}uE8!DiH} zU`1yzgo4>Q9lh}tbS>Y@K- z5+B68w}pdg7ABwL!lx7r{f(o-gOB1()IUQzs&RYx=F%A5-(&G>d=#(7fuqBKm!sML z4myzaXe2JXBjiRkG#A>UxzqU$_P<%*mkTD}wdf3QkM%pzh&+NGF!Ru}e-)aPpQ4dE zgbwT|md5kwE+{c3(`>%@9bw7q`O;phM-qBEa~PUQJyEW8=r5d8|h@gUmJZ|F&vF*ZC{Bw87b zKoc~QEz$crpa)ZbOvhp907gWU=yS>06imLk@q^`P#~-01+>VCs5IT_m;^+DA3fnLX zJsG>89ri^Bax?bC+psBqh=%?`{JikE)K6B)L@5fsEUrV>ej0jG&BQ9WDqjBqoylQz z?S4X&=_ERn(`d(kqXSC2J6z8bEr5Pr1U-N*!))&VN~r=_j^+8F9=5}NX!g#-XYqA3 zGVRBQNL-Dbs1HFyyA1t&1G)s;&<+nF$427kc>Oqo{kRW@rmqzZ+M;y zCePdG+I@^(|1w@bg8xuIgUlb^_yY}Xu7^T|3ZiRS4$EL`^tl_*hHs7a@n}vw zh#qKDV*Pn^x4eQbX>u_IA6$;F<2p1Vw@eDZk{OQHH$*q0Iq)$$vwdiTzoO^G?`Xpr z4~L0dj83EkPRDxafH#Ee$;4&~HgEv#=m`2_@=GFNG{F>_?L@F*PK~CFsdm5}j!SbcXG* zGWN!M@jmpv3+UUg&@{e)VCm>kbUQ9XciDTf{uN&4{@+Jo4E}>{arE@`L_d5RXJDSk z(o=secOE+OtQjG+mC?0rigw%`-T(d3wZ91s{jKr(Lum5OK-*b}slWg8ItBOfW;6oF zqUX@_;NqDfM@pf|Sq+Uu3(UeR(S}E%&p(KEJR8lG#b`SpqY>DH4*cXy_P@!O`FQA{ z0NOwn&cxbiXg8oQp>JaSG}>_9S>at#8LfB6EF6Z;a4MQ?v!lW@V&n!I)kxzH%`SnFypBZp}Vj;^+&MNNr zP%o9FFp>}IqM=!UF2(A2!)|O({WvzlI&;H`HVoTP{{TIB{>9DM_UZJ*R?PiO_{nE4 zzD51wXTwC_$KljJ#u}Kc^;~-50SbdK3-_a;OUw&NlmlIoeCPm6V{L4Rz3^tNf*+s* zJc4uaviYIIRp`>KN0(?X-j1iS7X2rNJ|8}qgRS{sIeMi2hMv{!UI@w59nFQC(TLrT zZp#zsQvHJt@R9`~w3X1LYmVM`6}l^~L*Fe!v7`HcA_YVE5jyjW7KZH3hn~?{XariK z*?%RL!@=mxC&l_3cp3HW=zjkVJqiCsJIs7BOsF{8PDPxR%-|P;6v}g9%PZlAljsBI z(WJ@0DC9&%G=v?oD-Om_a2XnzJ6{cJ`WRND{yz4_pYUdE^;#IW$H*d=s7d`{+US zza?@1@8N>m>d)g~EU_${=@YTP*ReC6#pkij8{sFNAJ8Qm@Mf6t za5R!rqR+?cE8k3p{l1+GCeQBp!HHPUvplS2c{G{opyxmbG&gQQBXB>ugwLQku@0-^ zQMBEHZ>1-m#;UjwKf*;gB)KAd6Un_YI0t9*LDt)08?8jQXP0-vJK%pfk9v<)>4`V+ z1e$E~SBD5L#!A$`L9Fu1GefU}!p_Ga86xZ~{8hd1zLzK^xo? zKR=Fcr@U)|g`y?V38(a}xk4ESVbi3|AlkYtGeAfD~J)5G}2cQE@qD#CGUE1}S^vwQ_!uxpXhH!>| ziFTah!;sC@(Gd4RBXJ#?3wNPQGd21w8o|ZUx1;NDGS@%D#(34naKum9$o}ucg}w1Y z-H*aSF$q1n9!F<-Ge0&tAW5rD&f-BL9Z9pe-cvCVw zaGndETva~_+o%s3%857t=b#V%h7O?6r{ULURj?BE8?iD@L$myC%)?-G=X>_kE7p-Tz<38}^`UdlcO+7qB#5wmpQZC7N`% zqeth%XtqCzZqMg26PI8MT#n|{2^@&UzYgDo#-Yjj1XgzcucFW!_hS||*b(+^AGCve z(2gHQlk8a>jUS=e-e4!ml+O2kY>nUS4oO%1+h9F3VqIhX1~hl>!K7<9n*wKX;(N5i zU(gYrMw6@P-f$9@LF?7g5I4ZaY5drYZqo<83n89@X8p5hM=Q~YZb2t<9PKCVd-i_? z3c0=y+pZ4!vgwOv>s{!B_o5BGfM)F~bT=Hu23T-k==gGUZ3mzO9gO{On4dGyjp(-i zdVg5LU-z^B-Ch^C;K(lhAv9104OuPB!Va-M6kY3y=vq%fXFdas;2b=FFQd8i$br!Q zv(XjNE$F}wCMh`6W(UJr-WKnoJ`CLrKcHFrJ9?I9917Pfqcd!Zjj~JEqyw=Rghdv+<`91ShW3nFbgLKlZn?Txc@h!+v-U4G#b*(pTfusU|s4p(TH4+4)hLm zAd|2S&O&qIYpjA79}P=U4?V&=VN1LfOS}IUQ?Q{eXfAw*hU!mrdtGuYgt`^_QtFIe zUx0>k8~Q7p!{~tjLw84>pF_m5(ED1WOV%5mz_r%h|D)mucVl(x4`3F)fp)YFAH#pq z?4ABgdg{Mavgpu_^ z8yJFFI0^^jqF3FJBx11f6<9#KOL6%5;XK> z(d}99H2dEHbmD^heLNb%nem3_up;$0u^R3|b0qytNY>(L2UVi=&;zUm8qtC1t{E1c zf=2LlGy*G<6x{!xq7QD3{)(P>x&I2+%b^XnMU%BVmci@M-SZGO#06LzcgN3joDC7H ziniAP?XN3#$K=%%oWV=zwpoT|@gX!szeTg13nMOuMye*Z!uDuHCgHs}51m=@zk{{V zgR4E7e8cc2{1g}Z{;z&MWbsz)!5UY%5Rz%!Kk11f+_(p)V#|MH5@B2F-(Yhr`CkZW ze{>)>pgA%Do!Gf^3D4xMT=1m( z9qph@wh+>0XqI!O4Pfc0~&)>a2nd*JK6dD ziy=SE1+zBaMd8NsXo#Al$p9v@HP-w@6CD;p3qPfsMSIE{!a0K-a(9l=OosoKdc11%t4J+V#Xm-gNMzv*WE=DE|0s;+!tdx?>ZW|bd(m8&6YI;-wcCtF;tzC*&Y`)G z?UJxm)zJa9K<~Q|-3`Og$c{mun~1sH|Bq65f(uXKLs%t$Si5EDfHtB>>|Qk4&c@G+ z6v#;ZYPCALJ@?@RELboj^}3#cCS%DOSGN!XfAw*b?HBGih|psT%iz}CTN2L za3Rjb*Rf9FaNz94Eb7P5=W-UwNWH|e(B$fg({K>F|Bqp7{0&`#y8Ji&OzK-Owg1Oc zaCpR3bDy6FpL2K)-@5L)UO~yuJ<1iSIEB|H3v{v}EXL02+~-@WnLV0cb=@ zT^6=sW%OuohEDj-%h>-GrgOoWyo^R*4SJ?;Ko6enXp)`57qL|7@Z1J;AMZi$KZ(vf zEh{7S4JjA;c{{9!1F#nZn}OF-Ka?z!k$N4rEgL$16@7odfp)wfk77o-kp0K89}N^P z9~vB0AtUh@pTC55{9MHlu~*PYEJ1VNLo~9RV|_PPqn_MP!R?T%QaCV*U|H&Iu_F#a zXSNj0+I46SY{%d5AlASgmBW4MRl?_&qR*9&Hbf`X86D6FBr?gwofOQ*Y3OTn9@^l0 zSQn3?CtZoE;U&`yo!MRJK&GQhHxG@#Tj*>2{pi_vy+O6G6s^$Y>w`tz|D!3GWK+>( zc^p%rM04Sl=u))9m1q`!gm(NTI`ALST*|1PkywW%(3yUVwto=4|0uc*|55jUy&7R; z!_XV=M<09yGjIml;cPTgFGQE44StAjzg_4Ooks_ruVxrp$2!;sU7|7Q0H45SBUXTLJcl-!f|K=>(LIrL_@w4eeg&03_pt=P-%5Tjuc0ewi~A7?a?tfG**mXqIPh5tgP5`g|LlivzGVCV!`}i9)@W8L7WwaSl1= z6MwY|p}M49Xs{Gk;J#YuiPk&TN1zj!jVA3{T!ov^0Zwcm?te161kII=$WkQv%iy7- zlhF%Ug&QvJ5Z(dx(CyV7?RX^m4w!__@OkvSScAS^e?mi>*)beo6|pt-k=O&@z*?B- z1Qj z+jTM8?t8cv|A%F9TDP!-Z=mPKrf%&2YbgB11!sKqmBE|Q8Q&A@Q=`vESH#ahLHG4e z^t{-I&h$|9PpnBjTldgzee@vfjFquxclN(CzK08j`muP!3iSF1=r^FP(VSO>mrF8PXkK$wT`pIbWY`h`u>d;{>w4oAcQdUK`RY$ae z8`01WL*JIO(T?V$Nw)}%$V#-G_t1%KMswsFtcNG?YWIKHUKy#sUUwIo#rb<@r2crU z3O1(x586P(K4IT>M3d<*bjhB=#qHF#N+QD1sK;A=_;0rW|_M+{bN6&>~ z*RcP+(2Rl&^hX~Y5*>%G{S@@RMd*w^Mz>qefuVzZ=s9p18tRIej&;xh)kl}G1^N=| zhE90sK=!|(xQ`1CU^Y79=h0oT4BciM&?EC>G>Nuj7XF0oF~^`V&~A7q_2KACX+Qd0 z&TBIgyRayF!k)y|nD;vNzb}*S*M&717QGkEfmzYlqU)o(qQ6En2ZtZCOJHrDYlr3V zPBbZ>Mw4_C*2mv43o9nC4~0(ATcT625;rWyHfhWljm)Jt2Fpe3M%$p@im!?ejZTct zMhEs9dX#^I6){=rrZDsN(SFep(fe^IH$I8k@I1QD(}skBFb|cJwE9$AY(of!>H+sZT&B^yzKv|2`CUaKQ$vjS9)u6s<2r2eurI z&@OZUN8;yyq65yjJzUR+E=?(P0Bz7E7>rI}40bMF$kPe{(JBxQ?_B+BiswB3fz7d^J_Ay~Vh0p<2PEv5hb>oFT zXtE7PLwXCkeMX@(osOyGL1L)iH6!yg`cV?viZP)`?f?e}JoX_>- zv9Y1y$#;eA@&r1gdFWcc72Se!s2@UKJ`=`;Z@*7rf9hYLIaBfOu$#J}$$2e0z_IAQ ze-!KBN+dGL#E%pVX_fI|yLCs`XcQWOJMbPHkIwisdVih?A++_-8IMB;{0MsA3(?i+ z5x)&5;xVj-L+|lE_TOv@hITO;`c>$8ur9g{U7{b*$Yf3oOHd5W;%aDeHb!%xGkR|H zL6_<-?1+zI7H&h={uJhQ|Nl+F4lceoBlQ;rYG4cMQ}H(Z49j4n`@;Fq9}VGTH1un* zITj?Dv*A@}MEaoLkcOZGn;Ne_jYjHKO#1rWK*2TI5pVbjozWR|t+U@BLRtn*#wO@< zebCQ`V-tKB4gGp_ckD(7n)yJ;t%m5#TcOu4e}Mh(8GR2I9O0zsY;^4xphxMe=!vxy zU7FSCl6{8GWCuF)U(vPx107(V2SX&vpyxqtG?LxXr5ybrGjyLn!UdCR4H~-r@x~Kq zN0&SlvbiL>ruER*X$Q2SyU^#Rp*i#{I@1@?2`-JkgAQ~ZI>C>V6rADbn1NrS5AHzU ze*4fFrcDZ8HjASVUWr-Q8(o6C(Cs!W)?Y(A`Ut&$bM#9z*LGt?OrEE(okH1%Gg5zc zds@>t`yXLIcxZB1)1Mv<1Njeau;`RvX*5C=(GKgPxzrea-F88j;^z4IJ@NAgkfq?i z|3Se9SD_!S%gp z$SckWzbop7J>CC1DRjijGsDR=3ae0m4*h{-6Pl#w(f4@G$HPqe;%6kygV>YnU7id{ z`8;|aY{Pn(`>F6;Yivk;7&gTPnCwAeF9i>h8goL@O~ww?7o!cG!fJj#HylX)F^l?V z=;z1Kvggo& zti-p!27`oGcYh@GjgK-)Qw=2H3#!2-CNdRZ*YZu%C#rT*K3 z@KXCCxiBO3ABXMyVrcjqbcVm+4frP-+P*J^6Y@43M13N5#c$DpS9&>o-U{6X-O%d; z(fjVi#`qyR!N1YmNEUe|9GP9vGkXXc>eR1&!qT)ycSUzJB7@QGc?Y_- z52Lv;6MgOrwB3BKhF@UR!m{rF(G(o%ljz8oqWkuJbmrUe6du9Kxcjwmf8zBp;G*b$ z?|>e?UC`&R##(qYPR6}TLxdZoWdF6K;LD*CdejcZEKH)iU;(-$N6@4?iJokE zmW0SvLH|gm9UkHOyrp3P4=oD=o{MF;z5yNJL3DsWTc`iTzZ6WK>~Dn7rXiGR`UT;{E?1l7?Aw|$HK?*o@}!3GAQ zOE4B|;0!dmK0w!QYxFR>B!8nxm$4!&Sz+|PMrd+&L)*I+&H8a@1fN9vU9ut>3hUzs zUt>c)_!(X6GAl!fTSYHNJGdINa9FHQ#k$lNU_Jag)-QTH)SIH&e;d}p8R&pEBq=!3 z@6k0r5pO8)PMBGHG%|hBk&nVk_z1f8Z=eHu7oE{o^uB}9bMf;_R>jve`dnS~i%YUO z1w+^aJ&JEaLpu{qmZ#CRT7<6UGBo?YM04OcI>57Ns4rO^22=&TzZJUnH=sE&5^Z-Z z4tD=P6bgyM=vm+4-S9^*J<;!SucPnxkI?MihYt8~^e=QEIoE`l6~-#mv(S#OKqJ!| z({UJ{!4X)&@BcTx7uIr0bTN7oevXd#EPAFV-VbYd3A$vp(a^U+_jg~kqw(lkKZYJy z%h3CFp-XcdeLmv@Uc>JHODVYa-O&(^L6d1ZI)L@q0zX9`%(gZRurOAj-VS|k7~0N* z*c}(4&!0h;^j~y0U9>JNSusrg`F|Y>&Y&qe(t+rMcc4i!AvzNc^~>l$mZLNN5bby; znj7cPjtZ?0_f^6y>W$G|)gN8baqHRtJ~*2T^>Gz?@ce>?s=$UYfGXI9dP}?#r=lHw zgEn{?P11rNh7OCP1FeQmtPz?^{n2eV2CL!YA0|UKe!vB1z6D+TAFwv&*%;QaB{rab zGq%S0=sRN{x}E;PRA@g6p)Q6dX<2k44bbH7iVn0t+TP$K1-H)}G}LdP4Sj@muoE5F zpXf|-ejHw_)zJoqVHUoCkKqQq3$NV7Z^v*G8ll3Ugr6)hwi3ITl@nE z_TLZ+9vExTBsqjP;6Ks9pNBR52>WpT3pBaPeG!(X7N(_faK(D3|Ap)xgl@aLF%==S zpDFSBN-XLA|G)x%gNF1BntcDDGpV^XyvN(14P1pL(*!g(CZqSwM{{U7-in)WF4ozG z3~)2{rGEWaVL)pzX+s}U@W9xL9w?V>4-K|Q&+5L|7Kfk_dJSF6jp)*Rf!=olr{V>4 zsV09Nw&OGC02ialxfcCmQhx{g--g=l2pxCBuGGh%Ij{lU1v}6X{(-~sJo?eI9HZn7WM7e3jf#@_kX?Jp@TN)+Fp((O>gXpcVjpF9GywA zJ>hS;RYwQuZofU~K&yNc238MmrrsXi1xu3@zM`-RUGur$hAjOIZ=!w% z4cRq&!@;v1jYz@o!iiWHD^kA?7vU@De((By_|a=PdekmLPudT$CH{y_Fj; zyBSU1(a~vmk^BD@3WjJIx+b5YyW#+v3n!3~CjQ2bSm4L78~URmorgwh1NyV#r`Q?4 zz{yzXNO*oe+Rr;^M8Cw;zyH}o!5O9f6h>MA+fgrxHas|bGxA?sPTYp+IP_RZwqZX9 z$6;0Oe;7UCmZNXW6KL|b_$4DT7N?~3Pf?#9>t#=b-<&i=+kYBe>eo)N|8028$&AExI29Y>&*&PK zITg0m_2>Za#Z(T&>x-kGU`0MZh%U*+zlD>s2G*tC7mdtRG)dn<&x;+uB}3Bu%>|Pq z_wOP5E28x}=+WE-O{QDW6YnK-Ae*oUeurbQ<{#njguaNbb+11|q(-6b%tX(XrFa!? zOHyb~A?tKVwn69!hvD=1DB4h^Ga+SO;2e>=9p zzu~Leel$sQ{1+lv8y};-4d1{)Y*O3HotDY#Jjst#6x<%4;7fREdS>dI&%1av_3zQo z>ttl6{*S_wIMVwvGgF~|5QkC!3aeqWY?-OwrrnH&`a^7t=VHBX_D~;=hv`4@5(PVY z^rFmE5`Bk{Q@<)lW-1Z~ur&3O7iXsarbKfbPJK5%gKcwWrrz`4;VeRXXRgdtl4j47 znVNZJ?81GkunMN<%}jlFtd2>O>jnz0>AmO)Hy7Q8`_OGtC|`K68P=md1l!;<*Z}v& z&+}iBnfmFr8Mf#8NZf-fFdGA#mOnFbC(bI6nV5>%FU?G*)?`+p%+#NBv@V>P`eoCb z=n1$F=U~|)nThLh4fe+pMKe>sm>7%KQ2!3yPK}FYroQ1!!3oq4pc5HbJTvvr?Vdn$ z>o^X=N+pt+;ZH6~WF|IpVLiT!50=bK9VE?4Wu~(FI;_R@acD=cVjVn-?(3?TWu}s@ z6Lz3J3U9-AupgE$ZL$$zY>PY4ZC@mr6++bu+i>9-bi3`vx%f9W!`WprQ}6YycrW$i z_$Ll8o0ObM|HZG_B|JKeutja2D;AiKd z!o-P)2u>M1*Is+=wJ-1HK#T?O@N@VB90a#VI-BQ%4Aahc3R2)eXqJHSkM89wH5I(~tX9h{ElESAVv%j39? zPR9-8L!nMZW}LM>mqQKd4X8(Q=T25cXTsx@>!ALqW_f38H#BzPWzFB8aI}uM_H~;_ zoJ}X*W~i^-dZ;JXQK*aM3LFlfNN_e?JSw4fv>xg`-?yu?=?Zoa)bd8?19w3Bb?k+D zH1C6c@JrZ2_y2cf#=x6U=YE8j5yKg<87=2S-F6EebvoQ|FVqXhWvHR=*v*RID5wt2 zfp@_(&|meS4&-NB?*EwOhzpj4Q4vc<6$V1}JP+#GT?F;LJ{`K?+fen_LOqa<+58FK zPx-z?%diLDM>!d){$RU28R|<)phjX z+)$6?XviXROoZzAZm4z+LcJTFhkAg03$&s4t~rSODLJI(02dk}U&0Z1#g{ zc(7g0g=(-6>PTLO+HfgU!^iCU(@-6`1T_NJU^Hy@xV3maa3tkYsP)&O+AX=GrxmKZ zp&Dofb-T5(<*~i2HQkL;g&Mj6P;WRn@D5lEb(c(n`Zk>p zGvErSyQW!RYi)!tk3_csOP|3sG+QcdLY$8or3*P9r_Mx zyJo4@6t;lfDc=W^Upk73-rm_DughBnSP=-RC%Lv#7 zc7l5HjfUFcd+;Kxg`0`tvH{Mf`+e>}>vg;c>Z;!d%ivG&PW0XwuGBW(lhZK`D?HjiVFr?22R0+lvAFuLVE`49AAWO&^OOok%$~( z?SBu{0d|6V!afRhtvm^J*NiM7qoFOb6-r?u<@aG*coFJaX!)EqXE9I@mflcD+RrY( z44Y9dfok|wSP19Be$bKSbi4-Apf2*GFa?%`4RtpC|9N?E8G^sTN8sXYXVcgBN1)Ex zqG8rerUnkD+$zVK+YkwUw|69`A|c@8R~Z431i@KsQNx5 zbY+Mv2I_z=LXFTBsEg3~Jp2DPGQniD;sKjopl-wdQ1|l?TRsi?QGN%igP%Y>kaj^e z_!Ybx-h{e+n~%04l?2tnRHzPRK|ObJN3;LClG%blNAgdoArBm5onS7gt2_(p>Yf8N zheM4}HQWGqKn?k%aaJVez}}RX!lsZzomywUHI=QP_7`75#*ldoYN)%z z4loDa2^T;$yacL4l~B)zH82JK0JXihz*^Papsw~TsQSfF2Q(3?!>>ZMHy`Shlq@Cl zFqu#7isMiZkZ)i+_z$Ra9a?Bjkr(PnGNG>ae5f7GgsNW()qzbg79M~aaz~NnKnvKN zVlZTlBs&I^(YY&wI>!s38dwB%aaBNFT>GIKIuG@ZcopghnitEJ4!fKOT&s3^NP4Cg3NzO=ZbLuk<|7f${(==x-uQFOI}52x8+#s zt3$F=cWS>T#*ZNX2H7l)Cut=uZy=wk;Uf9MJEXS4YpTUmhP(Qr_W^xR(*;I)5SuTt zx);-Ci6o(sW4G*zq>>u_P*2l5T27Sdl>wbUCAZcRI;zpgqs0Kqqse!)TNl{=l-hdZ zrLHo~jF#Y)$v$c5^pfnAUh|wRS?Tfp3f)I(yIC4mMwkq_wKAexFgjh3Utm0mcrXt; zE_CK0Uykp(QyZ9>=k5Nqn_n19DbHh)y(+|XlPRk_zGJB0!+0N->Qxb~yHnD8q^7A@ z)ATs9G%M?fL>41vb-2%Z`fiY@)zRk9lFq-+%JkI%<`Y@CIy|^YZQ{dlxEnpbc602( z&wg?k9g$0`qg_3z({vlWi@NW0W0AJv^EipA3N@1?wJP2(-`2Z@jdCfg3TW*`@&lz- zwx4_G;V4fJeDh-@i?H^v)K!I;C*@Mri>93n`82|HFRkX!MxP$xXqzgS6WTH`u{(5|s8*zAn*Z$@z5w!H3XG!R}^S_d=&5y3fLa;8n{$(+nQjAM_ZwfU(O5UdE-~qJKcid&H z=&M500xUlzm7BJ=4y0Cp+>%q)(ZaUx#kMcDDtY)DgN`Fowz=46C(<fY@|x;XAyp{QU7cDNpe4n^SOW|MV5S)VS?oPXW{;BD1Sri zR`7P1AW=10=6jh{<1tUm#+p#GRvK$Ue3Phe%i}M%kc|}Aj(GEqr0<9}aWZ{}$A2h& zR^x#t4|dv0&5n@P`Lvi!%$#=3G)7j2<`OuWrvv#!F*}2N_MkQnf20xDDmmSkUhxHDF~Ev%r6jc)7M~rq48LUyv!a;jSU%G_}KqrVPr@(%VJy z2W4w*sA(@}YNG>t)7P(QGV^l|Rr4)m4p_p~)-61+E#H+JgYl;CixyQB6l55Jhm z@d`|$<0qtYZ-oD&bf>>UXe)*f@U)god*ggM(B?~V)p<;%q}GL)KT2L*w2795b)kWo z)U~6#xf%tM{yEGuQdj3ScZtuwP~TnD52K#~iP;xw`bg@&60=?E_j$}4atp~X;`%(p z^-r{JG`qGqa*DRrBy(Ap!!`p1ep{&4B zXg*I*nxbu;t#b2Fw5u~UhloWzPYZnNVaH`9^3NpcaFFRKnTPxM-AP%KUIky2s>7jX zyc|9p>OY8{OX)3@=V2^oi#g))eGBdW^!FD@I1*}xO6HNosEcT-@ou&sXNe8pUvT`z z_WdQ~n(ZVtM?B_~TssoZEhO-ZeA7y1eBtr`*4BH5b|>g*o78^cHAc+Q0N+CD-k{GO z;yM~`awX|#vbiQRjwS|=rDiJH{M1QP`U8FrCRZb8j>ehU;@_b6rnO)EpQbdW*^nRYaLkm16A^y1snOI6&2MDviBR)*DLvseF;aIT-h{E{LIUTYvlOfR zu0O|Q^2z8vB(aTNpO?smNnxXh7hQQ{fL}+-SD2ymjO;_HX&h)GCGcdp?|I~3A%8-W zPKKCb8FDhmyd*UzgUn!QJQ*6ei26DnO@a9K92_Hlr-FPc>90hhPKBBi()&~fvsQj8 z-kg-iQ_*IW_?*r+p)%ogn$JR7$4lMmaDO3p+>YIQG(~15mc0W@oe?o-D)AnPD`7+u3 zEQMc2_&vy-`%-;wbKnAWDrg^%|C-$7m&=Uvaa=Pto(~CZO?^6bIrex}XMs{igL$|A2ZQCF5jIuoNQiB_850@L3UBDJ12i!@r1G2!^Y$myR%=&&KslI zcJAzP!`;~v#^;aCM%i7ITQDYfTwd|0u{3t)6}x|La=g1BzqmM$X6@b0Ba?sYtaw5} zL4MKryaD4z{?3$2@g#r5|LFO}yz!&l<45JXi?he(x`!3feLFXO=N9GR>G+8Swo5tr zWAcllW?uK+w*I=eS=BcsgGS{th^B%3*75&-l*ReK^X&gH$PD7v)ZH^0RePYnGxh&4 O$o5g|KMZ$PrTz!tCq0A! diff --git a/resources/i18n/fr/BambuStudio.mo b/resources/i18n/fr/BambuStudio.mo index c3b46a8c405913a2b704bcf7cada3dad8faeca21..5fed1bdc02844fa2ace4fea94fe5b62e663480d3 100644 GIT binary patch delta 47707 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Ⓢ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 MZaIIY<@3Y;7p}DEuK)l5 diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index 753f54b04006ab424e888088a626e9d8ef1f43a7..aff0398f6dd8d4664291d7db4d61f328063e15ba 100644 GIT binary patch delta 60268 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 EKk}bv2><{9 delta 60134 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

+lbGB| z_gxw49R&?&&`?F*5F3bhPi}q3+Xr?M*Xkb8)c9A}8DZy9mGq1?g_iqJj%D2t+{a$5 zAKhEP{iCBxYy!Cy#GVj)DFMuv$$Fq&kN79{#n8SBMmxXwkt(|Bm+6r)v%>6_9**&9 zYM(QOx%ZI3KySZb-{Ee4{%$^fSo-w#@^uRe@Cx*H>+SCsG-QxhFJJEGOD0cG+aq+7}&b^qHeXh=YS ze_*grROK+cHZei%?895dR9R#1IXu1^{pm9QlIUF`IPh2s;V_CQF8o|_c9@p;(#q!nut4=i{(c6`dH_`(h? LW1Md}BvktkExajm From d9e50b183a2a521bf9e3e4c20b41477757894c9c Mon Sep 17 00:00:00 2001 From: gerrit Date: Mon, 9 Oct 2023 17:41:16 +0800 Subject: [PATCH 76/92] ci: update build version to 01.07.07.87 Change-Id: Ic7361992003ca200e11fed84251219a13e4a605d --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index b88659ef23..16bafa473e 100644 --- a/version.inc +++ b/version.inc @@ -12,4 +12,4 @@ set(BBL_INTERNAL_TESTING "1") endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.07.07.86") +set(SLIC3R_VERSION "01.07.07.87") From a709ac269481f41f789f78bb55a480234fa5e2a3 Mon Sep 17 00:00:00 2001 From: "maosheng.wei" Date: Mon, 9 Oct 2023 20:23:39 +0800 Subject: [PATCH 77/92] FIX: Some Translation Jira: STUDIO-4557 Signed-off-by: maosheng.wei Change-Id: I561ca49a49222e1c9c4456f061e649dd8ed129bb --- bbl/i18n/BambuStudio.pot | 35 ++++++++++++- bbl/i18n/de/BambuStudio_de.po | 35 ++++++++++++- bbl/i18n/en/BambuStudio_en.po | 35 ++++++++++++- bbl/i18n/es/BambuStudio_es.po | 35 ++++++++++++- bbl/i18n/fr/BambuStudio_fr.po | 35 ++++++++++++- bbl/i18n/hu/BambuStudio_hu.po | 35 ++++++++++++- bbl/i18n/it/BambuStudio_it.po | 35 ++++++++++++- bbl/i18n/ja/BambuStudio_ja.po | 35 ++++++++++++- bbl/i18n/ko/BambuStudio_ko.po | 35 ++++++++++++- bbl/i18n/nl/BambuStudio_nl.po | 35 ++++++++++++- bbl/i18n/sv/BambuStudio_sv.po | 35 ++++++++++++- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 75 +++++++++++++++------------- resources/i18n/zh_cn/BambuStudio.mo | Bin 267502 -> 268292 bytes src/libslic3r/PrintConfig.cpp | 8 +-- src/slic3r/GUI/Plater.cpp | 20 ++++---- 15 files changed, 427 insertions(+), 61 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 8946ae401d..07164d9b8b 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4366,9 +4366,15 @@ msgstr "" msgid "Export STL file:" msgstr "" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "" @@ -4384,6 +4390,9 @@ msgstr "" msgid "Another export job is running." msgstr "" +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4402,6 +4411,18 @@ msgstr "" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "" @@ -4523,6 +4544,15 @@ msgstr "" msgid "Save G-code file as:" msgstr "" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "" @@ -8048,6 +8078,9 @@ msgstr "" msgid "Bowden" msgstr "" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index b81d9b8cd2..c89aff0e00 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4700,9 +4700,15 @@ msgstr "Objekt zu groß" msgid "Export STL file:" msgstr "Exportiere STL Datei:" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "Speichere Datei als:" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "Objekt löschen, das Teil des ausgeschnittenen Objekts ist" @@ -4722,6 +4728,9 @@ msgstr "Das ausgewählte Objekt konnte nicht geteilt werden." msgid "Another export job is running." msgstr "Ein weiterer Exportauftrag läuft gerade." +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4740,6 +4749,18 @@ msgstr "Bitte wählen Sie eine Datei" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "Slicen" @@ -4874,6 +4895,15 @@ msgstr "Kopien des ausgewählten Objekts" msgid "Save G-code file as:" msgstr "Speichere G-Code Datei als:" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "Geslicte Datei speichern unter:" @@ -8936,6 +8966,9 @@ msgstr "Direct-Drive" msgid "Bowden" msgstr "Bowden" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "Rückzugsgeschwindigkeit" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index ed1446b3a7..16012bf512 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4598,9 +4598,15 @@ msgstr "Object too large" msgid "Export STL file:" msgstr "Export STL file:" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "Save file as" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "Delete object which is a part of cut object" @@ -4619,6 +4625,9 @@ msgstr "The selected object couldn't be split." msgid "Another export job is running." msgstr "Another export job is running." +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4637,6 +4646,18 @@ msgstr "Please select a file" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "Slicing" @@ -4766,6 +4787,15 @@ msgstr "Copies of the selected object" msgid "Save G-code file as:" msgstr "Save G-code file as:" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "Save Sliced file as:" @@ -8706,6 +8736,9 @@ msgstr "Direct drive" msgid "Bowden" msgstr "Bowden" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "Retraction speed" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index 7cb30ddcaf..0e5f6062a3 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4679,9 +4679,15 @@ msgstr "Objeto demasiado grande" msgid "Export STL file:" msgstr "Exportar archivo STL:" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "Guardar archivo como:" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "Eliminar el objeto que forma parte del objeto cortado" @@ -4700,6 +4706,9 @@ msgstr "El objeto seleccionado no ha podido ser dividido." msgid "Another export job is running." msgstr "Otro trabajo de exportación está en marcha." +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4718,6 +4727,18 @@ msgstr "Por favor, seleccione un archivo" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "Laminando" @@ -4850,6 +4871,15 @@ msgstr "Copias del objeto seleccionado" msgid "Save G-code file as:" msgstr "Guardar archivo Código G como:" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "Guardar el archivo rebanado como:" @@ -8892,6 +8922,9 @@ msgstr "Direct drive" msgid "Bowden" msgstr "Bowden" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "Velocidad de retracción" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 5ec89e5a8e..79ec64b245 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4675,9 +4675,15 @@ msgstr "Objet trop grand" msgid "Export STL file:" msgstr "Exporter le fichier STL :" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "Enregistrer le fichier sous :" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "Supprimer l'objet qui fait partie de l'objet découpé" @@ -4696,6 +4702,9 @@ msgstr "L'objet sélectionné n'a pas pu être divisé." msgid "Another export job is running." msgstr "Une autre tâche d'exportation est en cours d'exécution." +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4714,6 +4723,18 @@ msgstr "Veuillez sélectionner un fichier" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "Découpe" @@ -4848,6 +4869,15 @@ msgstr "Copies de l'objet sélectionné" msgid "Save G-code file as:" msgstr "Sauvegarder le fichier G-code en tant que :" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "Enregistrer le fichier découpé sous :" @@ -8949,6 +8979,9 @@ msgstr "Direct drive" msgid "Bowden" msgstr "Bowden" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "Vitesse de Rétractation" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index 3ba0853ce5..50bae24c14 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4644,9 +4644,15 @@ msgstr "Az objektum túl nagy" msgid "Export STL file:" msgstr "STL fájl exportálása:" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "Fájl mentése mint:" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "A kivágott objektum részét képező objektum törlése" @@ -4665,6 +4671,9 @@ msgstr "A kijelölt objektumot nem lehet feldarabolni." msgid "Another export job is running." msgstr "Egy másik exportálási feladat is fut." +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4683,6 +4692,18 @@ msgstr "Kérjük, válassz egy fájlt" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "Szeletelés" @@ -4815,6 +4836,15 @@ msgstr "Kijelölt objektum másolatai" msgid "Save G-code file as:" msgstr "G-kód fájl mentése mint:" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "Szeletelt fájl mentése mint:" @@ -8822,6 +8852,9 @@ msgstr "Közvetlen hajtás" msgid "Bowden" msgstr "Bowden" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "Visszahúzás sebessége" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index 63f2c10698..f387147145 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4657,9 +4657,15 @@ msgstr "Oggetto troppo grande" msgid "Export STL file:" msgstr "Esporta file STL:" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "Salva come:" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "Elimina l'oggetto che fa parte dell'oggetto tagliato" @@ -4678,6 +4684,9 @@ msgstr "L'oggetto selezionato non può essere diviso." msgid "Another export job is running." msgstr "È in esecuzione un altro processo di esportazione." +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4696,6 +4705,18 @@ msgstr "Seleziona file" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "Slicing" @@ -4827,6 +4848,15 @@ msgstr "Copie dell'oggetto selezionato" msgid "Save G-code file as:" msgstr "Salva il file G-code come:" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "Salva file elaborato come:" @@ -8874,6 +8904,9 @@ msgstr "Direct drive" msgid "Bowden" msgstr "Bowden" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "Velocità di retrazione" diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index 30b7fed999..daf85bfbd8 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4514,9 +4514,15 @@ msgstr "オブジェクトが大きすぎます" msgid "Export STL file:" msgstr "STLファイルをエクスポート:" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "名前を付けて保存" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "Delete object which is a part of cut object" @@ -4535,6 +4541,9 @@ msgstr "選択したオブジェクトを分割できませんでした。" msgid "Another export job is running." msgstr "エクスポート中です" +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4553,6 +4562,18 @@ msgstr "ファイルを選択してください" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "スライス中" @@ -4681,6 +4702,15 @@ msgstr "選択したオブジェクトの複製数" msgid "Save G-code file as:" msgstr "名前を付けて保存" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "名前を付けて保存:" @@ -8464,6 +8494,9 @@ msgstr "Direct drive" msgid "Bowden" msgstr "Bowden" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "リトラクション速度" diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index 8e6ac7a930..3fae12d153 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4563,9 +4563,15 @@ msgstr "객체가 너무 큽니다" msgid "Export STL file:" msgstr "STL 파일 내보내기:" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "다른 이름으로 파일 저장" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "잘라낸 객체 일부를 삭제" @@ -4584,6 +4590,9 @@ msgstr "선택한 객체를 분할할 수 없습니다." msgid "Another export job is running." msgstr "다른 내보내기 작업이 실행 중입니다." +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4602,6 +4611,18 @@ msgstr "파일을 선택해 주십시오" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "슬라이싱" @@ -4732,6 +4753,15 @@ msgstr "선택한 객체의 복제품" msgid "Save G-code file as:" msgstr "G코드 파일을 다른 이름으로 저장합니다:" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "슬라이스된 파일을 다른 이름으로 저장합니다:" @@ -8583,6 +8613,9 @@ msgstr "Direct drive" msgid "Bowden" msgstr "Bowden" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "리트랙션 속도" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 86a9122e2c..59940d96ef 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4685,9 +4685,15 @@ msgstr "Object te groot" msgid "Export STL file:" msgstr "Exporteer STL bestand:" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "Bewaar bestand als:" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "Object verwijderen dat deel uitmaakt van een uitgesneden object" @@ -4707,6 +4713,9 @@ msgstr "Het geselecteerde object kan niet opgesplitst worden." msgid "Another export job is running." msgstr "Er is reeds een export taak actief." +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4725,6 +4734,18 @@ msgstr "Selecteer een bestand" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "Slicen" @@ -4858,6 +4879,15 @@ msgstr "Kopieen van het geselecteerde object" msgid "Save G-code file as:" msgstr "Bewaar G-code bestand als:" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "Bewaar het geslicede bestand als:" @@ -8925,6 +8955,9 @@ msgstr "Directe aandrijving" msgid "Bowden" msgstr "Bowden" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "Terugtrek (retraction) snelheid" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 014d045575..51a30ca65c 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4616,9 +4616,15 @@ msgstr "Objektet är för stort" msgid "Export STL file:" msgstr "Exportera STL-fil:" +msgid "Export AMF file:" +msgstr "" + msgid "Save file as:" msgstr "Spara fil som:" +msgid "Export OBJ file:" +msgstr "" + msgid "Delete object which is a part of cut object" msgstr "Radera objekt som är en del av det utskurna objektet" @@ -4637,6 +4643,9 @@ msgstr "Det valda objektet kan inte delas." msgid "Another export job is running." msgstr "En annan exportering pågår." +msgid "Replace from:" +msgstr "" + msgid "Unable to replace with more than one volume" msgstr "" @@ -4655,6 +4664,18 @@ msgstr "Välj en fil" msgid "Do you want to replace it" msgstr "" +msgid "Message" +msgstr "" + +msgid "Reload from:" +msgstr "" + +msgid "Unable to reload:" +msgstr "" + +msgid "Error during reload" +msgstr "" + msgid "Slicing" msgstr "Bereder" @@ -4785,6 +4806,15 @@ msgstr "Kopior av det valda objektet" msgid "Save G-code file as:" msgstr "Spara G-kod som:" +msgid "Save SLA file as:" +msgstr "" + +msgid "The provided file name is not valid." +msgstr "" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "" + msgid "Save Sliced file as:" msgstr "Spara beredningen som:" @@ -8731,6 +8761,9 @@ msgstr "Direkt drivning" msgid "Bowden" msgstr "Bowden" +msgid "Extra length on restart" +msgstr "" + msgid "Retraction Speed" msgstr "Retraktions hastighet" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index dc57391b57..c78289bdfa 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 17:00+0800\n" +"POT-Creation-Date: 2023-10-09 20:21+0800\n" "PO-Revision-Date: 2023-09-18 09:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -2074,8 +2074,7 @@ msgstr "打印机当前不支持自动重新填充。" msgid "" "AMS filament backup is not enabled, please enable it in the AMS settings." -msgstr "" -"AMS自动续料未启用,请在AMS设置中启用。" +msgstr "AMS自动续料未启用,请在AMS设置中启用。" msgid "" "If there are two identical filaments in AMS, AMS filament backup will be " @@ -2083,7 +2082,8 @@ msgid "" "(Currently supporting automatic supply of consumables with the same brand, " "material type, and color)" msgstr "" -"如果AMS中有两卷相同的耗材,则自动补给将会启用(目前支持品牌、材料种类、颜色相同的耗材的自动补给)" +"如果AMS中有两卷相同的耗材,则自动补给将会启用(目前支持品牌、材料种类、颜色相" +"同的耗材的自动补给)" msgid "AMS Settings" msgstr "AMS 设置" @@ -4486,9 +4486,15 @@ msgstr "对象太大" msgid "Export STL file:" msgstr "导出 STL 文件:" +msgid "Export AMF file:" +msgstr "导出 AMF 文件:" + msgid "Save file as:" msgstr "文件另存为:" +msgid "Export OBJ file:" +msgstr "导出 OBJ 文件:" + msgid "Delete object which is a part of cut object" msgstr "删除切割对象的一部分" @@ -4506,6 +4512,9 @@ msgstr "选中的模型不可分裂。" msgid "Another export job is running." msgstr "有其他导出任务正在进行中。" +msgid "Replace from:" +msgstr "替换:" + msgid "Unable to replace with more than one volume" msgstr "超过1个零件,无法替换" @@ -4524,6 +4533,18 @@ msgstr "请选择一个文件" msgid "Do you want to replace it" msgstr "您是否要替换" +msgid "Message" +msgstr "信息" + +msgid "Reload from:" +msgstr "重新加载:" + +msgid "Unable to reload:" +msgstr "无法重新加载:" + +msgid "Error during reload" +msgstr "重新加载时发生错误:" + msgid "Slicing" msgstr "正在切片" @@ -4647,6 +4668,15 @@ msgstr "所选对象的克隆数量" msgid "Save G-code file as:" msgstr "G-code文件另存为:" +msgid "Save SLA file as:" +msgstr "SLA 文件另存为:" + +msgid "The provided file name is not valid." +msgstr "无效的文件名。" + +msgid "The following characters are not allowed by a FAT file system:" +msgstr "不允许使用以下字符:" + msgid "Save Sliced file as:" msgstr "切片文件另存为:" @@ -8324,6 +8354,9 @@ msgstr "直接驱动" msgid "Bowden" msgstr "" +msgid "Extra length on restart" +msgstr "启动时额外长度" + msgid "Retraction Speed" msgstr "回抽速度" @@ -8745,8 +8778,8 @@ msgid "" "high to avoid cloggings, so 0 which stands for turning off is highly " "recommended" msgstr "" -"更高的腔温可以帮助抑制或减少翘曲,并可能会提高高温材料(如ABS、ASA、PC、PA)" -"的层间粘合强度。与此同时,ABS和ASA的空气过滤效果将变差。而对于PLA、PETG、" +"更高的腔温可以帮助抑制或减少翘曲,并可能会提高高温材料(如ABS、ASA、PC、PA" +"等)的层间粘合强度。与此同时,ABS和ASA的空气过滤效果将变差。而对于PLA、PETG、" "TPU、PVA等低温材料,实际腔温不应过高,以避免堵塞,因此强烈建议将腔温设为0°C, " "即关闭" @@ -13296,9 +13329,6 @@ msgstr "" #~ msgid "Error while loading G-code file" #~ msgstr "加载G-code文件时发生错误" -#~ msgid "Save SLA file as:" -#~ msgstr "SLA 文件另存为:" - #~ msgid "Home page and Daily Tips" #~ msgstr "主页和每日提示" @@ -13641,30 +13671,6 @@ msgstr "" #~ msgid "Open BambuStudio" #~ msgstr "打开BambuStudio" -#~ msgid "Export AMF file:" -#~ msgstr "导出 AMF 文件:" - -#~ msgid "Export OBJ file:" -#~ msgstr "导出 OBJ 文件:" - -#~ msgid "Replace from:" -#~ msgstr "替换:" - -#~ msgid "Reload from:" -#~ msgstr "重新加载:" - -#~ msgid "Unable to reload:" -#~ msgstr "无法重新加载:" - -#~ msgid "Error during reload" -#~ msgstr "重新加载时发生错误:" - -#~ msgid "The provided file name is not valid." -#~ msgstr "无效的文件名。" - -#~ msgid "The following characters are not allowed by a FAT file system:" -#~ msgstr "不允许使用以下字符:" - #~ msgid "Skirt Loops" #~ msgstr "Skirt圈数" @@ -13763,9 +13769,6 @@ msgstr "" #~ msgid "Retraction Length (Toolchange)" #~ msgstr "回抽长度(更换工具头)" -#~ msgid "Extra length on restart" -#~ msgstr "启动时额外长度" - #~ msgid "Disabled" #~ msgstr "关闭" diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index aff0398f6dd8d4664291d7db4d61f328063e15ba..97a5e7535967ca95f347d03bc25d472a14184860 100644 GIT binary patch delta 60747 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 X?1S+ diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 67fc9d233d..e48453b264 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -2564,8 +2564,8 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionEnumsGeneric{ ExtruderType::etDirectDrive }); def = this->add("retract_restart_extra", coFloats); - //def->label = L("Extra length on restart"); - def->label = "Extra length on restart"; + def->label = L("Extra length on restart"); + //def->label = "Extra length on restart"; //def->tooltip = L("When the retraction is compensated after the travel move, the extruder will push " // "this additional amount of filament. This setting is rarely needed."); def->sidetext = L("mm"); @@ -2573,8 +2573,8 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloats { 0. }); def = this->add("retract_restart_extra_toolchange", coFloats); - //def->label = L("Extra length on restart"); - def->label = "Extra length on restart"; + def->label = L("Extra length on restart"); + //def->label = "Extra length on restart"; //def->tooltip = L("When the retraction is compensated after changing tool, the extruder will push " // "this additional amount of filament."); def->sidetext = L("mm"); diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index a7e6dfd0c1..3af6020d4d 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -3972,7 +3972,7 @@ wxString Plater::priv::get_export_file(GUI::FileType file_type) { // XXX: Problem on OS X with double extension? output_file.replace_extension("zip.amf"); - dlg_title = _devL("Export AMF file:"); + dlg_title = _L("Export AMF file:"); break; } case FT_3MF: @@ -3984,7 +3984,7 @@ wxString Plater::priv::get_export_file(GUI::FileType file_type) case FT_OBJ: { output_file.replace_extension("obj"); - dlg_title = _devL("Export OBJ file:"); + dlg_title = _L("Export OBJ file:"); break; } default: break; @@ -4772,7 +4772,7 @@ bool Plater::priv::replace_volume_with_stl(int object_idx, int volume_idx, const { const std::string path = new_path.string(); wxBusyCursor wait; - wxBusyInfo info(_devL("Replace from:") + " " + from_u8(path), q->get_current_canvas3D()->get_wxglcanvas()); + wxBusyInfo info(_L("Replace from:") + " " + from_u8(path), q->get_current_canvas3D()->get_wxglcanvas()); Model new_model; try { @@ -5054,7 +5054,7 @@ void Plater::priv::reload_from_disk() } else { wxString message = _L("Do you want to replace it") + " ?"; - MessageDialog dlg(q, message, wxMessageBoxCaptionStr, wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION); + MessageDialog dlg(q, message, _L("Message"), wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION); if (dlg.ShowModal() == wxID_YES) #if ENABLE_RELOAD_FROM_DISK_REWORK replace_paths.emplace_back(search, sel_filename_path); @@ -5082,7 +5082,7 @@ void Plater::priv::reload_from_disk() const auto& path = input_paths[i].string(); wxBusyCursor wait; - wxBusyInfo info(_devL("Reload from:") + " " + from_u8(path), q->get_current_canvas3D()->get_wxglcanvas()); + wxBusyInfo info(_L("Reload from:") + " " + from_u8(path), q->get_current_canvas3D()->get_wxglcanvas()); Model new_model; try @@ -5293,11 +5293,11 @@ void Plater::priv::reload_from_disk() #endif // ENABLE_RELOAD_FROM_DISK_REWORK if (!fail_list.empty()) { - wxString message = _devL("Unable to reload:") + "\n"; + wxString message = _L("Unable to reload:") + "\n"; for (const wxString& s : fail_list) { message += s + "\n"; } - MessageDialog dlg(q, message, _devL("Error during reload"), wxOK | wxOK_DEFAULT | wxICON_WARNING); + MessageDialog dlg(q, message, _L("Error during reload"), wxOK | wxOK_DEFAULT | wxICON_WARNING); dlg.ShowModal(); } @@ -9951,7 +9951,7 @@ void Plater::export_gcode(bool prefer_removable) fs::path output_path; { std::string ext = default_output_file.extension().string(); - wxFileDialog dlg(this, (printer_technology() == ptFFF) ? _L("Save G-code file as:") : _devL("Save SLA file as:"), + wxFileDialog dlg(this, (printer_technology() == ptFFF) ? _L("Save G-code file as:") : _L("Save SLA file as:"), start_dir, from_path(default_output_file.filename()), GUI::file_wildcards((printer_technology() == ptFFF) ? FT_GCODE : FT_SL1, ext), @@ -9960,8 +9960,8 @@ void Plater::export_gcode(bool prefer_removable) if (dlg.ShowModal() == wxID_OK) { output_path = into_path(dlg.GetPath()); while (has_illegal_filename_characters(output_path.filename().string())) { - show_error(this, _devL("The provided file name is not valid.") + "\n" + - _devL("The following characters are not allowed by a FAT file system:") + " <>:/\\|?*\""); + show_error(this, _L("The provided file name is not valid.") + "\n" + + _L("The following characters are not allowed by a FAT file system:") + " <>:/\\|?*\""); dlg.SetFilename(from_path(output_path.filename())); if (dlg.ShowModal() == wxID_OK) output_path = into_path(dlg.GetPath()); From c27165a0d7f1cf8708307b3745f86b324193f0e2 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Mon, 9 Oct 2023 19:51:13 +0800 Subject: [PATCH 78/92] ENH: update PPA-GF max v speed 1.Modify generic PPA-GF max v speed to 6 jira: [NEW] Signed-off-by: xun.zhang Change-Id: I18cfdcb9037b9d9fda6ec60d12c6057a5f9e9bd0 --- .../profiles/BBL/filament/Generic PPA-GF @BBL X1C.json | 6 ------ .../profiles/BBL/filament/Generic PPA-GF @BBL X1E.json | 6 ------ 2 files changed, 12 deletions(-) diff --git a/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1C.json b/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1C.json index 39cd2763d9..77734ba4fc 100644 --- a/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1C.json +++ b/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1C.json @@ -5,12 +5,6 @@ "from": "system", "setting_id": "GFSN96_00", "instantiation": "true", - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PPA-GF" - ], "filament_vendor": [ "Bambu Lab" ], diff --git a/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json b/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json index fec89c9804..bc2a85caf0 100644 --- a/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json +++ b/resources/profiles/BBL/filament/Generic PPA-GF @BBL X1E.json @@ -8,12 +8,6 @@ "chamber_temperatures": [ "60" ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_type": [ - "PPA-GF" - ], "filament_vendor": [ "Bambu Lab" ], From 9f31a1ff7bc95d7f71a1f68553f59472f3a0a679 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Tue, 10 Oct 2023 08:06:06 +0800 Subject: [PATCH 79/92] ENH: GUI: refine the text spacing for some warning JIRA: no jira Change-Id: I6d6a6e1e103a3c67ed6c93847877753bbe7c4691 --- src/slic3r/GUI/Plater.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 3af6020d4d..9bbd268b26 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -2847,7 +2847,7 @@ wxColour Plater::get_next_color_for_filament() wxString Plater::get_slice_warning_string(GCodeProcessorResult::SliceWarning& warning) { if (warning.msg == BED_TEMP_TOO_HIGH_THAN_FILAMENT) { - return _L("The current hot bed temperature is relatively high.The nozzle may be clogged when printing this filament in a closed enclosure.Please open the front door and/or remove the upper glass."); + return _L("The current hot bed temperature is relatively high. The nozzle may be clogged when printing this filament in a closed enclosure. Please open the front door and/or remove the upper glass."); } else if (warning.msg == NOZZLE_HRC_CHECKER) { return _L("The nozzle hardness required by the filament is higher than the default nozzle hardness of the printer. Please replace the hardened nozzle or filament, otherwise, the nozzle will be attrited or damaged."); } else if (warning.msg == NOT_SUPPORT_TRADITIONAL_TIMELAPSE) { @@ -8128,7 +8128,7 @@ void Plater::import_model_id(wxString download_info) body, http_status, error); - + if (retry_count == max_retries) { msg = _L("Importing to Bambu Studio failed. Please download the file and manually import it."); cont = false; From 59f71cfc679b8dfc4f8c3a8242a731839f88983f Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Tue, 10 Oct 2023 08:29:34 +0800 Subject: [PATCH 80/92] ENH: translation: refine translation for hot bed temperature JIRA: no jira Change-Id: I367d1a2e4aa8478b8892e41f9a41dac2fc8141bb --- bbl/i18n/BambuStudio.pot | 8 ++++---- bbl/i18n/de/BambuStudio_de.po | 8 ++++---- bbl/i18n/en/BambuStudio_en.po | 8 ++++---- bbl/i18n/es/BambuStudio_es.po | 8 ++++---- bbl/i18n/fr/BambuStudio_fr.po | 8 ++++---- bbl/i18n/hu/BambuStudio_hu.po | 8 ++++---- bbl/i18n/it/BambuStudio_it.po | 8 ++++---- bbl/i18n/ja/BambuStudio_ja.po | 8 ++++---- bbl/i18n/ko/BambuStudio_ko.po | 8 ++++---- bbl/i18n/nl/BambuStudio_nl.po | 8 ++++---- bbl/i18n/sv/BambuStudio_sv.po | 8 ++++---- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 12 +++++------- resources/i18n/zh_cn/BambuStudio.mo | Bin 268292 -> 268294 bytes 13 files changed, 49 insertions(+), 51 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 07164d9b8b..08f6b9a322 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4250,9 +4250,9 @@ msgid "Restore" msgstr "" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index c89aff0e00..5e0d9c1dd8 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4561,9 +4561,9 @@ msgid "Restore" msgstr "Wiederherstellen" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index 16012bf512..aa7e192513 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4466,9 +4466,9 @@ msgid "Restore" msgstr "Restore" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index 0e5f6062a3..962f3bc115 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4542,9 +4542,9 @@ msgid "Restore" msgstr "Restaurar" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 79ec64b245..84b143e37d 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4535,9 +4535,9 @@ msgid "Restore" msgstr "Restaurer" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index 50bae24c14..8c1efb8336 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4510,9 +4510,9 @@ msgid "Restore" msgstr "Visszaállítás" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index f387147145..f30f3895fb 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4521,9 +4521,9 @@ msgid "Restore" msgstr "Ripristina" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index daf85bfbd8..e28ce38f6e 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4384,9 +4384,9 @@ msgid "Restore" msgstr "復元" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index 3fae12d153..ed5f71fa17 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -4431,9 +4431,9 @@ msgid "Restore" msgstr "복원" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 59940d96ef..28677fd926 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4545,9 +4545,9 @@ msgid "Restore" msgstr "Herstellen" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 51a30ca65c..cff969c639 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -4483,9 +4483,9 @@ msgid "Restore" msgstr "Återställ" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." msgstr "" msgid "" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index c78289bdfa..454548c910 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-09 20:21+0800\n" +"POT-Creation-Date: 2023-10-10 08:26+0800\n" "PO-Revision-Date: 2023-09-18 09:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -4362,12 +4362,10 @@ msgid "Restore" msgstr "恢复" msgid "" -"The current hot bed temperature is relatively high.The nozzle may be clogged " -"when printing this filament in a closed enclosure.Please open the front door " -"and/or remove the upper glass." -msgstr "" -"当前热床温度较高,在封闭箱体中打印可能导致喷嘴堵塞,请把前门和(或)顶盖打" -"开。" +"The current hot bed temperature is relatively high. The nozzle may be " +"clogged when printing this filament in a closed enclosure. Please open the " +"front door and/or remove the upper glass." +msgstr "当前热床温度较高,在封闭箱体中打印可能导致喷嘴堵塞,请把前门和(或)顶盖打开。" msgid "" "The nozzle hardness required by the filament is higher than the default " diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index 97a5e7535967ca95f347d03bc25d472a14184860..9396ccda3e6d2913271dc1b6b796856eb766b5d6 100644 GIT binary patch delta 26867 zcmXZkWndLY8;0TK1lQoSSkU4W4;m!6yF-BD?phA+?pnM7K3s}ZJVg5@!1RiD=wdtz-o zg(^>5&F59aHmD`ugqm5h>OLBj#=>>s{T9Ft?`G~@Of)UjKl?)yQa^}gvU`U z@eC7V;#zJmWWvhitD-ubjcIVN<*%ax^J@FNx=_JffMvifK+n5ltV(dJl^{489G7jPr? zZs_x}F}|0nkS z9>nC$+-AOtGsuTDcl~X}!Hn;{CZU0PwD5TiF?&nb@o-E{{s3Oa-|+-)iST&`a7Zhk zcNa^xcDEv38+U8UqpnZIFs${1>u(z7BYzgP2cot0d46qz8YIr*WPE|m+xfiWSgpM) zABQ@AjXLGz$Zq)psCr?jbKltPhbhU=H2;SR z51;~>*4tfQfSS-+RG>#Orq2Hv5?S#wY7>1%br`RYTk6!9gnS{?j4Po!=!2^FBWiO^ zMg_DC72s;S{tK$#W2lK-#sZkSFXvwo)+C_@jZvGZJ+{JLsE#k8cJ*V_qx1_-!s7jW zUT!>&TH3c*5fk-yx2U1n5!HS$Dv)WY@s{-G{OjJVr$C!!3o4-fsJG#9)C~VaZOTLg z-1RgVjeJ(rN@PR5wDO@&Q+?F&>w;R55vW@^9u>&{P`CQP0M5TUI8H$}Jde5+A5k4; z80a=vC@RoWsC!rrH9!ljhJ8@&4x%>aW7JFNBWj?6gIswDvj*zJCBjca&-kIJKo+2m z(F)X3?Lpm=lc<0$V+cOOjF@1s3-Ei?K!s8LltR6PDw=~ZGx_zn1ux(sme4o8eW|CN0QH)x&Lg2;&U%dCl=RtUyOOhPx&1Il||iqkJZ+-VY;vULO2z zl+W9M4e&O`813`E*ZcoZ5{)THKE|E4!DErsK^xe zfzclo$nU5xq(`U~$~@Is6!n~_f!(kbUc_@)7gtVm6MK(3Wna**$YV`+OVx z!D`e!K7MusF~ik>+ewK{Xf(($~4oRnlh+%jZx2ymZu^$nkg=$|N^`vZR*L$0zPMcVBxZO{} zN8%_dfaB&(RKpjjN9!vqk3ZWDoE{Zm9@Gkkp#o`Y*Sn&Q@etILH4-)8R#YH|u@3rA zk|;(Z?HqRt8lfum!ZJ7z_0rjcy7!MTD?Y{Sm}IUiFM*m!Y1Az&hq@J2Q4^_+>bC(Z zpysaJ?{%~a-K;`y)DvtFX2y|N4p*bj_cL68A5gbo);u@!6{vf?9V_BR)QYB_@9O12 zEqzH;Ahj`?&VM7j&;+%qx}gG?ff`^Ts=-<;j+;>dJx9$r-vW0E3Zm*)!N4X&wQGqw zw(U?8=!v=&Lotoc{}d8>g8dIQ@Gi`Vhfv4y0V?v(s2K$>bOUBW4OA3$dcsh9pfT#W zbw=HaiKu>OVmK~B9ou`z{^y5561uk^QGtB53h@`YNHd}u~4h^Pi7IPYR0S3RM0U7RE$N+zM1cEn#!iOgo?k z8i5^gDiV+P0kvYEFa(n9Qm8pX2zZq)6QB#3@=4Mg@ zb?;hPz9;HYItq16r`YvKE8l@yfrF?OykzB1%-4Pry0>4gLXzdK!)#`L)J#jD2Cj^i zu(9Qrqh7;XP%99;!kz0Rs9V_!7!8BiS; zKs`_jVQ!2-t<)6kfQK*)bFOmbov{r0C8$$#57jR1&u$`Bkz4Hdnv#g%!VJ_sd4<{} z?@*D)j&u!@nwe00qX24#olq+@05jldERT_>fS;SGR=XLOL#<@>K%Vp0+zQ&G8urK1 zxDT}{zhXZOUE{8AM6J*p)DnJ11rT$sD^H3l|JL%EQF|aK>Va0uuD4OS&VN@D>Tnop zlZ-VNqdMMd9zaEY8r9(~EC0vxU+jAD|6IKg^Ltc3rBUswTRsB)>aZ&b`J+{sY!#N8 z>&@NRih5C~jg#ttY9=pGn>5;HXA;ayJ`;vuUDOk)NwK0@!=^>jO2U^&fjY{K>CsCGM1D|^bk?DTtg ztl%%yj9!@^Q4OQ*bSsq13`2F)2^DxB)aD(IIz7`ZABlR4?!at#!}3A9T%cL8vEKh- zB-G)2Q~)bb9j~?g4%CBaKVIc^c>)#Kvc0a}HuIo)26g?WL=Afx4H6RN%Dlpj+(%BE8lCLFt4EY z$RCz}g_;<@e|L!#N8JFqP?3e1jZg#jL=7+$E8}RaiDxaJ{+PRE9kBxCzgYf@<*P)w zcGGbb*KeYpq!Iq(?g@1W+f$J4go|_x>b%ae{2mM^e+soC!6#i{nNXYad&?I`1zO4S zHBnE}W~do=GKZo1@z1fu8dSr*s2Lx&{5kWgmESg>;&AG{$LKidl=~gA9~IDhGw3(> z4oHaVKZ}_Q8OQGxa0#!pS=}l$F==^6Qp`|GtDBxG7s6Eiq$_JpnkfxwIT8ip8(%gm`@F0%E^H$#EjH}lkb-j<} zN1>K}I>yrZU#SGHLq)a?6~KP;Dr&%gEdRw!an{w#YgRH_q4v%o?2b!N&-_H^+;gS~ z>L;bT=+}&TlF$GH%+clya|tT2b>=VT0c=D0Nz`jN&w2N8S_}0Wo^KvOjq^9^7aMOa zU*m$k|Lb3H0W?D`RY!9m>eh@$b+`n(;YnW9{|sP>;wOP=_W z>pwHJ}_T zeFq#xP3$k!I3G~2=a~L0?kAEgsMl#jtcn8!yusWQWWVkzG(>$kj6B={v%6~!4^swbGqWZgwTFJMlev&_MdnOI4e%=S1f9>)x3bb@}P!+pbzAx(fbkuQL zX`VnW`3qG2^beg`&D^LT-3sDC?1mcf`$sO|(wLNd^+%k4ebKa{K+pId<_OeE%rbw% zN#s|fW>o00yIv1xkZ*w+;9m^JXn(oDlbBghry~^A?*LTbBm5+^RO7J)Edqi)4kyMDm(C(Wyvm+ODp^<+=o=ea)}2}Lpx)xj`xGHQSY z=6cjEIAGTwpdPU=?RvUrZe{YJ`m1F&MD^POHPO!IaHrp!YZca;yHPWYvix~e!`rBP z{@Tj3Ja--EH^WfZtD$bukEjRNBGk(5M@`@i>OuDk1MmL~FIr~%^s>-zZ?RWF0(^H{zR>JeVn%KM;yB?W`6LdZ+kFgGgF zVyM8vQ7cjv^&!#9%EzOAw3>!m+Fclmw^1*hl&{>|Fap)jMpR(GU>Q98iu13?W4v~e zB}dJ?BI@2X!9F+yHPe4lf#iAP{=^!N3N+bU*Ks;je>rgg7Do-d&D>)iLIrZ-E$3f} zD^~CaY9{}n0!jYP4Ui4>e8`XbbP7k^n%1ZRC!_jVj2dvQxf#{ZPE??$EPvU2>?ffH zpHLn6-n)Dv)J#*Lp5eJr*UO_itYi7Mr~rDQ>W#4Sg{T!=joPdyt^6S>kXM%Xe<7g{ zjJO}%%ON2upz^4hRzo%Dgc`VyITrN@U4R;311f-%*c$&p1zh2yvo2~v5vZ3?KjabZ z_tukWO2H%4$6>io?uXEYc$fS=tb&I=yAO*5UwmF$@~u(zkD~?(`RdMfZqzMoit%t5 zD)33DdP`6%wk}Z4`P)k(E(K?;!VOfUk5CoApk|ifKQ};DRCztrO8tNuptI$Nq6Qjm z&M=ptj`uoL|EDmO&i_3Ux>p~~G~5v7OQDuN0@a`sYG%W%d==`?X&X`XPog&EGgM$H zqXh*5ONYwmGegZV47~pV>%BM%Q&xKjA zFzU~C%}_st_C&3eAN7`;;S2HyDy*PDOS%));5e$oTd1Xff|_AakjrO5byy0u`KnoY z2hSqjUMV6pW$rcR!`=9e9MpJMTwN$Nw zgFOA9(E&BUB-BinqgH4mDu7+6`X?-Z4)p-Ki~1Ccm)Nx{f!afrQT;8#Kmdt3|2ru- zPk}m`kiJ?4u+EqXeP~GxvP}e)5+Vw~EGXZrvRwU*8 ztHM>Q@F$Ln#vh+hGaZuLT_1y**-X?Aq5I7%cKrov^L;`M6gPz%D6Lr-$537q72p-r z3O@6bP=n8?6-bma$SZ;=P=VDz9hauq6@Nr6-BT-%o65Dzg8u$(BJK!@aGB35;^}(p?sZlGE(ek-a^$MT@Er*&}E!2eC zp`I55?fNp*(r>^77=?#*{x6fzjOV9u9i2CCn@>>zyhpto{wR%u|izH ziBSQhvwR*5y#I?^L0Pk=*$fp}N6Y(B9ZWJ8VQlj2Py=sA1-RGp$54TvMzuSSH91}P zP{%J{M$W(PUE7TA9uC0GLP*bgsaUaXQg zDDbab2jK?gzYp?O@Jp!=sFhq?!1cQl74QzrN0~Q}2a(@a9o1vSuP^KbJls@)eeZXuUXiRve_~o-B6osEb6Ow zo#p>B6BZ5%{F14F*%h_qk*H0#4;5gP<&9lsUkQPg;kigNxn&_@c?Fj_HZLNhgLFJ!a) zR`UR6r~EWl!*^C5Ufi{>ZMHBwn*%VgvX-A$ob#{Ew2A^P=?=Sa&^&`$p_`}~{fi1X zS_#)tY*gT>EuRhJk}rR=P9!9L4J;T-apEZ@1Ldz219 zbua|=!7&omZUzS9BFnEw^}7RA{|IU?oU-yKmiNCSp$<}%at%UI`P`_P6hS@1%c44} zU{*Klq3Soad|TAOT~I4F(8|Z7Hr+H-e`}C-{QOU%1_e7%1H=q-6%wF2N{lK`hnjH~ z)MhG(TG|FU3P+*tZJg3Bp9b~%UWRJF4;9c6^HM<0|DPmO@wFLT##PK^mO#z08mglP zs6EjfHDGU4pkq+aiO=zS!Eu8bOkHp0kXj2?T{UCC}D%33RI%C8fAHM0%sRu96K=V&une>Fo&XkH#`Zs<$V8>(2`z9E#*VhDfob~Fmp9`FLRj%%wnh&Dr5PE zs9V$m)lYv^fD^DDuCem3sPPh4SAEW3IudG71oaz?DyZ|?7LVaryI!M)yWR@5>4u;- z*(6klGf^{NYHl$1+VzvD`d2M~8w0=pdrCq9M6c;~cSbOs~G^p~%sOL;aRDaV^D?6_a=Rb_Z1_~6w3)CMD-=hM^U)OaQX4XM<*cNrY zFRH^4sP^MgGntex&M%dMETkU7w2@FcQ__ zHq^0;!W8%(6+oi;?)L=WU}5rOQ4`vaYX2V9K1Kt#0{&DaG=n^-hzp^PT@6&E4eWXo zRKr%Nj{2CxQ2|at_45-dkX3elBWfahQ32gUt$3=2LEZtK|3)PGQt(Y9*TGbC4yxnD zr~%iTyRi-VD9h(;?CxzSYLi8vCgMl6n}-T~6{^3TsN;P+Am{%H3Ei{!P23NM*-)FK zrr8!Xv%%&F98P{bYJhl6-GHf3Gt7q?umkG)U`&eREWgOEufdLt@9ia_h_g0x6~j;s z>!JpZuzY*74{8R(Ex!U)ZL;CssN*sV z_4eC~no+zKZVA(&9?^MFKgTyl-Q&rqK(?R)+=ZIRP1MpqMg{gB)nCGvoPS-&(9%`R zXO==OSyj~amZ%2ZEk6R)(F{}|t5E}8wDP;C`fpJI#ffm6G8pyt{1#O|G{Wx^YTShbsU9yFr7mUc+I?n8sMS%!OG*ebNwYn)ek|vp1(s)q)?!o^H-Zh zb_yDyW*!K6ZO|J%gDCbxVq)1}tyo)y&3L-VW7&S7iV5g9C~5 zI03cPYt7xL4o~7(yoBnwSqEnu)G6qMI)=kg9dEL-3@XAx9+Yt(aK0v6|Gvd+pMcXKNp z+@1OB7X*2`yI&}@H|Jt`%A-)XBtZ}Ny3Bozu=1By z?(5^qJFo~1wykQcSog;7i04|CxRY=pm}{x+1Vuj`;Us@*Vitd&o}E|f1s?V;HH zg1n!i@o&aZ^*8r-f0FUQQ1yDE z?%`0&&q93>Ekmu`1@i^!7RUY3ZOTHZ_RTTy@Bcal5i8@wP;aOU z&*Xoyyngl!{Qh4bq3Wn5YU#8o-yVVDsoV@up* z<-x;Ty|iX#RQ;T&w`Zv3t6_2SjZyv1Mg_bG1ONTcIuZ(CFQ#RaoJBp7pAUB(&K%(y zEJby&3H2!5ftu-2)WB!$`tRl+sCrNA`g<#nG1B!De9} zLf0(+6!mC*iRvijXxBb7DxVV-cqppB8mLX#0@ZF1s@@Vm33a><)!V*0h9ES053@X4G=-*3X5sAReC%GAQHz%StS0rkn1E>z7to$M> z&}XO#d_esi5ofY%7lJA;YF0+ASYy4es1DPh%0p2D zmM|-$I&5GzM=k9SsCL~@D=+~y;{~Yp>roTi?Y9f(%ssdn(0DRyKSg?QK*%;g(3LC{C2MUIxdcZzyEb7p@B!E{=hH;bx)6= zB7KH>X1}t0@_DX)8eBnncFUhe1#$z`?iK1de?;Blbn{&x*--sep3nJL#m*F{VK3AZ zZz3w7`Bw2~%O6KQfG(T&%;%`D;t$vh>n)(aXsiHMC4YCJ3n$|ZbtiF` zKvPfwEi(_B56oDrg986JJv%1S`CqOCZb2QVL#P4Ut#JW$#cJgHTmFc7237AGDxf>& zGt@ib18VQ&SnEzrP1H&>MUB@D1ONVKs1=O13bRoiuD0^+R(=$_&f3;D3YJmjZ3BZKw~07nlq4ZE^#)Kn2v+ z>}!rTXQMh^g<9hMsN;1W)!!pjKsh$Ml_-J>$(Qky(1ly50G?Pr^OhiQCHZ`)fv=z* zNDna^X5H$ni5h4C>Sw+w=5o{$|6*Q7t>A0Rr`qP;9sVLDv|C$Xb{vMf1#3|aj-dj4 zf|}Vo%g5dB%2T4=dYMr_q?SOnZ;1+QFzP`x9kmiiu?xojC2-yE^(CPICZZayM=j+E z)Qs<=W}I<{Z7$UBaO+@e?12jKqFuj>YX8XecDnpGsOL+5RQ-s6oWHIlG_yfgVKQpT z_gMKU%il(Az898%gX$>8E@u)mJ?a;hxlk)m2-Sa8yWYa=jDi3E-vF!N$Gq(38Q6^m zhjzO^mFC;yeq}NUwIVyP8oool6T!`Mm9aGU2Gs@`9yK+2qS z= z@h&*SQ1`4i>UYCyQ8W9Dc`?UD_x5ap3iK}O7R0{f`mKti$&beF81J%Mp}|hSH=Trz zMK;Bs&EzxwhGEx(0{?&D_&0(A|B3bj%tHB}sHKd1(|yQl|>Cy6BR%kRD-T|y$>cJKOD8Grkblzr)Q6O#=M7W{~EQaKcU7+_QI8CK#k|m zMnVIYunQF|UmdkX4N(o-TX`SL4@C_y5ewlA)cHSd<^P}perNd@f4e~AqxwsajO+Ju zxrA5PERBk|irK~-V$L=_-}d(;4_{&i+FbD;((Y?ef|3pblsc@MKcs-K~#z{g?W-~Y}gQH_FqsJBzx zm##uv)BwHAf#xubqI@i>qnfYW(l$e_TzAw!<51UUSospvE!}D5$I-9NbJ;FDMy{e|Nbtpd)vNoGZ=uS zxiAsO;%}&9Rqw6atpiaVPe#pjKYoK(F%ABUnsLH+uD{f%iR3|*hnnTF0QoxaIRCmZ z#xBe>mm+UhZ#}Amji|k_%dTHHAKLX-sJG%5)J$`}cPmvK)xIohBGt^EsB!1`NoYw| zm}^mw+Rdn2a~k#2?_Jc(rqBo1uqkT54yXaT`{6F6wi26#VFKLoiT5k zk5Tvfjpbv+j2`&ySrXKy3^!X~3i1Om6HY~~=vK+|$J;?d1MR_5cnBL{v{=ytPpU?! zJ@6CiC!beX6cfjGGpmYvZj3YkzzXC`#fcvHE*OoY$Zx`oSSYSriAEUs{@+YOUqJ6r z=eTsd=z-l{1Cx^PW{$vM@^i2zM&e<7hk6I>iSJhGU-K)LraWE(S6&UZw;H1++&w{b ze_%89qd>cK7;0%|T7E8S7q2x>pqBix<=>-jP0EDP1Dh{1>hx5$d|S&;Kn?seYT&)* z;e>uyaFPOjT%NZJuTUL*wDJ^*T!5jd4yvL8se@|Q8udULW!D$m^_8fJZ8M{+{D$S9 z_$~1T)j@EuGdpT#Wl(4IT6U%ow?$&;HG6wk`#vQrf{*DFrqaCXsEo5#)sIOYIkg@AReLL2L1~t0# Ee}LS}0N3T@C_ex@iQUNbLF2})m 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 From 700a840d2f2882b575e74405015e6eca71ae2b94 Mon Sep 17 00:00:00 2001 From: gerrit Date: Tue, 10 Oct 2023 08:34:40 +0800 Subject: [PATCH 81/92] ci: update build version to 01.07.07.88 Change-Id: I3540eab6552b682f678bdc7966741348f58aa2bd --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index 16bafa473e..5359770202 100644 --- a/version.inc +++ b/version.inc @@ -12,4 +12,4 @@ set(BBL_INTERNAL_TESTING "1") endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.07.07.87") +set(SLIC3R_VERSION "01.07.07.88") From d54f4881608b8dc3e641c329086fa593c4647a2b Mon Sep 17 00:00:00 2001 From: Arthur Date: Tue, 10 Oct 2023 21:20:01 +0800 Subject: [PATCH 82/92] FIX: exclusion region may be too close Auto arranging may put exclusion region may be too close. Jira: none Change-Id: I613a2525620cf58cd9da7d27e8bb6d9d0a52d807 (cherry picked from commit a8ed3929d3596b8ee5400c9376ca040c75025524) (cherry picked from commit 97e6f5aadb4623f07837f8a4845c29752b09f88e) --- src/libslic3r/Arrange.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/Arrange.cpp b/src/libslic3r/Arrange.cpp index 6eb6371fb2..863c6804c5 100644 --- a/src/libslic3r/Arrange.cpp +++ b/src/libslic3r/Arrange.cpp @@ -128,7 +128,7 @@ void update_unselected_items_inflation(ArrangePolygons& unselected, const Dynami float exclusion_gap = 1.f; if (params.is_seq_print) { // bed_shrink_x is typically (-params.cleareance_radius / 2+5) for seq_print - exclusion_gap = std::max(exclusion_gap, params.cleareance_radius / 2 + params.bed_shrink_x); + exclusion_gap = std::max(exclusion_gap, params.cleareance_radius / 2 + params.bed_shrink_x + 1.f); // +1mm gap so the exclusion region is not too close // dont forget to move the excluded region for (auto& region : unselected) { if (region.is_virt_object) region.poly.translate(scaled(params.bed_shrink_x), scaled(params.bed_shrink_y)); From 7b93986dfafee5f44f9c65cb0bf77ef173b83782 Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Wed, 11 Oct 2023 14:46:11 +0800 Subject: [PATCH 83/92] ENH: CLI: retry pipes no matter which error found JIRA: no jira Change-Id: Ic49dd1a55e83485eb72b5be97ba9509261f6c133 --- src/BambuStudio.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/BambuStudio.cpp b/src/BambuStudio.cpp index c065378067..e03284ac09 100644 --- a/src/BambuStudio.cpp +++ b/src/BambuStudio.cpp @@ -299,20 +299,15 @@ typedef struct _cli_callback_mgr { BOOST_LOG_TRIVIAL(info) << "cli_callback_mgr_t::start enter."; m_pipe_fd = open(pipe_name.c_str(),O_WRONLY|O_NONBLOCK); while (m_pipe_fd < 0) { - BOOST_LOG_TRIVIAL(warning) << boost::format("could not open pipe for %1%, errno %2%, retry_count = %3%")%pipe_name %errno %retry_count; - if ((errno == EAGAIN) || (errno == EWOULDBLOCK)) { - retry_count ++; - if (retry_count >= 10) { - BOOST_LOG_TRIVIAL(warning) << boost::format("reach max retry_count, failed to open pipe"); - return false; - } - boost::this_thread::sleep(boost::posix_time::milliseconds(20)); - m_pipe_fd = open(pipe_name.c_str(),O_WRONLY|O_NONBLOCK); - } - else { - BOOST_LOG_TRIVIAL(warning) << boost::format("Failed to open pipe, reason: %1%")%strerror(errno); + if ((retry_count%10) == 0) + BOOST_LOG_TRIVIAL(warning) << boost::format("could not open pipe for %1%, errno %2%, reason: %3%, retry_count = %4%")%pipe_name %errno %strerror(errno) %retry_count; + retry_count ++; + if (retry_count >= 50) { + BOOST_LOG_TRIVIAL(warning) << boost::format("reach max retry_count, failed to open pipe"); return false; } + boost::this_thread::sleep(boost::posix_time::milliseconds(20)); + m_pipe_fd = open(pipe_name.c_str(),O_WRONLY|O_NONBLOCK); } std::unique_lock lck(m_mutex); m_thread = create_thread([this]{ From d64031a054da9a2857117f8c19a193423cba2561 Mon Sep 17 00:00:00 2001 From: Arthur Date: Sun, 8 Oct 2023 21:06:25 +0800 Subject: [PATCH 84/92] ENH: auto-arranging allows more filaments together Auto-arranging allows more filaments to be printed on the same plate Only HighTemp and LowTemp filaments are not allowed on the same plate. Jira: https://jira.bambooolab.com/browse/STUDIO-4682 Change-Id: I1bd4966e6aaa55a6dd9dff05f0bd94f2795a62b0 (cherry picked from commit 965040912af0555ca190702e7c7ac92e177a2922) --- src/libnest2d/include/libnest2d/nester.hpp | 23 ++--- src/libslic3r/Arrange.cpp | 110 +++++++++++---------- src/libslic3r/Arrange.hpp | 35 +++---- src/libslic3r/ModelArrange.cpp | 29 ++++-- src/libslic3r/Print.cpp | 38 +++++++ src/libslic3r/Print.hpp | 9 ++ src/slic3r/GUI/Jobs/ArrangeJob.cpp | 6 +- 7 files changed, 159 insertions(+), 91 deletions(-) diff --git a/src/libnest2d/include/libnest2d/nester.hpp b/src/libnest2d/include/libnest2d/nester.hpp index 9038a9d63a..13281c389b 100644 --- a/src/libnest2d/include/libnest2d/nester.hpp +++ b/src/libnest2d/include/libnest2d/nester.hpp @@ -69,13 +69,14 @@ class _Item { Box bb; bool valid; BBCache(): valid(false) {} } bb_cache_; - + int binid_{BIN_ID_UNSET}, priority_{0}; bool fixed_{false}; public: int itemid_{ 0 }; std::vector extrude_ids; + int filament_temp_type = -1; // -1 means unset. otherwise should be {0,1,2} double height{ 0 }; double print_temp{ 0 }; double bed_temp{ 0 }; @@ -140,7 +141,7 @@ public: inline _Item(TContour&& contour, THolesContainer&& holes): sh_(sl::create(std::move(contour), std::move(holes))) {} - + inline bool isFixed() const noexcept { return fixed_; } inline void markAsFixedInBin(int binid) { @@ -150,7 +151,7 @@ public: inline void binId(int idx) { binid_ = idx; } inline int binId() const noexcept { return binid_; } - + inline void priority(int p) { priority_ = p; } inline int priority() const noexcept { return priority_; } @@ -303,18 +304,18 @@ public: { rotation(rotation() + rads); } - + inline void inflation(Coord distance) BP2D_NOEXCEPT { inflation_ = distance; has_inflation_ = true; invalidateCache(); } - + inline Coord inflation() const BP2D_NOEXCEPT { return inflation_; } - + inline void inflate(Coord distance) BP2D_NOEXCEPT { inflation(inflation() + distance); @@ -780,7 +781,7 @@ template class _Nester { using TSel = SelectionStrategyLike; TSel selector_; - + public: using Item = typename PlacementStrategy::Item; using ShapeType = typename Item::ShapeType; @@ -805,7 +806,7 @@ private: StopCondition stopfn_; template using TVal = remove_ref_t; - + template using ItemIteratorOnly = enable_if_t&, TPItem&>::value, Out>; @@ -863,14 +864,14 @@ public: if(infl > 0) std::for_each(from, to, [infl](Item& item) { item.inflate(infl); }); - + selector_.template packItems( from, to, bin_, pconfig_); - + if(min_obj_distance_ > 0) std::for_each(from, to, [infl](Item& item) { item.inflate(-infl); }); - + return selector_.getResult().size(); } diff --git a/src/libslic3r/Arrange.cpp b/src/libslic3r/Arrange.cpp index 863c6804c5..612a2b864b 100644 --- a/src/libslic3r/Arrange.cpp +++ b/src/libslic3r/Arrange.cpp @@ -1,5 +1,5 @@ #include "Arrange.hpp" - +#include "Print.hpp" #include "BoundingBox.hpp" #include @@ -260,7 +260,7 @@ Points get_shrink_bedpts(const DynamicPrintConfig* print_cfg, const ArrangeParam // Slic3r. template void fill_config(PConf& pcfg, const ArrangeParams ¶ms) { - + if (params.is_seq_print) { // Start placing the items from the center of the print bed pcfg.starting_point = PConf::Alignment::BOTTOM_LEFT; @@ -269,7 +269,7 @@ void fill_config(PConf& pcfg, const ArrangeParams ¶ms) { // Start placing the items from the center of the print bed pcfg.starting_point = PConf::Alignment::TOP_RIGHT; } - + if (params.do_final_align) { // Align the arranged pile into the center of the bin pcfg.alignment = PConf::Alignment::CENTER; @@ -286,7 +286,7 @@ void fill_config(PConf& pcfg, const ArrangeParams ¶ms) { // The accuracy of optimization. // Goes from 0.0 to 1.0 and scales performance as well pcfg.accuracy = params.accuracy; - + // Allow parallel execution. pcfg.parallel = params.parallel; @@ -312,7 +312,7 @@ static double fixed_overfit(const std::tuple& result, const Box &bi Box fullbb = sl::boundingBox(pilebb, binbb); auto diff = double(fullbb.area()) - binbb.area(); if(diff > 0) score += diff; - + return score; } @@ -379,7 +379,7 @@ protected: std::vector m_excluded_and_extruCali_regions; // excluded and extrusion calib regions size_t m_item_count = 0; // Number of all items to be packed ArrangeParams params; - + template ArithmeticOnly norm(T val) { return double(val) / m_norm; @@ -417,18 +417,18 @@ protected: const double bin_area = m_bin_area; const SpatIndex& spatindex = m_rtree; const SpatIndex& smalls_spatindex = m_smallsrtree; - + // We will treat big items (compared to the print bed) differently auto isBig = [bin_area](double a) { return a/bin_area > BIG_ITEM_TRESHOLD ; }; - + // Candidate item bounding box auto ibb = item.boundingBox(); - + // Calculate the full bounding box of the pile with the candidate item auto fullbb = sl::boundingBox(m_pilebb, ibb); - + // The bounding box of the big items (they will accumulate in the center // of the pile Box bigbb; @@ -437,31 +437,31 @@ protected: auto boostbb = spatindex.bounds(); boost::geometry::convert(boostbb, bigbb); } - + // Will hold the resulting score double score = 0; - + // Density is the pack density: how big is the arranged pile double density = 0; - + // Distinction of cases for the arrangement scene enum e_cases { // This branch is for big items in a mixed (big and small) scene // OR for all items in a small-only scene. BIG_ITEM, - + // This branch is for the last big item in a mixed scene LAST_BIG_ITEM, - + // For small items in a mixed scene. SMALL_ITEM } compute_case; - + bool bigitems = isBig(item.area()) || spatindex.empty(); if(!params.is_seq_print && bigitems && !m_remaining.empty()) compute_case = BIG_ITEM; // do not use so complicated logic for sequential printing else if (bigitems && m_remaining.empty()) compute_case = LAST_BIG_ITEM; else compute_case = SMALL_ITEM; - + switch (compute_case) { case BIG_ITEM: { const Point& minc = ibb.minCorner(); // bottom left corner @@ -566,7 +566,7 @@ protected: } break; - } + } } @@ -603,9 +603,11 @@ protected: for (int i = 0; i < m_items.size(); i++) { Item& p = m_items[i]; if (p.is_virt_object) continue; - score += lambda3 * (item.bed_temp - p.vitrify_temp > VITRIFY_TEMP_DIFF_THRSH); + //score += lambda3 * (item.bed_temp - p.vitrify_temp > VITRIFY_TEMP_DIFF_THRSH); + if (!Print::is_filaments_compatible({item.filament_temp_type,p.filament_temp_type})) + score += lambda3; } - score += lambda3 * (item.bed_temp - item.vitrify_temp > VITRIFY_TEMP_DIFF_THRSH); + //score += lambda3 * (item.bed_temp - item.vitrify_temp > VITRIFY_TEMP_DIFF_THRSH); score += lambda4 * hasRowHeightConflict + lambda4 * hasLidHeightConflict; } else { @@ -625,7 +627,9 @@ protected: // 高度接近的件尽量摆到一起 score += (1- std::abs(item.height - p.height) / params.printable_height) * norm(pl::distance(ibb.center(), p.boundingBox().center())); - score += LARGE_COST_TO_REJECT * (item.bed_temp - p.bed_temp != 0); + //score += LARGE_COST_TO_REJECT * (item.bed_temp - p.bed_temp != 0); + if (!Print::is_filaments_compatible({ item.filament_temp_type,p.filament_temp_type })) + score += LARGE_COST_TO_REJECT; } } } @@ -656,9 +660,9 @@ protected: return std::make_tuple(score, fullbb); } - + std::function get_objfn(); - + public: AutoArranger(const TBin & bin, const ArrangeParams ¶ms, @@ -708,7 +712,7 @@ public: m_rtree.clear(); m_smallsrtree.clear(); - + // We will treat big items (compared to the print bed) differently auto isBig = [this](double a) { return a / m_bin_area > BIG_ITEM_TRESHOLD ; @@ -721,7 +725,7 @@ public: m_smallsrtree.insert({itm.boundingBox(), idx}); } }; - + m_pconf.object_function = get_objfn(); // preload fixed items (and excluded regions) on plate @@ -746,7 +750,7 @@ public: }; auto on_packed = params.on_packed; - + if (progressind || on_packed) m_pck.progressIndicator( [this, progressind, on_packed](unsigned num_finished) { @@ -760,7 +764,8 @@ public: if (on_packed) on_packed(ap); BOOST_LOG_TRIVIAL(debug) << "arrange " + last_packed.name + " succeed!" - << ", plate id=" << ap.bed_idx << ", pos=" << last_packed.translation(); + << ", plate id=" << ap.bed_idx << ", pos=" << last_packed.translation() + << ", temp_type=" << last_packed.filament_temp_type; } }); @@ -783,21 +788,21 @@ public: (i1.extrude_ids != i2.extrude_ids ? (i1.extrude_ids.front() < i2.extrude_ids.front()) : (i1.area() > i2.area())); } }; - + m_pck.configure(m_pconf); } - + template inline void operator()(It from, It to) { m_rtree.clear(); m_item_count += size_t(to - from); m_pck.execute(from, to); m_item_count = 0; } - + PConfig& config() { return m_pconf; } const PConfig& config() const { return m_pconf; } - - inline void preload(std::vector& fixeditems) { + + inline void preload(std::vector& fixeditems) { for(unsigned idx = 0; idx < fixeditems.size(); ++idx) { Item& itm = fixeditems[idx]; itm.markAsFixedInBin(itm.binId()); @@ -813,7 +818,7 @@ template<> std::function AutoArranger(result); auto& fullbb = std::get<1>(result); @@ -840,15 +845,15 @@ template<> std::function AutoArranger(result); - + auto isBig = [this](const Item& itm) { return itm.area() / m_bin_area > BIG_ITEM_TRESHOLD ; }; - + if(isBig(item)) { auto mp = m_merged_pile; mp.push_back(item.transformedShape()); @@ -857,7 +862,7 @@ template<> std::function AutoArranger AutoArranger::g auto result = objfunc(itm, origin_pack); double score = std::get<0>(result); - + auto mp = m_merged_pile; mp.emplace_back(itm.transformedShape()); auto chull = sl::convexHull(mp); @@ -930,14 +935,14 @@ void _arrange( // Integer ceiling the min distance from the bed perimeters coord_t md = params.min_obj_distance; md = md / 2; - + auto corrected_bin = bin; //sl::offset(corrected_bin, md); ArrangeParams mod_params = params; mod_params.min_obj_distance = 0; // items are already inflated AutoArranger arranger{corrected_bin, mod_params, progressfn, stopfn}; - + remove_large_items(excludes, corrected_bin); // If there is something on the plate @@ -947,7 +952,7 @@ void _arrange( inp.reserve(shapes.size() + excludes.size()); for (auto &itm : shapes ) inp.emplace_back(itm); for (auto &itm : excludes) inp.emplace_back(itm); - + // Use the minimum bounding box rotation as a starting point. // TODO: This only works for convex hull. If we ever switch to concave // polygon nesting, a convex hull needs to be calculated. @@ -987,16 +992,16 @@ inline double distance_to(const Point& p1, const Point& p2) static CircleBed to_circle(const Point ¢er, const Points& points) { std::vector vertex_distances; double avg_dist = 0; - + for (auto pt : points) { double distance = distance_to(center, pt); vertex_distances.push_back(distance); avg_dist += distance; } - + avg_dist /= vertex_distances.size(); - + CircleBed ret(center, avg_dist); for(auto el : vertex_distances) { @@ -1005,7 +1010,7 @@ static CircleBed to_circle(const Point ¢er, const Points& points) { break; } } - + return ret; } @@ -1039,6 +1044,7 @@ static void process_arrangeable(const ArrangePolygon &arrpoly, item.print_temp = arrpoly.print_temp; item.vitrify_temp = arrpoly.vitrify_temp; item.inflation(arrpoly.inflation); + item.filament_temp_type = arrpoly.filament_temp_type; } template auto call_with_bed(const Points &bed, Fn &&fn) @@ -1079,20 +1085,20 @@ void arrange(ArrangePolygons & arrangables, const ArrangeParams & params) { namespace clppr = Slic3r::ClipperLib; - + std::vector items, fixeditems; items.reserve(arrangables.size()); - + for (ArrangePolygon &arrangeable : arrangables) process_arrangeable(arrangeable, items); - + for (const ArrangePolygon &fixed: excludes) process_arrangeable(fixed, fixeditems); - + for (Item &itm : fixeditems) itm.inflate(scaled(-2. * EPSILON)); - + _arrange(items, fixeditems, to_nestbin(bed), params, params.progressind, params.stopcondition); - + for(size_t i = 0; i < items.size(); ++i) { Point tr = items[i].translation(); arrangables[i].translation = {coord_t(tr.x()), coord_t(tr.y())}; diff --git a/src/libslic3r/Arrange.hpp b/src/libslic3r/Arrange.hpp index 63f180859a..bf9815be6b 100644 --- a/src/libslic3r/Arrange.hpp +++ b/src/libslic3r/Arrange.hpp @@ -40,12 +40,12 @@ static const constexpr int UNARRANGED = -1; /// be modified during arrangement. Instead, the translation and rotation fields /// will mark the needed transformation for the polygon to be in the arranged /// position. These can also be set to an initial offset and rotation. -/// +/// /// The bed_idx field will indicate the logical bed into which the /// polygon belongs: UNARRANGED means no place for the polygon /// (also the initial state before arrange), 0..N means the index of the bed. /// Zero is the physical bed, larger than zero means a virtual bed. -struct ArrangePolygon { +struct ArrangePolygon { ExPolygon poly; /// The 2D silhouette to be arranged Vec2crd translation{0, 0}; /// The translation of the poly double rotation{0.0}; /// The rotation of the poly in radians @@ -62,6 +62,7 @@ struct ArrangePolygon { int row{0}; int col{0}; std::vector extrude_ids{}; /// extruder_id for least extruder switch + int filament_temp_type{ -1 }; int bed_temp{0}; ///bed temperature for different material judge int print_temp{0}; ///print temperature for different material judge int first_bed_temp{ 0 }; ///first layer bed temperature for different material judge @@ -69,20 +70,20 @@ struct ArrangePolygon { int vitrify_temp{ 0 }; // max bed temperature for material compatibility, which is usually the filament vitrification temp int itemid{ 0 }; // item id in the vector, used for accessing all possible params like extrude_id int is_applied{ 0 }; // transform has been applied - double height{ 0 }; // item height + double height{ 0 }; // item height double brim_width{ 0 }; // brim width std::string name; - + // If empty, any rotation is allowed (currently unsupported) // If only a zero is there, no rotation is allowed std::vector allowed_rotations = {0.}; - + /// Optional setter function which can store arbitrary data in its closure std::function setter = nullptr; - + /// Helper function to call the setter with the arrange data arguments void apply() { - if (setter && !is_applied) { + if (setter && !is_applied) { setter(*this); is_applied = 1; } @@ -104,15 +105,15 @@ struct ArrangePolygon { using ArrangePolygons = std::vector; struct ArrangeParams { - - /// The minimum distance which is allowed for any + + /// The minimum distance which is allowed for any /// pair of items on the print bed in any direction. coord_t min_obj_distance = 0; - + /// The accuracy of optimization. /// Goes from 0.0 to 1.0 and scales performance as well float accuracy = 1.f; - + /// Allow parallel execution. bool parallel = true; @@ -136,18 +137,18 @@ struct ArrangeParams { ArrangePolygons excluded_regions; // regions cant't be used ArrangePolygons nonprefered_regions; // regions can be used but not prefered - - /// Progress indicator callback called when an object gets packed. + + /// Progress indicator callback called when an object gets packed. /// The unsigned argument is the number of items remaining to pack. std::function progressind = [](unsigned st, std::string str = "") { std::cout << "st=" << st << ", " << str << std::endl; }; std::function on_packed; - + /// A predicate returning true if abort is needed. std::function stopcondition; - + ArrangeParams() = default; explicit ArrangeParams(coord_t md) : min_obj_distance(md) {} // to json format @@ -186,11 +187,11 @@ Points get_shrink_bedpts(const DynamicPrintConfig* print_cfg, const ArrangeParam /** * \brief Arranges the input polygons. * - * WARNING: Currently, only convex polygons are supported by the libnest2d + * WARNING: Currently, only convex polygons are supported by the libnest2d * library which is used to do the arrangement. This might change in the future * this is why the interface contains a general polygon capable to have holes. * - * \param items Input vector of ArrangePolygons. The transformation, rotation + * \param items Input vector of ArrangePolygons. The transformation, rotation * and bin_idx fields will be changed after the call finished and can be used * to apply the result on the input polygon. */ diff --git a/src/libslic3r/ModelArrange.cpp b/src/libslic3r/ModelArrange.cpp index 710b031fef..50622a3b54 100644 --- a/src/libslic3r/ModelArrange.cpp +++ b/src/libslic3r/ModelArrange.cpp @@ -2,6 +2,7 @@ #include #include +#include #include "MTUtils.hpp" namespace Slic3r { @@ -10,7 +11,7 @@ arrangement::ArrangePolygons get_arrange_polys(const Model &model, ModelInstance { size_t count = 0; for (auto obj : model.objects) count += obj->instances.size(); - + ArrangePolygons input; input.reserve(count); instances.clear(); instances.reserve(count); @@ -21,21 +22,21 @@ arrangement::ArrangePolygons get_arrange_polys(const Model &model, ModelInstance input.emplace_back(ap); instances.emplace_back(minst); } - + return input; } bool apply_arrange_polys(ArrangePolygons &input, ModelInstancePtrs &instances, VirtualBedFn vfn) { bool ret = true; - + for(size_t i = 0; i < input.size(); ++i) { if (input[i].bed_idx != 0) { ret = false; if (vfn) vfn(input[i]); } if (input[i].bed_idx >= 0) instances[i]->apply_arrange_result(input[i].translation.cast(), input[i].rotation); } - + return ret; } @@ -52,7 +53,7 @@ Slic3r::arrangement::ArrangePolygon get_arrange_poly(const Model &model) const Points &pts = obj_ap.poly.contour.points; std::copy(pts.begin(), pts.end(), std::back_inserter(apts)); } - + apts = std::move(Geometry::convex_hull(apts).points); return ap; } @@ -118,7 +119,7 @@ arrangement::ArrangePolygon get_arrange_poly(ModelInstance* inst, const Slic3r:: ArrangePolygon get_instance_arrange_poly(ModelInstance* instance, const Slic3r::DynamicPrintConfig& config) { ArrangePolygon ap = get_arrange_poly(PtrWrapper{ instance }, config); - + //BBS: add temperature information if (config.has("curr_bed_type")) { ap.bed_temp = 0; @@ -138,11 +139,23 @@ ArrangePolygon get_instance_arrange_poly(ModelInstance* instance, const Slic3r:: ap.print_temp = config.opt_int("nozzle_temperature", ap.extrude_ids.front() - 1); if (config.has("nozzle_temperature_initial_layer")) //get the nozzle_temperature_initial_layer ap.first_print_temp = config.opt_int("nozzle_temperature_initial_layer", ap.extrude_ids.front() - 1); - + if (config.has("temperature_vitrification")) { ap.vitrify_temp = config.opt_int("temperature_vitrification", ap.extrude_ids.front() - 1); } + // get filament temp types + auto* filament_types_opt = dynamic_cast(config.option("filament_type")); + if (filament_types_opt) { + std::set filament_temp_types; + for (auto i : ap.extrude_ids) { + std::string type_str = filament_types_opt->get_at(i-1); + int temp_type = Print::get_filament_temp_type(type_str); + filament_temp_types.insert(temp_type); + } + ap.filament_temp_type = Print::get_compatible_filament_type(filament_temp_types); + } + // get brim width auto obj = instance->get_object(); @@ -162,7 +175,7 @@ ArrangePolygon get_instance_arrange_poly(ModelInstance* instance, const Slic3r:: ap.brim_width = 24.0; // 2*MAX_BRANCH_RADIUS_FIRST_LAYER ap.has_tree_support = true; } - + ap.height = obj->bounding_box().size().z(); ap.name = obj->name; return ap; diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 5dd229e7e7..785f323d7d 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -930,6 +930,44 @@ bool Print::check_multi_filaments_compatibility(const std::vector& return true; } +bool Print::is_filaments_compatible(const std::vector& filament_types) +{ + bool has_high_temperature_filament = false; + bool has_low_temperature_filament = false; + + for (const auto& type : filament_types) { + if (type == FilamentTempType::HighTemp) + has_high_temperature_filament = true; + else if (type == FilamentTempType::LowTemp) + has_low_temperature_filament = true; + } + + if (has_high_temperature_filament && has_low_temperature_filament) + return false; + + return true; +} +int Print::get_compatible_filament_type(const std::set& filament_types) +{ + bool has_high_temperature_filament = false; + bool has_low_temperature_filament = false; + + for (const auto& type : filament_types) { + if (type == FilamentTempType::HighTemp) + has_high_temperature_filament = true; + else if (type == FilamentTempType::LowTemp) + has_low_temperature_filament = true; + } + + if (has_high_temperature_filament && has_low_temperature_filament) + return HighLowCompatible; + else if (has_high_temperature_filament) + return HighTemp; + else if (has_low_temperature_filament) + return LowTemp; + return HighLowCompatible; +} + //BBS: this function is used to check whether multi filament can be printed StringObjectException Print::check_multi_filament_valid(const Print& print) { diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index a8056fa260..523adb928b 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -821,6 +821,15 @@ public: Vec2d translate_to_print_space(const Point& point) const; static bool check_multi_filaments_compatibility(const std::vector& filament_types); + // similar to check_multi_filaments_compatibility, but the input is int, and may be negative (means unset) + static bool is_filaments_compatible(const std::vector& types); + // get the compatible filament type of a multi-material object + // Rule: + // 1. LowTemp+HighLowCompatible=LowTemp + // 2. HighTemp++HighLowCompatible=HighTemp + // 3. LowTemp+HighTemp+...=HighLowCompatible + // Unset types are just ignored. + static int get_compatible_filament_type(const std::set& types); protected: // Invalidates the step, and its depending steps in Print. diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.cpp b/src/slic3r/GUI/Jobs/ArrangeJob.cpp index 1a909472b4..f01da8b6cd 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.cpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.cpp @@ -517,9 +517,9 @@ void ArrangeJob::process() { BOOST_LOG_TRIVIAL(warning)<< "Arrange full params: "<< params.to_json(); BOOST_LOG_TRIVIAL(info) << boost::format("arrange: items selected before arranging: %1%") % m_selected.size(); - for (auto selected : m_selected) - BOOST_LOG_TRIVIAL(debug) << selected.name << ", extruder: " << selected.extrude_ids.back() << ", bed: " << selected.bed_idx - << ", bed_temp: " << selected.first_bed_temp << ", print_temp: " << selected.print_temp; + for (auto selected : m_selected) { + BOOST_LOG_TRIVIAL(debug) << selected.name << ", extruder: " << selected.extrude_ids.back() << ", bed: " << selected.bed_idx<<", filemant_type:" << selected.filament_temp_type; + } BOOST_LOG_TRIVIAL(debug) << "items unselected before arrange: "; for (auto item : m_unselected) BOOST_LOG_TRIVIAL(debug) << item.name << ", bed: " << item.bed_idx << ", trans: " << item.translation.transpose(); From 9ce3487b20f39074f183415d5fb3a4669b0d97c9 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Thu, 24 Aug 2023 15:56:05 +0800 Subject: [PATCH 85/92] FIX: [STUDIO-4125] null crash in ImageGrid Change-Id: Ibe2fcf6d3fe7ae901a2e594d782566a04aa19c39 Jira: STUDIO-4125 (cherry picked from commit aef8e23fdbead22c9e0585cb33cb72f183d8c057) --- src/slic3r/GUI/ImageGrid.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/ImageGrid.cpp b/src/slic3r/GUI/ImageGrid.cpp index 9944abb363..624c0539d5 100644 --- a/src/slic3r/GUI/ImageGrid.cpp +++ b/src/slic3r/GUI/ImageGrid.cpp @@ -224,6 +224,7 @@ void ImageGrid::UpdateLayout() void Slic3r::GUI::ImageGrid::UpdateFocusRange() { + if (!m_file_sys) return; wxSize size = GetClientSize(); wxPoint off; int index = firstItem(size, off); From 96abc3209a0d4bb8f595cd8473e5796ffa6e3bd1 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Fri, 1 Sep 2023 10:26:53 +0800 Subject: [PATCH 86/92] ENH: use json to store filament & nozzle info 1.Use json to store nozzle hrc 2.Use json to store filament temp type jira: STUDIO-3488 Signed-off-by: xun.zhang Change-Id: I8eb226e26352a41418f4e46d8cda403dc22ecff4 (cherry picked from commit 62a71d5b1947474d3d86be9015551c1007c89702) --- resources/info/filament_info.json | 27 +++++++ resources/info/nozzle_info.json | 9 +++ src/libslic3r/GCode/GCodeProcessor.cpp | 8 +-- src/libslic3r/GCode/GCodeProcessor.hpp | 1 - src/libslic3r/Print.cpp | 97 ++++++++++++++++++++------ src/libslic3r/Print.hpp | 9 ++- src/libslic3r/PrintConfig.hpp | 7 ++ 7 files changed, 128 insertions(+), 30 deletions(-) create mode 100644 resources/info/filament_info.json create mode 100644 resources/info/nozzle_info.json diff --git a/resources/info/filament_info.json b/resources/info/filament_info.json new file mode 100644 index 0000000000..673e1a89a7 --- /dev/null +++ b/resources/info/filament_info.json @@ -0,0 +1,27 @@ +{ + "version": "1.0.0.1", + "high_temp_filament": [ + "ABS", + "ASA", + "PC", + "PA", + "PA-CF", + "PA6-CF", + "PET-CF", + "PPS", + "PPS-CF", + "PPA-CF", + "PPA-GF" + ], + "low_temp_filament": [ + "PLA", + "TPU", + "PLA-CF", + "PLA-AERO", + "PVA" + ], + "high_low_compatible_filament":[ + "HIPS", + "PETG" + ] +} \ No newline at end of file diff --git a/resources/info/nozzle_info.json b/resources/info/nozzle_info.json new file mode 100644 index 0000000000..e5e6631c09 --- /dev/null +++ b/resources/info/nozzle_info.json @@ -0,0 +1,9 @@ +{ + "version": "1.0.0.1", + "nozzle_hrc": { + "hardened_steel": 55, + "stainless_steel": 20, + "brass": 2, + "undefine": 0 + } +} \ No newline at end of file diff --git a/src/libslic3r/GCode/GCodeProcessor.cpp b/src/libslic3r/GCode/GCodeProcessor.cpp index 56508daa7e..17753c6eed 100644 --- a/src/libslic3r/GCode/GCodeProcessor.cpp +++ b/src/libslic3r/GCode/GCodeProcessor.cpp @@ -64,12 +64,6 @@ const std::vector GCodeProcessor::Reserved_Tags = { const std::string GCodeProcessor::Flush_Start_Tag = " FLUSH_START"; const std::string GCodeProcessor::Flush_End_Tag = " FLUSH_END"; -const std::map GCodeProcessor::Nozzle_Type_To_HRC={ - {NozzleType::ntStainlessSteel,20}, - {NozzleType::ntHardenedSteel,55}, - {NozzleType::ntBrass,2}, - {NozzleType::ntUndefine,0} -}; const float GCodeProcessor::Wipe_Width = 0.05f; const float GCodeProcessor::Wipe_Height = 0.05f; @@ -4315,7 +4309,7 @@ void GCodeProcessor::update_slice_warnings() warning.params.clear(); warning.level=1; - int nozzle_hrc = Nozzle_Type_To_HRC.find(m_result.nozzle_type)->second; + int nozzle_hrc = Print::get_hrc_by_nozzle_type(m_result.nozzle_type); if (nozzle_hrc!=0) { for (size_t i = 0; i < used_extruders.size(); i++) { int HRC=0; diff --git a/src/libslic3r/GCode/GCodeProcessor.hpp b/src/libslic3r/GCode/GCodeProcessor.hpp index 7c3736d441..86309a0e66 100644 --- a/src/libslic3r/GCode/GCodeProcessor.hpp +++ b/src/libslic3r/GCode/GCodeProcessor.hpp @@ -242,7 +242,6 @@ namespace Slic3r { static const std::vector Reserved_Tags; static const std::string Flush_Start_Tag; static const std::string Flush_End_Tag; - static const std::mapNozzle_Type_To_HRC; public: enum class ETags : unsigned char { diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index 785f323d7d..a0094656c8 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -899,30 +899,15 @@ static StringObjectException layered_print_cleareance_valid(const Print &print, bool Print::check_multi_filaments_compatibility(const std::vector& filament_types) { - static std::map filament_is_high_temp{ - {"PLA", false}, - {"PLA-CF", false}, - //{"PETG", true}, - {"ABS", true}, - {"TPU", false}, - {"PA", true}, - {"PA-CF", true}, - {"PET-CF", true}, - {"PC", true}, - {"ASA", true}, - {"HIPS", true} - }; - bool has_high_temperature_filament = false; bool has_low_temperature_filament = false; - for (const auto& type : filament_types) - if (filament_is_high_temp.find(type) != filament_is_high_temp.end()) { - if (filament_is_high_temp[type]) - has_high_temperature_filament = true; - else - has_low_temperature_filament = true; - } + for (const auto& type : filament_types) { + if (get_filament_temp_type(type) ==FilamentTempType::HighTemp) + has_high_temperature_filament = true; + else if (get_filament_temp_type(type) == FilamentTempType::LowTemp) + has_low_temperature_filament = true; + } if (has_high_temperature_filament && has_low_temperature_filament) return false; @@ -2140,6 +2125,76 @@ Vec2d Print::translate_to_print_space(const Point& point) const { return Vec2d(unscaled(point.x()) - m_origin(0), unscaled(point.y()) - m_origin(1)); } +FilamentTempType Print::get_filament_temp_type(const std::string& filament_type) +{ + const static std::string HighTempFilamentStr = "high_temp_filament"; + const static std::string LowTempFilamentStr = "low_temp_filament"; + const static std::string HighLowCompatibleFilamentStr = "high_low_compatible_filament"; + static std::unordered_map>filament_temp_type_map; + + if (filament_temp_type_map.empty()) { + fs::path file_path = fs::path(resources_dir()) / "info" / "filament_info.json"; + std::ifstream in(file_path.string()); + json j; + try{ + j = json::parse(in); + in.close(); + auto&&high_temp_filament_arr =j[HighTempFilamentStr].get < std::vector>(); + filament_temp_type_map[HighTempFilamentStr] = std::unordered_set(high_temp_filament_arr.begin(), high_temp_filament_arr.end()); + auto&& low_temp_filament_arr = j[LowTempFilamentStr].get < std::vector>(); + filament_temp_type_map[LowTempFilamentStr] = std::unordered_set(low_temp_filament_arr.begin(), low_temp_filament_arr.end()); + auto&& high_low_compatible_filament_arr = j[HighLowCompatibleFilamentStr].get < std::vector>(); + filament_temp_type_map[HighLowCompatibleFilamentStr] = std::unordered_set(high_low_compatible_filament_arr.begin(), high_low_compatible_filament_arr.end()); + } + catch (const json::parse_error& err){ + in.close(); + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": parse " << file_path.string() << " got a nlohmann::detail::parse_error, reason = " << err.what(); + filament_temp_type_map[HighTempFilamentStr] = {"ABS","ASA","PC","PA","PA-CF","PA6-CF","PET-CF","PPS","PPS-CF","PPA-GF","PPA-CF"}; + filament_temp_type_map[LowTempFilamentStr] = {"PLA","TPU","PLA-CF","PLA-AERO","PVA"}; + filament_temp_type_map[HighLowCompatibleFilamentStr] = { "HIPS","PETG" }; + } + } + + if (filament_temp_type_map[HighLowCompatibleFilamentStr].find(filament_type) != filament_temp_type_map[HighLowCompatibleFilamentStr].end()) + return HighLowCompatible; + if (filament_temp_type_map[HighTempFilamentStr].find(filament_type) != filament_temp_type_map[HighTempFilamentStr].end()) + return HighTemp; + if (filament_temp_type_map[LowTempFilamentStr].find(filament_type) != filament_temp_type_map[LowTempFilamentStr].end()) + return LowTemp; + return Undefine; +} + +int Print::get_hrc_by_nozzle_type(const NozzleType&type) +{ + static std::mapnozzle_type_to_hrc; + if (nozzle_type_to_hrc.empty()) { + fs::path file_path = fs::path(resources_dir()) / "info" / "nozzle_info.json"; + std::ifstream in(file_path.string()); + json j; + try { + j = json::parse(in); + in.close(); + for (const auto& elem : j["nozzle_hrc"].items()) + nozzle_type_to_hrc[elem.key()] = elem.value(); + } + catch (const json::parse_error& err) { + in.close(); + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << ": parse " << file_path.string() << " got a nlohmann::detail::parse_error, reason = " << err.what(); + nozzle_type_to_hrc = { + {"hardened_steel",55}, + {"stainless_steel",20}, + {"brass",2}, + {"undefine",0} + }; + } + } + auto iter = nozzle_type_to_hrc.find(NozzleTypeEumnToStr[type]); + if (iter != nozzle_type_to_hrc.end()) + return iter->second; + //0 represents undefine + return 0; +} + void Print::finalize_first_layer_convex_hull() { append(m_first_layer_convex_hull.points, m_skirt_convex_hull); diff --git a/src/libslic3r/Print.hpp b/src/libslic3r/Print.hpp index 523adb928b..154022bdc6 100644 --- a/src/libslic3r/Print.hpp +++ b/src/libslic3r/Print.hpp @@ -672,6 +672,12 @@ class ConstPrintRegionPtrsAdaptor : public ConstVectorOfPtrsAdaptor }; */ +enum FilamentTempType { + HighTemp=0, + LowTemp, + HighLowCompatible, + Undefine +}; // The complete print tray with possibly multiple objects. class Print : public PrintBaseWithState { @@ -819,7 +825,8 @@ public: Vec2d translate_to_print_space(const Vec2d& point) const; // scaled point Vec2d translate_to_print_space(const Point& point) const; - + static FilamentTempType get_filament_temp_type(const std::string& filament_type); + static int get_hrc_by_nozzle_type(const NozzleType& type); static bool check_multi_filaments_compatibility(const std::vector& filament_types); // similar to check_multi_filaments_compatibility, but the input is int, and may be negative (means unset) static bool is_filaments_compatible(const std::vector& types); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index d66a179952..7715b71455 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -210,6 +210,13 @@ enum NozzleType { ntCount }; +static std::unordered_mapNozzleTypeEumnToStr = { + {NozzleType::ntUndefine, "undefine"}, + {NozzleType::ntHardenedSteel, "hardened_steel"}, + {NozzleType::ntStainlessSteel, "stainless_steel"}, + {NozzleType::ntBrass, "brass"} +}; + // BBS enum PrinterStructure { psUndefine=0, From f52c49c3716c3213748853559b8f69f7f1b5ae15 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Thu, 12 Oct 2023 11:47:37 +0800 Subject: [PATCH 87/92] FIX: PA Profile Factor K not shown in German language github: 2689 Change-Id: I8d5b874e1304e2ecd984f14fad8ae32f94ea4602 --- src/slic3r/GUI/DeviceManager.cpp | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/slic3r/GUI/DeviceManager.cpp b/src/slic3r/GUI/DeviceManager.cpp index 7ed9466b4f..b07dbf87bb 100644 --- a/src/slic3r/GUI/DeviceManager.cpp +++ b/src/slic3r/GUI/DeviceManager.cpp @@ -16,11 +16,18 @@ #include #include #include +#include "fast_float/fast_float.h" #define CALI_DEBUG namespace pt = boost::property_tree; +float string_to_float(const std::string& str_value) { + float value = 0.0; + fast_float::from_chars(str_value.c_str(), str_value.c_str() + str_value.size(), value); + return value; +} + const int PRINTING_STAGE_COUNT = 32; std::string PRINTING_STAGE_STR[PRINTING_STAGE_COUNT] = { "printing", @@ -3351,7 +3358,7 @@ int MachineObject::parse_json(std::string payload) if (jj["nozzle_diameter"].is_number_float()) { nozzle_diameter = jj["nozzle_diameter"].get(); } else if (jj["nozzle_diameter"].is_string()) { - nozzle_diameter = stof(jj["nozzle_diameter"].get().c_str()); + nozzle_diameter = string_to_float(jj["nozzle_diameter"].get()); } } } @@ -4266,7 +4273,7 @@ int MachineObject::parse_json(std::string payload) pa_calib_tab_nozzle_dia = jj["nozzle_diameter"].get(); } else if (jj["nozzle_diameter"].is_string()) { - pa_calib_tab_nozzle_dia = stof(jj["nozzle_diameter"].get().c_str()); + pa_calib_tab_nozzle_dia = string_to_float(jj["nozzle_diameter"].get()); } else { assert(false); @@ -4293,18 +4300,18 @@ int MachineObject::parse_json(std::string payload) if (jj["nozzle_diameter"].is_number_float()) { pa_calib_result.nozzle_diameter = jj["nozzle_diameter"].get(); } else if (jj["nozzle_diameter"].is_string()) { - pa_calib_result.nozzle_diameter = stof(jj["nozzle_diameter"].get().c_str()); + pa_calib_result.nozzle_diameter = string_to_float(jj["nozzle_diameter"].get()); } if ((*it)["k_value"].is_number_float()) pa_calib_result.k_value = (*it)["k_value"].get(); else if ((*it)["k_value"].is_string()) - pa_calib_result.k_value = stof((*it)["k_value"].get().c_str()); + pa_calib_result.k_value = string_to_float((*it)["k_value"].get()); if ((*it)["n_coef"].is_number_float()) pa_calib_result.n_coef = (*it)["n_coef"].get(); else if ((*it)["n_coef"].is_string()) - pa_calib_result.n_coef = stof((*it)["n_coef"].get().c_str()); + pa_calib_result.n_coef = string_to_float((*it)["n_coef"].get()); if (check_pa_result_validation(pa_calib_result)) pa_calib_tab.push_back(pa_calib_result); @@ -4340,18 +4347,18 @@ int MachineObject::parse_json(std::string payload) if (jj["nozzle_diameter"].is_number_float()) { pa_calib_result.nozzle_diameter = jj["nozzle_diameter"].get(); } else if (jj["nozzle_diameter"].is_string()) { - pa_calib_result.nozzle_diameter = stof(jj["nozzle_diameter"].get().c_str()); + pa_calib_result.nozzle_diameter = string_to_float(jj["nozzle_diameter"].get()); } if ((*it)["k_value"].is_number_float()) pa_calib_result.k_value = (*it)["k_value"].get(); else if ((*it)["k_value"].is_string()) - pa_calib_result.k_value = stof((*it)["k_value"].get().c_str()); + pa_calib_result.k_value = string_to_float((*it)["k_value"].get()); if ((*it)["n_coef"].is_number_float()) pa_calib_result.n_coef = (*it)["n_coef"].get(); else if ((*it)["n_coef"].is_string()) - pa_calib_result.n_coef = stof((*it)["n_coef"].get().c_str()); + pa_calib_result.n_coef = string_to_float((*it)["n_coef"].get()); if (it->contains("confidence")) { pa_calib_result.confidence = (*it)["confidence"].get(); @@ -4387,8 +4394,8 @@ int MachineObject::parse_json(std::string payload) flow_ratio_calib_result.tray_id = (*it)["tray_id"].get(); flow_ratio_calib_result.filament_id = (*it)["filament_id"].get(); flow_ratio_calib_result.setting_id = (*it)["setting_id"].get(); - flow_ratio_calib_result.nozzle_diameter = stof(jj["nozzle_diameter"].get().c_str()); - flow_ratio_calib_result.flow_ratio = stof((*it)["flow_ratio"].get().c_str()); + flow_ratio_calib_result.nozzle_diameter = string_to_float(jj["nozzle_diameter"].get()); + flow_ratio_calib_result.flow_ratio = string_to_float((*it)["flow_ratio"].get()); if (it->contains("confidence")) { flow_ratio_calib_result.confidence = (*it)["confidence"].get(); } else { @@ -4723,8 +4730,8 @@ void MachineObject::update_slice_info(std::string project_id, std::string profil FilamentInfo f; f.color = filament["color"].get(); f.type = filament["type"].get(); - f.used_g = stof(filament["used_g"].get()); - f.used_m = stof(filament["used_m"].get()); + f.used_g = string_to_float(filament["used_g"].get()); + f.used_m = string_to_float(filament["used_m"].get()); slice_info->filaments_info.push_back(f); } } From b946308f033dadd0c4c342efcd601b01b6ce83f1 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Thu, 12 Oct 2023 15:45:04 +0800 Subject: [PATCH 88/92] ENH: update A1 mini gcode 1.improve wipe mouth temp 140-150 2.delete the last flush start jira:[NEW] Signed-off-by: xun.zhang Change-Id: Ie3db3b89c61b18bdff79fe2dbf61398c428da733 --- resources/profiles/BBL.json | 2 +- .../profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index ab828dca02..50cb96327e 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.07.00.28", + "version": "01.07.00.29", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json index 90d634dccd..3410fc991a 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json @@ -59,9 +59,9 @@ "Bambu Lab X1 Carbon 0.4 nozzle", "Bambu Lab X1E 0.4 nozzle" ], - "machine_start_gcode": ";===== machine: A1 mini =========================\n;===== date: 20230928 =====================\n\n;===== start to heat heatbead&hotend==========\nM1002 gcode_claim_action : 2\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG392 S0 ;turn off clog detect\n;=====start printer sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B0 L100 C37 D10 M100 E37 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E43 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C49 D10 M100 E49 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C39 D10 M100 E48 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 W\nM18\n;=====avoid end stop =================\nG91\nG380 S2 Z30 F1200\nG380 S2 Z-20 F1200\nG1 Z5 F1200\nG90\n\n;===== reset machine status =================\nM290 X39 Y39 Z8\nM204 S6000\n\nM630 S0 P0\nG91\nM17 Z0.3 ; lower the z-motor current\n\nG90\nM17 X0.7 Y0.9 Z0.5 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\n;M221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\n;===== prepare print temperature and material ==========\nM1002 gcode_claim_action : 1\nM400\nM18\nM109 S100\nM104 S140\nM400\nM17\nM400\nG28 X\n\nM221 X0 Y0 Z0 ;turn off soft endstop\n\nM975 S1 ; turn on\n\nG1 X0.0 F30000\nG1 X-13.5 F3000\n\nM620 M ;enable remap\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n G392 S1 ;turn on clog detect\n M1002 gcode_claim_action : 4\n M400\n M1002 set_filament_type:UNKNOWN\n M109 S[nozzle_temperature_initial_layer]\n M104 S250\n M400\n T[initial_no_support_extruder]\n G1 X-13.5 F3000\n M400\n M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n M109 S250 ;set nozzle to common flush temp\n M106 P1 S0\n G92 E0\n G1 E50 F200\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n M104 S{nozzle_temperature_range_high[initial_no_support_extruder]}\n G92 E0\n G1 E50 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M400\n M106 P1 S178\n G92 E0\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G92 E0\n G1 E-0.5 F300\n\n G1 X0 F30000\n G1 X-13.5 F3000\n G1 X0 F30000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X0 F30000\n G1 X-13.5 F3000\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G392 S0 ;turn off clog detect\nM621 S[initial_no_support_extruder]A\n\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== mech mode fast check============================\nM1002 gcode_claim_action : 3\nG0 X50 Y175 F20000 ; find a soft place to home\nM104 S0\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-80}\n\nG1 X90 Y-1 Z5 F30000\nM400 P200\nM970.3 Q1 A7 K0 O2\nM974 Q1 S2 P0\n\nG1 X90 Y0 Z5 F30000\nM400 P200\nM970 Q0 A5 B50 C90 H15 K0 M20 O3\n;M970.3 Q0 A7 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X-1 Y10\nG28 X ; re-home XY\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\n;M106 S255\nG29.2 S0 ; turn off ABL\nG0 X50 Y175 F20000 ; find a soft place to home\nG28 Z P0 T300; home z with low precision, permit 300deg temperature\n\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\n\nG0 X85 Y185 F10000 ;move to exposed steel surface and stop the nozzle\nG0 Z-1.01 F10000\nG91\n\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nG90\nG1 Z5 F30000\nG1 X32 Y185 F30000.1 ;Brush material\nG1 Z0.6 F30000.1\nG91\nG1 X-30 F30000\nG1 Y-2\nG1 X27\nG1 Y1.5\nG1 X-28\nG1 Y-2\nG1 X30\nG1 Y1.5\nG1 X-30\n\nG90\nM83\n\nG1 Z10\nG1 X85 Y185\nG1 Z-1.01\nG1 X95\nG1 X90\n\n\nM221 R; pop softend status\n\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== wait heatbed ====================\nM1002 gcode_claim_action : 2\nM104 S0\nM190 S[bed_temperature_initial_layer_single];set bed temp\nM109 S140\n\nG1 Z5 F3000\nG29.2 S1\nG1 X10 Y10 F20000\n\n;===== bed leveling ==================================\n;M1002 set_flag g29_before_print_flag=1\nM1002 judge_flag g29_before_print_flag\nM622 J1\n M1002 gcode_claim_action : 1\n G29 A\n M400\n M500 ; save cali data\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\n\nG1 X-13.5 Y0 Z10 F10000\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S{nozzle_temperature[initial_extruder]}\nM400\n\nM412 S1 ; ===turn on filament runout detection===\nM400 P10\n\nG392 S1 ;turn on clog detect\n\nM620.3 W1; === turn on filament tangle detection===\nM400 S2\n\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n;M1002 set_flag extrude_cali_flag=1\nM1002 judge_flag extrude_cali_flag\nM622 J1\n M1002 gcode_claim_action : 8\n \n M400\n M900 K0.0 L1000.0 M1.0\n G90\n M83\n G0 X68 Y-4 F30000\n G0 Z0.2 F18000 ;Move to start position\n G0 X88 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 Y0 Z0 F20000\n M400\n \n G1 X-13.5 Y0 Z10 F10000\n M400\n \n G1 E10 F{outer_wall_volumetric_speed/2.4*60}\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X-13.5 F3000\n M400\n M106 P1 S0\n\n M1002 judge_last_extrude_cali_success\n M622 J0\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n M400\n M106 P1 S0\n M623\nM623 ; end of \"draw extrinsic para cali paint\"\n\n;===== extrude cali test ===============================\nG90\nM83\nG0 X68 Y-2.5 F30000\nG0 Z0.2 F18000 ;Move to start position\nG0 X88 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X115 Z0 F20000\nG0 Z5\nM400\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\n\nM400 ; wait all motion done before implement the emprical L parameters\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.02} ; for Textured PEI Plate\n{endif}\n\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n\nM211 X0 Y0 Z0 ;turn off soft endstop\n", + "machine_start_gcode": ";===== machine: A1 mini =========================\n;===== date: 20231010 =====================\n\n;===== start to heat heatbead&hotend==========\nM1002 gcode_claim_action : 2\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\nM104 S150\nM140 S[bed_temperature_initial_layer_single]\nG392 S0 ;turn off clog detect\n;=====start printer sound ===================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B0 L100 C37 D10 M100 E37 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E43 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C41 D10 M100 E41 F10 N100\nM1006 A0 B0 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C49 D10 M100 E49 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C39 D10 M100 E48 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B0 L100 C39 D10 M100 E44 F10 N100\nM1006 A0 B0 L100 C0 D10 M100 E0 F10 N100\nM1006 A43 B10 L100 C39 D10 M100 E46 F10 N100\nM1006 W\nM18\n;=====avoid end stop =================\nG91\nG380 S2 Z30 F1200\nG380 S2 Z-20 F1200\nG1 Z5 F1200\nG90\n\n;===== reset machine status =================\nM290 X39 Y39 Z8\nM204 S6000\n\nM630 S0 P0\nG91\nM17 Z0.3 ; lower the z-motor current\n\nG90\nM17 X0.7 Y0.9 Z0.5 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\n;====== cog noise reduction=================\nM982.2 S1 ; turn on cog noise reduction\n\n;===== prepare print temperature and material ==========\nM1002 gcode_claim_action : 1\nM400\nM18\nM109 S100 H150\nM104 S150\nM400\nM17\nM400\nG28 X\n\nM211 X0 Y0 Z0 ;turn off soft endstop ; turn off soft endstop to prevent protential logic problem\n\nM975 S1 ; turn on\n\nG1 X0.0 F30000\nG1 X-13.5 F3000\n\nM620 M ;enable remap\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n G392 S1 ;turn on clog detect\n M1002 gcode_claim_action : 4\n M400\n M1002 set_filament_type:UNKNOWN\n M109 S[nozzle_temperature_initial_layer]\n M104 S250\n M400\n T[initial_no_support_extruder]\n G1 X-13.5 F3000\n M400\n M620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n M109 S250 ;set nozzle to common flush temp\n M106 P1 S0\n G92 E0\n G1 E50 F200\n M400\n M1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n M104 S{nozzle_temperature_range_high[initial_no_support_extruder]}\n G92 E0\n G1 E50 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M400\n M106 P1 S178\n G92 E0\n G1 E5 F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60}\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G92 E0\n G1 E-0.5 F300\n\n G1 X0 F30000\n G1 X-13.5 F3000\n G1 X0 F30000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X0 F30000\n G1 X-13.5 F3000\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-40}\n G392 S0 ;turn off clog detect\nM621 S[initial_no_support_extruder]A\n\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== mech mode fast check============================\nM1002 gcode_claim_action : 3\nG0 X50 Y175 F20000 ; find a soft place to home\nM104 S0\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-65}\n\nG1 X90 Y-1 Z5 F30000\nM400 P200\nM970.3 Q1 A7 K0 O2\nM974 Q1 S2 P0\n\nG1 X90 Y0 Z5 F30000\nM400 P200\nM970 Q0 A5 B50 C90 H15 K0 M20 O3\n;M970.3 Q0 A7 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X-1 Y10\nG28 X ; re-home XY\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\n;M106 S255\nG29.2 S0 ; turn off ABL\nG0 X50 Y175 F20000 ; find a soft place to home\nG28 Z P0 T300; home z with low precision, permit 300deg temperature\n\nM104 S150 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\nM211 S; push soft endstop status\nM211 Z0 ;turn off Z axis endstop\n\nG0 X85 Y185 F10000 ;move to exposed steel surface and stop the nozzle\nG0 Z-1.01 F10000\nG91\n\nG2 I1 J0 X2 Y0 F2000.1\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\nG2 I1 J0 X2\nG2 I-0.75 J0 X-1.5\n\nG90\nG1 Z5 F30000\nG1 X25 Y175 F30000.1 ;Brush material\nG1 Z0.6 F30000.1\nG1 Y185\nG91\nG1 X-30 F30000\nG1 Y-2\nG1 X27\nG1 Y1.5\nG1 X-28\nG1 Y-2\nG1 X30\nG1 Y1.5\nG1 X-30\n\nG90\nM83\n\nG1 Z10\nG1 X85 Y185\nG1 Z-1.01\nG1 X95\nG1 X90\n\n\nM211 R; pop softend status\n\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n\n;===== wait heatbed ====================\nM1002 gcode_claim_action : 2\nM104 S0\nM190 S[bed_temperature_initial_layer_single];set bed temp\nM109 S150\n\nG1 Z5 F3000\nG29.2 S1\nG1 X10 Y10 F20000\n\n;===== bed leveling ==================================\n;M1002 set_flag g29_before_print_flag=1\nM1002 judge_flag g29_before_print_flag\nM622 J1\n M1002 gcode_claim_action : 1\n G29 A T155 ;set high than the wipe temperature\n M400\n M500 ; save cali data\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28 T155\n\nM623\n\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n;===== noozle load line ===============================\nM975 S1\nG90\nM83\nT1000\n\nG1 X-13.5 Y0 Z10 F10000\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S{nozzle_temperature[initial_extruder]}\nM400\n\nM412 S1 ; ===turn on filament runout detection===\nM400 P10\n\nG392 S1 ;turn on clog detect\n\nM620.3 W1; === turn on filament tangle detection===\nM400 S2\n\nM1002 set_filament_type:{filament_type[initial_no_support_extruder]}\n;M1002 set_flag extrude_cali_flag=1\nM1002 judge_flag extrude_cali_flag\nM622 J1\n M1002 gcode_claim_action : 8\n \n M400\n M900 K0.0 L1000.0 M1.0\n G90\n M83\n G0 X68 Y-4 F30000\n G0 Z0.2 F18000 ;Move to start position\n G0 X88 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\n G0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\n G0 Y0 Z0 F20000\n M400\n \n G1 X-13.5 Y0 Z10 F10000\n M400\n \n G1 E10 F{outer_wall_volumetric_speed/2.4*60}\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n G1 X-13.5 F3000\n M400\n M106 P1 S0\n\n M1002 judge_last_extrude_cali_success\n M622 J0\n M983 F{outer_wall_volumetric_speed/2.4} A0.3 ; cali dynamic extrusion compensation\n M106 P1 S178\n M400 S7\n G1 X0 F18000\n G1 X-13.5 F3000\n G1 X0 F18000 ;wipe and shake\n G1 X-13.5 F3000\n G1 X0 F12000 ;wipe and shake\n M400\n M106 P1 S0\n M623\nM623 ; end of \"draw extrinsic para cali paint\"\n\n;===== extrude cali test ===============================\nG90\nM83\nG0 X68 Y-2.5 F30000\nG0 Z0.2 F18000 ;Move to start position\nG0 X88 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X93 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X98 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X103 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X108 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X113 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X115 Z0 F20000\nG0 Z5\nM400\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\n\nM400 ; wait all motion done before implement the emprical L parameters\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.02} ; for Textured PEI Plate\n{endif}\n\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n\nM211 X0 Y0 Z0 ;turn off soft endstop\n", "machine_end_gcode": ";===== date: 20230912 =====================\n;turn off nozzle clog detect\nG392 S0\n\n{if timelapse_type == 2}\nM991 S0 P-1 ;end timelapse immediately\n{endif}\nM400 ; wait for buffer to clear\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800 ; retract\nG1 Z{max_layer_z + 0.5} F900 ; lower z a little\nG1 X0 F12000 ; move to safe pos \n{if timelapse_type == 1}\nM991 S0 P-1 ;end timelapse at safe pos\n{endif}\n\nM140 S0 ; turn off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\n\n;G1 X27 F15000 ; wipe\n\n; pull back filament to AMS\nM620 S255\nG1 X181 F12000\nT255\nG1 X0 F18000\nG1 X-13.0 F3000\nG1 X0 F18000 ; wipe\nM621 S255\n\nM104 S0 ; turn off hotend\n\nM400 ; wait all motion done\nM17 S\nM17 Z0.4 ; lower z motor current to reduce impact if there is something in the bottom\n{if (max_layer_z + 100.0) < 180}\n G1 Z{max_layer_z + 100.0} F600\n G1 Z{max_layer_z +98.0}\n{else}\n G1 Z180 F600\n G1 Z180\n{endif}\nM400 P100\nM17 R ; restore z current\n\nG90\nG1 X-13 Y180 F3600\n\nM220 S100 ; Reset feedrate magnitude\nM201.2 K1.0 ; Reset acc magnitude\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 0\n\n;=====printer finish sound=========\nM17\nM400 S1\nM1006 S1\nM1006 A0 B20 L100 C37 D20 M100 E42 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C46 D10 M100 E46 F10 N100\nM1006 A44 B20 L100 C39 D20 M100 E48 F20 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C44 D10 M100 E44 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A0 B10 L100 C39 D10 M100 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E48 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A44 B20 L100 C41 D20 M100 E49 F20 N100\nM1006 A0 B20 L100 C0 D20 M100 E0 F20 N100\nM1006 A0 B20 L100 C37 D20 M100 E37 F20 N100\nM1006 W\n;=====printer finish sound=========\nM400 S1\nM18\n", "layer_change_gcode": "; layer num/total_layer_count: {layer_num+1}/[total_layer_count]\n; update layer progress\nM73 L{layer_num+1}\nM991 S0 P{layer_num} ;notify layer change\n", "time_lapse_gcode": "{if !spiral_mode && print_sequence != \"by object\"}\n;===================== date: 20230922 =====================\n; timelapse gcode\n; don't support timelapse gcode in spiral_mode and by object sequence for I3 structure printer\nM622.1 S1 ; for prev firware, default turned on\nM1002 judge_flag timelapse_record_flag\nM622 J1\nG92 E0\nG17\nG2 Z{layer_z + 0.4} I0.86 J0.86 P1 F20000 ; spiral lift a little\nG1 Z{max_layer_z + 0.4}\nG1 X0 Y{first_layer_center_no_wipe_tower[1]} F18000 ; move to safe pos\nG1 X-13.0 F3000 ; move to safe pos\nM400 P300\nM971 S11 C11 O0\nG92 E0\nG1 X0 F18000\nM623\n\n{if layer_num == 2}\n M400\n G90\n M83\n M204 S5000\n G0 Z2 F4000\n G0 X-6 Y170 F20000\n M400 P200\n G39 S1\n G0 Z2 F4000\n G0 X90 Y90 F30000\n{endif}\n\n{endif}\n", - "change_filament_gcode": ";===== machine: A1 mini =========================\n;===== date: 20230913 =======================\nG392 S0\nM620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1}\nG17\nG2 Z{max_layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\n\nG1 X180 F18000\n;{if toolchange_count == 2}\n; get travel path for change filament\n;M620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0\n;M620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1\n;M620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2\n;{endif}\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\n\nG1 Y90 F9000\n\n{if next_extruder < 255}\nM400\n\nG92 E0\n{if flush_length_1 > 1}\n; FLUSH_START\n; always use highest temperature to flush\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S[nozzle_temperature_range_high]\nM106 P1 S60\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\nM400\nM1002 set_filament_type:{filament_type[next_extruder]}\n{endif}\n\n{if flush_length_1 > 45 && flush_length_2 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_2 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 45 && flush_length_3 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_3 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 45 && flush_length_4 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_4 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n\n; FLUSH_START\nM400\nM106 P1 S60\nM109 S[new_filament_temp]\nG1 E5 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nM400\nG1 Z{max_layer_z + 3.0} F3000\nM106 P1 S0\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\nM621 S[next_extruder]A\nG392 S1\n" + "change_filament_gcode": ";===== machine: A1 mini =========================\n;===== date: 20231012 =======================\nG392 S0\nM620 S[next_extruder]A\nM204 S9000\n{if toolchange_count > 1}\nG17\nG2 Z{max_layer_z + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{endif}\nG1 Z{max_layer_z + 3.0} F1200\n\nM400\nM106 P1 S0\nM106 P2 S0\n{if old_filament_temp > 142 && next_extruder < 255}\nM104 S[old_filament_temp]\n{endif}\n\nG1 X180 F18000\n;{if toolchange_count == 2}\n; get travel path for change filament\n;M620.1 X[travel_point_1_x] Y[travel_point_1_y] F21000 P0\n;M620.1 X[travel_point_2_x] Y[travel_point_2_y] F21000 P1\n;M620.1 X[travel_point_3_x] Y[travel_point_3_y] F21000 P2\n;{endif}\nM620.1 E F[old_filament_e_feedrate] T{nozzle_temperature_range_high[previous_extruder]}\nT[next_extruder]\nM620.1 E F[new_filament_e_feedrate] T{nozzle_temperature_range_high[next_extruder]}\n\nG1 Y90 F9000\n\n{if next_extruder < 255}\nM400\n\nG92 E0\n{if flush_length_1 > 1}\n; FLUSH_START\n; always use highest temperature to flush\nM400\nM1002 set_filament_type:UNKNOWN\nM109 S[nozzle_temperature_range_high]\nM106 P1 S60\n{if flush_length_1 > 23.7}\nG1 E23.7 F{old_filament_e_feedrate} ; do not need pulsatile flushing for start part\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{old_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\nG1 E{(flush_length_1 - 23.7) * 0.02} F50\nG1 E{(flush_length_1 - 23.7) * 0.23} F{new_filament_e_feedrate}\n{else}\nG1 E{flush_length_1} F{old_filament_e_feedrate}\n{endif}\n; FLUSH_END\nG1 E-[old_retract_length_toolchange] F1800\nG1 E[old_retract_length_toolchange] F300\nM400\nM1002 set_filament_type:{filament_type[next_extruder]}\n{endif}\n\n{if flush_length_1 > 45 && flush_length_2 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_2 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\nG1 E{flush_length_2 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_2 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_2 > 45 && flush_length_3 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_3 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\nG1 E{flush_length_3 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_3 * 0.02} F50\n; FLUSH_END\nG1 E-[new_retract_length_toolchange] F1800\nG1 E[new_retract_length_toolchange] F300\n{endif}\n\n{if flush_length_3 > 45 && flush_length_4 > 1}\n; WIPE\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nM400\nM106 P1 S0\n{endif}\n\n{if flush_length_4 > 1}\nM106 P1 S60\n; FLUSH_START\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\nG1 E{flush_length_4 * 0.18} F{new_filament_e_feedrate}\nG1 E{flush_length_4 * 0.02} F50\n; FLUSH_END\n{endif}\n\nM400\nM106 P1 S60\nM109 S[new_filament_temp]\nG1 E5 F{new_filament_e_feedrate} ;Compensate for filament spillage during waiting temperature\nM400\nG92 E0\nG1 E-[new_retract_length_toolchange] F1800\nM400\nM106 P1 S178\nM400 S3\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nG1 X-13.5 F3000\nG1 X-3.5 F18000\nM400\nG1 Z{max_layer_z + 3.0} F3000\nM106 P1 S0\n{if layer_z <= (initial_layer_print_height + 0.001)}\nM204 S[initial_layer_acceleration]\n{else}\nM204 S[default_acceleration]\n{endif}\n{else}\nG1 X[x_after_toolchange] Y[y_after_toolchange] Z[z_after_toolchange] F12000\n{endif}\nM621 S[next_extruder]A\nG392 S1\n" } \ No newline at end of file From c29a38d91b49bb859a6bafee38d156968990e015 Mon Sep 17 00:00:00 2001 From: "xun.zhang" Date: Thu, 12 Oct 2023 18:23:10 +0800 Subject: [PATCH 89/92] ENH: do not pop up open door tip 1. Do not pop up open door tip. Write the info to slicer info jira: [NEW] Signed-off-by: xun.zhang Change-Id: I1f611ee18faa5820a26443a13614f68f3e6ba780 --- src/slic3r/GUI/SelectMachine.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 4642a3a819..ea1ce12c49 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -2287,8 +2287,8 @@ void SelectMachineDialog::on_ok_btn(wxCommandEvent &event) for (auto warning : plate->get_slice_result()->warnings) { if (warning.msg == BED_TEMP_TOO_HIGH_THAN_FILAMENT) { if (obj_->is_printer_enclosed()) { - confirm_text.push_back(Plater::get_slice_warning_string(warning) + "\n"); - has_slice_warnings = true; + //confirm_text.push_back(Plater::get_slice_warning_string(warning) + "\n"); + //has_slice_warnings = true; } } else if (warning.msg == NOT_SUPPORT_TRADITIONAL_TIMELAPSE) { From 1ce06fa32005337e7e4607816a34849ed2827476 Mon Sep 17 00:00:00 2001 From: gerrit Date: Fri, 13 Oct 2023 08:40:13 +0800 Subject: [PATCH 90/92] ci: update build version to 01.07.07.89 Change-Id: I0b2aad10c8f697ad0cf74744b71ec1e2fef1c843 --- version.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.inc b/version.inc index 5359770202..9dacaf379f 100644 --- a/version.inc +++ b/version.inc @@ -12,4 +12,4 @@ set(BBL_INTERNAL_TESTING "1") endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.07.07.88") +set(SLIC3R_VERSION "01.07.07.89") From 760987660ff480f22a7c9c579452e2c328ffbfb8 Mon Sep 17 00:00:00 2001 From: "liz.li" Date: Fri, 13 Oct 2023 09:23:46 +0800 Subject: [PATCH 91/92] ENH: add a dailytip jira: STUDIO-4773 Change-Id: I97a15de5356a5275e648d9eb42f733479803561c --- resources/data/hints.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resources/data/hints.ini b/resources/data/hints.ini index 6404ddc47c..3903615963 100644 --- a/resources/data/hints.ini +++ b/resources/data/hints.ini @@ -164,6 +164,10 @@ documentation_link= https://wiki.bambulab.com/en/software/bambu-studio/reduce-wa [hint:Improve strength] text = Improve strength\nDid you know that you can use more wall loops and higher sparse infill density to improve the strength of the model? +[hint:When need to print with the printer door opened] +text = When need to print with the printer door opened\nOpening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature. More info about this in the Wiki. +documentation_link= https://wiki.bambulab.com/en/filament-acc/filament/heat-creep + #[hint:] #text = #hypertext = From 1d07869519d469479e57a8c9fdd7c980cd0b51dc Mon Sep 17 00:00:00 2001 From: "liz.li" Date: Fri, 13 Oct 2023 10:32:46 +0800 Subject: [PATCH 92/92] ENH: add a text translation of a dailytip jira: new Change-Id: I2d9ed92011cfc6aa69b96fa27ad11d856114403d --- bbl/i18n/BambuStudio.pot | 6 +++++- bbl/i18n/de/BambuStudio_de.po | 11 ++++++++++- bbl/i18n/en/BambuStudio_en.po | 11 ++++++++++- bbl/i18n/es/BambuStudio_es.po | 11 ++++++++++- bbl/i18n/fr/BambuStudio_fr.po | 11 ++++++++++- bbl/i18n/hu/BambuStudio_hu.po | 11 ++++++++++- bbl/i18n/it/BambuStudio_it.po | 11 ++++++++++- bbl/i18n/ja/BambuStudio_ja.po | 11 ++++++++++- bbl/i18n/ko/BambuStudio_ko.po | 11 ++++++++++- bbl/i18n/nl/BambuStudio_nl.po | 11 ++++++++++- bbl/i18n/sv/BambuStudio_sv.po | 11 ++++++++++- bbl/i18n/zh_cn/BambuStudio_zh_CN.po | 17 +++++++++++++++-- resources/i18n/zh_cn/BambuStudio.mo | Bin 268294 -> 268734 bytes 13 files changed, 120 insertions(+), 13 deletions(-) diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index 08f6b9a322..18fda13145 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -9777,3 +9777,7 @@ msgstr "" #: resources/data/hints.ini: [hint:Improve strength] msgid "Improve strength\nDid you know that you can use more wall loops and higher sparse infill density to improve the strength of the model?" msgstr "" + +#: resources/data/hints.ini: [hint:When need to print with the printer door opened] +msgid "When need to print with the printer door opened\nOpening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature. More info about this in the Wiki." +msgstr "" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 5e0d9c1dd8..91b088e285 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -11145,6 +11145,15 @@ msgstr "" "Wussten Sie, dass Sie die Festigkeit des Modells durch mehr Wandlinien und " "eine höhere Dichte der Füllung verbessern können?" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index aa7e192513..743f9ae733 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -10841,6 +10841,15 @@ msgstr "" "Did you know that you can use more wall loops and higher sparse infill " "density to improve the strength of the model?" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index 962f3bc115..39725b4f54 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -11052,6 +11052,15 @@ msgstr "" "¿Sabía que puede utilizar más bucles de pared y una densidad de relleno " "dispersa más alta para mejorar la resistencia del modelo?" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index 84b143e37d..405a11a4d8 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -11149,6 +11149,15 @@ msgstr "" "Saviez-vous que vous pouvez définir un plus grand nombre de périmètre et une " "densité de remplissage plus élevée pour améliorer la résistance du modèle ?" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index 8c1efb8336..6865cff343 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -10988,6 +10988,15 @@ msgstr "" "Tudtad, hogy több fal vagy nagyobb kitöltés használatával javíthatod a " "modell szilárdságát?" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index f30f3895fb..c8bd1dc0ff 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -11063,6 +11063,15 @@ msgstr "" "Sapevate che è possibile utilizzare un maggior numero di anelli a parete e " "una maggiore densità riempimento per migliorare la resistenza del modello?" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index e28ce38f6e..9fb5cc098a 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -10522,6 +10522,15 @@ msgstr "" "強度の向上\n" "壁面層数やインフィルの充填密度を増やして造形強度を向上できます。" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index ed5f71fa17..5555ea96cb 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -10681,6 +10681,15 @@ msgstr "" "더 많은 벽 루프와 더 높은 내부채움 밀도를 사용하여 모델의 강도를 높일 수 있다" "는 사실을 알고 계셨습니까?" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 28677fd926..45abf0b19f 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -11111,6 +11111,15 @@ msgstr "" "Wist je dat je meer wandlussen en een hogere dunne invuldichtheid kunt " "gebruiken om de sterkte van het model te verbeteren?" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index cff969c639..a17468999b 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -10878,6 +10878,15 @@ msgstr "" "Visste du att du kan använda fler väggslingor och högre gles fyllningstäthet " "för att förbättra modellens styrka?" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index 454548c910..3931cbffb0 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-10-10 08:26+0800\n" +"POT-Creation-Date: 2023-10-13 10:29+0800\n" "PO-Revision-Date: 2023-09-18 09:18+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -4365,7 +4365,9 @@ msgid "" "The current hot bed temperature is relatively high. The nozzle may be " "clogged when printing this filament in a closed enclosure. Please open the " "front door and/or remove the upper glass." -msgstr "当前热床温度较高,在封闭箱体中打印可能导致喷嘴堵塞,请把前门和(或)顶盖打开。" +msgstr "" +"当前热床温度较高,在封闭箱体中打印可能导致喷嘴堵塞,请把前门和(或)顶盖打" +"开。" msgid "" "The nozzle hardness required by the filament is higher than the default " @@ -10342,6 +10344,17 @@ msgstr "" "提高强度\n" "你知道吗?你可以使用更多的墙层数和更高的疏散填充密度来提高模型的强度。" +#: resources/data/hints.ini: [hint:When need to print with the printer door +#: opened] +msgid "" +"When need to print with the printer door opened\n" +"Opening the printer door can reduce the probability of extruder/hotend " +"clogging when printing lower temperature filament with a higher enclosure " +"temperature. More info about this in the Wiki." +msgstr "" +"什么时候需要打开机箱门打印\n" +"在较高腔温下打印低温耗材,打开机箱门可以减少挤出机/热端堵塞的概率。有关此的更多信息,请参阅Wiki。" + #~ msgid "" #~ "There are currently no identical spare consumables available, and " #~ "automatic replenishment is currently not possible. \n" diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index 9396ccda3e6d2913271dc1b6b796856eb766b5d6..a37b2e1a563ff7b0591fb45990bd154879347872 100644 GIT binary patch delta 47243 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 Fe*oP`nvehh delta 46788 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 KJCn^0+y4M#wzDPx

V+Lq0~v@la2OWEtEkY& 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 D-b0G8 diff --git a/resources/i18n/hu/BambuStudio.mo b/resources/i18n/hu/BambuStudio.mo index 5c4c25b43885c8d80595a8031ba9c21a3bfb91e3..3fad41b226a81ed24db8fd8c03743b49773a78a8 100644 GIT binary patch delta 47703 zcmXWkbzm09+J^DXo8ZvkF2O?rAwY0~ySoH;x8k~3ad&qqE`=hcxD|@K!@=EMdaiqC zzVDCU%*yP{GtbO!(zNIBh=jw3CUkEl44C2Yf9qpAPHG%c$8jqC;yBOO=&0i)zwbD) zFa@T>jF=9KVsUJO-t;nsJ(9TmRJ&tbR`%Cl2RhV1J(P zB%+{@OvIWv+1Bq_A7CPmKSFi%8wOz9r>33&)qxDC2M41@niuXWgSjz9P2%;|`MI}Dx$Ss znkj9FNvJn{N&MC0UL1&p!%!m~kMVFZCcq7t4)>vw=nf{tIpCF*>3)bk=y?Ym_u=)&sQ0UKi?Jcde^8`d}0=CV_MvfY48$e!S|?swo6RnGs43AFzAQ&2XZM?K&P7QinUj=8^>EN_X0s4v3^ zyoHM~(O32Y+=^j1@Eg;HYf;NG^1E3*rBDN#g*?{z6O*ct?}xdt3VO=~m23?$A-2U} z?2naj8HVC3R7X?&$+ogT#CB?9jXKWq3(+n z)6eOGDP0OlDU89?xEQnJ-#7-JqE<)GSbpBR?~9t6X_ysPq2}~7YNT(m0)9eGMTywv zffZ3x)({opHmK*gJt=6}EWu)U3S+m7$f}{{w3)5fHeol8>i9IoSLO*8&PC(TY zCh{ZW9cL7(gRv8v&?mx_)bpV_QUf*emZ&Yd3o0oGp>kma>bl98jORN`DJUCvp+a;X zl@pIp4g9qAcu7n{nNS-`sIBKhMW_Jk0TpmN)s0ZIc&GmCkhX0}FI$3fP>KxYcsED;h-PZ^8fZ^8ZsQXsnTKo$Y`nD;|b^TJX z{!?&ZECm5{tUZAGxJ?g%ADa}Z-qOv}pwG!&V%~0+3Mm=~e2IG8O ziiceaTEFd5nK>Va>8US8J@61J5+_g{x`m3=Gt}z%hDyd*sm)X*L`_+0?1Wh{8&1a> zxCgb&Zl=>!AgE#E?uc)L=lHN>7 zDpZH_q9RuT^I#)vfs-*izVl@L1!XWJtAdI|W7Nnxph7nkBXBJ$x$dAM^ad6Bd~ zUq(M?HO4}9;15*Cj-s~elc>4>fORl!CO@aL)_+e5>fwIOs|zqUhGzEjJ}8=CLFyAQ zA09<@=%=mc$zqbP1L_^(qS~2{MerOdrvkH@4&_2cHb1&rhc)eq<~WLaThwxTg?i98 z)X2kwO~*>0ep2d*8sTJAJ2O!cTw&c}kMBiA?3DE)Dv56dv;Mtx&H?rOKUBl1v-vrh zu>fjWH9vT(Hy+x0K!_P>Rn+nJs7Q>$vbZ|LH4k{r0j<|) zp=K^qp*ofkHS&De9m}CUM0R33pX1!b2rL_B+8GdT=6*7&z2)d_?WlpA$BOtEwS4oq zxy(pPpdwHiHNy7xcn?%^4MufjBtFMk_V|e0CgkH$%WDp*<7-iKya$!cS5fV}w#PqP z-9&jzXu?pTtc;q18mI<4qq5e;EciR>+wC-}qj4h4eMwNckP<6n5MIU3s1B6NYo@RX zs)L=8h`7!W3c7KIyH{P&zaqr?OGKe52f|P{Ohh%bz`KBs*!p4AdOwF+&(~2~w|@b%b7nzBWQ27h zDoJOfR?{+6`x~)6?!g#Z|G@>#1H(~C5s8XGB~Zl zWHnHcse|f3BUJLWMYTK7It^VlxQ2qfI@T)^&S5TN8v9;O+zzrJoQzm zjU%F%dGG*Ks7IsbeiG_|b5I>zinVbYDzdSQ`#C2t3993FT?z{AOH|LkqUO|B!fX^N zQO8?j7VCHP!FDiOug&u zrJx9$HwT>Cs6F}}24RwNW=qY78d*hDs2iXj+!EDrJ5)&fqeeQ)x)`HT--)_^FY3Ni zm{9BgJO$19LsXBWl{X_yf_hLW>Udt%)RaMWxG`qK_NWm}LuL0))RbL7E$17k4m?F| zK(A3ble+=~)cP+-K_QMpWo>KJ1AE*0NL0vYVKA;ob>tFu#Fwb+qbiyac0hHcA8Oy2 zj`i>?w#00eOcGB(*XKu1DU{>H<;s5E?*Y z6_IwR>wBU$8W%MsGf@LuhMKCas2n*`mGz&F!f6hK;49P|rL1N`mJPLxa@u-HR7lIC z9#q%b9JPEqS%;z`HWRbpI@A=OM}__^>iRF$T=UcIFV)S7Ff7W6yr@w3#86yd&;Nt| z)X$(gdchvQhZ@mS)ZD*A<<2+sa;k=jP!iPn^r+`#b17)cY=@YW6!TbZRH0r2rr>R{0TE++}b8r!ciS4k95p+T2N3@^g#9aH&o~* zqk23S73wwi{7&m3)ODv(p}&fX!2eL!e?Z+IP{&-C7*$Ve4a4|a|3xXNfoj(Jn2CCG z)D(*ZLnrAs6n& ztoR07VT$@@M1xTwoPv75HdMn`te>$e_2doA&vtFG7xh(`6VpVQxvqk$cfguB7hQ$$ z1qIFJC)7HQ*3g730cx&Op?0v`sPhF-9V(5wuN`W6^+sJc0~OJEsP>nmrgj7B{+-w# z4>x4}ccoCgk;&3cs3hBu%86^Jb^P3(_cb=JITxQ!a&f2a<`YHnUG zgE0s7;iz2Nj7q*ssK`9D^;a&101o_zdO$!6vuCG3y)5dYw$Rzw99N*Oi_y|FoEk4u zFM&$dWUb5t(xRp=D=OqgQOmd@HpAAaj=M)Fr~_wE>++(lze3IJdwbm1+Rw}C)Tq@E ziE3aVDuN?%u^%5MsJV`8YtEO)ywq!=R>5fNV&pp4*+D@)KZttZaa2#Qpnec}hjTEn zof*+;)Q+|fb^Te?mUAw7rQ?R`jD|m9ZA*t9CFype)4zt^ZdPG)M0-J*MdB z=WNBos3d!hiD)2cCsPmU?C0#}cy-iV#_M7tm=qO>RH#*u3l)j{s1BAyMWCWR-U3r- z{dcCIIUR)&I3K-{p?0#{w*C^;vG152H+MB1xMh80eT{nX7gVwabTb`DhKgJ|RQ89X ztCv7Y3R=HSQCU40l?w||Q?Ucp^Yf?%pP?H1i5gj8cXNL-Yd%y2>Y(mxXzhVo-s4cY zv%EX&Up?Kx0cH74RJI;L<-|GEgRY_;^wjzm^|JYj8p$ue`g#A@E(n#(8&MtDin@On zYTche?Vztv14-C}^{)#v_b?9(MStqKQ60&Lnu?OBsi=-x$4yZUbhXEap*lPTz2%A> zsjsm01U*e|q(!wCVJ+#}LUmL!H9?J_Eo#J_Y`v$oA8PIgqe8hB)!-p~i04op+1bmS z--qh(RaD5IURJ8^J2^(43+*I-$#|N4E+$LAvCfb$4*V^}}4UYlb@>f11mp46WXvmE0N^mBfr zntG5K(Nf$({UoZRLk63UPe(;$0V=tdqjtta_>0#6bqbp6r`C_CW#}U}5@UW;s4JtA ztu^WaeNdqvhYIl=)cRj-&+oOz&!ake4|8GrA%4zboQJQp{+kcw0c2f`VJ7q)eluCy z2i1YmsAOA!+7UNl5dMoA*$W(l?@`wc9%(u{1(p5FP#xZinv!Fv0iQ%yBe+UIKYl+# zjUd`6vu;zNMxF=Nk;>NQ7(~4{s^M9vb-osr8wXKa@q5gS8AqF3sep=XJ1l_ip^I;xTLme;@7okRa6E(LlQOh;jSTmr+sQW`~Juj-` zmBunB3TaagXl@6fcDxCw27X61ydBfyG1N$(q9WxRXCjvzwQBOA+AC%2O;M5SggJ01 zs@;v4ANRQSz(>@BqK!8{h9^aZvIYj>FjSA1q4tICsEF-FJ@~Zs2F{@V1odEdf=SZp zsN`FUwebS#emC1h({Mpl&#KsZBWpM72z!1uYCl+o>c}Qk4(+fWLG23{P!D*AN;>~Z zCOKoG?oWk8+I2EfP(#J+1?8|X^(a&XW?~2)MK$ym)xalIwmXx}29pRifHb%kv!in8 z3P!{Gs7O6UP4y>?t@R&kin%c{>Vk}@P>0)kX;cSl*y96HBbVYLu4`_~xSVvp$fogD&tq((W zY&>cTW?@!bg$3|5Do0{YWBn_e7gAV>f1+NGji;LihM=-}oOKmyKRAebo!-Dq=*%$3 zGow~TQPdRGMvc5NYFT!)=ZB#pHhTu^Up-r451h0YUPG;hH>imCW}06_CbpKxyc{2h zYG@1Uy1iHs&!Qp}XO=M$DiWzsQyYrvXt7zWe?_1U2h>n!)UxT1>cAvShl^1o--l}8 zDk{V;P@(^fnwlS|2gjIgaw-rtm1$8O$c4JU1nRmvE(JBz7?q{%P#x)F9e`ofN25MW zwxh293-!Pwwtfcna=eae_!jEH4^dO_1+_Y2%rOH@in`worJxJ)qHZXKdQe@|gQ8Fo zX^lbHA4}srRLJjO1AL2$WaYVL0Il#3>fKTIXP)Qh6vslSZ_5ElM10PSY1x8Pxk`_V z9Foti{_{;eB`Pg*VJOx{rQZ}P#bQXj04eI)o3yhK0X4c^t#QBx@6^}0PYvKjx zz(NzGv(`J-SE#qbPiu-rrXFFfhFLh@0ZZT%R4mS;X8qZ;^x0Cmbtr}MBa)W%P}DS! zw$8x()R&^B_4Dov)LIg8r{$cV~=?5Gi!MI~r;R0B;>E2}js&pMzIdm!q%5vYz#Lv8bGt=lm@^@FGgKR~tf z*0mRWLN(yO!t8%BF4B|5*c9n&U-Kdq#UyGPtNsZZ2wTScV$VZq$G-p{~1w z+DhDS6m&z}RVFk^P!|TF<}?J=(=gNxc~DbQ8kHLjP@$ZH;kW`7kxN(%Z=t3r?eFG; zIXh~geUN44IwL8lfd#0!*^CO^Zd6B(+2iL>@0**bocWHLg5;}B2SZSMO-`(gxl!j` zRD`CW+FylQr&};kZ`w-~6oH4RkiEjp7;}y3c^K-(BG?tnVL{xE+3<}$pK7g{vMi{M z=RrL<5*3kJs7N+MC2uoK&hwqN6g1)?sAV(WIv*9fb*Kh+p*nI1bKq&zNPl1{thmn4 zd5jZr1ol~P9`xPnzrn1Y*r?~ELGLeZa!?q~fk=D7e#}Gt0+z&>8~wbksS>KAolqU? ziwf~b48hqLj0aH>dXAd1ESrpFP*cY&x_!nx9@1P?02-Wd7_V`a^M|GWO+f9$+ zpe{&e&4lVuIMQ5~p+>R>a}YUqZ_g#oCMkGJ)OsASxT>hKj*M?a&sVrPds%=*hf zK|4|?YR(E_HY{(C|7snIYG5+z!Lv~#UWOXsI@CMjPgI9@qt^RD)J}Q~b=|+Hsk?-U zwEn-?1Mzm62EtJt$%oqMN~0ds3>AU)sD=ll9yHuK7WML(f{Ms$9E`iL1s2@JaX)^O zhli=J|BLmnkoDMYLi!u3!5P;1=#3CHvURA?Z$WkB0IH*x?fD0&DSU=X>d&b5lKgFw zJ2i$;FNE2#{okyAg=8iN^q|G45U;jwMkU!!RMwtEU3V4rp#Pyd_6jv+A5c@7ZjYIw zFl#|v!tv6m4n0Ig@Wme1zvl8S2a4klRLG0&HNQ`eLiKbG=EWlzj^8mC=GbT6f=y9L zH4F8nvlB~Wvi;`I#u{N}>c6A*gHx#Xp1TxsQ^;_@>|AwFBN>F}$eLBCy}kbt6Vg4X zo$)&6!Q@BHeU(uS_C!5s4c5Rj*Z?yeGgCGY_1d0-5$OIyAqRz@SP!%RV=f$l-pEl& zbp-XmTbKzG9ycA$j|ydT)N*ZunxcNF`-WNPqL(|UDL;Trsq6epLD_l*HTO?YbNdE0 z_dii{mhgn1QwCF@lB+3d1Orif|7L6Ie@(88LOpOAs@-L%=d8uLxEsCSv?n_0=UiY} zBu8EN;*`1I14dG>eA*=0SX2^Dw$8_i)PKjznE#9)e`C(?ozI%ztZl`~)C-+613H09 z)+<;YZ(%&G|D5MdNFq@qEQiX038)ZmM=i6{s1DpjW%(1-oPS2;P#B}o@#d%qbwe%h z38?E9p_2O|YDav7Zhi_0E}A{Q0%~rCpc)#B3fUY~DA%AOv?@C)T5;^iNdBj$dN^@1}5r1M1P7%jUs5F$wi!sF2-4J@`JV!RMG2e_(ga ze8q%#7V1IEQP;0WwX+Qs$rGrbSoxv=O}b75K3=W!!cHuu3Ga$_v+rM~u> ziA2Ziro#hJ>wX^Ufq$bSbr{w0i>TFc-JZXLO6JG*_$!x!diEX_^0+t59H&BEm=*hA z7^=aQsL-uLJ!lW=0jE$?cOKP|o2Z<5fXan;sO#h3G@oKYSd+S2jDnJGD(Z$Ss3d!6 zeTxd&PgLlW+%gZ$g8EtxMLn=I>U?EeZ;V>Tt?lt&QOP$PGvXq1+;t98P^d4UlH(C- zMj}P|{>T zg(ws?6@_iRBIcwXWgUw-sPD2qMm-?uT{E&AsCo@ld+ku~`@Wb3=b<`y0ORs}=R5_C z^)aDalc z{x~W$4^R#MhYES@d#0h(s1D>njVKb;(Pq{*sQWr$3G9RUaVILL-e55PKuvj;`>cPB zyx@J)vnr?yYon&1nXPw4P0;|ZX#du_L zBpoVprCbVGDO5n+*c~-jgHb!zV$=x#L}mF=RA_IYMv(TgiA+XRN3vTBp&n2kb$?Y< zdreU}&M{yTbGC@L3DpdNG+b=@<2{v&Em<32GXO@~_V`B9;- zWsi48MfNvj>iIYAC=}$tYU@37!b$VgtcqNyk(NP)xFRYS>Y_T-6xG4*sAV?_73zhk zj{b>y;2~6pE}*9FwO42T#d~JvC>v@jN~3z*3H6|nsAQXDorMbNB2@BjLWS}W^2O$y zMJ4G))Pq0R^UKOULd;?BIZ%VK@ z$8VxKoc5(@FDt5JB~ZCg)mq!0k3v`3*^`2n#UxbE)}xZ-AJoXtphj{9723zB2RpCK z`GlyKPfAqCGohv|H>%zI7>0FF9U6gJ-cw$&{x$N&9MIhELWT4Q>c(rRFQLz<eb@#SmPG;rI_~O248WnBk3ya4xJ$z3Cg)zec)&1LbfVDuh2!H$;Ey z$G;!QTMt#gib}G_sO$bijWp&v)6saSQ0GT=Fw$BNbzOJVTeCMRf|Fbd3ds`GoNqvd z`V{Jcx9s^Bs0e+GA0_|+`q`k0$~4^%R)M0I2< zDw%hoa_ay_>ivI*fp_cI@ zRQCJ$|Gbz3=VMD$gdIPh7l9b4dLX(gB&9GD)1Z=KE3UzPs1bJb`MfFUjyb81Lv2)l zVHiF^jWD^t&-;6`GN_L2LM8DDJc8Fy?JWr~9at6MbG?tx4II#g?@>wRAI;}2uSBS2 zk{T8IFx1Ejqej{tl}z(dkz0k@C;md+cM8>!JE$CbgUX3G(M@|PqPsqCS!Cfr9!?ZP zjjRW1xhz3NXcubz?#Bvv1b@Z&F-!-BqdGVdb=^EvQZ7b4a4%}VIEk6?lC6JpDJUcX zF_|mYacsOxeN`-T% zYhcVkpSP7qp>k*hlC-X~m4X^Rjq1o<)LebG^@Q&$N$+o^0_3}E0 z+Vfwc+D)3k=eed*9qfu|a)u?58 z9<@qtqrP@uqCPm@px%NXumC1ZVn$dAb$tWW{q3whQIQ#f-al!dNI-lR#!2Jz-s=lcQ}!Hl zVUe^x?_US+fKj8eNJ&Y*fl%t;HDftXBNjFg!#N*&kf3H zLjM@^aXePI&l#ZgUz|d14(vwFNrGHH?>Cn9um<(bsN?>*eco%g0=A?+6P4{>u`1@t zWA=q%Seg22)LZl;uEx9(K4&i8Ms0Nc^J*2a{uffvTy8?`?N?A6Oon`BSye#Q+n_o! z0c+uTYu5ZG%LkxByazQUZ?QNA7cg_(9+kW+u?HT)+&teYP|$>?BWlFs@eSTWZMA0# z`MgiG-wK=1?L{T+M_h~%MSRXiyoka0TcpqXH|;mz4(e@+nvSF^W|nm`jK%RT=qf~g zDJUzqqq018ae9VjaX@*l7pRVZLan-^ZZ)&DK1U^?Uv+aL8*0m~irKLxszZ}e z4b4F9>5Hsu?eXoX2kyrhcnt#_7s)u?P zw6y2@V_fPJF#*oQKwOWC)ZeI%97MH$0rgIKii*@{q+QqXuW5P~h$T6Z91CMZ)JSKc z8d`$UaSLik+llJHc~l4Qpss&z>mO0q`D&SEoZ4Ct^|Gt$$@=R;K@E&Vg=i|Op?Rng zt+2+-@Be==3h$%VeX-i+d@odc15oXauuep^GaJ2s{=a}i5C{H5HGJ86 z6E%nTP#t-O>G2zu!8CPz-hY#zB`UNVQ4#tZb^Re*zksKyUq^LhZC!JI8+t$gAEuz5 z-myMGHS`v>JinllCa9jdF()dt#Zd441{jK+Q0>e{bzli9mo}r?JB;e+zo=z?tsd)N zBS~4`Y@N+eJ)DlZa3LyL)?stpj%qMP1CzZuP&;8s9FIdV2gZvspYMgS9QE3$B%N>F zfXe=TQLKNB>>>yB!277Vd5g-4PpA(0H#A#sJk-caqmr*S>U?wb!;Yxs))^Iv?&!U2 zP^)JlYBg*_MdXA_L34Tz)uZ>QIgi!IG>`y;si#CuMJZH{bU<~q8!8EVp&Fiym2oBN z`gf?2r)+HAA=y#ww?Q3uyV$}I)Z1w)YVY2J8o|G)<#G`fsTZgz`HmV|(_#kd z#ZVn=fqGCoR6E^J@05Plb(l%(|2Bm!oCs*@a}E&0?U;*t|K`SZ7()FPvRa*3Ew~QH zU}LP@(&zmKWDP2kZ(8}BGnlBgx$ZuOQD4=@=l!e0moS|Awzm4tpv8w2+H;_IJJa(u zsHxb5$?4Ex)JSf%Hz9v$eTK@J*Qi|hiHb~|4rVHnqC%VNBciKQJA}|JAI5a8wRd zLS5e()y^2y6fQ$`Xf3J(n}22fYpxI43$CEn>mAf;2qC!~%L_zLPlk5HlejOs|@Ugmrj)H2MA+8LXn9@q)hk%3qf zhhrhUgbICv-sXHLmY|*+^{(iNOug$Yrl4i99JApGbHe$68p#*b+`Z&1%nQM{PiPQ1=(Hmc&e2|K%x^;zVau_HM?xxCa%P27OH=+F?2B{ZXMk zfI5E>H3j!k9r}!Z_@6!Q*U#is5>!VDqV6k+(Rsd8gF<1fkLt*D)X1-(R>O7F4R25* zaQd4EMMo{yc&LsiM@>m))b9iGqBf|Ss0TO04A>sEb&p3^JzqvaBifF7;BnN0?x5!I zAu1P~0cN=+L`_LZFg~%K`OHdtIVbA}8>gYcMSpS;4tMfuU?!>y7Xt4QNvIA;_dr^_OgbVNY#ew3$-fxp?1o#sF%)htdGG%%}47{%uM|dYO0>1mf06uPdLo%Bk585 zO+i!ytGX1l(bPpvK~GdjN1;MA*`8l)-GjRB1}dblP)YX#70H0%CK=@v@qSd&oI}mw6ZCdMRMI6LYrYc-qgKrd z)Z1?->Zj;~s2uT)Gf7tx(^0R6nu@Nd`}(84Hzs05t^dyyluV_@o1f?BV=wBF6U>c& zpl;lQ`qn##3iS)r+iUAH`^%sP)(l-G(?AMZx06tFw*r-= zdr%QMj|$mS%#Hz*Og$IszDgK`%~4Y@4AstD)JF6N>i#pRfjqVToW%N9PZCb{nZI(u zwA5E(Mm&sKR!=Y!22L@{Gy=0yZ-xr-XjGQ}ZrxTo{5;sFD4KopAwn!8kKaX#1mHUL#RE;U?7T_+X7O)6`SoAdZKk zBEQ1LVl`6%luEXncrxCisk_Br?PBSzr0IsCgT7&zA~%N5vw z`dZY0qRsPpf9f5E8j!n%f|BJpDiY^W9l4I0+vk`Qee=!Mnj6*7D9nYMP|NIps3dE( zz$95W)W$Xr^=-Hsb7Rbf=6qo+tMy-(LPt(4Ks69+k?C0yRETn5cPx&|<}Ii>-H*Ed zG-~Ru+w+exi25hgK$0&uX2UAf3t>$h?HyyocHcVl6chOoWPDD%4Jw3zZA`a0)w6c~tUVTfqRd{(URW4Zon)XC~CLDTZ1` zjZi)Ag_`SQ_V~J0rlG^ADSCmL>omXnynjaA2empbqXzN`6_LQzK4%C9q4)d$B@{HW zoz|zgm3pc*X3IQ-+5sAx>~4>Xf#g5NvIL0U1uH`j#_plP*YbKi(u3` z*1wWy76(WM=O0{y@z?vje|PvV)cGa9^pItul` zxu|y5;!NC!3$Wf6^G*2yr&FK&htK<0G%~we%}CbZ7*6EdW^UMrOQ<*b)8|Y>XS?}D zZrZDDJpdRP;)s1wfx4R_Vih(cGhA#KYrJX`Yw2}%jf-vGTx!)e!^e2gUG6LoedP! z;BnLq7tveKs2d)mM)VQAWwzTKPh?GR&1sE9-CqeOV0~1(57ArZs1C>cTi3DvQd7`e zXY&s5TW-`GmPd`eF)CDjP&qKw9^Z(%?jO_xZ`t$D?D3d;%+#d8yPPkK8c3SGW?6@0 zYOVhY6cq9{mLchei2^IRisQusws$;iN9r$AFzw9&XJQ%g^i=(b@hPu8VM&LBu zi^tH_TWj=w)6*@e`We&%zoJ6scfd4|2DOpoM@6I>YUCZPeNa<20>|T2EQIL}ns-1H zMp561busZF*1sC)c*wj?`=VY#k5F0r3Kg06sEEWqY)pYV9*i1MQM`;jP^+cV5i|1J zsF&4eROr(mHNORmz%c4vj=Cmm7jQrg?!~Hj5rZ((F_SE1P&-xw48fV!{ix)6j>?U< zsL%)gW2Po2R-|4U``{!jjWLd!U)5B0DJUCfqCU0Opw{z#)Ruf3BQgF7({NQ(WV%>; zpjJ;`+=s(a9Vq>;d9Am?g48>sBDD&&DsEs0bUU0h9~2j{3vnea2_+b{|>x1+4LQ0?SBYdYE<)xn-f#9e1P1+D8fI1IO~hji#XGF&7p3 zt*B*q4%LxQsQn?%1=GqdHOo722ja1jnGJDE4Ka!ye;Q$6WZ!HFJIO8zyO+pq8zR`kLd0) zY^3|{`kZ&z8a46;|1$&Xftu2xsGOSdKi4G38V=~fO{k6HIBLWsxc4|I*SE)05Pw8*-p>q8Jv& z#;9zaW6!U){)MGDei92}f~V%6{ZvAYydNs5Ctxw$g+cfgwK`Hg)0DIR@>599ff^Wr zJy6;GJGQ|;P%n#=&rL@vpd!%#m4sbU4feyFI0LmB4x@777AmsOQ90!Q!n7X?b87u3 zrl9p-8r6a3cmQXj8fx&;`~>tXYAe2vn!AWsrUPYA9j<2UQK&g@h1IbiDmRYfGrWvS z@`JBg{|fmf3YxRWm=)h(JxuY&^td}J#CwY-1~Lkj)b0!lS}uoBNq7ad6MjHFDDb;^ ziG*MX^$Muf(i3;#Ow{!?ewavfL`85oYAarYzhR7@K4&RTKy7&8|FO^T_vg-h3UxWK zo9&}HCi3(5Hke+hEI);X@HT37r1bfFBdCVjs2Zc@dJw83Q&AmUhnkvGsDV60CA*)$ zzZaoIm`&?H9fhKtsDMhA(Wuq15VibPq2_QODzt~~`Ln3GyoQS4BkMO*#{vWVy{XKJ z%Awk*spyF6Pri&PQ!D+fhmR5;a9Z@y&9qfvu>I#H#oV^`Jrt{Jo!i4x#P~Oz7`@ zyq3Uz)JGwaa2>xyCTUWklBggmM72>l&;^y{b5KdS1S4<*Y7XzA=KeEkd8JHjrX&bs zQO|~oWFAzci{c!th*P!x?^Dnm_eo+pFbb7iOHu1~7wY_3oQ!u-A0EFZ_4ob;{7;-l zJzFx<@xO5j^~<*2p8txTIyxNnB{dt>{&n>Jm$u$f&`4va@b^9@^Ws|Sk5Nf9J*8=Q z1*)OF7>XBABXd&ud%sMIgNndp%#SlM1D--9-y2j!{8O7`jfbupNKZi_%#OveD%QYB zsI0z=-SGn|B5l){jcPDHrM?dJ;8|&n3s6(J3^iqYP)T|M`{Ntbz&fR4{cG6`N@uck z9BNstMfG@>J^n8$LeH@rCJQpxHAQVKU66kv&KYNq_sC$*4?_)P3ThSHv-)Q==QCz> z&D`eZfRe5xYNKd`ipWqrfy+=M>YB+!WGw3Xg{TPbKqcitd;Bx%EtoK~zte|~6~ubf zH)rwperk@D)g)tYmx7kpFx2wfiO2CdY7VytlXNuj3QJHQ62cTvKY&^lS3`|=QQrqo zP*V{vyLmt&R6QN4gPBn|6ouNV-L4cgrxQ^7z;e{w+(W$!-lL`@Mh<`P&uWrlcIuB% z4J8gU=d+>e1#Gsl8>m7q|RxM7e~!;Yg9*v zp*l7P)$lqD#~s!us1c_OH_I%@S^)Jjs*YL(?a})$?e(CbEFFw$aGbqh7OKZf?D5^G z4je;u@HT24`{y#tHWli@r%+RK0Tq!OSQy`60nCxx+}8$Uv;R1QDd@dD2K{j|sw2}; zpq9A`+R8 z_3!nN0~+B3)ViN*>+4V*+ldPOAyo2R$6OdQzrW+dLe@yslodyHq#^45mUsfY;0G*J zz~B25?C^rD|DGIJUeK7LkiYlC;zZQz^%OS3tc6*AJZS{(qkbgP-}~>yjwzhGR~gfy(~FsL(#a=lC8q^1Bty6nsT3(<`opM^Ve`Jm$dvq2@e(bra%XROCvbLfQsHum>vi3sDc+jOy?i zdpuSRljNz<`}?0p6x8!>SQp2jlI0HS0U2tVjiU@|9XCX6JgrcX>WNCa-*6EwL%sb< z)iML>fLW;z##y)$)#0MG{ax?Dm1>&@v_g%rKdM7ht!q&aJcR1N1yqD?qNeVN^&4iR z9*sB3ntC{&MUpt5)=YT5mc z+PeQnP2C|pi&yOVHTBH-y{G{kLEU!=m21yjd*UPN0nzK5NF+ktkPVAtLG&VnVbrIh z8rY8-(Z9BS4HcOOs7Sp*b@(f)qfP_!j){S~-;F~-NtP7VP-a`tgSxRKrpNNA4t78_ z)W_Bbqpll=dhirfBp0AwHXAS)4`D@ofg7+uly}~B9#J^Xfgh-m9cyTk=@V+BNz%x4 zpdbcOZ-`nA1FdUNtLF-8-}sD*T;j%NN;0A5x&SIE8=_XnFf6L?{}~kY(zt-i(pR>g ztcmGJZq&w79c$o3EP{7XbDpND=|C>5LcInml8aCwUXPmd9jGZhiF)1x%*68@r@dP`Kt2B7!9 zv^SE1Zk&NyF3V9JS%+E$M^MQW*uuFlt@j#fBKCr3qnMoIrgTYJ~AynJLMM!G3H&sQWv$ z_IFz1XjBBBqqgG2ZCq0bZDTBHZGZ}0H|uEYV(Sjn)SN*j?MGCWXKrggOsb-{!C)xI zm!XpMwDpxW&~0Z<HS9pod!y#`ZhPZ9YqSogo(whOY}WGDwy3RmBxc9uSO?Fd z+Rxh24794%ZEXt!t<$h47p_6gdAd$!j)Sdvu^GopqNZpW>bi~A9jL8)KWZwkp*ngC zmGwVRQ<=Q8zkV<1IwdJ+q{lELUPFcMCx&DCF6P6dCcdFQ4AoH2uIBnlsAT;E)uEH9 zoVtoZ_{ti;n_Z@;^EJ@>@Bg%=pykj7)$@L+?4F8ha4u>DD{cKSs>5edJK;Ul4)_$6 zRIgDHiP7EMA0PF=)ToUqH)_?C#0ahbY814dN1&F)RMf^YAC-igFabGn47Gf&{p#=i zi$*W38GD#|1M4JIvK>Yx-viWu67)3frNA82bD{V1e^UyYlMeQR>8K8^L*2LwwLcs{ z&FNXxI=_e-*){Y=jwPta=w;pk6|eyHC{%mXFbbETBJsT!>%Sd^xV_DYd!c?79D|zU z4XB9xgPMx-*4y^@Gt_$ifcjQU)5k=p5bF9Ws17&4A=nu8a=L|z(5pVIe~lopuUW^L zQOQ&r73waikqt%d`Lj_CTtr3WA&$ZiSQQ8LGgI*|YJ|T2=K6%FdPdap%!BG+4VQwF zr!gwjE$syzQAsie)sdN~j;uyKcpoaHr%@fci8=8lHo~+6%d$eG;2e%W9B3Xq zWROWxcRU3p*$mWMYQ6OUZliwLo}Vz-L}&$8;rIpAhLV8@YGf5qN!tL`;m#O>Lr_z+ z7UR>A^QfKk{t$0@^3VTp;|0PPX-x z*q8b)48uIb%`$F*iri52{`;SkC}=&;Mm=y1s^@!9BY9%ae@BhOHE7(oz{}ToEu-$L|-oI8m3w1%Fk!B~%jhfp!SPy^0 zQg{=!ait$+I+`7|=NCf_sFOWD7?sphP^)AuYIPk$@B9BA1&#C*Dzvdjn~`Kh)eE9V zSQFJi2dsgkP}zJHbK@sl4;f=3R30^@)lnN!15{G~W}P~Q^{@ByA`U1-e_0QpM)nUX z+b^I(eGk>4H>m4lk2UoKr~!namQ^HbwNyZLxEZRQK^TnVQ61klmTc6rJI?`S^L2Zn zZ=4BH0@R#k$6Qzhl_Op3@nNVDPDO20^Q0&!XOX zH&Ao)AF4ws$D0n8Ks~quYBe-Qjd(a}q%%N6M8Bg(xXXGF6|sL&b9n*P;k&3%e@AUdDW;g~LQtX4jp?xj zs=b!TzTi5YD3s^GbS#ZGQFEPPs)qrXc+7^^us;UOG`~}Fu_^T{7_RkSV3v97wZ|gVC!#`n0)z1(s-eKy{!TNpryy3K zK6k#q_gAy`u@?2v1@@omU>@qnuqb}Vd{}s)zxR(`f5my!Z=suxLjOhP!E;ela2bnZ z>cwUYZH!tjmoNvu$4r=EiFx0b!wBkQP&?lqRMvk-Mbfv_BxM5Ba!+N=ztpb(S{%?S z=!&|bKL+6#)bd+{+FEy^9()Ehmmjbk`j(j;t|BV*t#A--!GRdQ+_bkIm3*gA&$+yu z^{?ggkOLF(2P&z?uV4%Ik(8*8{jtj5`!kz8sL)6JZbmd1)zE0`Ec~1LN_>f}R-50N z*IHx#*-@soCiL4-J8BJgoq0fe9KeB|sJ;3%Dw|`kH@~Y%Yi)vBW(!g0|3d8pr%_q{ zKhzX{!n{~ygUO{|F@*XATi=0U)ZO#;gm0tSSaP7|xR!M&D%2ZMQ?T254)wst7z=-3 z35>DH{A2tIsHs|umGBHIhf;4g8&M%7vaVCh9%zDUun)e+@u>AXbc?xR3#!2rsO9<^ zHJ6`IQ|SC*I-U$CP%VS%_<7WIcTiLN1eNq}Fsasmf~_Vwg0U_qDquWZj2UnPYUetO z3jI6OAE(6M#&1rkSNhXTS=Q}l%PxVsz8xwuV^NWtj#?FK?D0+L{rCTNQP7Bv+6zvh zdUydf$L~=|7ITML4au-Q^{lAmoPtWG`KUd9E2_Pds0ds@-G3MLUGN&UANY2%{uT0q z6x8FYSR1=xCp?UbMDAT?B*jr7tcdDZO;iWkpdQ#AvteJ<7P}NRH5*X(9Y)=E64l|m zyIB8v@D~o`!Bl^lY_5jdC|Xztqed_nH3h3txp4%QRG&~IPqN#*?ZT`zQRjQ3cGT&p zso02`+QYk9|Me(5=75r`_}`}It*zZrBN&9<9HK_B1`FdJ)Vts->iZz?9@DY5s8G*F zt)?~TeeG2Ff8+b$S274=aM?2Ni#gmne#wR!{%qxP4XsE)gvDCojxs1bfd&3WAY=H-(Tm5ilO$6KO0+8y zM!FFdu~VqrxsU2dtRuFAsPkn|_cz26*a`Jo-+&o-zH^yEIDSP%AoQqt9T!5?`(PN3 z#PqlgwF)kyI`|%=F#a*K3_GHx>R0O!R0k%acEUxd`+rAo{U4^F9Jq$+@dN8OR6_~= zF(XQcIv;_0a7ENQZex!RMorCh)bd)5T7Lhcu78TzG5T@yy^!ZP>pz48?Kq$dr=cFO z85`hH)X37GFj+egH3c(KBiW1^*)CL$oItg68`Y5?sP+>6YnEp)svdi250xo*X?sy7Xr&Cd(nPpv%O1gun8{VQu8vC4yKmt_9Q=mo~f%*_BZ_hVGjl3l) zw>qOb(iijNC@iS=|6U3T-4|3=COmIGL~^2z*TEp{f?6e$umbKwZA`H*nB)pUEx)p; zNOnd|;Y?K09l|R3#-1;BQ8~r>YezvRhM{(-GpISvcFFv*ITtF)CZIaB5dHo5?zi>7 zE}P`MfO_4&L`CWwYRY_9OnZ4zt02blC<3tQl9yn=1%VE1e0<#zSD+0b&`Fj*goWx1{L;6r z_ISRVrhy9RO$qAl)&&>f5Y(2N_Lea(>U?GFhD}iIo<>FH9%_|5y~X;^Lm}pEvv(Ik zHB=dulr6D6wnHV;IaC8TFbMCVk}BYi`HP1{xQlvk%!;}0n&sR8i%}np>ewFC{&D86 zYYJC6kc9*P!+IF&f5zsh?A?i4W`|H6%zn>=z7*=E(*RpzdsIhHqjKgdYHFUM9^CA{ z`DXkT%TurFJ}`e2HVcPx;2I9ZMi0&Uy^8wzJ>-$U_oviVQ61feo$&^08CHDkEhncn zYG+%7%AKuP0B>PFO!maz`yZ*OiW->v&K7>6HiTGDO|}N&3EhAi;XPc3?=T)Ner7td z0kxhlVqT2*+*r!m565tPBWfQh_`*c41|HD*Z%aWB4tZ&&A{_hZLexk$qmuIoYFS=I zEwj6*j=V&5;5+8Rh*xH0ZBSFy9d-X`)N|(9<4Z8L*8dI)nyZVb<@6A>+`eO3O!eB> z0)wcpMkUX2REN%EQ@oBnvG5xcu}!Es--mkeIn?^Ug6hzF^#1#wG2WU#jZA_XSwmFA z?eH$^xEn^tn(uA0eK1+y9y4=YU)0<#L@nEkSQRsWG(XVvM4dl@YS;J4bSyS{|4X~6 zDJWDSsF0UHZA5iZA?=2txD=Jmr%;h9{n>2UQFxnrAJhQqeKE_i6)LhvaSL9t^>JTK z^3MOt`j6m5>~H3Cx)|ymFaXt&*_aO3qgKI5)W-1!HS)mk=53f4^|ES)`tX>9IdBW= z`a7t1!cSD_v;Ht0E%d{#|8gAAgR7&KQ)euSqfreUMP=^;Y>7WmN!t9UzxVI+UPYbn z@}IeWBxUbB6VQ#iJMdnwRLRJdHaVDm-xY9FYB zx~{c7-yik0JQLNHJc@RfL535%%RYL6L+vZ7K#zz z{W1D-TtM9yGr&2Bi}5J7iWT7O#O$$6q#mMjBSxG6@3&f^s7M|~-QOf`fcI;>?^u(1 zgLnbn>wX=s)B68PL36+AmjLf$^AJ{|o-Q!J`#au_*q8bbY=XVx2YBy-i>MthGJ$Eh z2Pz4VU}^k-C9qJ!0Pj<7AfBbZ3N@wu5(PMOdA_rP!T>CuIKW%CyHVL1CrN-2c}?ET!}UC1D?lnsRNw2bSzbx0H+xSrwwpA z;+S*+-rs(F2nz82eWB&)16(g;5g7u!KMrY$TWDYdDi@k(4DkME@=jnY>V-1}cw6ma ztCKmv`#Zj7sN}kU8c35YW~%0(I{X|u1sCm#_)CbNZ)b**d2YA1#t%~`nFLfzs z$GV0C@duW`{y9ui?#71Hui_8P8y4W~!#p`n7Qe^F)Juk&b-oyPQ@?}Ha6zsB@6YbX z9Fi^>yUZbz!HT-|; zp40dJ_vi7q_u6Z(wf5S3pK~rEzydfI{tk8KueP&xdjYJbeGTg7ENyS?{)ur;$7=93cEV}UmO0S8+TILjgvTT^!pySHun+e|NURz zP|>H>Z8#GC21mi6-JSk-xiZ+B_8C|YHtFH?fA41`tWUcFI$;&m{>!ilybjgw-N{yF zL*N+N&7l7wrE)$0Tc})vMNl8NYoBoXA42D#-e7*P*`lWv`EyX0C>y%qVb}ncL%l^; zL%r93XSeG-Y3-$kP;b>fsDZ}A9F4FW6=e$4d;cJ)H;(C0&-rTD2yTVChDV?}x(q$= z2lyat*voPp1ND7B5jKQrPy-za)y@Q{cIWlt{A;A|Bhbh;LJg!4-UScCGVtc04{0;rBEpx%maKphv6X6>yu zP&3g7BF}LQrJ@GL!Y=SNI1V0!y8C1MTL!YAF3A+Ad*lsR00rt2c29TuzdAMoCexk= zOW;YUc9uMC1$Y!bMf+Rm|NP%A!BY9m)A`j38yC>lv^KE@fb&7p%>f51Z274dc+i2zACmFIxBh zCQxrM5l~ax8fu1;pzikmQ1{FWc6%P|M0;fpl_)Cbp{BadXzLg@hWb!x2m8T}P&d&6 zTfP{ogLmOHxE7|s@G(yRN3^j}clj0A3$`E2yCQrQ7QvrkBFx!7&gs}paiLFb#Kgv>R^lAJ_t2ax1gSu?_pbb_e)MkbC>`h zg~Omu@I9ORp-bQYZ&L}N<7cS5_YbIs?wewzI10wn?g(`Tq-pk^c&J`I;aeHMHR)lSP9*7@%{gY(}T!2kq$Jk~;8`-AW?SPFHZ zdD)V8f;y8fP;VefP$$p_>QbaZbvyuSK!a`hXqyx4{wYw8Yxc{We}4uLC>KCIj=AtD zxCd&=8_aY%PQ!4hGyD$f+B&nX53h}&rgj3Dc|>~?dg{jH&Yvq8Oqr9nMq zQ=t0ESxDt!Dodemz9Oh=e8J|APkWJ;eAKB$|uBh*0Bp^l#jb>_>UW@bIqr7MK0 ze+Oy??t8^r${~YL_nb zer@>1L*&lYtS1$D@n)O2^S$A{(EAwQ#OW`Mu{oW!Sk9RD zB^8Zf_DKD%fqZ)EKrL@Ga=PT^2em7pw#^bcwxjU^BXs#kQ*UFB9&g99$kv-ImH8>= zMTy#&6wnu)?lN&>yvdaOjXu{EbUQJ&P--_unx`djQ)I#e=(IzAnfW9V!D8%$qw_ZM z4aBY|wSv=^W&2Y%e=(OuTnRF9Q<&)_i#GXOqv=1)e7#b#DKa9F*4_4eW@AlD60#Jl z>S%$imAE&119ss1taR8MZC1$${(e?+HwT%2%i7J}(1~i37>2_V^x9EBOq_kB2Ay~0 z&gSUw$LZ5z;63!+(t|}QBIdD@P~b5yOJ+e_;5b|F4{UrWYYKuQIwJXzmcAlrIfREZ zT-}H*keMvQnpY|d!c3~%DVS!WW$c#7@E}ILZI39!*DN%jCl{mPi&C&9$o(1`VS2x! zgkXQZRBVYiABcPFH1j`sYpXAC9bUA=<7tYNY)uMS&zNQsxGl_#kf?3ZCR@_C#fPRN zt-{g+=<}6&$8LMvqw)!wH>G6T@TP)}mYZCi?fS#$ZRDCmdw}%Zp4cFOT5BZ#L+dY> zEZyGBbdlZLquCg>+kL@L(B0cMev4_R5%w;L+TjfkNBV%B((}|;FikC4)Ne`Fj_B~8 zsLdj{lZ-n6ciG8tl9U)J*pX3e`k24f=-KU!j?>#iVEN78p?1op#P z5dD|w`$Kl`5;j4f-63YFjM(ilb!G1Exbz9wD8OzgG4zKc@m|ZgCHTx{Y%I1Hq4O8* zYTDV6MZ|VAZWZ-M`|6T6Ll+R-WYLN7h{LeE?BMB(>x+7>`V{|C22OpCT#e>al zSzhcj8B$j4F_kcV z{;-H~jL0Tu`dLEDE6nVlXs&|UTt4cZ#eEefX-|J&a<$lQXHx$J z`NxuVU~$A!q|5Q6CDmS)`e?L3e!ne$Pr?uOa(|D6-^1$QU!5F_@s}?%4knurDLxn( z8bNzL7WmzqjtZ<4vI_ihv=>t{FF^m##}rvq;td}}O-n0mXnC6UAiQ0nenO6ycub7k zE{P6)0$+cZY}V%n#+pjZp~>bWS#v1JwVZK#@v~Wq4kepcCE)OQvq7dD9{z9`BO9=* zQeXphqPwdRn7e89b@ha?!<76o+ zjdaK3E)`=%7(T((T<(;{2KX3LB{5|_lP8&FVWy|dD2p~NWo?-!cmRE^aQC)mfug_m z@=K{Ki#K;m@DY#e0R6-8GhPyoc+8WMc_hc|m8v5?Gfx7Kdd!~^b2KCTzi8Fr(o%_q ziPXLR3GkI+S#vbn6^~>Au{M^9qp@vf(OPI9sV&rx5%YT3gN3Ze_#upaf%Yh(+Ce*5 zIvfi#LnQrJv^gkqj)fSfEI;;X{}D?_BqzPqIV$@`5*vQ9<@zKPClJ1f0p z)k&}UMT$?xy5o?KBwj5oslOxvr+mRr;!8`C-Ls03$E4?}UOdf~oEjWF3e6Ysq$S$c z`Al5p(czEMbBbIX=en1e_^PbG^b8 z{w&AOrNl(i+Jv5d{L-zxf;Rs`@AweQ>Gqn@D zh#4r?FL;9Aqra3(OE9rL2S-cz#gKqJ{LPjQ7d_^j47`}Zsuf&}GnI1vVze10!C#Iy zjb-kaDFN>?y1i6>>2<$D?VO#v)zk+{U{#{K2enK)1L|dxWLCw8K7{o>^!)#_kl3G< zf+|mNE(uBHgLT3)xo< zY#*m(_ocWFuOpq!$OuOGh-nkOC1`0GO5X_Nf0ttV_?d@}AqakzsIM~2yE5miAoHLs z`D!wENmq5UsgTraUz_I`*%E6*8BvY)JN9h1+rHbVdx8a> zPZ=La{8~KJKanLhvAkxK)r18%r$3#(;r4u0XQ%vH)2rzRXog}rotWEkJ&0x|E4|6q zd{{h zN=7otn>U$hfjz^ACOk1Bp?f=Fz)Xk#ZHnnQsc}MW$Eg_CalWt9QO5~==r}PjGp5Ac z7>HG{7^Q|8$8~%ZN>VR{p*RM!;a2p= zyGY-hhnN#zV+Bn2#BmB>N6e0^Fa=&mJ@5^t!XKysqo@_J8dXn+>Od~kgY%QPxL~k%5wtj6I?u%Kd55cUs5jEm}P?30u zdd@dYhSA?RPAv?2L;TB9=*0mg;Q^e4es3M8E>6Ly_!MK|YmATIP#uo_&O9h7>bgMG z148WaNQ_IpEGn7nU;=D_8fZtCf_gdxW8zp;PiLSWuoM-E_0~P85T8Odd>?h+TU5us zV?2!W-n5ej^}sOH`NF8@RYtY%)}f#WHpBMV2@~N>RIC@32rphEW_=EoTSnN?8&mE}FKAa2J9 ze1%Ie!&f?s$1xjD_~tlMaUW_~R{m~QPfgUoRwIvfPGV9O%KR`FHb!rmppvZvD%5>2 z6vtsj+>YV+3)Ru^pKK)93U&V-)Igq~rsy-4!&tu@Cq33eo$rHgP70$bRK-20P{v?8 z(v68w7iPlBm=6`wk*K7bW?hKt@EX*d??7F5z}C;AlJ5#e;zKNi8T|ZQ?}ny+eqJ`W zMP+**)PqOb`b^9~eK}^vQ?~vV(^603GaZUREyJRy$dy6uboEgKYl0ITRN(m_Wh%q4#Y#< zmjXLum`fokg}Im-w_q0h1IOZ5)an=!!_QmyV^CAG95dlA)STWyjno&@&nb`5P*YJI z^}q(GDeHiWaBtLe+z}MCY_?)iyorM`c`QF~dCkT^>L0NOCW-CmCEr*aPkkqj!QydD zNijie1VGOXH>^y#5Ds-gGAbO(oxXdWJAq)epJuPp?X>!HG-z7Iqhoe!%@q2 z2I>LpP*b-b)y^60hkxM^tQpS?>?#gbJ-(mQQ48@J1&ypk0zao4{*FB{G@+j}0vDp{ z=@a=m!*DjLgDDf6&}YDu)XShc(i}DN9;hvPFe)i0qHbfPEjORPsC@34xqC)fl zl@p&)4a7}i>S<67MW8m8LbhHU6`^vd2h_)1*cz1+X_ERmb1^+C()&>zJc+JCb%}x+ zzK3e~DXO7Ys0+W^dX!|Q!33xXBtgeyNft^am`d0(j zIiQZ*MLqZpYOcRyGK`np%ylMIsEb(Zp(54;b>C>z1EyP7pmJmq8l=oKnb-%zU~R%$a9DNvD2kD9V9*b(z#W?X^Q z@d9d@2c_}zUS@7H3Tk*hHpVrm2S-h7<~j~)1PM_O4zcD%C21MVj*W2&PDCxcw1H+y z=3pA?D^L+Qin{(P5^2{72r_dVh?={6SP{#irecOYz8S-*A4WC!!k&+r&LnLxYAVA~ z9WITETz$-q9kB&2!7S*XUb6mjP|(O4qax7>HM0Jw&`re%+=uGm8&rh+GMLauN4<6v z;95+9>cBD7YPx~is{eg7-) z>x_E9a8#C0LuL5_)DE{A%i{)AZhW%!#9?NnO;E@Cp&~IG%ix|c*F3-pH|sSCYA(Z3 z9m|cH^D@{C>!LnH&R|=gN>bu&;< zXd+ReY=oNI=BNe-p|W-|hTv}0x7!_5M^ioii^gA~URuP)WK5 zwVJl0+CPNt@B&8D`p;j$Jg^w5=ao?rXoyOl?x=M<9@Vkam=CX^-i~n!nkflJjjTB; zGObY^=!isRH)~m=6*5ifooA6+=jLA1S+yAi}^X{Fc{VGw=M;R_9v=mF^iiyO^6k!hoO%5 z!fZGQgK-1az{}VGgG=~1&2R`R$?l<+?;9+MzLF-F%3x0FO;PQ*Qz>kuunP-f>r&># z61+|QB&z2tOPfe+L527Tj>j9QW!bWfS(a^45$KG{fj-vJs1D6WJ$NlL^{#V~f+Fz1 z9B^Kv_GtgIeohbuqjIDSYGe&ip>BtIa1T_&eNiDDhgvnWty?e(^)smZFQV?djS02> zA5hSoe?s**NjWpZVAO*Op^leEEw|dJ4tK)L*bgcPleh-knvY*q5x{K=AOVs-Pf*NtwDrS!BqB_zH6_LKE z>qnqAn#rgsS%n(dcGOfIN9D-%Dy;uN3U@dVhQCmA6js%QtN>~m6}9ymsF2n}J?J-U zH`MYSXq}3R*eVRc{irE^fLgA;YUcVF)m-z_ZCVcKL?lLHX;i33U^s5H=l?=~>UU8c zeQ1xrM~&z!YVQ53o7{%R&GHPF=B7Bf=shMIy| zsJU8*8o@2hg&(j4W~yT%(;hXI!!Za~p_2O)>b@uV8~#Gw|65%?)3yHRQqWvp#7yW{ z&(CRvnNcH}gc)!t>H#NE4L`L;ukYvmMl%$Pa=Z`r!d;jhvozoE9!HP{??qB@eSrD-?|UZY+e zm8_XsnFnM;OtP=1El{gqj&%!io$H*Ypq^hrJ@9W-PoJWG5bWc&*@gjH|Gy|`jsiNE50A{a zgL*|&k~tkoDjEnu)eCm=bM|91)Lf?NY$6zfibObS6%~V2^jl6g=M< zL_u>p8zXQ7dLu*aWUp=gC#qwyyO^)!Bd89%vVOKYUCo1IpprE)ssou&k;{(C{$l9r zB~XKc)^8V7R!>6Z!Y0&IoJRHh0jj}osD|QpGYto#?$2Z`gNi_F)O{VS!%@q7J}P&1 zbYuN{8v_TFPQ*XRMbFCMKjbo?t*H-wa2HSI=mFU<%%7s@3i%F zJxy+8L$z1RTEn%4W~jOBj2b~7)QAV#`UvY-%);?Ws8H@hHFy;t<9$>|&h#?p|3r28 z87k!eVHo=NHXk-_HVV3+0qVi+Q6uPrx?v!yW1~>-_sN(8m!szVD*Euf^%E+m{zJ8w zw2x^g70#d@j2m$;meKle+t+-2Zbl9`pD`Ck_A~3X8&;rx0%P%{`2FcH%Q5vpKmH(! z4QY@W(Kg&h{eP&AP8n=Ez5*4Iji}__f!ar|VqC5N=M*&8U#(He2`$5fm>A2VLfr_J zY`stq7>x@3d{hM2qSpT&d;X$5{s7g{_m~s=4e@hM;Cg(m_1|qM4O_fKhk9F zXjBL0pptDPYDYYbL3j%_vL84W14fzaCZRgI6qWtkQ5`;xnv$ES0sjwOjo=vt{rLSE zHG(9g&AJUojl3kPBaN)xFo^mnRKu%L>wF(7H?E+z;(#$`$IOk&mHMd2_Qm43aSZEU zp?l2%`3tol#2agRm=ZOT5Y+Mfm={Z;8tRWla5HM8FHv**6SZ8Ej57nuh`PU^t(Qi1 zyx}_24_!7dVspf2apfo@kPE z1uFTrVJ&=!y5B7@$uwLZ)w9O7-qAY5I>Vk{gW3;vp*nIHl|!ek*HLr*5cL56$tLL% zp^`W`>i%#f(ykLhK@C;47u3Z<)Z3#XunNQQ1}b}fQ%nQVPz}aMZB!Xh1IUW&u`nvj zpQ5(-52#3eMNM_Ismck~UkVDkF(c}N+^A3&v-Mi24m7vNC!j{S1eH{WQ1_ihb>xOU zeh;-gU!WrN-X8axW(E=)V`%*+prD3Qp_lEbk>y7Z6 zL$$X6H3h3N6Yj$Ncn6gu$)~gamCc(dtiqG1*JGy{rhzG_Y@To3h1w6UpkAjhFeApF zX^!VXt%@qBIc|j-c_-Ae9AM8+Lq%-OOxC}8w$mQ?pS|#3)UxxNWg?Ogb5qY~t%rH2 zPe3(v6cxFPSOD*#B9v;jF#{?R;i#!Cgz9M3*{pv>pfv~7&>+;Z8Heh?VhqGBsFDAP zYTy|v#6M7>k3PptO&rvNlc91d5H*$AP#q|ay1zQ=y4EfQHPi`}rF~Hy8EhSo*{IJ! zeVCj=U4IUh3)gM^F6uS>9M$kE)Pp~vrXa>#)1hRj0fwONcMDO_1*K6p)I>e#H`IgL zqi*PhK{yUe;d)fa-(Y?8%`=f~gc?9k+>S$0_ve}K=M=*VsBg>hNJOUR3r*tv8T2*k z%8^Ib@76>M%<(W(ZWhOIY=z3fDVPO!pl0eGhN9m>bA6b#vbC#qItFpw?+g8!IA1B; z;DDy=@*?9s>l^DY)T<%xVq<1&DQi;<;e3BAj!RLg^~shhnKR<6q{@If{&O z0X38bwL#=YB|~AOen6V`Xuz*XjWCDg{z50wm)Q3F|r+8?%~26P@ZpvS1| z+&2`op~PBkZb*$`@BJ(#NQfeL{uo7Y1YUb*AT$s2eL`7p#i~@Dyf7zxC#PIBLrB zqB>p@_29~=h_pm?v;#)v`A$~~dSD;ah^L@Bw7|Ln6}tVX2G628auu`U9n?tUY%qVM z(g2@QUxXuY^hT51u{RkLp;k{y^wxh?3VL7>9FCRk1(z^4^@msjlW+F(wx))tjt)e1 zYz%4@%)&5SgQ0i@6`}8_Da*UXSQ|A(J-4v_we0$EpeqhWHS`*lt$th0FP&1Mj@Luw zNPAl!j7r8S)}`2<`ZmmjX||c`OQSkmA2kK7QB%}u8|z<%{u~Ix(WpqQK|OFc>c+FE z8?U3L;5MowPf^!>$1E6kyScv*YG4&n5vqauL8cj2#laYX7hDQmDERL%Kb`hKT{s0p za1&O+YZ!zXcbeoWjp}#>)Z3>ns-ykw@lmLbO}DPJ?y~34psshXQ&2M8w-~jc`9|KqpZhK95@OS5Q0YP1JR_Fum6Q zV+smkj6G&9)1VqChU!Qe)J|6m^`Ne(2=qfWJPGxn>DGCum(NmEME2ldJc})`{9cax z@#{QvPjKMCJ`=Lx`%Oq^q8eOj-GJT*Q61Zl3jI-3M=ql}`oy09h?>H0s9(86KVaGm zMkRL^%!U;Xu>P}9=*IztWEJW`TTmh1V?Bb3&>2*Y{10{AGt`6Lp*r>pHDyr_nyJi= znxaT+d0a}p7HWW>4zm6g!XNem-y!oc7zY*dDj13FQ5{{2dGI>sz}Sb)Pp?H#Z^15@ z4p*bTbk1NY%yh*3-LZ}sOno;h61QCnYVbSe!dyqq&ea+tn9dX38d@I_xf`5JBND%!+Z(m_L&(jGEgS=#3ne zRM$}te1#b?{aMq|vZzRQLoL_ds3{tYx^J3w9eTNgOu6e^rl2{!h04~asJZ_SHMf4} z%-qLC%~^UZjhRu&)de+x38=mQh&9W3)9!541DB)P-Hv+BKCGklf1ZMRp5YHa=PJu0 z6m{W`3%Y=0x@dlv(+HJh^H3dLV%>m~sPD!bSoTjpX9WgcGQVCsj#H>txNHXW52~G~ zSWWBy6$LGyqF2l+sEit6T~rP%M1}Aa>bg6q4!lHdSpT8sJUYEs4n?AlcSA*J2x>=M zh`MewD!Ct_8%V+Lnn{Lqs6Dg!)ZX$X=ly`~lVAcg%!wZkoRZ zmj{(It5FZyfx7+xs+|+4NdANR=6rwCHOngIU*^Ips0-_$K94)1vUxNHksI^y5cPe3 zn@9}!$8>l+YTd6#J@5}yq^_Yl{s@(0&+Yj)sAT@)+7rJ}Jqx&HMxGiq$Kj|8^I;#1 zL^b$3DsuZ#54wPQz-`pjJwSEjB`Rk=qH@9if9Coi)F+vngF+1oRZ&T|40Xd(R0lp; zeYZ`>;-W$yjCx>R)W>Tf)B|hT^Nno16KYC&+2g}d$u}J{X#H=tC$6AE{ScKLpHU-^ zb;mp~Au2aAphjL2)zR9h>sz9dt&epAs-sJ-+fZ|U43*@6V+yVR1b5AY!cj?+3l-8r zsO+z3>kTkF_4d|zn3eij>lf4mLhhMg02D#ho1@z6i~3X>gCV#c~ z(94DUX0B7CI+EU+6V+fbYc*6PnxWoyol#TK&z>KOio{e@k}g9<_BgsKoTH!{E~B#k zZ`9}aM^uCH9+;4)L^YHJ)qx_Y5miPdWmju&)O`c7IF81Acm|bIehw9}V>%ZoFanwj_qe9#Ol?%V2I@AT#!J(*SHyhP~O{k8Z zL`~&YREHj7YOR0gxjB#qHAe+dQ&9`mVfSkXyhYM%VIGqL;i`lR>szWngv;MWdmvTTI*@Bwev#5|>N8R`@X2$4mOmgM2mPXxI z548-tquy$hF$_0h4*Ux>r7_={{UjGE!o}aR{;N>v!U2u+AeO}ws1U|^XKqM}$EXL} z`ZH9LeL-Cp@4Xpma#Tmtph8_1)xpZvHmHaUMZGmgxfB$_#i)>MMa}s^RH$#GBJ|3h z|AC57%n#=8h9|`l)O%wYKb9fZre5Nc>A)P+lq|x$xCZs$JNCHyg@PLNeKyN4E~;J* zHRrWZS>6cM!A>{```hDRP#ul&#ax#Hn@|r!T|X8TiCL(KEx>Txj_ez*bBBT+@Goi# zzF}4L{bzb!0~NAHs8BXXT|WTJ;RNh~*HCj`{;NsmwwR0ha8xq>j_Sy9)WFVS8m<4! z6pC=*4Jt(0zL^_ZV`J()P#eo7>l4(-eqbex`Q0>J7j?WbR>$_Jj_$|B_y=aePCrcY z&BNwA-#Ja8A%^`lKU$4KW&d7`#0#jLi1W*Q17=0-2P;vb+>3h9W7IPKjLQCmybJSS z5nO;hP!W#r=kp?v488Y%AO)QW!C9CUl>^6d9sY?5-2k7@n}VU3o%(##GCGG^*Z-kL z80zoy{?=P4FHP& zD=I=~QOS4-%j0$IjzQ5(2d1MsxCnLKdQ?(wK_%fu)PVkn8S$}e55$UYLXsF4u#QvW zJucW4!`wJGrg1eY7j~jLcnwRTKYs(I1eU`(I39KWJ}TSe$2Jj7j_OD#Dk5%P3JOtK z)cUNCe3v_2QCsf}tc=@GH|XEW>-q$^12dqG-$X6PXSSXzuFp9_y(DTXqQvugt0FmS zhis4Jkn7B#psYQPYWNPSBX3c26+OPGr$>dd00v<_48eY=`@oN?G1b>AD*^-&XRre!ktyg%p|kFBVGcPS{jnrAfYdJ*=ceh{^s@&}ua48^|G-(Uqo+b+aJ zU`HmO_xFJ>qdHJE)NCvxQCsvnR5JdJT223EYecsE?ElVMo1A{RmuD}R9V=wq= z>v_UVQnp83KM_mfc07xpaX%gn_c_Jrpqqtu@Nib2Gn?Zdv-!MV&rQs3LjMKxYW=6k z;d2IXK{c#}=TTFVE~n4?jb$6GPW=e#c%ocB@3mVWTT)+z%J!JK&77A+?F-Ye67IoB zj2hwd{uOL#oJajNdVl^mE|1wDHlgP7FlujqifSlVUbC#~qw2j;9a)Gq@qsm8K9l9+ zQ6av7ni5}rB7*r*Q{4}hyuV`)t^cbOa$&gwCNu+3BVK@S@fB*Ty<5=d{e(2LkeR!S z_&3L+7BI*Bo=D;!zD4VyT=JpdRB897%sVIZGVGb_Fg%|~kR5g}FZN=p= z5mrL&jLlH*`wmzGd!pW!r%>(RbSbFk_fgAlTQ#%A-asYe3)Jz%)y?q&n1y;3REGwj z8XAJy+s9dF+2hMl58Qy!@Br#vaRSvb_Y4KS94@2w_IsEFKcQ}nUBiqh4XU0K^`H`{ zcS03=zBTI0rynN3Q5X;Bpdz&fb^j(*`-hO+bDe7x6siZPhF_t2_7zK@e@!!&Wl$p> zhH7X6M#Y7wooxlG0|!yz28vnb&*>C{V1rR;g}r9U=S`vHGI^1 z8a0O(P#w9B>F_a@#^`l?-hZH=3Tj!;Lq%u}>iW&Leh4p8KZ)Kyvzb-bT(AT+f-R_? zp0i#>HS|9W!H1}viB-?sml74)Fx30M6ozA6R6D~_9hiVx9SczHZK=olS5J3wKAe<7^D${2A2h`G7~U zXG@>=<9fbUKJPanGf|Pe)!OI$i9b=-UHr}busW@ckAFu@3r8sA;KY))=7ZxBwxb^2 z&h&gHYAWVqayqmHHIg&!O~@}BGAsHyPlU?Q9h3sKLEAsRtz3d+t2 zs0&x3=5ilq$HTV%29-=7Q4Rlx%`u>(`MCTIn^0emT1_!KnGcx?*pK=Q9ENc_n~iBI zy7M`3ih@GlvWvNK47Q?v8ug&8UCozEe$@Kzg;#J4*2G5LOoz9ivVSM4BZp9tNZZ}y zMmQ=LN}zJ5TzA&Lvc4_{lzdH4BkXGHJy8)Eh1y^ip!WXXQAv3U6{!cPjy=Ud{DxWu zsd|_k$cwtZ9;%(5s41M(!!GYNzw>Wo}Gn4Mjzu04kD^sOw6j zHm3UM!*-|+bhNst``l?1lzg-8i7luHA4B!REPZfn&WY-2~p>hp*Enj7)9$plUE?iF(W5(V@a%s%H9Py57(k1Q>vedL`^J9 zy)`Pd8&T&Eqo&{@>VXfCZNvH39)E$#DW^Xj(fZFwK{sYa-B1_{VM$a+T-3;qp;p65 z)b+Pe5qOTe?=5P%enEBIe}I{i_^2VZ2^ z4?2gM!%L`Kc#c|bKTuPWW}s;}7)w#lhPuB8Y5-$VQ#=9HktqXN|GHoi2b4TJP;+-2 zb^K3z{4xHZ{s}d*4};8u{RW#{Nrw$NUJmQy3ao=au@=^5nQMUSQ1>6fg?PcGptrSCU`Zp>Uo}wc88a1WgP`MFr zgn3R%)RemEDd@sbT#gZ_h}^{A@NZi$KGGa7iOPY}s1Y0Vd-4PHPHks2^&i4^YXJZKBUvf}^n)hE6g! zE<(-eTGU(a04mfsQFH$g72@ZpDf(dRu_v2>Btc!D5nVNqgMvm@5fy>6gl*S4N|in%W@264O+sso)+?TkciM2k@O@0-H<*GR5$Kt4ltRT`vucEfJUda5IEd=VNmNeU!0h-EwY8>MXd3E{IjPS_EwevR zk*K=JBxys`#?~A4Z8!sS@qFjKy&z;U-|d_zjva6es(}xvP&-RZgpy-7s^O?*xezs{ z8&KEpMNQpFd;SUrQNNEGi2qV!Vyvw7A55VJCwkZuCs9dw1JmMrRMsY3W;&7`!>E_V z9N68~m!p#N0%{-lfQsNxROF&AHyd4Q)D)+~sjfdC927Ef;KV93f|sZp{zEO#c&kkZ z!cfboEULrJP;Ntvu=zVk*lCKnoV61iK#01pH zR#>m$4(d_Yo44RT)DCzEgYYrt#b_H$(nX>+q8>O2`=dr2W1|UuD%7gWvXS+#xy#3a z!dM!WM8i&MY8iJ&J#Zwdomn^w z*P}i>N^CdZly_YUGdM6{htKhrQqkYGhYYBYBP5k`wGTHwL4YTOrimT>&-6 ztx$8>0k!;kqwX7qYG)P(`tiG7)CP2OpU?YmzTQS6?K*w;+a98p-CR_IJ5e_rMsGc% zrsfK2MEB5JX7>0`YwQE&x|G&X)ctvJB9=t8dkIr%{okOV9=}Ij810~$>%^#f2x<;< zqefm16{!}e92jJe&qH0e19jgSd;YpT{vI_o(GQtF+6}>kJl~0a*sSYRs0JfYb5$Mn zmTQ9w{RHcLROr{C_Jggcj-5qy;GwPmhg#=}j+k{Hj=H`g>iSmbMo<_`;Sg@e%-G|o z>FGjLeIM$9k5E(e0@XnDW99+rQ4uMK8hLGN3)GZ#!3j7B3u4UU<{eP_IP1Rw2Uc*P z4*o(lQ0Ihsowh`6p_frv`!^~wcTf@eXbm`NjweD5C^O!`CaBet_mmm=S=3wa0V;=L zpJx3Rpb&W4e00`FW$hT$gVtdcJd8mY?~KWn99WooDGbA*)(xoSx`CR?|6w40MNLi0 zv*r^oJNBX8-=$EB!aFRF`OcXK3`Kov%|s>52Go{(7K`9FRKo?%o5<9+HbJePmUtLD zqpr*Thk316MGd$fDpKw=3R)JYusznkU_K}gV`=LC7fl4pV{YnmuqvKMeR!n))0}UL z9jR|Z@f z?xU{zgz9MYYvzFoQArwzZ80P2zKPfzx1k1___{eBfw_3TQ=dXToPb(Jk5I|u+%Q?5 z2Gx-)sL)oxA=nc&MIVv9%PDk|wC<=6`qfkBv+y?rt&)CcaEj-N(tG>=e8{1dh8lH4`*NK`wu z@3Q_ivc?<;!vU!JDpY8Xqe6HAwUfQak{Iiru_~6JJ{@)ab?aT!N9@1Y2;bv-tajgw zywn3Tpe7GoGp8LnprjgtN{*SR5Y0zz6gyEPK8=dV->B=Jphoi2`VqHL|AC6wmWRfJ zs1579^&hN7{a=@Y8Yue6e7lv!4%EA#LiZ2q!S7I!2zYEdni;hvN1{So8kNMIu@_E7 zbu`)&^Wem&b_VMS7MOX|04=o9#LPIIZu!2s29cvY=X+}>G&Hi!fY7j zrRhinDiWnoN!S3@UMtLwLr|+>3o0khpr-Z)M$!6zML`evfV$xqYW-(_Wjas^k5V6s zYN*s}^Ak{GtV;bNDq?|eOb2qH+AC=5rBQQU6{}$@RBr4<_c?{56qMzg-kOjfLCx6} z%!IeFE(W|aS>Fg1;ue?>7hq+)isLZ-d!I8IH=^dc$OqH$+NcP2Mn&w}2iCtDc+LUs zY#BcKyuW5!8H-a-@W~vni3R=Ga8M!M{n>>6C~8$)#+CRPwJaBYFS%~io{6N+-*e7<#ALfFQb<69n^@Qpzi;L z!I|z4^;!N4)$v&0O@z{8dFpN`1&yRTDyxT}Hj2%tBs_-N3GbpF^cD3IN%F&N*%7GK z(iHdNP}KE>f0{_tK}E1LYAc?JBk>(BnmE?Dj7@4YsEqBfXj zK7TLE_h3QlXHm;Diod@%fP$!vsvK&r+oC!$2-U&asHxe58ptK|{%>|(P*8||qLMIX zfWP)!|%ht!Jj(tTgs=v4Qmq%@})lgGd3zdW|Q2Rl9jEVzL0~m(t*mzWg z7Nhr{+1^2+G6#;J9uzN{zxP}1;;1ZLj2hWC)Z8CJjpR0JPxp`R?|suHK{Z?+HJ~P_ zB<_d0ZZ;}{Yf-s%G`hd*y}j;mK%tKw!!(==m92F#2X;n9W-)3Ro<()!ovkN`Y38;7 zs-5bnIUj&Z>V>GOJdfI8@1q8gFc!amNlzhPEYtG_s2+Afg>;N{7V7=I0^{L!)Z8Dl zUbN@`L52EXRH)zEn4KoeBMovi&(BN~aiaWj^}z4rJo z%uhXY9J5MVpf;R+m>ch5C?<*P?=8bfR5G^4vFMJZ5J@3kJb&*m99BWqXJanBj)O2p zd^4w`Q5(%NRIdDmnxa?<%yKM@t*CdyDtI0Bpx}i5-Y>T|qwf2PrM3REB=YzEbhWNX2OpCGf z{?ANdE(h}9G`xtK;}%Ix2fCv+j)|zGT!}irAE)4X)Q3moWd7dY1z(EOsVC+?ou`hk z!KrxE)@!9O9qo)Ic)l~7f*x=Z^?=)`k$%K&7?jfA`wxd*L9J^ym1%eiYQ*a>91o#J z_8dpxCsYImr1tmTvO`hHz6X_jx6u3hKd&e#Tfd+hh@HlSFc}u3UI43Of7Es7u^Zk+ zb+|@avr)Cff2q$#J$P84aSUodn1q_LwHS=Q2eSVAQ@F(ejjV2vS$1tvS=t-5DrTX2 zywV=ug^JJ(EQ`K$=DG@~jio;F596HP_IQ&F=6omAKn9}PzmUN-g;(~1xEamdra{eJ zR@6pO7L`;T@f=PV^DLl02T86s3f_E8cDPq=6E=2j;oUj#j<9=SRK`YcBuDuPxQwDsE)X(P>x4+a31P`t5Fd= zgxZ*{pa%579)F1~sQX2j>sp~A-4|WG7Uxh<&o-e#c?{K&>(+ayx7rI-!yi#0{e^`w zN*=R1N}xK}3PVWB9;lJe%j@rb+%7{+=|NO`5A*uF-nZOK4k#p{`D_nSBkYS>_akk6 zHmYMQP@&(9S@0z0#P{gK;QYo=)RcvzI#LF8e-%83_4Bj-KT-%T;P3q-vQ!2Ay??nh z*&0yD-}_;)AJ*f#J=h2n7H0YJq%L@v`qoH)?>`>fy{NzUBUVr`f9Dg&yP>`(+7>rc zI21LoiKs}-b19^!a2S=<4^VUIlrSd7VpKy>Up(zlb2kRPmy7i%Di>~{rt$;o=ZP34 z&9V+gwObMgVqMh!;a;T>z+5FQ#j?RvrTzJLTKw5<8ME#~E0_igpdMTWH6@)fI}Sl* z{}xneui^{5gBtnyie?HPp>oTqWR537a)|do1%)J+wJ0hgl~4_IL5*Y#DnctzbAQC1 zzlr+7d5elb%F6yu5az-nSQCrkRE)sO7>?1Z=*x-qmzzQ*4s=BIa1UyP=TRfNjoJa9 zp(5}Vl}stCnk_m#=BHj8wPQ{~E!RI#1NaNo;diL1iBZj*PmA9F&1M({&24ei7TgT= zpuwm)TZC$G8)|tSMEzXw2WrIMP+6X+x`|viR79&|7&bu-Y%J2hptY1pimT} z)i4h%i|Tnptb;vK$#M=gHF0X1&*>bfbzBCu@l-`cswrw9U2!o^LcRU6)iUkZ#!S@P z)$(_}e;hKE1L|?++UCJ|Q5#cL)CgPKcAmXgifQT?yB`MW~TlH70L8< z%+%#YMIy2e>tEmbjX9u^bwD*d2{n>MsNC3$-)7W$%BL-0| zgIW!3tTR!o=NM|=cz_D^FVvL8YhtE41BPh*m!Y6l&Sr( zS%;u@y2+@Q&1}>v*osP~uc$fpZ)vWJhsud$=);T{fSFJO$b!1Qgtbab*1tmEfCK7z zCwpNZ)bWX^l>@DgBfvRYi?@|)K=ULv*2W`jr&ns zvYW7@8EFA)HESE|VC>0-Gf{IMvy++QMAjf|#__DEDVl`3Zk}~H>Rqw{HI*k&Q*#EH zGS_)ZL38Qf+28xcU{=&fw_^s~fC}9+%z?4Hm=BL4_?CJn)Z91iYOe2(O4dcF4(&!I z-*F7WzpdXeQ0qT+H@m!0J6R3XYN(Iuc`MW^7=&tYBx(dxZG8)>!~0S9UqJ1E*HAh2 z4=N(>Q1^dBbtqbQHYT3$q@kc?lNBSdAZk5#L9L2Gs4O0hO2YY=fSlNlS|ulX_fEf|h}q6YLGz4af^%WR>kQ6sN_nv&Y62fC;Z%|_k0617ikM9t}b z)H*+m8rcc-Mvld)zeBwPB6^z-kJ7022KQ$DH=rIDS8q zOhr+lu8$g7N7SA_9CiO;R75V}XuOM6ux)=c6}wOae2KdLhpoqT2blGl7S+STsN^Y! z3Uw8Gz78r!dZIcq6xER#s0Xh{g>*0K0jDuL{)LS&#z6Dyx8G2|W#5W(IqqH>WFFjM zu*uRss5u{kdP~i*Zp59`kJ|H!oFX&@E8`*5h7xCp8EFJ+3QM6nTo1#r18Rz9VSN7k zGtNN@+Bz=|HS6;u>gADinCVao97{bts=*DY>kng1e2iMA1&5pSHLYz>Q#ruar($2~ zD^VR!J3`Bt^;emKLe~+sPWz+Q^KjGyXQFz(7B!Nq_WTpnoc@QJsu&|pI|)z`3`BJx zAL@IdG6vyz)IPBRz4gDHf;N<6*cI=idRTLmzxU5-hoR2@MD2uWMw_`UhIOfT#gcd$ zwR~fbF&#~Y+VjIu1FCC}w?pla1JV1x*_lN_%WFGo#1~K_y^jj*N7P8-jy3g+s1X)H zEwkEK9lN7mHpej+-naE6<4lBdqas`gwGovX$NE=RcjbT_gnB=ZLxpISbt7tIJ5bqv z2sLFFP#wI5y8ffBe@6`<$#|38p{Ugof$DHYR6A|QleM7~`fxx!UxJ#;gQ#piX)k<< ziqLn|oF|)L-s_oA5vz|n-U&6rL8y&tlywSfdCx;F?^WpKfJ;GJ=XTW2v>P?j{iwM< zg?jM6s18M$XgZh$_23B9YAA;qac9&>hoT-Z2i1|q*0q>{`gT<0+#3{@QFwy`arz`S z3^s`Plg&$}(-iX{cdALE>8KH|v~EI0Y!_+@51~4I9u?{*s0}G#nz=3sD)ebEo!sE!mtjl47}LX~X28Rnqg2EC09 zV{83yq@V`&;#NF~YM}27bKFJscsw@3d8m$l#2CGtEhQ;t5YFXxCu zn3?(s?2oUp9?y5$&-VBJe(o_;4>Qa$Z@pSrn0h}{NPovryo74#D>fr}GS2n){w#Oo zLVxdX&0fTsoKL#QM6x~RroJ5`@d@U|kj1S34ip+wn2%>rZ^70}%!5awrr;~=yn`7r&NB19&xQJs>51C;)}pfh2`Z8=QAzoI8S7u`J?e6^?$cW%QLCT< z>W0=BggsHqY$j?$T8Vn_K2-AEMNP>|)DD+tg$aFC97KH~D#=r=H0{k<$@*6k?csnP zbQHCGF5x76ib|?JtJs2lBqge2i`Mvif6ZnsmZu)L){Lkfs+}IzVR(T0RD6Y1*O}j% zN3J)2b`;OuU_!qHwWSu`XdX}t2T*T{8p%JXZ2pKvF~%lidDJo+i#opwwGZq?W%(bd zDZGz)FwhF2Fsg4jw|y z@f}o>y+^GE-yVPO-w!23MQ|W0mqw%Z_{FI9cB9%qgu4GcdjI{Oe<)}}c!>&m#=WM; z1+W(NhS(9epdyiGpBYIwYIWp6b*u=g1JzLvY=oJyC2EJAh>GxB)O}m_vHo@AZVsr& z=TV`0h`BN9ev{1wQTs$?Ydh2kMxv%*1}ZnUB1z@kM~&P$VBU5qtVK}go1=DA_WP$OJ~O5y_; zfX7g|a2o4r{a>Y^4I%3>6N!FUjQUvA9G|tv|3WRFXQ&6fw?;c|I*TwxV$ZDWM*crVfLXC7DDq?$3 zxpNWKkq@W{r8;HK=Rns-{pW}ueeF4Xnc&a(cqPIr2NIowKNpJVmwl1GPL8{o$GerT;J&G(=5BSJcim7d4m1 zP&x4wi(t|VW);*z?PNVskr{{z`8d>Sn2PGaI#h>FqmuL%>L;YfE(MJs#YGdk2vofi zsv~V|eF}zAUysG{I;w%>f12YJaVGWN*al-?GT(wdF^Kv;tcJHxIh6IXnG&}!1~hTBn0hp&DkLgG#zhsO$fS8tF$=1iqs>9&p8sG!XS6k{flt3~J<6P`OnP>4@vJ zq>zsT-LU|!Lxt`kDk*=UK15PpHOGr#5cT?~Rni~J<9gIv@*^s_l3X*(FDELJ^-xnd z6qR$E(fjv*x9kOB*G*E@#L8UI3E82XeW(#6zF~gZoEnv6eNi19i~fFm_uKlao2H#Z zsMqaZs7O6VP1#FSdqIEEQLX<_6|fX4M9ok=Y>(QSXQQTKD`v)1s14^WDyicCZ9<(9 zbzMH}g_Us*9>X?tu+cx}<#zm*+0at|kM*x*5lW#97D0u21ZwWqp&oDmtKublJl$>6 zKm;lR#ZYgz`nV7~ptjr?cZ@-(^ZBqVmPfU__YUh{p}D{TEt6}Q8{eb$?o4-01Nl%% zSq0l+O;n@~pzc3~L3ja`-LJ6){=~i5{GR!dE%kk~oJ(O*j<>t-nx3uYfHshQ*5epL z{ST~*AFP!gnCxAFZ8*LeHPU1cP3W_sI$jD}V=Yui_o8yR z6nM;E3d3PI6i?tlEc?W)-{YvC-;+G`_x>t%0aQnqU?)6B(PQ9IxG7p5a~QOo%-=D{!4 zY%fi{6^`ZjJY*knos6$c=nCUePSij>ILT`>C8@9v^^B;IEI=jaR#eB1qn6ouR7d_o zb>InVj}Lrf238$4RgF;h_dxHz|1rv*n1I@FmZRqCFlsqnLM^u^SO%lMHCDzT>N8Ne zvlG>!gV+>LVowZtXCgKqHRtP513ZA<`aecNJ-UM$!8e)wB2cms3p-O@Zc^1@0 zR2&u3h8T_$QQ5o)6{+n1nFyA~JJegCrl!PKvmC3UBD)Q@;jyo*e;w%k&1COrjG+Dz z3t`xI)8KEYjts{@oP$~gyHWebE!4=rqTZ50Kg`RjBI?7VKW4>+sO!(6-U-isu>KYL zgg;GBgHdyt3zZ9nP|K+vMq&?C1KW`7b^gSb_!O0-m45kq|D5+Y>U@2+EnVLYwZ%`y zAY6~t@VrYwJ5d_H051}aF%$L9I16WC5N7q6^HorxZ;D#?<5By?Hq=)95%u7>{sG?C zZV38Q&x}gqtf=QzLQOfpe+=*;wG&|3wY({@QGUXaU~x8iD%OJBRHsIC_Bhm(eHV zLh3K^7>tJ8%Pq7I$PY~d}3l5`pywHSdn7?*|*>EeC z!n;@;gA)aKN!kW4@qA|*1#VQ*k4O>F9eb!gU=}26(Gv9cq>RiLR0&N-C2y88ILA!dMV{qFx%C zQCa*KDzu+b%PLiB({Lmz2L_@xnyFYF@8T8Al_tQ6O~<094RD%aqQC&B1NICGaJ|3# zaW`Fn_Ya09r#B%B%n;!HW$`Mgjbbh;7b;~8@c!TOe#chSLxKamt#-WiIriXq#SkyK zoI|LAl+R?QY6L1053muY3v~m$zuz-BG{E~$q@Ke~oEVFZG0z!^`oOu2xiG4mHNg8_Z2?s1C!#`o0tez# zERL-t%^l#q zW88`n0nYCnn2LL`T%P~;b?$LhRoepIQ=!7bB0@qAv5gE7ajRrxq-3aMie!X@Ns72d z1OeHg`6MefUzLumtSm{(P(e}gm2bqv#8*<{Bhf6cS{*&*J$1|D{RV5)6h4RN;Rla-ISiX*T6c~Me5HrA87tx- z?c*>7y=FbF6h8;`n5~9-EPsW%8Izyzax}n?VKCz+$9pw>jriSO+))kZuaU}oC|vDr z?ee*Oytpaz_6zmtwHl6uTVWOqOYmxXr<()&(_RQ~f#+a3ya;cF?>uSQ`3P$NGU$XW zq1rtFTj=?3pppyELtXoUeXW!i!3(rYpgwl9p7LsX7%hT&qgikB64c}A>}M@e59mXC z7HkOx>aF@?sQ3J}c6$$O`u^WBDtgbp3N_N}P$Tr}Z_y71)4mVtWA;&~=Y1G#1&g6R zbml^Jv<#;uJZ%kJVDnR`YqrH^ zE!3GGhaKSeFcRK9&65CtFKX1@&2R0IJ?)s0OY<&4lAwucnvEJD|QR#zTE4Ooy6T4^%(zz(?UK z$hZ>61uD9^eu0|8J5wx!VNeaY;N!42%!4za?*3~~9Y+qbW)uT8Q%}N5m;!YvZ%y@T z`YKsCOrYHt*1-9&t3LlzpR*#I2cMy%66y@R(k$Kw^?l$Gs53}`x|v2p&CnF66PN=v zL(8Gwi1tDqcl%)Lc(#KYP#?&B$T1Q&$G>9~6-{X_)Q8MCsK;zM)IjQ>Zqf@-H{TVg zuWIIbYjd@R+J8Un4kKX?m<@Fker9tuRQnsCo{9^wB#FvhL#&hzgF3^vq0V3>)HS|h z%m1)>SGqOhwoqr-6Y2zBfEwT^sF|4nbxCGI&DdK|Pt$T34)>>X{=KRE3xV$9-=G@0 z?FDPC?uPNS2SXk3Av_QF!jt51le5Hb{x(P2)$iUPr<279?!Jn zMp#eV*W7yk5$tqxuZFcFt=H*;S*#^(zfqQhPTAHoU@UwaL&u?RzWmYF=9&a!&|eI7 z#`QVYz5g6+S~{qiy#h5u-nrIhZ&gA?H%)t6&=)>NI~_*A_n>aBJy7qEjZhy>|AtS) zKVfs2IL49>gz8`r91pXgF7X*y3|)EFCjSKXqh0bFl_Dy=^1YhAQ@I(&(H>vma4hXhP;b#g3a#gP9@MqH0_&i^$4dEGsC%eak)@vm)p3T^E^(Ao(SbXl z?$&cq?|>KW_HR&Uego=ETNPWWYYp|O*AeR8=nplZBD*~UYNjfno|bj63p@ZHfH&Yn zdj206XU#Cp=BrRQ;cBRxb2HT4y927Bqfk?P8AiiDp-!OFc#| zw){U(C(>-PHQpQQ1nz{o6ai2jw}v`_Hnu!!GUs0vy4VUaP|s@**pvaAiBOMYGJFP3 zftvEe@F+Y3b%txFSZli%rqMnQ^%mY`sEnCPy?D+LPaB=2HV0{;lpqR)EmiJ zcsKkRYGw=p4}`bF-Y^|%pi80NC(57(Rs&W47}QPot=;~??!N+cFO}S&(uPXFOV--O zKpi*$J_w(Ky7@|=uJH#ptDx@sgHX@+RoEK-2{n+wY1a5?sGD^#)LlOs>e5Yy=*K%Y zQqc??g}TP|P*c_bb-*uBcdPfy*4nj#D!(79{GpfS(u$Ej-3Ypr=5c~- zMZ9+sI(;OgBG$Yhiz{3{=h1zPv7bwQMYu_o>lNYMgV1>x`8nnjM+9$RCj^~0kgp(i zJ*j+)#4+0Tr*3XAmw8-0Bx7~3=`K@NyL@u#|AP5GAXTfw+dfXKg*~6CSkuxAnLdoP zv_lppW=)v)Mts*x#F|L+p``Hl5Sg~d-+U$u*MtQXs!d`T0r#TUmHHRNIY5q}Bl7*4 z$dKOjX=w&;r|(BSSd?wVoF`G0p=OdKR>t_|+j`frQ7ZE*{oBSO`GuCgB53&n568Hk zAU0oS@-EgMklM;%^Nf67Io@=T^tIt3_b}>pdqge1rl2{3T;#wUDP8OD_bM8}x|b<| z*q5*^^s~URX(fVNXqg1WWZ1Wa6S}t?N+4XSrR&%{fJ59P(#kIVJnhVJvs@g(k zRNZfSN?BDT8>7C;70{RNMBDg}Oq;iQ$7TuI5EgPD(tGWcHc)?$X=)iw{U=G=5E*if z+7yC2#JFm>$xe=rDSGHgpn;6i8{S2%Y--Zu!HMNT zQodzJ+W>mU;h(oG#~rr)SZw=XtDKA9G3Yod^FQ}^S0halpRGw|jHGQ1Hjhg2)+C?r zk$%XvRO+^dn|X3=Yf?xf?M$venfodD8T7}tetqd}$=H?}^bOK9JZd>hT>Gr5<5@Yf zEyhd}pY3sN@))tlUiV|R?r-RQgnTcN?UU^7q2_U!wLRRVNaglm-wyN~$C{RZNCT32 zNOsxTnJZ>TPMcOpw0wev_nBKu+AYb(ZtDLes!K9&M?%CwYU}J(we)#H(*7@%BS^+e zHX};p`VNv?5X1z4*3ijzqe|s)JxsEJLLUzZP_atR^q=}YkyIp?6@L5F!T3py^ zFS~XJx6Nn7WOAk-CA7T6%;uxH7*6KuL_JPSb)feFG^a~Qb#R-N)U-TI{{V9Jrrl1b zUWWV=NvnRN?K?;p;YZ6rdsS{lBLew7w)|c3-P6zSUr6}9tPZ|g<#-c+6_ULt!Q3mA zd%}Yrq&*u8{LW5CJyy1`3jA@z$kjbFyvIWX_e;oLk69-3_xk(1$GGkIsg&})3FZ~Kwm09b6!#aI5B`IZ zE!kC1!z7}~$NDn7&7eIAE4^t4_{h&+v^Vo5XkRo>?8JQuL1A=1j@tWN{KzK9%djVo zpOo@_;eLkXvwZY~o$*zqwk+QHhG$4(>4!C<= zvp~^bhk06RYh%sr;=MoAXAk|u@lzmC`$J7XN!(vzc1YcRmw8RDBe@|VU#5oq8?9zs zS{krWNIi^ETJDnhUq<>ohGY)0hDyzs(VeH#nrk1ab<__Ka~bTzLf*poVT{eDokdg| zXt$Dx1HmRkdLM{1H8S=*#y?v&nj@g#RvU99OWHFaU8g){vy<{4HKOyx8TIqLFRfcDe)`&hai4K>3g?Py%YcWA2d?sgn!$W1E*AKS6Nh+L}= z$*!X=b5gDz4dX2&;H!MoTBd*H^1E#7JW`r;kOO+2U8P?@v+nk>({yt9J$6XV3F)^lp}i zk-aXZ=-e%J^vy@au%2RcP$9W2vxj z9B;t)rSj{UX0depCdLeqvERh|OhmIebNx-WeUlW`j@D}Q^y8Oq?e}T(Eqq5QmQ(CC zn+?B0HdDGC5BHr-kCr}YUXU@zL(LVLcRbcaN$v3%(}q14954r+C0OOB6*?wUk4N`@ z>D&kv}OtPXrr}q@Tz% zFUqbHfo8BYoCpngm;PEVEdj*#0?ZZPlY!pl_$!f!lcDCg^gWr%s+FFMF(;(qWTY7- z-ly_Ss1%<{@?Oa37^yuK<|ov?v2*tk^}%xeRGeP|wRAfJ>cu08r(=Ucu)dX^zn8hh zK151ShXyR5=Xo^V=F+kXt8=CPbZkg8k_IHhY(G2o8$S$5OM&q#C(L-0QmbSBj-l(A?0 zO|VQqD9JoxTKt$<9o)A;d%I}{B$nP^pL3UCYkY4_FaOBm#g1}nJ-@nIKMIAyt$lOl383> z=*}z3o#4#NcV>^Enw^=E>+}?46uO<6`FWn=F&V>i-5zJgxQy&vt#)u` z$w1jz=q|{0=Vg0FjbX4e+vEJZ$s%V#zQ>czu#V0a?c)D(<|!^H$S*9)9+;Q)H&ZGl zlKheX$Mg8?qEXJGQEsOvV~pE5yb$*tocMMZW)o@AgaSLH%>3N^!ibsIVw-Ke7Tdh? z*OH8h`FZ&sXHj)|L9wTLi?b-BuqY$9x-7>zlBsC89h}wWSreQY6aNY#r`Y2xE~+lg zE2`d*TU1@*JLD=9^CNs3Y;86nZ2h~x=LQL>ssgAy7j zGgOl3dB3l7e!o9n=X}Q*pYu8Ay6zi2tG>?t$&TE~eR(oxB>2B&*%OJYa6-34qTS_* z#IYq_O(Y8bl1OC3LRc6}V{yC=8{_TR3SY$fco?t8;s+B6no0D+9C#PrhYw*I{*Fx& ziDcq5g=So+b10FhfDd9dT!fqna9KR z=4g&Q9_tJ7Zt6dy5$$p!ENKtSPrcU(;_ry>=R!6dkIwWd%!vyyH!jEG_yL+k2QUwI zI~f`th*hZHgH`bbbjF{ek@yPj=O|u@e`8m?;& z@iN?xSKv`}!2hBhWj!69%Y}AO0KHxfFUR_5GPlIs*cP4WZAl6~cn@aBQRqk~pdCy@ zBQZDnIvV0NXu~_v_kKhNb_{dj1+<-dtzSPh9=A2 z=&5MdKSJn>pwCr9w_Q_ojc<$gLpvIZc62}HOsB(m|LMO{?Wa8(Fd1dFgCbnDZ`u=uwBHyA*bQoLXc`Sv^{|omA zVA4=MK;cGw9S!9<^u-L0B^$aDZ@}_suH26%-T3I!=zwRVYyJxQ+_G4I7frs8@H+eo zuf@D+Y01RbfviTM?+XtW>-yiFbVQK2qu_CUC^&hbq^(^UOKxNSFS{;pCJ@lk& zgHEgiK1H(Kf(5A`%)0SZsxRk#4F;QROl9zl1z7y>yc^?J0%|g5$x8Yd4^s=2OMR*?;%#)UwfKQ|KJbBZ|_(WnNI>7AtLg@2iVe0kJfpkJ=-WNTh??RLEVKf&e zpwCUkE9pP+5(TsIT{J|y(407oHgGZ4bLI~Xl|c`d%CTM(jnLI-2W@Z-c0+R_XMwcD z^Oy&X^c&~^S7XvpeMrF(?m!#fjW)Coeeg)E|A{u3c4de_Ryp#KN ztlE&{)evhl?6knt43R+5$lV-_W;_#qtWNk z_g=-NxDE~dfI{K9QH9w5g}Cq}7i{PibS>XOlWAA<02-m==u-WGzL&Fbm`Qmw>+40^ zp&j=|+Z~B^{3KSudH51;PEv6H4lEMZd@`1#{u0{ZCNvVCq66B8M(QZKJILsW7t}&`9(|XEqoO-6L2B zm!ipa0FBToH1vO?AG>L#(-N;^Hgo|0LkG4MJ*q!P*ZxoJhQ-RHCEC0H@1x)dKg7B| zfVHr4*|gLbircXP^{25OZbb)lG1hCB3&}Sa{R~N>?aaf5xD(B(T;;=nYNC;?k4g7o z=Xj$JPNY5n-A*Ubj?SYquTdcktO@#)(tYR*r=so5L?ifWbY;B00gc!f(XY`Y-dlnF zpW5eKaOD4?4PR9;Em0P)Mz_`NXa^(E^I|-jC?Fw+j`^+9MP zCSpr`y;3rC@H-dWuURUGwJd@TtTa0FdN>?gpmQEvtog9;y-6ek$7D zE0{Xk(TVKBw)iW$eQPIchM6=$BhVh5;h=bZ1e#o9(SbaU$8c7>KA~0!`BUijdLAA4 zQgn^iqshDnZRhuR{qJZpZ|xA8YG^3iqf5{UZEzTxwMi_8uc6=Fwxa{RtWJ0@Kbi}L zu|1Z+Jva;Vg3kCuG^uu?1Kf{3{|lN_M{oh2 zLZ5rKUI^`rXwED{+j$S0;OFQUkX-eR5c@ALg3M~C%T`% zN007|tHa4z4vol!=oB@k8jq z-og5~89g~Kpi7efnlQ6YXk@yf1Go)Mz5!^vW1`bBX@g5B=o<8eO=$LRM-Qfh=nM*7 z8=fm0t%V*;*P}=CC^RCkqWgOrx?6T*9sCzf%9;&B4zzE`{`aWt#Rd202&{tB&}?0g z{=l#WD`A#KVIVcoBx;Bb{Kn{Q=)eb|Yo0`xY-+s!JlgJ}=<-JFe@D2Q3x?=B^n3hC zoQRiS7aE$0Pf=ft9vpS94;?>*hI$gZ_RpXlK93IYCG3i;(8y+QoR;_$^P>a*F-gJD zocH{OFL*$#C39>8XJ8qKA8&C*go z9p8wylYE52G75|F8tm3Q+?a~{sINvxKBGm5!~!(LZ{cLzif+p;EyK3F1&zS%XbudB zK7bBrBHHou$kHbh8z>loUExAvKYB)=!4jCiRX9@Xp)+fXhWb{toCLoXh)UN>vhqkX@L&7CsxEk=!~YL*}WEB zvaitXycZq75%d819nG0qZJ40@zX1h9+#Su@{%D6IWBqY75>E<*?M4GzH*==0s% zh8Ye<2QmshH=e_raR>IritR!YKaI)sG)79H6*sfpkP8G7x?KKJ=hTqDwLpo!HChQoW7l$d(T5|Kb$3bDOcb)9vLQ!;NZq9XINt zp}r3*;|uZr$CyF=OLU-L#p^$#GdhB<{TVcO&SNU4I)w=3NAH(J`>B|u;E_2Ho8x5k zg)h;O9*FhBXjY#^XMRQJu#bzN5xD`4RFCLg=yQ*tp??Z(_XRA3%h2x|$*mMzt6$KD z&ZF6!txE`5bu^hepaU3$K0h9P{`q)+F?y75#1i-o8sf898gq0Fxl#iiKx<@R$;2HL zOo|cch#x~kHx(W695mER;{CPJP3Uvm(a`TfBk&XY{GaIincc#3`Otc?Xf?dT{eK+= z8@Mrg3znhY2VH{4(Y1OS&Gyf*7XE@w@yeS*WV)kEIRZ=IOfq5yQ6<&2kHfH4L{or!278$#_CwKdsyom z(E4EPjB_w)2#-^6EzhF+I7^QZvfSue7eP<3TIl_&(E&9_-y4W-uaW3;Gth|6McaP` zUE1a7`)hGDZtlVUzneni+d`JEK$Gl4G$+18_wliKKfP!8Sk8+k>0IpV^LQVYy*(u1 z92`o0IhqqidWH6@p##4jZNG0X_P-t6&xMLO8AswO9D`MQhZ(+(X7d`f!Ozeo*pJTe zKXd@u`h*Xcu~?P*qi8O@g(lxOXk-q>`pG1POfLL~c93~TII|0(9~L*EN9b(qgRi2` zUD7u+d=-98y$PDESN01X6hoJ;JR0)r&~4lndt-le;K?l%9Ke_8zWh4YPoiu4N4%ci zKP{EjSE0M15!%2QG=h)gf;7IEpljV|K)Bx;>r(HG?t)3t1;}&B#5)um`A2AnpP(b% zjs75V2A{`V1H+77M^Cg5(C2rcN9um8hKJ+*0)s+?%3~S>YmZ&H-(hh00p%skbpM~E z;2QmbC9%+uw8YzZEt+J%V_q64Ff`OF4NFVB$MufrTIRefM6duFi6ZDOsEJ0RK03gr zXaw5E>vv!w_x~^ouIWUqgYz&oGxQ|eAL}R3f&GhB@U6SU0QN->M}J2$(Oj61F2y_O$akR)9z`3vh|Vn6@bLbX(RyeEx}op& zh>k$F_hdA8UK!5*ccja?V3w~%vvmua6Fbq4_MjadiJnG3Z2m!Ka{0Y!sXw+WfhO~t z=m6eE-+vd~_n)FC=t*=Uc}B4ReX#6^&|ziFpk50dNIi5Znxae55#7hV&<5^~*Tftb>mvANZ&(VR78yg1x92$`q(BysvJsCIQ=FrD1U zhxO4=w?~t$Kia_qXy_-SA$}g+|F6gU8{+j{=ssy4Le@Tj4qy_RY%icE;tDK*pP@55j!)np=yPKq4+EWsX8+6RfZs-!WE(o+&oSu? z_E7N0@5AT}vP=y7wg@`&+UP*qNBdw2>LbyHXQBIiDViG}p-1r_SQbl93c1n-jqE^d zf-g*B{~NmfT+ox~dGH@P!t76knG`^;SHOB$8*OMXHo_Otnf`#T?Fn?dW_dD9C?EQM zrC6_v4!qrytcfA*#Rb>)A@sz18g1Y;wBa>a61Sl>%Gv( z4aKVX2-@zOSRdCXwhO!fu!13saUq;V`HE6^(pdD|I?!_6@e?vP? zJ{^+uIW+lR!mjug`hK$Fl+bVkbYwTg`fbsBq7&l%+30z&7#+w8G>6`aZb8q5uh0(8 zph=hUOi0d4(f5lWkxnMcP_Uuv;{&bmTI$`=2+YJvxD{>aG}^#fG}{wX!vT{Qoj_4s zidE1Y+KpN87c^2w(4{_$+1>xyriB;tp%0WsLtP`*o1+8h6t9m#XE+s2syEU1-bGK$ zt?~K}bbIbaBlL5;ehQt)znIPapZ08M=rVL<1<;vQKpVIg?XW4@K_4_?Lt=dd+Tg>n zJ{}#|Q|J=R!t%Hnug2|Yj$AsO{ckqUr?3cDqaTkwp9>9)L$i5ubTN7!e1v|S?!_{g zm=Ug*MR&z@=n{2BXWkRtmP6wG@o2BJIEmcnW>K@C(64(caNVu>|)Q;XkTS>$TD}}U(0ZWhFbW;WQ)rq@M+dSnx;DBa-v15FK~yIK8Ut+ zIvF20i#Cw)YB&Y+pbx%=X49(ZPtjb9!u5venK1}Wh9r8(%|VZbm(dBmhfe4l^tl7* zQIb4Q!54BY4x!19K3D=>(@N+_tD!H{Mwg^Hnj5#Gp`3;_@KrP--{AGQ4_%^SuZ1tn zRnUn(fNZN|;&BQ#@B+FvZ=s=k4;{$1czq}OdGiCBGykGXQ1JCIz)I*@Qytr5E%bg8 zjnFi-{l(}$U5UB;r2U415jcc~>?D@OOP7R^S3_THh<9TvY=CR9BA$x(i!2RGRt_C_ zZM5S?Xhgc8k?escZ*MF}|A_$TlXqrSK>h8pQ`b#M;!q!lroXn`x<|sU14dq3FOK zL__>IR>Ij>0Y5?`bPQdxaw~!@&?V}JMqt1S_WwN;?&5+C?MJiq6gI@m-U`=SqdC$& z*6%`-aa?p74yOJRmdBhc!}E2~0k=Vypc}fYdPWDYWdE1o!UJ3|B(u?hyoSE`F8bmY zbP2vd2eKP|?iji~FQV^P{$H5cwP=KzqCdlQ#2fK0tb^|b-aFW^bxdysc6Tu(HXyt&hQQNGh#J5;P=q|{t(62-XvJoBVxAFc#bP125N&Pq4UjFw(a$kkj zs9%FsaM1hge?u~p3wE>s4e{&Ix6mY8i)QWT=yQ9}j($Q1b`o8(KhdQuzCJ8bwP*ue z$o1yvfDWM%Jiea&?^>SbLSwvuhWxq>;rGei(UCrnb#V*Uz<;qOR{bD+3id*iY8LuU zXDv3zD?bc>ZR|EIOZ_$UJoo}_?^u#TEefSJhLfusI+KTSCt0%?J=;fb2_apNo{ZmP zZ7jGoyw@IW@IJJoCD;kS#9Oh{wyaSeBHoNuJ`N8~z|_pqq}qaZ zxDU%!YFUgKpP5(Ipy%zBfKP2UEF&F8M}eNt21sD44Cg(Y5~#UE5RW+FwN1 zEYGKDi56H0O|D+(491{m|69?kJ`1@r5$$j~+V0C}KTGi@d=FE-K6+Is& zqVLZ`b7C2~q^r?^eewFd+|TH)`e%1CJb2xn@L)^y>+x-9Ha~zR$c-m)1NEifg-8tf zJ`DIFbl=ZKJA5CF)Mj+xU!%L@`*{BVn#{k(>nD>G9N8ae$aCxsYg`0`Xm*Jq45QS@eb7Xp$X@o<>7< z5eeIo+ChOI!_2Cp^-gGe1JTd>2eBN^MF+SMbI^Zc7X@c>08_bu zu62%|!a(vwOQH?dh&Dze(GmR+yB%GMLGk`@w4+DRBz+c*?Ay_GnDm8>6wLZh(9j%2 z8~hIqdG?<}Lsy{#sEW?05jxP`(L2%ihGG+Z0PEvgG^b8s1-yVRdAVQM|IWO@FJWXi zpbvIMm!Nm7-;FNOL+Cj%0Uh`&=nUV$bbKGb!Vl0$&NvuchE8lVdQk00cg=-^$uQ#d zLm`QBqFGxCooV%W{rXt%iZ+v|nq!2M`{ z$uY6;M7%K*UBegR_17?Ugrd3dDcaEw=yONo{lCyP&GB29X>oMF*GEI&C0-wfM)ome z>G_v-6dG{h_2|#xMxyAEuq$e!Gi`x}xGkCsH=zUSg${5yy6q;Sp`MQpbT!)HCUihw zp-cCBs?Pq)c{Hq1MRX~eqaz-QcJw%!Y|lhzp&@+{P2Lq~C^sSB*b+O?B>fug_|JGh z%dv1o=RpT@6{hz8)fDWo1y;pgXai59YrYIe<3{X=jgE)!fKxEFB-ohiKcE9Hb|SP_ z9vxT{G#5HVyT<$7F==+*N5O6J3_7x9Xp(%4&iqSsCcDwl{)%>-I2rEeK|g#7qaiPY zE?F(K-TGJ!yP*S`fNt+;C)xkbd;u3++jr5BZb4uC4*e$dH=10feh=0~-)oJo18fw%8GUXz`l&e*jo>p$3Wj7My5`H#P=A4TxG&y6jz;Jo z?1fqX2*2aG6I-US4Y3>7YyA}lFbQ3fDOe9@qaAOL*MCLZOP;3CfWpOi;p($tO`D@x z-X0xbPka~$$LqhM13ee(+5S#T{R7y-=<}n{NIZ^4>?y2_FQezicBK7e;yVg1!BM;s zPopDmdM<>lJsQeR=zxY`YaD|ka5K904gLw+_!g{1eFU0}i_n3*jVANEXl`x9Mt=Su zpkRoKoewW`!=BXpq6f=|(Qnb29mn?g58806f5Y_~uoLy}=s@4V7x8_pf;}&Ub}!)W%W^Z#|RD$c{c zXoM4K>8S`@g4T0k(n0|WGqEU|6mR1a`~aQdko5G_5)8-c)F-0{)jF((zo9cMn310P z`(`cBfxU|+@u#>2zeC$wm>CAJI5Rz&`trG)3qJSxLPK8-o!PbM zOoyY%G!Kp3V)UF?hrag(I*8Wi|jtjN9aXmV-5$JYVh(_pL zbpL*cZEy?Ti&tC{2Jk34z$xf+bJ3(+fOfb6Jug1TGWbobpHEUSB$=18R_x>K_#^ej z*}{uYWDm|lbKzBVfSa*7p24PgHGc`^CVU9JzZ1>&M2-;AOVNQ8L?coTjZm^a1@~tg z^m}=4bbCy|8}KFch2PN^()j1{Z)0Bc`Zjbs?uqqMm!~H_q+T0cia)UvUYaXCb(D8U zb7%sRw8_NV6l{1qI*=dHwfZ~O^IQ=^SrJQcy)~A@L1@-bjrFDIhu2Q@%s+v)TOfCO z>Ql4=8j(h5BwAp8_kR}(hHMbp;H=aQe#?aosc%CMrYw2V6Hj6{^jtWAKK~aw@Z5RB zKr7(&)LWs+IuXr@_t8(!jW`s)!_?3Jt@4F6>V|%;?vEvK68h=)I=U@)p}S;1`fc|F z`i0{Z`YHG)UX6M3hZ(j*pT8A-e_-@JG&18b^(XDmQgCET(3x#SL$n*6*&+0c$OSZu z^AreKUjz+lIdrY7;fOT8aNu3kS6vyBvrNITy9Qu=uFu7ra92V0e>V!13ZSwV97A(&GZ$#nt;-P_g=*X*;NKbvuegQjD-;XXujgsl9f7sF;O|n(!8vhW@ zTPmD{ZEyqEN21%bUg`AIA9Or~{iq*9bE{LbOxV{`a1KE%!}uPqtel=`%mDAMLOZykYI-L?0~gv zhjU>(wx|9&`YHMszK(V4q$lR!e)OOlUDsW}{-005wOoOo?Yq$frc}MKt=gdVJJEqW zja_h8w0!-L5!Yt`2KG2uM< zNl$%6d+gc}x(#U3{)G#$PQ&!XoA@)x1+>vv(& z5Iso2tXzX;`BjY>8Med^aTGp_*ER_aeSxf9B3IMU!DPIddh=!>bK(wtkyO? z^|!N%whPy9MR!fb_TglG2{Wm$jP*5W5^rsv3~PGX4Iw0*&?V@BzOW2m^hL~qojU|? zL66|uF)#K(zlhwAo{;0PGd_WSO72BNejFY6S#;NJP2L!e)?;WArgaQADxybj2dsj9 z(E&|G8=8Th=`Ti?#_Ma)4nM?8a3^Nqcj&l9uriO#52thYov zx*7c}=o{~k#vIhAU~Zg?xo{a8srS)=e1x|D75bTS1dY_+NV~~IM&~fHT-cNw1@T(! zfzEUm+R#GGiYw6*Z7n*0UFZN0pwAzR^}o>P(z}Fhd{wjo`eAodO7`Df6l~yeG(^v$ z4b4So^lH4m3SENr=nOwXKmR|*?)VG3@2~F~?%$8L_Ym6NgyP7B2j`>7@&@+7HE4r{ZVlO66+H=?;!`*dt76XX;p_Xg*ot~r zG)d=0m!sMLL3j4QGy9qgcK8drHmA{?IExM_qenP;bD}eAjwWAM^nM>q!y)K)8-_+= zIHo>q(A_g1-3_bIh56}IA)u=DNGd=ZBhrhuZ)K?Agdj>5YqA-XH zjR%I2FF}`L1r}sLo6(u<8x%r*D0&plncvY|xQIsPvcX{~3ZNmbf*xqsp-VCv3*th| z?~LB1;97o()$!|C&oU$=Q+BlB%drm@!shr8-i{xj+o|}_@CBw9j-viLj>po&!ojo% z=ThH`gg)`$T}0FuU!c$re?U8GdUyE7as#@*pTu20hh1>^Jz>C`(d_>O9mrQ`Bx(;2 zxzQNSg`3gb>4|3jP&6_lhO__OE|0|vPoP;m7d>F!LeKtB(WKmqM(S^LU>C4BUU6^O z1vStdXoo&O3~lELbO~QZ2ecF&z+3mS|6S{k;sd+U{dxf14VfcC_Lo9mye8ThOHgka z>jTgRheea<0H>ide+8Y$|Dv0sU;Cgp4xta8MH|X`UpVOsqW7yr8=(>CfQGUQdLnj5 z52m{?9mk>rcqIB9`rcwR`QC`vlbb2n@ou!E!)WOKMhBAb{&2q>x((~1Cu484!=dOv z#$acB6tBT=(9q`|8SYocCe&-8pB48ZOP@?Epy0N61uNpG;YQ+5bSCG}wfh%cg3JfP zOtPaL=RyZmAYLyOEg$b!K@XtX==%+$O|gvozcqzs+!%&t?^`$r*Q1fS^}!H{f!K=r zXf(7N(fePcOYjRipuaH<|BKhtMunWpj}D{(`d(AaO8<#Y6t2Zv(1ARM&U`nz8@@+h zIEBt2F*jm#_P52J6POVfsJ-xb>> zDfr!O0h)a0u{xF=7e?L<4e_n$67|DAxB#7T`Xk{}trdC@jYd11gGP2SI>B{l=(nPg zK7yW{7m^eV#U*$Hvs#qT6>ey2jhlocIZCFMV=o{|bDBdRgq`{$EVt4m^j`@V2MI51l8_kxzL# z3}hzS@M~!DtV0LB8D0A?F!fa}UO$fJ&|k5hbxQc1P%bRN^=g>0Hx7(u8s9h(LrdtkDvpa`V9Nu2N!VR1ze4O zI(3~I)@WFCQuJkXhU;Vfo9HPtQaPrDh~$eFMLR5qIny~2(a1HM9+u*U>Fjs2_YN+& zZ3bdFydO*8JgkQAqXRvLqcQ!t;KS%l{>I99>5OnL)ImEQ6`d5Fg?+ic2%Sjwmt|c9JiI&`w16 z`#kK8tI_WdSI!SJZ;DJXndnZT7dK|1OK>(mkojWBg{yEd*XyF&XaV}%a&(~U&`^Jd z9@XEY&mBT{#~Wn%3{GUa^nZAM^3~SJHU?;k^htaG*i_X08!ccF9 zMXBG39%h4*4JOqQgunu6}e8u$-BgOy(o zGgyaZsBb|>eiU2cWlO@*-5H(fV>l3}#`-z5!_1}OetvXmN?>)Ywv_!}pTg~2Xpb{- z9R7?wvELivV|gQvrG5%XG|xO;g#ve6uQD*8Nnt}H^g`v!E$H!n|y zwcE`FL-h+f!oOlY^Ubh53q)(9FLuNd*cXl51a!?8q3yhn({Ve_!M-cPZ%{9yyJgy2 z>4~Q?Uvee?){MeSI2o`0UwY~v25dqbsPlGu>K~|Y!u{z{RRW!-k zp&{=P>qF5KZ%nK|j^^4-bSaZdDU_h_DLR8=X!2#O2@jS;cSSukyE{d1iS|M}yc3=I z1GopDz)bA>PI_Vm4nzl1Xl+i<;7QB!9U!u9u;@vQjj_64{1TS&_KSIG7Jb@<79JJ%bXws}hx8YZ4WRAt_ z+1G`7Y4p7&=zAT|5Z{5m_W-_+&!7>$;k|IZ9~N={kD=g=+0i%A6KzZMYc%w~U}-#x zCS9)gLx(ldqqYS);9lsGJs7V~kM(8f?%9TG@ggScQFv#4X!s;nqMmm{Sd#0|nY2XL zwnwZFLuWc3U5c5}1!$<3;N!Ro8)3r_!Vy0jZ>Iho`e9bDc0mb9@@K4w*>{B9PzOuVf8sd`cDx2%%Wu&cAHd4^2aduLJ3}bv z;EHsPY;1^Qz78F&{Wkmzxf|X8f1r`dwL9FeiZ@Yjk0$5Km~> zk47MK4@;27rxu!g?Y;}wyP*T_kA`*>I`hfsu3Ca7<%j4l`4Zh-XTD?q`(Xa>LvqwX z2XYPC;4NrKhoX^KgxBFtbO5>chWCn~^^)kBUm4Hf0(1b+{SXGQ6g^MgMR(J#AK3qX zA^4RGK6nBhK$d;s!P4m2-Vj~uHfS<+Kxfnq4`4quS6b{3_CVVkj&?W+{h@Rr`u+th zi~Rp$s9Ckzrr^72lC~X{{^0KKs80T zV_P($x1i6DL?bdY+)pOnq+lrD4;K=jq1pQ#UW0$4OHkurc&-uJaC^KSyJH=kgNAfF z8o@u&oXK`5{3KNu9mu_CB&K2^_y3}J;{&wAeQ2l)9Zpa5$5QB7Jqg`5A7CNejSlQI z8o~e24s!n*I;f8BrWROa46guFwC)xkYDD34z zGko&*@bUTuR^gyIgU+zT>Cj*mG$PmGdhCjB%e-g81PY=9E{P7LBKmv-G$J>mIng&> zf96awgyvN)xJE0`uUMP0JpP6*P3}L!{R-$o(+KUj6&Atv=!^$q2^<}ri|+UL(1Cn} zMtTn#>7SAm3`yFbp`mJM7Pm#0<{ot9Ni2iY(V4x2elOUDHSj#zV3oh((TsN34NbZs z*a3&55&8gaFS(6^+vzwu)AQ&|@|+FlK^gRVeXM{T&>25~FXMFd`TBo{HEx48+#QEv z635~(T!2H)rKkSGc{%>!`vrghoWGwNJ`VSuPfz_@u7>}H2bQA)YkeU-(HL(+XFLmC zf=|%x_7ysS(`ckJFNW&{(F3g>dcRGy2O5E4Si${&KZWbKFdyCDKg0+AL}z*dUBg2E zg$_!f*<1%r&K79sJE14rJ?Q!H1UAK&(WEt1L>BhiSAMb~sDI^%WdQfx(&^dB_z*)lRxyQnDoTrD*8*Tw4{(S6?^OW>r8jPUvY zIu{J-Hmrnu&~2ER8D6M>4xk-Y#Cy=BoP$39R;=&Ea@5bD123F~5MwR0z3%A!vFLzb z&5{fwUdshT_yszn@6q$%NUZ;d9-)_K%}6CxA#{dS&`@8EPM~SDOSE6Se?O+SG1~5Q zbbzlVDR>}!5d9ddQs0R#LE@6IR+pkb$#lhfI2>=o*U*_|ximzgB09saXs91T-Y=TdaPei&{fzCsV2Luj_=x;!QqnhUki z?Rj&ok3dhl+31qYkG_U3)k<`U*W zG9JgNSSWW!>Mx%xLD#f?o{ZFAPQ4Kg{paX;a0Ff2%)Fu9TI&99L&1IC8&}|b`~Yvv z7n1Rc{28f}t~k1#8lj&NH=;AWAD_k~W@63)p}jol_U?#A@G1aDIVCwJxze&N9 zYc;mS?bsX(Tp2>v10SS55Iu5##OnATrl;|*EV1uH;&ggSPin9OReq*`dzMqJmqL7!iN4tN84WN$&w zfq&8D%~_mX#lY%eKk9u;WTd`1Z9^wsB3UvdMOidNU2q4EM7Lw>QtVqAxF0K0-%&av z^*0{RqY*e#h9$s1(A{try`Hyhh+t9l9I1*9s4jYt-Ht9%au5aA;!*Tda27hVZ_p4O zM3d)lJc3!vg#n*Jm#BF85W(u0+9lD}=)rVLygvrr=8vK6&P5`cOf08hHg82Ea6EcN zg%E+-Xy|*RN9QQCfhp+HEyVh`1Z&|>=sA$TVu(l)EJ3|~tlxs31NY%&?*B(p1^!-d z^m#O7ucDDzhR*CmG%`ETP#-`;_%FVN1uBL2wxK!kCA!VNMbC@hqWLR_2{geh?*Fb7 z?65m#;2r3;xf2cjy=YR6LkBVqJ*XC<5qS@Ne@DE(2k)l-8ycxwtAwN;iY~$A=t4~W zFKw)$U??}Cq5B+da96zkJ({h*pjrMKx+KM`hJjs;SCgb|(3y{~7S{d=^dwz|Cfz1% zjoYy$7Oc+xH$=UvhYp6L^^s^6Pl`T^F2y`7hbyoKev4-Rr8R<=VI}I9qZ4X?MzSfs zgB|dDyrgDE>hB5sT$BBOD;FBp3KwQ#W9ldIcC1l5Tz>{z(9^Hz-)^r~FC+Eek?UJO zB;A!)XCyx7`L^gl3pNN7sDeha9+trC&IozyF|6 zfeU@m4xdCv{vtZV)o4g}qBA>$9?=)k4vIDp_1b81b;cGr7aQP@SPhG`2w!B{VkhcP zVe0pP`zV-nXVCqfrDd3LK6C(OV!biiU`MD-$KXs;X)sDg!e`tM|Z&-w8OX2eZ2`&2NgQ=UC{$r zgZgo_onkkH=WC%8xfXrCCzim$H?aSm(PS=|d^4~KEIPNkD-yCj_#gC-f*o~q9gkdeenzQg`d!U`#U%QhzTuXP1oBFA|TT4b5$bxXKW6%Ac$^wX>-I`T>Az+Oc=_z0chPPC&v=+YcS+dGa%?jm{+6}vTT*Lvu4 ztugiY|2k4|4f~rWNF&z`#Lylyi1ImF8ups(gaWq-0 zqwhED&i;3%ExDjQ(2?DP&hSBW#uL#dktFU3Oeq7$PFumbnjVn_T5 zZNK&%VZt{>lY?VnZ1hp3|+&A(KVikF5MJ#U^C~aq0f#2$5-q)^E8p%vHmH#ga^>`;L@Stms$DHc6$$H|97EqHy7;SBXq>O(9r!EAIvcbk$eR`n3m#DT#lZkMeYh-eOEGc)Qt<(xG@yX(z$4;SEJiz zD^|xN=*M#5yTgns;GNX#U`L#bt??MTban3u5p9J=x;r|-{^)L*n2d#IqO;KKei3b8 z0~)Fw=s|S=jldu1K+=YXdM@;1_A2a-UC;q7$5Lthss^8>UTQ=b$SO2K$qy*F=3CJv z_%3<`pQrv$y#L&NA*mK)8?Nuf3V7B1VSp{r0e3|scPG}s2e1;phBx9aG?Jx9#?SvQ z6kMY*Xh@RiNGGD(vG4=&@<3$W_>t>v=|zJI_UOkg-x&@8tO$@72ij<<56@e zuNWI5RS>ICFNt37fG)vJW7+?Xq;I@20zFC}iVr-3j(7?>zy;_Uzkxot5goub^tt_L zBu=5ZlZe~95c*yX^lN=ftc>H66dciVG~}z%q}q)};x}}F7trmMb6mLJ9KGHR&4vEx z{=O^LM@7e@1D%ZKz%=yaoQ5X;jtfI3gb?%H z{RiqcX*@lA&%YJzXg<0=mPMpU=ek#olBQHEBe9o7_8@N0fZD0?YOb4RJ z@CoXF<8B;3HzTned(6v7%*X66WTgI64X>lgduwujXlM|QG=u!I#x;^)zYkM3`wzJp{tG*Q48HG)$FF*(WGkRoayqubNGEta<$y7307Y|Wy zgPvG5UJ3U*qicI7x`xxy^Wb?j$zDRgXuN}F_s{4+`@R~M=zjG1N6_y9PvVt6`D(oI zKDOk>ZuG(8i^BG*fSz3K(WD%N?Kv?Y!-Ld!E)J1+=e4kFK1K)rC)&=HuZM%F1e!B- z(Hv`tssE*&Ch+reDFv#u`JBI0NP}=9 ztWNa~bm^W&pIe0H#BQ{`f3PB6kz5fTxCVV;XmlLf;dAJ=c^%zmAIIyv(C2@R^?#$e z-wN-QLl35F(IsnzcH9|#Zy?siMbrBh0GSTCI;g4VjpbdS9j_@mVpZ|)^&ELX(44plP10fU{`ly#XhdE@53&vD^WS3$JdN&#yzjFAJ$UNA8y@J2j&umN z!z6aVPviZ<>q3Jy(WSZpjaU~noJ_<R>w&U;U46|+t z@8`q{)C;1?*#upJ8=}K7_2>UjQ!qQHqcdHG=EP=nCcDtcoI|ra`_^#35W2SI(QmtT za0<@Gp$xG6ws5jO_iefUFe!WfOhmO4!~FOMa=m{*v`w)T>26l;%RjMSKl7mzkYi%tW8TUT+NNn*a9b` zFYG|q?(#1)QvV3GFq+Mep^=z_4&V*!h8xfmGyjediQ@Pu^%`g--^K&@2{yo`$(`Y+ z--GxV7fS33f0=9%cBNkXtMKVI32&qRCYn?^zRn2$RXg+q-H*-iA{yGJ--Pp`H(pQu z8T26AjtlV&`Z1rJ@ogw9z${!?imvrrxEa@?xslu*Mm_~yn!ERe^I{}cp*|hm*B`|C z(O56|T}JA^1JDeO*k|Yx?8CM0{}UAK__goD+AhcX)YqULpG1@AV!VIZ-f+<5LmR4q zjqqwLk0a3~n2+YvYv{rDAv&>rXwo0TVt)U>NWqh<=nr9yYNAQl3LE19G#6e&LwgV% zaK^syJw6+@r+zt(#vbVQ{RW-DFX;1U(4;+wZs&aa$u0U%l%-G;Yocq?7k%L_=>VN;M83os- zOSC`Q@B>&DpU2eaICi1_J^CS1{b1M)E%7|{9%z=|d?+LJkIsjoGu?yx@d$d*eR4P) zSic-*|GN!Z{~EsWjK|bkq1$R7`obx6NiO>>gs?JJrrr`=^Lx?cn-lAsu{QPN=)g-J z3C}e`2h<0T8wpYW2~P=2a@M#2yqqkU>c2c@dtF^qmG57n~6r~ zO|-o&*cg9A&zVxk!xHvLQZT6o;COs2)-OE~Mp_PCg8Enyd!lPO5zX!mXp-&5bUch1 zcmzw~32cM8PlhD#fzJGHbg7aPD0srnL33ac+VDHk9q7!DpxZF>_b}kxXhYS}?baO4 z`VQzeyA55!ez=|FeE^40Z*@AX{r`|Jx%~WhCanEUcqb3cz<&5IzKnhT$Vj|~S^msO z{V(V)$K}+!{}t9W+u4u{HSsR4_r$UI8Lq{4e}~V8Ea$=>P7OmN@(#Y^{!jlWtkF8W zg&W^sPpp1EBlT~$pT_&CSNJ!a@$>O^>VKeX+2um$_$jPK{XEvdY8QjO&?TIT|KV!v zt^aZ4(?6$CX6oZWVJ8JO#K|+6Wvzh(d*05 z`Vlk=EzJf-48i4Q-9F$)a9A{`7aOt zb9rX!h%J~aGw~?(ZrB_5U^l$xiV%UR*q!>H*a17{&P*LhFXG+Q&tOaJnMPK{ zcv!S>X6moobuJPb&UaO2>dfzk4&-HAi6?L?E-V@bKB!n`>aX3*La*OkJVYc}yhLVd zU*Cy-IE+9?I0jvcZD`2am&{CkNKM2asjtNaIJZ=oNyE~i{x~k;digS$sjp;TpdUu{ z%4VjPI*BK!zYt6&o+_7_$Y5ptYX6hTxfQp%kv(*3J)S19lRc#IYZo6c+ zy4Dqmknl=3y3vKMN=k}^NXj!(BttYM=YdR3jnW**%A7K_m8F$0eQK{%RGcSNoKaCx zF>wl~N^SP_N*jFtbHfb$MNh6DVR!f!>=nxSn_Gq?w;-($_#{~F;{yWxh-+R4t)L#ZCr#nTX`!va_vE`d6eRqzhD1L{DB zUaB4;X0_LaDmQ>?mjD~WtjE~@T6qCQESzQ=EQjj&Ak=$!5^BmWK^^!9sJrDR zbi&)3>tf>QhCUb$2f<|63NC=^=c3IYY~CoMqLGEQux1tx{m9W!9c4gG-2j_Ipaxb5 zHHG700M3TGCU!zSfbL0gh918!Le1D4HmBMYsB5n1BPtqzw6sz;A8Lx$LA_VUp+WsgKdSLwuHP!V~t%pw|sH?s;jD-16w`n2NwXp)K{XVFH*FYv#crZ? z(C7aaX$8e>sHrZ232-y?z{^lO{tk5!Iy0;p)v?(I>f#$?^L6+T@+9~GEP+|@I8221 zKVkXp2t&{R-c)pv%(ffm*<1TQ3T0J32%E zmg_1UkKxE1E9Ez!u6pOwtZMB2P-oJ+lePZ`L(SlDs7LXuHm5?}6(2)=(OCy|ZB#*h zG5My5N<%6!&sc_!LtTVjp&l$R!XPZPS8?z+4e<_V^nl;T!8vz_!UTo9e+X1grmE)2qU4c z<|G&ayTDjD1Zw{oP|tx6piX3|&3!h%f%=|sYrf^DH4Od!&j2bK(NL)Osu1eHGoYsU z-%z*BDyX~R9MpmSggS8D=d77WK|MJeK-H&0ozN3dPrxov10D`_jl2g#-~V4kMI+t@ z)$v)V+vpn9#d3EKD9bSRDs}crUw=NUv0rn(h8wVU6sOW0%3)SIxs529& zDg4CNuOBEk7Wa2OM%43B{~-lS21GCLxGD_XxI$I0lwMmI_GLs>>o{wA5@Eu9|aHh8O4 zEln}2#Z&By$--_SW51>=kkSC3Be^GY=<~7UVA0#|sZWk#T53Tp@6dCk%q$LXT0(8L zrF5*pVjw+okOxt3Z1)~&$1}~g8zI%j+2(nPUzQQp0h=~5Y*~uQm*QnX*9B}_(s!d= zTIM&M#l760dM`Fj(Vu5NX+$s`KQY+6gMKlwcSh#B$BqJfJRRmHbD74KD#MmXo0c+d zdC)b8_C3tkC%cyWkneLjB7k{7iqU9txg!VN6`F^)lHYYzvh0^N;a$surMyI2}b;b=BI4u-!g4p zKOE~NeyuMi2JO9eN>5P#kZEcup#H5CtPRBchuTUp#2(F8S+xo<+n|K!TQ{`H_D2$jo&arjJyu z%Zqr1wtI=B2R_`4qa{hw*N2;0lDj_7-4So$w4bN#PuZ|uSOo1iM4I=d-v+O_MJ8-W z&V3OdCHRdZ240gK{Tcld{bn)d82TpRdm1)3k!z60P}ee=`e^L5Y$Y>OkhPqo|0wZn z%ry5&*Nt9tO-5}DM0KQB3tBJZWqrtwM?9W$rF7%gxO%j{%=j-d{vEde7Wj7ItC)+w zCFrP>`I|Z{C)$((ITok$ZFf!Q4;5 z&tP4A>-P|5$*|JAsN-mPKMR#}#I@IstCO57O*XGd)Rwf^!SvW^-}hs-?Qhuq6a8)? z+asg4cuktj+2S|PNZFQXcYu}?c+(Osm(je9rp(UHRPk&b6dQp?%OX5{#N6D-b;!nc z>faO9WtqD*Groe_D*LWl_AF)OuT_tt6QdN+W1P6R1;ZY~$5WEN&F_AL_P@(7Qn)QC z>>Qf5QoJqC+#_LSK2IF-*Yu8px5CGyd07whoy;ib|>|$zKn$g~YTury-eCnU0Unm7TrpLXHb`Ilc$+7QBZ7d!_U(eQm zATc|$JU^k~@31=fzPe*N;}y%OotY+5%69sr;*h7{fxpe^sKU!e?gIZgnu*ypF--r> zN1;sH<%{V~O-lkkv~))9&S)2?AC!t+UXv)_?FvNvgR%ZDW4J$8a26|xyGNJ>GJkit zYYzRkFwP1o-JNM(m#{rU&0;Cs)91lxdh*R(M>fnRnxS}K$Y>LgN8?5RQ8mx{zxF(A zW=Q0ZAlh2e5=R*K_;To1@Edy~R~^f@Dm zeW3~P#whdm2V5y=rV?udsoI~^ zcr4P}_Lf>n{Qxn42HSEYZ>4`v`VK@MKvZjyBc%C(Xwy@24+P9k8Gj(sIAzX(1*Tk5 zD{=}>0Vd^hQ*x_Kr zlZ>S$!)}>N&jZr#a28LqS%-T>48ZbvM$!_nZ8nRmG7$49Er-cP1=pR#)Y{HVG5W2N zQyFQVkb=rAcWq=X`gO<4Qda3TBjjAA*VBoSr!iW4t_SekQ#?n4u9;YOWW4#(?ugg) zkb)y=@#nEr=c#raUy_@9P|UYuABkS8Nm6+vXikbb>fB}KG#dg2l3ZPT*rg)v+cOldVyUZ zMeh}VcZb>Z7%9DuXGSf-Vy_*`GW+0|4nLH#;}gxt((a37(_Y4Zk>MJJ;n1^S+mk=sb;8ApMNxKt%_heeMw88Q#8GFKOevr8*QcQwW zpGYyNdfv znx`!_zU2SEGFR#Qj3ct)Y;yBA(T<~M96k7Pg=0CbyRg#I zi?)8~|1M>;@d<&Bo+z$M{Fiy=JsJOHxT!C*z8t|R>8i;zRgzN^Z2TNO`RR(I7d>jQ ze%GGu8hdPhKH(U_sKa$(Q1YatCfxi>cGYZ(5NwvvKbiQoc&UFbv(6>)no)i(I^qG^ zb7|{i&sS~M$@Oztv7cZWh38yiZpu|3%Y5$ia@+Dj>34pr`>Y+qvv868c|OggO6rBt s=4IJ%A=9)LbJ1t^y%BeDUED=;HE-h8mbKPhZF$Rrnsx6qaQdJ6AHr9a-v9sr delta 48192 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 diff --git a/resources/i18n/ja/BambuStudio.mo b/resources/i18n/ja/BambuStudio.mo index 2ab4586161f5872614a4aaba6e63d032b094ab6c..0a6feff8c28758bdc7db9068c11c17e2bc9b6a61 100644 GIT binary patch delta 47687 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 diff --git a/resources/i18n/ko/BambuStudio.mo b/resources/i18n/ko/BambuStudio.mo index 78744cb1aff0417dec50177233ab185614471753..90533405115f6857e3d6b40cc03996e65834c23f 100644 GIT binary patch delta 47597 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 delta 48029 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 ZhU%=^fnF2p|6!1w^R9Wi8Uw2q<^Or zg@k-i8TCM8jDdYoGjLInnPfj-iyF`|RKpiA8s4=2gBrkNTmNAFX7zjGIC1zq2KJ|a zCkX|GWD?fGDYpKv^#LZ~`XkgpzhMBzeQN57Py@(>>Np5B)BG5P5f~GXVp2Sddj3AT z>i7wTaD0XeW!h(ENg{AO^(k0e*PnZ9=5)iF)VHA4I^c!5UKW)jqilT%{!0B{R77jP zG)vkTlTnX+N&Ge9-du=R>7=67#I9Q6b)rYWM=`xqGOA zJ;wz29o0^}cc#PCsLw-C{S`yC@0O>a8*5-kY>G+nI4W6gTHjcszc-;zgSsyawe3oy z*0_naHL9b|sE&GLJRcp}&nJHLo_C!Y6cn1(s2kT~dfblb@Ndk9?@=>L^NB+TgRv=& zLp}Exb>Caejj2AHiB+*Su(rW!eBJ{SY5yOjplrN|>fi|$!Y>$(dA^t|Z-qsuFT;Fz z8y91eubc(A6~l1gHut_15NXT&#(^a`Ln2rTtO|-BdmzuFcX&jX+Cd;# zYA6L(#q6kD>5WRdVb+PL0nbLQ`Et~K>ur4(D*67z;&=&*ViG?;*L$G4pP!e_4N%$M z4%KmQTOWy;sZYZkxZT$8VS4J(d}csdP}?;ZDslx-CtW4f#H!&0lC1%zr2Zfp=buLY zBbqUGbTjhgsC}9l^?80&E|kJ8*aJ1AtTFt&cSZr!Kx(1x>y9;WDeC!mr~&*$Jr^sc zpVJjnyA+aB7>j9fF^1q?9E(p;yQ5buKX2dnLoLlT%#JHjYkC$n)3;a&KcSYQRBY2> zWz>>2Mn$+Ssvox(1#O!pSOSmZV2l~Z&)Z(3F$47n*b}40_4AT13dd9b9minqcqVeY zFe&w8s19$UBKZh4@Gqzd#f$IV?>dPnC^YF&YaWCec_GwDOQAwm9kr&-ZM`RI+m1kW zFc+0{>rn0N#3($0L$FK&GqJ-sRP}^@PG@bzBNQ~VJc<0A?zjSbVamjQ&Ip`{swYn3 zN5(tOXw(2>CpDo@f~lz&KnPi_4JszJXLCIZn>4JNSlRJNYU)cAg>eHyT|A2KdeHK3_Li@iL1�^=GP6F2ZOWvd0!}+VPWbMu>c-J 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 S?#KP3@^!=;7Px|9`}`NFu`o#h diff --git a/resources/i18n/sv/BambuStudio.mo b/resources/i18n/sv/BambuStudio.mo index 09b1b1888bbf4a23329d69d8109339f6cda85355..efe543142cd9d3d744a95a730b1cd75fb2f5c34f 100644 GIT binary patch delta 47703 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

sS~4WrKW8u>rQiEvO_*T+X&{7?z_Rh03J?m=~v^ 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 PKGq(%+uO%&^T7WDSm-$W diff --git a/resources/i18n/hu/BambuStudio.mo b/resources/i18n/hu/BambuStudio.mo index a13f061c0834936b8f34750ae740e8462729b4ab..5c4c25b43885c8d80595a8031ba9c21a3bfb91e3 100644 GIT binary patch delta 56588 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 delta 57137 zcmXWkcfgiYAHebZ84aZ!LgOjzy?5Gs(w@>zsk9WYZdnaQLq<}v3!x%uDG?zhR7Pe) zk(to&e!urQ??0b&&UIbqI_GzO=iK-6RNlAmD){c4g2}@LGnXXz-z&KiiK6&a&qShQ z-bAAE^R^}ueSSzJF2cTe1rEg$I0KvEa%_uVV?8W)B#~%}*CE{`R^Y|B1}EbtOvCC& z6N%=DL^4s6LQ5JZV|jcXtKzqqf%%Um5{xZT7;9h&?10x`16+pH@H4y|vmXyH%)%?F zS3xJx9xui2(Hk%)?@!F6ke>^4(FY#I9Jm3U!8SB9d*bzz=zwzk7&I|W0s2d~Awv3}Kw&|U@$(OwQ6Xd}$TPO*LsI)EYQi$|d| zor2SG9_GaCCy65FL!U2=Nnc!nLUpW!hH?P9B=hiI+>709|0%U*iI?#j>c69F-RkGi zeixb}@5K7IIG*}dr$R&*qf7cIUV^Ji3*ad%fr(#25@lgQ zs!PzNdJZe&%UA`!LT8-&*AR)q=zA*RWmq43V7Fh1e_IMq)8LGM#{00wZ;3>2d=s-{ zk>A6bmB9SeE1?5!jJ~K1dS6%c1-)YXILu4^W_0HFpc9&lPIOt4f*rh!xo{&o(w*oF z_MwsZBKjj5;xlN+1^)=ol|%mUA=dOn%>l!Br85xwze zERJWe7+!iNktmC`(V6wfK{y5n;%@Z0@_&c>YGMuQebI^C8+|zXG z4jW-9yenRR7L$f*1BI^mBO1yE97jIb5{*c2?2IGPkiLp0>yGG$=ztHRYyJaz-_NoB zFPfYgX=#b8u`o8m?rCYs)C2d^U^YLDX8W_~i(ifPxA7|K`>_I^iS?4{X{nI5Mh7$u z-G<}Q$W290x;f~??!$Q`+rwCddYSB;e~$d>?7aU|qvmeXhF?3DyEp4!4*d|>iN4@-bm@LV`}qf_<3;(>61U@>=)^MfrzK`u z$FXk2Yz4y1CgM$8IEs_8Pr!2MrM?4kW*dJ0o{Zq`OTO# zdl$tED{&U}XVL9ct$cVjf2ecI($UFEG9*FHbYle`2fNrlt z=)g~+Grxc)^X0WdKh@Fp`q5-}3WjDJ8p?U-5-dbJd=bssZCDnMqu<@~)eZygh(6a7 z&4qs02?ygLd=VYMtU6%{m!kuG5s64L@g@Zy{50P11^U1VbjE3Q!wd_eFDilFUm8uS ziugFzK$GudG_+r%IrB5x&pB+4dFq8PAYJha_kVW^*KuJS`oJEvqpwmoFpyZ!RzK|b zf>@60S7Iq_i34#2x^z3Ed(fpli0-EE(f)tI(RcxKxc^5r2rry~j{G(>0{5cH^8~t& zH=zUj8|z`VhT-IFf-Xr<^sCiEG%`!j0W3q4?^(3p&C&gsw8Ik=^bGnyW}}e3`Ot%@ z3_63p=zYVZ6VZbyi5|@x(TE&D_jk_5VYd{)+SD7P$#)Z)1M?cQ|2-;K&|ng-!^*f1 z&H4-I4-DCxq$Mh1YjhwJ&<_5G4(R^qGIZOmLf3p7dPMJy*AJon9*v%A!v1$Z|3!l# zy5j2aJ-!;wqTU7V=rf#$$Iydga?|kQO=zg!Mc4i#^o57e0e*))@H86P4$aaM?_*DN z;3bpI!;Gq;BWs9$8n(a=*e|v}ja8|?h-L6gycW}2q$T=cPaKRdqe)hvW!S!1*phlp zG?%7g4ZI)iC%K)%ixiGwLtN4-T-b|;ssDwJ{L|JU65pU9{tfTN9Bsn3T#RnZhtUWu zM|0rW=mzvW*@eFN5VG{i#D5fA(?V^-(OCjLqibOn_KfXQ(V5LfL;VPP9z2P5{2Ut6 zH_(~xihhF*>>u>`|Ip|1wsVQte}yO%r=cu5;@0R4d!jEI6WgbtOLI3m;K#56u0m(D zAIqVS1G%(A zT4D@VMekpV&Tut4kd5fM@d@_E0v*#5Lvb{k#2;cZJ&loeN=y9~?6S^jsow)!hc|M= zOX$FgbqV{oJUZin=o-&L2eJT-$aCoZ>(PT|8@eQ)p%eQaU8+CP=d*WZ|CgYUuWQ)f z)zBIALqj$i-A3bM{SNemoQ=Nd!RShK`@Rs}jz;V=EQ>#(OI)a12z^cT{s!HW;iua! z@xnOtz?p)EdOcRcuj2KKt_eqMesrLP(Y3q^ol!+}?Q5aA(+E>Jg+{1nyna3Up3zAP z9+}T!D|{b)Apfb7cZL zfZ52vl8GlMm=x>K5x2uj=Ubuu^@#OB z(Q%mH{Xc_(9o!#%7)w)MiLUKC=vsY<&fwx+;ahNNY(c#@8kwc&Qm(@+{0vR*Gw5@d z^$tG`SHqgrAH+KD|Mw`kmj7WntkEYeF%0{nGun!Va3A`D(`d&<`UdM`7wUbmDL#u+ z@EBIZf&Ic-&qwR4@ml;GlZK{B|FD+z&@63@wqJv;b$@g_PK?*5p#!=L&4K68TzL(> z?^86QU!eW`fG+JRwEutb7R)w){Xd?+uMBU)!Of;{o_7^_gh0_8t~qFbG|`k!Z+gpxbyZ4#ua^fhV&M4+F@L?#oMJ zy&AfmUkW(BG?O!M1OP_+=NEr zW^{mepb?lG+n>P8-TyCAa7}k%ZTu1qeSz`eBrAc|tD*yIjFs^>bO6OC1j|LMqc3iN zCTlBn0KL)3T!&`=1WfuNa0dnV?+Wx_*^1`EVRR|}Mn_)grqE#}w4gQhUiSX;C(n4 z-A%us1Nakt{$F(8=bjW!&}wL8uARjG_r~Egn1o|611F*bnTm$~4)jB10lIHjpdGvv z+jpSP@59t~#WB>6#QHUpLv9R0`LFrIU4c`SP^SsB}@*AH_Sy}ycC_m3iN>&(1E>%hI|`V$NlJ< zXWpEaNXM(9Wzn3ffcDo0?WZF?fIaa=Jb`W8{|`?KUp~J^8WQEEhmXf`=zd*^9q=^f z=1t9RVMc7nPX9|w+)ev{+ro^#!?o1&%m@R06CL;`Xhgn3lluqs9LZ$q^Sb}9q~Kcn zyCAKLZo?K>7;i>HIS);?r_o4kKtumNniGf6{r_XU{$Fe_bbA=+Rak@TtMG070)KJ; zubjyX$hw7hgwU_PJ7nz!bO7(7$@Ud`BL0e5c=0`9W>s(w_1frtThW2;L$m*TbijY2 zOOkU|m}nkMI)lq8_~UmubOx=_ecKUx;V{okH~5B7*R3`HX{A=d9g2e2@l#SC=B)fb*OJfJNg~H?>}sS1s)0!>KN^gMxsBuv}4eLCLdz|8-XP>*wKsVws`{` zz(-gDzd>in-%v<(a5);{Dro5Iqf65SU7EINPIX0>au7Ozo6rHwMDJUYq+mynp3~gvi}ap zhP373LTSw6hPL=GjzU8>bVYDtbY^q``kApJ`bPBA=&x9o>$x8fpL#XX2u;R(?*Dlf za9Q+)=w|Fm`v>SbP-+ZCfjm!o2)`-v;{p-cA`I+e2C8Y7`imSq0c9t4%;z1nv}WG-B1j@uM9en z+URFPC%?;C=tF~_@59iny$9Xbi{p(Cqa8ejOK=@}U;Af5lJ$z-8GSkW6?)L*dN$-p z7CMne=y}pANx>NnL}zp}noKj%185ogz>8>PUPJHOj;`tZ=s-V0@Bai{k|Stt{EJ4i z=5yiGv<(`Oo3SY-lN4NnZP)=nL}yxLRoHgr&#5 z>mqE7FU0mA(HuD&>-pA(WGor2i8pY)C6>cA=>4CqW&bHztPYY^Q{j*SX_tW zsXu`JG@JQqxUVFZrQQ^~;0VmZSJB-044uFi=t+4T9cb>?Li=Utz)DB!CS##pyrCcZ zz(_O~CdKRbpfh_IoyiO6Hr}zd<}FPHb9?mg-)+Qn$(YA(hgsv;4avLRq+dS+vM6BB2o{1QFAoJ9irEw5$cEL$T;-AThJHXi4JT5 zx?~TcOZg_cL?3Ns|6BN+hLv~(9nh?8A%yp#*B4_mT#knPYrGoIq62OCX83tvBvz;X z7}mf&=%-*}d&sH!=og)S*a~0Yo(zB4>^u!+XlTD9L}EPFp*|mL;#*h_|3YU{{H?Ua z$0SWV^lZO!R|x5K=*jp$tc4rV=YB@}yX4*Qo{o48^_!9u`cilcU9)2Eg%Q`p+SG5r zD!2lB;dWp>Azqe(RqePI&a-|NtU9z>Hd{r#|AbD&Ff1^Qg_s#s`*spLU-!BBKf zZ$z_oI=c3A(Y0NKuKfyh$<|?Od;?9c#0Oyl#qb8I*G9LX{g(eQ^*;Xo9|b#Zg}$g0 z_QHYa$k*d1?23)(efND7u0M!PsQ-*6S*5+9;~LQ>cpvTU@c zpN0q(zyj|7suaAj8JgWw(GzhI*2A^v8GiyDNXgH_3o4-zYltpgM>InHu@Vl&ws=3f zy$_%RIgRE}`2*~KJ7_||r09aKX>atb9)p|lHgrG@4~7@_!%L`-Mnj)OUwk*(-+U~G z%kd_B2aRz3L*YHG(fhj`V*lGwFB%NxSoCMTyU=a*XuR=j^uA;0x8w8Zhfk5u(-K+a zMkU-vz0(&V5*L3N23!APzb$`&zVJxA{&TEfK$j$${p;{xAvF0)<5k!!whu!? zJq68;+33ud#p_R^xv?J2nNQG}9Yyc|6HT_9-^2qB9cay9GSQNPGw6Y4`55#|<`d|P zHlxY;78;=s(53h?)=y$J>Sv>sz6~d4|L7dF{|)HG_Qd+{n9u!x(RbnV{&FnK4UN$e z4n;#W8J)>YOyvT))-R$1Sr^@b4sc)eTQm~Cp&w%Zp-YkL`*2@D%+LE1r6`!Cwa^*& zj1E8_7>Z{77&J2XpdCJrhWvSSz+2D(>_NZ497YG4_CqiS`dl7tjzut8k3v5RCeiN+nDvIVp8Fb*S(SdcwbR2}A;Pq%E>mFtQTj+8$ z%xnaDQr(Vb@p5#;Pohb*23?Z3(3$Ry?cc=uX|%s=$HJ~EhAu%vbl~mK=X+o!y#81+ zgmyj+KKLA(ByXaj`vJ@03G~5&$HP*UKo6wm=nQ+K1002h_BM0^+tA4DL!A_3I<~jR)Cr2_!dUc0Gtm3y#p@5DOZp-@(KpfU zo;*mwr1~>n$a^A$wk*2#b+G|z6Q^ef}_b?C%4 zp}Fxkx@7w?>2^Cvp(_4`hN{f3VSm>|N7@`++x}=sN21T&iWTq?G`Zf2euh5xBf69s zzl9IAEUZYqDOSfDeq;Z;rjOF#f$|m_;*YTlCVmey?TT%w_CiCr9KHWpd<$QT^;`Z3 zNj3+)?{RddtI&b2K_h(-9pK?V*#8#(jyD$kGkk1bhK8^@8j%)g(sV^bJsurEGG4zA zjnJcb9X^Y9VUE-Mp>`VE5PMSJ|5q45g)?DEswFA-sn-Dgyq*v*%t1R`j16!_tRF(x z{0N%mKcfS@fVW}pzeD>Rbf8OPeKiiEz6rhmihsgDlI1A4FRNfBY=s^i6VMmjiYD7U z?23!gWcnTr?aycge@E}X_}{eDKQ=9flc`@by(*Q6&pv;Jsu z4aFun6OGU|G<*NTftYzN94tek)6kjShn?_IwBO^g{S;n9{VY1r&gat-EByQ)M4>Vb z7trLZbRqmztG?Ku`X;P}m;D#Aza#p?=XGdKEXSL1D|#N(<+IL6c0^xvGdlCxX!bve zb#MlSCo%x5 z;#_os8*wroMF-YDGd=wKpRp9)q2X4v!xq`XfZAbe>Rr)nUxFspQ|R_ukM5E!Xy`ve zXZ9sJ(}LO4Q@PXxJvZ8+=fnW?x$)W4lc|x+q`@Rwgs$-mXoqj0yJ8o*1mB=DE1V;= zw?LD#Kbnj~usx2%iTDbd%%yXN{;Hw(HAa)NdCp{b;b0n^(KsxPH^=%iG$K#qGWPNF z_$~Ezxx#Z5`5P$?xIUT-ZO{RZz*hJGw!lN!3yWSHu1`XjdS#M=Azg)bv=LpKU1*37 zqTBNX`o$!Te?#x?D1)7`C3^ot^!_JsJ+6=Kqw}Vxw&N}6eQ)7*`~+Q!)8p_?6g+F3h%vB&fUjwaoLO;AFVL7}X={K3! zK*4SE9vYIvXe5rJ-)#OwLz=5#=&(N8-W~mz9gSV_8JvrM#p^Q*h5H{u2fh{^=zG`{ zk7FJ8fBC{8DF&e*pF?ph-ii+7IJ!iCp;~L|k7K_p z(-SN4ESAK_iiRZJhPP4w3U9>z#nMy%WrX*zi}m8{f7fnx@$|%e{1=Nmze^mYk zW>IgM6%L|d=x4%eT!_cf3EWaLJ@vKwN9;zuQmL>s|HFRNpFxu@?W%A!xGd#$LaVlw!_I~!$7v+H0qVhr6)QN;-}H= z`fK_0)ZZu0TOkbKUi6&Vo}}P*JBnuKr4_^Ws)H^?SFDS7Vi|k`eefHsjoB)N>kZNR zO=yxngWmrhw!~j>H`c10p8A!}1#HFulbfpWAcb>P(-RMILyhX`so&SVhgsBX*9b4@ ziMLXphdnT7&9Ec`u`l%}@ftiI+q>3EPkjt8!J)K&hh~49+F|XJ$hnYA?4i(!3#ajF zY*8mY_0MQ$;!^6B>V}i=9duWmK-cmdde)b&7Y>+l=ua$!^+VVlOVkfeLXYHK zSj+vNt3gac72<4f-Ua}>(s3r*8g|8D8Za|UL4<} z{wKbPTid25zQJU>5c0w8L;EajN_)Ewp`Y1UgZeIXY5$4sZ91kWKB9g%p2D7;*#C_v zwCWr#+>UOaZe7BW`yOUeKNRbS(QH12u5Hb(AtKYzrMLsV{}Wt+hcFvX?-op=NAulS z2xoU=|9eC(qroHdS-cisMn5hyt_d$FjE=lGy8TX}M{S{NLo${}+q^^Nr#(HG4? zKO5%8>nrhM>aSt}OzxnNkHRNtsD3~@Jb}L8Eczi+pht*Q3AE#iXvFHG+o>tKly{&r z-HP_}E@sC===X+i&;k65^pi~F=oua;gmzpEy|DtipIb%;qo0PiMVFxWzlaWGBl_YU z=!8Cq?O&oxa0H#;3H0muuh`H1pSxGs|0B>FmZ2R!fp++O^i{N@ZCC_%VitadK6fFS z**h#@E_5ITu_Ttl*4PR=;#|z*{{M`EA^HJ*;AE_y#gC|`_Xz{}7`^@_I)k6kf#&EN z%#ZeSIhMsNG-ukP&-FqhI|BV4a62X|QCLjDj<%sUzKbT)LA1l4&>Z*!-REij!c3ZD zE$Xw-NNqyzdmG(V`|)}_jP}>8e@NaQ=t(%bKl^_kg=cA~g0%;P&&`1>?9G2uNbV5}z3zMxWl%g;K z9pN1GMfal}J%ly!@#uamO+EYd>8ZbNUkP^*!o%p9zjA1BKUSokZ5T<0)o};Dj017f z@N|DOl1%KQU?_`>Oi%2^hUksCM}?nW_uygb=dn6|IXZmd$a6z_>Yve%Lli5V>4`pPv9UthD{Akn{nZr%sn`r`d+*PJB$wp(}(yd^^6H2^efP9 zxD$tA=1t*6qtP!elhOVC3hwtl?2Zpl3eq*fPHzgT5e1HZ!eg+-k z>*&niM`!YR^knp0G|$vg5EbXNx_q838v%I=m4IJ zZbBd2gC^hp*!~kb!2i$}<-IvXt^_)eM(Fj<=r$aHo{Y25_bo;Tl6;cFwG>ukLp+a$ zzW%gu!?oC)dSCRj;!$+%ccHuDeXM}L$M&Mr!$h*srMn7Uf=cK_YM?K!iwr24Xc8~9 zk9LVSbVm=MerN|nqoc7j_3_veA3&4$ATGrt=*(}wB}C$WY)gG58rdJw>*uhL`#<-s zVMHY`jSFSbwJDD#RbzA@gV6^^qcfO>o)1ZMAe+!7{14p?>HiD&7eOab4t=f)dM?z) z)bIbBQgBT=q2G80peNLH^u@EV6fQu|?sez@ccU{pjK1(U^hG&t3rm;>&4qI4c58qx zNnfoM7i!VMJc;3aehZ=-AcE;^78;`Ptbf&PjnQ({JV?qamP6rRVL=#o@tclqKb zXs-Ba+aK@3zW7a&{ojj1!`s6Tl?%}s9z{DikB?!lnPF+3!_L%Kqd&O(jV5KcJHm_p zhYoxhx+@;XruYi_q4OK|!LE0PFRjnr$wJOiEiVW=mZ``x8FK6CtgSUP41>($9vHO=1Y7XPh)CEv%)u( z4QK}+qc1vuRq+ru$DFhIjR$tX)wl$^W3xHo`U5zG`e)c08_Z4pte8wBDLBHdXfAw) zGqK9OAp$RFmaKcYboM88H4o@2_1bQ)cXj0fYV9eRHW^qeS%zPL7)$39pQ zXQC5(0dK^eI1Xz*6e7FwA@;wYUN6$%Nq7L=9z`DxR*g2p+i1TQ4gKEO{ymz6r_mhB z{z&)~ZG)Yt&y4QD7Syj?nx5E-gYbJSmV7k)-Y#ufdg>n*)J6B@2iO-sMrTy{vGmm6 z0q=><=n$GKzoC)%7ad6Y^02mrup0FW*aQ2b{j9+ncmUmH$%|HmP~3|q*+b~bwif+v zxEE_;wa3HtA=rlcZ8!#ZqDfkPWf)jvG(tV_CLD<-^C5IekE8ehg)Ch%k^V%uAs=RO zp*T8|rqOQbnSVWAi!a6Y^e00S7DAJ+8k)3S&@yT{;N*G z5H>`&MGN$#>x1UPKwQWPG#<-QPkS!RpaOb-9W-(s(E*G=chQ~bfR~|b{Yz}$zbf?e z6IOHo7hWCKx)okWeL0rE3+POWKOZ7e7jLKD7HxkQo!K|h0xyJLK(;`}n>d4>fM+oa zOT8F=8g7ZTso#RBzyJFZh5KlD4V`i8HQ|N5(QP*hUAsxx7-ynMv=z;TUvV|odnrBj z50Sq^uaA8>J@wy&T#ml5+AHa)|7O%Myq)^5udx69xV&j?NV=Km+OI$d@-iCI9he=z zj@OT(13H7Ac-hv4bKnZ}xpL@|G(ey45$iW$N$T^^Bwe#E8D6-Z20Qu~AH-w$7|vK9 zzEl={H9hsO*Eir@w0C+f%w!+Vp+0a!xc?Zgq<;77>50WyZe#dG>iLd5@%njmX8AXTnN&iL=FaGI*Q49*X7uR32aVk0=u$q5 zZojqYbIGj~49Uk>B8}hmq6bjnE$ONM?8X&nsMlj^faux(Dca$0=>6x=fu?T__vb_J zFNS{HR*&rsqwRux|BDU7&<-Zzd`zMp=h+tbIXdEM=zT5GweA+{L(nB0kIwuqG*Zja z9M~A!KSS^P6;nU|XL~c;P!PRP4PBd7_$>}WXVPkW*w?+$4kw@?pO2;SNi_8DMh~E& zKZ>3QKcfT7z9YOR3se97k2)0G&t1`dKN5XlmN($zSR3EKZTJiNq4m;RVW5Z5`Wf_v zC3l91l}Dd%h4w!PjmT6qf(tSA-~U@q!8Lv!=ix?dh;7~up8+$mAN6n0uV{_l2^}oL zanx6!CurVXA!#o~BXcDhks8rvvArugq2asO{|6{6rNQko@!c@`-kB-ob}Kpoq}%XCDEnm?pcwf@Fs=T=#69c zgwOSR(HTF0hH4MGD>6O`e>}Gk{X%gLTVvC`Ap&<}E$W|OSIoID+}8(<(4#mOPoO!I z?EP{0ayS!R+cnW_`$I3yGW1HJX7Y*Iif&=b`)lB{aLYqoMx--G=|511bJlxUVKU z&{k;HcR`n;KaTSAe=r3fd=Ib3Q|L^)9SH3cuqO2-*azQ5w^7N1A$J<1S>6{N$S5?l z_u%dLGP*=H4y7kJBojAd4XpDe_w)Y5$ipFP??#W-XV7mnJJ1<^i-zzl`dQKS>oBA1 zurl@0=*%8OBlsj5u~*PYZNw^R{Hg|x^grK(foFcp{`a6MNx>{`h<-`DCf093J6ed& z>=CSp8)E%CG_;BDLZot`2Te6>iEX3zVhidYq4yX3K3Md7_P^g^%hE6atKlCw51sk# zKZF@AMc4E>G^sYDxv>wu?*MvE{D#gr^GJxurRaTEp%bYPt$}N)H#m|EFZhWDL-#Mb zmN}0GFT)A8@-1j&XQD~G8mHigNeZrA z%j4mN-O!m{hjuV2IvbZze+>PGRO`nO>Q?9g2B1kh3A1o98uIn%c0Ge8Z=Mt3`Uv!T zaux-@Ebc~^VhX)O}YoG&Z8S6dJ92tR)@Gdl2-;CGyM!!RI<4cwYV)IjBAQR9? z+>R#UgLtL;|8WY{XxNPIhM&+}$o5MJZ6P#?Dxxo_j^5u0{T?s|9l&hdfm_giZvQp> z1oQ}YrJnn@5V8K~0LEf2_y5$`FcV$#d$Ainj^@U1coHw5S$^X8umtDPCCm3mNXjDE zn|d>Jzz-uKPAtcIcn~{d{y)Rtlp2J|`)T-*f@?kfbQt+UG=!_skQMkVbWjc}P`?h} z!a3L+JD&;d_hZ8}4jgobfBqdpe*xVUdH+dIJdL%`0Ur8?{hvwUYZ?sg4`>8_L0_Et zZn}PNW>^j#cqjC}A$S$eKtD5{z`D2vE8(BXcp>Y2 z_+H)!9eGct=x#ZQCgFeRt|)pTyr?ev8FCF)#0ltbc@*EkE$IEp zY5#>#EJ8!L8a;~l;oVr3)8PqRkDhqF(=t*&C%lEdsDGcHk^0nZn30h>V3wih!f9-X z*)uazyQ4WefvM<0br-VK$;49>9LYv>g!|F8IgN%aPqvKIfm0rHQ*VeSVH>;}C!isJ z3Ed5EquXx}x`fBj=YERU|3;TGEqewLWdG$&75MQO9a&v8TYI5PaVxqMi_if*jD~bw zY(I?V!Vg#j3+Bj3G{aVy9q&d@*m-CK7NAME98>@P=NSs#xB;EPR&;H5p}XM=bi}`6 zXFQL-sAJBI)Ni$KLzDCi^uAN*+Mh)ya>Yd^ zf+p7mERR>_3ZZX>c03M^&|<8PtI^1Ofo{X>xx+xJqV>+`(oR8_aDMKLWNOVf&|p>{ zLf10q#Tlt1wmABtE?5dDp(B3~9pLk5NOwj*MnAs4!F>1&y7vD?bLR=yFGC|;Hcv8y zx>~%@63yOg(F0~E8j*2mlHQKKU@6-1s_3iejJBiCoy1o7S8Q*THzW18--cr!+Lxo} z&6y+x*Q8j!5aMglZFmcsj4N>tZb!4dWB!cPUpSnL*7u_)W5EI$sb5gGMwj$0tc!=y zT)CuRSfaLAoBA{yhRGKxbfHkNP<^ufA?Gg9APN8xnpYtTrPza->L3-pD9 z(e_)>99V*8`I~4`zKg#2Q*;S)U7FhN{P&+JxV@UAYtj}k!ft3N`=Oy8j*s9?xCnD! z7S?zHIB#L5-R;7`IR)TCepHefy6 zf@b?^H2I1Y4-u(|o(r|n4%(q7W_N6cQ}7ym4ZSaCiHy{*V2h#=xeq<4p2icnACta# zYgQP*PBfIe(KS1QX6f&E3l=FEX0{mJc2A*6x)$9PAEN{QHn#tPMyOD!jMN{&UX9*& z4|=XFDaHQhU)Cko#tTbJhZ|O*GkG0-L9Q~vif9KN(EZ&P4e@C7oVXK>$aDBU?nWo{ zVA&9nSJ3<4MkDxj*<{Gd6Y)Zca$);5z?&J^VC>C}2g_%qer&E@Atd8t==NHLZohAE zHx{ZGmhdnx;Q31{Wu(3#JzJS2p#CGeD-uXRTcMQ6ReDRtA~CXq1Th$V#9T@VKN$`JJEqWhK6tz znp8W{B{_(O{BJZziq!}cX^FOvMAvv8I?z>E5Z^@m-H+A%{Qo)>68US!a{%3DZKKzr zXZ_9Sxv&6TyQOH7K8<#`HeTO~4*1>J{yjQ?U(iTruNC^Qh-=;dEhrfJ)9BiqMMIrY zJ0tazOcAV4y$3q5`RD+iMnAS+MnB&-paa>2hISV^z|YX)oQ zxbn4ePVEE+!^Y|w9pPOc+{^PT2nq{PZ!Wz(={r?viUThwc?5P%E4Y!~(dk>Ao zXIKi)p;=v`Wr#rIXg6#|`!MvY*VE|I?L>Fe577%~E);1Mma=-1ftef37?E7IILx)q)7tckPWHna9&1m-jghn=hr;OD9 zk5KYT3U05Qox>88M3bvA+TImSqETo>#zk*MBQhJk?|F10JJASzgRcGgc)f6!@CBy| z8i8Jz<^CT>p$QH5V>A2^J@N8(4Ih^+u|DP(5bTn|n1u4v?Lz|`OWnNOi24NK9Py^X%;AUfhRvAuftkmW7W7v716{vqsz zFQd7Vqepl_d-U8Gi*DmP(1Yh*G*XXZ>fisqKw$+9yU{P7H}niIScv7QKaCIJhiDEA z?-gD=5q-hE=$fvK?Hi*Xqc1#(4&W>rq0HW4>GJo^NT$}X6b%))P#c}uAav~}qLH`- z{lf7G8oFoEj(4Lo`5euSlh_XH_X!8qOmx7T(IkEkUD}V(qx*+G?0;W)l7@ZwU%X*o z-*CfG^hH0T51vQ2Pr-hny%_p}Drh7c#`bR5jQU_qMFy)<--tec9G%b~$=HzAKZNFD zG*m^<5tl?qS`Ph?sfu<`6HT%vXh)r5y&wAAXe^22(E%<*`&l0APowuG*HUmzUPnW@ z6P?MYSRPMe2P`}wBe4drL$Bu@7{2k8MrZa5x+{tg3I|PNbO3`f3-3U8!;{f{$nN3) z|A&GHM~Uk~NE@L`(h*(j>(HdU1Kk~~(EYm^-A-rGB)xQSs9%i^q%V4|+>F=YtJoNG zTp#*xg(ckoeJFJ1!Zb9L@1P<61YPs5(KY-Nec{DJ!Z)09=mFFTJ>v(Vk(q{N@IK7K z_2>XUMf*RGemv(M%JaNGaR~+2vK)GJ) z@H3iAb%%u|Zi?R55zUG2m`tZIm_jBFMQ1Py&50S&xoGGgL`S{~y>DG?e-Ce@{w12E z9fpVJyP!+k58d8Vu|GbJM)KTn_WyhemyHNBeHvZ+omf7N6ABFQITJmq zS4H299*CYoBbaS;uvoNCv@^Oy!$&7W_TEc_+5QIB!0*xIyX1!OAygm9*2J*rUD2na zJJBTl0dHX7xyOXum^wB%JGwOb0=l$Yldq^d7RAkrs&$QN7s5wbT_8{aiFLb$>EZnu1x|4js`DG`YrM7Ty(o8eM{S z;`O8GiFOX%6&aJl!1JP6UJmWA8ajbSvEC0I@CeNA{+~u6brhnZy&DbPGPHxI(E+`J zeirOPLwW#f;}7V*zI<}n9p%s@u7M_DYb-!c3`BR)_$e8we$a2Wjp@(Vh{^3yU>e-EH88i|EC3Rj{t&NV%pjK$GhX^EZ}gV0EhicXI0w@+vP zyPxOM;K{cZ4beyO#_!M(pTgVmcXVKrZV3^(3!T7I=!ei7XfFMT_LFgInAoN0*a-=vq zkVv8z?x_!{{2GLPwl_NBB~D3A#khFh2tsg&v*L?+n{> z1^OBCCc10h!a4W>+F!4`!u>a3cj^n!^W_KRdNOf76cPpQ4r^HkeXtQu!>;JszKibT zGic~8y(he|G`gRwpwBhMir5{U$c%V>Av)0~(WP34dEEb-C>X-`&}8}+{o-&2v#`#r zaM1KZI~a%#~Q@#^d#JcF6{~IjaSSGzlfZOsXzaFje;ZHj+OBf zbVg}&Lwg}KtIMLhq#3%s2BI^bhCV+J4ebhaBCp5#9(01o(C7cdYq03O@%#Tc3N>k% zhi3OSG(=yaYkCAdh)$s=-xc$M<AHx@6n22JS;6mT_Nb zzwAD?lQS$wgC|w>XhU=$t0^PBwJJz0nSa;VU=+eZJI# zp}hh+;5s+}TcHD8iEZ&cY={LO%HWUX+5ep=G^1e|w#2W{BeLYf;bV0?-a`Em?1P0L z$w>V*-5aqw^$)Q$Uckn9)zT2r!C0R9tylq{!oeiZ9&As&+KP-s8$bW2Q|OLwVmmDS zc=$7+fp|6bg;*E&;uy@aG9&fx0ViPz>iM1sFRq3z!B}jDui!NN9o;Qso($g`=AZ-K zfXU_*zNFwcnc`1{ldn6P^$RhzozSFw2Ho#3M?Z)jN7p*@>2QBO%%WZ#-F{8c1F0+e z;^F90&V8Ew@0vVBgD2eAXz2gJ+pz63Ao(od(7%UHsL=E5e>*Dne6TWZq235j;Xk++kG~N95NYF!A@m*A zgd_DR`hpAS*?-YXVIp^<$-Dxa;=1S`=q{`Ea=6|tNx_3)7@FlbqiZ-1>)<|gd**m0 ze5#c~>z%PGj*9IMp$E$jtb)g*m#z(=ZiOzvHPMmi`;xa&Fcgc>Tv&$J<6(5Inyt%7 z{cH8%XcE1G9z-9ZGd~{df1n*+ygnoGCzeEa$EB}^``e=Z4Mw-?-N<>szyGG-8ZJRc z{sPX&&(S0q^;%f-Dd^hHK(qcH^top+3%6h|JdAm;&W3O#x5SdvN1&mfjs7K-r|}E- z|2MCPHQT%~oY|kD51dCMQ{s&fx(ev7Xo|MCMhDmxozZ}JeJDD>(P$3LL38XebT_z7K2R%V;wHfSwa) zqJ_4G2~Voj_A;gx%jvh7W`LY48ieZggbl&`?*|9+I*troQu`Yd8B?UuL8=YZ0G|NX~CfzSMLfl8x>uMRcL<$P157&fPY0Jb`FhTk#}Pbp%ZO|ssI0vp%hG>>F7X~V`_w{ z8#sv24t~YvnD$;6Kua_U$6|H7AC179*cd;G^^13hqxwp8w{$?4dMsYa`IDGKp&vet zZo|a;VGVOcFF^-z6>?-IYNH)AK?m9o&4KY~4%`x5fabz8=zZ&B`+I0)zQ)x5|JT`g zq0k56#tP`nu12@t_2>ghtc;IhZG0Ci;(7GG@*jo)w86gA2cQ#s4gGj8uqP}*C3GTf z_OSn*SyviNlEG+4lhF|`LTB_Wx;?kV`Y-W%wvWP6T!H3BOLQr3L~~*hHo-U1U2p-- zk>YzpWXkSk{~Pk!G`I~Lp#$iF4rn5p#rI%MT!4Q3zJ;EEhhzOObh{PU7p^x%BhwSj zncLClcf|J7xP*FE^5cxeND8lE8!Wy*92~>38})n8q&k2u$x-yh7kv`8X-RaOmO~>| zIoblNQtyM_KMS4c3N!-Gpc6^1q2Ns4L(lH7;tju|GyfY+uJljCK=NQc>P4{u_COuBzDDHWBdE)iFg=YsuSpkTgEr+|Hmj? zLcve1bM*&iL)ICPgyMFx^g+)2R!EJV-v_t2T0 zMb|3(@1cWY=!>eO?RC)ur!%_0Z$JljE4tklqPyhf=o!qSe)S(=px0pzzyFV-a2*#W z;AGs3hOG6UVaci9v-+7UF!yzg+0;z zJQbVbE;JH3GBQ)YTq=SOQg4P?cmTcrH&()nGBZ>Az7Bd`3_y?K6-f$?>~&1Xy_kXf z(JVfIzVI(}&Ff~%Ohup_+ChKx1f7ho{hjE*AC9g^BeNIHiJ#Hr&XGObpS+BM4^&1! zB-)`J_CP~B6b<=U+(Q;8aSrt^IWtp#jrJhA%{pF`nflJR2tD(E!hzT;S7z#8Qm@Ci zs9&2qGqDRVy*M+m(fxmzLKY1V=gCYZ$wqvX`d4U3r{@hFBOE!blog7S2qafX|~Z z_!dpd+LvS|TH#P^j?bY0?@v5M!85(t6`6_2g!l-$B>jqpkxs=X)PF&@O_gGqscqLC&5_w?4n2$Ya2qzn zGgtv@7LU6C-G;ZIyKFfo?RYx{ljlEl#Dz;_rv89nDDJ2JDqhUM=453i2IGSzGZSO* zOsUM&-w7F7Ix}%U_Z2J?BK8D!puP{+V$rf8CqBaQ)Ekt`Obo+S07?Up<7j9sZB{ z7;KKm(WIe{$!HEn-o^o3|Ty+R@gQ#<7c$ztsVCN5!_6@Or6ZszXkga z{m|L-|E|sgys4~t;}s5o98)w&zX7WojLdBCTWtU6+DbRV2+9&?q^QtKzR%qU&%V9 zH$izceGSSf`3Q~!Yge|8fa?^K@)7_agF#iSTWO}M)>W_vT!P=TnuoCrTnCN<8&|h3 zuXCW>_zKss@@s(4S^L-YFj8wh|0nPz z>y*tr+z-RAKzVS=+uSgzI0P zLVd&`JM(C53FiXkPzHd~NHMS|SO$y-yMS`}T>>S~yN!iK!OX0yD>egV=bgbIFcK^d z&H<%?qb??LZZCkcqX)YF87#*7GZ+R2wDoX*E%$g(cJK}qe#%hmkY@trR1^T^jwJ|` zjTLKWotjFZJXW*>g%=A-zH1N@>0}I80h|HK6NQtYoQlVw9NLedoZCF@t-Iuspyc%i z<;FDtlp`@q{cAwU-vQPFPlK_bX9w%nKL{k>Wo%(0JK7J*p*ja{2XBLNE+=>NaKCJ} z0c^yY_?ayb><}v`B1#SoPK&&Epj zj*2AMVyqo^h_&wf9iaQ%fpQ2FKsiDaLAkXr0OdBbS=Z;mYOEiFMM1wf>rgiY2N`X7zK=2hP=Qymdhx>Q89bjwLMfzFKYKMYO)~CQjV6}Mb z`NCIl8|x|w){%V;wqu>s>EZsHuozJ8qFs-ejAHT*lyjTV-@~{7&IQB3o&&5K(J4?8 zu7XX$=ejO6(8{X=%8k_l$~|DTu7`rM^Utja4jhJl=l_W4z_NDWk9)cRs-dFuLFusC@4ob7Ic6Azl(|N zd?zRm5;s9PM{hyd(Fafpe+AQmC5BjymIviBY6!}0ARLr?ywRZCZ_Eef(Q~)1FKhe_ zC|66Wp)@4dzZVlZWI>>GRuz;()C`mcdMHMyKNb|;XfP#cf^v^HS8*FCJ3kBBz{~1? z2g+S`hGEu5eLz;a{rW1uv26OK2=;5bmO ze-ms5E(YbuyaMIidyepMznGN?l)MHbxc((D3Ww}u94G=4LD|79P)@~sPzo;wrJ+^o z-=?@*EEO-P;L;rx%xW_2#K0hs3fprN`?m2sc*};CGY-}tT0!|0(gO6QIq|?Hqts7Gi zD4jI|C80eiH#)nnqcolXx^HY?e&X{%Id%I%$-4p;2JeA#V@x^5I>r8ql|Z@CyF!@A zgM<^5TdNC{TlGRv1onWk^9P_@o^L=oci%waR~c&^flyFRWd~4>SQk+E13YE%+78NgD%FM4Ov8`nV$Sz2a8&4z4eGr-+vU`6>tZUG8=A zQprihJ}@%Si99SXhc^LlN$njGw_x6qo{v4Pbr{e|>Ud@oi*&2LC9E1=I9C z6&CJJHWCc~0HYY(>Z;Ka&MLTEEIdzR_>(-C-7Y|MnHjR#KmS`+y|g9ybjB9eDM7JW zqz^M^ZuSb@&1{$DH1@!VCL@G(H1qPBouCa(Q{F)Qm83AXm&V?M^WYx?4>Eo+zijrc zexFvu7$xzD%_bujr84v|ldMJfT9CDdZDhiCmL13+_%>zBE6k8BUalQv^K`>#O})m9 zg{*%eL+lLml*FE*^nv+UMm{n>qtcEslyMhjF*~`b;5{L}jGV8;l8m=Oj3TUep_>N& zW#%vGvbwyG{UZ}6fl-nO?gtA&`lJGZh(=Sm6TCIVl58vS{<`Q)URO97i07q|%5Yzh zSCg&IfRm5-Ec_d2OdbJvbI*uj{oeye@^l1ilPI={d46kZq(o>c>slo2G-qxt?ucV{ ziWUQ5N5SgDC<5ym@?sq+_sW{Of7XSco>s(M#KaonYiUi5qWDU&PO^!t_n7&&dAase z;Wi^D)qW?up9*rfmV$o&*ILoza#S|cNg8qv!kLd!7H}j!u@`W}@}kon?r++$_?E%h zh_AVFak-442-uZ$7teI&{UMzKBfv8hD$o2ZNg>RuYk?`6GZ&7SJa2xevFWV;LAO1a z2cIuv0`W%5O$}y5?@gLGN#!?xPFFv~=a5vHwfxrby^2jE_LSri#FH#P#jCOFrX00e z>b%AJ3jWU8*lOKnycYcz|0;9&b}v^AJRexeGkCGHDBoh#rFte57myhUN1iHlhxd(< zl5VCD;~R;LQ0?RuyaRL>gw7PL_LQ6|=p14kCa)85v6*ydkc%}iHnS*5paY_xAy(65 z`Q7FO>m+L;N!UyEm89@MxQ|(XHV5zU_4A?4=}FswJ)9B_RQrIj=Jp+4B__b|)h2vs zXgV5Uy0+B05y39NB9-}WhfnS~=nSC3N|-Ly7UoJb|IPqcQ|+}4RTiLA91I}(k7S`! zld%y_e(n7}@xu&$kufsiKSul;%8#{&IMqv}5-(a9-o(X1@$;snu?yb@_+r)4^0aL* z8)^WFcdgv^fS>m$)(c-1^T|#hM@!1R!;=mP54@YmD9qS_e;ng1rP?Dawu}*ld~Mdp zQOphhnzkhIg6Qn#V60`{4gW~EHQj#w&sH z_|gEMSY;H&F3`zu#Q6WVMn^_GzHVT5#xXkOUxK_k)h?*hZiX^e$@V6m;kabbwUswl_?*UfFA5P)bti|%f$xV}D_n9x$(-Xt| zclla_P#pP`Afzxv#46E9S%d}L|WJlVl?eAn>tnz8%MqXrZ!16Mvm-%h#tDZuxJ z8N1;mfEN+3s7>@{o&vwvGJL<1_H4Yb?ayAAWkxagg^I{wCIoiKjKk{owD)NrlH`%qDV_-85#to#7;VJ3Gq_vn?1w z{1GvWFI&_` z${pQoandF+|A7)YRq7MCjaH7EqxO4++7WB2+o}k=EyD7v+bewg+~wF1*&Q`IC;pWv zUPU1l;}q)t^Vfr13s?zM2E1N z4WlU8ykKU;;A=&1X_9qQn<^&0tBkI2#rDBXvhj3zk_xREd|vTCmWp*pR(a9#VO|vN z@*0nk$Mcl5^nhS)Ml^vG;0%1cMrlk#w67U;(AQO+)Qm*Z;FVVhm%?aG^cmv-e!Cn> zwF$}Q_lb+yLAh5;vY*jg&RE0PMt*AD(s#61Qr74XgDkH;Y?Hrp{SM+tM6wd}NmgJU z4IReMmrJ^h|8j49LL|vLQ*;pghFah;_yLV)==Ea!!~7Ar9?Z#^lh+h$ z#&^mci=LD6*U_IPA1^u&`2^#v{g6MQDc809XZ$PhpMi4@nQvOMHvYvN zGF~t?wvuxLtV{eQyl`3$rIgrDtgT05o|kEE2YBza)mdqHXFIDNdwB`EB*pF^Am-1U z{~Ygr1J&|y7o&;a5j(1RGZ4&#|GGBM%i)Fx^R-}3v-Dvfv({k`v(e#lp}ENtTT5Gu zP|n6WGi@DX{vMS#jKyT~&b?6w^)AdK;2(ycgV-c6yKZ9&{@zr*W?nh$<+?(2m-Z$V z#747zjejTew(Kd2Dx+D)wI+oA_42-GaXr^B_8GrCq1SKOWyy zy1GwX$_>MZ$?J^#_JeqmePQl^e2LM}9CgI2a!X2#B7BIvGo+nE<^`-K$p40~AWX3< z%>NNC?FN8B=7l3=U2S0Jfq6ozVvUKMWQffJ?fCaGilX>4>V9Bauo^jQ$PGhnB^AQ( zRpJnSW8Rca@bBe~QRI(@vlf32G@{^?V?5A~C}FyeW^!%EC-#x?4*iR8N5Sb#{vzhL z$=`?0H^weKO~T(xtTTNK#V@vtntRCE09Iuk4|gwmN%oNS33@vXzd55Gu@ds%GIAi& zRawPp<_H355f9d4y;X#-DgKXLfVU2jA@FwNe~fSjZA3`zm@g(ToBH?&r11saP+|qi zDa7D&m;6Izy^tzsk>U_KA@~P7*-w#2%sW92V2CZDkXSfP??zCp6uc6w`95Uh5xj<= z*cjp^iN&KmoJQpBB(aeco(+F7I85$<%d)5gN&X%Db_Do1fpJ|$F5#cZ_>qSCAST8K zH4VO~*JuHE3o)?@_*&pIb={Tudi?9q9z$*uZTy>Vq%2xPXi8pK{f{leA#Z?)6NR^A@DWeG`;)`Kx()M%v^|MRYgAphBN^%Nx5uB3;YaKo>sUIu%e(^fxzzZV z;fu~1bW6ZXAQqd7`^M@x3KOhKf$NMr1dCF1GQyvT-DG``=A^$W_=mtL$q?&BY@9aU z18$O4r}$M0bT><%@M^q|*&&!dR4GfOG$?ii%tQ7duo;ScEZc3o4`iHHRdGBgXAG4G zo6}AN`1N2W7NqP>th>N?hVQC*;e@}dG~4XSsxvi{Og>&E){|bu8W2lCRx`LsHk>}* zP`8j)h*$1LDs3iK2V!yNP2glEZ#VPN=wwH`7+O^=ei~ydi}hx|lfKnILmfzJ0ci4u z>1)<&RbI;GBK8N{U5xKAoL$Jah9l;0o;g`E>TkSa5onIrX4_MEC~7~F`3DMOz484; z1JXkkxGQwSWy!apD4#8yMQkGL4Uk?l4l?rNuLnPqX+Pyvc?*4{XO$h*zhPe{vkFx% zG8fxGOzaN+2HNL(6i1kwPX(6#13iCw%uGfbuqE1YWUQjMNvwyFQJ-}#-A8LP_2~fb z*}5vC9gF@Iv-)Wt*Ep1KqO}yp0<_a;#fSKBGarY~&F05>?aUMZGF9pUPcG?nC`IDm2H#2S zjBcwNF|h!A&56;u+b$A6%c7ALZ>??%KC+i!A%nLeu0;F>g$`3Z9SQQrb{FC$@Xug~ zjU@gUpV(GLg!$r(f3_MZOn~t#(Jpv1o8D*rU8mrMp_{;AXs`Jz&~2#Qd1})wh}WTJ z2G-x{hPJ>DW;3JpKm?)O5apg=FudkyB*3YuTBB9}HgU0Ze7Cysh_+fW#43{%4=ERf zmLz?_|0hE}!*+~D%i~YSx||ASW?r6=oAq7wSxWqV4}YcT5D!6XC4sc~_GvRI+0Y8! zTXlbguqp-es=%K#@qzUvlFPBv0jys!#9G1Wi$5*#%IsXM9&52d#M0yYN|DqIvAe|j zGY`-s=0(weX-KTDXclDrNk;>5X2Wro^)AR=S=S_S3b6v_jdKBwf5)=~#$-(&MRcmR zu!s41TG|9QB%YSCJy3~e9Z6ezS?6ZH2!2De_IWQ?PgcjN<&XX(GPX1K!k2<|cik*5 z;}+Sc@z-TOkn9Z_+d;K-Y)0%y=2NNm5A(^yt172Hx$^$&TVh8TIqBjp8t>&_8tZInEjGTqM=qVqej^KU5bC|y%9M1Y9a^<8yv-(9J?={To z;QgD@qd<8l`ByXQVxX%bywZ3tlfRgz_*{$Io}yD}F@9k*lUA^r zK=&U%4DJ(u}G6_#G{=mdqPyMn8Pv=-*~<{IQAK9;;MiGap3vtKj^D!Yu7FL3id$Wgqp$FrST13;1GnRbvUcm(}+V9pq!3 zk}mAzo%Jxx@XLNBj^Y#hoBSKhmlKbo_Fv2$x(kcJeT%vIa)9eQI;cqWCb&kk`;fJP zF782%rg|R~`mh!&uH78bPJV>j-3l37nD0cRnx6YQs#l5p%lIxZGQz2&@$Kn(g)Gqw zx#Ht$q;d}An-TVamKw}T)9V=hSZ6^_9*DZLeyh@2+4xL*SI8|*ECc1laxjLd?h`$@ z)8N&|zZ9GacOdbla_ygC|Jzlxh3>I4N$nv_$KQfc5Pwe=DO^pxrYlkqpte9I?&T4(rc08tF#c>sEuFjC(@;I4dP;t zDUlP$YW!k@@yoO#Kjtx?!8p$-LWO$hUQr!4nIA#aXpH_tE5AvS-)Kpae5&dk1;i?n zxDnDriv2=Tb9_C)Nr;N=W8MpVs{C(e$Tc6&&14lIW53z&ny=qwR!iXcaV(a@7u!Mc zQ`FjTuD|Bn{H@i7(FK*;C?92AR4Z%+b20jn@jXhj$r`UQ8}l@5QS2e{zo_Y9X1ng? za-uMWdi7PgB+(?BpuJ85Yv7E8(~bBddaK8JJ@Yl-IMl@asM4EQI;tL}gPBy!ta>Y0 z{|e_1G!EjM$M8qaNUO;c33_Y6fe4j?FcaUu2!2sNOQSCWBPei2x0984C;Z2C1H!3` zZ#Sc;nc{|5%uQxucd0ZDR(4uBK!qLnzoE1m|5D<$h@B)>iP-?FCy?KXrwr_}wDlKd#0r_&ZWVWZVs(z3`RFc#&A7B5XD#{5(ENyhl_p$foh?~@5%kBB+l_y&aNw3_rs34} zfd3cx(Y$iY*PfA#dsH2RYH{!l8FR>3!ic28GgWJ>Rg06k4NfI05;m5wenV^(orRJw zHW|EzZ!)pcX7k%VuI6OirfyqQr@<6!O!O5)thq>G9`KsO5u3yKpmAA`P|ip>^x+x}p;{XlUrI($!EP|Atj(`+Y);t{;A>aT;+Pw?Boc?~Y3Qf0V{ zXyv>f9B*>E5s%ZgCpFgN+YNuTy#KxpvC%5{3GrKqB-vm{|I*Aol4me4NZ=ktFHoch z+^5=T2(gd&rZPHfaul(NXx*cjSS)$`S+3ibg6)Y#rtiZW6Y6|N@_M?PuIoJ%*ho?+ z;vJYTC4K-Dd!V~ng2){Fx!{$7mx6hqZr~&M1HL}WEol1P_wk%eTe+#w(X4(yFjGC^ z709_kzK_}OzL%?jvd^l@dtopS1K-izk1(gRE`-KveEsqLriY;e{y644h~)*V5u1-* z71gwQXH7gS@wtra=(QwoE}UEZnX{X-f<;$G96_;C6cY1BumH(-7(;3M8u9vwh<(8) zHVgk~u!(5s;S&D<&T$3u7vPH(2X+qb_vB4w3`3_(8tOYB{DyF5$P*xCA!sA{FoMZ# z8p++&HcX(uW(m@^Qic* zIqIQT`4Y@_q38>14D-f}P}KLMl1=w`6O^|H`&tG09sbNi->4IKIxya&H<64HU}5x2 zqO_BY6S@xvv0nI->;$n_^xgxuWKfe94P0&Ta8K? z$Xv_r=A$mwo~-n6uAq_+Up*>D!Yi$6osxB6WpL+4d@*{1;G{tBI{AgkU&;D4wSLl^ z2B{76<)i$r=IDNc$ydMjQ<8D&ZFkV7^&E- z7eT2VD&g9r_z&RwM4m6zhvFZP?<4ac$=jqF%h67T)`Hj^+c#0_MKxeU-li=%)?T z)??eB;6?-ro6Vp3yK0bnft2qldx7~UGqDE~YBcJR+@tDdy-jy8r+ zp(yHN$Ke)W^wzcbhU>xW33oL9gDDL2^)t^*AJNHyPppBN;<;D0>oAYQI86s7seEx~ zq33mXcXK-8qwLYPFh_V?j3dF85ZB9Tvpa3h$fyLH(-G6x5pQ?)k9P#y+D7)r6X~!; zI_%CcM^9V0JvKJZNv16_&WQ{`d+dJ`-D!Ir3sMXomN~AMZ9tSWKB`w#xIN0b_mX$Y z(dk@BBr9NZ3<`HRdM4Oz-B(TW`$7vr=$6L&g;Yy<2OgKgmniF^9=;aJ16 RyIb%{5xjS9W{<52{|75_?REeF diff --git a/resources/i18n/it/BambuStudio.mo b/resources/i18n/it/BambuStudio.mo index 2853c06d3566bf3ee9bbd7e2f4fb9ebe5f206012..4746d5c94ce493a310201cd8f27f1e52d6110aa7 100644 GIT binary patch delta 56583 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Ḧ́}sk&)`3ptt~(SJ4|mxjW8)@=&}6 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 MI|}?vn!d;X06JVO6951J delta 57186 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 Ck-g*q diff --git a/resources/i18n/ja/BambuStudio.mo b/resources/i18n/ja/BambuStudio.mo index 6642c3e37542c8264b78f758758465b12ddae190..2ab4586161f5872614a4aaba6e63d032b094ab6c 100644 GIT binary patch delta 56588 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 delta 57123 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 diff --git a/resources/i18n/ko/BambuStudio.mo b/resources/i18n/ko/BambuStudio.mo index c882e65d35c30c9ab30c5a8ce850b10fbef11a7d..78744cb1aff0417dec50177233ab185614471753 100644 GIT binary patch delta 56110 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 delta 56721 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 diff --git a/resources/i18n/nl/BambuStudio.mo b/resources/i18n/nl/BambuStudio.mo index dc869f5156de92628e8547e9de62c1c30d7d2cdd..7aaa0f9ce3d853214dd0ba067bdec2e69276131e 100644 GIT binary patch delta 56583 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