Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  Löschen von Blöcken 2

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Löschen von Blöcken 2 (882 mal gelesen)
wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

WIN 7 Prof. SP1
64Bit Intel i7 2,4GHz 8GB
PDSU 2013
Vault Prof. 2013

erstellt am: 17. Jul. 2003 17:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich bin auf der Suche nach einer Lisp-Routine zum Löschen von allen in einer Zeichnung vorhandenen Blöcken und Bemaßungen.
Die Zeichnung soll automatisch geöffnet, anschließend die Blöcke und Bemaßungen entfernt, gespeichert und wieder geschlossen werden.
Die Blocknamen sind unbekannt.
Kann mir da mal wer weiterhelfen?!

Vielen Dank schon mal,

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 17. Jul. 2003 17:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

Du machst ein Script, mit dem Text:
(setq as (ssget "_X" '((-4 . "<OR")
                       (0 . "INSERT")
                       (0 . "DIMENSION")
                       (-4 . "OR>"))))
(if as (command "_.erase" as ""))
_.qsave

holst dir scriptpro und dann wählst du alle Zeichnungen aus, lässt das script drüberlaufen - fertig


------------------
Gruß
CADwiesel
bin auch im Urlaub: 29.07 - 27.08

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 18. Jul. 2003 08:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hey Danke!!!
Das funktioniert ja schon mal toll!
Ich sollte nur nochmal konkret die gesamte Anforderung notieren, vielleicht kann mir jemand noch mehr helfen, als ich zuerst fragen wollte:
Das Zeichnung Öffnen, Speichern und Schließen kann vom Script getrennt werden, da dies bereits vom Jobserver von Compass passiert.
Am liebsten wäre mir daher eine Lisp, die das Löschen vornimmt, zusätzlich zu den Blöcken und Maßen wäre da noch der Wunsch alle Elemente zu löschen, die nicht auf einem Layer liegen mit der Farbe weiß (d.h. nicht lösche alle außer Layer 0/AM_0, sondern alle mit Farbe weiß).
So und jetzt der Über-Clou:
Der Grundmaßstab der Zeichnung wurde bereits über eine andere Lisp-Routine ermittelt und wird über die Variable "myms" zurückgegeben, in Abhängigkeit vom Maßstab soll ein Block mit Attributen aus einem bestimmten Verzeichnis eingefügt werden, skaliert mit dem Maßstabswert.
Das Befüllen der Attributswerte kann ich wieder über einen Befehl der Compass-Schnittstelle ausführen.

Also wenn mir da noch wer weiterhelfen kann, dem veschieß ich alle U's die ich habe!

Vielen lieben Dank im Voraus!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

WIN 7 Prof. SP1
64Bit Intel i7 2,4GHz 8GB
PDSU 2013
Vault Prof. 2013

erstellt am: 18. Jul. 2003 08:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

...noch was vergessen:
Bei den zu behandelnden Zeichnungen handelt es sich ausschließlich um DIN A4 Zeichnungen. Der Einfügepunkt des neuen Blocks sollte links unten vom A4-Blatt sein (Rahmen ist leider nicht immer ein Block, da alte Zeichnungen auch dabei sind).
Nach dem ganzen Spektakel sollte die gesamte Zeichnung noch komplett bereinigt werden!

Vielen Dank nochmal!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 18. Jul. 2003 08:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

(setq as (ssget "_X" '((-4 . "<OR")
                      (0 . "INSERT")
                      (0 . "DIMENSION")
                      (-4 . "<NOT")
                      (-4 . "<OR")
                      (8 . "0")
                      (8 . "AM_0*")
                      (-4 . "OR>")
                      (-4 . "NOT>")
                      (62 . 7)
                      (-4 . "OR>")
                      )))

(setvar "attreq" 0)
(command "_zoom" "G")
(setq Blnam "C:/temp/Name.dwg")
(command "_-insert" Blnam (getvar "extmin") "1" "1" "0")

(command "_purge" "_all")
      (while (= (getvar "cmdnames") "PURGE")
              (command "*" "_n")
      )

Es braucht natürlich noch einige genauere Angaben, um das 'Kind zu schaukeln', z.B. Wie sieht der Wert aus, der in der Variablen myms steht, und wie soll die Umwandlund des Wertes in eine verständliche Zahl für die Skalierung sein, wie sind die Pfade der einzufügenden Blöcke?

------------------
Gruß
CADwiesel
bin auch im Urlaub: 29.07 - 27.08

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 18. Jul. 2003 08:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank schon mal!
myms wird ausgegeben in z.B. "1:5", in diesem Fall müsste der Block mit 5 skaliert werden.
Der Pfad für den einzufügenden Block ist"Z:\WEC_JBS\NC-Schablone.dwg"

Thanks!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 18. Jul. 2003 09:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

So, wie läufts?

(setq as (ssget "_X" '((-4 . "<OR")
                      (0 . "INSERT")
                      (0 . "DIMENSION")
                      (-4 . "<NOT")
                      (-4 . "<OR")
                      (8 . "0")
                      (8 . "AM_0*")
                      (-4 . "OR>")
                      (-4 . "NOT>")
                      (62 . 7)
                      (-4 . "OR>")
                      )))
(if as (command "_.erase" as ""))
(setvar "attreq" 0)
(setq vari (atoi(substr myms 3 1)))
(command "_zoom" "G")
(setq Blnam "Z:\WEC_JBS\NC-Schablone.dwg")
(command "_-insert" Blnam (getvar "extmin") vari "1" "0")
(command "_purge" "_all")
      (while (= (getvar "cmdnames") "PURGE")
              (command "*" "_n")
      )

------------------
Gruß
CADwiesel
bin auch im Urlaub: 29.07 - 27.08

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 18. Jul. 2003 09:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Es läuft schon ganz gut, aber noch nicht perfekt, könnte man es noch durch ein "defun" für einen Befehlsaufruf ergänzen?!
Weiters bleiben mir noch immer Textelemente übrig, die müssten auch noch gelöscht werden (nämlich die, die auch auf dem weißem Layer liegen!).
Der Block wird auch nicht eingefügt?!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 18. Jul. 2003 11:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

Tja, dann packst Du das eben in eine defun klammer:
(Defun c:machallesplatt ( / )

die Funktion...

);klammer zu


Ach ja, der Pfad ist noch Falschgeschrieben
muss so sein:
(setq Blnam "Z:/WEC_JBS/NC-Schablone.dwg")
Damm musst du mal etwas mit dem Filter spielen...

------------------
Gruß
CADwiesel
bin auch im Urlaub: 29.07 - 27.08

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 18. Jul. 2003 11:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Soweit funktioniert es schon gut, es könnten nur noch alle vorhandenen Textelemente gelöscht werden.
Das Einfügen des Blocks funktioniert leider immer noch nicht, folgende Meldung wird ausgegeben:

Befehl: machallesplatt
; Fehler: Fehlerhafter Argumenttyp: stringp nil

Gibt's hier noch Lösungsansätze?!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

WIN 7 Prof. SP1
64Bit Intel i7 2,4GHz 8GB
PDSU 2013
Vault Prof. 2013

erstellt am: 21. Jul. 2003 09:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen!

Was so ein Wochenende dazwischen ausmacht - ich hab das Blockeinfügen jetzt auch im Griff.
Was jedoch bei den Filtern noch fehlt, dass alle Textelemente entfernt werden und sonst alle Elemente auf weißen Layern erhalten bleiben (derzeit bleiben nur 0 und AM_0 Layer übrig).
Ich kenn mich da nicht so aus mit den Filtern, kann mir da noch wer helfen?!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 21. Jul. 2003 10:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

Schau hier: http://ww3.cad.de/foren/ubb/Forum145/HTML/000169.shtml

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Irgendwann muß man schlafen, deshalb:
+!+!+Urlaub vom 01.08.-30.08.2003+!+!+

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 21. Jul. 2003 10:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Holger!

CADwiesel hat mir ja eigentlich schon super geholfen und die Farbe 7 vom Löschbefehl ausgenommen:

(setq as (ssget "_X" '((-4 . "<OR")
                      (0 . "INSERT")
                      (0 . "DIMENSION")
                      (-4 . "<NOT")
                      (-4 . "<OR")
                      (8 . "0")
                      (8 . "AM_0*")
                      (-4 . "OR>")
                      (-4 . "NOT>")
                      (62 . 7)
                      (-4 . "OR>")
                      )))
(if as (command "_.erase" as ""))


... aber trotzdem werden weiße Linien gelöscht.
Hast du hier eine Idee?

Vielen Dank schon mal!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADwiesel
Moderator
CAD4FM UG




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 21. Jul. 2003 10:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

Ich vermute mal, dass die lienien nicht weiss sind, sondern VonLayer

------------------
Gruß
CADwiesel
bin auch im Urlaub: 29.07 - 27.08

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 21. Jul. 2003 10:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi CADwiesel!

Absolut korrekt, die Linien sind tatsächlich Farbe vonLayer!
Das mit dem Text hab ich auch hingekriegt (war ja irrsinnig schwer!)
Ist ja wohl schon aufgefallen, dass ich von Lisp nicht viel Ahnung habe!!!

Wie kann ich also nun auch alle Linien, die weiß sind aber Farbe vonLayer sind vor dem Löschen schützen?

Herzliches Danke schon mal!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

WIN 7 Prof. SP1
64Bit Intel i7 2,4GHz 8GB
PDSU 2013
Vault Prof. 2013

erstellt am: 23. Jul. 2003 11:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen!

Wollte wieder mal nachfragen, ob mir noch wer helfen kann, alles außer weißen Elementen in dwg's zu löschen?!

Danke, ciao!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 23. Jul. 2003 11:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

Hallo wisch,

woran liegts, dass du mit den Info's aus dem Lisp-Forum nicht weiter kommst?

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Irgendwann muß man schlafen, deshalb:
+!+!+Urlaub vom 01.08.-30.08.2003+!+!+

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 23. Jul. 2003 12:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Holger!

Ganz ehrlich gesagt - an meiner Dummheit!!!
Ich kann beim Durchlesen von Lisp's in etwa deuten, was vorgeht, kann aber keine zusammenhängenden Abläufe produzieren, da ich so gut wie keine Programmierkenntnisse habe!

Sollte sich jemand meiner Dummheit erbarmen, wäre das supertoll, ansonsten muss ich das Thema halt einfach abhaken.

PS: Ich schaffs nicht einmal, jemanden mehr als 10 U's zu vergeben, kann da auch wer helfen?!

Danke und ciao!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 23. Jul. 2003 12:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

Hallo wisch,

erstmal 10U's für dich wegen deiner Ehrlichkeit.
mehr als 10U's je Beitrag kannst du nicht vergeben - liegt also nicht an dir.

Die Lisp's deuten - ok. Ist aber nicht mal notwendig. Einfach alle Codezeilen in eine Datei kopieren - fertig. Vielleicht um mein letztes Posting noch ein
(defun c:loeweiss ()
)
drumherum, dann ist eigentlich das, was du wolltest fertig und kannst mit 'loeweiss' in der Befehlszeile starten.

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Irgendwann muß man schlafen, deshalb:
+!+!+Urlaub vom 01.08.-30.08.2003+!+!+

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 23. Jul. 2003 16:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Also ich hab jetzt mal alles zusammengestoppelt, funzt aber immer noch nicht, ist da alles richtig?

Code:
-------------------

(defun ssget:Farbe (farbe vLayer / at autom as)
  (if vlayer
    (setq at T
  autom (apply 'strcat
      (mapcar '(lambda (S)
  (if at
    (progn
      (setq at nil)
      S
      );progn
    (strcat "," S)
    )
  )
      (apply 'append
      (mapcar '(lambda (L)
(if (= (cdr L) farbe)
  (list (car L))
  )
)
      (f:get_eig(get_allnames_table "LAYERS") 'COLOR)
      )
      )
      )
      )
  as (ssget "_X"
    (list
      '(-4 . "<and")
      (cons 8 autom)
      (cons 62 256)
      '(-4 . "and>")
      )
    )
  )
    (setq as
  (ssget "_X"
  (list
    (cons 62 farbe)
    )
  )
  )
    )
  (if as (bau_elemli as))
  )
(defun f:get_eig (li eig /)
  (mapcar '(lambda (L / prop)
    (cons (car L)(vlax-get-property (cdr L) eig))
    )
  li
  )
  )
(defun bau_elemli (asatz / n elemli)
  (setq n 0)
  (repeat (sslength asatz)
    (setq elemli(cons (ssname asatz n) elemli)
  n (1+ n))
    )
  elemli
  )
(defun drawing ()
  (vlax-get-property
(vlax-get-acad-object)
"ActiveDocument"
)
      )
(defun get_count_table (table /)
  (vlax-get-property
    (vlax-get-property
      (drawing)
      table
      )
    'count
    ) 
  )
(defun get_allnames_table (table / names z)
  (repeat (get_count_table table)
    (setq z (if z (1+ z) 0)
  names (cons(cons (vlax-get-property
(setq dimobjtmp(vlax-invoke-method
(vlax-get-property
  (drawing)
  table
  )
'item
z
)
      )
'name
)
      dimobjtmp)
      names)
  )
    )
  (if names (reverse names))
  )
(defun c:loeweiss ()

(setq AS (ssget "_X"))
(mapcar '(lambda (EL)
          (setq AS(ssdel EL AS))
          )
        (append
          (ssget:Farbe 7 T)
          (ssget:Farbe 7 nil)
          )
        )
(mapcar 'entdel (bau_elemli AS))
)

-----------------------
Ciao!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 24. Jul. 2003 09:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

Hallo wisch,

was funzt denn nicht?
Geht's gar nicht?
Welche Fehlermeldungen?
Werden nur bestimmte Elemente gelöscht?

Etwas mehr Info's brauch man schon.

Ich habe eben noch mal den Code hier raus kopiert, geladen, gestartet, ... alles gelöscht, außer die weißen Elemente.

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Irgendwann muß man schlafen, deshalb:
+!+!+Urlaub vom 01.08.-30.08.2003+!+!+

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 24. Jul. 2003 09:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Holger!

Folgende Fehlermeldung nach Befehlsaufruf "loeweiss":

; Fehler: no function definition: VLAX-GET-ACAD-OBJECT

Nichts wird gelöscht!
Wir haben AutoCAD(R) Mechanical Power Pack  15.0 (2000)- SP4

Mehr Info`s hab ich leider auch nicht herausbekommen!

Ciao!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 24. Jul. 2003 09:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

Hallo wisch,

(vl-load-com) in der Befehlszeile eingeben. oder direkt als erste Zeile unterhalb des (defun c:loe.... ()

Dann sollte es auch bei dir funktionieren.

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Irgendwann muß man schlafen, deshalb:
+!+!+Urlaub vom 01.08.-30.08.2003+!+!+

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 24. Jul. 2003 09:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich bekomme wieder nur ein

"nil"

ausgegeben und nix passiert!
(Verzweiflung)

Ciao!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



Sehen Sie sich das Profil von Brischke an!   Senden Sie eine Private Message an Brischke  Schreiben Sie einen Gästebucheintrag für Brischke

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 24. Jul. 2003 12:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

Hallo wisch,

wann bekommst du das nil - nach dem laden? - das ist ok.
oder nach dem Starten des Programm's mit loeweiss? Dann kann ich Dir nicht mehr helfen, das Tool läuft bei mir, ein paar andere habens auch getestet, bei denen läufts auch. Warum bei Dir nicht .... ?? - keine Ahnung, kann ich von hier aus nicht sagen.

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Irgendwann muß man schlafen, deshalb:
+!+!+Urlaub vom 01.08.-30.08.2003+!+!+

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

BerndE
Mitglied
Hochbautechniker


Sehen Sie sich das Profil von BerndE an!   Senden Sie eine Private Message an BerndE  Schreiben Sie einen Gästebucheintrag für BerndE

Beiträge: 557
Registriert: 05.07.2003

Revit 2013
ACA 2012 deutsch
BuildingOne 5.4.5
Win7
WindowsNetz

erstellt am: 24. Jul. 2003 14:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

Hi wisch,
wenn Lisp dir derart probs macht, dann probier doch mal dieses VBA Makro.
Es löscht dir alle farbigen Einträge mit der eigenschaft vonLayer und
alle farbigen Einträge mit Farbzuweisungen auf weissen layern, nicht aber weisse elemente auf farbigen Layern. Hoffe mal, ic hhab dich so richtig verstanden.
Bernd
Sub loesche_bunt()
    Dim layerObj As AcadLayer
    Dim LayerName As String
    Dim elem As AcadEntity
   
    On Error Resume Next
    For Each layerObj In ThisDrawing.Layers
        LayerName = layerObj.Name
        For Each elem In ThisDrawing.ModelSpace
            If elem.Color <> acWhite Then elem.Delete
            If elem.Layer = LayerName Then
                If layerObj.Color = acWhite Then
                    If elem.Color <> acWhite And elem.Color <> acByLayer Then elem.Delete
                End If
            End If
        Next
    Next
End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

BerndE
Mitglied
Hochbautechniker


Sehen Sie sich das Profil von BerndE an!   Senden Sie eine Private Message an BerndE  Schreiben Sie einen Gästebucheintrag für BerndE

Beiträge: 557
Registriert: 05.07.2003

Revit 2013
ACA 2012 deutsch
BuildingOne 5.4.5
Win7
WindowsNetz

erstellt am: 24. Jul. 2003 14:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

äääh...mir fällt grad noch ne möglichkeit ein, die ich u.U. nicht berücksichtigt haben könnte. Weiße Elemente (nicht Layer 0)in Blöcken
die mit der Eigenschaft von Block auf einen Layer gesetzt werden, habe ich nicht berücksichtigt.
Bernd

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wisch
Mitglied



Sehen Sie sich das Profil von wisch an!   Senden Sie eine Private Message an wisch  Schreiben Sie einen Gästebucheintrag für wisch

Beiträge: 78
Registriert: 22.05.2003

erstellt am: 24. Jul. 2003 14:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hey BerndE!
Da tut sich schon mal was am Bildschirm!
Leider wird jetzt zuviel gelöscht - hier nochmal die Anforderung:
Was soll übrigbleiben:
Alle Elemente auf Layer 0 mit Farbe VonLayer
Alle Elemente auf Layer AM_0 mit Farbe VonLayer
Alle Elemente auf irgendeinem Layer, nur Farbe Weiß

Alles andere kann gelöscht werden!
Bei dem Makro ist alles futsch!

Ciao!

------------------
wisch

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

BerndE
Mitglied
Hochbautechniker


Sehen Sie sich das Profil von BerndE an!   Senden Sie eine Private Message an BerndE  Schreiben Sie einen Gästebucheintrag für BerndE

Beiträge: 557
Registriert: 05.07.2003

Revit 2013
ACA 2012 deutsch
BuildingOne 5.4.5
Win7
WindowsNetz

erstellt am: 24. Jul. 2003 14:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für wisch 10 Unities + Antwort hilfreich

und nu?...aber obacht...ich habs nicht getestet....sollte aber funktionieren.

Sub loesche_bunt()
    Dim layerObj As AcadLayer
    Dim LayerName As String
    Dim elem As AcadEntity
   
    On Error Resume Next
    For Each layerObj In ThisDrawing.Layers
        LayerName = layerObj.Name
        For Each elem In ThisDrawing.ModelSpace
            If elem.Layer = "0" And layerObj.Color = acByLayer Then GoTo Next_Elem
            If elem.Layer = "AM_0" And layerObj.Color = acByLayer Then GoTo Next_Elem
            If elem.Color <> acWhite Then elem.Delete
            If elem.Layer = LayerName Then
                If layerObj.Color = acWhite Then
                    If elem.Color <> acWhite And elem.Color <> acByLayer Then elem.Delete
                End If
            End If
Next_Elem:
        Next
    Next
End Sub


Gruß

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz