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
|