| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Auswahlsatz - nach Farbe filtern? (2017 mal gelesen)
|
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2041 Registriert: 08.04.2002
|
erstellt am: 01. Jul. 2003 18:40 <-- editieren / zitieren --> Unities abgeben:
Wenn ich in einem Auswahlsatz nach der farbe rot filtern will sieht das z.b so aus (für alle en): (ssget "X" '((62 . 1))) wie sieht das aus wenn ich die Farbe aus einer Variablen definieren will? (ssget "X" '(list(vl-list* 62 farbe))) oder ähnliches funktioniert nicht ------------------ mfg Siegfried Schachinger http://www.tbschatz.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
m-troeger Mitglied gel. Bauzeichner; Vermessungszeichner, Vermesser im Außendienst, GIS-Erfassung in PARIS
Beiträge: 295 Registriert: .. ACAD14 und 2005; MAP4; GeoCAD; PARIS; ( Vermessung )
|
erstellt am: 01. Jul. 2003 19:23 <-- editieren / zitieren --> Unities abgeben: Nur für Schachinger
|
Schachinger Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2041 Registriert: 08.04.2002
|
erstellt am: 02. Jul. 2003 07:21 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 10. Jul. 2003 15:40 <-- editieren / zitieren -->
Hallo Leute, wie findet ihr Objekte mit der Farbe vonlayer der aber z.B. rot ist? Jürgen |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 10. Jul. 2003 16:12 <-- editieren / zitieren --> Unities abgeben: Nur für Schachinger
|
benwisch Mitglied Bautechniker, CAD-Konstrukteur
Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 10. Jul. 2003 20:15 <-- editieren / zitieren --> Unities abgeben: Nur für Schachinger
Zitat: Original erstellt von JürgenBecker: Hallo Leute,wie findet ihr Objekte mit der Farbe vonlayer der aber z.B. rot ist? Jürgen
Hi Jürgen gute idee, sowas wollt' ich schon immer mal haben, ist aber dann in vergessenheit geraten. nun denn, ich hab' mal was gebastelt.... läßt sich bestimmt noch verbessern/optimieren... die untenstehende funktion benötigt 2 argumente: 1- ein pickset 2- ein farb-integer Code:
(defun bw_selColor (pickset Col / en i gripset) (if (and (= (type pickset) 'pickset) (= (type Col) 'INT)) (progn (setq gripset (ssadd)) (sssetfirst nil) (repeat (setq i (sslength pickset)) (setq en (entget (ssname pickset (1- i)))) (if (= 0 (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 en)))))) (cond ((= Col (cdr (assoc 62 en))) (ssadd (ssname pickset (1- i)) gripset)) ((and (not (assoc 62 en)) (= Col (cdr (assoc 62 (tblsearch "LAYER" (cdr (assoc 8 en)))))) ) ;_ end and (ssadd (ssname pickset (1- i)) gripset) ) ) ;_ end cond ) ;_ end if (setq i (1- i)) ) ;_ end repeat (sssetfirst nil gripset) gripset ) ;_ end progn ) ;_ end if ) ;_ end defun
(bw_selcolor (ssget) 1) ==> aus einem auswahlsatz rot filtern (bw_selcolor (ssget "_X") 2) ==> von der gesamten dwg gelb filtern funkt auch innerhalb eines acad Kommandos
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 11. Jul. 2003 10:24 <-- editieren / zitieren -->
Hallo Holger, nicht schlecht, aber was ist mit den Objekten die wirklich rot sind? Jürgen
|
Ex-Mitglied
|
erstellt am: 11. Jul. 2003 10:25 <-- editieren / zitieren -->
Hallo benwisch, danke für die Routine werde sie mal ausprobieren und mich melden. Jürgen |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 11. Jul. 2003 10:45 <-- editieren / zitieren --> Unities abgeben: Nur für Schachinger
Hallo Jürgen, dann nimmst du einmal die Variante Layer 'SOWIESO'+Farbe 'VONLAYER' und das andere mal, nur die Farbe 'FARBNR'. Beides addiert ergibt dann, das was du suchst. So kann das dann aussehen:
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)) )
und aufgerufen wird das dann so: Code:
;;;Löscht alle Elemente, die Weiß sind und nicht vonLayer (mapcar 'entdel (append (ssget:Farbe 7 T) (ssget:Farbe 7 nil) ) ) ;;;Löscht alle Elemente, die Farbe von Layer haben, dieser aber Weiß ist (mapcar 'entdel (ssget:Farbe 7 T) );;;Löscht alle Elemente, die Weiß sind - also beides zusammen (mapcar 'entdel (append (ssget:Farbe 7 T) (ssget:Farbe 7 nil) ) )
Der 2. Parameter gibt an, was du suchst. T der Layer soll die Farbe haben nil das Objekt soll die Farbe haben 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 |
benwisch Mitglied Bautechniker, CAD-Konstrukteur
Beiträge: 375 Registriert: 01.02.2001
|
erstellt am: 11. Jul. 2003 13:11 <-- editieren / zitieren --> Unities abgeben: Nur für Schachinger
|
wisch Mitglied
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 11:18 <-- editieren / zitieren --> Unities abgeben: Nur für Schachinger
|
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 21. Jul. 2003 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für Schachinger
Hallo Wisch, Code:
(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))
damit sollte es dann gehen (in Verbindung mit dem vorherigen Code-Zeilen) 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 |