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
nebuCADnezzar

Beiträge: 211 / 7

AutoCAD 2019
Mechanical 2019
Inventor 2019
64 bit Win 7
Intel Xeon 3.6 GHz 4 Kern
16 GB Ram
NVIDIA Quadro K2000

Hallo cadffm

So ich hab nun Dein Vorschlag zum laufen gebracht, den Block muss ich nicht als dynamisch haben, "attlesen" gibt auch den richtigen Wert zurück, nur das ichs nicht hinbekomme "attlesen" an "name" zu übergeben, bzw. "name" im "command" nicht als Wert verarbeitet wird sondern nur name...
(ich bin mir ziemlich sicher dass das ne absolut einfache Grundlagenübung wäre      ich hab auch die Theorie dass es was mit den Klammern nach defun() zu tun hat, aber alle bisher nach Zufall getesteten Varianten funktionierten auch nicht)

Code:
(DEFUN C:attlesen( / ATTWERT_LISTE AWS N)
  (if (setq aws (ssget "X" (list '(0 . "INSERT"))))
    (progn
      (setq n 0)
      (repeat (sslength aws)
        (if (=(vla-get-EffectiveName(vlax-ename->vla-object (ssname aws n)))"Plankopf_Arbonia")
          (setq AttWert_liste (cons (Test2:AttListe (ssname aws n))AttWert_liste)))
        (setq n (+ n 1))))
    (alert "Keine Blöcke vorhanden."))
  AttWert_liste)
     
(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 "05_DNR")))
(setq AttWert (cdr(assoc 1 (entget obj)))))))
  AttWert)

(defun c:speichernAFG ()
  (setvar "FILEDIA" 0)
  (setq name (C:attlesen))
  (command "_SAVEAS" "2018" name)
  (setvar "FILEDIA" 1)
)     


------------------
"Wissenschaft ist entweder Physik oder Briefmarkensammeln"

Ernest Rutherford 1871-1937