geo_conv
Das Programm geo_conv
dient dazu, mehrere Objekte,
die in Form von Standard-Files vorliegen, zu einem Objekt zu
verknüpfen
und als Standard-Files zu speichern. Dabei können auf
die Objekte (Einzelobjekte oder Objektgruppen, aktive Objekte) geometrische
Operationen (Verschieben, Drehen,
Spiegeln) angewendet werden.
Beim Vereinigen der aktiven Objekte zusammenfallende Ecken, Kanten und Flächen können identifiziert und zusammengefaßt werden. Innerhalb einer Objektgruppe ist es möglich, eindeutige Namen zu erzeugen, so daß die Objektgruppe als ein Objekt in einem Standard-File abgelegt werden kann.
Das Programm ist textorientiert, menügesteuert und mit einer Online-Hilfe ausgestattet. Das Programm ist außerdem in der Lage, stapelorientiert zu arbeiten.
Die Rufzeile hat folgende Gestalt:
geo_conv [-v] [-t] [-c <cfgfile>] [-p <protfile>]
[-e <exefile>] [<filename> [<filename> ...]]
;
wird kein <filename>
angegeben, so wird der Nutzer
beim Start des Programmes zur Eingabe eines Filenamens aufgefordert.
Das Konfigurationsfile <cfgfile>
kann neben den durch den :set-Befehl
einstellbaren Werten auch zusätzliche Typen für Flächen-Geometrien
beschreiben.
Im Protokollfile <protfile>
werden alle ausgeführten Befehle,
ihre Ausgaben und Fehermeldungen festgehalten. Das Protokollfile kann
als Steuerfile <exefile>
für den stapelorientierten Programmablauf
eingesetzt werden. Der Schalter -t
schaltet in den trace-Modus,
d.h. bei der Abarbeitung nachfolgender Steuerfiles wird der Nutzer
jeweils zur Bestätigung der Abarbeitung der Befehle aufgefordert.
Wird kein Steuerfile bearbeitet, ist der Schalter wirkungslos.
-v
dient zur Anzeige der aktuellen Programmversion.
Da die Parameter und Eingabefiles in der Reihenfolge ihres Auftretens in der Parameterzeile ausgeführt werden, ist ihre Reihnefolge wichtig, so hat z.B. der trace-Modus nur noch auf die nachfolgenden Steuerfiles Einfluß.
(h,?) [<kuerzel>]
<kuerzel>
;
fehlt <kuerzel>
, so wird eine Befehlsübersicht angezeigt.
(l) [<filename>]
<filename>
; fehlt die Angabe von
<filename>
oder ist das Standard-File nicht lesbar, so wird der
Nutzer zur Eingabe eines Filenamens aufgefordert. _
" (Unterstrich) kann dieser
Nutzerdialog abgebrochen werden. Durch die Eingabe von "?
"
kann eine Kurzhilfe angefordert werden.*,?,[,]
",
so wird eine Liste dem Muster entsprechender Files angezeigt.
Enthält diese Liste nur ein File, so kann es durch eine leere Eingabe als
Filename übernommen werden. Die Auswertung des Musters ist dem
ls-Kommando nachempfunden.
(d)
(w) [!] [<filename>]
<filename>
;
fehlt die Angabe von <filename>
oder ist das Standard-File
nicht schreibbar, so setzt ein Nutzerdialog ein, wie er für den Befehl
load beschrieben wurde.!
"e;
vor dem Filenamen wird diese Nachfrage unterbunden, ewentuell existierende
Files werden ohne Nachfrage überschrieben.*,?,[,]
" enthalten,
werden in der gleichen Weise behandelt, wie für load beschrieben.
Wird dabei ein einzelnes File durch Leereingabe übernommen, so wird
dieses File ohne weitere Nachfrage überschrieben.
(q)
(x)
(s)
-
" inaktiv+
" aktiv@
" Fehler beim Einlesen des Files - nicht aktivierbar.
(a) [ s | [=] <nrliste> | - <nrliste> | + <nrliste>]
activate s
zeigt den Aktivierungsstatus der Objekte an.activate [=] <nrliste>
aktiviert genau die in <nrliste>
bezeichneten Objekte.activate + <nrliste>
aktiviert zusätzlich die in <nrliste>
bezeichneten Objekte.activate - <nrliste>
deaktiviert die in <nrliste>
bezeichneten Objekte.activate
ohne weitere Angaben aufgerufen, wird eine Liste
der aktiven Objekte angezeigt und eine Eingabe (+ | - | = | s
)
erwartet. Die Eingabe von " ?
" fordert eine Kurzhilfe an.<nrliste>
ist eine Liste von Objektnummern, die durch Leerzeichen
getrennt werden. Ist das erste Element der Liste eine "0",
so werden alle
Objekte aktiviert bzw. deaktiviert.
(m)
(t) [ <x> <y> <z> ]
<x> <y> <z>
,
so wird der Nutzer zur Eingabe des Verschiebungsvektors aufgefordert.
(f) [ x | y | z ]
(rot,r) [ x | y | z <winkel>]
<winkel>
um die x-, y- bzw. z-Achse;
wird rotate ohne weitere Angaben aufgerufen, so wird der Nutzer
zur Eingabe der Rotationsachse und des Rotationswinkels aufgefordert.
Die Angabe des Winkels erfolgt in Grad.
(o) [ a|v|e|f|s|r|m|g <nr> | <nrliste> ]
v|e|f|s|r|m|g
) läßt sich der Startwert
für einzelne
Elemente setzen; wird als Element "a" angegeben, wird für
alle Elemente ein Startwert zur Namensgenerierung benutzt.<nrliste>
kann der Prozeß der Einzeleingabe
abgekürzt werden, die Nummern von <nrliste>
werden dabei wie
Nutzereingaben behandelt, wobei ein "_
" (Unterstrich) zum Beibehalten
des bisherigen Wertes dient.<nrliste>
ist:[<parameter> [<value>]]
auto_offset
automatisch
während des merge-Befehls nachgeholt.
force_merge
gesetzt, so werden diese Kanten auch dann
zusammengefaßt, wenn sie durch den Schnitt
von Flächen gebildet werden, deren Geometrien unterschiedlich sind.
Zwei Flächen werden zusammengefaßt, wenn sie von den gleichen Kanten
berandet werden; solche Flächen werden auch
dann zusammengefaßt werden, wenn sie sich in ihrem Geometie-Typ
unterscheiden.
eps_abs
gesetzt, wird stattdessen der Wert
epsilon direkt zum Testen benutzt (absoluter Abstand).
-p <protfile>
geo_conv
kann seine ausgeführten Operationen
in einem File protokollieren. Da dieses Protokollfile außer den
Konsolenausgaben des Programms weitere Infomationen enthält,
kann es neben der Dokumentation auch noch der Fehlersuche dienen.
Das Protokollfile ist so aufgebaut, daß es ohne "Anderung als
Steuerfile für -e <exefile>
dienen kann.
Das Protokollfile besteht aus Zeilen folgender Gestalt:
<code><information>
<code>
ist ein Zeichen der Menge [@,?,>,!,#]
mit folgender
Bedeutung:
@
Allgemeine Information des Programms und Konsolenausgaben
?
Dialogaufforderungen an den Nutzer
>
Eingaben des Nutzers
!
Fehler und Warnungen
#
Ausgeführte Befehle (nach dem Nutzerdialog).
-e <exefile>
Das Steuerfile besteht aus Zeilen mit folgendem Aufbau:
<code><information>
,
wobei Leerzeichen und Tabulatoren am Zeilenanfang ignoriert werden.
<code>
ist ein einzelnes Zeichen, wobei von geo_conv
nur Zeilen abgearbeitet werden, die mit dem Zeichen "#
"
beginnen (Befehlszeilen). Alle Zeilen, die einen anderen Code tragen, werden ignoriert.
Für Befehlszeilen muß der Inhalt von <information>
entweder
ein Befehl für geo_conv
sein (s.o.), oder die Filekennung
"geo_conv.prot
".
Beginnt <information>
einer
Befehlszeile mit einem weiteren "#
", so wird diese
Zeile nicht abgearbeitet.
Durch Angabe des Schalters "-t
" (tracing), wird der
Nutzer zur Bestätigung der Ausführung einer Befehlszeile aufgefordert.
Einfache Wertzuweisungen haben folgenden Aufbau:
<parameter> <value>,
wobei <parameter> ein durch den :set-Befehl beinflußbarer
Schalter oder Parameter ist. Für Schalter kann <value> die Werte
"TRUE" oder "FALSE" annehmen.
Die Beschreibung zusätzlicher Typen der Flächengeometrie wird durch
die Zeile "#geo_struct" eingeleitet, der dann die zeilenweise
Beschreibung der einzelnen Geometrietypen folgt.
Ein Geometrietyp wird folgendermaßen beschrieben:
<type> <struktur> [: <bemerkungen>]
<type> stellt den Typnamen des Geometrietypes dar;
<struktur> beschreibt den Geometrietyp.
<struktur> ist eine Zeichenkette, die folgende Zeichen enthalten darf:
"r" Bezeichnet eine einzelne real-Zahl, die durch geometriche Operationen
nicht verändert wird
"c" Bezeichnet ein Tripel von real-Zahlen, die eine Koordinate beschreiben;
d.h., das Zahlentripel wird durch Drehung, Spiegelung und Verschiebung verändert.
"d" Bezeichnet ein Tripel von real-Zahlen, die eine Richtung beschreiben;
d.h., das Zahlentripel wird nur durch Drehung und Spiegelung verändert.