diff --git a/resources/profiles/QIDITechnology.ini b/resources/profiles/QIDITechnology.ini index 12f8493..ca63fc9 100644 --- a/resources/profiles/QIDITechnology.ini +++ b/resources/profiles/QIDITechnology.ini @@ -64,6 +64,7 @@ compatible_printers = compatible_printers_condition = complete_objects = 0 default_acceleration = 10000 +detect_narrow_internal_solid_infill = 1 dont_support_bridges = 0 draft_shield = disabled elefant_foot_compensation = 0 @@ -121,6 +122,7 @@ max_volumetric_speed = 0 min_bead_width = 85% min_feature_size = 25% min_skirt_length = 5 +mmu_segmented_region_interlocking_depth = 0 mmu_segmented_region_max_width = 0 notes = only_retract_when_crossing_perimeters = 0 @@ -145,7 +147,7 @@ raft_first_layer_density = 90% raft_first_layer_expansion = 3 raft_layers = 0 resolution = 0 -seam_gap = 15 +seam_gap = 15% seam_position = aligned single_extruder_multi_material_priming = 1 skirt_distance = 6 @@ -198,7 +200,7 @@ support_tree_tip_diameter = 0.8 support_tree_top_rate = 15% thick_bridges = 0 thin_walls = 0 -top_area_threshold = 100 +top_area_threshold = 100% top_fill_pattern = monotoniclines top_infill_extrusion_width = 0.42 top_one_wall_type = all_top @@ -224,8 +226,10 @@ wipe_tower_rotation_angle = 0 wipe_tower_width = 40 wipe_tower_x = 180 wipe_tower_y = 140 -xy_size_compensation = 0 +xy_contour_compensation = 0 +xy_hole_compensation = 0 +# Machine Print preset [print:*X-MAX 3*] inherits = *common* @@ -589,6 +593,9 @@ filament_loading_speed = 28 filament_loading_speed_start = 3 filament_max_volumetric_speed = 20 filament_minimal_purge_on_wipe_tower = 15 +filament_multitool_ramming = 0 +filament_multitool_ramming_flow = 10 +filament_multitool_ramming_volume = 10 filament_notes = "" filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" filament_retract_before_travel = nil @@ -601,15 +608,20 @@ filament_retract_lift_below = nil filament_retract_restart_extra = nil filament_retract_speed = nil filament_settings_id = +filament_shrink = 100 filament_soluble = 0 filament_spool_weight = 0 filament_toolchange_delay = 0 +filament_travel_max_lift = nil +filament_travel_ramping_lift = nil +filament_travel_slope = nil filament_type = PLA filament_unload_time = 0 filament_unloading_speed = 90 filament_unloading_speed_start = 100 filament_vendor = QIDI filament_wipe = nil +filament_wipe_distance = nil first_layer_bed_temperature = 60 first_layer_temperature = 210 full_fan_speed_layer = 0 @@ -760,6 +772,7 @@ fan_below_layer_time = 10 filament_colour = #696969 filament_density = 1.09 filament_max_volumetric_speed = 10 +filament_travel_ramping_lift = 0 filament_type = PA12-CF first_layer_bed_temperature = 80 first_layer_temperature = 290 @@ -783,6 +796,7 @@ fan_below_layer_time = 10 filament_colour = #4F4F4F filament_density = 1.20 filament_max_volumetric_speed = 14 +filament_travel_ramping_lift = 0 filament_type = PAHT-CF first_layer_bed_temperature = 80 first_layer_temperature = 310 @@ -828,6 +842,7 @@ fan_below_layer_time = 10 filament_colour = #323232 filament_density = 1.30 filament_max_volumetric_speed = 12 +filament_travel_ramping_lift = 0 filament_type = PET-CF first_layer_bed_temperature = 80 first_layer_temperature = 320 @@ -1884,7 +1899,7 @@ bed_custom_texture = bed_exclude_area_0 = bed_exclude_area_1 = bed_shape = 0x0,325x0,325x325,0x325 -before_layer_gcode = G92 E0 +before_layer_gcode = between_objects_gcode = binary_gcode = 0 chamber_fan = 1 @@ -1903,7 +1918,7 @@ gcode_flavor = klipper high_current_on_filament_swap = 0 host_type = moonraker inherits = -layer_gcode = +layer_gcode = G92 E0 machine_limits_usage = time_estimate_only machine_max_acceleration_e = 5000 machine_max_acceleration_extruding = 20000 @@ -1951,7 +1966,7 @@ retract_restart_extra_toolchange = 0 retract_speed = 30 silent_mode = 0 single_extruder_multi_material = 0 -start_gcode = PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[first_layer_bed_temperature]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM109 S[first_layer_temperature]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[first_layer_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000 +start_gcode = PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[first_layer_bed_temperature]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM109 S[first_layer_temperature]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[first_layer_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * first_layer_height * nozzle_diameter[0]} F3000\n template_custom_gcode = thumbnails = thumbnails_format = PNG @@ -1976,6 +1991,7 @@ auxiliary_fan = 1 bed_shape = 0x0,325x0,325x325,0x325 chamber_temperature = 1 max_print_height = 315 +retract_lift_below = 314 thumbnails = 380x380/QIDI, 210x210/QIDI, 110x110/PNG [printer:X-MAX 3 0.2 nozzle] @@ -2022,6 +2038,7 @@ auxiliary_fan = 1 bed_shape = 0x0,280x0,280x280,0x280 chamber_temperature = 1 max_print_height = 270 +retract_lift_below = 269 thumbnails = 380x380/QIDI, 210x210/QIDI, 110x110/PNG [printer:X-Plus 3 0.2 nozzle] @@ -2066,6 +2083,7 @@ inherits = *common* printer_model = X-smart 3 bed_shape = 0x0,175x0,175x180,0x180 max_print_height = 170 +retract_lift_below = 169 thumbnails = 205x205/QIDI, 140x140/QIDI, 110x110/PNG [printer:X-smart 3 0.2 nozzle] diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index db2fca7..01414b2 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -190,6 +190,8 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n } else if ( opt_key == "first_layer_height" || opt_key == "nozzle_diameter" + //Y23 + || opt_key == "filament_shrink" || opt_key == "resolution" // 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. diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 4b3f14f..962ed0b 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1205,6 +1205,19 @@ void PrintConfigDef::init_fff_params() def->min = 0; def->set_default_value(new ConfigOptionFloats { 1.75 }); + //Y23 + def = this->add("filament_shrink", coPercents); + def->label = L("Shrinkage"); + def->tooltip = L("Enter the shrinkage percentage that the filament will get after cooling (94% if you measure 94mm instead of 100mm)." + " The part will be scaled in xy to compensate." + " Only the filament used for the perimeter is taken into account." + "\nBe sure to allow enough space between objects, as this compensation is done after the checks."); + def->sidetext = L("%"); + def->ratio_over = ""; + def->min = 10; + def->mode = comExpert; + def->set_default_value(new ConfigOptionPercents{ 100 }); + def = this->add("filament_density", coFloats); def->label = L("Density"); def->tooltip = L("Enter your filament density here. This is only for statistical information. " diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index d8d0366..e3af18e 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -839,6 +839,8 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE( ((ConfigOptionInts, fan_below_layer_time)) ((ConfigOptionStrings, filament_colour)) ((ConfigOptionStrings, filament_notes)) + //Y23 + ((ConfigOptionPercents, filament_shrink)) ((ConfigOptionFloat, first_layer_acceleration)) ((ConfigOptionInts, first_layer_bed_temperature)) ((ConfigOptionFloatOrPercent, first_layer_extrusion_width)) diff --git a/src/libslic3r/PrintObjectSlice.cpp b/src/libslic3r/PrintObjectSlice.cpp index 5514f25..2ea6646 100644 --- a/src/libslic3r/PrintObjectSlice.cpp +++ b/src/libslic3r/PrintObjectSlice.cpp @@ -234,6 +234,7 @@ static std::vector::const_iterator layer_ } static std::vector> slices_to_regions( + const PrintConfig &print_config, ModelVolumePtrs model_volumes, const PrintObjectRegions &print_object_regions, const std::vector &zs, @@ -396,6 +397,21 @@ static std::vector> slices_to_regions( }); } +//Y23 + for (const std::unique_ptr& pr : print_object_regions.all_regions) { + if (pr.get()) { + std::vector& region_polys = slices_by_region[pr->print_object_region_id()]; + const size_t extruder_id = pr->extruder(FlowRole::frPerimeter) - 1; + double scale = print_config.filament_shrink.values[extruder_id] * 0.01; + if (scale != 1) { + scale = 1 / scale; + for (ExPolygons& polys : region_polys) + for (ExPolygon& poly : polys) + poly.scale(scale); + } + } + } + return slices_by_region; } @@ -698,7 +714,7 @@ void PrintObject::slice_volumes() } std::vector slice_zs = zs_from_layers(m_layers); - std::vector> region_slices = slices_to_regions(this->model_object()->volumes, *m_shared_regions, slice_zs, + std::vector> region_slices = slices_to_regions(print->config(), this->model_object()->volumes, *m_shared_regions, slice_zs, slice_volumes_inner( print->config(), this->config(), this->trafo_centered(), this->model_object()->volumes, m_shared_regions->layer_ranges, slice_zs, throw_on_cancel_callback), diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 7b90ae4..70a04e8 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -2165,6 +2165,8 @@ void TabFilament::build() optgroup->append_single_option_line("filament_diameter"); optgroup->append_single_option_line("extrusion_multiplier"); optgroup->append_single_option_line("filament_density"); + //Y23 + optgroup->append_single_option_line("filament_shrink"); optgroup->append_single_option_line("filament_cost"); optgroup->append_single_option_line("filament_spool_weight"); //B