/* Öffentliche Umlaufbeschlüsse */ +Pro und mehr Lüfter
[stratum0-wiki.git] / RepRap.mw
index 848c859..fbb0d05 100644 (file)
--- a/RepRap.mw
+++ b/RepRap.mw
-{{Projekt|verantwortlich=[[Benutzer:larsan|larsan]], [[Benutzer:Daniel Bohrer|Daniel Bohrer]]|beschreibung=3D-Drucker|bild=20121020-reprap-01.jpg|status=aktiv}}
+{{Veraltet|Dieser Drucker befindet sich aktuell nicht im Stratum 0.}}
+
+{{Hardware
+|kontakt=[[Benutzer:larsan|larsan]], [[Benutzer:Daniel Bohrer|Daniel Bohrer]], [[#Druckberechtigte]]
+|beschreibung=3D-Drucker
+|bild=20121020-reprap-01.jpg
+|status=broken
+|usage=nach Einweisung durch Druckberechtigte
+}}
+
+:''Auf dieser Seite werden nur die Besonderheiten des RepRap dokumentiert, die Druckanleitung und allgemeine Informationen gibt es unter [[3D-Drucken]].''
 :''Alles zum alten Drucker von [[Benutzer:DanielWillmann|DanielWillmann]] unter [[Reprap/Parent]].''
 
-Der RepRap ist unser 3D-Drucker. Es ist ein [http://reprappro.com/Mono_Mendel RepRapPro Mendel] mit ein paar kleinen eigenen Zusätzen.
+Der RepRap ist aktuell nicht einsatzfähig.
 
-==Hinweise zur Benutzung==
-Der 3D-Drucker war nicht gerade billig, deshalb müssen einige Regeln befolgt werden.
+Der RepRap ist einer unserer 3D-Drucker. Es ist ein [https://web.archive.org/web/20150317175216/https://reprappro.com/documentation/mendel-tricolour/ RepRapPro Mendel] mit ein paar kleinen eigenen Zusätzen.
 
-* Nur die [[#Druckberechtigte]]n dürfen drucken.
-* 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
-* 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.
+==Hinweise zur Benutzung==
+:''Siehe [[3D-Drucken#Hinweise_zur_Benutzung]].''
 
 ==Druckberechtigte==
-* [[Benutzer:DanielWillmann|Daniel Willmann]]
-* {{Benutzer|Shoragan}}
-* {{Benutzer|Daniel Bohrer}}
-* {{Benutzer|Oni}}
-* {{Benutzer|DooMMasteR}}
-* [[Benutzer:DieLenaMaria|Lena]]
-* {{Benutzer|Marylin}}
-* {{Benutzer|Larsan}}
-* {{Benutzer|Stew}}
-* {{Benutzer|Chrissi^}}
-* {{Benutzer|Hanhaiwen}}
-* {{Benutzer|Matthis}}
-* {{Benutzer|Emantor}}
-* {{Benutzer|Joke}}
-* {{Benutzer|Lulu}}
-* {{Benutzer|tsuro}}
-* {{Benutzer|blinry}}
-* mjh
-* {{Benutzer|mkalte666}}
-* {{Benutzer|Pecca}}
-* {{Benutzer|Ortwin}}
-* Arnulf
-* leonmortiba
-* {{Benutzer|Kasalehlia}}
-* bw_snaable
-* {{Benutzer|Sonnenschein}}
-* {{Benutzer|Drahflow}}
-* {{Benutzer|Sintox}}
-
-=== Interessierte Entitäten ===
-Bitte bei Bedarf eine erfahrene Druckentität ansprechen.
-* {{Benutzer|dStulle}}
-* {{Benutzer|drc}}
-* rail
-
-Vereinheitlichter Druckführerscheinabsolvierungsundeinweisungsvorgang ist in Arbeit. Prinzipiell kann das aber auch jede Entität machen, die sich auskennt und schon mehrmals gedruckt hat. Es gibt keine Prüfung oder ähnliches.
-
-==Logbuch==
-Im [[Reprap/Logbuch|Logbuch]] ist eine unvollständige Liste der bisher gedruckten Teile.
-
-==Software==
-Zum deklarativen Erstellen von 3D-Modellen eignet sich [http://github.com/openscad/openscad.git OpenSCAD], [http://http://www.blender.org/ Blender] oder jedes andere Programm, was STL-Format ausgeben kann.
-* '''OpenSCAD''': <tt>git clone git://github.com/openscad/openscad.git</tt>
-* Blender ist in den meisten Distributionen in den Repos
-
-Die STL-Modelle müssen dann in [[reprap:GCode|GCode]] umgesetzt werden, der zum Drucker gesendet werden kann. Slic3r und Cura sind die meistverwendeten Programme dafür.
-* [http://slic3r.org '''Slic3r'''] (oder über die Paketverwaltung, oder <tt>git clone git://github.com/alexrj/Slic3r.git</tt>)
-** Für einen ersten Test erzeugt der Wizard eine brauchbare konfiguration. Zu beachten ist, dass wir 1.75mm-Filament und eine 0.35mm-Düse haben.
-** Beispiel-Konfiguration für Slic3r ist unter [[Reprap/Configs/Slic3r]] zu finden
-* [http://daid.github.com/Cura/ Cura]
-** Beispiel-Konfiguration ist unter [[Reprap/Configs/Cura]] zu finden
-* [http://fabmetheus.crsndoo.com/index.php Skeinforge]
-* [https://github.com/ahmetcemturan/SFACT SFACT] (Fork von Skeinforge) 
-
-Schließlich noch '''Printrun'''/Pronterface/Pronsole, das zum Steuern des Repraps verwendet werden kann (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.
-* [http://github.com/kliment/Printrun.git Printrun] (oder über die Paketverwaltung, oder <tt>git clone git://github.com/kliment/Printrun.git</tt>)
-
-== Modelle ==
-:''siehe auch Unterseite: [[Reprap/Modelle]]
-* Mate name tags - http://www.thingiverse.com/thing:38861
-** bei Verwendung von Slic3r einiges beachten:
-*** als Fill Pattern am besten "honeycomb" auswählen
-*** unter Umständen wird kein Infill generiert, das führt dazu, dass die Tags innen hohl sind. Manchmal hilft es, die Option "Generate extra perimeters when needed" auszuschalten. Wenn das nicht hilft… cura verwenden ;-)
-* INGA Gehäuse - http://www.thingiverse.com/thing:22450
+:''Siehe [[3D-Drucken#Druckberechtigte]].''
 
 ==Workflow==
 Zum Workflow gab es auf dem [[BarCamp Braunschweig 2012]] einen längeren [[:Datei:Selbst 3D drucken - BarCamp Braunschweig 2012.pdf|Vortrag]] (PDF) von {{Benutzer|Daniel Bohrer}}, {{Benutzer|larsan}} und {{Benutzer|Neo Bechstein}}. Hier die Kurzfassung:
 
+[[Datei:3D-Druck-Ablauf.png|thumb|Ablauf des 3D-Druck Workflows mit Nennung von freier Software.]]
+
 ===3D-Modell-erstellen===
-* z.B. mit OpenSCAD, FreeCAD oder Blender oder jedes andere Program, das einen STL-Export hat
-* Manchmal enthalten die STLs Fehler und Slic3r kommt durcheinander. [http://cloud.netfabb.com/ Netfabb] kann viele dieser Dateien wieder reparieren.
-* [http://thingiverse.com Thingiverse] ist eine super Quelle bereits fertiger Modelle.
+Siehe [[3D-Modell erstellen]].
 
 ===Slicen===
-* Die Bemerkungen hier beziehen sich auf Slic3r. Es gibt noch andere Tools, wie SFACT oder Skeinforge, aber die sind deutlich komplexer
-* Die Config muss nach jedem Start neu geladen werden
-* Eine gute Temperatur für PLA ist 180°C-185°C
-* Der erste Layer sollte mit 10°C mehr gedruckt werden
-* Es kann helfen, von Zeit zu Zeit die Version zu updaten
-
-Konfigurationen für Slic3r gibt es unter [[Reprap/Configs/Slic3r]].
-
-[[Benutzer:Stew|Stew]] hat eine funktionierende Konfiguration unter [[Reprap/Skeinforge]] eine Kurzanleitung und Konfiguration für Skeinforge abgelegt.
-
-==== Einzelne Objekte am Stück fertigstellen ====
-Cura und Slic3r haben die Möglichkeit, mehrere Objekte gleichzeitig zu drucken, wobei jedes Objekt einzeln fertiggestellt wird, bevor das nächste Objekt angefangen wird (also nicht alle Objekte gleichzeitig Layer für Layer). Das ergibt unter Umständen bessere Druckerzeugnisse, da während der Travel-Bewegungen weniger Filament heraustropfen und an anderen Objekten hängen bleiben kann.
+:''Siehe [[3D-Drucken#Schritt_2:_Slicen]]
 
-In Slic3r aktiviert man dafür auf dem Tab "Print Settings" im Abschnitt "Output options" die Option "Complete individual objects". Unter "Extruder clearance" muss folgendes eingestellt werden:
-* Radius: 80 mm
-* Height: 35 mm.
-
-In Cura öffnet man dafür den Project Planner (im Menü "Tools") und dann das Dialogfeld "Project planner preferences" (auf der Toolbar). Folgende Werte müssen dort eingetragen werden (ohne die angehängte LED mit Kühlkörper links am Druckkopf):
-* Head size – X towards home: 60 mm
-* Head size – X towards end: 36 mm
-* Head size – Y towards home: 80 mm
-* Head size – Y towards end: 66 mm
-* Head gantry height: 35 mm
+==== Nutzbare Druckfläche ====
+Die nutzbare Druckfläche beträgt 200×177 mm. Die gesamte Druckplatte ist zwar 200×200 mm groß, durch den Multi-Extruder-Druckkopf und die Klemmen, die die Glasscheibe halten, muss die Druckfläche verringert werden, damit die Extruder nicht gegen die Klemmen stoßen.
 
 === Drucken ===
-==== Über den eigenen Rechner ====
-* 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.
-* Es bietet sich an, die Temperaturüberwachung einzuschalten (Checkbox "Watch" neben dem Graphen bzw. "Monitor Printer" neben dem Reset-Button oben)
+:''Siehe [[3D-Drucken]].''
+
+==== Generelles vor dem Druck ====
 * Nach dem Einschalten auf jeden Fall die Druckkopfposition homen, damit der Drucker weiß, wo sich sein Druckkopf befindet, und ihn nicht über die Grenzen hinaus bewegt und dabei möglicherweise etwas beschädigt. '''Das ist wichtig!'''
-* Falls nötig, das Bett schonmal vorheizen (das dauert laaaange.)
-* Dann den Button "Print" drücken.
-
-==== Über den Raspberry Pi und HTTP ====
-[[Datei:OctoPrint web interface.png|thumb|OctoPrint-Webinterface]]
-Aus dem Space-Netz ist eine [http://octoprint.org OctoPrint]-Instanz über http://rapsberry.local:5000/ [sic!] erreichbar. Die Benutzung fühlt sich fast wie Pronterface an (braucht dem entsprechend JavaScript und Websockets), man kann GCodes hochladen (der große Button „Upload“ links unten), laden (das kleine Verzeichnis-Icon neben einem Dateinamen), sich den GCode anschaun (Tab „GCode Viewer“), drucken, den Druckkopf bewegen (Tab „Control“) und GCodes manuell an den Drucker senden (Tab „Terminal“).
-
-Falls irgendwas mal nicht so läuft wie es soll, einfach den Pi neustarten (Netzteil raus und wieder rein). Alle relevanten Dienste sollten dann nach dem Reboot wieder von selbst starten.
-
-==== Ü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 <tt>rapsberry</tt> [sic] zu erreichen (zB über [[mDNS]]: <tt>ssh pi@rapsberry.local</tt>). Zugangsdaten stehen auf der SD-Karte.
-* GCode könnt ihr einfach direkt unter <tt>/home/pi</tt> abladen, zB per scp.
-* Dann entweder:
-** <tt>pronsole.py</tt> aus <tt>/home/pi/Printrun</tt> starten
-** oder die pronsole-Instanz aus der [[screen]]-Session benutzen, die ich immer benutze (damit nix kaputtgeht, wenn die SSH-Session mal abschmiert): <tt>screen -x</tt>. Mit der Tastenfolge Ctrl-A Ctrl-D kommt man wieder aufs „normale“ Terminal.
-* 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 Befehlreienfolgen ===== 
-
-====== Drucken ======
-
-<pre>
-$ screen -x -oder- screen Printrun/pronsole.py
-> connect
-> load $filename
-> print
-</pre>
-
-====== Abbrechen ======
-
-<pre>
-> pause
-> settemp 0
-> move z 20
-> m84
-</pre>
-
-===== Hinweise =====
-* die aktuelle Version von pronsole hat noch ein paar Macken, unter anderem funktioniert der <tt>gettemp</tt>-Befehl nicht :-/ Ich schau da bei Gelegenheit™ nochmal nach. --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 03:35, 29. Mai 2013 (CEST)
-* 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.
-* Bitte auch die wichtigen Hinweise im Abschnitt hierdrüber beachten.
+* Wenn nötig auch das Druckbett mit den Schrauben justieren, sodass der Kopf an allen Stellen etwa eine Papierdicke Abstand vom Druckbett hat.
+* Falls nötig, das Bett so früh wie möglich schonmal vorheizen (das dauert laaaange.)
 
 ==== Filament wechseln ====
 * Zum Filamentwechseln zuerst den Extruder aufheizen (~180°C für PLA)
@@ -168,80 +49,34 @@ $ screen -x -oder- screen Printrun/pronsole.py
 ** [[Benutzer:Daniel Bohrer|Daniel Bohrer]] hat das mal ausgemessen: 3×200 mm bei 1000 mm/min sind nötig, damit das Filament ganz rausgeschoben wird, beim Einführen des neuen Filaments kann man ruhig 2×200 mm bei 1000 mm/min machen, und sich danach mit einer langsameren Geschwindigkeit (~100 mm/min) vorantasten, bis das Filament unten am Druckkopf rauskommt.
 * Zur Not noch ein bisschen weiter extrudieren (in ~5 mm-Schritten), bis das restliche alte Filament rausgedrückt ist und die Farbe stimmt.
   
-==== Drucken über SD-Karte ====
-Falls eine Mini-SD-Karte im Slot steckt (auf der Reprap-Platine unter dem USB-Anschluss), kann der GCode mit Pronterface auch als Datei auf die SD-Karte geschrieben werden. Das hat den Vorteil, dass man nach dem Starten des Drucks prinzipiell den Drucker vom USB-Port abziehen kann, sofern die Platine nicht über USB mit Strom versorgt wird (der Jumper auf der Platine muss weg vom Reset-Button gesetzt sein).
-
-Zum Upload benutzt man in Pronterface den Button "SD", der dann ein Menü anzeigt. Dort wählt man "SD Upload" (und wartet, während Pronterface den GCode über die serielle Schnittstelle lädt, und gleichzeitig anzeigt, was grade hochgeladen wird). Wenn der Upload fertig ist, kann man im selben Menü wieder "SD Print" wählen und bekommt dann eine Liste der Dateien, die sich auf der SD-Karte befinden.
-
-Wenn man nicht so lange auf den Upload warten will, kann man auch einfach die SD-Karte herausnehmen und die Datei über seinen Rechner auf die Karte legen. (FIXME: Was für ein Dateisystem?) Wichtig ist nur, dass der Dateiname im 8.3-Format ist. Nachdem die SD-Karte wieder in den Reprap geschoben wurde, muss unter Umständen der Button "INIT SD" betätigt werden.
-
-==== Während des Drucks ====
-'''Man sollte es vermeiden, während des Drucks das Raumlicht oder andere leistungsstarken Verbraucher an- oder auszuschalten!''' Das kann dazu führen, dass die Reprap-Platine resettet wird und der Druck abbricht. (Es gibt aber eine gewisse Wahrscheinlichkeit, dass der Druck dabei nicht abbricht. Diese Wahrscheinlichkeit ist bisher allerdings nicht empirisch oder rechnerisch bestimmt worden.)
-
-Während des Drucks kann mit dem G-Code M220 die Geschwindigkeit aller Druckoperationen geändert werden:
- M220 S<Speed>
-Wobei <Speed> der Faktor in Prozent ist.
- M220 S200
-verdoppelt also die Druckgeschwindigkeit.
-
-Ein äquivalenter Befehl ist der Extrudierfaktor
- M221 S110
-erhöht die extrudierte Menge Filament um 10%
-
-[http://reprap.org/wiki/G-code Mehr GCodes kennt das RepRap-Wiki.]
-
-== Filamente ==
-Wir haben derzeit einen Druckkopf, der eine Filamentstärke von 1,75 mm benötigt.
-
-=== ABS ===
-Wir haben derzeit kein ABS 
-
-=== PLA ===
-
-Wir haben derzeit PLA in den Farben 
-* Weiß
-* Schwarz
-* Gelb
-* Rot
-* Blau
-* Pink
-* Lila
-* Holz
-
-=== Holz-PLA ===
-{{Benutzer|Ortwin}} hat welches gekauft und [[Benutzer:Daniel Bohrer|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&nbsp;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.)
-
-<gallery heights="150" widths="225">
-Datei:Holz-PLA Würfel.jpg|Test-Würfel mit nur 20% Infill, dementsprechend failt der oberste Layer… Die untere Hälfte mit 185°C ist etwas heller als die obere Hälfte mit 200°C.
-Datei:Holz-PLA Mate-Tag 1.jpg|Mate-Tag (durchgängig 200°C, 90% Infill)
-Datei:Holz-PLA Mate-Tag 2.jpg|Die Haptik erinnert ein bisschen an Kokosfaser.
-Datei:Holz-PLA Mate-Tag 3.jpg|Resultat von tropfendem Filament, kann aber mit dem Skalpell leicht korrigiert werden
-</gallery>
-
 == Erweiterungen ==
-Der RepRap wurde mit zwei weiteren Druckköpfen zum 3-Farb-3-D-Drucker aufgerüstet.
+Es wurde ein 6 cm-Lüfter mit Luftführung vor dem ersten Extruder installiert.
 
-Im Rahmen der Umrüstung sollten wir gleich das [http://reprappro.com/documentation/RepRapPro_Tricolour_x_axis_assembly x axis assembly] austauschen, das neue design scheint besser (vertikal angeordnete smooth rods und belt in der Mitte der rods) und die verwendeten Materialien sind fast ausnahmslos identisch oder leicht zu ersetzen. Bisher einziger gefundener Koflikt: das Lager im x-end-idler hat 10mm Durchmesser ("623"), unser aktuelles hat 22mm ("608"), da müssten wir entweder den idler umkonstruieren oder ein anderes Lager anschaffen.
-:Einfache Lösung: [http://www.ebay.de/sch/i.html?_trksid=m570.l3201&_nkw=623+bearing&_sacat=0 eBay]. --[[Benutzer:Daniel Bohrer|Daniel Bohrer]] 12:38, 8. Sep. 2013 (CEST)
-:Lager sind bestellt, sämtliche teile für neue x-Achse sind gedruckt, ebenso für einen neuen motor mount. Ggf brauchen wir noch ein paar Gewindeschrauben, ansonsten sollte alles soweit kompatibel sein. Der Umbau sollte zeitgleich mit der Aufrüstung stattfinden.--[[Benutzer:Larsan|Larsan]] ([[Benutzer Diskussion:Larsan|Diskussion]]) 03:07, 10. Sep. 2013 (CEST)
+=== Triple-Extruder-Druck: Mehrfarbdruck / Multi-Material-Druck ===
 
-== Mehrfarbdruck ==
-Der Workflow ist derzeit noch nicht beschrieben.
+Der RepRap ist noch nicht fertig auf Triple-Extruder-Druck aufgerüstet.
 
+Die Hardware ist aufgerüstet, es fehlt Firmware-Update und Inbetriebnahme (?)
 
 Mehr dazu auf [[RepRap/Mehrfarb-3D-Druck]]
 
+== Probleme ==
+
+=== Drucker druckt die Diagonalen merkwürdig ===
+Am linken Ende druckt er ein Stückchen doppelt, am rechten Ende macht er einen merkwürdigen Versatz.
+
+Ursache: Am X-Motor ist die Inbusschraube locker und rutscht mit ganz viel Schlupf bei jedem Richtungswechsel hin und her.
+
+Lösung: Inbusschraube mit Schraubenlack festziehen.
+
 == Verwandte Projekte ==
+
+* [[LulzBot]]
+* [[PrusaMK3S]]
+* [[TinyBoy]]
 * [[HaptoRender]]
 * [[Fabscan]], der 3D-Scanner
 * [[Gesellschaftsspiel-Replikator]]
-* [[MurmeleBahn]]
 
 [[Kategorie:RepRap]]
 [[Kategorie:Infrastruktur]]
This page took 0.031755 seconds and 4 git commands to generate.