Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Auswahlsatz - nach Farbe filtern?

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:  Auswahlsatz - nach Farbe filtern? (1904 mal gelesen)
Schachinger
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2040
Registriert: 08.04.2002

erstellt am: 01. Jul. 2003 18: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

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


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

Beiträge: 295
Registriert: ..

ACAD14 und 2005;
MAP4; GeoCAD; PARIS;
( Vermessung )

erstellt am: 01. Jul. 2003 19:23    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 Schachinger 10 Unities + Antwort hilfreich

Hi, Siegfried

hier noch einige Themen dazu, schau doch mal in die ssx.lsp mit rein. http://ww3.cad.de/foren/ubb/Forum54/HTML/002212.shtml http://ww3.cad.de/foren/ubb/Forum54/HTML/003488.shtml
ergibt
(princ farbe) -> "1"
dann
(setq AUSWAHLSATZ (ssget "X" (list (cons 62 (atoi farbe)))))

ergibt
(princ farbe) -> 1
dann
(setq AUSWAHLSATZ (ssget "X" (list (cons 62 farbe))))

Servus, Mario www.the-skier.de

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

Schachinger
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2040
Registriert: 08.04.2002

erstellt am: 02. Jul. 2003 07:21    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

Thanks!
Ich bin immer wieder fasziniert von diesem Forum! Germany... 10Points from Austria 

------------------
mfg Siegfried Schachinger
http://www.tbschatz.at

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


Ex-Mitglied

erstellt am: 10. Jul. 2003 15:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo Leute,

wie findet ihr Objekte mit der Farbe vonlayer der aber z.B. rot ist?

Jürgen

Brischke
Moderator
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 (d-tools.eu)

erstellt am: 10. Jul. 2003 16:12    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 Schachinger 10 Unities + Antwort hilfreich

Hallo Jürgen,

dann sucht man nicht mehr nach der Farbe, sondern nach den Layern, die alle Rot sind.

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


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

Beiträge: 375
Registriert: 01.02.2001

erstellt am: 10. Jul. 2003 20: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 Nur für Schachinger 10 Unities + Antwort hilfreich

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hallo benwisch,

danke für die Routine werde sie mal ausprobieren und mich melden.

Jürgen

Brischke
Moderator
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 (d-tools.eu)

erstellt am: 11. Jul. 2003 10:45    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 Schachinger 10 Unities + Antwort hilfreich

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


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

Beiträge: 375
Registriert: 01.02.2001

erstellt am: 11. Jul. 2003 13:11    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 Schachinger 10 Unities + Antwort hilfreich

@holger
du tier 
hast mich mit deinem code wieder mal auf neue ideen gebracht
es ist hier definitiv das beste deutschsprachige lisp-forum
..frei nach
hier werden sie geholfen

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 11: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 Schachinger 10 Unities + Antwort hilfreich

Hallo Holger!
Wie kann ich das Super-Ding anwenden, sodass ich genau alle weißen Elemente behalte und alles andere lösche?

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

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

Brischke
Moderator
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 (d-tools.eu)

erstellt am: 21. Jul. 2003 11: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 Schachinger 10 Unities + Antwort hilfreich

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

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