mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-23 00:31:11 -06:00
Merge pull request #2508 from strahlex/machinekit-gcode
added support Machinekit flavour GCode
This commit is contained in:
commit
1180a6d83f
11 changed files with 38 additions and 15 deletions
|
@ -83,7 +83,7 @@ GCodeWriter::set_temperature(unsigned int temperature, bool wait, int tool)
|
|||
|
||||
std::ostringstream gcode;
|
||||
gcode << code << " ";
|
||||
if (FLAVOR_IS(gcfMach3)) {
|
||||
if (FLAVOR_IS(gcfMach3) || FLAVOR_IS(gcfMachinekit)) {
|
||||
gcode << "P";
|
||||
} else {
|
||||
gcode << "S";
|
||||
|
@ -118,7 +118,7 @@ GCodeWriter::set_bed_temperature(unsigned int temperature, bool wait)
|
|||
|
||||
std::ostringstream gcode;
|
||||
gcode << code << " ";
|
||||
if (FLAVOR_IS(gcfMach3)) {
|
||||
if (FLAVOR_IS(gcfMach3) || FLAVOR_IS(gcfMachinekit)) {
|
||||
gcode << "P";
|
||||
} else {
|
||||
gcode << "S";
|
||||
|
@ -153,7 +153,7 @@ GCodeWriter::set_fan(unsigned int speed, bool dont_save)
|
|||
gcode << "M126";
|
||||
} else {
|
||||
gcode << "M106 ";
|
||||
if (FLAVOR_IS(gcfMach3)) {
|
||||
if (FLAVOR_IS(gcfMach3) || FLAVOR_IS(gcfMachinekit)) {
|
||||
gcode << "P";
|
||||
} else {
|
||||
gcode << "S";
|
||||
|
@ -434,7 +434,10 @@ GCodeWriter::_retract(double length, double restart_extra, const std::string &co
|
|||
double dE = this->_extruder->retract(length, restart_extra);
|
||||
if (dE != 0) {
|
||||
if (this->config.use_firmware_retraction) {
|
||||
gcode << "G10 ; retract\n";
|
||||
if (FLAVOR_IS(gcfMachinekit))
|
||||
gcode << "G22 ; retract\n";
|
||||
else
|
||||
gcode << "G10 ; retract\n";
|
||||
} else {
|
||||
gcode << "G1 " << this->_extrusion_axis << E_NUM(this->_extruder->E)
|
||||
<< " F" << this->_extruder->retract_speed_mm_min;
|
||||
|
@ -460,7 +463,10 @@ GCodeWriter::unretract()
|
|||
double dE = this->_extruder->unretract();
|
||||
if (dE != 0) {
|
||||
if (this->config.use_firmware_retraction) {
|
||||
gcode << "G11 ; unretract\n";
|
||||
if (FLAVOR_IS(gcfMachinekit))
|
||||
gcode << "G23 ; unretract\n";
|
||||
else
|
||||
gcode << "G11 ; unretract\n";
|
||||
gcode << this->reset_e();
|
||||
} else {
|
||||
// use G1 instead of G0 because G0 will blend the restart with the previous travel move
|
||||
|
@ -505,8 +511,17 @@ GCodeWriter::get_position() const
|
|||
return this->_pos;
|
||||
}
|
||||
|
||||
std::string
|
||||
GCodeWriter::end_program()
|
||||
{
|
||||
std::ostringstream gcode;
|
||||
if (FLAVOR_IS(gcfMachinekit))
|
||||
gcode << "M2 ; end of program\n";
|
||||
return gcode.str();
|
||||
}
|
||||
|
||||
#ifdef SLIC3RXS
|
||||
REGISTER_CLASS(GCodeWriter, "GCode::Writer");
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,6 +46,7 @@ class GCodeWriter {
|
|||
std::string lift();
|
||||
std::string unlift();
|
||||
Pointf3 get_position() const;
|
||||
std::string end_program();
|
||||
|
||||
private:
|
||||
std::string _extrusion_axis;
|
||||
|
|
|
@ -380,12 +380,14 @@ PrintConfigDef::build_def() {
|
|||
Options["gcode_flavor"].enum_values.push_back("makerware");
|
||||
Options["gcode_flavor"].enum_values.push_back("sailfish");
|
||||
Options["gcode_flavor"].enum_values.push_back("mach3");
|
||||
Options["gcode_flavor"].enum_values.push_back("machinekit");
|
||||
Options["gcode_flavor"].enum_values.push_back("no-extrusion");
|
||||
Options["gcode_flavor"].enum_labels.push_back("RepRap (Marlin/Sprinter/Repetier)");
|
||||
Options["gcode_flavor"].enum_labels.push_back("Teacup");
|
||||
Options["gcode_flavor"].enum_labels.push_back("MakerWare (MakerBot)");
|
||||
Options["gcode_flavor"].enum_labels.push_back("Sailfish (MakerBot)");
|
||||
Options["gcode_flavor"].enum_labels.push_back("Mach3/LinuxCNC");
|
||||
Options["gcode_flavor"].enum_labels.push_back("Machinekit");
|
||||
Options["gcode_flavor"].enum_labels.push_back("No extrusion");
|
||||
|
||||
Options["infill_acceleration"].type = coFloat;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
namespace Slic3r {
|
||||
|
||||
enum GCodeFlavor {
|
||||
gcfRepRap, gcfTeacup, gcfMakerWare, gcfSailfish, gcfMach3, gcfNoExtrusion,
|
||||
gcfRepRap, gcfTeacup, gcfMakerWare, gcfSailfish, gcfMach3, gcfMachinekit, gcfNoExtrusion,
|
||||
};
|
||||
|
||||
enum InfillPattern {
|
||||
|
@ -29,6 +29,7 @@ template<> inline t_config_enum_values ConfigOptionEnum<GCodeFlavor>::get_enum_v
|
|||
keys_map["makerware"] = gcfMakerWare;
|
||||
keys_map["sailfish"] = gcfSailfish;
|
||||
keys_map["mach3"] = gcfMach3;
|
||||
keys_map["machinekit"] = gcfMachinekit;
|
||||
keys_map["no-extrusion"] = gcfNoExtrusion;
|
||||
return keys_map;
|
||||
}
|
||||
|
@ -410,7 +411,7 @@ class GCodeConfig : public virtual StaticPrintConfig
|
|||
|
||||
std::string get_extrusion_axis() const
|
||||
{
|
||||
if (this->gcode_flavor.value == gcfMach3) {
|
||||
if ((this->gcode_flavor.value == gcfMach3) || (this->gcode_flavor.value == gcfMachinekit)) {
|
||||
return "A";
|
||||
} else if (this->gcode_flavor.value == gcfNoExtrusion) {
|
||||
return "";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue