SLA exposure bounds to printer params.

This commit is contained in:
tamasmeszaros 2019-08-20 17:24:48 +02:00
parent 88dcb7f366
commit b58713c06f
5 changed files with 50 additions and 94 deletions

View file

@ -2412,7 +2412,7 @@ void PrintConfigDef::init_sla_params()
def->mode = comExpert;
def->set_default_value(new ConfigOptionInt(10));
def = this->add("exposure_time_min", coFloat);
def = this->add("min_exposure_time", coFloat);
def->label = L("Minimum exposure time");
def->tooltip = L("Minimum exposure time");
def->sidetext = L("s");
@ -2420,7 +2420,7 @@ void PrintConfigDef::init_sla_params()
def->mode = comExpert;
def->set_default_value(new ConfigOptionFloat(0));
def = this->add("exposure_time_max", coFloat);
def = this->add("max_exposure_time", coFloat);
def->label = L("Maximum exposure time");
def->tooltip = L("Maximum exposure time");
def->sidetext = L("s");
@ -2435,7 +2435,7 @@ void PrintConfigDef::init_sla_params()
def->min = 0;
def->set_default_value(new ConfigOptionFloat(10));
def = this->add("initial_exposure_time_min", coFloat);
def = this->add("min_initial_exposure_time", coFloat);
def->label = L("Minimum initial exposure time");
def->tooltip = L("Minimum initial exposure time");
def->sidetext = L("s");
@ -2443,7 +2443,7 @@ void PrintConfigDef::init_sla_params()
def->mode = comExpert;
def->set_default_value(new ConfigOptionFloat(0));
def = this->add("initial_exposure_time_max", coFloat);
def = this->add("max_initial_exposure_time", coFloat);
def->label = L("Maximum initial exposure time");
def->tooltip = L("Maximum initial exposure time");
def->sidetext = L("s");

View file

@ -1098,22 +1098,14 @@ class SLAMaterialConfig : public StaticPrintConfig
STATIC_PRINT_CONFIG_CACHE(SLAMaterialConfig)
public:
ConfigOptionFloat initial_layer_height;
ConfigOptionFloat exposure_time_min;
ConfigOptionFloat exposure_time_max;
ConfigOptionFloat exposure_time;
ConfigOptionFloat initial_exposure_time_min;
ConfigOptionFloat initial_exposure_time_max;
ConfigOptionFloat initial_exposure_time;
ConfigOptionFloats material_correction;
protected:
void initialize(StaticCacheBase &cache, const char *base_ptr)
{
OPT_PTR(initial_layer_height);
OPT_PTR(exposure_time_min);
OPT_PTR(exposure_time_max);
OPT_PTR(exposure_time);
OPT_PTR(initial_exposure_time_min);
OPT_PTR(initial_exposure_time_max);
OPT_PTR(initial_exposure_time);
OPT_PTR(material_correction);
}
@ -1139,6 +1131,10 @@ public:
ConfigOptionFloat fast_tilt_time;
ConfigOptionFloat slow_tilt_time;
ConfigOptionFloat area_fill;
ConfigOptionFloat min_exposure_time;
ConfigOptionFloat max_exposure_time;
ConfigOptionFloat min_initial_exposure_time;
ConfigOptionFloat max_initial_exposure_time;
protected:
void initialize(StaticCacheBase &cache, const char *base_ptr)
{
@ -1158,6 +1154,10 @@ protected:
OPT_PTR(fast_tilt_time);
OPT_PTR(slow_tilt_time);
OPT_PTR(area_fill);
OPT_PTR(min_exposure_time);
OPT_PTR(max_exposure_time);
OPT_PTR(min_initial_exposure_time);
OPT_PTR(max_initial_exposure_time);
}
};

View file

@ -692,19 +692,19 @@ std::string SLAPrint::validate() const
}
}
double expt_max = m_material_config.exposure_time_max.getFloat();
double expt_min = m_material_config.exposure_time_min.getFloat();
double expt_max = m_printer_config.max_exposure_time.getFloat();
double expt_min = m_printer_config.min_exposure_time.getFloat();
double expt_cur = m_material_config.exposure_time.getFloat();
if (expt_cur < expt_min || expt_cur > expt_max)
return L("Exposition time is out of predefined bounds.");
return L("Exposition time is out of printer profile bounds.");
double iexpt_max = m_material_config.initial_exposure_time_max.getFloat();
double iexpt_min = m_material_config.initial_exposure_time_min.getFloat();
double iexpt_max = m_printer_config.max_initial_exposure_time.getFloat();
double iexpt_min = m_printer_config.min_initial_exposure_time.getFloat();
double iexpt_cur = m_material_config.initial_exposure_time.getFloat();
if (iexpt_cur < iexpt_min || iexpt_cur > iexpt_max)
return L("Initial exposition time is out of predefined bounds.");
return L("Initial exposition time is out of printer profile bounds.");
return "";
}
@ -1600,11 +1600,11 @@ bool SLAPrint::invalidate_state_by_config_options(const std::vector<t_config_opt
// Cache the plenty of parameters, which influence the final rasterization only,
// or they are only notes not influencing the rasterization step.
static std::unordered_set<std::string> steps_rasterize = {
"exposure_time_min",
"exposure_time_max",
"min_exposure_time",
"max_exposure_time",
"exposure_time",
"initial_exposure_time_min",
"initial_exposure_time_max",
"min_initial_exposure_time",
"max_initial_exposure_time",
"initial_exposure_time",
"display_width",
"display_height",