|
Lisp : Attributswerte übertragen
Ian_K am 01.04.2008 um 13:10 Uhr (0)
Jupp! Das kann ich bestätigen. Genauso wie ich es eingangs dargestellt habe.Obwohl ich das Script bei Bedürftigkeit bestimmt noch etwas selbst anpassen können - Namen ändern oder drehen.Bin von Haus aus eigentlich VBAler. Mit Lisp hab ich so meine Schwierigkeiten, aber das schöne Script von Marc gibts ja nun schon mal. Eine kleine Erweiterung in der Schleife oder nach der Schleife, wo man die von der Funktion erstellte Liste der Texte mit einigen Variablen erweitern könnte wäre nicht schlecht nach dem Mott ...
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
AutoCADuser am 02.04.2008 um 12:09 Uhr (0)
das ist der code:...nicht wundern, ist meine erste Lisp...(defun c:A ( / Basispunkt OldOsmode)(setq OldOsmode (getvar "OSMODE"))(setvar "OSMODE" 108)(setvar "insbase" (getpoint "
Gib den Basispunkt an:"))(setq Basispunkt (getvar "insbase")) (command "_insert" "DI_Einfügepunkt") (command Basispunkt) (command "1" "" "0")(setvar "OSMODE" OldOsmode) (prin1))------------------
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
Dorfy am 02.04.2008 um 16:03 Uhr (0)
@fuchsi... zum Thema insbase - frag AutoCADuser...hab mich das weiter oben auch schon gefragtmfg heiko
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
Dorfy am 02.04.2008 um 13:40 Uhr (0)
hi,was willst du denn genau machen, deine Beschreibung ist recht dünne...Deine command - Zeilen sehen komisch aus...setvar insbase ... wofürHier mal ne lange Zeile mit "insert" - vllt. hilft es:(command "_-insert" (strcat "." curdir "" (nth (atoi cursel) items )) (getvar "viewctr") 1 1 0 "_move" (entlast)""(getpoint "
Einfüge-Basispunkt") pause "_.rotate" (entlast)"" (getvar "LASTPOINT") pause)))mfg Dorfy
|
In das Form Lisp wechseln |
|
Lisp : Versetzen in die richtige Richtung
Erich Klein am 02.04.2008 um 15:46 Uhr (0)
Hallo,ein Problem, das mich quält, sieht folgendermaßen aus:In einem LISP-Programm wird eine Polylinie als geschlossene Kontur gezeichnet. Diese Kontur besteht ausschließlich aus Linien und Bögen. Die gezeichnete Kontur muss nach innen versetzt werden. Es wird ein Punkt im Inneren der Kontur gewählt und die gesamte Kontur versetzt sich in Richtung dieses Punktes, solange die geschlossene Polylinie besteht. Es kommt aber manchmal vor, dass die geschlossene Kontur nicht als Polylinie bestehen bleiben kann un ...
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
AutoCADuser am 02.04.2008 um 16:08 Uhr (0)
heiko, ist klar...is halt bissal kürzer. Aber der selbe Ablauf. Wenn ich jetzt deinen code aus meiner Haupt-Lisp starten will, funktionierts nicht.code der Haupt-Lisp:(defun c:B ( / )(command "_.zoom" "_extents") (command "_.xref" "_detach" "*") (command "_.layer" "_unlock" "*" "") (command "_audit" "j") ;-----------------Starten von A---------------------(defun c:A () (Print "A läuft") (c:B) ; hier aufruf von B (print "wieder in A"))(defun c:B () (Print "B läuft"));-----------------Ende von A--- ...
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
joern bosse am 03.04.2008 um 08:11 Uhr (0)
Hallo,nur eine Anmerkung, ein INSBASE ungleich (0.0 0.0 0.0) hat schon so manchen Fehler verursacht, wenn ein georeferenzierter Block in eine ebenfalls georeferenziere Zeichnung eingefügt wird. Wenn das Gebäude dann abgesteckt ist, bevor der Fehler auffällt.... ------------------viele GrüßeJörn
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
AutoCADuser am 02.04.2008 um 18:26 Uhr (0)
nee, sorry geht nicht..hat vielleicht einer nen Ausschnitt aus einem Cade...wo man sehen kann wie das aussieht wenns funktioniert...ansonsten DANKE euch für die Hilfe!!------------------
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
CAD-Huebner am 01.04.2008 um 17:58 Uhr (0)
Das ist ja wohl sebstverständlich, dass eine funktion eine andere Funktion wieder aufrufen kann und nach Beendigung er aufgerufenen Funktion die Prrogrammbearbetiung in der aufrufenden Funktion fortgesetzt wird. Das geht eigentlich in jeder Programmiersprache.Code:(defun A () (Print "A läuft") (B) ; hier aufruf von B (print "wieder in A"))(defun B () (Print "B läuft"))------------------Mit freundlichem GrußUdo Hübnerwww.CAD-Huebner.de
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
AutoCADuser am 02.04.2008 um 10:22 Uhr (0)
Ok danke, das hab ich ja hinbekommenB läuft ja auch nach der Unterbrechung durch, aber A ist so aufgebaut, dass ich aufgefordert werde einen Einfügepunkt für einen einzufügenden Block Eintippen mussund diese Aufforderung kommt eben nicht und es wird auch kein Block eingefügt. UND wenn ich nach dem Programmablauf wieder B starten will, sag er nur: "B läuft" WENN ich A Starten will sagt er: "A läuft""B läuft""wieder in A" "wieder in A"??? WAS mach ich falsch------------------
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
CAD-Huebner am 02.04.2008 um 11:42 Uhr (0)
Zitat:Original erstellt von AutoCADuser:... einen Einfügepunkt für einen einzufügenden Block Eintippen mussund diese Aufforderung kommt eben nicht Tja, dann ist wohl ein Fehler beim Code B - Einfügepunkt abfragen.Wird das mit (Command -einfüge ...) gemacht, dann fehlt da vermutlich ein PAUSE Befehl, ansonsten würde ich mit (getpoint ...) arbeiten.Aber ohne den fehlerhaften Code zu sehen, kann man nicht mehr sagen.------------------Mit freundlichem GrußUdo Hübnerwww.CAD-Huebner.de
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
Dorfy am 02.04.2008 um 14:54 Uhr (0)
Hi,....(defun c:AAA ( / OldOsmode)(setq OldOsmode (getvar "OSMODE"))(setvar "OSMODE" 108)(setvar "insbase" (getpoint "
Gib den Basispunkt an:")) (command "_-insert" "ttt" (getvar "insbase") "1" "1" "0")(setvar "OSMODE" OldOsmode) (princ))so? musst den Block von ttt auf ... umbenennen.mfg heiko
|
In das Form Lisp wechseln |
|
Lisp : lisp aus lisp
Dorfy am 02.04.2008 um 16:35 Uhr (0)
Äh...so? siehe wronzkyCode:--------------------------------------------------------------------------------(defun c:A () (Print "A läuft") (c:B) ; hier aufruf von B (print "wieder in A") (c:C) ; hier aufruf von C (print "wieder in A") (c:FD) ; hier aufruf von FD (print "wieder in A"))(defun c:B () (Print "B läuft"))(defun c:C () (Print "C läuft"))(defun c:FD () (Print "FD läuft"))--------------------------------------------------------------------------------mfg heiko [Diese Nachricht wurde von D ...
|
In das Form Lisp wechseln |