PrusaSlicer 2.6.1 modifikavimas Diamond galvai

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.6.1/src/libslic3r/GCode/WipeTower.cpp PrusaSlicer-version_2.6.1.mod/src/libslic3r/GCode/WipeTower.cpp
--- PrusaSlicer-version_2.6.1/src/libslic3r/GCode/WipeTower.cpp	2023-09-06 09:42:26.000000000 +0300
+++ PrusaSlicer-version_2.6.1.mod/src/libslic3r/GCode/WipeTower.cpp	2023-09-15 08:43:50.786786971 +0300
@@ -743,7 +743,6 @@
             if (m_set_extruder_trimpot)
                 writer.set_extruder_trimpot(550);
             writer.speed_override_restore()
-                  .feedrate(m_travel_speed * 60.f)
                   .flush_planner_queue()
                   .reset_extruder()
                   .append("; CP PRIMING END\n"
@@ -827,8 +826,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(m_travel_speed * 60.f)
-          .flush_planner_queue()
+    writer.flush_planner_queue()
           .reset_extruder()
           .append("; CP TOOLCHANGE END\n"
                   ";------------------\n"
@@ -937,12 +935,12 @@
     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)
-              .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)
+//              .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
@@ -980,7 +978,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:
@@ -1014,10 +1012,10 @@
     // 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.feedrate(m_travel_speed * 60.f) // see https://github.com/prusa3d/PrusaSlicer/issues/5483
-          .append(std::string("G1 X") + Slic3r::float_to_string_decimal_point(current_pos.x())
-                             +  " Y"  + Slic3r::float_to_string_decimal_point(current_pos.y())
-                             + never_skip_tag() + "\n");
+//    writer.feedrate(m_travel_speed * 60.f) // see https://github.com/prusa3d/PrusaSlicer/issues/5483
+//          .append(std::string("G1 X") + Slic3r::float_to_string_decimal_point(current_pos.x())
+//                             +  " Y"  + Slic3r::float_to_string_decimal_point(current_pos.y())
+//                             + never_skip_tag() + "\n");
     writer.append("[deretraction_from_wipe_tower_generator]");
 
     // The toolchange Tn command will be inserted later, only in case that the user does
@@ -1044,9 +1042,9 @@
 
         writer.append("; CP TOOLCHANGE LOAD\n")
               .suppress_preview()
-              .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*/
+//              .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();
@@ -1097,9 +1095,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);
+            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);
+            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
@@ -1107,7 +1105,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.6.1/src/libslic3r/PrintConfig.cpp PrusaSlicer-version_2.6.1.mod/src/libslic3r/PrintConfig.cpp
--- PrusaSlicer-version_2.6.1/src/libslic3r/PrintConfig.cpp	2023-09-06 09:42:26.000000000 +0300
+++ PrusaSlicer-version_2.6.1.mod/src/libslic3r/PrintConfig.cpp	2023-09-15 08:47:00.155324034 +0300
@@ -3201,17 +3201,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., 70., 70., 70., 70., 70., 70., 70., 70., 70.  });
+    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., 140., 140., 140., 140.,
-                                                    140.,   0., 140., 140., 140.,
-                                                    140., 140.,   0., 140., 140.,
-                                                    140., 140., 140.,   0., 140.,
-                                                    140., 140., 140., 140.,   0. });
+    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.6.1/version.inc PrusaSlicer-version_2.6.1.mod/version.inc
--- PrusaSlicer-version_2.6.1/version.inc	2023-09-06 09:42:26.000000000 +0300
+++ PrusaSlicer-version_2.6.1.mod/version.inc	2023-09-15 08:47:41.714574281 +0300
@@ -4,6 +4,6 @@
 set(SLIC3R_APP_NAME "PrusaSlicer")
 set(SLIC3R_APP_KEY "PrusaSlicer")
 set(SLIC3R_VERSION "2.6.1")
-set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN")
+set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+Diamond Edition by VJ")
 set(SLIC3R_RC_VERSION "2,6,1,0")
 set(SLIC3R_RC_VERSION_DOTS "2.6.1.0")

Parašykite komentarą

El. pašto adresas nebus skelbiamas. Būtini laukeliai pažymėti *

Brukalų kiekiui sumažinti šis tinklalapis naudoja Akismet. Sužinokite, kaip apdorojami Jūsų komentarų duomenys.