Dateiformate beim Statikprogramm


Thomas Wölfer
Thomas Wölfer

18. März 2005


Nicht sehr viele, aber doch einiger der Anwender unserer Statikprogramme würden gerne Daten für diese Programme erzeugen - und zwar ohne diese Daten von Hand in den Programmen einzugeben. Gründe dafür gibt es viele: Zum Beispiel können die Daten ja bereits in einer Excel-Tabelle vorliegen, oder aber sie liegen bereits in 'aehnlicher' Form in einer CAD-Zeichnung vor.

Diese Anwender waren nicht besonders begeistert, als wir das Dateiformat des Plattenprogramms und des Rahmenprogramms auf ein Binärformat umgestellt haben. Grund: Dieses Dateiformat ist in der Praxis von einer anderen Anwendung nicht erzeugbar. Zwar hatten wir statt dessen Support für die Erzeugung von Daten per Script zur Verfügung gestellt (in XRST) - allgemein wurde es aber trotzdem wohl bedauert, das man nicht mehr 'einfach so' Daten für die Programme generieren konnte.

Beim kommenden Faltwerksprogramm wird sich das wieder ändern: Dort werden (fast) alle Daten in einem von Menschen lesbaren Format - und zwar in Form von XML - vorliegen.

Warum nur 'fast'? Weil es einige Daten gibt, bei denen es keinen Sinn macht, das Sie auch mit einem Texteditor bearbeitet werden können. Folgende Dateien werden von Menschen lesbar (und bearbeitbar) sein - oder nicht.

Lesbar und bearbeitbar:

  • Projektdateien (beschreiben ein komplettes Projekt mit mehreren darin enthaltenen Dateien)
  • Dokumentdateien (enthalten die eigentlichen Eingabedaten eines Bauteils)
  • Einstellungsdateien (enthalten alle unter 'Optionen' vorgenommenen Einstellungen
  • Menüdateien (enthalten die Menüs)
  • Toolbardateien (enthalten die Werkzeugleisten)
  • Keyboard-Bindings (enthalten die Hotkey-Kombinationen)

Nicht lesbar:

  • Ergebnis-Cache (enthält fertige Berechnungsergebnisse)
  • Fenster-Cache (enthält Größe, Position und Aufbau von Fenster)
  • Status-Cache (enthält Informationen über verschiedene Programmzustände)

Eine solche XML Datei sind (auszugsweise und etwas vereinfacht) so aus:

<Document>
  <Contents>
    <Collection ObjectType="Node">
      <Object Id="1" X="1" Z="0" Y="0" />
      <Object Id="2" X="0" Z="0" Y="0" />
    </Collection>
  </Contents>
  <Selection />
</Document>

Wer will, kann also einfach solche Daten zum Beispiel aus seinem CAD-Programm heraus erzeugen.

Außerdem ist aber auch die programmierbarkeit viel weitergeführt, als das bei XRST der Fall war: Man kann tatsächliche sämtliche Objekte selbst erzeugen, verwaltung und löschen. Man kann eigene Dialoge gestalten und Befehle einfügen - und man hat auch Zugriff auf sämtliche Daten der Berechnung: Wer also statt Eingabedateien lieber gleich die 'richtigen' Objekte erzeugen will - der wird das auch tun können.