mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2026-02-15 08:59:39 -07:00
Revert "ENH:instead of prime_volume by filament_prime_volume"
This reverts commit e7e6405ad3.
This commit is contained in:
parent
6346d3001a
commit
da2934d02a
13 changed files with 41 additions and 113 deletions
|
|
@ -144,9 +144,6 @@
|
|||
"filament_wipe_distance": [
|
||||
"nil"
|
||||
],
|
||||
"filament_prime_volume": [
|
||||
"45"
|
||||
],
|
||||
"filament_z_hop": [
|
||||
"nil"
|
||||
],
|
||||
|
|
|
|||
|
|
@ -43,9 +43,6 @@
|
|||
"nil",
|
||||
"nil"
|
||||
],
|
||||
"filament_prime_volume": [
|
||||
"45"
|
||||
],
|
||||
"filament_z_hop": [
|
||||
"nil",
|
||||
"nil"
|
||||
|
|
|
|||
|
|
@ -1234,7 +1234,7 @@ int CLI::run(int argc, char **argv)
|
|||
int current_printable_width, current_printable_depth, current_printable_height, shrink_to_new_bed = 0;
|
||||
int old_printable_height = 0, old_printable_width = 0, old_printable_depth = 0;
|
||||
Pointfs old_printable_area, old_exclude_area;
|
||||
float old_max_radius = 0.f, old_height_to_rod = 0.f, old_height_to_lid = 0.f, old_filament_prime_volume = 0.f;
|
||||
float old_max_radius = 0.f, old_height_to_rod = 0.f, old_height_to_lid = 0.f;
|
||||
std::vector<double> old_max_layer_height, old_min_layer_height;
|
||||
std::string outfile_dir = m_config.opt_string("outputdir", true);
|
||||
const std::vector<std::string> &load_configs = m_config.option<ConfigOptionStrings>("load_settings", true)->values;
|
||||
|
|
@ -1564,22 +1564,6 @@ int CLI::run(int argc, char **argv)
|
|||
BOOST_LOG_TRIVIAL(info) << boost::format("old 3mf version %1%, need to regenerate_thumbnails for all")%file_version.to_string();
|
||||
}
|
||||
|
||||
if ((file_version < old_version3) && !config.empty()) {
|
||||
keep_old_params = true;
|
||||
ConfigOptionFloats *filament_prime_volume_option = config.option<ConfigOptionFloats>("filament_prime_volume");
|
||||
if (filament_prime_volume_option) {
|
||||
std::vector<double>& filament_prime_volume_values = filament_prime_volume_option->values;
|
||||
if (!filament_prime_volume_values.empty()) {
|
||||
old_filament_prime_volume = filament_prime_volume_values[0];
|
||||
ConfigOptionStrings* filament_colors_option = config.option<ConfigOptionStrings>("filament_colour", true);
|
||||
if (filament_colors_option->size() > 1)
|
||||
filament_prime_volume_values.resize(filament_colors_option->size(), old_filament_prime_volume);
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("old 3mf version %1%, need to keep old params")%file_version.to_string();
|
||||
}
|
||||
|
||||
if (file_version < old_version4) {
|
||||
remove_wrapping_detect = true;
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("old 3mf version %1%, need to set enable_wrapping_detection to false")%file_version.to_string();
|
||||
|
|
@ -3734,16 +3718,6 @@ int CLI::run(int argc, char **argv)
|
|||
for (int index = 0; index < filament_count; index++)
|
||||
filament_adhesiveness_category_values[index] = 100;
|
||||
|
||||
ConfigOptionFloats *filament_prime_volume_option = m_print_config.option<ConfigOptionFloats>("filament_prime_volume", true);
|
||||
std::vector<double>& filament_prime_volume_values = filament_prime_volume_option->values;
|
||||
filament_prime_volume_values.resize(filament_count);
|
||||
for (int index = 0; index < filament_count; index++) {
|
||||
if (old_filament_prime_volume != 0.f)
|
||||
filament_prime_volume_values[index] = old_filament_prime_volume;
|
||||
else
|
||||
filament_prime_volume_values[index] = filament_prime_volume_values[0];
|
||||
}
|
||||
|
||||
//support params process
|
||||
ConfigOptionBool *enable_support_option = m_print_config.option<ConfigOptionBool>("enable_support", true);
|
||||
ConfigOptionEnum<SupportType>* support_type_option = m_print_config.option<ConfigOptionEnum<SupportType>>("support_type", true);
|
||||
|
|
@ -3850,13 +3824,13 @@ int CLI::run(int argc, char **argv)
|
|||
float brim_width = brim_width_option->value;
|
||||
if (brim_width < 0) brim_width = WipeTower::get_auto_brim_by_height((float)plate_obj_size_info.obj_bbox.max.z());
|
||||
|
||||
ConfigOptionFloats* volume_option = print_config.option<ConfigOptionFloats>("filament_prime_volume", true);
|
||||
std::vector<double> wipe_volume = volume_option->values;
|
||||
ConfigOptionFloat* volume_option = print_config.option<ConfigOptionFloat>("prime_volume", true);
|
||||
float wipe_volume = volume_option->value;
|
||||
|
||||
const ConfigOptionBool * wrapping_detection = print_config.option<ConfigOptionBool>("enable_wrapping_detection");
|
||||
bool enable_wrapping = (wrapping_detection != nullptr) && wrapping_detection->value;
|
||||
|
||||
Vec3d wipe_tower_size = plate->estimate_wipe_tower_size(print_config, plate_obj_size_info.wipe_width, get_max_element(wipe_volume), new_extruder_count, filaments_cnt, false, enable_wrapping);
|
||||
Vec3d wipe_tower_size = plate->estimate_wipe_tower_size(print_config, plate_obj_size_info.wipe_width, wipe_volume, new_extruder_count, filaments_cnt, false, enable_wrapping);
|
||||
plate_obj_size_info.wipe_width = wipe_tower_size(0);
|
||||
plate_obj_size_info.wipe_depth = wipe_tower_size(1);
|
||||
|
||||
|
|
@ -4646,11 +4620,10 @@ int CLI::run(int argc, char **argv)
|
|||
ConfigOptionFloats* wipe_y_option = m_print_config.option<ConfigOptionFloats>("wipe_tower_y", true);
|
||||
ConfigOptionFloat* width_option = m_print_config.option<ConfigOptionFloat>("prime_tower_width", true);
|
||||
ConfigOptionFloat* rotation_angle_option = m_print_config.option<ConfigOptionFloat>("wipe_tower_rotation_angle", true);
|
||||
ConfigOptionFloats *volume_option = m_print_config.option<ConfigOptionFloats>("filament_prime_volume", true);
|
||||
ConfigOptionFloat* volume_option = m_print_config.option<ConfigOptionFloat>("prime_volume", true);
|
||||
ConfigOptionEnum<WipeTowerWallType> *prime_tower_rib_wall_option = m_print_config.option<ConfigOptionEnum<WipeTowerWallType>>("wipe_tower_wall_type", true);
|
||||
std::vector<double> wipe_volume = volume_option->values;
|
||||
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("prime_tower_width %1% wipe_tower_rotation_angle %2% prime_volume %3%, rib_wall %4%") % width_option->value % rotation_angle_option->value % get_max_element(wipe_volume) %prime_tower_rib_wall_option->value;
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("prime_tower_width %1% wipe_tower_rotation_angle %2% prime_volume %3%, rib_wall %4%") % width_option->value % rotation_angle_option->value % volume_option->value %prime_tower_rib_wall_option->value;
|
||||
|
||||
ConfigOptionFloat wt_x_opt(x);
|
||||
ConfigOptionFloat wt_y_opt(y);
|
||||
|
|
@ -4944,10 +4917,9 @@ int CLI::run(int argc, char **argv)
|
|||
ConfigOptionFloats* wipe_y_option = m_print_config.option<ConfigOptionFloats>("wipe_tower_y", true);
|
||||
ConfigOptionFloat* width_option = m_print_config.option<ConfigOptionFloat>("prime_tower_width", true);
|
||||
ConfigOptionFloat* rotation_angle_option = m_print_config.option<ConfigOptionFloat>("wipe_tower_rotation_angle", true);
|
||||
ConfigOptionFloats *volume_option = m_print_config.option<ConfigOptionFloats>("filament_prime_volume", true);
|
||||
std::vector<double> wipe_volume = volume_option->values;
|
||||
ConfigOptionFloat* volume_option = m_print_config.option<ConfigOptionFloat>("prime_volume", true);
|
||||
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("prime_tower_width %1% wipe_tower_rotation_angle %2% prime_volume %3%")%width_option->value %rotation_angle_option->value %get_max_element(wipe_volume);
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("prime_tower_width %1% wipe_tower_rotation_angle %2% prime_volume %3%")%width_option->value %rotation_angle_option->value %volume_option->value ;
|
||||
|
||||
|
||||
for (int bedid = 0; bedid < MAX_PLATE_COUNT; bedid++) {
|
||||
|
|
@ -5036,7 +5008,7 @@ int CLI::run(int argc, char **argv)
|
|||
}
|
||||
float w = dynamic_cast<const ConfigOptionFloat *>(m_print_config.option("prime_tower_width"))->value;
|
||||
float a = dynamic_cast<const ConfigOptionFloat *>(m_print_config.option("wipe_tower_rotation_angle"))->value;
|
||||
std::vector<double> v = dynamic_cast<const ConfigOptionFloats *>(m_print_config.option("filament_prime_volume"))->values;
|
||||
float v = dynamic_cast<const ConfigOptionFloat *>(m_print_config.option("prime_volume"))->value;
|
||||
unsigned int filaments_cnt = plate_data_src[plate_to_slice-1]->slice_filaments_info.size();
|
||||
if ((filaments_cnt == 0) || need_skip)
|
||||
{
|
||||
|
|
@ -5062,7 +5034,7 @@ int CLI::run(int argc, char **argv)
|
|||
const ConfigOptionBool *wrapping_detection = m_print_config.option<ConfigOptionBool>("enable_wrapping_detection");
|
||||
bool enable_wrapping = (wrapping_detection != nullptr) && wrapping_detection->value;
|
||||
|
||||
Vec3d wipe_tower_size = cur_plate->estimate_wipe_tower_size(m_print_config, w, get_max_element(v), new_extruder_count, filaments_cnt, false, enable_wrapping);
|
||||
Vec3d wipe_tower_size = cur_plate->estimate_wipe_tower_size(m_print_config, w, v, new_extruder_count, filaments_cnt, false, enable_wrapping);
|
||||
Vec3d plate_origin = cur_plate->get_origin();
|
||||
int plate_width, plate_depth, plate_height;
|
||||
partplate_list.get_plate_size(plate_width, plate_depth, plate_height);
|
||||
|
|
@ -5076,8 +5048,8 @@ int CLI::run(int argc, char **argv)
|
|||
}
|
||||
w = wipe_tower_size(0);
|
||||
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: x=%1%, y=%2%, width=%3%, depth=%4%, angle=%5%, prime_volume=%6%, filaments_cnt=%7%, layer_height=%8%, plate_width=%9%, plate_depth=%10%") %
|
||||
x % y % w % depth % a % get_max_element(v) % filaments_cnt % layer_height % plate_width % plate_depth;
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: x=%1%, y=%2%, width=%3%, depth=%4%, angle=%5%, prime_volume=%6%, filaments_cnt=%7%, layer_height=%8%, plate_width=%9%, plate_depth=%10%")
|
||||
%x %y %w %depth %a %v %filaments_cnt %layer_height %plate_width %plate_depth;
|
||||
if ((y + depth + margin + wp_brim_width) > (float)plate_depth) {
|
||||
y = (float)plate_depth - depth - margin - wp_brim_width;
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format("arrange wipe_tower: exceeds the border, change y to %1%, plate_depth=%2%")%y %plate_depth;
|
||||
|
|
|
|||
|
|
@ -1181,7 +1181,7 @@ void ToolOrdering::reorder_extruders_for_minimum_flush_volume(bool reorder_first
|
|||
} else {
|
||||
// populate wipe_volumes with prime_volume
|
||||
for (unsigned int i = 0; i < number_of_extruders; ++i)
|
||||
wipe_volumes.push_back(std::vector<float>(number_of_extruders, print_config->filament_prime_volume.values[i]));
|
||||
wipe_volumes.push_back(std::vector<float>(number_of_extruders, print_config->prime_volume));
|
||||
}
|
||||
nozzle_flush_mtx.emplace_back(wipe_volumes);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -913,7 +913,7 @@ static std::vector<std::string> s_Preset_print_options {
|
|||
"skin_infill_line_width","skeleton_infill_line_width",
|
||||
"top_surface_line_width", "support_line_width", "infill_wall_overlap","top_bottom_infill_wall_overlap", "bridge_flow", "internal_bridge_flow",
|
||||
"elefant_foot_compensation", "elefant_foot_compensation_layers", "xy_contour_compensation", "xy_hole_compensation", "resolution", "enable_prime_tower", "prime_tower_enable_framework",
|
||||
"prime_tower_width", "prime_tower_brim_width", "prime_tower_skip_points",
|
||||
"prime_tower_width", "prime_tower_brim_width", "prime_tower_skip_points", "prime_volume",
|
||||
"prime_tower_infill_gap",
|
||||
"prime_tower_flat_ironing",
|
||||
"wipe_tower_no_sparse_layers", "compatible_printers", "compatible_printers_condition", "inherits",
|
||||
|
|
@ -979,7 +979,7 @@ static std::vector<std::string> s_Preset_filament_options {/*"filament_colour",
|
|||
"filament_multitool_ramming", "filament_multitool_ramming_volume", "filament_multitool_ramming_flow", "activate_chamber_temp_control",
|
||||
"filament_long_retractions_when_cut","filament_retraction_distances_when_cut", "idle_temperature",
|
||||
//BBS filament change length while the extruder color
|
||||
"filament_change_length","filament_prime_volume","filament_flush_volumetric_speed","filament_flush_temp",
|
||||
"filament_change_length","filament_flush_volumetric_speed","filament_flush_temp",
|
||||
"long_retractions_when_ec", "retraction_distances_when_ec"
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -320,7 +320,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
|||
|| opt_key == "wipe_tower_extra_flow"
|
||||
|| opt_key == "wipe_tower_no_sparse_layers"
|
||||
|| opt_key == "flush_volumes_matrix"
|
||||
|| opt_key == "filament_prime_volume"
|
||||
|| opt_key == "prime_volume"
|
||||
|| opt_key == "flush_into_infill"
|
||||
|| opt_key == "flush_into_support"
|
||||
|| opt_key == "initial_layer_infill_speed"
|
||||
|
|
@ -3002,8 +3002,7 @@ const WipeTowerData &Print::wipe_tower_data(size_t filaments_cnt) const
|
|||
|
||||
|
||||
if (! is_step_done(psWipeTower) && filaments_cnt !=0) {
|
||||
std::vector<double> filament_wipe_volume = m_config.filament_prime_volume.values;
|
||||
double wipe_volume = get_max_element(filament_wipe_volume);
|
||||
double wipe_volume = m_config.prime_volume;
|
||||
int filament_depth_count = m_config.nozzle_diameter.values.size() == 2 ? filaments_cnt : filaments_cnt - 1;
|
||||
if (filaments_cnt == 1 && enable_timelapse_print()) filament_depth_count = 1;
|
||||
double volume = wipe_volume * filament_depth_count;
|
||||
|
|
@ -3175,7 +3174,7 @@ void Print::_make_wipe_tower()
|
|||
volume_to_purge = std::max(0.f, volume_to_purge - grab_purge_volume);
|
||||
|
||||
wipe_tower.plan_toolchange((float)layer_tools.print_z, (float)layer_tools.wipe_tower_layer_height, current_filament_id, filament_id,
|
||||
m_config.filament_prime_volume.values[filament_id], volume_to_purge);
|
||||
m_config.prime_volume, volume_to_purge);
|
||||
current_filament_id = filament_id;
|
||||
nozzle_cur_filament_ids[nozzle_id] = filament_id;
|
||||
}
|
||||
|
|
@ -3250,7 +3249,7 @@ void Print::_make_wipe_tower()
|
|||
for (unsigned int i = 0; i < number_of_extruders; ++i) {
|
||||
for (unsigned int j = 0; j < number_of_extruders; ++j) {
|
||||
if (wipe_volumes[i][j] > 0) {
|
||||
wipe_volumes[i][j] = m_config.filament_prime_volume.values[j];
|
||||
wipe_volumes[i][j] = m_config.prime_volume;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3282,7 +3281,7 @@ void Print::_make_wipe_tower()
|
|||
for (const auto extruder_id : layer_tools.extruders) {
|
||||
if ((first_layer && extruder_id == m_wipe_tower_data.tool_ordering.all_extruders().back()) || extruder_id !=
|
||||
current_extruder_id) {
|
||||
float volume_to_wipe = m_config.filament_prime_volume.values[extruder_id];
|
||||
float volume_to_wipe = m_config.prime_volume;
|
||||
if (m_config.purge_in_prime_tower && m_config.single_extruder_multi_material) {
|
||||
volume_to_wipe = wipe_volumes[current_extruder_id][extruder_id]; // total volume to wipe after this toolchange
|
||||
volume_to_wipe *= m_config.flush_multiplier.get_at(0);
|
||||
|
|
|
|||
|
|
@ -2576,15 +2576,6 @@ void PrintConfigDef::init_fff_params()
|
|||
def->mode = comDevelop;
|
||||
def->set_default_value(new ConfigOptionInts{3});
|
||||
|
||||
// BBS
|
||||
def = this->add("filament_prime_volume", coFloats);
|
||||
def->label = L("Filament prime volume");
|
||||
def->tooltip = L("The volume of material to prime extruder on tower.");
|
||||
def->sidetext = L("mm³");
|
||||
def->min = 1.0;
|
||||
def->mode = comSimple;
|
||||
def->set_default_value(new ConfigOptionFloats{45.});
|
||||
|
||||
// BBS
|
||||
def = this->add("temperature_vitrification", coInts);
|
||||
def->label = L("Softening temperature");
|
||||
|
|
@ -6055,14 +6046,14 @@ void PrintConfigDef::init_fff_params()
|
|||
def->sidetext = "";
|
||||
def->set_default_value(new ConfigOptionFloats{0.3});
|
||||
|
||||
// // BBS
|
||||
// def = this->add("prime_volume", coFloat);
|
||||
// def->label = L("Prime volume");
|
||||
// def->tooltip = L("The volume of material to prime extruder on tower.");
|
||||
// def->sidetext = u8"mm³"; // cubic milimeters, don't need translation
|
||||
// def->min = 1.0;
|
||||
// def->mode = comSimple;
|
||||
// def->set_default_value(new ConfigOptionFloat(45.));
|
||||
// BBS
|
||||
def = this->add("prime_volume", coFloat);
|
||||
def->label = L("Prime volume");
|
||||
def->tooltip = L("The volume of material to prime extruder on tower.");
|
||||
def->sidetext = u8"mm³"; // cubic milimeters, don't need translation
|
||||
def->min = 1.0;
|
||||
def->mode = comSimple;
|
||||
def->set_default_value(new ConfigOptionFloat(45.));
|
||||
|
||||
def = this->add("wipe_tower_x", coFloats);
|
||||
//def->label = L("Position X");
|
||||
|
|
@ -7208,12 +7199,8 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
|
|||
} else if (opt_key == "wipe_tower_width") {
|
||||
opt_key = "prime_tower_width";
|
||||
} else if (opt_key == "wiping_volume") {
|
||||
opt_key = "filament_prime_volume";
|
||||
}
|
||||
else if (opt_key == "prime_volume") {
|
||||
opt_key = "filament_prime_volume";
|
||||
}
|
||||
else if (opt_key == "wipe_tower_brim_width") {
|
||||
opt_key = "prime_volume";
|
||||
} else if (opt_key == "wipe_tower_brim_width") {
|
||||
opt_key = "prime_tower_brim_width";
|
||||
} else if (opt_key == "tool_change_gcode") {
|
||||
opt_key = "change_filament_gcode";
|
||||
|
|
@ -7404,8 +7391,7 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
|
|||
"retraction_distance_when_cut",
|
||||
"internal_bridge_support_thickness","extruder_clearance_max_radius", "top_area_threshold", "reduce_wall_solid_infill","filament_load_time","filament_unload_time",
|
||||
"smooth_coefficient", "overhang_totally_speed", "silent_mode",
|
||||
"overhang_speed_classic",
|
||||
"prime_volume"
|
||||
"overhang_speed_classic", "filament_prime_volume",
|
||||
};
|
||||
|
||||
if (ignore.find(opt_key) != ignore.end()) {
|
||||
|
|
|
|||
|
|
@ -1491,6 +1491,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
|
|||
|
||||
|
||||
// BBS: wipe tower is only used for priming
|
||||
((ConfigOptionFloat, prime_volume))
|
||||
((ConfigOptionFloats, flush_multiplier))
|
||||
((ConfigOptionFloat, z_offset))
|
||||
// BBS: project filaments
|
||||
|
|
@ -1528,8 +1529,6 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE(
|
|||
((ConfigOptionPoint, bed_mesh_probe_distance))
|
||||
((ConfigOptionFloat, adaptive_bed_mesh_margin))
|
||||
|
||||
((ConfigOptionFloats, filament_prime_volume))
|
||||
|
||||
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -133,17 +133,6 @@ inline DataType round_divide(DataType dividend, DataType divisor) //!< Return di
|
|||
return (dividend + divisor / 2) / divisor;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
T get_max_element(const std::vector<T> &vec)
|
||||
{
|
||||
static_assert(std::is_arithmetic<T>::value, "T must be of numeric type.");
|
||||
if (vec.empty())
|
||||
return static_cast<T>(0);
|
||||
|
||||
return *std::max_element(vec.begin(), vec.end());
|
||||
}
|
||||
|
||||
|
||||
template <typename From, typename To>
|
||||
std::vector<To> convert_vector(const std::vector<From>& src) {
|
||||
std::vector<To> dst;
|
||||
|
|
|
|||
|
|
@ -2936,7 +2936,7 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re
|
|||
float w = dynamic_cast<const ConfigOptionFloat*>(m_config->option("prime_tower_width"))->value;
|
||||
float a = dynamic_cast<const ConfigOptionFloat*>(proj_cfg.option("wipe_tower_rotation_angle"))->value;
|
||||
// BBS
|
||||
std::vector<double> v = dynamic_cast<const ConfigOptionFloats*>(m_config->option("filament_prime_volume"))->values;
|
||||
float v = dynamic_cast<const ConfigOptionFloat*>(m_config->option("prime_volume"))->value;
|
||||
Vec3d plate_origin = ppl.get_plate(plate_id)->get_origin();
|
||||
|
||||
const Print* print = m_process->fff_print();
|
||||
|
|
@ -2946,9 +2946,8 @@ void GLCanvas3D::reload_scene(bool refresh_immediately, bool force_full_scene_re
|
|||
|
||||
float brim_width = print->wipe_tower_data(filaments_count).brim_width;
|
||||
const DynamicPrintConfig &print_cfg = wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||
double wipe_vol = get_max_element(v);
|
||||
int nozzle_nums = wxGetApp().preset_bundle->get_printer_extruder_count();
|
||||
Vec3d wipe_tower_size = ppl.get_plate(plate_id)->estimate_wipe_tower_size(print_cfg, w, wipe_vol, nozzle_nums, 0, false, dynamic_cast<const ConfigOptionBool*>(dconfig.option("enable_wrapping_detection"))->value);
|
||||
Vec3d wipe_tower_size = ppl.get_plate(plate_id)->estimate_wipe_tower_size(print_cfg, w, v, nozzle_nums, 0, false, dynamic_cast<const ConfigOptionBool*>(dconfig.option("enable_wrapping_detection"))->value);
|
||||
|
||||
{
|
||||
const float margin = WIPE_TOWER_MARGIN + brim_width;
|
||||
|
|
|
|||
|
|
@ -2061,11 +2061,11 @@ arrangement::ArrangePolygon PartPlate::estimate_wipe_tower_polygon(const Dynamic
|
|||
float y = dynamic_cast<const ConfigOptionFloats*>(config.option("wipe_tower_y"))->get_at(plate_index);
|
||||
float w = dynamic_cast<const ConfigOptionFloat*>(config.option("prime_tower_width"))->value;
|
||||
//float a = dynamic_cast<const ConfigOptionFloat*>(config.option("wipe_tower_rotation_angle"))->value;
|
||||
std::vector<double> v = dynamic_cast<const ConfigOptionFloats*>(config.option("filament_prime_volume"))->values;
|
||||
float v = dynamic_cast<const ConfigOptionFloat*>(config.option("prime_volume"))->value;
|
||||
float tower_brim_width = dynamic_cast<const ConfigOptionFloat*>(config.option("prime_tower_brim_width"))->value;
|
||||
const ConfigOptionBool * wrapping_opt = dynamic_cast<const ConfigOptionBool *>(config.option("enable_wrapping_detection"));
|
||||
bool enable_wrapping = (wrapping_opt != nullptr) && wrapping_opt->value;
|
||||
wt_size = estimate_wipe_tower_size(config, w, get_max_element(v), extruder_count, plate_extruder_size, use_global_objects, enable_wrapping);
|
||||
wt_size = estimate_wipe_tower_size(config, w, v, extruder_count, plate_extruder_size, use_global_objects, enable_wrapping);
|
||||
int plate_width=m_width, plate_depth=m_depth;
|
||||
float depth = wt_size(1);
|
||||
float margin = WIPE_TOWER_MARGIN + tower_brim_width, wp_brim_width = 0.f;
|
||||
|
|
|
|||
|
|
@ -4377,7 +4377,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
|||
"nozzle_height", "skirt_type", "skirt_loops", "skirt_speed","min_skirt_length", "skirt_distance", "skirt_start_angle",
|
||||
"brim_width", "brim_object_gap", "brim_type", "nozzle_diameter", "single_extruder_multi_material", "preferred_orientation",
|
||||
"enable_prime_tower", "wipe_tower_x", "wipe_tower_y", "prime_tower_width", "prime_tower_brim_width", "prime_tower_skip_points", "prime_tower_enable_framework",
|
||||
"prime_tower_infill_gap","filament_prime_volume",
|
||||
"prime_tower_infill_gap", "prime_volume",
|
||||
"extruder_colour", "filament_colour", "filament_type", "material_colour", "printable_height", "extruder_printable_height", "printer_model", "printer_technology",
|
||||
// These values are necessary to construct SlicingParameters by the Canvas3D variable layer height editor.
|
||||
"layer_height", "initial_layer_print_height", "min_layer_height", "max_layer_height",
|
||||
|
|
@ -5696,17 +5696,6 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
|||
for (int index = 0; index < filament_count; index++)
|
||||
filament_adhesiveness_category_values[index] = 100;
|
||||
|
||||
ConfigOptionFloats *filament_prime_volume_option = config.option<ConfigOptionFloats>("filament_prime_volume", true);
|
||||
|
||||
std::vector<double> &filament_prime_volume_values = filament_prime_volume_option->values;
|
||||
filament_prime_volume_values.resize(filament_count);
|
||||
for (int index = 0; index < filament_count; index++) {
|
||||
if (old_filament_prime_volume != 0.)
|
||||
filament_prime_volume_values[index] = old_filament_prime_volume;
|
||||
else
|
||||
filament_prime_volume_values[index] = filament_prime_volume_values[0];
|
||||
}
|
||||
|
||||
std::vector<std::string> &diff_settings = config.option<ConfigOptionStrings>("different_settings_to_system", true)->values;
|
||||
diff_settings.resize(filament_count + 2);
|
||||
|
||||
|
|
@ -5722,7 +5711,6 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
|||
std::vector<std::string> diff_filament_keys;
|
||||
std::string diff_filament_settings = diff_settings[index + 1];
|
||||
Slic3r::unescape_strings_cstyle(diff_filament_settings, diff_filament_keys);
|
||||
diff_filament_keys.emplace_back("filament_prime_volume");
|
||||
diff_filament_keys.emplace_back("filament_adhesiveness_category");
|
||||
diff_filament_settings = Slic3r::escape_strings_cstyle(diff_filament_keys);
|
||||
diff_settings[index + 1] = diff_filament_settings;
|
||||
|
|
@ -15437,7 +15425,9 @@ void Plater::on_config_change(const DynamicPrintConfig &config)
|
|||
boost::starts_with(opt_key, "prime_tower") ||
|
||||
boost::starts_with(opt_key, "wipe_tower") ||
|
||||
opt_key == "filament_minimal_purge_on_wipe_tower" ||
|
||||
opt_key == "single_extruder_multi_material") {
|
||||
opt_key == "single_extruder_multi_material" ||
|
||||
// BBS
|
||||
opt_key == "prime_volume") {
|
||||
update_scheduled = true;
|
||||
}
|
||||
else if(opt_key == "extruder_colour") {
|
||||
|
|
|
|||
|
|
@ -2582,6 +2582,7 @@ void TabPrint::build()
|
|||
optgroup->append_single_option_line("prime_tower_skip_points", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("prime_tower_enable_framework", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("prime_tower_width", "multimaterial_settings_prime_tower#width");
|
||||
optgroup->append_single_option_line("prime_volume", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("prime_tower_brim_width", "multimaterial_settings_prime_tower#brim-width");
|
||||
optgroup->append_single_option_line("prime_tower_infill_gap", "multimaterial_settings_prime_tower");
|
||||
optgroup->append_single_option_line("wipe_tower_rotation_angle", "multimaterial_settings_prime_tower#wipe-tower-rotation-angle");
|
||||
|
|
@ -3689,7 +3690,6 @@ void TabFilament::build()
|
|||
optgroup->append_single_option_line("filament_is_support");
|
||||
optgroup->append_single_option_line("filament_change_length");
|
||||
|
||||
optgroup->append_single_option_line("filament_prime_volume");
|
||||
//optgroup->append_single_option_line("filament_colour");
|
||||
optgroup->append_single_option_line("required_nozzle_HRC");
|
||||
optgroup->append_single_option_line("default_filament_colour");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue