mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-22 16:21:24 -06:00
Replace multitude of Extruder fields with querying a PrintConfig object by id.
This commit is contained in:
parent
b319dc9361
commit
2565d80679
7 changed files with 38 additions and 140 deletions
|
@ -2,39 +2,9 @@
|
|||
|
||||
namespace Slic3r {
|
||||
|
||||
Extruder::Extruder(int id, bool use_relative_e_distances,
|
||||
const Point *extruder_offset,
|
||||
double nozzle_diameter,
|
||||
double filament_diameter,
|
||||
double extrusion_multiplier,
|
||||
int temperature,
|
||||
int first_layer_temperature,
|
||||
double retract_length,
|
||||
double retract_lift,
|
||||
int retract_speed,
|
||||
double retract_restart_extra,
|
||||
double retract_before_travel,
|
||||
bool retract_layer_change,
|
||||
double retract_length_toolchange,
|
||||
double retract_restart_extra_toolchange,
|
||||
double wipe)
|
||||
Extruder::Extruder(int id, PrintConfig *config)
|
||||
: id(id),
|
||||
use_relative_e_distances(use_relative_e_distances),
|
||||
extruder_offset(*extruder_offset),
|
||||
nozzle_diameter(nozzle_diameter),
|
||||
filament_diameter(filament_diameter),
|
||||
extrusion_multiplier(extrusion_multiplier),
|
||||
temperature(temperature),
|
||||
first_layer_temperature(first_layer_temperature),
|
||||
retract_length(retract_length),
|
||||
retract_lift(retract_lift),
|
||||
retract_speed(retract_speed),
|
||||
retract_restart_extra(retract_restart_extra),
|
||||
retract_before_travel(retract_before_travel),
|
||||
retract_layer_change(retract_layer_change),
|
||||
retract_length_toolchange(retract_length_toolchange),
|
||||
retract_restart_extra_toolchange(retract_restart_extra_toolchange),
|
||||
wipe(wipe)
|
||||
config(*config) // make a copy
|
||||
{
|
||||
reset();
|
||||
}
|
||||
|
@ -51,7 +21,7 @@ Extruder::reset()
|
|||
double
|
||||
Extruder::extrude(double dE)
|
||||
{
|
||||
if (use_relative_e_distances) {
|
||||
if (this->use_relative_e_distances()) {
|
||||
this->E = 0;
|
||||
}
|
||||
|
||||
|
@ -60,4 +30,13 @@ Extruder::extrude(double dE)
|
|||
return this->E;
|
||||
}
|
||||
|
||||
bool
|
||||
Extruder::use_relative_e_distances() const
|
||||
{
|
||||
// TODO: figure out way to avoid static_cast to access hidden const method
|
||||
const ConfigOption *opt = static_cast<const ConfigBase*>(&this->config)
|
||||
->option("use_relative_e_distances");
|
||||
return *static_cast<const ConfigOptionBool*>(opt);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -3,55 +3,28 @@
|
|||
|
||||
#include <myinit.h>
|
||||
#include "Point.hpp"
|
||||
#include "PrintConfig.hpp"
|
||||
|
||||
namespace Slic3r {
|
||||
|
||||
class Extruder
|
||||
{
|
||||
public:
|
||||
Extruder(int id, bool use_relative_e_distances,
|
||||
const Point *extruder_offset,
|
||||
double nozzle_diameter,
|
||||
double filament_diameter,
|
||||
double extrusion_multiplier,
|
||||
int temperature,
|
||||
int first_layer_temperature,
|
||||
double retract_length,
|
||||
double retract_lift,
|
||||
int retract_speed,
|
||||
double retract_restart_extra,
|
||||
double retract_before_travel,
|
||||
bool retract_layer_change,
|
||||
double retract_length_toolchange,
|
||||
double retract_restart_extra_toolchange,
|
||||
double wipe);
|
||||
Extruder(int id, PrintConfig *config);
|
||||
virtual ~Extruder() {}
|
||||
void reset();
|
||||
double extrude(double dE);
|
||||
|
||||
bool use_relative_e_distances() const;
|
||||
|
||||
int id;
|
||||
bool use_relative_e_distances;
|
||||
double E;
|
||||
double absolute_E;
|
||||
double retracted;
|
||||
double restart_extra;
|
||||
|
||||
// options:
|
||||
Point extruder_offset;
|
||||
double nozzle_diameter;
|
||||
double filament_diameter;
|
||||
double extrusion_multiplier;
|
||||
int temperature;
|
||||
int first_layer_temperature;
|
||||
double retract_length;
|
||||
double retract_lift;
|
||||
int retract_speed;
|
||||
double retract_restart_extra;
|
||||
double retract_before_travel;
|
||||
bool retract_layer_change;
|
||||
double retract_length_toolchange;
|
||||
double retract_restart_extra_toolchange;
|
||||
double wipe;
|
||||
// TODO: maybe better to keep a reference to an existing object than copy it
|
||||
PrintConfig config;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue