|
AutoLisp : decompiler für vlx
mapcar am 22.11.2004 um 10:05 Uhr (0)
Cadchup, das sehe ich nur in Grenzen so. Für die ist das Thema von einer so immensen Bedeutung wie für uns das Laden von Bigfonts. Für die Chinesen das allererste Handwerkszeug, aber hier? Steht auch in der Hilfe drin. Es ist nicht so, dass man einfach nach Regeln (und vor allem nach Tabellen) vorgehen kann. Fas die Hälfte aller AutoCAD-Befehle sind überhaupt keine nativen Befehle: AUSRICHTEN kann man zwar durch _ALIGN ersetzen, aber man kann den Tiefstrich auch weglassen. Gibt man dann bei der Objektwahl ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : autoload versus (defun prog () load prog))
Peter2 am 22.11.2004 um 18:04 Uhr (0)
Mir sind zwei Methoden bekannt, Lisp-Programme bei Bedarf zu laden: 1) die Verwendung von "Autoload" Beispiel: (autoload "ddvpoint" ("ddvpoint")) 2) ein immer mitgeladenes "mini-defun", welches das gleichnamige Programm lädt und startet: (defun c:myprog () (load "myprog") (c:myprog) ) ; ende defun Technisch sind mir beide Versionen klar, aber ich frage mich, was die jeweiligen Vor- und Nachteile dieser Lösungen sind. Schönen Abend Peter ------------------ Für jedes Problem gibt es eine einfa ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : autoload versus (defun prog () load prog))
Proxy am 22.11.2004 um 20:12 Uhr (0)
AutoLoad geht in Verbindung mit der Windows Registry und nur einmal pro session innerhalb der Zeichnung, mit (manuellnachloaden mit (defun ... ) ist etwas solala da du keine Prüfung machst ob es bereits geladen ist, daher ist es bei unsauberer gemachten Lisps etwas heikel wenn z.B. inenrhalb der Lisp ein DCL eingebaut worden ist. The AutoLISP autoload function makes a command available without loading the entire routine into memory. steht in der Hilfe, dürfte nun der grösste Unterschied festgestell ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : autoload versus (defun prog () load prog))
mapcar am 22.11.2004 um 23:43 Uhr (0)
ich möchte mal aufräumen mit dem weitverbreiteten Irrtum, dass (load ...) irgendwelche Programme lädt. Das kann so sein, muss aber nicht. Die Funktion (load...) macht lediglich eines: Sie evaluiert einen bzw. mehrere Ausdrücke, die in einer Datei stehen! Macht mal einen kleinen Test - schreibt mal diese Zeichenkette in eine Datei: "qig wdkls jhfö özfufzh fw zfwz" Mit den Anführungszeichen! - dann als "test.lsp" abspeichern. Dann gebt ihr (setq var(load"test")) auf der Kommandozeile ein und seht, dass je ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : Listenwerte an Command übergeben
flaschenpost am 22.11.2004 um 23:45 Uhr (0)
Hallo liebe LISP-ler, schon wieder geht es nicht weiter ... Kann man Listenwerte an Command übergeben ? Mal ein Beispiel, so klappt es nicht : (defun Netz_zeichnen () (setq a (list 0 0)) (setq b (list 1 0)) (setq c (list 2 0)) (setq d (list 0 1)) (setq e (list 1 1)) (setq f (list 2 1)) (setq g (list 0 2)) (setq h (list 1 2)) (setq i (list 2 2)) (setq x (list a b c d e f g h i)) (setq n 0) (Command "3dnetz" 3 3 (while ( = n 9) (print (nth n x)) (setq n (+ 1 n)) ) "") ) (defun C:Netz () (Netz_zeic ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : BlockRef von VLA-Object?
mapcar am 22.11.2004 um 23:47 Uhr (0)
Den gibt dir doch nentsel mit zurück! Man muss nur mal das car weglassen können;-) Gruß, Axel Strube-Zettler ------------------ (defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man s hat Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze
|
In das Form AutoLisp wechseln |
|
AutoLisp : Listenwerte an Command übergeben
mapcar am 23.11.2004 um 00:21 Uhr (0)
Ich meine nur: Oh je! Klassischer Einzeiler in Lisp - du brauchst keine Variaben usw. ! Code: (defun 3dnetz-zeichnen (m n daten / ) (mapcar command(append(list"_3dmesh"m n)daten)) ) (3dnetz-zeichnen 2 2 ((0 0)(0 1)(1 0)(1 1))) Die Länge der Datenliste muss nur m x n sein. Das ist dann noch etwas weiter optimiert, weil die jedes 3DNETZ zeichnet, nicht nur 3x3. Hinweis: 3DNetze sind zum Rendern nicht zu gebrauchen, weil sie nichtplanare Flächen enthalten (können). Gruß, Axel Strube-Zettler ------- ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : BlockRef von VLA-Object?
mapcar am 23.11.2004 um 12:46 Uhr (0)
Dann gehst du einfach rückwärts über Object.OwnerID (GC 330) Gruß, Axel Strube-Zettler ------------------ (defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man s hat Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze
|
In das Form AutoLisp wechseln |
|
AutoLisp : Listenwerte an Command übergeben
mapcar am 23.11.2004 um 13:25 Uhr (0)
Hi Udo, Code: (defun 3dnetz-zeichnen (m n daten / ) (mapcar command(append(list"_3dmesh"m n)daten)) ) (3dnetz-zeichnen 3 3 ((0 0 0)(1 0 0)(2 0 0)(0 1 0)(1 1 1)(2 1 0)(0 2 0)(1 2 0)(2 2 0)) ) Die eine Abbildung (3dnetz.gif) zeigt das Rendergebnis dieses Programmaufrufs. Für die zweite Abbildung (3dfaces.gif) habe ich die vier Vierecke durch acht Dreiecke (3DFaces) ersetzt. Der Unterschied ist deutlich sichtbar: AutoCAD ist bei Vierecken nicht in der Lage, den zwei Teildreiecken unterschiedliche ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : BlockRef von VLA-Object?
mapcar am 23.11.2004 um 14:04 Uhr (0)
Jetzt verstehe ich dich nicht ganz... An den Block kommst du über den Namen. Die OwnerID gibt dir doch die Referenz! Gruß, Axel Strube-Zettler ------------------ (defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man s hat Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze
|
In das Form AutoLisp wechseln |
|
AutoLisp : Listenwerte an Command übergeben
mapcar am 23.11.2004 um 15:43 Uhr (0)
Axel kann keine 3DNetze leiden. Und wenn, was täte s zur Sache? Es hat nichts mit "leiden können" zu tun, wenn ich hier auf die Grenzen und Fehlern von Dingen hinweise. AutoCad rechnet sicher mit Dreiecken Das wurde schon mal gesagt - wenn du den Unterschied auf den beiden von mir angefügten Bildern nicht wahrnehmen kannst, solltest du Helligkeit und Kontrast deines Monitors neu kalibrieren. Reine Wiederholung macht ein Argument nicht richtiger. Nochmal zum Thema 3DNetze: Ich vergaß zu erwähnen, dass ...
|
In das Form AutoLisp wechseln |
|
AutoLisp : Listenwerte an Command übergeben
mapcar am 23.11.2004 um 20:47 Uhr (0)
Ach so, ja, das war kurz hintereinander. Das ist natürlich eine Erklärung. Dann ist das mit dem Monitor natürlich ungültig;-) Gruß, Axel Strube-Zettler ------------------ (defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man s hat Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze [Diese Nachricht wurde von mapcar am 23. Nov. 2004 editiert.]
|
In das Form AutoLisp wechseln |
|
AutoLisp : autoload versus (defun prog () load prog))
mapcar am 23.11.2004 um 21:10 Uhr (0)
Peter, letztendlich bleibt das jedem selber überlassen. Ich handhabe das meist so, dass meine komplexeren Programme aus einer User-Interface-Funktion bestehen, die immer geladen ist, etwa so: (defun c:hauptprogramm( / aufgabe param) (setq aufgabe user-input auswerten param user-input auswerten ) (cond ( (= aufgabe dieses) (if(null dieses(load"dieses.lsp"))) (dieses param) ; (setq dieses nil) ) ( (= aufgabe jenes) (if(null jenes(load"jenes.lsp"))) ...
|
In das Form AutoLisp wechseln |