Kurze Anleitung zur Arbeit mit dem Konsolenprogramm LEA
2022-10-30 (letzte Änderung: 2022-11-06)
LEA ist ein reines Konsolenprogramm: Es nimmt Eingabedateien (Berechnungsjobs) entgegen und produziert Ausgabedateien (Ergebnisse). Solche Programme sind heute für viele völlig ungewohnt. Das vorliegende Tutorial hilft, sich mit der Bedienung vertraut zu machen.
Das Tutorial wurde unter Windows erstellt. Mit geringfügigen Änderungen lassen sich alle Schritte auch auf anderen Betriebssystemen durchführen. Siehe hierzu die Hinweise für Unix/Linux/MacOS im Anhang.
Das Programm kann in einen beliebigen Ordner installiert werden. In diesem Beispiel wird ein USB-Stick mit dem Laufwerksbuchstaben “G:” verwendet.
Der Inhalt sollte wie folgt aussehen:
Der Unterordner “bin” enthält Programme, “doc” die Dokumentation. In “work” legen Sie Ihre Berechnungen ab.
Öffnen Sie den Unterordner “work” mit dem Windows-Explorer.
Gehen Sie dann in die Adresszeile (Tastenkombination Strg+L). Dort tippen Sie “cmd” und drücken Enter, um eine Befehlskonsole in diesem Ordner zu öffnen.
Geben Sie den Befehl java -version
ein, um zu prüfen, ob Java korrekt installiert wurde. Das ist der Fall, wenn Sie eine Meldung wie die oben abgebildete erhalten. (⚠ Lesen Sie die Hinweise zur Bedienung der Befehlskonsole und nehmen Sie die empfohlenen Einstellungen vor.)
Öffnen Sie die Datei “beispiel.txt” im Editor. Es handelt sich um eine ausführlich kommentierte Eingabedatei, die Sie als Grundlage für eigene Berechnungen verwenden können.
Wir möchten diese Eingabedatei von LEA abarbeiten lassen: Lassen Sie sich zunächst mit dem Aufrufparameter -h
den Hilfetext des Programms anzeigen. Befehl: java -jar ..\bin\leaapp\JavaApplicationLea.jar -h
. Dies liefert eine Übersicht der möglichen Aufrufparameter und ihrer Bedeutung.
Starten Sie jetzt die Berechnung: java -jar ..\bin\leaapp\JavaApplicationLea.jar -C -i beispiel.txt -o ergebnis.csv
. Im work-Ordner sollte eine neue Datei namens “ergebnis.csv” entstanden sein.
Erläuterungen: Mit
-i
wurde “beispiel.txt” als Eingabedatei festgelegt, mit-o
die Ausgabedatei “ergebnis.csv”. Der Parameter-C
sagt LEA, dass es seine Konfiguration direkt aus der Eingabedatei lesen soll (siehe Zeile 86, Config-Block).
Wenn Sie -o ergebnis.csv
weglassen, werden die Ergebnisse ins Konsolenfenster geschrieben statt in eine Ausgabedatei. Lassen Sie versuchsweise den Parameter -C
weg. Das Programm endet mit der Fehlermeldung
Error loading output points.
'outpoint' expected.
Line: 'config'
Die Meldung besagt, dass der Abbruch stattfand, als das Programm die Ausgabepunkte laden wollte. Es erwartete an dieser Stelle in der Eingabedatei das Schlüsselwort outpoint
, fand jedoch eine Zeile mit dem Inhalt ‘config
’.
Dies hilft Ihnen, den Fehler aufzuspüren: Suchen Sie im Texteditor die fragliche Stelle auf – den config-Block ab Zeile 86. Sie beheben das Problem, indem Sie diesen “auskommentieren”, d.h., Sie setzen ein “#” vor jede Zeile des Blocks. Nach dem Speichern führen Sie den letzen Befehl erneut aus. Das Programm sollte nun erfolgreich durchlaufen.
Öffnen Sie die Datei “ergebnis.csv” in LibreOffice Calc (per Rechtsklick auf die Datei – oder legen Sie fest, dass .csv-Dateien grundsätzlich mit Calc geöffnet werden). Es erscheint ein Import-Dialog, in dem Sie folgende Angaben machen: Sprache ‘Englisch’, Trennzeichen ‘Tabulator’, Zeichenketten-Trenner ‘"’. Der Import-Dialog merkt sich die zuletzt verwendeten Einstellungen.
Die Felder sind: disp Verschiebung (Displacement), stress Spannung, strain Dehnung. Weitere Informationen, speziell zu den Hauptspannungen, finden Sie in der Dokumentation in “lea2doc.pdf” im Abschnitt 5, CSV-Ausgabe. Siehe auch die Anmerkungen zu Maßeinheiten in “beispiel.txt”.
Wir möchten den Spannungsverlauf an der Oberfläche ermitteln. Dazu werden Ausgabepunkte im 1-mm-Abstand entlang der x-Achse gesetzt, vom Ursprung (0, 0, 0) bis zur Koordinate (2, 0, 0). Angaben in m.
Es werden also 2000 Ausgabepunkte gebraucht, die niemand von Hand eintippen möchte. Nehmen Sie ein neues Tabellenblatt in Calc. Geben Sie die Zeilen 2–5 wie in der folgenden Abbildung ein. (Beachten Sie, dass ein Dezimalpunkt statt eines Kommas verwendet wird.)
⚠ Achtung: Bitte geben Sie nach dem Wort ‘
add
’ ein Leerzeichen ein, wenn Sie eine ältere LEA-Version nutzen. Sie umgehen damit einen 🐞 Bug in LEA, der beim Erstellen des Tutorials aufgefallen ist. Der Programmfehler wurde in Version 2022-11-06 behoben.
Markieren Sie nun wie abgebildet die Felder der Zeilen 4 und 5. Ziehen Sie das schwarze Kästchen an der rechten unteren Ecke der Markierung mit der Maus nach unten, um die Auto-Ausfüllen-Funktion aufzurufen. Lassen Sie die Maustaste los, wenn Sie ungefähr in Zeile 2000 angekommen sind – auf einige Zeilen mehr oder weniger kommt es nicht an.
Markieren Sie alles mit Strg+A, kopieren Sie mit Strg+C und fügen Sie die Daten mit Strg+V im Texteditor an der Stelle des bisherigen Outpoint-Blocks ein. Speichern Sie die Datei als “beispiel2.txt”.
Führen Sie abschließend die Berechnung durch:
java -jar ..\bin\leaapp\JavaApplicationLea.jar -i beispiel2.txt -o ergebnis2.csv
Gehen Sie mit dem Windows-Explorer ins Verzeichnis “G:\bin\gnuplot\bin”. Starten Sie dort das Programm “wgnuplot.exe”. Machen Sie mit “ChDir” in der Symbolleiste das Verzeichnis “work” zu Gnuplots Arbeitsverzeichnis:
Alternativ hätten Sie den Befehl cd 'G:\lea\work'
eintippen können.
Nehmen Sie einige grundlegende Einstellungen für die Plots vor:
set grid
set style data lines
set key center
set xlabel "x [m]"
Einfügen aus der Zwischenablage geht in Gnuplot mit Umschalt+Einfg oder Rechtsklick, ‘Paste’. Sie können mehrere Befehle auf einmal einfügen. Eventuell müssen Sie Enter drücken, um den letzten Befehl abzuschließen.
Erzeugen Sie nacheinander diese drei Plots für Verschiebungen, Spannungen und Dehnungen:
set ylabel "Meter"
plot "ergebnis2.csv" using 3:7 title column, "" us 3:8 t col, "" us 3:9 t col
set ylabel "MPa"
plot "ergebnis2.csv" us 3:10 t col, "" us 3:11 t col, "" us 3:12 t col
set ylabel "Meter/Meter"
plot "ergebnis2.csv" us 3:22 t col, "" us 3:23 t col, "" us 3:24 t col
Das Ergebnis sollte etwa so aussehen:
Erläuterungen zu 🗠Gnuplot sprengen hier den Rahmen. Bei Interesse finden Sie ausführliche Anleitungen und Beispiele auf der Homepage des Programms.
Einstellungen öffnen: Rechtsklick auf den Fenstertitel, “Eigenschaften”.
Im Tab “Optionen” aktivieren Sie den Quick Edit-Modus und den Einfügemodus. Im Tab “Layout” unter Fenstergröße setzen Sie die Breite auf mindesten 80 Zeichen. Angenehme Werte für die Höhe sind 35–50 Zeilen.
Eingabezeile:
Enter führt den eingegebenen Befehl aus. ESC löscht die Eingabe.
Mit ←, →, Pos1 und Ende bewegen Sie sich in der Eingabezeile. (Der Cursor lässt sich nicht mit der Maus positionieren!) Mit Backspace und Entf wird wie gewohnt Text gelöscht.
Mit ↑ und ↓ blättern Sie durch die zuletzt eingegeben Befehle.
TAB ergänzt Dateinamen. Tippen Sie den Anfang eines
Dateinamens und schalten Sie durch wiederholtes Drücken der Tabulator-Taste durch die dazu passenden Dateien.
Zwischenablage:
Mit LibreOffice/Calc ein zweites Spreadsheet-Programm “in der Hinterhand” zu haben, lohnt sich auch für all jene, die primär Excel benutzen, denn Excel ist notorisch schlecht im Umgang mit Text- und CSV-Dateien.
Die meisten Programme, die numerische Berechnungen durchführen (so auch LEA), verwenden Textdateien zum Datenaustausch und stellen Zahlen in internationaler Schreibweise mit Punkt als Dezimaltrennzeichen dar. Tabellenkalkulationen (Spreadsheets) andererseits richten ihre Zahlendarstellung an den lokalen Spracheinstellungen aus.
Calc hat hier gegenüber Excel zwei entscheidende Vorteile:
Der beim Öffnen einer Text-/CSV-Datei erscheinende Import-Dialog ist mit einem Klick erledigt. Er merkt sich die letzten Einstellungen für das nächstes Mal.
Excels vielschrittiger Import-Assistent muss stets aufs neue durchlaufen werden. (In jüngeren Office-365-Versionen ist er als Legacy eingestuft und standardmäßig deaktiviert. Siehe Dokumentation im Original oder auf Roboter-Deutsch.)
Excel lässt sich nur über die systemweiten Ländereinstellungen (Systemsteuerung/Region) zum Verwenden des Dezimalpunkts überreden. Dortige Änderungen beeinflussen aber auch sämtliche anderen Programme, was selten erwünscht sein dürfte. In LibreOffice lassen sich Ländereinstellungen unabhängig konfigurieren (siehe unten), während der Rest des Systems in Ruhe gelassen wird.
Hinweis: Der Datenaustausch zwischen Excel und Calc über die Zwischenablage funktioniert auch bei unterschiedlichen Ländereinstellungen problemlos.
Öffnen Sie das Menü Extras, Optionen. Stellen Sie unter Spracheinstellungen, Sprachen im Abschnitt Formate das Gebietsschema auf “English (USA)”. Stellen Sie die übrigen Felder wie unten abgebildet zurück auf “Deutsch (Deutschland)”.
⚠ Feld Datumserkennungsmuster beachten!
Diese Betriebssysteme verwenden für Pfadangaben einen Slash (“/”) an Stelle des unter Windows üblichen Backslash (“\”). Passen Sie die Konsolenbefehle entsprechend an.
Für MacOS: Anleitung zum Öffnen eines Terminals (Befehlskonsole) im aktuellen Verzeichnis des Finders.
Java, Gnuplot und LibreOffice: Die Anwendungen sind für alle Betriebssysteme verfügbar. Unter Linux bezieht man sie üblicherweise über den Paketmanager der Distribution. Für MacOS findet man eine Version auf den Webseiten des jeweiligen Programms (Java, Gnuplot, LibreOffice).
Das im Ordner “bin\excel” enthaltene Excel-Frontend leistet ungefähr das, was Sie im vorliegenden Tutorial gelernt haben. Das Frontend erzeugt Jobdateien, ruft LEA auf, liest Ergebnisse ein und erstellt vergleichende Plots mit Gnuplot. Es funktioniert unter Windows mit Excel 2000–2019 einschließlich 64-Bit-Office-Versionen. Eine Anleitung befindet sich in der Datei “doc\liesmich!-excel.txt”.
Das Excel-Frontend wurde ursprünglich für hausinterne Zwecke erstellt. Der Versuch, es auch in der Lehre einzusetzen, führt zu stets wiederkehrenden Problemen, die oft nur einige Teilnehmer betreffen, für die Betroffenen jedoch nicht zu lösen sind. Von “ich habe gar kein Excel” abgesehen sind das etwa die Verwendung von MacOS, zunehmend strenge Sicherheitsvorgaben, die das Ausführen von VBA-Programmen unterbinden, oder die Verwendung von Office Online, das gar kein VBA unterstützt. Zur Abhilfe wurde dieses Tutorial erstellt.
Gilt für Versionen 2020-09-03 und älter. Der Programmfehler wurde mit Version 2022-11-06 behoben.
🐞 Beschreibung: Die Syntax der Eingabedatei erlaubt eine beliebige Vermischung von Tabs und Leerzeichen (Whitespace). Beim add-Befehl in den Blöcken outpoint, load und struct erwartet das Programm jedoch (fälschlich) ein Leerzeichen hinter dem Wort “add”. Wird ein Tab vorgefunden, bricht es mit einer Fehlermeldung ab.
Das Problem tritt insbesondere beim Einfügen aus Tabellenkalkulationen (Excel, Calc) in einen Texteditor auf. Man erkennt es an Fehlermeldungen wie folgender, in der das Programm einen Syntaxfehler bemängelt, obwohl die Syntax eingehalten wurde:
Error loading output points.
'add <OUTPUTPOINT>' expected.
Line: 'add pt1 0.001 0 0'
Workaround: Entweder im Texteditor alle Tabs (“\t”) durch Leerzeichen ersetzen lassen oder hinter dem Schlüsselwort “add” bewusst ein überflüssiges Leerzeichen einfügen.