EDIT: Das Thema sollte natürlich heißen alle Objekte auf Layer 0!!
Hallo, erst ein mal ein großes Lob an alle die hier helfen und schreiben. Ich habe hier schon viel Hilfe gefunden.
Nun habe ich allerdings auch mal eine direkte Frage. Ich habe hier im Büro eine Symboldatenbank die die Symbole als einzenlne DWG's speichert. Nun ist bei der Erstellung einiger Symbole schlampig gearbeitet worden, so dass einige nicht auf dem Layer 0 gezeichnet sind.
Um dies zu beheben habe ich mir die folgende Routine geschrieben
(ich weiß, das ist nicht sehr professionell aber ausreichend):
(command "-layer")
(command "SEtzen")
(command "0")
(command "tauen")
(command "*")
(command "ein")
(command "*")
(command "entsperren")
(command "*")
(command "")
(command "LAYMWECHS")
(command "alle")
(command "")
(command "n")
(command "0")
(command "BEREINIG")
(command "alles")
(command "*")
(command "n")
(command "_.qsave")
(command "_.close")
Diese funktioniert so weit auch ganz gut. Wenn jedoch ein Block in der Zeichnung vorhanden ist, geht es nicht (was ja auch logisch ist).
Zum ändern der Layer innerhalb eines Blockes auf den Layer 0 gibt es ja die LISP-Datei nuke. (hatte ich glaube ich mal bei CADwiesel runtergeladen, ist als Anhang in diesem Beitrag)
Meine Frage ist nun wie ich diese Datei mit meiner Routine verknüpfen bzw. kann und wie ich die Abfragen in nuke umgehe bzw. einfach eine Auswahl vorgebe.
ich habe es probiert mit
(load "nuke.lsp")
(c:nuke)
aber das hat nicht funktioniert.
Zum Thema Abfrage umgehen:
(setq CHOICE(getkword (strcat "\n<G>lobal or <S>elect block: <" CHOICE "> ")))
(if(not CHOICE)(setq CHOICE "S"))
(if (= (strcase CHOICE) "G")
;global nuke
(while (setq BLK_NM(tblnext "BLOCK" (null BLK_NM)))
(TO-0 (cdr(assoc 2 BLK_NM)))
);while
Hier müsste es doch reichen wenn ich díesen Teil folgendermaßen abändere:
;global nuke
(while (setq BLK_NM(tblnext "BLOCK" (null BLK_NM)))
(TO-0 (cdr(assoc 2 BLK_NM)))
);while
oder bin ich da auf dem Holzweg? (ich kann zwar Delphi und ein bißchen C und php aber dieses LISP ist irgendwie ganz anders :-( )
Vielen Dank schon mal für die Hilfe.
------------------
Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris...
[Diese Nachricht wurde von matzespens am 23. Feb. 2010 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP