Mit dem Modul können ICS Objekte direkt in Microstation Designfiles geschrieben werden.
Das analoge Modul MSOUT benötigt zum Schreiben von Designfiles das Produkt Microstation. |
Der Modul wird mit:
|INCL \script\dgnout.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Folgende Parameter können in der Map
DGNOUT_PARAM
für den Modul gesetzt werden:
Parameter | req/opt | Beschreibung |
CELL_FILE | o | Zellbibliothek die verwendet wird. Obligatorisch wenn Zellen nach Microstation geschrieben werden. |
CELL_SYMBOLOGY | o | ON oder OFF .
Default OFF . Definiert ,ob beim Schreiben
von Zellen die Symbology der Zelle in der Zellbibliothek
verwendet werden soll. |
RSC_DIR | o | STRING . Definiert den Pfad mit den
Microstation-Resource-Files, wie zum Beispiel die Fonts.
Wird benötigt um zusätzliche Informationen zu den Objekten
verarbeiten zu können. Beispiel Fontname bei Texten. |
DEBUG | o | ON oder OFF .
Default OFF . Debugmodus ein oder
aus. |
STATISTICS | o | ON oder OFF .
Default OFF . Statistik anzeigen ein oder
aus. |
Der Modul verlangt pro OUT-Objekt folgende Systemkomponenten:
Je nach OUT-Type werden folgende zusätzlichen Komponenten verlangt.
Komponente | req/opt | Beschreibung |
OUT.TYPE(s) | r | Typ des Objekts. |
OUT.LEVEL(i) | r | Microstation Level-Nummer des Objekts. |
OUT.COLOR(i) | r | Microstation Color des Objekts. |
OUT.WEIGHT(i) | r | Microstation Weight des Objekts. |
OUT.STYLE(i|s) | r | Microstation Style-Nummer oder -Name des Objekts. |
OUT.GGROUP(i) | o | Microstation Graphische-Gruppe-Nummer des Objekts. Optional. |
OUT.MODEL(s) | o | Microstation Model des Objekts. Optional. |
OUT.PRIORITY(i) | o | Microstation Priorität des Objekts. Optional. |
OUT.TYPE =
'POINT'
Wird als Microstation Type LINE (3) geschrieben.
Komponente | req/opt | Beschreibung |
OUT.GEOM(p) | r | Punkt-Geometrie des Objekts. |
OUT.TYPE =
'LINE'
Wird als Microstation Type LINE (3), LINESTRING (4), ARC (6) oder COMPLEX_LINESTRING (12) geschrieben. Hängt ab von der Anzahl Punkte und den Subtypes (Lines/Arcs) .
Komponente | req/opt | Beschreibung |
OUT.GEOM(l) | r | Linie-Geometrie des Objekts. |
OUT.TYPE =
'AREA'
Wird als Microstation Type SHAPE (6) oder COMPLEX_SHAPE (14) geschrieben. Hängt ab von der Anzahl Punkte und den Subtypes (Lines/Arcs) .
Komponente | req/opt | Beschreibung |
OUT.GEOM(a) | r | Flächen-Geometrie des Objekts. |
OUT.TYPE =
'FILLED_AREA'
Wird als Microstation Type SHAPE (6) oder COMPLEX_SHAPE (14) geschrieben. Hängt ab von der Anzahl Punkte und den Subtypes (Lines/Arcs) .
Komponente | req/opt | Beschreibung |
OUT.GEOM(a) | r | Flächen-Geometrie des Objekts. |
OUT.FILLCOLOR(i) | r | Füllfarbe des Objekts. |
OUT.TYPE =
'TEXT'
Wird als Microstation Type TEXT(17) geschrieben.
Komponente | req/opt | Beschreibung |
OUT.GEOM(p) | r | Punkt-Geometrie des Objekts. |
OUT.TXT(s) | r | Text des Objekts. Bei Symbolen in der Regel 1 Character. |
OUT.TW(r) | r | Textbreite des Objekts. (Microstation: tw=). |
OUT.TH(r) | r | Texthöhe des Objekts. (Microstation: th=). |
OUT.ROT(r) | r | Rotation des Objekts. |
OUT.FONT(i) | r | Font des Objekts. (Microstation: ft=). Bei TEXT ein Textfont. Bei SYMBOL ein Symbolfont. |
OUT.JUST(s) | r | Textjustierung des Objekts. (Horizontal: L: Left, C:Center, R:Right; Vertikal: T:Top, C:Center, B:Bottom; Beispiel LC). |
OUT.TYPE =
'TEXT_NODE'
Wird als Microstation Type TEXT_NODE(7) geschrieben.
Komponente | req/opt | Beschreibung |
OUT.GEOM(p) | r | Punkt-Geometrie des Objekts. |
OUT.TXT(s) | r | Text 1. Zeile des Objekts. |
OUT.TXT2(s) | o | Text 2. Zeile des Objekts. |
OUT.TXT<n>(s) | o | Text n. Zeile des Objekts. |
OUT.TW(r) | r | Textbreite des Objekts. (Microstation: tw=). |
OUT.TH(r) | r | Texthöhe des Objekts. (Microstation: th=). |
OUT.ROT(r) | r | Rotation des Objekts. |
OUT.FONT(i) | r | Font des Objekts. (Microstation: ft=). |
OUT.JUST(s) | r | Textjustierung des Objekts. (Horizontal: L: Left, C:Center, R:Right; Vertikal: T:Top, C:Center, B:Bottom; Beispiel LC). |
OUT.LINESPACING(r) | r | Linespacing des Objekts. (Microstation: ls=). |
OUT.TYPE =
'CELL'
Wird als Microstation Type CELL (2) geschrieben. Falls es sich bei der Zelle um eine Point-Zelle handelt, werden die OUT-Komponenten LEVEL, COLOR, WEIGHT, STYLE berücksichtigt. Bei einer Graphic-Zelle werden diese Komponenten nicht berücksichtigt.
Komponente | req/opt | Beschreibung |
OUT.GEOM(p) | r | Punkt-Geometrie des Objekts. |
OUT.CELL(s) | r | Zellnamen des Objektes. Die Zellbibliothek mit der Zelldefinition muss im Microstation-Designfile attached sein. |
OUT.ROT(r) | r | Rotation des Objekts. |
OUT.SCALE(r) | r | Skalierung des Objektes. |
OUT.FILLCELL(b) | o | TRUE|FALSE . Wenn
TRUE werden gefüllte Flächen
einer Zelledefinition gefüllt übertragen. Wenn
FALSE werden gefüllten Flächen
einer Zelledefinition nicht gefüllt
übertragen. |
OUT.CELL_BACKGROUNDCOLOR_KEEP(b) | o | TRUE|FALSE . Wenn
TRUE wird die Color von Elementen
einer Zelledefinition nicht verändert, wenn die
Color der Backgroundcolor entspricht. Wenn
FALSE wird die Color von
Elementen einer Zelledefinition geändert. |
Die Zelle muss in der attached Celllibrary existieren. |
OUT.TYPE =
'SHARED_CELL'
Wird als Microstation Type SHARED_CELL (35) geschrieben. Falls es sich bei der Zelle um eine Point-Zelle handelt, werden die OUT-Komponenten LEVEL, COLOR, WEIGHT, STYLE berücksichtigt. Bei einer Graphic-Zelle werden diese Komponenten nicht berücksichtigt.
Komponente | req/opt | Beschreibung |
OUT.GEOM(p) | r | Punkt-Geometrie des Objekts. |
OUT.CELL(s) | r | Zellnamen des Objektes. Die Zelldefinition der Shared Cell muss im Microstationfile definiert sein. |
OUT.ROT(r) | r | Rotation des Objekts. |
OUT.SCALE(r) | r | Skalierung des Objektes. |
Die Shared Cell Definition zu einer Shared Cell wird wie folgt verarbeitet:
|
Den Prozeduren DGNOUT_WRITE_*
müssen die Namen
von Signaturen übergeben werden. Eine Signatur ist eine Zusammenfassung
bestimmter graphischer Eigenschaften (z.B. Level oder Farbe) unter einem
Namen. Die Signaturnamen werden in den nachfolgenden Maps der
.cfg
Datei definiert:
MAP LINE_SYMBOLOGY
...
<symbology> => <style>,<level>,<color>,<weight>
...
END_MAP
MAP TEXT_SYMBOLOGY
...
<symbology> => <font>,<level>,<color>,<weight>,<tw>,<th>
...
END_MAP
MAP SYMBOL_SYMBOLOGY
...
<symbology> => <font>,<code>,<level>,<color>,<weight>,<scale>
...
END_MAP
MAP CELL_SYMBOLOGY
...
<symbology> => <cell>,<scale>
...
END_MAP
Die einzelnen Parameter haben folgende Bedeutung:
Name der definierten Signatur.
Microstation-Linecode.
Microstation-Level.
Microstation-Color.
Microstation-Weight.
Microstation-Font.
Microstation-Text-Width.
Microstation-Text-Height.
Microstation-Symbol-Character als Dezimalwert.
Microstation-Skalierung.
Microstation-Cellname.
Das Modul verfügt über eine Map, die die Abbildung der INTERLIS-Textjustierung - HALIGNMENT,VALIGNMENT zur Microstation-Textjustification beinhaltet. Diese Map sieht wie folgt aus.
MAP DGNOUT_ALI_TO_JUST 0,0 => LT 0,1 => LT 0,2 => LC 0,3 => LB 0,4 => LB 1,0 => CT 1,1 => CT 1,2 => CC 1,3 => CB 1,4 => CB 2,0 => RT 2,1 => RT 2,2 => RC 2,3 => RB 2,4 => RB DEFAULT => CC END_MAP
Diese Map kann in einer Konfiguration wie folgt angewendet werden.
IN.NamHAli , IN.NamVAli DGNOUT_ALI_TO_JUST => OUT.JUST
Prozedur | DGNOUT_OPEN ! [s output][] |
Beschreibung | Öffnet das Designfile <output> und initialisiert den Modul. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
Prozedur | DGNOUT_WRITE_OBJECT ! [][] |
Beschreibung | Schreibt ein Objekt in das Designfile. Das OUT-Objekt muss gemäss dem Objektmodell vorbereitet sein. |
Beispiel |
|
Prozedur | DGNOUT_CLOSE ! [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
Prozedur | DGNOUT_WRITE_POINT2 ! p point, s symbology |
Beschreibung | Schreibt einen Punkt in
das Designfile. Die Signatur muss in der Map
|
Beispiel | Definition Symbology.
Anwendung mit
Anwendung in einer Rule.
|
Prozedur | DGNOUT_WRITE_LINE2 ! l line, s symbology |
Beschreibung | Schreibt eine Linie in
das Designfile. Die Signatur muss in der Map
|
Beispiel | Definition Symbology.
Anwendung mit
Anwendung in einer Rule.
|
Prozedur | DGNOUT_WRITE_AREA2 ! a area, s symbology |
Beschreibung | Schreibt eine Fläche in
das Designfile. Die Signatur muss in der Map
|
Beispiel | Definition Symbology.
Anwendung mit
Anwendung in einer Rule.
|
Prozedur | DGNOUT_WRITE_FILLED_AREA2 ! a area, s symbology |
Beschreibung | Schreibt eine gefüllte
Fläche in das Designfile. Die Signatur muss in der Map
|
Beispiel | Definition Symbology.
Anwendung mit
Anwendung in einer Rule.
|
Prozedur | DGNOUT_WRITE_TEXT6 ! s text, p position, r rotation, i HAli, i VAli, s symbology |
Beschreibung | Schreibt einen Text in
das Designfile. Die Signatur muss in der Map
|
Beispiel | Definition Symbology.
Anwendung mit
Anwendung in einer Rule.
|
Prozedur | DGNOUT_WRITE_CELL3 ! p position, r rotation, s symbology |
Beschreibung | Schreibt eine Zellen in
das Designfile. Die Signatur muss in der Map
|
Beispiel | Definition Symbology.
Anwendung mit
Anwendung in einer Rule.
|
Prozedur | DGNOUT_WRITE_SHARED_CELL3 ! p position, r rotation, s symbology |
Beschreibung | Schreibt eine Zelle in
das Designfile. Die Signatur muss in der Map
|
Beispiel | Definition Symbology.
Anwendung mit
Anwendung in einer Rule.
|
Prozedur | DGNOUT_SET_MODEL1 ! s model |
Beschreibung | Setzt global
|
Beispiel | Anwendung mit
Anwendung in einer Rule.
|
Prozedur | DGNOUT_SET_PRIORITY1 ! i priority |
Beschreibung | Setzt global
|
Beispiel | Anwendung mit
Anwendung in einer Rule.
|
Prozedur | DGNOUT_SET_FILLCELL1 ! b TRUE|FALSE |
Beschreibung | Setzt global
|
Beispiel | Anwendung mit
Anwendung in einer Rule.
|
Prozedur | DGNOUT_SET_CELL_BACKGROUNDCOLOR_KEEP1 ! b TRUE|FALSE |
Beschreibung | Setzt global
|
Beispiel | Anwendung mit
Anwendung in einer Rule.
|
Beispiel ohne Datenbankanbindung.
! Diese ICS Konfiguration kopiert einige von ilin.mod ! gelesenen Objekte mit dgnout.mod in eine DGN-Datei. ! Eine Datenbankanbindung wird nicht berücksichtigt. |LICENSE \license\iltools.lic MAP USER_INPUT1 DIALOG => FILE MESSAGE => 'Enter .itf Input File' FILE_FILTER => itf FILE_EXISTS => TRUE OPT => input END_MAP MAP USER_INPUT2 DIALOG => FILE MESSAGE => 'Enter .dgn Output File' FILE_FILTER => dgn FILE_EXISTS => FALSE OPT => output END_MAP MAP ILIN_PARAM INTERLIS_DEF => \models\Grunddatensatz.ili STATISTICS => ON END_MAP MAP DGNOUT_PARAM STATISTICS => ON END_MAP MAP LINE_SYMBOLOGY !SYMBOLOGY => STYLE,LEVEL,COLOR,WEIGHT SYMB1 => 0,1,1,0 END_MAP MAP INPUT_SOURCES I1 => ILIN,OPT.input END_MAP MAP INOUT I1 => IN.TOPIC,IN.TABLE I1,Bodenbedeckung,BoFlaeche_Geometrie => DGNOUT_WRITE_LINE2,IN.GEOM,SYMB1 I1,Bodenbedeckung,BoFlaeche => DGNOUT_WRITE_POINT2,IN.Geometrie,SYMB1 I1,* => OFF END_MAP |INCL \script\ilin.mod |INCL \script\dgnout.mod |INCL \script\run1.prg