Beschreibung ausgewählter Skripte
A) Ein Startskript START.SKR. Daß es ein solches ist, teilt man monzoom® im Konfigurationsverzeichnis in der entsprechenden Datei mit. Ein Startskript wird zum Programmstart ausgeführt. Dieses hier stellt die 4-Seitenansicht ein und lädt eine Materialdatei.
REFSKRIPT
; in der ersten Zeile muß
das Schlüsselwort REFSKRIPT stehen.
; Nun wird die 4-Seitenansicht eingeschaltet:
Plot_4
; danach ein Skript tool42.tol
in die Liste der
; Operation-Funktionen eingefügt
ADD_SINGLE_TOOL_SKRIPT tool42.tol 3 Spezialskript tool42.doc
; und eine Materialdatei eingeladen, z.B:
Lade_szene HD0:monzoom/material/StartMat.r4
; für PC stünde z. B.:
; Lade_szene C:Ref4\material\StartMat.r4
; wird die Datei nicht gefunden, meldet dies monzoom®
; zum Abschluß einen Rückgabewert zur Beendigung des Skripts
RETURN 1
B) Ein Skript PYRAMID.SKR, das zunächst die Ausmaße des Dreiecksobjektes vom Anwender abfragt, und danach das Objekt Pyramide erzeugt.
REFSKRIPT
; öffne Eingabefenster zwecks Breite-/Höheabfrage
GET_XY Pyramide Breite Höhe
RETURN_IF_ABBRUCH 1
; falls nicht abgebrochen, Eingabe auswerten:
GET_RESULT res
COPY_WORD res 1
GET_RESULT breite
COPY_WORD res 2
GET_RESULT hoehe
; Dreiecksobjekt erzeugen:
OBJ_NEW pyramide 3
; Name, der dem Objekt von
monzoom® zugewiesen wurde,
; in pyr speichern, danach Werte ausrechnen, die zum
Setzen
; der Eckpunkte einer Pyramide nötig sind
GET_RESULT pyr
DIV breite 2
GET_RESULT brhalb
MUL brhalb -1
GET_RESULT brhalb_min
; 4 Punkte der Grundseite und
1 Punkt für Spitze erzeugen:
; 1.Punkt
GEO_NEW_PT pyr
GET_RESULT p1
GEO_SET_PT pyr p1 brhalb_min brhalb_min 0
; 2.Punkt
GEO_NEW_PT pyr
GET_RESULT p2
GEO_SET_PT pyr p2 brhalb brhalb_min 0
; 3.Punkt
GEO_NEW_PT pyr
GET_RESULT p3
GEO_SET_PT pyr p3 brhalb brhalb 0
; 4.Punkt
GEO_NEW_PT pyr
GET_RESULT p4
GEO_SET_PT pyr p4 brhalb_min brhalb 0
; 5.Punkt
GEO_NEW_PT pyr
GET_RESULT p5
GEO_SET_PT pyr p5 0 0 hoehe
; jetzt die Dreiecke erzeugen
; Grundfläche
DREI_NEW_DREI pyr p1 p3 p2
DREI_NEW_DREI pyr p1 p4 p3
; jetzt 4 Seitenflächen
DREI_NEW_DREI pyr p1 p2 p5
DREI_NEW_DREI pyr p2 p3 p5
DREI_NEW_DREI pyr p3 p4 p5
DREI_NEW_DREI pyr p4 p1 p5
; nun noch in die PKL eintragen
PKL_ADD pyr
ZENTRIEREN pyr
PLOT_PKL
; ...und Skriptende, Rückgabewert
RETURN 1
C) An dem Skript WENDELTREPPE.MEN können Sie sehen, daß die Endung des Skriptes monzoom® wirklich nur mitteilt, daß es mit ins Auswahlmenü des Programms aufgenommen werden möchte, ansonsten handelt es sich um ein ganz gewöhnliches Skript, das auch von einem anderen Skript aufgerufen werden kann. Jedoch nach der Vereinbarung von Dateiendung wäre es unfein, ein Skript mit der Endung *.MEN von einem anderen Skript aus aufzurufen.
REFSKRIPT
; Abfrage: ob das Skript
mittels D&D über einem Objekt
; aufgerufen wurde (das nun als Parameter dem Skript über-
; geben würde), oder ob die Auswahl noch getroffen werden
; muß - ersteres springt zur Marke tool1, zweiteres zu normal
GET_N_PARAMS
GET_RESULT np
IF_EQUAL_GOTO np 1 tool1
GOTO normal
; lese übergebenes Objekt aus...
>tool1:
GET_PARAM_NR 1
GET_RESULT akt_drei
GOTO weiter
; ...anderfalls Auswahlfenster öffnen
>normal:
GET_OBJEKT VON_Welchem_Dreiobj 3
RETURN_IF_ABBRUCH 1
GET_RESULT akt_drei
>weiter:
; Objekt
"aktivieren" für Körper-Befehle - alle folgenden
; Körper-Operationen beziehen sich somit auf akt_drei
AKT_KP_DREI akt_drei
; Anwender den Stufenkörper auswählen lassen
GET_KP_AUSWAHL 'TreppenStufe'
RETURN_IF_ABBRUCH 1
GET_RESULT kp
; nun die Stufenzahl und deren Winkel abfragen
GET_REAL #Stufen
RETURN_IF_ABBRUCH 1
GET_RESULT nstuf
GET_REAL Winkel/Stufe
RETURN_IF_ABBRUCH 1
GET_RESULT dw
; minimale Koordinaten der
BoundingBox des Körpers abfragen
; und den Wert der Z-Achse (Höhe) auslesen
GET_KP_MIN kp
GET_RESULT res
COPY_WORD res 3
GET_RESULT zmin
; Soll-Stufenhöhe vom Anwender abfragen, Differenz berechnen
GET_REAL Höhe_pro_Stufe
RETURN_IF_ABBRUCH 1
GET_RESULT z
SUB z zmin
GET_RESULT dz
; und noch die restliche Daten abfragen
GET_REAL Drehpunkt_x
RETURN_IF_ABBRUCH 1
GET_RESULT x
GET_REAL Drehpunkt_y
RETURN_IF_ABBRUCH 1
GET_RESULT y
GET_STRING 'Name_der_Wendeltreppe'
RETURN_IF_ABBRUCH 1
GET_RESULT name
; nun wird ein Unterprogramm wendeltr.skr
aufgerufen, das
; sich im selben Verzeichnis befinden muß wie das aufrufende
; Programm (da der CALL-Aufruf keinen globalen Dateipfad
; enthält) - mit dem Programmaufruf werden acht Parameter
; übergeben
CALL wendeltr.skr akt_drei kp nstuf dw dz x y name
; nach Unterprogrammende
prüfen, ob die Wendeltreppe erzeugt
; werden konnte - falls ja, wird zu x1 gesprungen und die
; Szene inklusive des neuen Objektes neugezeichnet
KP_EXIST name
GET_RESULT res
IF_STR_EQUAL_GOTO res JA x1
MELDUNG 'nicht geklappt'
; Skriptabbruch und Rückgabewert 0 bei Mißerfolg
RETURN 0
>x1:
PKL_ADD akt_drei
PLOT_PKL
; ...und Skriptende
RETURN 1
| Oberland Computer In der Schneithohl 5 61476 Kronberg |
Website: http://www.monzoom.de/ EMail: monzoom@oberland.com Tel.: 06173 - 608-0 Fax: 06173 - 63385 |