Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Funktion die Zählvariable um 1 erhöht, wenn man lispfunktion aufruft!

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Funktion die Zählvariable um 1 erhöht, wenn man lispfunktion aufruft! (628 mal gelesen)
jomann999
Mitglied
Bauing

Sehen Sie sich das Profil von jomann999 an!   Senden Sie eine Private Message an jomann999  Schreiben Sie einen Gästebucheintrag für jomann999

Beiträge: 9
Registriert: 12.01.2016

Windows 10, Acad

erstellt am: 12. Jan. 2016 20:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo tolles Lisp Forum.

Ich bin ein Lisp-Anfänger und baue mir ab und zu aus Codestücken kleine Lispprogramme zusammen, für Autocad.

An dieser im Betreff erwähnten Aufgabe scheitere ich jedoch. Obwohl das gar nicht so schwer sein kann. Ich habe allerdings gerade nicht die Zeit mich in Lisp so tief hineinzudenken.
Veilleich könnte mir jemand helfen? :-)

Ich brauche eine kleine Funktion, die eine Zählvariable um 1 erhöht wenn ich die Funktion aufrufe. Bei jedem Funktionsaufruf wird die Variable um 1 erhöht. Diese Zählvariable möchte ich dann in ein Zeichen umwandeln und als Text ausgeben. Mit "strcat." 
Hat jemand eine Idee bezügl. der Zählvariablen? 

Vielen Dank.
jomann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 12. Jan. 2016 20:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für jomann999 10 Unities + Antwort hilfreich

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

jomann999
Mitglied
Bauing

Sehen Sie sich das Profil von jomann999 an!   Senden Sie eine Private Message an jomann999  Schreiben Sie einen Gästebucheintrag für jomann999

Beiträge: 9
Registriert: 12.01.2016

Windows 10, Acad

erstellt am: 12. Jan. 2016 21:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo cadffm.

Vielen Dank, :-),  das ging so super schnell mit deiner Antwort.

Ja, Variante a reicht mir schon völlig, für's Erste.

Ich brauche die Zählvariable nur für die aktuelle Acad-Sitzung.

Die anderen Optionen, die du/Sie erwähnt hast kann ich mir noch genauer überlegen.
Danke nochmal.

Grüße
jomann

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz