Papiermenüs herstellen

Top  Previous  Next

Zuerst muß ein Papiermenü z.B. mit Excel hergestellt und auf dem Digitalisiertablett oder – Tisch befestigt werden.

 

Die Befehle, die hinter den Menüfeldern liegen, werden in einer Datei vom Typ .men hinterlegt.

 

In der ersten Zeile ist

 

--- MenuBeschreibung 0

 

einzutragen.

 

Für jedes Menüfeld muß nun ein Block erzeugt werden, der mindestens den Begriff

 

--- MENU <Nummer des Menufeldes>

 

enthält und in der nächsten Zeile den oder die Befehle, die ausgeführt werden sollen, wenn der Anwender auf das Feld klickt.

 

Das Feld links oben hat die Nummer 1,  dann wird von links nach rechts und von oben nach unten durchnummeriert. Damit die Abarbeitung der Befehle nicht durch Eingaben der Menüzeile unterbrochen werden kann, sollte vor jedem Befehl ein <ESC<-Zeichen stehen.

 

Zu jedem Menüfeld kann noch ein Hilfeeintrag erzeugt werden mit

 

--- MENU_HELP <Nummer des Menufeldes>

 

und in der nächsten Zeile der Hilfetext.

 

Anschließend muß dem Programm die Lage des Papiermenüs und der Ort der *.men – Datei mitgeteilt werden. Dazu gibt es den Befehlt MEN.

 

Beispiel:

--- MenuBeschreibung 0

--- MENU_HELP 001

Neu Zeichnen

--- MENU 001

Redraw

 

--- MENU_HELP 002

Objekt mit Linie und Text und Symbol hinzufügen

--- MENU 002

Object 2000

AddString DKY/1 DKA/0

PositionSymbol NAM/?

AddText

 

Papiermenüs laden

Die Menüs werden mit dem Befehl MEN geladen und verbleiben im Workfile, bis sie gelöscht oder durch eine neue Definition ersetzt werden.

 

Im Dialog wird der User nach der Nummer des Menüs gefragt, anschließend soll er die Ecken des Menüs digitalisieren und zuletzt die Datei vom Typ .men angeben, in der die Befehle des Menüs hinterlegt sind.

 

Um eine *.men –Datei nachzuladen ohne die Lage des Menüs neu zu digitalisieren gibt es den Parameter MEN /NOPOSITION.

Konvertieren von Menüs aus Gradis 2000

 

Das Konvertieren erfolgt in zwei Schritten. Mit dem ersten Schritt wird der größte Teil des Weges zwischen den beiden Formaten von Gradismenüs und Moskitomenüs überbrückt. Es folgt dann die Kontrolle und Feinanpassung.

 

Konvertierung.

Im Verzeichnis Tools\nt befindet sich das Programm convmenu.exe. Mit diesem Programm kann die Struktur eines Gradismenüs in ein Moskitomenü umgesetzt werden. Mit

 

CONVMENU gradis.men moskito.men

wird das Menü gradis.men in ein äquivalentes Menü moskito.men für Moskito umgewandelt.

 

Anpassung

Nicht alle Feinheiten werden vom Konverter berücksichtigt. Es hat sich als erforderlich erwiesen, jedes Menüfeld einmal auf Funktion zu überprüfen. Dabei hat sich die folgende Liste mit weiteren Anpassungen ergeben:

 

GRADIS-Befehl

Erläuterung/Umsetzung zu Moskito/Albatros-Befehlen

AOA

Dieser Befehl dient nur dazu, dem identifizierten Objekt ein Flag mitzugeben, der anzeigt, daß dieses Objekt verändert wurde. Eine Umwandlung ist also nur dann nötig, wenn sonst keine Änderung am Objekt erfolgte, kann also in den meisten Menüfeldern wegfallen.

=>

AOK 9600

DOK 9600

APT

Bestimmung von Konstruktionspunkten

=>

IEL

APT

ATX LBL/QUE

=>

ATX QUE

BTR

Laden von Plänen mit Schreibberechtigung im Albatros

=>

LOA FORMAT/SYNC

DKG

Selektion aller Objekte mit dem Objektschlüssel a und löschen dieses Schlüssels an allen Objekten

=> Dieser Befehl/dieses Menüfeld wird bei Moskito meist überflüssig!

DR1

Objekt löschen

=>

DOB

DRF

=>

DRA

EQU x

Dieser Befehl wird benutzt, um die gleichen Befehlsabfolgen auf ein weiteres Feld des Tablettmenüs zu beziehen. Steht beispielsweise der Befehl EQU 005 im Feld 006, so bedeutet das, daß über das Feld 006 die gleichen Funktionalitäten angeklickt werden können wie im Feld 005. Es entsteht also de facto ein größeres Schalterfeld auf dem Papiermenü.

=> (einzusetzende Befehle siehe Feld x)

ETR

=>

SAV

IGT

IGT erzeugt normalerweise ein graphisches Trägerobjekt, d.h. ein Objekt mit "provisorischem" Objektschlüssel 9500, der nicht im Datenmodell implementiert ist.

=>

Object 9500

 

Taucht nach dem Befehl IGT innerhalb eines Menüfeldes der Befehl IS1 mit dem Parameter Key/xxx auf, so gilt folgende Umsetzungsregelung:

IGT => Object xxx

IS1 key/xxx => ISAgen

INI name/wert

=>

INI name wert

IS1

IS1 generiert den Primärschlüssel (ISA) an einem graphischen Trägerobjekt. Wenn statt einem graphischen Trägerobjekt bereits ein Objekt mit "richtigem" Objektschlüssel existiert, kann stattdessen der Befehl ISAgen gesetzt werden.

=>

ISAgen

JOB

Identifizieren eines Objektes. Evt. vorhandene Parameter müssen genauso übernommen werden.

=>

IOB /REPEAT

LEN

Berechnung der Länge eines Elementes

=>

CAL

MES

=>

Echo /NOW (Text aus Messagetabelle)

MFL

Ausführen eines Makros. Der erste in einem Menü auftauchende Befehl MFL wird durch den Befehl MFL_1 ersetzt, der zweite durch den Befehl MFL_2, usw.

=>

MFL_1 bzw. MFL_2, usw.

PPT

=>

OBJ KEY/7999

INI ModeRPT 1

STR DKY/1 COL/168,0,255

INI ModeRPT 0

s.GeneralParallels  /BUFFER /ORTHO

#CLS

s.GeneralParallels  /BUFFER /ORTHO

#CLS

OpenElement 1

dob

j

s.Echo /NOWINDOW Ok

VWS

 

RG1

Auflisten des zu einem "AM/FM-Objekt" zugehörigen FM-Tupels.

=>

IOB /REPEAT

RG1

ROT NAM/1

=>

ROT /HOR

RT1

Übernahme von Attributen und Attributwerten aus einer Referenztabelle an ein GRADIS-Objekt. Die Parameter müssen umgesetzt werden:

RT1 TYP/1 => s.GetAttributsFromDatabaseDialog VERSION/1  , ...etc.

SAT

Dieser Befehl dient dem Anlegen oder Abfragen von Attributwerten, in der Regel ist dies ein Wert für das Attribut OGN. Es gibt unterschiedliche Typen des Befehls:

 

SAT TYP/1,1 LBL/OGN

=>

Begin

Declare sat

Echo /NOW \n\nOGN angeben

Value sat io_Text()

%%input

c_if "s_strlen(Value(sat))"

        INI OGN Value(sat)

c_else

        Echo ! ! OGN nicht gesetzt

c_endIf

End

 

SAT TYP/1,2

=>

Begin

Declare sat

Declare sat2

Echo /NOW \n\nOGN angeben

Value sat io_Text()

%%input

c_if "s_strlen(Value(sat))"

        INI OGN Value(sat)

c_else

          Echo !! OGN nicht gesetzt

c_endIf

Echo /NOW \n\nZON angeben

Value sat2 io_Text()

%%input

c_if "s_strlen(Value(sat2))"

          INI ZON Value(sat2)

c_else

          Echo !! ZON nicht gesetzt

c_endIf

End

 

Hier wird eine bzw. werden zwei Variablen gesetzt, die im folgenden Befehl genutzt werden:

 

SAT TYP/2 => s.AddAttribut OGN Value(OGN)

SEL SKY

=>

SEL KEY

SSN

ähnlich zu SSH

=>

SSH

TEX/xxx

Texte aus dem Textpuffer übernehmen

=>

%%input db_GetTextbuffer(xxx)

TGI

Generieren eines Attributtextes

Der Zeichenschlüssel (DKY), die Texthöhe (TXI) und die Textart (TXM) sowie die Attribute, die als Attributtext erscheinen sollen, stehen in der Tabelle TgTab.tab und müssen bei der Umsetzung von da für den jeweils passenden Objektschlüssel abgelesen werden. Dieser Befehl kann unterschiedliche Ausprägungen haben, die durch den Parameter TYP/a,b,c,d festgelegt werden:

a gibt die Textrichtung an:

Wenn a=1 (Text horizontal) => THO

wenn a=2 (Text positioniert) => TPO

wenn a=3 (Text parallel) => TPA

b gibt die Versionsnummer an, damit ist die Zahl in der zweiten Spalte der Tabelle TgTAB.tab gemeint. Sie bestimmt zusätzlich zum Objektschlüssel in der ersten Spalte, welche DKY, TXI, TXM und Attribute verwendet werden müssen.

c gibt an, ob ein Text oder mehrere Texte positioniert werden sollen.

wenn c=1 => 1 Text positionieren => Befehl nur einmal umsetzen.

wenn c=2 => mehrere Texte positionieren => Parameter /MULTI setzen.

d gibt eine Lösch-Option an:

1 => alte Texte löschen

2 => alte Texte nicht löschen (diese Option wurde bei der Umsetzung ignoriert)

 

TGM

TGM passte bei Attributänderungen auch die Texte an (jetzt überflüssig geworden, da bei der Umsetzung Attributtexte geschaffen werden).

=> entfernen.

UAT

Speichern von Attributen

Beim Aufruf der Funktion mit TYP/a=1 werden vom zur Zeit eröffneten Objekt die im Menü angegebenen Attribute abgeholt.

Bei allen folgenden Aufrufen mit TYP/a=2 werden diese Attribute am dann eröffneten Objekt gespeichert.

 

UAT TYP/1,1 LBL/RNK

=>

INI UATLBL RNK

INI UATWERT DBquery(RNK from open object /noq)

 

UAT TYP/2

=>

Begin

Declare sicher

s.Echo /now \n\nSoll folgendes Attribut übernommen werden? \n\n              s_concat(Value(UATLBL) ": " Value(UATWERT))\n

Value sicher io_Text()

%%input

c_if "m_eq(Value(sicher) j)"

s.Exec s_concat("AddAttribut " Value(UATLBL) " " Value(UATWERT) )

c_else

s.Echo /now Attribut wurde nicht uebernommen!

c_endIf

End

 

URN

Änderung aller Werte eines Attributs, dessen Wert an jedem Objekt der Selektionsmenge geändert werden soll.

=>

QTX /SEL

UVA

Einbinden eines Objektes in einen logischen Kontext. Die Angabe der Parameter verändert sich entsprechend.

 

UVA TYP/1,1,1

=>

LinkObjects LG/1 CP/1 /RTB

 

UVA TYP/1,1

=>

LinkObjects LG/1 CP/1

VER KEY/1910

=>

OBJ KEY/1910

DIA DKY/xxx SYM/xxx TXI/150 TXH/5 TYP/1

OpenElement 1 /Text

OpenPoint 1

RTX

MEL

 

 

nach Änderungen kann die Folge ERS DRA fast immer entfallen. Sie stört nur den Ablauf.

 

Bei einigen alten GRADIS-Funktionen wurden die Parameter umbenannt und müssen entsprechend angepasst werden.

 

Optische Anpassungen

Mit dem Befehl InfoBox lässt sich ein Hinweisfenster einfügen, in dem der Arbeitsablauf des Befehls erläutert werden kann. Dies ist ggf. von Hand einzufügen.

 

Hilfe

Jedem Menüfeld kann ein Hilfetext zugeordnet werden. Dieser erscheint, wenn der Cursor über dem Feld steht. Dieser Text muß von Hand eingefügt werden. Der Text erschein in der Statuszeile des Inputfensters oder des Planfensters. Dazu wird in der Menüdefinition des Feldes 17

 

--- MENU 17

OPE

--- MENU 18

der Hilfetext eingefügt in einer Sequenz

 

--- MENU_HELP 17

Öffnen des 1. Planes

--- MENU 17

OPE

--- MENU 18