Seite 1 von 1

"Doppelt" läuft nicht :-(

Verfasst: Di 22. Sep 2009, 13:36
von tobier
Hallo zusammen,

leider läuft das Script "Doppelt" nicht auf meiner AutoCAD 2010 - Version. Bei genau einem Objekt, das doppelt vorhanden ist, funktioniert es zwar. Sobald jedoch ein beliebiges weiteres Objekt in der Zeichnung vorkommt (z.B. drei Quadrate, von denen zwei übereinanderliegen), kommt der folgende Dialog:

Code: Alles auswählen

Befehl: doppelt
Doppelte Elemente auf <S>eperaten Layer legen oder <L>öschen ?s
/earbeite Zeichnung
Fehler: Fehlerhafter Argumenttyp: numberp: nil
Bei der Auswahl "L" kommt das selbe. Er legt zwar den Layer "doppelt" noch an, aber dann bricht das Programm ab.

Was könnte zur Lösung des Problems führen? Ich bekomme häufig Zeichnungen, bei der jemand versehentlich mehrere Objekte übereinander legt. Da wäre das Tool schon eine zeit- und nervenschonende Hilfe!

Danke im Voraus für die Hilfe!
Gruß Tobias

Re: "Doppelt" läuft nicht :-(

Verfasst: Di 22. Sep 2009, 14:09
von CADwiesel
isch gugge......

Re: "Doppelt" läuft nicht :-(

Verfasst: Di 22. Sep 2009, 14:43
von CADwiesel
ok erledigt
Im Anhang die neue Datei

Vielen Dank für den Hinweis

Re: "Doppelt" läuft nicht :-(

Verfasst: Di 22. Sep 2009, 16:21
von tobier
super, vielen Dank für die zügige Bearbeitung! Es funktioniert jetzt :)

Mir ist aufgefallen, dass er dann immer die ganze Zeichnung durchrödelt, auch wenn die anderen Layer gefroren und / oder gesperrt sind. Wäre es möglich, die gesperrten Layer außen vor zu lassen, so dass er nur die Layer durchsucht, die nicht gesperrt sind? Dann würde es wesentlich schneller flutschen. Das wäre ein nice-to-have :) aber so wie es ist, funktioniert es jedenfalls. Vielen vielen Dank!!

Gruß Tobias

Re: "Doppelt" läuft nicht :-(

Verfasst: Di 22. Sep 2009, 17:28
von CADwiesel
Hier Tausch im Lisp die Funktion EARX:LIST-LAY
gegen diese aus
(defun EARX:LIST-LAY (/)

(setq EARX_LIST nil) ; Alte Datenliste löschen
(setq EARX_DAT (tblnext "LAYER" T)) ;Solange noch Einträge
(while EARX_DAT
(setq EARX_NAM (cdr (assoc 2 EARX_DAT)))
(if (and
(not(minusp(cdr(assoc 62 EARX_DAT))))
(not(/=(cdr(assoc 70 EARX_DAT))0))
)
(setq EARX_LIST (cons EARX_NAM EARX_LIST))
)
(setq EARX_DAT (tblnext "LAYER"))
) ;_ end of while
)

Re: "Doppelt" läuft nicht :-(

Verfasst: Mi 23. Sep 2009, 09:27
von tobier
genial, vielen Dank :)