Thomas Woelfers Baustatik Blog

Baustatik-Software und was sonst des Weges kommt

Neue Updates verfügbar

Ab sofort sind neue Updates verfügbar: Es gibt das (monatlich) Update für die Baustatik, sowie Updates für Xrst, Xpla, Xscheibe, Xest, Xros, Xvos und Xwin. Die Details stehen wie immer im Update-Protokoll im Download-Bereich.

Hier ein kurzer Einblick in die wichtigsten neuen Funktionen der Baustatik:

Kleine Statistik zur Baustatik

Weil ich gerade eine neue Version baue, habe ich mal wieder in unser Revision-Control System geschaut. Der aktuelle Stand des Quellcodes zur Baustatik sieht so aus:

Versionen: 47357
Anzahl Dateien: 17492 (und ca. 4000 gelöschte)
Anzahl Ordner: 2206 (und ca. 200 gelöschte)

Das ganze braucht (im nicht übersetzten Zustand) etwas über 1.1 GB auf der Platte des Build-Servers.

Zum Ausdruck von Stabergebnissen

In der Baustatik kann man über die Ausgabesteuerung festlegen, was und wie gedruckt werden soll. Bei Ergebnissen für Stäbe konnte man da bisher unter anderem einstellen, ob alle Ntels-Punkte ausgegeben werden sollen, oder nur Stellen mit Maximalwerten.

Ab dem nächsten Update gibt es zusätzlich noch eine Option “Ergebnisse am Stabanfang und Stabende”. Diese Option wirkt gleichzeitig mit der für Maximalwerte: Schaltet man beide ein, dann bekommt man die Ergebnisse an den beiden Enden des Stabes, sowie die Ergebnisse in Ntelspunkten mit Maximalwerten. (Wenn die identisch sind, wir das natürlich nur einmal ausgegeben.)

image

Über den Unterschied von automatischen und manuellen Updates

Für unsere Baustatik-Software gibt es einen monatlichen Update-Zyklus. Jeweils zum Anfang eines neuen Monats gibt es dabei eine neue Version der Programme mit einer Liste der Änderungen und Neuerungen.

Wenn man die “automatischen” Updates in der Programm-Optionen eingeschaltet hat (und das ist von Haus aus der Fall), dann untersucht die Software bei jedem Programmstart, ob eine neuere Version verfügbar ist. Ist das der Fall, dann meldet sich das Programm und zeigt ein Fenster an, mit dem man diese Version herunterladen kann.

Außerdem veröffentlichen wir bei jeder neuen Version einen Eintrag im RSS-Feed für Updates und versenden auch eine Benachrichtigungs-Email an alle Teilnehmer unserer Mailing-Liste. Wenn man auf den Feed oder die EMail reagiert, kann man sich im Download-Bereich unseres Webservers anmelden, und von dort das Update runterladen und installieren.

Die automatisch heruntergeladene Datei und die manuell heruntergeladene Datei unterscheiden sich allerdings.

Warum ist das so, und welche Konsequenzen hat das ?

Die Baustatik besteht im Wesentlichen aus zwei Teilen: Der eine Teil ist das eigentliche Programm, das sich monatlich ändert, der andere Teil besteht aus Laufzeitbibliotheken, die zu den von uns verwendeten Werkzeugen gehören – zum Beispiel die Microsoft C++ Runtime-Library. Dieser zweite Teil ändert sich also nur, wenn wir neue Werkzeuge einsetzen, und das passiert eigentlich immer nur dann, wenn es eine neue Compiler-Version gibt. Das passiert so ungefähr einmal alle 2 Jahre.

Das “manuelle” Download enthält immer alle Teile, also auch die, die sich “eigentlich” nicht ändern. das ist darum so, damit sich niemand darüber Gedanken machen muss, ob irgendwelche Systemvoraussetzungen bereits installiert sind oder nicht. Der Nachteil davon ist, das das Download dadurch allerdings auch deutlich größer ist.

Das “automatische” Download kennt aber die bereits installierte Version der Baustatik (die schaut ja schließlich selbst nach), und darum bekommt man da entweder das Komplettpaket oder nur ein kleineres, in dem die Laufzeitbibliotheken nicht enthalten sind. Das ist schön, weil die Menge der herunterzuladenen Daten dadurch geringer wird, was die Sache beschleunigt.

Jetzt kommt das Problem: Auch das “automatische” Download ist letztlich nur eine Datei, die an der Stelle auf dem eigenen Rechner liegt, an die man sie kopiert hat. Wenn man nun einen neuen Rechner installiert, und dann dort das “automatische” Update installiert – in der Ansicht, da wären ja “alle” neuesten Teile drin – dann kann man die Programme danach nicht starten. Grund: Die Systemvoraussetzungen fehlen, denn die sind ja im “automatischen” Download nicht drin.

Lange Rede kurzer Sinn: Wenn man die Baustatik auf einem neuen Rechner installieren will, dann muss man das mit dem “manuellen” Download (oder von CD) tun, sonst gehts nicht.

Kommende Attraktionen

Ab dem nächsten Update der Baustatik gibt es in den Ansichten (und der Draufsicht) ein zusätzliches Lineal:

image

Kann man natürlich auch mit ausdrucken…

Außerdem: Man kann dann die auszudruckenden Elemente besser einschränken:

image

In der Spalte, in der man per Komma getrennt die Namen der auszudruckenden Elemente eingibt, kann in jedem Komma-getrennten Feld folgendes eingegeben werden:

  • Ein Name eines Objektes (das ist das Objekt, das mit ausgedruckt wird)
  • Ein einleitender Text, gefolgt vom Zeichen ‘*’: Dabei werden alle Elemente ausgedruckt, deren Namen mit dem einleitenden Text beginnen.
  • Ein Bereich, also zum Beispiel 1-500: Dabei werden alle Objekte ausgedruckt, deren Namen in den angegebenen Bereich passen. (Die Namen der Objekte müssen dazu natürlich Zahlen sein.)

Ergebnisse für nur einen Teil der Struktur anzeigen

Besonders bei großen Strukturen wird die graphische Anzeige der Berechnungsergebnisse schnell etwas unübersichtlich. Aus diesem Grund kann man die Anzeige einschränken. Dafür gibt es zwei Methoden. Zum einen kann man jedem Objekt ein “Darstellungsobjekt” zuordnen, und darüber steuern, ob die Ergebnisse angezeigt werden oder nicht.

Die zweite Möglichkeit besteht darin, ein Fenster zu öffnen, in dem nur noch die Elemente angezeigt werden, für die man Ergebnisse sehen möchte. Dazu wählt man zunächst die gewünschten Elemente aus und klickt dann mit der rechten Maustaste auf die Auswahl. Es öffnet sich dann ein Objektmenü, und das enthält einen Befehl, mit dem man ein Fenster öffnen kann, das nur noch die ausgewählten Objekte enthält.

image

Im neuen Fenster kann man dann einfach das Ergebnis auswählen, das angezeigt werden soll.

(Tipp: Wenn man davon dann einen Navigationspunkt anlegt, kann man das Fenster zu einem späteren Zeitpunkt auch wieder herstellen.)

Baustatik startet schneller

Aufgrund einiger Umbauarbeiten in der Baustatik startet das Programm ab dem nächsten Update deutlich schneller. Die aktuelle Version braucht (auch meinem Rechner) etwa 4 Sekunden bis sie vollständig geladen ist. Ab dem nächsten Update sind es noch etwa 2 Sekunden – und damit liegt die Startzeit der Baustatik in gleichen Rahmen wie Xrst oder Xpla.

Tatsächlich glaube ich, das wir das noch ein bisschen schneller hinbekommen werden, aber das braucht noch ein paar weitergehende Untersuchungen: Nachdem es nun aber nur noch um Sekundenbruchteile geht, ist das nicht wirklich besonders weit oben in der Todo-Liste…

Ergebnisse in festem Raster anzeigen

Die Baustatik kann die Ergebnisse in verschiedenen unterschiedlichen Arten darstellen. Eine Darstellungsform ist die Darstellung als Zahlenfeld. Wo die Zahlen im Zahlenfeld stehen, ist von einer bestimmten Einstellung abhängig. Von Haus aus werden die Ergebnisse in FE-Knoten angezeigt.

image

Mit dieser Option sieht die Graphik dann beispielsweise so aus:

image

Nun kann man statt dessen auch eine Darstellung im Ergebnis-Raster auswählen:

image

Danach sind die Darstellung zunächst wie folgt aus:

image

Das sind natürlich ein bisschen wenig Zahlen. Der Grund dafür besteht darin, das noch keine Abmessungen für das Raster angegeben wurden. In diesem Fall verwendet das Programm ein Raster mit einer Kantenlänge von einem Meter.

Das kann man aber ändern: Man legt dazu ein Objekt vom Typ Ergebnisraster an, und legt dieses Raster als “Standard” fest:

image

Resultat:

image

So exportiert man ein Dach

Man kann in der Baustatik übrigens auch Dächer “als Faltwerk speichern”. Dazu gibt es im Dach-Designer einen passenden Befehl:

image

Wenn man das tut, erhält man ein Faltwerks-Dokument mit allen benötigten Einwirkungen in den richtigen Lastfällen, sowie allen nichtlinearen Lastfallgruppen:
image

Mehr Lastweiterleitung in der Baustatik

Ich hatte kürzlich über eine Erweiterung der Baustatik berichtet, die ab dem nächsten Update verfügbar sein wird. Folgendes hatte ich da nicht erwähnt (und zwar, weil es das letzte Woche noch nicht gab.)

  • Beim exportieren werden nicht nur die Ergebnisse für Einzellastfälle, sondern auch die aus Lastfallgruppen (mit Berechnung nach Theorie 1. und 2. Ordnung) exportiert.
  • Beim importieren können die Ziel-Lastfälle automatisch angelegt werden. Dabei sucht das Programm nach einem Lastfall mit dem gleichen Namen wie der, der angezeigt wird: Gibt es so einen Lastfall, dann wird der verwendet, ansonsten wird einer angelegt.
    image
  • Ist die Option für die automatische Vergabe der Ziellastfälle ausgeschaltet, dann erscheint im Auswahl-Fenster neben jedem Original-Lastfall eine Auswahlmöglichkeit für den gewünschten Ziellastfall. Man kann dann also selbst entscheiden, wo die neuen Einwirkungen landen.
    image
  • Und dann gibt es noch eine Möglichkeit die neuen Einwirkungen bezogen auf ihre alten Positionen zu verschieben.
    image

Lastweiterleitung in der Baustatik

Ab der nächsten Version der Baustatik gibt es eine einfache Methode der Lastweiterleitung. Dabei können Einzel- und Streckenlagerreaktionen aus Einzellastfällen in einem Dokument als Einzel- und Streckeneinwirkungen in einem anderen Dokument aufgebracht werden. Das geht sowohl im Faltwerk als auch in der Platte und funktioniert so:

Zunächst wählt man im ersten Dokument den Befehl zum exportieren der Auflagerreaktionen.

image

Die Baustatik führt dann die Berechnung durch.  Wenn das  geht, dann gibt man eine Datei an, in die die Lagerkräfte exportiert werden sollen.

image

Das wars beim exportieren. (Bzw: man kann, wenn man in einem Gesamtgebäudemodell arbeitet, auch mehrere Stockwerke nacheinander exportieren.)

Jetzt wechselt man in das andere Dokument und wählt den Befehl zum importieren der Einwirkungen.

image

Dann wählt man die Datei aus, in der sich die exportierten Lagerreaktionen befinden. die Baustatik zeigt dann ein Fenster an, in dem alle Lastfälle angezeigt werden, die vorhanden sind. Daraus kann man einen oder mehrere auswählen. Für eine bessere Übersicht werden dann die Kräfte symbolisch in der Graphik angezeigt.

image

Mann kann also die Lastfälle auswählen, die man importieren möchte. Schließlich drückt man auf “Jetzt importieren”, und die Einwirkungen werden dann in den zugehörigen Lastfällen erzeugt. (Bei Bedarf werden die Lastfälle gleich mit angelegt.)

image

FileNotFoundException beim XmlSerializer

Folgendes passiert: Man versucht Instanzen mit dem XmlSerializer zu serialisieren, bekommt aber im Konstruktor der Serializers eine FileNotFoundException. Was ist zu tun?

Dazu muss man zunächst mal wissen, das es im Wesentlichen zwei Methoden gibt, die Serialisierungs-Assemblies zu erzeugen:

  1. Zur Kompilierzeit, also beim bauen des Projektes
  2. Zur Laufzeit der Anwendung

Der erste Fall ist manchmal ganz gut dafür geeignet, die Ladezeit der Anwendung zu verkürzen: In diesem Fall ist die DLL aber garantiert da, denn wenn das nicht der Fall wäre, wäre bereits beim bauen der Anwendung ein Fehler aufgetreten.

Es geht also um den zweiten Fall. Da passiert folgendes: Der Konstruktor des XmlSerializers versucht zunächst eine passende Assembly zu finden (die hat den Namen der DLL, in der der zu serialisierende Typ steckt, plus die Erweiterung “Xmlserializer.dll”). Findet er die nicht, wird zur Laufzeit Code zum serialisieren erzeugt und übersetzt – und die daraus resultierende Assembly wird dann geladen und zum serialisieren eingesetzt.

Die FileNotFound Exception kommt dann, wenn das erzeugen der Serialisierungs-Assembly nicht geklappt hat. Dafür kann es jede Menge Gründe geben – nicht zuletzt Fehler in der Struktur der zu serialisierenden Klassen oder deren Auszeichnung.

Wie findet man nun das Problem? So:

  1. Einen (Visual Studio) Command-Prompt öffnen
  2. In das Verzeichnis wechseln, in der sich die Anwendung befindet
  3. “sgen NameDerAusgabgsDll.Dll /v” eingben

Sgen gibt dann eine im allgemeinen einfach verständliche Fehlermeldung aus: Korrigiert man den Fehler, ist man auch die FileNotFoundException los.