|
Lösungen zu den Übungsaufgaben
-
Erläutern Sie noch einmal den Unterschied zwischen
Entity-Namen (Gruppencode -1) und den Objektreferenzen
(Gruppencode 5)
Entity-Namen sind nicht konstant und dürfen daher auch nicht
zu einem späteren Zeitpunkt wiederverwendet werden. Die
Objektreferenzen bleiben allerdings unveränderlich
-
Welches sind die Gruppencodes für Layer und Kreisradius?
8 für Layer, 40 für Kreisradius
-
Was wird unter dem Gruppencode 0 verbucht?
Unter Gruppencode 0 findet man den Entity-Typ wie "LINE"
oder "CIRCLE"
-
Welche der folgenden Aussagen sind richtig?
-
(entget ...) gibt einen Entity-Namen zurück
Nein! Die Liste mit den Geometriedaten!
-
(entlast ...) gibt die Objektreferenz des zuletzt
erzeugten Geometrie-Elementes zurück
Nein, sondern den Entity-Namen!
-
Mit (command ...) kann man AutoCAD-Befehle aus Lisp
heraus ausführen
Richtig!
-
Einen (command ...)-Aufruf muss man immer mit einem
Leerstring beenden
Nein, nur bei AutoCAD-Befehlen, die man mit einer
Leereingabe beenden muss!
-
(entmake ...) gibt die eingegebene Datenliste zurück,
ohne sie zu verändern, wenn der Aufruf erfolgreich war
Das ist richtig!
-
Keines der Argumente für (command) wird automatisch
quotiert
Richtig!
-
(entmake) und (entget) sind Funktionen mit ausgeprägtem
Seiteneffekt
Für (entmake) trifft das zu, die Erzeugung der neuen
Geometrie ist reiner Neben(Seiten-)effekt. (entget)
hat hingegen absolut keine Seiteneffekte!
-
Was gibt (entlast) zurück, wenn das zuletzt erzeugte
Geometrieelement inzwischen wieder gelöscht wurde?
Selbst ausprobieren!
Ganz einfach: Die Datenliste zu dem Element, das
jetzt in der Zeichnungsdatenbank als letztes zu finden
ist - oder nil, wenn sonst gar nichts in der Zeichnung
war!
-
In den(entget)-Beispielen auf dieser Seite kam ein
Gruppencode 330 vor, der einen Entity-Namen enthielt.
Wie kann man mit (entget) darauf zugreifen, und was
für ein Entity-Typ ist das?
(cdr(assoc -1(entget(cdr(assoc 330(entget(entlast)))))))
=> "BLOCK_RECORD".
Machen Sie sich jetzt keine Gedanken
darüber, was ein BLOCK_RECORD ist!
-
Erzeugen Sie einen Kreis (MP: 64.3,-25.8 R:28.24) mit
(command) und anschliessend mit (entmake). Prüfen Sie
nach, ob beide Kreise deckungsgleich aufeinander liegen.
Natürlich tun sie das, ausser wenn Sie sich vertippt haben!
-
Haben Sie in unseren Beispielen eigentlich die Gruppencodes
und Werte entdeckt, die Farbe und Linientyp des Kreises
bzw. der Linie enthalten?
Können Sie gar nicht, da sind keine! Wenn da keine
Einträge sind, bedeutet das "Vonlayer"
-
Was passiert, wenn Sie in unserem (entmake)-Test einen
Layer (Gruppencode 8) angeben, der gar nicht existiert?
Er wird stillschweigend erzeugt!
-
Was passiert, wenn Sie in unserem (entmake)-Test gar
keinen Layer angeben, d.h. Gruppencode 8 wird weggelassen?
Das Geometrieobjekt liegt dann auf dem aktuellen Layer.
|
|
|