mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-15 02:16:01 +08:00
Start adding Lerdge motherboard support
This commit is contained in:
parent
397d56fc42
commit
1da021b352
@ -824,7 +824,7 @@ namespace DoExport {
|
|||||||
// If the following block is enabled for other firmwares than the Marlin, then the function
|
// If the following block is enabled for other firmwares than the Marlin, then the function
|
||||||
// this->print_machine_envelope(file, print);
|
// this->print_machine_envelope(file, print);
|
||||||
// shall be adjusted as well to produce a G-code block compatible with the particular firmware flavor.
|
// shall be adjusted as well to produce a G-code block compatible with the particular firmware flavor.
|
||||||
if (config.gcode_flavor.value == gcfMarlin) {
|
if (config.gcode_flavor.value == gcfMarlin || config.gcode_flavor.value == gcfLerdge) {
|
||||||
normal_time_estimator.set_max_acceleration((float)config.machine_max_acceleration_extruding.values[0]);
|
normal_time_estimator.set_max_acceleration((float)config.machine_max_acceleration_extruding.values[0]);
|
||||||
normal_time_estimator.set_retract_acceleration((float)config.machine_max_acceleration_retracting.values[0]);
|
normal_time_estimator.set_retract_acceleration((float)config.machine_max_acceleration_retracting.values[0]);
|
||||||
normal_time_estimator.set_minimum_feedrate((float)config.machine_min_extruding_rate.values[0]);
|
normal_time_estimator.set_minimum_feedrate((float)config.machine_min_extruding_rate.values[0]);
|
||||||
@ -1661,7 +1661,7 @@ static bool custom_gcode_sets_temperature(const std::string &gcode, const int mc
|
|||||||
// Do not process this piece of G-code by the time estimator, it already knows the values through another sources.
|
// Do not process this piece of G-code by the time estimator, it already knows the values through another sources.
|
||||||
void GCode::print_machine_envelope(FILE *file, Print &print)
|
void GCode::print_machine_envelope(FILE *file, Print &print)
|
||||||
{
|
{
|
||||||
if (print.config().gcode_flavor.value == gcfMarlin) {
|
if (print.config().gcode_flavor.value == gcfMarlin || print.config().gcode_flavor.value == gcfLerdge) {
|
||||||
fprintf(file, "M201 X%d Y%d Z%d E%d ; sets maximum accelerations, mm/sec^2\n",
|
fprintf(file, "M201 X%d Y%d Z%d E%d ; sets maximum accelerations, mm/sec^2\n",
|
||||||
int(print.config().machine_max_acceleration_x.values.front() + 0.5),
|
int(print.config().machine_max_acceleration_x.values.front() + 0.5),
|
||||||
int(print.config().machine_max_acceleration_y.values.front() + 0.5),
|
int(print.config().machine_max_acceleration_y.values.front() + 0.5),
|
||||||
|
@ -1231,6 +1231,7 @@ namespace Slic3r {
|
|||||||
(dialect == gcfMarlin) ||
|
(dialect == gcfMarlin) ||
|
||||||
(dialect == gcfKlipper) ||
|
(dialect == gcfKlipper) ||
|
||||||
(dialect == gcfSmoothie) ||
|
(dialect == gcfSmoothie) ||
|
||||||
|
(dialect == gcfLerdge) ||
|
||||||
(dialect == gcfRepRap))
|
(dialect == gcfRepRap))
|
||||||
{
|
{
|
||||||
if (line.has_value('S', value))
|
if (line.has_value('S', value))
|
||||||
@ -1369,7 +1370,7 @@ namespace Slic3r {
|
|||||||
|
|
||||||
// see http://reprap.org/wiki/G-code#M203:_Set_maximum_feedrate
|
// see http://reprap.org/wiki/G-code#M203:_Set_maximum_feedrate
|
||||||
// http://smoothieware.org/supported-g-codes
|
// http://smoothieware.org/supported-g-codes
|
||||||
float factor = (dialect == gcfMarlin || dialect == gcfSmoothie) ? 1.0f : MMMIN_TO_MMSEC;
|
float factor = (dialect == gcfMarlin || dialect == gcfSmoothie || dialect == gcfLerdge) ? 1.0f : MMMIN_TO_MMSEC;
|
||||||
|
|
||||||
if (line.has_x())
|
if (line.has_x())
|
||||||
set_axis_max_feedrate(X, line.x() * factor);
|
set_axis_max_feedrate(X, line.x() * factor);
|
||||||
|
@ -22,7 +22,7 @@ void GCodeWriter::apply_print_config(const PrintConfig &print_config)
|
|||||||
this->config.apply(print_config, true);
|
this->config.apply(print_config, true);
|
||||||
m_extrusion_axis = this->config.get_extrusion_axis();
|
m_extrusion_axis = this->config.get_extrusion_axis();
|
||||||
m_single_extruder_multi_material = print_config.single_extruder_multi_material.value;
|
m_single_extruder_multi_material = print_config.single_extruder_multi_material.value;
|
||||||
m_max_acceleration = std::lrint((print_config.gcode_flavor.value == gcfMarlin || print_config.gcode_flavor.value == gcfKlipper) ?
|
m_max_acceleration = std::lrint((print_config.gcode_flavor.value == gcfMarlin || print_config.gcode_flavor.value == gcfLerdge || print_config.gcode_flavor.value == gcfKlipper) ?
|
||||||
print_config.machine_max_acceleration_extruding.values.front() : 0);
|
print_config.machine_max_acceleration_extruding.values.front() : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ std::string GCodeWriter::preamble()
|
|||||||
gcode << "G90 ; use absolute coordinates\n";
|
gcode << "G90 ; use absolute coordinates\n";
|
||||||
}
|
}
|
||||||
if (FLAVOR_IS(gcfRepRap) || FLAVOR_IS(gcfMarlin) || FLAVOR_IS(gcfTeacup) || FLAVOR_IS(gcfRepetier) || FLAVOR_IS(gcfSmoothie)
|
if (FLAVOR_IS(gcfRepRap) || FLAVOR_IS(gcfMarlin) || FLAVOR_IS(gcfTeacup) || FLAVOR_IS(gcfRepetier) || FLAVOR_IS(gcfSmoothie)
|
||||||
|| FLAVOR_IS(gcfKlipper)) {
|
|| FLAVOR_IS(gcfKlipper) || FLAVOR_IS(gcfLerdge)) {
|
||||||
if (this->config.use_relative_e_distances) {
|
if (this->config.use_relative_e_distances) {
|
||||||
gcode << "M83 ; use relative distances for extrusion\n";
|
gcode << "M83 ; use relative distances for extrusion\n";
|
||||||
} else {
|
} else {
|
||||||
|
@ -1478,6 +1478,7 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->enum_values.push_back("mach3");
|
def->enum_values.push_back("mach3");
|
||||||
def->enum_values.push_back("machinekit");
|
def->enum_values.push_back("machinekit");
|
||||||
def->enum_values.push_back("smoothie");
|
def->enum_values.push_back("smoothie");
|
||||||
|
def->enum_values.push_back("lerdge");
|
||||||
def->enum_values.push_back("no-extrusion");
|
def->enum_values.push_back("no-extrusion");
|
||||||
def->enum_labels.push_back("RepRap/Sprinter");
|
def->enum_labels.push_back("RepRap/Sprinter");
|
||||||
def->enum_labels.push_back("Repetier");
|
def->enum_labels.push_back("Repetier");
|
||||||
@ -1489,6 +1490,7 @@ void PrintConfigDef::init_fff_params()
|
|||||||
def->enum_labels.push_back("Mach3/LinuxCNC");
|
def->enum_labels.push_back("Mach3/LinuxCNC");
|
||||||
def->enum_labels.push_back("Machinekit");
|
def->enum_labels.push_back("Machinekit");
|
||||||
def->enum_labels.push_back("Smoothie");
|
def->enum_labels.push_back("Smoothie");
|
||||||
|
def->enum_labels.push_back("Lerdge");
|
||||||
def->enum_labels.push_back(L("No extrusion"));
|
def->enum_labels.push_back(L("No extrusion"));
|
||||||
def->mode = comAdvanced;
|
def->mode = comAdvanced;
|
||||||
def->set_default_value(new ConfigOptionEnum<GCodeFlavor>(gcfRepRap));
|
def->set_default_value(new ConfigOptionEnum<GCodeFlavor>(gcfRepRap));
|
||||||
@ -4249,8 +4251,9 @@ std::string FullPrintConfig::validate()
|
|||||||
this->gcode_flavor.value != gcfRepRap &&
|
this->gcode_flavor.value != gcfRepRap &&
|
||||||
this->gcode_flavor.value != gcfMarlin &&
|
this->gcode_flavor.value != gcfMarlin &&
|
||||||
this->gcode_flavor.value != gcfMachinekit &&
|
this->gcode_flavor.value != gcfMachinekit &&
|
||||||
this->gcode_flavor.value != gcfRepetier)
|
this->gcode_flavor.value != gcfRepetier &&
|
||||||
return "--use-firmware-retraction is only supported by Marlin, Smoothie, Repetier and Machinekit firmware";
|
this->gcode_flavor.value != gcfLerdge)
|
||||||
|
return "--use-firmware-retraction is only supported by Marlin, Smoothie, Repetier, Machinekit and Lerdge firmware";
|
||||||
|
|
||||||
if (this->use_firmware_retraction.value)
|
if (this->use_firmware_retraction.value)
|
||||||
for (unsigned char wipe : this->wipe.values)
|
for (unsigned char wipe : this->wipe.values)
|
||||||
|
@ -43,7 +43,7 @@ enum WipeAlgo {
|
|||||||
|
|
||||||
enum GCodeFlavor : unsigned char {
|
enum GCodeFlavor : unsigned char {
|
||||||
gcfRepRap, gcfRepetier, gcfTeacup, gcfMakerWare, gcfMarlin, gcfKlipper, gcfSailfish, gcfMach3, gcfMachinekit,
|
gcfRepRap, gcfRepetier, gcfTeacup, gcfMakerWare, gcfMarlin, gcfKlipper, gcfSailfish, gcfMach3, gcfMachinekit,
|
||||||
gcfSmoothie, gcfNoExtrusion,
|
gcfSmoothie, gcfNoExtrusion, gcfLerdge,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum PrintHostType {
|
enum PrintHostType {
|
||||||
@ -122,6 +122,7 @@ template<> inline const t_config_enum_values& ConfigOptionEnum<GCodeFlavor>::get
|
|||||||
keys_map["teacup"] = gcfTeacup;
|
keys_map["teacup"] = gcfTeacup;
|
||||||
keys_map["makerware"] = gcfMakerWare;
|
keys_map["makerware"] = gcfMakerWare;
|
||||||
keys_map["marlin"] = gcfMarlin;
|
keys_map["marlin"] = gcfMarlin;
|
||||||
|
keys_map["lerdge"] = gcfLerdge;
|
||||||
keys_map["klipper"] = gcfKlipper;
|
keys_map["klipper"] = gcfKlipper;
|
||||||
keys_map["sailfish"] = gcfSailfish;
|
keys_map["sailfish"] = gcfSailfish;
|
||||||
keys_map["smoothie"] = gcfSmoothie;
|
keys_map["smoothie"] = gcfSmoothie;
|
||||||
|
@ -2771,8 +2771,8 @@ PageShp TabPrinter::build_kinematics_page()
|
|||||||
{
|
{
|
||||||
auto page = add_options_page(_(L("Machine limits")), "cog", true);
|
auto page = add_options_page(_(L("Machine limits")), "cog", true);
|
||||||
ConfigOptionsGroupShp optgroup;
|
ConfigOptionsGroupShp optgroup;
|
||||||
if (m_config->option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value != gcfMarlin) {
|
if (m_config->option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value != gcfMarlin && m_config->option<ConfigOptionEnum<GCodeFlavor>>("gcode_flavor")->value != gcfLerdge) {
|
||||||
optgroup = page->new_optgroup(_(L("not-marlin firmware compensation")));
|
optgroup = page->new_optgroup(_(L("not-marlin/lerdge firmware compensation")));
|
||||||
optgroup->append_single_option_line("time_estimation_compensation");
|
optgroup->append_single_option_line("time_estimation_compensation");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user