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
Attilio

Beiträge: 150 / 0

ACAD2012 MEP,
ACAD2015 MEP
Revit 2015
Windows 7, 64 bit

Hallo Leute,

hab mal wieder ein kleines Problem :

Wie kann ich Werte aus X-Daten in ein Attribut übernehmen ?
Hab mal ne Beispiel-DWG beigefügt.

Hier soll z.B. der Wert aus dem XDATA-Feld SKN_SHOW_STR - also "UV.1F.006" in das Attribut "STROMKREIS" übernommen werden.

Gibts da schon was Fertiges ? Hab hier im Forum nichts dergleichen gefunden.

Wäre über jeden Tip dankbar !


Gruss Attilio

------------------
Mit freundlichen Grüssen

Attilio Sfragara

joern bosse

Beiträge: 1613 / 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,
auf die schnelle eine Funktion, die den Wert aus dem entsprechenden Datenfeld ausliest:
Code:

(defun XDaten_pit-cup  (/ liste)
  (setq obj (car (entsel)))
  (nth (+ (- (length
              (setq liste
                      (mapcar
                        'cdr
                        (cdr
        (cadr (assoc -3 (entget obj '("pit-cup"))))))))
            (length (member "SKN_SHOW_STR" liste)))
          1)
      liste))


Vielleicht kannst Du damit ja schon was anfangen, der Wert kann dann über Entmod in das entsprechende Attribut übertragen werden, habe jetzt dafür aber keine Zeit mehr.

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

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

Attilio

Beiträge: 150 / 0

ACAD2012 MEP,
ACAD2015 MEP
Revit 2015
Windows 7, 64 bit

Hallo Jörn,


erstmal danke für die schnelle Hilfe !
Wenn ich jetzt noch in meinem LISP für Dummies-Buch etwas weiter wäre, könnte ich mir den Rest wahrscheinlich selbst schreiben... :-)

Da dies aber leider noch nicht der Fall ist, bin ich auch für den zweiten Step - eine Funktion für das Übernehmen der Daten in das Attribut zu schreiben - noch nicht fähig...

Daher meine Bitte :
Wenn es nicht zuviel Aufwand ist, kann mir da noch jemand ne kleine Funktion zum Übernehmen der Daten in die Attribute basteln ???

Wäre echt knorke !

Gruss Attilio

------------------
Mit freundlichen Grüssen

Attilio Sfragara

archtools

Beiträge: 655 / 16

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

Zitat:
Daher meine Bitte :
Wenn es nicht zuviel Aufwand ist, kann mir da noch jemand ne kleine Funktion zum Übernehmen der Daten in die Attribute basteln ???

Falls sich keiner findet, dann würde ich das für Dich erledigen. Aber ich arbeite aus Prinzip nicht umsonst, wäre aber mit einer  Spendenquittung über 50 Euro an Amnesty zufrieden.

joern bosse

Beiträge: 1613 / 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

Attilio

Beiträge: 150 / 0

ACAD2012 MEP,
ACAD2015 MEP
Revit 2015
Windows 7, 64 bit

Hey, vielen Dank Jörn !

Habs noch nicht getestet, aber dass du mir das zusammengeschrieben hast ist schon ein Danke schön wert !

Ja, mit LISP will ich mich seit ca. 7 Jahren beschäftigen, aber ich kriege den Einstieg einfach nicht hin.
Aber ich will versuchen, es dieses Jahr mal in Angriff zu nehmen.
Leider bin ich keiner, der aus einem Buch lernen kann, sonst hätte ich mir das LISP-Kochbuch schon geholt.

Naja, vielleicht mal im Rahmen einer Schulung....

OK, ich meld mich dann wenn ich´s probiert habe !


Gruss Attilio

------------------
Mit freundlichen Grüssen

Attilio Sfragara

Attilio

Beiträge: 150 / 0

ACAD2012 MEP,
ACAD2015 MEP
Revit 2015
Windows 7, 64 bit

Hallo Jörn,

ich habe das LISP mittlerweile getestet !
Es funktioniert wunderbar !!!

Vielen Dank nochmal dafür.

Gruss Attilio

Theodor Schoenwald

Beiträge: 1672 / 0

Hallo  Attilio,

zu: "Naja, vielleicht mal im Rahmen einer Schulung...."

...wenn es bis dorthin nicht vergriffen ist.

Gruß

Theodor

(c)2018 CAD.de