Po eilinio programos atnaujinimo vėl reikia modifikuoti Prusa Slicerį, kad veiktų su Diamond ekstruderiu. Diff failo turinys pradinio programos kodo modifikavimui:
diff -ruN PrusaSlicer-version_2.2.0/src/libslic3r/GCode/WipeTower.cpp PrusaSlicer-version_2.2.0.mod/src/libslic3r/GCode/WipeTower.cpp
--- PrusaSlicer-version_2.2.0/src/libslic3r/GCode/WipeTower.cpp 2020-03-21 12:55:51.000000000 +0200
+++ PrusaSlicer-version_2.2.0.mod/src/libslic3r/GCode/WipeTower.cpp 2020-07-01 09:18:32.160678381 +0300
@@ -746,8 +746,7 @@
if (m_set_extruder_trimpot)
writer.set_extruder_trimpot(550); // Reset the extruder current to a normal value.
writer.speed_override_restore();
- writer.feedrate(6000)
- .flush_planner_queue()
+ writer.flush_planner_queue()
.reset_extruder()
.append("; CP TOOLCHANGE END\n"
";------------------\n"
@@ -799,10 +798,11 @@
// the brim shall have 'normal' spacing with no extra void space
float spacing = m_perimeter_width - m_layer_height*float(1.-M_PI_4);
for (size_t i = 0; i < 4; ++ i) {
- box.expand(spacing);
+ //box.expand(spacing);
writer.travel (box.ld, 7000)
.extrude(box.lu, 2100).extrude(box.ru)
.extrude(box.rd ).extrude(box.ld);
+ box.expand(m_perimeter_width);
}
writer.travel(wipeTower_box.ld, 7000); // Move to the front left corner.
@@ -935,18 +935,18 @@
float turning_point = (!m_left_to_right ? xl : xr );
if (m_semm && (m_cooling_tube_retraction != 0 || m_cooling_tube_length != 0)) {
float total_retraction_distance = m_cooling_tube_retraction + m_cooling_tube_length/2.f - 15.f; // the 15mm is reserved for the first part after ramming
- writer.suppress_preview()
- .retract(15.f, m_filpar[m_current_tool].unloading_speed_start * 60.f) // feedrate 5000mm/min = 83mm/s
- .retract(0.70f * total_retraction_distance, 1.0f * m_filpar[m_current_tool].unloading_speed * 60.f)
- .retract(0.20f * total_retraction_distance, 0.5f * m_filpar[m_current_tool].unloading_speed * 60.f)
- .retract(0.10f * total_retraction_distance, 0.3f * m_filpar[m_current_tool].unloading_speed * 60.f)
-
- /*.load_move_x_advanced(turning_point, -15.f, 83.f, 50.f) // this is done at fixed speed
- .load_move_x_advanced(old_x, -0.70f * total_retraction_distance, 1.0f * m_filpar[m_current_tool].unloading_speed)
- .load_move_x_advanced(turning_point, -0.20f * total_retraction_distance, 0.5f * m_filpar[m_current_tool].unloading_speed)
- .load_move_x_advanced(old_x, -0.10f * total_retraction_distance, 0.3f * m_filpar[m_current_tool].unloading_speed)
- .travel(old_x, writer.y()) // in case previous move was shortened to limit feedrate*/
- .resume_preview();
+// writer.suppress_preview()
+// .retract(15.f, m_filpar[m_current_tool].unloading_speed_start * 60.f) // feedrate 5000mm/min = 83mm/s
+// .retract(0.70f * total_retraction_distance, 1.0f * m_filpar[m_current_tool].unloading_speed * 60.f)
+// .retract(0.20f * total_retraction_distance, 0.5f * m_filpar[m_current_tool].unloading_speed * 60.f)
+// .retract(0.10f * total_retraction_distance, 0.3f * m_filpar[m_current_tool].unloading_speed * 60.f)
+//
+// /*.load_move_x_advanced(turning_point, -15.f, 83.f, 50.f) // this is done at fixed speed
+// .load_move_x_advanced(old_x, -0.70f * total_retraction_distance, 1.0f * m_filpar[m_current_tool].unloading_speed)
+// .load_move_x_advanced(turning_point, -0.20f * total_retraction_distance, 0.5f * m_filpar[m_current_tool].unloading_speed)
+// .load_move_x_advanced(old_x, -0.10f * total_retraction_distance, 0.3f * m_filpar[m_current_tool].unloading_speed)
+// .travel(old_x, writer.y()) // in case previous move was shortened to limit feedrate*/
+// .resume_preview();
}
// Wipe tower should only change temperature with single extruder MM. Otherwise, all temperatures should
// be already set and there is no need to change anything. Also, the temperature could be changed
@@ -983,7 +983,7 @@
// let's wait is necessary:
writer.wait(m_filpar[m_current_tool].delay);
// we should be at the beginning of the cooling tube again - let's move to parking position:
- writer.retract(-m_cooling_tube_length/2.f+m_parking_pos_retraction-m_cooling_tube_retraction, 2000);
+ //writer.retract(-m_cooling_tube_length/2.f+m_parking_pos_retraction-m_cooling_tube_retraction, 2000);
// this is to align ramming and future wiping extrusions, so the future y-steps can be uniform from the start:
// the perimeter_width will later be subtracted, it is there to not load while moving over just extruded material
@@ -1012,7 +1012,7 @@
// gcode could have left the extruder somewhere, we cannot just start extruding. We should also inform the
// postprocessor that we absolutely want to have this in the gcode, even if it thought it is the same as before.
Vec2f current_pos = writer.pos_rotated();
- writer.append(std::string("G1 X") + std::to_string(current_pos.x()) + " Y" + std::to_string(current_pos.y()) + never_skip_tag() + "\n");
+ //writer.append(std::string("G1 X") + std::to_string(current_pos.x()) + " Y" + std::to_string(current_pos.y()) + never_skip_tag() + "\n");
// The toolchange Tn command will be inserted later, only in case that the user does
// not provide a custom toolchange gcode.
@@ -1038,15 +1038,6 @@
writer.append("; CP TOOLCHANGE LOAD\n")
.suppress_preview()
- /*.load_move_x_advanced(turning_point, 0.2f * edist, 0.3f * m_filpar[m_current_tool].loading_speed) // Acceleration
- .load_move_x_advanced(oldx, 0.5f * edist, m_filpar[m_current_tool].loading_speed) // Fast phase
- .load_move_x_advanced(turning_point, 0.2f * edist, 0.3f * m_filpar[m_current_tool].loading_speed) // Slowing down
- .load_move_x_advanced(oldx, 0.1f * edist, 0.1f * m_filpar[m_current_tool].loading_speed) // Super slow*/
-
- .load(0.2f * edist, 60.f * m_filpar[m_current_tool].loading_speed_start)
- .load_move_x_advanced(turning_point, 0.7f * edist, m_filpar[m_current_tool].loading_speed) // Fast phase
- .load_move_x_advanced(oldx, 0.1f * edist, 0.1f * m_filpar[m_current_tool].loading_speed) // Super slow*/
-
.travel(oldx, writer.y()) // in case last move was shortened to limit x feedrate
.resume_preview();
@@ -1094,9 +1085,9 @@
float traversed_x = writer.x();
if (m_left_to_right)
- writer.extrude(xr - (i % 4 == 0 ? 0 : 1.5f*m_perimeter_width), writer.y(), wipe_speed * wipe_coeff);
+ writer.extrude(xr - (i % 4 == 0 ? 0 : 1.5f*m_perimeter_width), writer.y());
else
- writer.extrude(xl + (i % 4 == 1 ? 0 : 1.5f*m_perimeter_width), writer.y(), wipe_speed * wipe_coeff);
+ writer.extrude(xl + (i % 4 == 1 ? 0 : 1.5f*m_perimeter_width), writer.y());
if (writer.y()+float(EPSILON) > cleaning_box.lu.y()-0.5f*m_perimeter_width)
break; // in case next line would not fit
@@ -1104,7 +1095,7 @@
traversed_x -= writer.x();
x_to_wipe -= std::abs(traversed_x);
if (x_to_wipe < WT_EPSILON) {
- writer.travel(m_left_to_right ? xl + 1.5f*m_perimeter_width : xr - 1.5f*m_perimeter_width, writer.y(), 7200);
+ writer.travel(m_left_to_right ? xl + 1.5f*m_perimeter_width : xr - 1.5f*m_perimeter_width, writer.y());
break;
}
// stepping to the next line:
diff -ruN PrusaSlicer-version_2.2.0/src/libslic3r/PrintConfig.cpp PrusaSlicer-version_2.2.0.mod/src/libslic3r/PrintConfig.cpp
--- PrusaSlicer-version_2.2.0/src/libslic3r/PrintConfig.cpp 2020-03-21 12:55:51.000000000 +0200
+++ PrusaSlicer-version_2.2.0.mod/src/libslic3r/PrintConfig.cpp 2020-07-01 09:20:27.311028243 +0300
@@ -2215,17 +2215,17 @@
def->tooltip = L("This vector saves required volumes to change from/to each tool used on the "
"wipe tower. These values are used to simplify creation of the full purging "
"volumes below.");
- def->set_default_value(new ConfigOptionFloats { 70.f, 70.f, 70.f, 70.f, 70.f, 70.f, 70.f, 70.f, 70.f, 70.f });
+ def->set_default_value(new ConfigOptionFloats { 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f, 10.f });
def = this->add("wiping_volumes_matrix", coFloats);
def->label = L("Purging volumes - matrix");
def->tooltip = L("This matrix describes volumes (in cubic milimetres) required to purge the"
" new filament on the wipe tower for any given pair of tools.");
- def->set_default_value(new ConfigOptionFloats { 0.f, 140.f, 140.f, 140.f, 140.f,
- 140.f, 0.f, 140.f, 140.f, 140.f,
- 140.f, 140.f, 0.f, 140.f, 140.f,
- 140.f, 140.f, 140.f, 0.f, 140.f,
- 140.f, 140.f, 140.f, 140.f, 0.f });
+ def->set_default_value(new ConfigOptionFloats { 0.f, 20.f, 20.f, 20.f, 20.f,
+ 20.f, 0.f, 20.f, 20.f, 20.f,
+ 20.f, 20.f, 0.f, 20.f, 20.f,
+ 20.f, 20.f, 20.f, 0.f, 20.f,
+ 20.f, 20.f, 20.f, 20.f, 0.f });
def = this->add("wipe_tower_x", coFloat);
def->label = L("Position X");
diff -ruN PrusaSlicer-version_2.2.0/version.inc PrusaSlicer-version_2.2.0.mod/version.inc
--- PrusaSlicer-version_2.2.0/version.inc 2020-03-21 12:55:51.000000000 +0200
+++ PrusaSlicer-version_2.2.0.mod/version.inc 2020-07-01 10:05:24.704734955 +0300
@@ -4,6 +4,6 @@
set(SLIC3R_APP_NAME "PrusaSlicer")
set(SLIC3R_APP_KEY "PrusaSlicer")
set(SLIC3R_VERSION "2.2.0")
-set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN")
+set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+Diamond Edition by VJ")
set(SLIC3R_RC_VERSION "2,2,0,0")
set(SLIC3R_RC_VERSION_DOTS "2.2.0.0")