MicroStation MDL-Applikation DGNSQD.MA 2D V7
Autor: Frank Tokarski
Stand: 11/2007
1. Kurzbeschreibung
Das Programm DGNSQD.MA ist ein Konverter für MicroStation-DGN nach SICAD-SQD.Für das Erzeugen der SQD-Dateien wird eine Parameter-Datei benötigt.(siehe 4. und Anlage 1)Der Konverter ist noch nicht vollständig fertiggestellt. Anpassungen für aktuelle Projekte können kurzfristig vorgenommen werden.
2. Voraussetzungen
Das Programm DGNSQD.MA befindet sich im MDL-Applikationsverzeichnis
z.B. c:\Bentley\Program\MicroStation\mdlapps Zur Lizensierung muß das Verzeichnis „License“ unter dem Hauptverzeichnis angelegt sein.
z.B. c:\Bentley\Program\MicroStation\license
Eine gültige Lizenz dgnsqd.lic befindet sich in diesem Verzeichnis. Eine aktuelle Parameterdatei ist angehangen.
3. Allgemeiner Arbeitsablauf
Der Konverter wurde zunächst für die Übertragung von Flächenobjekten programmiert. Eine Datenbank (ODBC-Schnittstelle) mit Sachdaten, die mit den Flächen verbunden sind, ist angehangen. Die Flächen müssen vom Typ 6 oder 14 sein. Für Flächen mit Löchern (ShapeHoles) ist eine Umformung in Shapes bzw. Complex Shapes vorzunehmen:
Die Flächen benötigen in SICAD eine Bezugskoordinate. Einzige Bedingung ist, dass sie innerhalb ihrer Bezugsfläche liegen muß. Für diesen Bezugspunkt kann nicht immer der Schwerpunkt einer Fläche benutzt werden, da nicht bei jeder Fläche der Schwerpunkt innerhalb liegt. Deshalb ist die Berechnung dieser Bezugskoordinate keine triviale Sache. Der Konverter bietet intern einen Berechnungsalgorithmus. Bei Kleinstflächen bzw. ganz schmalen Streifen gelingt es nicht immer, eine gültige Bezugskoordinate automatisch zu erzeugen. In diesen seltenen Fällen wird das durch die interne Kontrolle bemerkt und eine entsprechende Fehlermeldung ausgegeben:
Durch diese Meldung hat man die Chance über die ErsteEcke-Koordinate die Fläche im DGN und in der SQD-Datei zu finden und eine Anpassung der Objektkoordinate per Hand vorzunehmen.
Wahlweise besteht die Möglichkeit die Objektkoordinate aus der Datenbank zu übernehmen.
4. Beschreibung der Parameterdatei
Die Parameterdatei besteht aus 42 Spalten (7 Eingabespalten und 35 Ausgabespalten). Jede Spalte muß eine Eintragung haben. Ist kein Wert für eine Spalte vorgesehen, muß dafür ein * eingetragen sein. Ein Semikolon als 1. Zeichen in einer Zeile bedeutet Kommentar: Diese Zeile wird vom Programm nicht ausgewertet. Innerhalb einer Zeile sind die Spalteneinträge mit Tabulator oder Leerzeichen zu trennen. Die 7 Eingabespalten sind für die Selektion der MicroStation-Elemente bedeutsam. Wir unterscheiden drei Varianten (Zellen und Linien/Flächen und Text):
1. Zellen: Level Typ Cellname * * * *
2. Linien/
Flächen: Level Typ Color Style Weight * *
3. Text: Level Typ Color Font Weight Texthöhe Justifikation
Level ... Ebenenangabe 1-63 (keine Namen)
Typ ... Typnummer Cell=2, Line=3
Cellname ... Auf Großschreibung achten, bis zu 6 Zeichen
Color ... Farbangabe 0-254 (keine Namen)
Style ... Linienart 0-7 oder benutzerdefinierte Styles (Namen)
Font ... Fontnummer
Weight ... Strichdicke 0-15
Th ... Texthöhe
Just ... Textausrichtung
Eine wichtige für die Ausgabe maßgebliche Spalte ist die erste Ausgabespalte:
Sie ist entweder mit * oder M belegt. Mit * belegt, handelt es sich um eine Attributzeile.Ist die erste Spalte mit einem M belegt, ist es ein Maskensteuersatz.
In SICAD kann sich ein Objekt aus verschiedenen Elementen zusammensetzen, die von einander abhängig in verschiedenen Stufen angeordnet sind (Hierachiestufen).
Ein Punkt als Objekt hat standardmäßig die Stufe 1. Ihm folgen keine abhängigen Elemente.
Eine Linie als Objekt hat -„- die Stufe 1. Ihr folgen als Unterelemente 2 Punkte in der Stufe 2.
Eine Fläche als Objekt hat -„- die Stufe 1. Ihr folgt standardmäßig ein Bogen bzw. eine Linie in der Stufe 2 und diesem Linienelement folgen als Unterelemente die Randpunkte in der Stufe 3.
In Abhängigkeit von der Art des zu definierten Objekts in der Parameterdatei, bekommt es je nach Hierachie für jede Stufe eine Definition.
Für ein Flächenobjekt kann das z.B. folgendermaßen aussehen (Zeilen verkürzt):
;Dächer geneigt
M 2 6 2 0 1 * * * FL EB ST * * SM
* 2 6 2 0 1 * * 8002 FL 2 111 * * 01
* 2 14 2 0 1 * * 8002 FL 2 111 * * 01
* 2 15 2 0 1 * * 8002 FL 2 111 * * 01
M 2 3 2 0 1 * * * LI EB ST * * SM
* 2 3 2 0 1 * * 8002 LI 1 87 * * 01
M 2 2 2 0 1 * * * PG EB ST PKZ * SM
* 2 2 2 0 1 * * 8002 PG 1 87 ‘C’ * 01
Dieses Flächenobjekt besteht aus drei Stufen ( FL, LI und PG). Jede Stufe wird durch einen Maskensteuersatz eingeleitet. Wie bei den Attributzeilen werden auch hier über die 7 Eingabespalten(blau gekennzeichnet) die MicroStation-Elemente eindeutig bestimmt. Dem Maskensteuersatz folgt eine oder mehrere Attributzeile(n). Je nachdem, ob 1 oder mehrere MicroStation-Elementtypen pro Stufe zugelassen sind.
Im Beispiel sind in der Stufe FL die Elementtypen
6 Shape
14 Complex Shape
15 Circle zugelassen, für die auch je eine Attributzeile definiert ist.
In der 2. Stufe ist im Beispiel nur die Line definiert. (Auf ein mögliches Bogen-Element ist das Programm noch nicht vorbereitet)
In der 3. Stufe erfolgt die Definition eines Punktes.
In jeder Stufe eines Objektes gibt obligatorische Attribute wie z.B.:
ETYP ...Elementtyp, (10. Spalte der Parameterdatei, z.B. FL, LI, PG)
STU ...Stufennummer (nicht in Parameterdatei, wird vom Programm automatisch erzeugt)
ENUM ...Elementnummer (nicht in Parameterdatei, wird vom Programm automatisch erzeugt)
EB ...Ebenennummer (bis zu 31 Ebenen möglich)
Des weiteren sind in jeder Stufe fakultative Attribute bzw. Sachdaten übertragbar, wie z.B.:
OS ...Objektschlüssel (9. Spalte ist dafür vorgesehen)
PKZ ...Punktkennzeichen (13. Spalte nur für Punkte vorgesehen)
Der Maskensteuersatz hat folgende Aufgabe:
In der 9. und von der 11. bis zur 42. Spalte steht der Variablenname, wie er direkt in die SQD-Datei zu übernehmen ist. In den nachfolgen zugewiesenen Attributzeilen ist der Wert der Attributvariablen, wie er direkt in die SQD-Datei zu übernehmen ist, vorgegeben.Steht im Maskensteuersatz in der 9. bzw. 11. bis zur 36. Spalte etwas anderes als * , so wird dieses Attribut nach SQD übertragen. Von der 30. bis zur 42. Spalte ist die Steuerung von Variablen einer optional verwendbaren Datenbank vorbereitet. Die ersten 3 davon sind für Objektkoordinaten (x, y, z) reserviert. Die anderen 10 Stellen können völlig frei, je nach Projektanforderungen belegt werden. Das Programm ist z.Z. nur für die erste Stufe eines Objektes für die Übernahme von Datenbank-Sachwerten vorbereitet.