Ein paar Worte vorabHome   Letzte MeldungenNews   Index der Kapitel und der besprochenen FunktionenIndex   Wer ich bin, warum ich diese Seiten mache, KontaktImpressum   Ich freue mich über jeden Eintrag im Gästebuch!Gästebuch   Einige Links zu anderen AutoLisp-SeitenLinks   Copyrights und DisclaimerRechts
Hier können die kompletten Seiten als ZIP-File heruntergeladen werden!

Berechnen von arithmetischen Ausdrücken in der Kommandozeile Sitz!Platz!Fass!
Das Verschachteln von Ausdrücken Alte Schachtel!
Das Speichern von Werten in Variablen Gebunkert
Verhindern der Evaluation mit Quote Bergbäche
Erzeugen von einfachen Listen in AutoLisp Brot,Eier,Käse
Einfache Funktionen zur Listenbearbeitung ...um die Wurst
Funktionen für den Zugriff auf Listenelemente Was ein Salat!
Über Haupt- und Nebeneffekte von Funktionen Schwer schuften
Das Definieren von eigenen Funktionen in AutoLisp Ostfriesischer...
Lokale Variablen und Funktionsargumente in AutoLisp Kondome!
Das Laden von Programmdateien in AutoLisp Banküberfall
Verzweigung in Funktionen aufgrund von Entscheidungen Wenn das Wort...
Zusammenfassen von Entscheidungen mit den Logik-Funktionen Ins Schweinderl
Mehrfach-Verzweigungen in AutoLisp mit Cond 3. Strasse links
Schleifen zum Steuern des Ablaufs in AutoLisp-Funktionen Wie im Fernsehen
Testfunktionen zum Steuern von Schleifen in AutoLisp Schwanger?
Gleichheitstests als Schleifenkriterium in AutoLisp Noch gleicher?
Zeichneketten-Bearbeitung in AutoLisp Rauchzeichen
Funktionen zur Konvertierung von Datentypen in AutoLisp Wasser zu Wein
Komplexere Funktionen für die Bearbeitung von Listen in AutoLisp Nicht arbeiten...
Das Erzeugen von anonymen Funktionen mit lambda Schwarze Kutte
Das Bearbeiten von Listenelementen mit foreach Jedem das Seine
Erzeugen und Verwenden von Assoziationslisten in AutoLisp Beim Psychiater
Zugriff auf Geometriedaten und Erzeugen von Geometrieelementen Ententanz
Der Umgang mit Auswahlsätzen in AutoLisp Jung gefreit, ...
Auswahl von AutoCAD-Zeichnungsgeometrie mit ssget Raffgierig!
Verändern von Zeichnungs-Geometrie mit entmod Flickschusterei
Das Erzeugen von Geometrie mit entmake Houdini
Über Programmierstile in AutoLisp, Teil 1 Emma
Über Programmierstile in AutoLisp, Teil 2 Sti(e)lblüten
Über Programmierstile in AutoLisp, Teil 3 Eingewickelt
Über Programmierstile in AutoLisp, Teil 4 Doofe Frisur?


Zum den Seiten für Fortgeschrittene

Zu den ActiveX-Seiten

Meine Private HP mit Fotos, Gedichten, Musik und Postkartenversand

Mein Online-Lexikon der Fotografie

Mein völlig abgedrehtes Reisebüro










Lösungen zu den Übungsaufgaben

  1. Kann man mit (ssadd) - ähnlich wie man mit (append) zwei Listen zusammenfügt - auch zwei Auswahlsätze zusammenfügen? Bitte ausprobieren!

    Nein, es geht leider nicht, obwohl es gehen könnte. Man muss eine Schleife bauen und jedes Element einzeln hinzufügen.

  2. Welche der folgenden Aussagen sind richtig?
    • Wenn man nur (ssadd ent ss) schreibt, verpufft die Rückgabe, man muss also die Rückgabe mit setq wieder zuweisen: (setq ss(ssadd ent ss))

      Nein, muss man nicht! (ssadd) ist eine der wenigen Funktionen, die Daten im Speicher direkt ändern. Auch (ssdel) arbeitet so.

    • Wenn man einem Auswahlsatz Entities hinzufügt, muss man vorher mit (ssmemb) testen, ob das Entity nicht bereits enthalten ist.

      Nein, diese Arbeit nimmt uns AutoLisp ab. Doppelte Einträge werden von (ssadd) nicht erzeugt.

    • Ein Auswahlsatz kann maximal so lang sein, wie es Elemente in der Zeichnung gibt.

      Das ist richtig, da es keine Doppeleinträge gibt.

    • (sslength) gibt bei einem leeren Auswahlsatz 0 zurück.

      Tja, das war eine gemeine Frage: Das ist richtig! Leere Auswahlsätze kann man aber nur durch einen Aufruf von (ssadd) ohne Argumente erzeugen. Die Funktion (ssget) gibt jedoch, wenn 0 Objekte gewählt wurden, nicht einen leeren Auswahlsatz zurück, sondern nil. Der Fehler, der genauso lange existiert wie (ssget), und den AutoDesk wohl auch nie beheben wird, liegt also bei (ssget) - und wir müssen immer unser Workaround darumbauen.

    • Bei (ssname) beginnt die Zählung genau wie bei (nth) und (substr) bei 0, d.h. das erste Element eines Auswahlsatzes erhalten wir mit (ssname 0 ss).

      Der zweite Teil der Aussage ist richtig, nicht aber der erste: Bei (substr) hat AutoDesk beschlossen, die Zählung zur Abwechslung mal bei 1 beginnen zu lassen, was für Einsteiger sehr verwirrend ist.

  3. Schreiben Sie eine Funktion, die den Benutzer auffordert, einige Entities zu wählen. Den Auswahlsatz legen Sie in einer globalen Variablen namens *ss* ab. Probieren Sie aus, ob Sie dann in AutoCAD innerhalb eines Befehls mit !*ss* den Auswahlsatz in eine Objektwahl (z.B. bei LÖSCHEN) 'einfüttern' können.

    Das geht durchaus, und es geht auch mit einem einzelnen ENAME. Wenn Sie irgendwann an einem Programm verzweifeln und nicht wissen, welche Entities gewählt wurden, können Sie sich eine solche globale Variable zu Debugging-Zwecken erzeugen und den Auswahlsatz kontrollieren.