Forum:Lisp
Thema:Atribut Auslesen - Speichern unter
Möchten Sie sich registrieren?
Wer darf antworten? Registrierte Benutzer können Beiträge verfassen.
Hinweise zur Registrierung Sie müssen registriert sein, um Beiträge oder Antworten auf Beiträge schreiben zu können.
Ihr Benutzername:
Ihr Kennwort:   Kennwort vergessen?
Anhang:    Datei(en) anhängen  <?>   Anhänge verwalten  <?>
Grafik für den Beitrag:                                                
                                                       
Ihre Antwort:

Fachbegriff
URL
Email
Fett
Kursiv
Durchgestr.
Liste
*
Bild
Zitat
Code

*HTML ist AUS
*UBB-Code ist AN
Smilies Legende
Netiquette

10 20 40

Optionen Smilies in diesem Beitrag deaktivieren.
Signatur anfügen: die Sie bei den Voreinstellungen angegeben haben.

Wenn Sie bereits registriert sind, aber Ihr Kennwort vergessen haben, klicken Sie bitte hier.

Bitte drücken Sie nicht mehrfach auf "Antwort speichern".

*Ist HTML- und/oder UBB-Code aktiviert, dann können Sie HTML und/oder UBB Code in Ihrem Beitrag verwenden.

T H E M A     A N S E H E N
cadffm

Beiträge: 19669 / 1052

System: F1
und Google

Aber das war doch schon fast fertig? Zumindest wenn ich anstatt dem test2:attliste die andere gepostete nutze,
für dynamische blöcke läuft das auch.

Nicht um eine bestmögliche oder schöne Anpassung zu machen, sondern mit möglichst wenig Änderungen.

Code:

(defun attlesen ( BNAME ATTTAG / ATTWERT_LISTE AWS N)

(defun attlesen:AttListe (obj / AttWert)
  (if (and (entnext obj)(=(cdr(assoc 0(entget (entnext obj)))) "ATTRIB"))
    (while (and(setq obj (entnext obj))
      (/= "SEQEND" (cdr(assoc 0(entget obj)))))
      (if (and(=(cdr(assoc 0(entget obj)))"ATTRIB")
              (=(strcase(cdr(assoc 2(entget obj))))(strcase ATTTAG)))
          (setq AttWert (cdr(assoc 1 (entget obj))))
      )
   )
  )
  AttWert
)
 
  (if (setq aws (ssget "_X" '((0 . "INSERT")(66 . 1))))
    (progn
      (setq n 0)
      (repeat (sslength aws)
        (if (= (strcase(vla-get-EffectiveName(vlax-ename->vla-object (ssname aws n)))) (strcase BNAME))
            (setq AttWert_liste (cons (attlesen:AttListe (ssname aws n)) AttWert_liste))
)
        (setq n (+ n 1))
      )
    )
    (alert "Keine Blöcke vorhanden.")
   )
  AttWert_liste
)
    


(defun c:speichernAFG ()
  (if (/= 1 (length(setq name (attlesen "Plankopf_Arbonia" "05_DNR"))))
      (alert (strcat "ABBRUCH - Gefundene Attribute: " (itoa (length name))))
      (command "_SAVEAS" "2018" (car name)) ; Und wenn es bereits eine Datei gibt und es nicht die aktuelle ist.?
  )
(princ)
)