Forum:Lisp
Thema:XDATA-Wert in Attribut ��bernehmen
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 bearbeiten  <?>
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
joern bosse

Beiträge: 1615 / 6

Window 8.1
ACAD 2005-2018
CIVIL 2010 - 2018
BricsCAD V13-V18
Intel(R) Core(TM)i7-4700HQ CPU @ 2.40GHz 2.40 GHz
16.0GB RAM
NVIDIA GeForce GTX 850M

Hallo Attilio,
na das wär doch ein Grund Dich mit LISP ein wenig mehr zu beschäftigen. Also, hier der Code auf die Schnelle:
Code:

(defun c:XD2Att (/ A ATT_LISTE LISTE OBJ)
  (if(and(setq obj (car (entsel)))
        (setq att_liste (mapcar '(lambda(A)
                    (list(cdr(assoc 2 A))A))(XD2Att:att_liste obj))))
    (progn
      (entmod (subst (cons 1
                          (nth (+ (- (length
                        (setq liste
                                (mapcar
                                  'cdr
                                  (cdr
                                    (cadr (assoc -3 (entget obj '("pit-cup"))))))))
                                      (length (member "SKN_SHOW_STR" liste)))
                                  1)
                                liste))
                    (assoc 1 (cadr(assoc "STROMKREIS" att_liste)))
                    (cadr(assoc "STROMKREIS" att_liste))))
      (entupd obj))))


(defun XD2Att:att_liste (obj / ATT_LISTE)
  (if (and (entnext obj)(=(cdr(assoc 0(entget (entnext obj))))"ATTRIB"))
    (while (and(setq obj (entnext obj))
              (/= "SEQEND" (cdr(assoc 0(entget obj)))))
      (if (=(cdr(assoc 0(entget obj)))"ATTRIB")
        (setq att_liste (cons (entget obj)att_liste)))))
  (reverse att_liste))



Aufrufen mit "XD2Att", und immer schön auf Plausibilität prüfen.

------------------
viele Grüße

Jörn
http://www.bosse-engineering.com

(c)2018 CAD.de