Bei dem Argument "keine Zeit" hat man zwar "wenig Lust" zu antworten, aber dennoch:
In deiner Ausführung vermisse ich ein paar Punkte:
a) Soll der Zähler nur in einer Zeichnungssitzung (zwischen einem Öffnen- und dem folgenden Schließenvorgang vorhanden sein?
Was ist wenn du die Funktion aus versehen startest bzw. aus versehen abbrichst?
Dann benötigst du eine Möglichkeit den Zähler "manuell" zu stellen.
Beispiel:
(defun c:Test ()
(setq Zähler (if Zähler (1+ Zähler) 1))
(alert (strcat "Zähler steht auf " (rtos Zähler 2 0)))
(princ)
);_defun
Für das manuelle setzen könntest dubdirekt in der Befehlszeile vornehmen (setq Zähler 22),
oder einen Befehlsaufruf basteln, vereinfacht:
(defun c:TestZähler () (setq Zähler (getint "\nZähler: "))(princ))
b) Zähler soll während einer Acadsitzung über alle geöffneten Dateien zur Verfügung stehen (dann wäre das Stichwort Blackboard)
c) Zähler soll in einer DWG gespeichert bleiben (dann gibts noch mehr Neuland)
usw.
Variante a erklärt: Eine "globale Variable", die Gültigkeit besteht nicht nur innerhalb der Funktion, sondern Dateiweit.
(beachte: Eindeutig benennen, nicht das andere Programme die Variable überschreiben wegen möglicher Namensgleichheit)
Aber nur innerhalb der aktuellen Dateisitzung.
------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP