Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Erweiterte Objektdaten.

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:  Erweiterte Objektdaten. (212 mal gelesen)
Smart-88
Mitglied
Rentner

Sehen Sie sich das Profil von Smart-88 an!   Senden Sie eine Private Message an Smart-88  Schreiben Sie einen Gästebucheintrag für Smart-88

Beiträge: 5
Registriert: 04.06.2021

AutoCAD 2014

erstellt am: 08. Jun. 2021 18:11    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

Guten Tag.
Ich bin neu hier und habe ein kleines Problem. Ich möchte an eine Bemassung eine Realzahl als erweiterte Objektdaten anhängen. Dazu habe ich nachstehendes Programm erstellt:

(DEFUN C:Real_an_Bemassung()
  (SETQ VT:Reg_Name "Smart_2021")
    (IF (TBLSEARCH "APPID" VT:Reg_Name)
      (PRINC (STRCAT "\n" VT:Reg_Name " ist bereits registriert."))
    )
    (IF (= (REGAPP VT:Reg_Name) NIL)
      (PRINC (STRCAT "\nKann XDATA für " VT:Reg_Name " nicht registrieren."))
    )
  (SETQ VO:Objekt    (CAR (ENTSEL "\nBemassungsobjekt wählen: "))
        VL:Element  (ENTGET VO:Objekt)
        VR:Mass_Soll (ATOF (CDR (ASSOC  1 VL:Element)))
        VR:Mass_Real      (CDR (ASSOC 42 VL:Element))
        VR:Mass_Diff (- VR:Mass_Soll VR:Mass_Real))
  (SETQ VL:Mass '((-3 ("Smart_2021" (1040 . VR:Mass_Diff))))
        VL:Element (APPEND VL:Element VL:Mass))
  (ENTMOD VL:Element)
  (PRINC)
)

Wenn ich das Programm ausführe erhalte ich folgende Fehlermeldung: »Fehler: Fehlerhafte DXF-Gruppe: (-3 ("Smart_2021" (1040 . VR:MASS_DIFF)))

Kann mir jemand helfen?
Besten Dank im Voraus.
Smart-88

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 20579
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 08. Jun. 2021 18:27    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 Smart-88 10 Unities + Antwort hilfreich

  (SETQ VL:Mass '((-3 ("Smart_2021" (1040 . VR:Mass_Diff))))
        VL:Element (APPEND VL:Element VL:Mass))

Ich vermute du wolltest dort statt VR:Mass_Diff den Wert haben der an VR:Mass_Diff gebunden ist,
dafür darfst du dann aber die Liste nicht quoten '
denn so wird darin nichts evaluiert.
Also erst auswerten, dann zu einer Liste wie benötigt machen.

(SETQ VL:Mass (list(list -3 (list "Smart_2021" (cons 1040 VR:Mass_Diff))))
        VL:Element (APPEND VL:Element VL:Mass))

___


So erhälst du statt
...(50 . 0.0) (100 . "AcDbRotatedDimension") (-3 ("Smart_2021" (1040 . VR:Mass_Diff))))

eine gültige EntityListe wie diese
...(50 . 0.0) (100 . "AcDbRotatedDimension") (-3 ("Smart_2021" (1040 . -98.803))))

War es das?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Smart-88
Mitglied
Rentner

Sehen Sie sich das Profil von Smart-88 an!   Senden Sie eine Private Message an Smart-88  Schreiben Sie einen Gästebucheintrag für Smart-88

Beiträge: 5
Registriert: 04.06.2021

AutoCAD 2014

erstellt am: 09. Jun. 2021 10:43    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

Vielen Dank.
Ich werde es später ausprobieren.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Smart-88
Mitglied
Rentner

Sehen Sie sich das Profil von Smart-88 an!   Senden Sie eine Private Message an Smart-88  Schreiben Sie einen Gästebucheintrag für Smart-88

Beiträge: 5
Registriert: 04.06.2021

AutoCAD 2014

erstellt am: 09. Jun. 2021 19:34    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

Moin.

Erst einmal vielen Dank. Es hat wunderbar geklappt. Keine Fehlermeldung mehr.
Jetzt habe ich versucht diesen Realwert in Schlüssel 1040 auszulesen. Ich bekomme aber immer den Wert NIL zurück.

