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