|
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 |
|
Lisp : lisp aus lisp
fuchsi am 03.04.2008 um 07:58 Uhr (0)
Zitat:Original erstellt von AutoCADuser: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!!Code:(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 () ...
|
In das Form Lisp wechseln |
|
Lisp : Proxy in Block - Blockdefinition testen
tappenbeck am 03.04.2008 um 10:03 Uhr (0)
Hi !weiß einer von Euch wie man über LISP abprüfen kann, ob in einer Blockdefinition PROXYs enthalten sind ??Gruß Jan :-)------------------jan :-)
|
In das Form Lisp wechseln |
|
Lisp : Proxy in Block - Blockdefinition testen
CADmium am 03.04.2008 um 10:18 Uhr (0)
na du stepst wie gehabt durch die Blockelemente ( Code findet sich im Forum) und checkst jedes auf (wcmatch(strcase(cdr(assoc 0 ENAME))) "*PROXY*") ...vielleicht hilft dir auch das Lisp killproxy , was du auf cadwiesel.de findest weiter...?! ------------------ - Thomas -"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
|
In das Form Lisp wechseln |