3D-Drucker/Slic3r

Aus Wiki CCC Göttingen
Version vom 23. Februar 2012, 21:11 Uhr von Hefee (Diskussion | Beiträge) (3D-Drucker/Slic3r/create)
Zur Navigation springen Zur Suche springen

Es gibt nun ein Script damit immer klar ist, mit welcher Slic3r Version und Config ein gcode erzeugt wurde 3D-Drucker/Slic3r/create.

Derzeitige Probleme mit Slir3r

  • Slic3r so stark in Entwicklung, das Config abhängig von git Version ist
    • 048f7ca - Wed Dec 14 16:12:05 2011 +0100 --Hefee 05:49, 16. Dez. 2011 (CET)
    • 6c21501 --Hefee 04:31, 20. Dez. 2011 (CET)
    • c3fc6ee --Hefee Alex 21:54, 23. Feb. 2012 (CET)

Configs

20120110 0900

Meine config vom 20120110 0900

bottom_layer_speed_ratio = 0.3
bridge_flow_ratio = 1
bridge_speed = 30
duplicate_distance = 10
duplicate_x = 1
duplicate_y = 1
end_gcode = G28 X0\nM84
extrusion_axis = E
extrusion_multiplier = 0.75
extrusion_width_ratio = 0
filament_diameter = 3.0
fill_angle = 45
fill_density = 0.4
fill_pattern = rectilinear
first_layer_height_ratio = 0.93
g0 = 0
gcode_arcs = 0
infill_every_layers = 1
infill_speed = 40
layer_height = 0.45
nozzle_diameter = 0.5
perimeter_speed = 30
perimeters = 1
print_center = 100,100
retract_before_travel = 2
retract_length = 1
retract_lift = 1
retract_restart_extra = 0
retract_speed = 4
rotate = 0
scale = 1.2
skirt_distance = 10
skirt_height = 1
skirts = 1
small_perimeter_speed = 30
solid_fill_pattern = rectilinear
solid_infill_speed = 60
solid_layers = 3
start_gcode = G92 X0 Y0 Z0 E0 ; reset distance\nG1 Z4.0 F200.0\nG1 X-250.0 F2100.0\nG1 X-249.0 F600.0\nG1 X-251.0 F600.0\nG92 X10.0 ; x reference\nG1 Y-250.0 F2100.0\nG1 Y-249.0 F600.0\nG1 Y-251.0 F600.0\nG92 Y20.0 ; xy reference\nG1 Z-250.0 F200.0\nG1 Z-249.0 F100.0\nG1 Z-251.0 F100.0\nG92 Z0.0 ; xyz reference\nM140 60\nG1 Y30.0 F1000.0\nG1 E15.0 ; clean extruder\nG1 Y40.0 F1000.0\nG1 Z3.0 F200.0\nG1 Z0.0 F200.0\n
temperature = 185
travel_speed = 100
use_relative_e_distances = 0
z_offset = 0 


20111218 0900

Meine config vom 20111218 0900

bottom_layer_speed_ratio = 0.3
bridge_flow_ratio = 1
bridge_speed = 60
duplicate_distance = 6
duplicate_x = 1
duplicate_y = 1
end_gcode = G28 X0\nM84
extrusion_axis = E
extrusion_multiplier = 0.85
extrusion_width_ratio = 0
filament_diameter = 3.0
fill_angle = 0
fill_density = 0.4
fill_pattern = rectilinear
first_layer_height_ratio = 0.93
g0 = 0
gcode_arcs = 0
infill_every_layers = 1
infill_speed = 40
layer_height = 0.45
nozzle_diameter = 0.5
perimeter_speed = 30
perimeters = 3
print_center = 80,80
retract_before_travel = 2
retract_length = 1
retract_lift = 2
retract_restart_extra = 0.02
retract_speed = 4
rotate = 0
scale = 1.3
skirt_distance = 10
skirt_height = 1
skirts = 1.7
small_perimeter_speed = 30
solid_fill_pattern = rectilinear
solid_infill_speed = 60
solid_layers = 3
start_gcode = G92 X0 Y0 Z0 E0 ; reset distance\nG1 Z4.0 F200.0\nG1 X-250.0 F2100.0\nG1 X-249.0 F600.0\nG1 X-251.0 F600.0\nG92 X10.0 ; x reference\nG1 Y-250.0 F2100.0\nG1 Y-249.0 F600.0\nG1 Y-251.0 F600.0\nG92 Y20.0 ; xy reference\nG1 Z-250.0 F200.0\nG1 Z-249.0 F100.0\nG1 Z-251.0 F100.0\nG92 Z0.0 ; xyz reference\nG1 Y30.0 F1000.0\nG1 E5.0 ; clean extruder\nG1 Y40.0 F1000.0\nG1 Z3.0 F200.0\nG1 Z0.0 F200.0\n
temperature = 190
travel_speed = 100
use_relative_e_distances = 0
z_offset = 0 


Old

maximale Z-Achsen Geschwidigkeit

Wird nicht mehr benötigt, weil die Schrittmotoren der z-Achse einzeln angestuert werden.

Patch für Slic3r

Mein patch für Slic3r, damit Sli3r eine maximale z-Geschwindigkeit hat.

commit eca6d0b6d0e895d3f2db1c5213b6a59bd5ca1007
Author: Alessandro Ranellucci <aar@cpan.org>
Date:   Sat Dec 17 20:29:06 2011 +0100

    Adjust flow for solid surfaces when using concentric infill too. #120


diff --git a/lib/Slic3r/Extruder.pm b/lib/Slic3r/Extruder.pm
index 88de440..d0da6d5 100644
--- a/lib/Slic3r/Extruder.pm
+++ b/lib/Slic3r/Extruder.pm
@@ -291,10 +291,10 @@ sub _Gx {
     
     # output speed if it's different from last one used
     # (goal: reduce gcode size)
-    if ($speed != $self->last_f) {
+#    if ($speed != $self->last_f) {
         $gcode .= sprintf " F%.${dec}f", $speed;
-        $self->last_f($speed);
-    }
+#        $self->last_f($speed);
+#    }
     
     # output extrusion distance
     if ($e && $Slic3r::extrusion_axis) {
@@ -302,7 +302,7 @@ sub _Gx {
         $self->extrusion_distance($self->extrusion_distance + $e);
         $gcode .= sprintf " %s%.5f", $Slic3r::extrusion_axis, $self->extrusion_distance;
     }
-    
+    $gcode =~ s/^( Z.*\s+)F[0-9][0-9.]*(.*)$/${1} F200.000${2}/;
     $gcode .= sprintf " ; %s", $comment if $comment && $Slic3r::gcode_comments;
     return "$gcode\n";
 }

python

Aufruf via:

$python bla.gcode
Updating gcode to bla_lowspead.gcode
$

gepatchte G-Code Datei ist nun unter *_lowspead.gcode erzeugt worden.

<highlightSyntax language="python"> import re import sys import os

fname= sys.argv[1] (root,ext)=os.path.splitext(fname) newfname="%s_lowspeed%s"%(root,ext)

speed=200

with open(fname) as f:

   content=f.read()

content = re.sub(r'^(?PG1 Z[0-9\.]+) (?P<e>F[0-9\.]+)$','\g F%s.000\nG1 \g<e>'%speed , content, flags=re.M) content = re.sub(r'^(?PG1 Z[0-9\.]+)$','\g F%s.000'%speed , content, flags=re.M)

with open(newfname,'w') as f:

   f.write(content)

print "Updating gcode to %s" % newfname </highlightSyntax>