Dürfte ich nochmal um Hilfe bitten?

Vielen Dank im Voraus.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

cadffm
Moderator
良い精神




Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 20579
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 09. Jun. 2021 20:46    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 Smart-88 10 Unities + Antwort hilfreich

Nicht faul werden,
wenn du Schritt für Schritt vorgehst dann ist dir
1. genau bekannt wo es klemmt und
2. automatisch auch wie es zu korrgieren ist

Mehr wie
ENTGET
CAR/CDR
ggf. ASSOC
wird nicht benötigt.

Code:
(and
(setq EXD (entget VO:Objekt '("Smart_2021")))  ;; => ...)(100 . "AcDbRotatedDimension") (-3 ("Smart_2021" (1040 . -44.4985))))
(assoc -3 EXD)                               
(setq EXD (assoc -3 EXD))                      ;; => (-3 ("Smart_2021" (1040 . -44.4985)))
)

(cdr  EXD) => (("Smart_2021" (1040 . -44.4985)))
(cadr EXD) =>  ("Smart_2021" (1040 . -44.4985))
(cdadr EXD) =>              ((1040 . -44.4985))

(cadadr EXD) =>              (1040 . -44.4985)
(cdr(cadadr EXD)) =>                -44.4985

(assoc 1040 (cdadr EXD))      =>  (1040 . -44.4985)
(cdr(assoc 1040 (cdadr EXD))) =>          -44.4985



Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Smart-88
Mitglied
Rentner

Sehen Sie sich das Profil von Smart-88 an!   Senden Sie eine Private Message an Smart-88  Schreiben Sie einen Gästebucheintrag für Smart-88

Beiträge: 5
Registriert: 04.06.2021

AutoCAD 2014

erstellt am: 09. Jun. 2021 23:10    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

Vielen, vielen Dank.
Das war eine echte Hilfe.
Konnte mich heute irgendwie nicht richtig konzentieren. Deshalb bin ich nicht auf cadadr gekommen.
Sch.. wenn man alt wird.

Werde dich in mein Nachtgebet einschließen... 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Smart-88
Mitglied
Rentner

Sehen Sie sich das Profil von Smart-88 an!   Senden Sie eine Private Message an Smart-88  Schreiben Sie einen Gästebucheintrag für Smart-88

Beiträge: 5
Registriert: 04.06.2021

AutoCAD 2014

erstellt am: 12. Jun. 2021 09:49    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

Moin.

So. Jetzt bin ich auf ein weiteres Problem gestoßen. Wenn ich die Zeichnung gespeichert und geschlossen habe, ist der Schlüssel -3 wieder verschwunden. Ich habe dem Programm noch die Zeile »(ENTUPD VO:Objekt)« hinzugefügt. Aber das hat auch nichts gebracht.

Danke im Voraus.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

archtools
Mitglied



Sehen Sie sich das Profil von archtools an!   Senden Sie eine Private Message an archtools  Schreiben Sie einen Gästebucheintrag für archtools

Beiträge: 732
Registriert: 09.10.2004

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

erstellt am: 12. Jun. 2021 11:02    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 Smart-88 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Smart-88:
Wenn ich die Zeichnung gespeichert und geschlossen habe, ist der Schlüssel -3 wieder verschwunden.

Xdata verschwinden nicht von alleine. Verstehe ich das richtig, dass Du an ein Entity Xdata anhängst, die DWG dann sicherst und schließt, und dass nach dem Wiederöffnen der DWG die Xdata an dem Entity verschwunden sind? Das kann nicht sein.

Ich würde Dir als allererstes empfehlen, Dir ein paar grundlegende Funktionen zum Umgang mit Xdata zu schreiben. Also beispielsweise solche Aufrufe zu ermöglichen:

(xdata-put <ename> <key> <data> )
und analog
(xdata-get <ename> <key> )

Damit bist Du den ganzen aufwendigen Kram mit der Verschlüsselung über verschiedene DXF-Gruppencodes ein für allemal los, und hast sogar die Möglichkeit, beispielsweise auch Symbole, beliebige Listen, und damit sogar ganze Lisp-Funktionen als Xdata zu sichern.

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)2021 CAD.de | Impressum | Datenschutz