3D-Drucken: Unterschied zwischen den Versionen

Aus Stratum 0
Wechseln zu:Navigation, Suche
(Geeignete CAD-Programme (Beispiele))
(Schritt 3: GCode senden)
Zeile 90: Zeile 90:
 
* IP: <code>[http://192.168.178.147 192.168.178.147]</code>
 
* IP: <code>[http://192.168.178.147 192.168.178.147]</code>
 
* API-Key: <code>7b47c015-8a6f-4ef9-811a-3929a335a7da</code>
 
* API-Key: <code>7b47c015-8a6f-4ef9-811a-3929a335a7da</code>
 
+
===Alternativen===
=== Rechner per USB ===
+
==== Rechner per USB ====
 
Schließlich gibt es noch [http://github.com/kliment/Printrun.git '''Printrun'''/Pronterface/Pronsole], das zum Steuern des Druckers verwendet werden kann, wenn man ihn per USB anschließt (prinzipiell meldet sich der Drucker als serielle Konsole im System, aber du willst etwas mehr Komfort haben). Hiermit kann man insbesondere auch GCode zum Drucker schicken, was allerdings auch über die Weboberfläche kein Problem darstellt.
 
Schließlich gibt es noch [http://github.com/kliment/Printrun.git '''Printrun'''/Pronterface/Pronsole], das zum Steuern des Druckers verwendet werden kann, wenn man ihn per USB anschließt (prinzipiell meldet sich der Drucker als serielle Konsole im System, aber du willst etwas mehr Komfort haben). Hiermit kann man insbesondere auch GCode zum Drucker schicken, was allerdings auch über die Weboberfläche kein Problem darstellt.
 
* Pronterface öffnen (<tt>pronterface.py</tt>), den GCode laden und mit 250000 Baud zur entsprechenden seriellen Schnittstelle (meist <tt>/dev/ttyUSB0</tt>) verbinden. Es sollte die Meldung "Printer is now online." erscheinen und die Steuerelemente, die den Drucker kontrollieren, sollten farbig werden.
 
* Pronterface öffnen (<tt>pronterface.py</tt>), den GCode laden und mit 250000 Baud zur entsprechenden seriellen Schnittstelle (meist <tt>/dev/ttyUSB0</tt>) verbinden. Es sollte die Meldung "Printer is now online." erscheinen und die Steuerelemente, die den Drucker kontrollieren, sollten farbig werden.
Zeile 97: Zeile 97:
 
* Dann den Button "Print" drücken.
 
* Dann den Button "Print" drücken.
  
=== Über den Raspberry Pi und SSH ===
+
==== Über den Raspberry Pi und SSH ====
 
Falls der Raspberry am Drucker hängt, kann auch der zum Drucken benutzt werden, allerdings mit etwas Komforteinbußen ohne grafische Oberfläche.
 
Falls der Raspberry am Drucker hängt, kann auch der zum Drucken benutzt werden, allerdings mit etwas Komforteinbußen ohne grafische Oberfläche.
 
* Per SSH ist der Raspberry unter dem Namen <tt>rapsberry</tt> [sic] zu erreichen (zB über [[mDNS]]: <tt>ssh pi@rapsberry.local</tt>). Zugangsdaten stehen auf der SD-Karte.
 
* Per SSH ist der Raspberry unter dem Namen <tt>rapsberry</tt> [sic] zu erreichen (zB über [[mDNS]]: <tt>ssh pi@rapsberry.local</tt>). Zugangsdaten stehen auf der SD-Karte.
Zeile 106: Zeile 106:
 
* pronsole dokumentiert sich eigentlich mit dem Befehl <tt>help</tt> ausreichend selbst. Oft benutzte Befehle sind: <tt>connect</tt>, <tt>load</tt>, <tt>home</tt>, <tt>settemp</tt>, <tt>bedtemp</tt>, <tt>gettemp</tt>, <tt>extrude</tt>, <tt>print</tt>, <tt>monitor</tt>. GCode kann man außerdem auch direkt eingeben.
 
* pronsole dokumentiert sich eigentlich mit dem Befehl <tt>help</tt> ausreichend selbst. Oft benutzte Befehle sind: <tt>connect</tt>, <tt>load</tt>, <tt>home</tt>, <tt>settemp</tt>, <tt>bedtemp</tt>, <tt>gettemp</tt>, <tt>extrude</tt>, <tt>print</tt>, <tt>monitor</tt>. GCode kann man außerdem auch direkt eingeben.
  
==== Typische Befehlreihenfolgen ====  
+
===== Typische Befehlreihenfolgen =====  
===== Druck starten =====
+
====== Druck starten ======
 
  $ screen -x
 
  $ screen -x
  
Zeile 120: Zeile 120:
 
  > print
 
  > print
  
===== Druck abbrechen =====
+
====== Druck abbrechen ======
 
  > pause
 
  > pause
 
  > settemp 0
 
  > settemp 0
Zeile 126: Zeile 126:
 
  > m84
 
  > m84
  
==== Hinweise ====
+
===== Hinweise =====
 
* Reverse-extrude geht, indem man dem Befehl <tt>extrude</tt> eine negative Länge gibt.
 
* Reverse-extrude geht, indem man dem Befehl <tt>extrude</tt> eine negative Länge gibt.
 
* <tt>/tmp</tt> und <tt>/run</tt> sind im Arbeitsspeicher gemountet, um die SD-Karte etwas zu schonen. Dort also besser nichts wertvolles ablegen.
 
* <tt>/tmp</tt> und <tt>/run</tt> sind im Arbeitsspeicher gemountet, um die SD-Karte etwas zu schonen. Dort also besser nichts wertvolles ablegen.

Version vom 31. Januar 2018, 00:26 Uhr

3D-Drucken
Beschreibung: 3D-Drucker
Status: working (Was heißt das?)
Kontakt: NoikK, Daniel Bohrer, teilweise auch #Druckberechtigte
Usage Policy: Nach Einweisung durch Druckberechtigte
Links: Repetier-Server auf einem Raspberry Pi

Mittlerweile stehen im Space mehrere 3D-Drucker, die alle auf unterschiedliche Weise bedient werden können. Um die Bedienung von allen vorhandenen 3D-Druckern zu vereinheitlich und zu vereinfachen, wurde Repetier-Server auf einem Raspberry Pi installiert. Hier soll die allgemeine Bedienung und die Einrichtung erläutert werden.

Zu den einzelnen Besonderheiten der Drucker siehe RepRap, LulzBot und TinyBoy.

Im Rahmen des Studium Generale an der TU Braunschweig gab es einen Vortrag von larsan, der eine grobe Einführung bietet. Die Slides dazu finden sich unter Datei:Stratum 0 3D-Druck-Vortrag Folien Studium Generale.pdf.

Hinweise zur Benutzung

So ein 3D-Drucker ist nicht gerade billig, deshalb müssen einige Regeln befolgt werden.

  • Nur die #Druckberechtigten dürfen drucken.
  • Kein Essen und Trinken am 3D-Drucker-Arbeitsplatz!
  • Nicht an den Einstellungen herumspielen. Unbedachtes Ändern von Beschleunigungs- und Geschwindigkeitseinstellungen kann die Motoren und den 3D-Drucker beschädigen.
  • Wenn der Drucker längere Zeit nicht druckt, stell sicher, dass die Heizung für den Extruder aus ist
  • Das Filament muss ggf. per Hand nachgeführt werden, wenn es nicht von selbst abrollt.
    • Hacks: entsprechend positionierter Mikrofonständer als Abrollvorrichtung für die Rolle
  • Die Plattform vor dem Drucken gründlich mit Alkohol oder Pinselreiniger säubern, wenn nicht auf Papier gedruckt wird. Das ist eine häufige Ursache für Probleme.
  • Nach dem Drucken etwa 1-2 Minuten warten, bis die Teile abgekühlt sind, da sie sich ansonsten verformen.
  • Manche Teile (besonders bei dünnen Strukturen) benötigen Kühlung, hierfür z.B. die Lüfter verwenden (siehe gedruckte Eule)
  • Den Druck zwischendrin zu unterbrechen um später weiter zu drucken – und sei es nur für 5 Sekunden – ist mit unendlich viel Problemen behaftet und sollte wenn irgendwie möglich vermieden werden.

Schritt 1: 3D-Modell erstellen

siehe: 3D-Modell erstellen

3D-Modell als [https://de.wikipedia.org/wiki/STL-Schnittstelle .stl-Datei bereitstellen.

Hierzu kann entweder ein eigenes Design erstellt werden (z.B. mit OpenSCAD, Tinkercad) oder ein bereits vorhandenes verwendet werden (z.B. von Thingiverse). Zum Umwandeln aus anderen 3D-Formaten eignet sich z.B. Blender.

Geeignete CAD-Programme (Beispiele)

Schritt 2: Slicen

Die .stl-Datei müssen in GCode umgewandelt werden, der zum Drucker gesendet werden kann. Dieser Vorgang wird Slicen genannt und benötigt ein weiteres Programm. Im Stratum0 wird der Slic3r oder RepetierHost (bringt bei der Installation den Slic3r mit) verwendet.

Weitere Software (unsupported, YMMV):

Slic3r-Einstellungen

Wenn Repetier-Host für das Slicen verwendet wird, sollte das eingebundene Programm Slic3r verwendet werden. Dazu den KAPUTTER LINK Download als .zip herunterladen, entpacken und anschließend im Repetier-Host unter Slicer bei Manager das Slic3r-Konfigurationsverzeichnis auf den entpackten Ordner verweisen. Jetzt sind alle .ini-Dateien, die zum Drucken notwendig sind, vorhanden.

Alternativ kann das folgende Config-Bundle in Repetier Host oder Slic3r importiert werden. In Slic3r geht das über den Menüpunkt „File“ → „Load Config Bundle“.

Icon text-x-generic.png Slic3rBundle.ini (Download)
# generated by Slic3r Prusa Edition 1.38.5-prusa3d-win64 on 2018-01-16 at 20:47:39

[print:Kossel print]
avoid_crossing_perimeters = 1
bottom_solid_layers = 3
bridge_acceleration = 0
bridge_angle = 0
bridge_flow_ratio = 1
bridge_speed = 60
brim_width = 0
clip_multipart_objects = 0
compatible_printers = 
compatible_printers_condition = 
complete_objects = 0
default_acceleration = 0
dont_support_bridges = 1
elefant_foot_compensation = 0
ensure_vertical_shell_thickness = 1
external_fill_pattern = rectilinear
external_perimeter_extrusion_width = 0
external_perimeter_speed = 30
external_perimeters_first = 0
extra_perimeters = 1
extruder_clearance_height = 20
extruder_clearance_radius = 20
extrusion_width = 0
fill_angle = 45
fill_density = 20%
fill_pattern = cubic
first_layer_acceleration = 0
first_layer_extrusion_width = 200%
first_layer_height = 0.2
first_layer_speed = 30
gap_fill_speed = 20
gcode_comments = 0
infill_acceleration = 0
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0
infill_first = 0
infill_only_where_needed = 0
infill_overlap = 25%
infill_speed = 80
interface_shells = 0
layer_height = 0.2
max_print_speed = 80
max_volumetric_extrusion_rate_slope_negative = 0
max_volumetric_extrusion_rate_slope_positive = 0
max_volumetric_speed = 0
min_skirt_length = 0
notes = 
only_retract_when_crossing_perimeters = 1
ooze_prevention = 0
output_filename_format = [input_filename_base].gcode
overhangs = 1
perimeter_acceleration = 0
perimeter_extruder = 1
perimeter_extrusion_width = 0
perimeter_speed = 60
perimeters = 3
post_process = 
raft_layers = 0
resolution = 0
seam_position = aligned
skirt_distance = 6
skirt_height = 1
skirts = 3
small_perimeter_speed = 15
solid_infill_below_area = 70
solid_infill_every_layers = 0
solid_infill_extruder = 1
solid_infill_extrusion_width = 0
solid_infill_speed = 20
spiral_vase = 0
standby_temperature_delta = -5
support_material = 0
support_material_angle = 0
support_material_buildplate_only = 0
support_material_contact_distance = 0.4
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_interface_contact_loops = 0
support_material_interface_extruder = 1
support_material_interface_layers = 3
support_material_interface_spacing = 0
support_material_interface_speed = 100%
support_material_pattern = pillars
support_material_spacing = 2.5
support_material_speed = 60
support_material_synchronize_layers = 0
support_material_threshold = 40
support_material_with_sheath = 1
support_material_xy_spacing = 0.6
thin_walls = 1
threads = 2
top_infill_extrusion_width = 0
top_solid_infill_speed = 15
top_solid_layers = 3
travel_speed = 130
wipe_tower = 1
wipe_tower_per_color_wipe = 10
wipe_tower_width = 10
wipe_tower_x = 0
wipe_tower_y = 65
xy_size_compensation = 0

[print:Lulzbot print]
avoid_crossing_perimeters = 1
bottom_solid_layers = 3
bridge_acceleration = 2000
bridge_angle = 0
bridge_flow_ratio = 1
bridge_speed = 72
brim_width = 0
clip_multipart_objects = 0
compatible_printers = 
compatible_printers_condition = 
complete_objects = 0
default_acceleration = 2000
dont_support_bridges = 1
elefant_foot_compensation = 0
ensure_vertical_shell_thickness = 1
external_fill_pattern = rectilinear
external_perimeter_extrusion_width = 0
external_perimeter_speed = 45
external_perimeters_first = 0
extra_perimeters = 1
extruder_clearance_height = 20
extruder_clearance_radius = 20
extrusion_width = 0.42
fill_angle = 45
fill_density = 20%
fill_pattern = cubic
first_layer_acceleration = 2000
first_layer_extrusion_width = 0.53
first_layer_height = 100%
first_layer_speed = 10
gap_fill_speed = 55
gcode_comments = 0
infill_acceleration = 2000
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0.68
infill_first = 0
infill_only_where_needed = 0
infill_overlap = 55%
infill_speed = 80
interface_shells = 0
layer_height = 0.2
max_print_speed = 80
max_volumetric_extrusion_rate_slope_negative = 0
max_volumetric_extrusion_rate_slope_positive = 0
max_volumetric_speed = 0
min_skirt_length = 0
notes = 
only_retract_when_crossing_perimeters = 0
ooze_prevention = 0
output_filename_format = [input_filename_base].gcode
overhangs = 1
perimeter_acceleration = 1200
perimeter_extruder = 1
perimeter_extrusion_width = 0.38
perimeter_speed = 75
perimeters = 3
post_process = 
print_settings_id = 
raft_layers = 0
resolution = 0
seam_position = aligned
skirt_distance = 5
skirt_height = 1
skirts = 3
small_perimeter_speed = 50
solid_infill_below_area = 90
solid_infill_every_layers = 0
solid_infill_extruder = 1
solid_infill_extrusion_width = 0.5
solid_infill_speed = 75
spiral_vase = 0
standby_temperature_delta = -5
support_material = 0
support_material_angle = 0
support_material_buildplate_only = 0
support_material_contact_distance = 0.3
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_interface_contact_loops = 0
support_material_interface_extruder = 1
support_material_interface_layers = 5
support_material_interface_spacing = 0
support_material_interface_speed = 100%
support_material_pattern = rectilinear-grid
support_material_spacing = 7
support_material_speed = 60
support_material_synchronize_layers = 0
support_material_threshold = 30
support_material_with_sheath = 0
support_material_xy_spacing = 0.5
thin_walls = 1
threads = 2
top_infill_extrusion_width = 0.4
top_solid_infill_speed = 60
top_solid_layers = 3
travel_speed = 160
wipe_tower = 0
wipe_tower_per_color_wipe = 15
wipe_tower_width = 60
wipe_tower_x = 180
wipe_tower_y = 140
xy_size_compensation = 0

[print:Mendel print]
avoid_crossing_perimeters = 0
bottom_solid_layers = 3
bridge_acceleration = 0
bridge_angle = 0
bridge_flow_ratio = 1
bridge_speed = 40
brim_width = 2
clip_multipart_objects = 0
compatible_printers = 
compatible_printers_condition = 
complete_objects = 0
default_acceleration = 0
dont_support_bridges = 1
elefant_foot_compensation = 0
ensure_vertical_shell_thickness = 1
external_fill_pattern = rectilinear
external_perimeter_extrusion_width = 0
external_perimeter_speed = 30
external_perimeters_first = 0
extra_perimeters = 1
extruder_clearance_height = 20
extruder_clearance_radius = 20
extrusion_width = 0
fill_angle = 45
fill_density = 20%
fill_pattern = cubic
first_layer_acceleration = 0
first_layer_extrusion_width = 150%
first_layer_height = 0.2
first_layer_speed = 20
gap_fill_speed = 20
gcode_comments = 0
infill_acceleration = 0
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0
infill_first = 0
infill_only_where_needed = 0
infill_overlap = 15%
infill_speed = 40
interface_shells = 0
layer_height = 0.2
max_print_speed = 40
max_volumetric_extrusion_rate_slope_negative = 0
max_volumetric_extrusion_rate_slope_positive = 0
max_volumetric_speed = 0
min_skirt_length = 0
notes = 
only_retract_when_crossing_perimeters = 1
ooze_prevention = 0
output_filename_format = [input_filename_base].gcode
overhangs = 1
perimeter_acceleration = 0
perimeter_extruder = 1
perimeter_extrusion_width = 0
perimeter_speed = 40
perimeters = 3
post_process = 
print_settings_id = 
raft_layers = 0
resolution = 0
seam_position = aligned
skirt_distance = 6
skirt_height = 1
skirts = 3
small_perimeter_speed = 15
solid_infill_below_area = 70
solid_infill_every_layers = 0
solid_infill_extruder = 1
solid_infill_extrusion_width = 0
solid_infill_speed = 20
spiral_vase = 0
standby_temperature_delta = -5
support_material = 1
support_material_angle = 0
support_material_buildplate_only = 0
support_material_contact_distance = 0.2
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_interface_contact_loops = 0
support_material_interface_extruder = 1
support_material_interface_layers = 3
support_material_interface_spacing = 0
support_material_interface_speed = 30
support_material_pattern = pillars
support_material_spacing = 2.5
support_material_speed = 40
support_material_synchronize_layers = 0
support_material_threshold = 0
support_material_with_sheath = 1
support_material_xy_spacing = 50%
thin_walls = 1
threads = 2
top_infill_extrusion_width = 0
top_solid_infill_speed = 15
top_solid_layers = 4
travel_speed = 60
wipe_tower = 0
wipe_tower_per_color_wipe = 15
wipe_tower_width = 60
wipe_tower_x = 180
wipe_tower_y = 140
xy_size_compensation = 0

[print:Tiny print]
avoid_crossing_perimeters = 1
bottom_solid_layers = 2
bridge_acceleration = 0
bridge_angle = 0
bridge_flow_ratio = 1
bridge_speed = 60
brim_width = 2
clip_multipart_objects = 0
compatible_printers = 
compatible_printers_condition = 
complete_objects = 0
default_acceleration = 0
dont_support_bridges = 1
elefant_foot_compensation = 0
ensure_vertical_shell_thickness = 1
external_fill_pattern = rectilinear
external_perimeter_extrusion_width = 0
external_perimeter_speed = 30
external_perimeters_first = 0
extra_perimeters = 1
extruder_clearance_height = 20
extruder_clearance_radius = 20
extrusion_width = 0
fill_angle = 45
fill_density = 10%
fill_pattern = rectilinear
first_layer_acceleration = 0
first_layer_extrusion_width = 120%
first_layer_height = 0.2
first_layer_speed = 20
gap_fill_speed = 20
gcode_comments = 0
infill_acceleration = 0
infill_every_layers = 1
infill_extruder = 1
infill_extrusion_width = 0
infill_first = 0
infill_only_where_needed = 0
infill_overlap = 15%
infill_speed = 80
interface_shells = 0
layer_height = 0.2
max_print_speed = 100
max_volumetric_extrusion_rate_slope_negative = 0
max_volumetric_extrusion_rate_slope_positive = 0
max_volumetric_speed = 0
min_skirt_length = 0
notes = 
only_retract_when_crossing_perimeters = 1
ooze_prevention = 0
output_filename_format = [input_filename_base].gcode
overhangs = 1
perimeter_acceleration = 0
perimeter_extruder = 1
perimeter_extrusion_width = 0
perimeter_speed = 60
perimeters = 2
post_process = 
print_settings_id = 
raft_layers = 0
resolution = 0
seam_position = nearest
skirt_distance = 6
skirt_height = 1
skirts = 3
small_perimeter_speed = 15
solid_infill_below_area = 70
solid_infill_every_layers = 0
solid_infill_extruder = 1
solid_infill_extrusion_width = 0
solid_infill_speed = 20
spiral_vase = 0
standby_temperature_delta = -5
support_material = 1
support_material_angle = 0
support_material_buildplate_only = 1
support_material_contact_distance = 0.2
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_interface_contact_loops = 0
support_material_interface_extruder = 1
support_material_interface_layers = 3
support_material_interface_spacing = 0
support_material_interface_speed = 30
support_material_pattern = pillars
support_material_spacing = 2.5
support_material_speed = 60
support_material_synchronize_layers = 1
support_material_threshold = 40
support_material_with_sheath = 1
support_material_xy_spacing = 0.4
thin_walls = 1
threads = 2
top_infill_extrusion_width = 0
top_solid_infill_speed = 15
top_solid_layers = 3
travel_speed = 130
wipe_tower = 0
wipe_tower_per_color_wipe = 15
wipe_tower_width = 60
wipe_tower_x = 180
wipe_tower_y = 140
xy_size_compensation = 0

[filament:ABS 175]
bed_temperature = 0
bridge_fan_speed = 100
compatible_printers = 
compatible_printers_condition = 
cooling = 0
disable_fan_first_layers = 3
end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
extrusion_multiplier = 1
fan_always_on = 0
fan_below_layer_time = 60
filament_colour = #FFFFFF
filament_cost = 0
filament_density = 0
filament_diameter = 1.75
filament_max_volumetric_speed = 0
filament_notes = ""
filament_settings_id = 
filament_soluble = 0
filament_type = PLA
first_layer_bed_temperature = 0
first_layer_temperature = 245
max_fan_speed = 100
min_fan_speed = 100
min_print_speed = 5
slowdown_below_layer_time = 20
start_filament_gcode = "; Filament gcode\n"
temperature = 235

[filament:PETG 175]
bed_temperature = 0
bridge_fan_speed = 100
compatible_printers = 
compatible_printers_condition = 
cooling = 0
disable_fan_first_layers = 5
end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
extrusion_multiplier = 1
fan_always_on = 1
fan_below_layer_time = 60
filament_colour = #FFFFFF
filament_cost = 27.4375
filament_density = 1.27
filament_diameter = 1.75
filament_max_volumetric_speed = 0
filament_notes = ""
filament_settings_id = 
filament_soluble = 0
filament_type = PET
first_layer_bed_temperature = 0
first_layer_temperature = 245
max_fan_speed = 100
min_fan_speed = 100
min_print_speed = 5
slowdown_below_layer_time = 20
start_filament_gcode = "; Filament gcode\n"
temperature = 220

[filament:PETG 285]
bed_temperature = 75
bridge_fan_speed = 100
compatible_printers = 
compatible_printers_condition = 
cooling = 1
disable_fan_first_layers = 3
end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
extrusion_multiplier = 0.9
fan_always_on = 1
fan_below_layer_time = 60
filament_colour = #FFFFFF
filament_cost = 27.4375
filament_density = 1.27
filament_diameter = 2.85
filament_max_volumetric_speed = 0
filament_notes = ""
filament_settings_id = 
filament_soluble = 0
filament_type = PLA
first_layer_bed_temperature = 75
first_layer_temperature = 250
max_fan_speed = 100
min_fan_speed = 100
min_print_speed = 5
slowdown_below_layer_time = 20
start_filament_gcode = "; Filament gcode\n"
temperature = 220

[filament:PLA 175]
bed_temperature = 0
bridge_fan_speed = 100
compatible_printers = 
compatible_printers_condition = 
cooling = 1
disable_fan_first_layers = 3
end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
extrusion_multiplier = 1
fan_always_on = 1
fan_below_layer_time = 60
filament_colour = #FFFFFF
filament_cost = 0
filament_density = 0
filament_diameter = 1.75
filament_max_volumetric_speed = 0
filament_notes = ""
filament_settings_id = 
filament_soluble = 0
filament_type = PLA
first_layer_bed_temperature = 0
first_layer_temperature = 230
max_fan_speed = 60
min_fan_speed = 35
min_print_speed = 5
slowdown_below_layer_time = 10
start_filament_gcode = "; Filament gcode\n"
temperature = 200

[filament:PLA 285]
bed_temperature = 60
bridge_fan_speed = 100
compatible_printers = 
compatible_printers_condition = 
cooling = 1
disable_fan_first_layers = 10
end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
extrusion_multiplier = 1
fan_always_on = 1
fan_below_layer_time = 60
filament_colour = #FFFFFF
filament_cost = 0
filament_density = 0
filament_diameter = 2.85
filament_max_volumetric_speed = 0
filament_notes = ""
filament_settings_id = 
filament_soluble = 0
filament_type = PLA
first_layer_bed_temperature = 75
first_layer_temperature = 230
max_fan_speed = 100
min_fan_speed = 100
min_print_speed = 5
slowdown_below_layer_time = 20
start_filament_gcode = "; Filament gcode\n"
temperature = 220

[filament:WillowFlex 285]
bed_temperature = 60
bridge_fan_speed = 100
compatible_printers = 
compatible_printers_condition = 
cooling = 1
disable_fan_first_layers = 0
end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n"
extrusion_multiplier = 0.9
fan_always_on = 1
fan_below_layer_time = 60
filament_colour = #FFFFFF
filament_cost = 27.4375
filament_density = 1.27
filament_diameter = 2.85
filament_max_volumetric_speed = 0
filament_notes = ""
filament_settings_id = 
filament_soluble = 0
filament_type = PLA
first_layer_bed_temperature = 60
first_layer_temperature = 175
max_fan_speed = 100
min_fan_speed = 100
min_print_speed = 5
slowdown_below_layer_time = 20
start_filament_gcode = "; Filament gcode\n"
temperature = 175

[printer:Kossel]
bed_shape = 79.5618x8.36228,78.2518x16.6329,76.0845x24.7214,73.0836x32.5389,69.282x40,64.7214x47.0228,59.4516x53.5304,53.5304x59.4516,47.0228x64.7214,40x69.282,32.5389x73.0836,24.7214x76.0845,16.6329x78.2518,8.36228x79.5618,0x80,-8.36228x79.5618,-16.6329x78.2518,-24.7214x76.0845,-32.5389x73.0836,-40x69.282,-47.0228x64.7214,-53.5304x59.4516,-59.4516x53.5304,-64.7214x47.0228,-69.282x40,-73.0836x32.5389,-76.0845x24.7214,-78.2518x16.6329,-79.5618x8.36228,-80x0,-79.5618x-8.36228,-78.2518x-16.6329,-76.0845x-24.7214,-73.0836x-32.5389,-69.282x-40,-64.7214x-47.0228,-59.4516x-53.5304,-53.5304x-59.4516,-47.0228x-64.7214,-40x-69.282,-32.5389x-73.0836,-24.7214x-76.0845,-16.6329x-78.2518,-8.36228x-79.5618,0x-80,8.36228x-79.5618,16.6329x-78.2518,24.7214x-76.0845,32.5389x-73.0836,40x-69.282,47.0228x-64.7214,53.5304x-59.4516,59.4516x-53.5304,64.7214x-47.0228,69.282x-40,73.0836x-32.5389,76.0845x-24.7214,78.2518x-16.6329,79.5618x-8.36228,80x0
before_layer_gcode = 
between_objects_gcode = 
deretract_speed = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
end_gcode = M104 S0 ; turn off nozzle temperature\nG28; Home\nM84 ; disable motors\nM82; absolute E
extruder_colour = #FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000;#FF0000
extruder_offset = 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0
gcode_flavor = reprap
layer_gcode = 
max_layer_height = 0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3
min_layer_height = 0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07
nozzle_diameter = 0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4,0.4
octoprint_apikey = 
octoprint_host = 
printer_notes = 
printer_settings_id = 
retract_before_travel = 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
retract_before_wipe = 0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%,0%
retract_layer_change = 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
retract_length = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
retract_length_toolchange = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
retract_lift = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
retract_lift_above = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
retract_lift_below = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
retract_restart_extra = 0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01,0.01
retract_restart_extra_toolchange = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
retract_speed = 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20
serial_port = 
serial_speed = 250000
single_extruder_multi_material = 1
start_gcode = ;M104 S230  ;Temperatur\n;G29 S2         ;Autobed Level\n;G132 S1       ;Store Offset\n\nM83 ;relativ E \n\n; Cyan\nM163 S0 P1\nM163 S1 P0\nM163 S2 P0\nM164 S0\n\n; Ocean\nM163 S0 P5\nM163 S1 P1\nM163 S2 P0\nM164 S1\n\n; Blue\nM163 S0 P1\nM163 S1 P1\nM163 S2 P0\nM164 S2\n\n; Violet\nM163 S0 P1\nM163 S1 P5\nM163 S2 P0\nM164 S3\n\n; Magenta\nM163 S0 P0\nM163 S1 P1\nM163 S2 P0\nM164 S4\n\n; Raspberry\nM163 S0 P0\nM163 S1 P5\nM163 S2 P1\nM164 S5\n\n; Red\nM163 S0 P0\nM163 S1 P5\nM163 S2 P1\nM164 S6\n\n; Orange\nM163 S0 P0\nM163 S1 P1\nM163 S2 P1\nM164 S7\n\n; Yellow\nM163 S0 P0\nM163 S1 P0\nM163 S2 P1\nM164 S8\n\n; Spring Green\nM163 S0 P1\nM163 S1 P0\nM163 S2 P5\nM164 S9\n\n; Green\nM163 S0 P1\nM163 S1 P0\nM163 S2 P1\nM164 S10\n\n; Turquoise\nM163 S0 P5\nM163 S1 P0\nM163 S2 P1\nM164 S11\n\n\n; Cyan-Brown\nM163 S0 P2\nM163 S1 P1\nM163 S2 P1\nM164 S12\n\n; Magenta-Brown\nM163 S0 P1\nM163 S1 P2\nM163 S2 P1\nM164 S13\n\n; Yellow-Brown\nM163 S0 P1\nM163 S1 P1\nM163 S2 P2\nM164 S14\n\n; Brown\nM163 S0 P1\nM163 S1 P1\nM163 S2 P1\nM164 S15\n
toolchange_gcode = 
use_firmware_retraction = 0
use_relative_e_distances = 1
use_volumetric_e = 0
variable_layer_height = 0
wipe = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
z_offset = 0

[printer:Lulzbot]
bed_shape = 0x0,300x0,300x300,0x300
before_layer_gcode = 
between_objects_gcode = 
deretract_speed = 0
end_gcode = M104 S0 ; turn off nozzle temperature\nM140 S0 ; turn off bed temperature\nG1 Y200 ;\nG28 X0 ; home X axis\nM84 ; disable motors\n\nM355 S1;\nG4 P500;\nM355 S0;\nG4 P500;\nM355 S1;\nG4 P500;\nM355 S0;\nG4 P500;\nM355 S1;\nG4 P500;\nM355 S0;\nG4 P500;\n
extruder_colour = ""
extruder_offset = 0x0
gcode_flavor = reprap
layer_gcode = 
max_layer_height = 0.3
min_layer_height = 0.07
nozzle_diameter = 0.35
octoprint_apikey = 
octoprint_host = 
printer_notes = 
printer_settings_id = 
retract_before_travel = 2
retract_before_wipe = 0%
retract_layer_change = 1
retract_length = 5
retract_length_toolchange = 3
retract_lift = 0
retract_lift_above = 1
retract_lift_below = 0
retract_restart_extra = 0
retract_restart_extra_toolchange = 0
retract_speed = 60
serial_port = 
serial_speed = 250000
single_extruder_multi_material = 0
start_gcode = G28 ; home all axes\n
toolchange_gcode = 
use_firmware_retraction = 0
use_relative_e_distances = 0
use_volumetric_e = 0
variable_layer_height = 0
wipe = 1
z_offset = 0

[printer:Mendel]
bed_shape = 0x0,218x0,218x201,0x201
before_layer_gcode = 
between_objects_gcode = 
deretract_speed = 0
end_gcode = M104 S0 ; turn off nozzle temperature\nM140 S0 ; turn off bed temperature\nG1 Y200 ;\nG28 X0 ; home X axis\nM84 ; disable motors\n\nM355 S1;\nG4 P500;\nM355 S0;\nG4 P500;\nM355 S1;\nG4 P500;\nM355 S0;\nG4 P500;\nM355 S1;\nG4 P500;\nM355 S0;\nG4 P500;\n
extruder_colour = ""
extruder_offset = 0x0
gcode_flavor = reprap
layer_gcode = 
max_layer_height = 0.3
min_layer_height = 0.07
nozzle_diameter = 0.5
octoprint_apikey = 
octoprint_host = 
printer_notes = 
printer_settings_id = 
retract_before_travel = 2
retract_before_wipe = 0%
retract_layer_change = 1
retract_length = 2
retract_length_toolchange = 3
retract_lift = 0
retract_lift_above = 0
retract_lift_below = 0
retract_restart_extra = 0.01
retract_restart_extra_toolchange = 0
retract_speed = 20
serial_port = 
serial_speed = 250000
single_extruder_multi_material = 0
start_gcode = G28 ; home all axes\n
toolchange_gcode = 
use_firmware_retraction = 0
use_relative_e_distances = 0
use_volumetric_e = 0
variable_layer_height = 1
wipe = 0
z_offset = 0

[printer:Tiny]
bed_shape = 0x0,80x0,80x74,0x74
before_layer_gcode = 
between_objects_gcode = 
deretract_speed = 0
end_gcode = M104 S0 ; turn off nozzle temperature\nG28 X0 ; home X axis
extruder_colour = ""
extruder_offset = 0x0
gcode_flavor = reprap
layer_gcode = 
max_layer_height = 0.3
min_layer_height = 0.07
nozzle_diameter = 0.4
octoprint_apikey = 
octoprint_host = 
printer_notes = 
printer_settings_id = 
retract_before_travel = 2
retract_before_wipe = 0%
retract_layer_change = 1
retract_length = 2
retract_length_toolchange = 3
retract_lift = 0
retract_lift_above = 1
retract_lift_below = 0
retract_restart_extra = 0.01
retract_restart_extra_toolchange = 0
retract_speed = 40
serial_port = 
serial_speed = 250000
single_extruder_multi_material = 0
start_gcode = G28 ; home all axes\n
toolchange_gcode = 
use_firmware_retraction = 0
use_relative_e_distances = 0
use_volumetric_e = 0
variable_layer_height = 1
wipe = 0
z_offset = 0

[printer:prusa i3]
bed_shape = 0x0,190x0,190x160,0x160
before_layer_gcode = 
between_objects_gcode = 
deretract_speed = 0
end_gcode = M104 S0        ; turn off temperature\nM140 S0        ; turn off bed temp \nG28 X0           ; home X axis\nG0 Y190         ; präsent object\nM84               ; disable motors\nM81               ; Power off\n\n
extruder_colour = ""
extruder_offset = 0x0
gcode_flavor = reprap
layer_gcode = 
max_layer_height = 0
min_layer_height = 0.07
nozzle_diameter = 0.4
octoprint_apikey = 176444E92BFF48819CE0D8F1B264A91C
octoprint_host = 
printer_notes = 
retract_before_travel = 2
retract_before_wipe = 0%
retract_layer_change = 1
retract_length = 4
retract_length_toolchange = 10
retract_lift = 0
retract_lift_above = 0
retract_lift_below = 0
retract_restart_extra = 0
retract_restart_extra_toolchange = 0
retract_speed = 40
serial_port = 
serial_speed = 250000
single_extruder_multi_material = 0
start_gcode = G28 Z             ; home Z\n;G0 Z1            ; lift Z\nG28 X Y         ; home X Y\nG0   Y40        ; clab move
toolchange_gcode = M83 ; turn on relative movement for extruder  \nG1 E-5  ; retract filament 5mm  \nG1 X10 Y10 Z4.000000  ; home X and Y axis leave Z at current height  \nM84 E ; release extruder stepper motor from 'holding' position  \n@pause ; pause print!  \nG1 E0 ; reset extruder, ready to push out plastic again  \nM82 ; set extruder movement back to absolute ready for next layer
use_firmware_retraction = 0
use_relative_e_distances = 0
use_volumetric_e = 0
variable_layer_height = 1
wipe = 0
z_offset = 0

[presets]
print = Tiny print
printer = Tiny
filament = PETG 175

Hinweise

  • Die Config muss nach jedem Start neu geladen werden
  • Die Drucktemperatur sollte auf dem Filament stehen. Ansonsten ist 180°C-200°C eine gute Temperatur für PLA, 240°C für ABS.
  • Der erste Layer sollte mit 10°C mehr gedruckt werden
  • Es kann helfen, von Zeit zu Zeit die Version zu updaten

Schritt 3: GCode senden

Drucken durch senden des .gcode an den Drucker.

Bitte vor dem starten eines Drucks unbedingt die Düsenhöhe prüfen (sollte man bei der Einweisung gelernt haben). Sollte die Düsenhöhe nicht passen, bitte unbedingt jemanden fragen der sich wirklich damit auskennt.

Im Stratum0 wird Repetier-Server zur Bedienung der 3D-Drucker verwendet. Entweder wird der erstellte .gcode im Webinterface hochgeladen, oder durch RepetierHost an den Server gesendet. Anschließend kann der Druck über den das Webinterface gestartet werden.

Weboberfläche: Repetier-Server

Das Repetier-Server-Webinterface

Repetier-Server dient zum Hochladen und Verwalten von G-Code im Browser, sowie dem Starten von Drucken und das allgemeine Steuern der Drucker.

Der Webserver ist aus dem Stratum0 Netzwerk unter http://repetier.s0 (notfalls 192.168.178.147) zu erreichen:

  • Benutzername: stratum0
  • Passwort: stratum0 (you guessed it.)

Rechner: Repetier-Host

Neben der Möglichkeit, Repetier-Server über den Browser zu bedienen, kann auch Repetier-Host auf dem Rechner direkt zum Hochladen des G-Codes verwendet werden. Dies benötigt IP und API-Key:

Alternativen

Rechner per USB

Schließlich gibt es noch Printrun/Pronterface/Pronsole, das zum Steuern des Druckers verwendet werden kann, wenn man ihn per USB anschließt (prinzipiell meldet sich der Drucker als serielle Konsole im System, aber du willst etwas mehr Komfort haben). Hiermit kann man insbesondere auch GCode zum Drucker schicken, was allerdings auch über die Weboberfläche kein Problem darstellt.

  • Pronterface öffnen (pronterface.py), den GCode laden und mit 250000 Baud zur entsprechenden seriellen Schnittstelle (meist /dev/ttyUSB0) verbinden. Es sollte die Meldung "Printer is now online." erscheinen und die Steuerelemente, die den Drucker kontrollieren, sollten farbig werden.
  • Es bietet sich an, die Temperaturüberwachung einzuschalten (Checkbox "Watch" neben dem Graphen bzw. "Monitor Printer" neben dem Reset-Button oben)
  • Dann den Button "Print" drücken.

Über den Raspberry Pi und SSH

Falls der Raspberry am Drucker hängt, kann auch der zum Drucken benutzt werden, allerdings mit etwas Komforteinbußen ohne grafische Oberfläche.

  • Per SSH ist der Raspberry unter dem Namen rapsberry [sic] zu erreichen (zB über mDNS: ssh pi@rapsberry.local). Zugangsdaten stehen auf der SD-Karte.
  • GCode könnt ihr einfach direkt unter /home/pi abladen, zB per scp.
  • Dann entweder:
    • pronsole.py aus /home/pi/Printrun starten
    • oder die pronsole-Instanz aus der screen-Session benutzen, die ich immer benutze (damit nix kaputtgeht, wenn die SSH-Session mal abschmiert): screen -x. Mit der Tastenfolge Ctrl-A Ctrl-D kommt man wieder aufs „normale“ Terminal.
  • pronsole dokumentiert sich eigentlich mit dem Befehl help ausreichend selbst. Oft benutzte Befehle sind: connect, load, home, settemp, bedtemp, gettemp, extrude, print, monitor. GCode kann man außerdem auch direkt eingeben.
Typische Befehlreihenfolgen
Druck starten
$ screen -x

oder, falls das nicht an eine vorhandene screen-Session andockt:

$ screen Printrun/pronsole.py

Dann in pronsole:

> connect
> load $filename
> print
Druck abbrechen
> pause
> settemp 0
> move z 20
> m84
Hinweise
  • Reverse-extrude geht, indem man dem Befehl extrude eine negative Länge gibt.
  • /tmp und /run sind im Arbeitsspeicher gemountet, um die SD-Karte etwas zu schonen. Dort also besser nichts wertvolles ablegen.

Filamente (outdated)

Wir haben derzeit einen Druckkopf, der eine Filamentstärke von 1,75 mm benötigt.

ABS

Erster Test von Sintox mit schwarzem 1,75 mm ABS-Filament des Händlers "Filamentworld.de": Sowohl bei großen als auch bei kleinen Teilen:

  • Heatbed-Temperatur: 80 °C
  • Hotend-Temperatur: 240 °C
  • Hotend-Fan (mit "Luft-Kanalisierer"): dauerhaft auf 100%, da am besten keine 120 mm Lüfter verwendet werden sollten (ABS kann sich verformen, wenn der Bauraum zu stark gekühlt wird)

Geschwindigkeiten und Infill-Dichte sind scheinbar nicht Filament-abhängig und müssen je nach Zweck und Größe des Gedruckten individuell eingestellt werden. Beim verwendeten Filament war keine wirkliche ABS-Geruchsentwicklung im Raum festzustellen, lediglich leichter Geruch direkt am 3D-Drucker.

Aufheiz-Zeit des Heatbeds auf 80 °C betrug etwa 15 Minuten, zwischen nacheinander gedruckten Modellen besser Heatbed-Temperatur auf 80 °C fixieren, um nicht immer wieder hochheizen zu müssen.

Ablösen des Gedruckten ist bei großer Kontaktfläche mit dem Heatbed im geheizten Zustand recht schwer, aber mit ein wenig vorsichtiger Verwendung der "Ablöse-Werkzeuge" gut machbar.

PLA

Wir haben derzeit PLA in mehreren verschiedenen Farben.

Holz-PLA

Ortwin hat welches gekauft und Daniel Bohrer hat das mal ausprobiert. Die gedruckten Objekte sind längst nicht so stabil wie mit normalen PLA, eher so wie Hartgummi.

  • grrf sagt zwar, dass Holz-PLA ab 185°C zu drucken geht, aber Temperaturen um 200°C sind anscheinend noch besser für die Festigkeit.
  • Generell eher was für gröbere Arbeiten, das Filament kann anscheinend nicht sehr fein gedruckt werden. Man sollte darauf achten, dass man nicht zu feine Strukturen und nicht zu wenig Infill druckt (siehe Fotos). Beim Mate-Tags lohnt es sich durchaus, nochmal 1 mm bei der Dicke draufzuschlagen.
  • Das Filament ist ziemlich flüssig, sodass es sehr leicht heraustropft. Dadurch kommen die unschönen Würste am Mate-Tag zustande, Man Müsste™ nochmal probieren, ob Cura das besser als Slic3r hinkriegt (weil es den Druckkopf nur innerhalb der Perimeter bewegt).
  • Auch aus diesem Grund lohnt es sich durchaus, 3-4 Skirt-Loops zu drucken, bis das Filament wieder richtig fließt.
  • Nach dem Drucken die Objekte lieber länger als zu kurz abkühlen lassen, sonst sind sie noch ziemlich weich.
  • Beim Ablösen behutsam vorgehen, das Holz-PLA klebt sehr gerne am Kapton fest, und besonders die Kanten der Kapton-Klebestreifen werden gerne mal mit hochgezogen. (Den Mate-Tag habe ich schließlich mit einem Messer vorsichtig an einer Ecke durch Hebelwirkung abgelöst und mich dann schrittweise mit dem Messer vorgetastet. Das Kapton ist heile geblieben.)

Fehler und Behebung

Eine sehr gute Übersicht an Fehlern und Ratschlägen zu deren Behebnung bietet Simplify3D jedoch sind viele Lösungen nicht ohne Eingriff in die Firmware anwendbar. Falls es es jemand wirklich für Notwendig erachtet Werte in der Firmware Dauerhaft zu ändern, spricht er bitte NoikK an.

Setup und Konfiguration

Port 80 statt 3344 für RepetierServer

Der Standardport des RepetierServers ist 3344, mehr konvenient ist aber Port 80. Um den Port zu ändern:

sudo vim /usr/local/Repetier-Server/etc/RepetierServer.xml 

Da Port 80 aber ein privileged Port ist, muss der RepetierServer-Binary noch die notwendige Capability gegeben werden:

sudo setcap cap_net_bind_service=+ep /usr/local/Repetier-Server/bin/RepetierServer

Ob das Binary die Capability bekommen hat, kann man mit getcap überprüfen:

sudo getcap /usr/local/Repetier-Server/bin/RepetierServer

Danach den Service (neu)starten:

sudo systemctl restart RepetierServer

Druckberechtigte

Interessierte Entitäten

Bitte bei Bedarf eine erfahrene Druckentität ansprechen. Prinzipiell kann das aber auch jede Entität machen, die sich auskennt und schon mehrmals gedruckt hat. Es gibt keine Prüfung oder ähnliches.

Aussicht

Auf lange Sicht sollen alle 3D-Drucker vereinheitlicht werden. Dazu siehe https://pad.stratum0.org/p/3d-Drucker