Mit dem Modul VPRIO können geometrisch übereinanderliegende Vektoren - Linenzüge - über Prioriäten eliminiert werden. Typische Anwendungen sind das Eliminieren von Doppellinien von Flächen die in den INTERLIS 1 Typ AREA übertragen werden müssen oder das Eliminieren von Doppellinien aufgrund der Priorität ermittelt aus einer Linienart.
VPRIO wird mit:
|INCL \script\vprio.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Folgende Parameter können in der Map VPRIO_PARAM
für den Modul gesetzt werden:
Parameter | req/opt | Beschreibung |
RESOLUTION | r | Geometrische Auflösung der Inputgeometrien. Für
mm-Auflösung muss z.B. 0.001 eingegeben
werden. |
TOLERANCE | o | Geometrische Toleranz mit der dopplete Linien eliminiert werden. Wenn der Parameter nicht definiert ist, ist die Tolerance gleich der Resolution. |
GEOMETRY_BREAK_GATTR | o | ON oder OFF, Default = ON. Sollen die zurückzulesenden
Geometrien bei unterschriedlichen GATTR-Werten
(Geometrie-Attribute) aufgetrennt werden. Das Geometrie-Attribut
einer Geometrie kann mit den Methoden
ICS.SET_GATTR und
ICS.GET_GATTR gesschrieben und gelesen
werden. |
GEOMETRY_BREAK_PRIORITY | o | ON oder OFF, Default = OFF. Sollen die zurückzulesenden Geometrien bei unterschriedlichen Prioritäten aufgetrennt werden. |
STATISTICS | o | ON oder OFF, Default = OFF. Statistik anzeigen. |
Dem Modul VPRIO werden Objekte mit der vordefinierten Prozedur
VPRIO_WRITE_LINE2
übergeben (s.a. unten). Nach der
Berechnung liefert der Modul VPRIO pro IN-Objekt folgende
Systemkomponenten:
Komponente | req/opt | Beschreibung |
IN.PRIO(s) | r | Priorität des Objekts. |
IN.GEOM(l) | r | Liniengeometrie des Objekts. |
Zur Anwendung mit RUN1 stehen folgende Prozeduren zur Vefügung.
Prozedur | VPRIO_WRITE_LINE2 ! g geometry, i priority |
Beschreibung | Schreibt die Geometrie mit der
Priorität in das Modul. Als Geometrien können Linien- und
Flächengeometrien übergeben. Flächengeometrien werden in
Liniengeometrien aufgelöst. Eine Geometrie mit der Priorität=n
eliminiert eine identische Geometrie mit der Priorität <= n.
Bevor die Elimination mit VPRIO_OPEN berechnet
wird, müssen mit dieser Prozedur Geometrien in den VPRIO-Buffer
geschrieben werden. |
Beispiel |
|
Prozedur | VPRIO_OPEN ! [][] |
Beschreibung | Öffnet den Modul zur Berechnung der Elimination der Doppellinien. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
Prozedur | VPRIO_READ_OBJECT ! [][b status] |
Beschreibung | Liest das nächste IN-Objekt gemäss Objektmodell. Die Prozedur wird von RUN1 automatisch aufgerufen |
Beispiel |
|
Prozedur | VPRIO_CLOSE ! [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Ressourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
Zur direkten Anwendung ohne RUN1 stehen folgende Methoden zur Vefügung.
Methode | VPRIO.OPEN ! [] [] |
Beschreibung | Direkte Methode zur Anwendung ohne RUN1. Öffnet den Modul. |
Beispiel |
|
Methode | VPRIO.WRITE_LINE ! [g geometry, i priority] [] |
Beschreibung | Direkte Methode zur Anwendung ohne
RUN1. Schreibt die Geometrie mit der Priorität in das Modul. Als
Geometrien können Linien- und Flächengeometrien übergeben.
Flächengeometrien werden in Liniengeometrien aufgelöst. Eine
Geometrie mit der Priorität=n eliminiert eine identische Geometrie
mit der Priorität <= n. Bevor die Elimination mit
VPRIO.CALCULATE berechnet wird, müssen mit
dieser Methode Geometrien in den VPRIO-Buffer geschrieben
werden. |
Beispiel |
|
Methode | VPRIO.CALCULATE ! [] [b state] |
Beschreibung | Direkte Methode zur Anwendung ohne RUN1. Berechnet die Elimination der Doppellinien. |
Beispiel |
|
Prozedur | VPRIO.READ_LINE ! [] [m map, b status] |
Beschreibung | Direkte Methode zur Anwendung ohne RUN1. Liest das nächste Objekt gemäss Objektmodell. |
Beispiel |
|
Methode | VPRIO.CLOSE ! [] [] |
Beschreibung | Direkte Methode zur Anwendung ohne RUN1. Schliesst den Modul. |
Beispiel |
|
Als zusätzliche wichtige Methoden für den Modul sind folgende Methoden aus der Klasse ICS hervorzuheben.
Methode | ICS.SET_GATTR [* geometrie, i attr][* geometrie] |
Beschreibung | Setzt das Geometrieattribut für die Geometrie <geometrie>. Vor dem Schreiben einer Geometrie in den Modul kann mit dieser Methode der Geometrie ein Attributwert vergeben werden. Zum Beispiel eine OBJID oder eine Art. |
Beispiel |
|
Methode | ICS.GET_GATTR [* geometrie][i attr] |
Beschreibung | Fragt das Geometrieattribut ab. Nach dem Lesen einer Geometrie aus den Modul kann mit dieser Methode das zusätzliche Attribute der Geometrie gelesen werden . Zum Beispiel eine OBJID oder eine Art. |
Beispiel |
|
! Diese ICS Konfiugration liest DXF Polylines und eliminiert ! doppelte Linien. Für die Elimination der doppelten ! Linien wird der Modul VPRIO eingesetzt. |LICENSE \license\iltools.lic MAP USER_INPUT1 DIALOG => FILE ! FILE | STRING | ODBC MESSAGE => 'Enter .dxf Input File' FILE_FILTER => dxf FILE_EXISTS => TRUE OPT => input END_MAP MAP DXFIN_PARAM STATISTICS => ON DEBUG => OFF END_MAP MAP VPRIO_PARAM RESOLUTION => 0.001 TOLERANCE => 0.001 STATISTICS => ON END_MAP MAP INPUT_SOURCES I1 => DXFIN,OPT.input I2 => VPRIO END_MAP MAP INOUT I1 => IN.LAYER I1,01211 => VPRIO_WRITE_LINE2,IN.GEOM,1 I1,01225 => VPRIO_WRITE_LINE2,IN.GEOM,2 I1,* => OFF I2 => DISPLAY_OBJECT1,IN END_MAP |INCL \script\dxfin.mod |INCL \script\vprio.mod |INCL \script\run1.prg