mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-09 07:56:24 -06:00
NEW: replace gcode of ams load and unload
Change-Id: I89a1f3e6787c4639c2757e31676dbd15b17331ea Signed-off-by: Stone Li <stone.li@bambulab.com>
This commit is contained in:
parent
d31250cb40
commit
c475527808
4 changed files with 122 additions and 13 deletions
66
resources/printers/ams_load.gcode
Normal file
66
resources/printers/ams_load.gcode
Normal file
|
@ -0,0 +1,66 @@
|
|||
M620 S[next_extruder]
|
||||
M106 P1 S255
|
||||
M104 S142
|
||||
M17 S
|
||||
M17 X0.5 Y0.5
|
||||
G91
|
||||
G1 Y-5 F3000
|
||||
G1 Z3.0 F1200
|
||||
G90
|
||||
G28 X
|
||||
M17 R
|
||||
|
||||
G1 X70 F12000
|
||||
G1 Y245
|
||||
G1 Y265 F3000
|
||||
M400
|
||||
M106 P1 S0
|
||||
M109 S250
|
||||
G1 X90 F3000
|
||||
G1 Y255 F4000
|
||||
G1 X100 F5000
|
||||
G1 X120 F15000
|
||||
|
||||
G1 X20 Y50 F12000
|
||||
G1 Y-3
|
||||
|
||||
T[next_extruder]
|
||||
|
||||
G1 X54 F12000
|
||||
G1 Y265
|
||||
M400
|
||||
M106 P1 S0
|
||||
G92 E0
|
||||
G1 E40 F200
|
||||
G92 E0
|
||||
G1 E-2 F300
|
||||
M400
|
||||
M109 S[new_filament_temp]
|
||||
M400
|
||||
M106 P1 S255
|
||||
M400 S3
|
||||
M106 P1 S0
|
||||
G1 X70 F9000
|
||||
G1 X76 F15000
|
||||
G1 X65 F15000
|
||||
G1 X76 F15000
|
||||
G1 X65 F15000
|
||||
|
||||
G1 X70 F5000
|
||||
G1 X90 F3000
|
||||
G1 Y255 F4000
|
||||
G1 X100 F5000
|
||||
G1 Y265 F5000
|
||||
G1 X70 F10000
|
||||
G1 X100 F5000
|
||||
G1 X70 F10000
|
||||
G1 X100 F5000
|
||||
G1 X165 F15000
|
||||
G1 Y245
|
||||
G1 X70 F12000
|
||||
G1 Y265 F3000
|
||||
|
||||
G91
|
||||
G1 Z-3.0 F1200
|
||||
G90
|
||||
M621 S[next_extruder]
|
34
resources/printers/ams_unload.gcode
Normal file
34
resources/printers/ams_unload.gcode
Normal file
|
@ -0,0 +1,34 @@
|
|||
M620 S255
|
||||
M106 P1 S255
|
||||
M104 S142
|
||||
M17 S
|
||||
M17 X0.5 Y0.5
|
||||
G91
|
||||
G1 Y-5 F3000
|
||||
G1 Z3.0 F1200
|
||||
G90
|
||||
G28 X
|
||||
M17 R
|
||||
|
||||
G1 X70 F12000
|
||||
G1 Y245
|
||||
G1 Y265 F3000
|
||||
M400
|
||||
M106 P1 S0
|
||||
M109 S250
|
||||
G1 X90 F3000
|
||||
G1 Y255 F4000
|
||||
G1 X100 F5000
|
||||
G1 X120 F12000
|
||||
|
||||
G1 X20 Y50 F12000
|
||||
G1 Y-3
|
||||
|
||||
T255
|
||||
M104 S0
|
||||
G1 X70 F3000
|
||||
|
||||
G91
|
||||
G1 Z-3.0 F1200
|
||||
G90
|
||||
M621 S255
|
|
@ -1520,20 +1520,9 @@ int MachineObject::command_ams_switch(int tray_index, int old_temp, int new_temp
|
|||
|
||||
std::string gcode = "";
|
||||
if (tray_index == 255) {
|
||||
// unload gcode
|
||||
gcode = "M620 S255\nM104 S250\nG28 X\nG91\nG1 Z3.0 F1200\nG90\n"
|
||||
"G1 X70 F12000\nG1 Y245\nG1 Y265 F3000\nM109 S250\nG1 X120 F12000\n"
|
||||
"G1 X20 Y50 F12000\nG1 Y-3\nT255\nM104 S0\nG1 X165 F5000\nG1 Y245\n"
|
||||
"G91\nG1 Z-3.0 F1200\nG90\nM621 S255\n";
|
||||
gcode = DeviceManager::load_gcode(printer_type, "ams_unload.gcode");
|
||||
} else {
|
||||
// load gcode
|
||||
gcode = "M620 S[next_extruder]\nM104 S250\nG28 X\nG91\n\nG1 Z3.0 F1200\nG90\n"
|
||||
"G1 X70 F12000\nG1 Y245\nG1 Y265 F3000\nM109 S250\nG1 X120 F12000\nG1 X20 Y50 F12000\nG1 Y-3"
|
||||
"\nT[next_extruder]\nG1 X54 F12000\nG1 Y265\nM400\nM106 P1 S0\nG92 E0\nG1 E40 F200\nM400"
|
||||
"\nM109 S[new_filament_temp]\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM400\nM106 P1 S0\nG1 X70 F9000"
|
||||
"\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000\nG1 X70 F6000\nG1 X100 F5000\nG1 X70 F15000"
|
||||
"\nG1 X100 F5000\nG1 X70 F15000\nG1 X165 F5000\nG1 Y245\nG91\nG1 Z-3.0 F1200\nG90\nM621 S[next_extruder]\n";
|
||||
|
||||
gcode = DeviceManager::load_gcode(printer_type, "ams_load.gcode");
|
||||
boost::replace_all(gcode, "[next_extruder]", std::to_string(tray_index));
|
||||
boost::replace_all(gcode, "[new_filament_temp]", std::to_string(new_temp));
|
||||
}
|
||||
|
@ -4102,4 +4091,23 @@ bool DeviceManager::load_functional_config(std::string config_file)
|
|||
return true;
|
||||
}
|
||||
|
||||
std::string DeviceManager::load_gcode(std::string type_str, std::string gcode_file)
|
||||
{
|
||||
std::string gcode_full_path = Slic3r::resources_dir() + "/printers/" + gcode_file;
|
||||
std::ifstream gcode(encode_path(gcode_full_path.c_str()).c_str());
|
||||
try {
|
||||
std::stringstream gcode_str;
|
||||
if (gcode.is_open()) {
|
||||
gcode_str << gcode.rdbuf();
|
||||
gcode.close();
|
||||
return gcode_str.str();
|
||||
}
|
||||
} catch(...) {
|
||||
BOOST_LOG_TRIVIAL(error) << "load gcode file failed, file = " << gcode_file << ", path = " << gcode_full_path;
|
||||
}
|
||||
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
} // namespace Slic3r
|
||||
|
|
|
@ -834,6 +834,7 @@ public:
|
|||
|
||||
static bool get_bed_temperature_limit(std::string type_str, int& limit);
|
||||
static bool load_functional_config(std::string config_file);
|
||||
static std::string load_gcode(std::string type_str, std::string gcode_file);
|
||||
};
|
||||
|
||||
} // namespace Slic3r
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue