| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Blöcke filtern (1473 mal gelesen)
|
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 19. Mai. 2008 18:52 <-- editieren / zitieren --> Unities abgeben:
Einen schönen guten Tag.ich habe da ein Problemchen.Ich habe in einer Zeichnung sehr viele identische Blöcke, diese möchte ich mit einem Lisp mit anpicken so das diese zum weiterverarbeiten makiert sind , wie ZB. auflösen, löschen usw.Gibt es vieleicht solch ein Lisp schon ? Vielen Dank für die Antworten. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 19. Mai. 2008 19:06 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Dazu brauchts kein Programm, dafür reicht eine Zeile: (ssget "X" (list (cons 0 "INSERT") (cons 2 "blockname"))) Kopier Dir das in die Befehlzeile - ersetze aber "blockname" durch Deinen Blocknamen. Mit Auswahl / Vorherige kannst Du drauf zugreifen. ------------------ Schöne Grüße Ernst www.geopaint.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 20. Mai. 2008 05:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Ernst, danke für die superschnelle Antwort.Die Blöcke die ich in einer Zeichnung habe oder bekomme,haben Unterschiedliche Namen,deshalb wollte ich einen Block davon anpicken und die anderen mit dem gleichen Namen mackieren sich gleich automatisch mit. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 20. Mai. 2008 07:49 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Die Zeile von Ernst ist schon OK....aber für dich etwas abgewandelt: (sssetfirst(setq a(ssget "X" (list (cons 0 "INSERT") (assoc 2 (entget (car(entsel "\nBlock wählen: ")))))))a) ..allerdings ohne Fehlerhandling ... , also wenn keine Blockreferenz gewählt wurde , wird abgebrochen ..
------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 20. Mai. 2008 07:51 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Hallo stk, du kannst in der vom Ernst geposteten Zeile mit Wildcards arbeiten. Das heißt, du kannst auch Inserts mit unterschiedlichen Namen auf einmal picken: (ssget "X" (list (cons 0 "INSERT") (cons 2 "BLOCKBASISNAME*"))) Wenn du also einen Bsp-Insert picken willst, und von dessen namen nur ein Teil mit den Namen der ebenfalls zu wählenden INSERTS übereinstimmt, dann solltest du den Code wie folgt ändern: (ssget "X" (list (cons 0 "INSERT") (cons 2 (strcat(substr (cdr(assoc 2 (entget(car(entsel"INSERT wählen: "))))) 1 5)"*") ))) In diesem Bsp, werden nur die ersten 5 Zeichen des gewählten Blocknamens für die Auswahl der weiteren Blöcke herangezogen. Baust du diesen Auswahlsatzt nun mit (sssetfirst nil aws) zusammen, werden die selektierten Blöcke mit Griffen versehen. Alles klar? Bei Fragen ... Grüße Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 20. Mai. 2008 07:57 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Nach welchen Kriterien willst Du denn filtern? Eventuell kannst die Zeile noch erweitern, zB. mit (cons 8 "layername") usw. (siehe Hilfe zu (ssget) / Filter ) (edit: da waren die anderen schneller) ------------------ Schöne Grüße Ernst www.geopaint.at [Diese Nachricht wurde von Geos am 20. Mai. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stk Mitglied
Beiträge: 172 Registriert: 27.10.2002
|
erstellt am: 20. Mai. 2008 09:01 <-- editieren / zitieren --> Unities abgeben:
|
Getronics Mitglied
Beiträge: 74 Registriert: 28.08.2002 WIN XP Prof ACAD 2005 / 2006 / 2007 / 2008 MDT 2005 / 2006 / 2007 / 2008 AIP 9.0 / 10.0 / 11.0 / 2008 Vault 5.0 / 2008
|
erstellt am: 30. Mai. 2008 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für stk
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 30. Mai. 2008 12:15 <-- editieren / zitieren --> Unities abgeben: Nur für stk
Zitat: Original erstellt von Getronics: Schon mal die Schnellauswahl (Befehl SAUSWAHL / _QSELECT) angeschaut?
und wenn man den Blocknamen nicht weiß??? siehe 1.Post : ..diese möchte ich mit einem Lisp mit anpicken so das diese zum weiterverarbeiten makiert sind .. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |