mirror of
https://github.com/QIDITECH/QIDIStudio.git
synced 2026-02-07 04:11:50 +03:00
update libslic3r
This commit is contained in:
@@ -91,6 +91,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
||||
"enable_overhang_bridge_fan"
|
||||
"overhang_fan_speed",
|
||||
"overhang_fan_threshold",
|
||||
"overhang_threshold_participating_cooling",
|
||||
"slow_down_for_layer_cooling",
|
||||
"default_acceleration",
|
||||
"deretraction_speed",
|
||||
@@ -101,7 +102,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
||||
"post_process",
|
||||
"extruder_clearance_height_to_rod",
|
||||
"extruder_clearance_height_to_lid",
|
||||
"extruder_clearance_radius",
|
||||
"extruder_clearance_dist_to_rod",
|
||||
"nozzle_height",
|
||||
"extruder_clearance_max_radius",
|
||||
"extruder_colour",
|
||||
@@ -121,6 +122,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
||||
"accel_to_decel_enable",
|
||||
"accel_to_decel_factor",
|
||||
// QDS
|
||||
"supertack_plate_temp_initial_layer",
|
||||
"cool_plate_temp_initial_layer",
|
||||
"eng_plate_temp_initial_layer",
|
||||
"hot_plate_temp_initial_layer",
|
||||
@@ -224,6 +226,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
||||
|| opt_key == "nozzle_diameter"
|
||||
|| opt_key == "resolution"
|
||||
|| opt_key == "precise_z_height"
|
||||
|| opt_key == "filament_shrink"
|
||||
// Spiral Vase forces different kind of slicing than the normal model:
|
||||
// In Spiral Vase mode, holes are closed and only the largest area contour is kept at each layer.
|
||||
// Therefore toggling the Spiral Vase on / off requires complete reslicing.
|
||||
@@ -239,6 +242,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
||||
|| opt_key == "single_extruder_multi_material"
|
||||
|| opt_key == "nozzle_temperature"
|
||||
// QDS
|
||||
|| opt_key == "supertack_plate_temp"
|
||||
|| opt_key == "cool_plate_temp"
|
||||
|| opt_key == "eng_plate_temp"
|
||||
|| opt_key == "hot_plate_temp"
|
||||
@@ -266,6 +270,10 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n
|
||||
steps.emplace_back(psSkirtBrim);
|
||||
} else if (opt_key == "filament_soluble"
|
||||
|| opt_key == "filament_is_support"
|
||||
|| opt_key == "filament_scarf_seam_type"
|
||||
|| opt_key == "filament_scarf_height"
|
||||
|| opt_key == "filament_scarf_gap"
|
||||
|| opt_key == "filament_scarf_length"
|
||||
|| opt_key == "independent_support_layer_height") {
|
||||
steps.emplace_back(psWipeTower);
|
||||
// Soluble support interface / non-soluble base interface produces non-soluble interface layers below soluble interface layers.
|
||||
@@ -538,7 +546,7 @@ StringObjectException Print::sequential_print_clearance_valid(const Print &print
|
||||
bool all_objects_are_short = print.is_all_objects_are_short();
|
||||
// Shrink the extruder_clearance_radius a tiny bit, so that if the object arrangement algorithm placed the objects
|
||||
// exactly by satisfying the extruder_clearance_radius, this test will not trigger collision.
|
||||
float obj_distance = all_objects_are_short ? scale_(0.5*MAX_OUTER_NOZZLE_RADIUS-0.1) : scale_(0.5*print.config().extruder_clearance_radius.value-0.1);
|
||||
float obj_distance = all_objects_are_short ? scale_(0.5*MAX_OUTER_NOZZLE_RADIUS-0.1) : scale_(0.5*print.config().extruder_clearance_max_radius.value-0.1);
|
||||
|
||||
for (const PrintObject *print_object : print.objects()) {
|
||||
assert(! print_object->model_object()->instances.empty());
|
||||
@@ -771,7 +779,7 @@ StringObjectException Print::sequential_print_clearance_valid(const Print &print
|
||||
{
|
||||
auto inst = print_instance_with_bounding_box[k].print_instance;
|
||||
// 只需要考虑喷嘴到滑杆的偏移量,这个比整个工具头的碰撞半径要小得多
|
||||
auto bbox = print_instance_with_bounding_box[k].bounding_box.inflated(-scale_(0.5 * print.config().extruder_clearance_max_radius.value));
|
||||
auto bbox = print_instance_with_bounding_box[k].bounding_box.inflated(scale_(print_config.extruder_clearance_dist_to_rod.value - print_config.extruder_clearance_max_radius.value));
|
||||
auto iy1 = bbox.min.y();
|
||||
auto iy2 = bbox.max.y();
|
||||
(const_cast<ModelInstance*>(inst->model_instance))->arrange_order = k+1;
|
||||
@@ -2177,12 +2185,8 @@ Polygons Print::first_layer_islands() const
|
||||
for (ExPolygon &expoly : object->m_layers.front()->lslices)
|
||||
object_islands.push_back(expoly.contour);
|
||||
if (!object->support_layers().empty()) {
|
||||
if (object->support_layers().front()->support_type==stInnerNormal)
|
||||
object->support_layers().front()->support_fills.polygons_covered_by_spacing(object_islands, float(SCALED_EPSILON));
|
||||
else if(object->support_layers().front()->support_type==stInnerTree) {
|
||||
ExPolygons &expolys_first_layer = object->m_support_layers.front()->lslices;
|
||||
for (ExPolygon &expoly : expolys_first_layer) { object_islands.push_back(expoly.contour); }
|
||||
}
|
||||
ExPolygons &expolys_first_layer = object->m_support_layers.front()->support_islands;
|
||||
for (ExPolygon &expoly : expolys_first_layer) { object_islands.push_back(expoly.contour); }
|
||||
}
|
||||
islands.reserve(islands.size() + object_islands.size() * object->instances().size());
|
||||
for (const PrintInstance &instance : object->instances())
|
||||
@@ -2624,7 +2628,6 @@ std::string PrintStatistics::finalize_output_path(const std::string &path_in) co
|
||||
#define JSON_SUPPORT_LAYER_ISLANDS "support_islands"
|
||||
#define JSON_SUPPORT_LAYER_FILLS "support_fills"
|
||||
#define JSON_SUPPORT_LAYER_INTERFACE_ID "interface_id"
|
||||
#define JSON_SUPPORT_LAYER_TYPE "support_type"
|
||||
|
||||
#define JSON_LAYER_REGION_CONFIG_HASH "config_hash"
|
||||
#define JSON_LAYER_REGION_SLICES "slices"
|
||||
@@ -3286,7 +3289,6 @@ void extract_layer(const json& layer_json, Layer& layer) {
|
||||
void extract_support_layer(const json& support_layer_json, SupportLayer& support_layer) {
|
||||
extract_layer(support_layer_json, support_layer);
|
||||
|
||||
support_layer.support_type = support_layer_json[JSON_SUPPORT_LAYER_TYPE];
|
||||
//support_islands
|
||||
int islands_count = support_layer_json[JSON_SUPPORT_LAYER_ISLANDS].size();
|
||||
for (int islands_index = 0; islands_index < islands_count; islands_index++)
|
||||
@@ -3466,7 +3468,6 @@ int Print::export_cached_data(const std::string& directory, bool with_space)
|
||||
convert_layer_to_json(support_layer_json, support_layer);
|
||||
|
||||
support_layer_json[JSON_SUPPORT_LAYER_INTERFACE_ID] = support_layer->interface_id();
|
||||
support_layer_json[JSON_SUPPORT_LAYER_TYPE] = support_layer->support_type;
|
||||
|
||||
//support_islands
|
||||
for (const ExPolygon& support_island : support_layer->support_islands) {
|
||||
|
||||
Reference in New Issue
Block a user