Hot News:
   

Mit Unterstützung durch:

  Foren auf CAD.de
  Lisp
  Platzhalter in Attributen

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

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
  
PNY startet Upgrade Programm mit einer kostenlosen Garantieverlängerung für NVIDIA RTX PRO Blackwell Grafikkarten, eine Pressemitteilung
Autor Thema:  Platzhalter in Attributen (1123 mal gelesen)
sponk-mg
Mitglied



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

Beiträge: 39
Registriert: 10.10.2011

AutoCAD 2020 Architecture

erstellt am: 08. Dez. 2011 16:19    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

N'Abend,

Folgendes funktioniert, solange die Zeichenkette "VZ 237" gesucht wird.
Suche ich nach allen Zeichenketten "VZ *" ergibt die Suche nil.
Wie komme an an alle "VZ *" ran?
Kann mir hier wcmatch weiterhelfen oder gibt es noch eine einfachere Methode?


(defun attribloe (/ AWS INSERT INDEX ATTDATA)
  (if (setq AWS (ssget "_X" (list '(0 . "INSERT")'(66 . 1))))
    (progn
      (setq INDEX -1)
      (repeat (sslength AWS)
        (setq INSERT(ssname AWS (setq INDEX (1+ INDEX))))
        (setq ATTDATA(entget(entnext INSERT)))
        (while (and(=(cdr(assoc 0 ATTDATA)) "ATTRIB")
  (=(cdr(assoc 1 ATTDATA)) "VZ 237"))             
                  ; Wert "VZ 237" wird bei Verwendung von Platzhalter "VZ *" nicht entfernt
  (entmod(subst(cons 1 "")(assoc 1 ATTDATA )ATTDATA))
          (setq ATTDATA(entget(entnext(cdr(assoc -1 ATTDATA)))))
        )
      ) 
    )
  )
)


Vielen Dank

Martin

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: 2002
Registriert: 05.09.2000

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

erstellt am: 08. Dez. 2011 17: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 sponk-mg 10 Unities + Antwort hilfreich

Zitat:
  (=(cdr(assoc 1 ATTDATA)) "VZ 237"))   

Gleich ist eben Gleich und nicht Teil

verwende stattdessen wcmatch

Ich habe ein Tool auf meiner Seite das Suchtext heißt sieh dir das mal an

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

sponk-mg
Mitglied



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

Beiträge: 39
Registriert: 10.10.2011

AutoCAD 2020 Architecture

erstellt am: 08. Dez. 2011 22:29    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

Besten Dank @ CADWiesel

(defun attribloe (/ AWS INSERT INDEX ATTDATA wc)
  (if (setq AWS (ssget "_X" (list '(0 . "INSERT")'(66 . 1))))
    (progn
      (setq INDEX -1)
      (repeat (sslength AWS)
        (setq INSERT(ssname AWS (setq INDEX (1+ INDEX))))
        (setq ATTDATA(entget(entnext INSERT)))
        (setq wc(cdr(assoc 1 ATTDATA)))
          (while (and(=(cdr(assoc 0 ATTDATA)) "ATTRIB")
            (or
    (wcmatch (cdr(assoc 1 ATTDATA)) "VZ*")
            (wcmatch (cdr(assoc 1 ATTDATA)) "RVZ*")))
          (entmod(subst(cons 1 "")(assoc 1 ATTDATA )ATTDATA))
          (setq ATTDATA(entget(entnext(cdr(assoc -1 ATTDATA)))))
        )
      )
    )
    )
  )

So klappt es wunderbar und ich kann zugleich noch andere Abfragen damit abarbeiten.

Gruß, Martin

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

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

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

(c)2026 CAD.de | Impressum | Datenschutz