Temporäre Namen



next up previous contents
Next: Übergabeparameter für Makros Up: Sprachbausteine nur für Previous: Makrofragen

Temporäre Namen

Beim interaktiven Arbeiten können Sie beobachten, daß mittels der Maus identifizierte Objekte ( Punkt, Gerade etc. ) in der Kommandozeile direkt mit ihrer ID eingetragen werden.

Da beim Erzeugen von Geometrie der Anwender nicht überschauen kann, welche Satznummern das System den neuen Objekten geben wird, ist er in Makros darauf angewiesen Namen für die Objekte zu vergeben, und sie später mit diesen Namen wieder zu referenzieren.

Hat ein Objekt beim Erzeugen einen Namen zugewiesen bekommen, so behält es diesen Namen solange, bis er entweder mit dem Kommando LOESCHE NAME entfernt wird, oder bis ein anderes Objekt im gleichen Teil den selben Namen erhält.

Im allgemeinen ist es für den Anwender nicht sinnvoll, daß in der Endgeometrie jeder Punkt und jede Linie usw. einen Namen hat. Zum einen ist damit ein gewisser Speicherplatzverbrauch verbunden. Zum anderen wird er nach dem Erstellen der Konstruktion mit den Namen auch nichts mehr anfangen wollen.

Es wurde daher speziell für Makros die Möglichkeit geschaffen, den Elementen Namen zuzuordnen, die nach Beendigung des Makros wieder entfernt werden, also sog. temporäre Namen.

Syntax :

       $$Zeichenkette

Zeichenkette beginnt mit '_' oder a-zA-Z und hat weitere Zeichen aus der Menge [_a-zA-Z0-9]. Die Zeichenkette darf nicht mit Zeilenumbruch getrennt werden.

Bsp.:

       ERZEUGE PUNKT KAR 100,100 ; NA= $$P1 !
       ERZEUGE GERADE PP $$P1 ; 200,100!

Es wird beim ersten Auftreten des Namens $$P1 ein Zufallsname berechnet, der noch nicht existiert. Dieser Name wird dem Punkt zugewiesen. Bei den folgenden Referenzierungen des Namens $$P1 wird der bereits berechnete Name verwendet.

Nach Beendigung des Makros wird automatisch das Kommando LOESCHE NAME $$P1 ! abgesetzt. Der Zufallsname ist danach nicht mehr referenzierbar. In der KNW kann er jedoch betrachtet werden. Die KNW enthält nicht den Platzhalter für den Zufallsnamen $$P1, sondern den berechneten Namen selbst.

Natürlich kann der Anwender, wenn er es wünscht auch in einem Makro bestimmten ausgezeichneten Elementen, die ihren Namen behalten sollen, feste Namen zuordnen, die auch nach Ablauf des Makros noch Gültigkeit haben.

Es gibt jedoch folgenden Unterschied zwischen den temporären Namen und den fixen Namen :

Wird aus einem Makro heraus ein anderes Makro aufgerufen, so sind temporäre Namen des aufrufenden Makros unterhalb nicht bekannt. Wird also z.B. in einem Untermakro ebenfalls der Name $$P1 verwendet, so ist dies wieder ein neu definierter Name, der mit dem Ende des Untermakros gelöscht wird.

Wird im Gegensatz dazu einem Punkt ein fixer Name P1 zugeordnet, so kann dieser Name auch in Untermakros referenziert werden ( wenngleich dies keine sehr saubere Abeitsweise ist, besser ist da schon ein Übergabeparameter ). Wird in einem Untermakro ebenfalls ein Objekt mit fixem Namen P1 erzeugt, so ist das erste Objekt plötzlich namenlos. Eine spätere Referenzierung des Namens benennt das zuletzt erzeugte Objekt.



next up previous contents
Next: Übergabeparameter für Makros Up: Sprachbausteine nur für Previous: Makrofragen




Thu Aug 3 11:46:15 MET DST 1995