Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Platzhalter in Attributen

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:  Platzhalter in Attributen (1043 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: 38
Registriert: 10.10.2011

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: 1968
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: 38
Registriert: 10.10.2011

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 | 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