Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  SetXrecordData GetXRecordData -> DelXRecordData?

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:  SetXrecordData GetXRecordData -> DelXRecordData? (1660 mal gelesen)
fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 05. Feb. 2007 08:52    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

Hallo,

ich habe überlegt, die Frage ins VBA-Forum zu posten, glaube es aber hier besser aufgehoben. Andernfalls bitte verschieben.

Ich kann mit SetXRecordData Daten an ein XRecord schreiben.
Ich kann mit GetXRecordData Daten von einem XRecord lesen.

Doch wie kann ich mit ActiveX/VLisp XRecordData wieder entfernen, OHNE (!!!) das XRecordObject zu löschen?

Im ADN ist nichts dazu zu finden.

VG, Fred

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 05. Feb. 2007 10:07    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 fred_tomke 10 Unities + Antwort hilfreich

dictremove ?
Lies' mal die Hilfe dazu:
Zitat:
By default, removing an entry from a dictionary does not delete it from the database. This must be done with a call to entdel.

...

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!
Mein alter AG sucht 'nen CADMIN

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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 05. Feb. 2007 10: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

Hallo Marc,

ja, das ist genau das was ich nicht will - das XRecord-Object löschen.

Struktur:
MyDic as AdDbDictionary
  +-- MyRec as AcDbXRecord
        +--- dem XRecord mit SetXrecordData Daten zugewiesen

Wenn ich mit dictremove entsprechend der Hilfe
(dictremove(cdr (assoc -1 (dictsearch (namedobjdict) "MyDic"))) "MyRec")
verwende, wird das XRecord-Object gelöscht. Aber das wollte ich doch gar nicht, sondern ich wollte, dass lediglich die eränzenden Daten vom XRecord wieder verschwinden. Das XRecord muss erhalten bleiben.

Vielleicht kann man es mit den EED's erklären: brauche ich die EED's an einer Linie nicht mehr, lösche ich nicht die Linie, sondern nur die EED's der nicht mehr benötigten Applikation.

Hat noch jemand eine Idee?

VG, Fred

------------------
================================================
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 05. Feb. 2007 11: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 Nur für fred_tomke 10 Unities + Antwort hilfreich

Sowas?
(defun DT:XRECORD-REMOVEDATA(XRECORD / DATATYP DATA)
  (and(=(type XRECORD)'vla-object)
      (=(strcase (vla-get-objectname XRECORD))"ACDBXRECORD")       
      (not(vl-catch-all-error-p
            (setq DATATYP(vl-catch-all-apply 'vlax-make-safearray (list vlax-vbInteger '(0 . 0))))
          )
      )   
      (not(vl-catch-all-error-p
            (setq DATA(vl-catch-all-apply    'vlax-make-safearray (list vlax-vbvariant '(0 . 0))))
          )
      )       
      (not(vl-catch-all-error-p                   
            (vl-catch-all-apply
              'vla-SetXRecorddata (list XRECORD DATATYP DATA)
            )
          )
      )
  )
)

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 05. Feb. 2007 11:23    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

Hi CADmium,

das ist nämlich total fies. Die Idee hatte ich auch - weil sie dem Entfernen von EED's ähnlich ist.

Das Problem: er schreibt einen Leerstring ran, damit ist das Array bei GetXRecordData nicht leer.

Naja, dann muss ich das wohl abfangen.

Danke, VG, Fred

------------------
================================================
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 05. Feb. 2007 13:36    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 fred_tomke 10 Unities + Antwort hilfreich

Hi Fred,
kannst Du mir mal erzählen was Du mit leeren XRecords anfangen willst?
Dein EED Vergleich hinkt meiner Meinung nach. Denn die Linie entspricht ja in Deinem Beispiel eher dem ExtensionDictionary als dem XRecord.
Container für XRecords = ExtDict
An das XRecord sind dann die Daten gebunden. Willst Du die Daten nicht haben, entfernst Du das XRecord. Das ExtDict bleibt IMHO aber immer noch am Objekt.

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!
Mein alter AG sucht 'nen CADMIN

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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 05. Feb. 2007 21:01    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

Hallo Marc,

die Linie in meinem Beispiel soll das XRecord-Object sein. Über das Handle des Xrecord-Objectes sind mehrere Zeichnungselemente verbunden, deshalb will ich das XRecord-Object nicht löschen. Ich hatte eben die leise Hoffnung, dass es - vergleichbar zu den EED's - einen Weg gibt, ergänzende XRecordData zu löschen.

Im Übrigen arbeite ich in diesem Fall nicht mit einem XRecord in dem ExtensionDictionary eines Objektes. In diesem Falle geht es um ein Xrecord in einem Dictionary, das einem übergeordneten Dictionary in der DictionariesCollection der Zeichnungsdatei zugeordnet ist.

VG, Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 06. Feb. 2007 10: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 fred_tomke 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fred_tomke:
Im Übrigen arbeite ich in diesem Fall nicht mit einem XRecord in dem ExtensionDictionary eines Objektes

Hi Fred,
das macht keinen Unterschied. Dictionary ist Dictionary. Der ClassType ist in beiden Fällen AcDbDictionary. Die Methode ist prinzipiell immer die gleiche. Guck' Dir die Strukturdaten mal mit dbview an.
Was ich halt nicht verstehe ist was es bei Dir mit den "ergänzenden XrecordData" auf sich hat. Wenn Du das XRecord Object dazu verwendest Zeichnungselemente miteinander zu verbinden, OK. Solange also die Verbindung da sein soll muß auch das XRecord Objekt existieren. Soll die Verbindung verschwinden, ist das XRecord Objekt auch nicht mehr notwendig. Wofür soll das weiter existieren?
Ist auch egal, ist halt Dein Problem. Ich vermute nur, dass in Deiner Umsetzungsidee ein Logikfehler ist (weswegen Du Dir Gedanken um Probleme machst die Du nur aufgrund eines falschen Ansatzes hast).

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!
Mein alter AG sucht 'nen CADMIN

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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 07. Feb. 2007 12:36    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

Ganz verstehen tue ich dich nicht.
Warum soll ich ein Objekt löschen, wenn ich lediglich die zusätzlichen Daten am Objekt löschen will?
Wenn ich ein XRecord erstelle, sind noch keine Xrecord data vorhanden.
Diesen Zustand will ich durch ein Löschen der XRecordData wieder erreichen.

Ist auch egal, ich habe eine andere interessante Lösung gefunden, dies umzusetzen.

VG, Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 07. Feb. 2007 16: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 Nur für fred_tomke 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von fred_tomke:
Diesen Zustand will ich durch ein Löschen der XRecordData wieder erreichen.

Das ist, als wenn Du den ganzen Keller mit leeren Kisten vollstellst nur falls Du mal was aufbewahren willst.
Oder anderes Gleichnis: Du bewahrst doch leere Chipstüten auch nicht auf? Ein XRECORD ist ein Container für Inhalt. Kein Inhalt, kein Sinn für den Container.

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!
Mein alter AG sucht 'nen CADMIN

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

fred_tomke
Mitglied
Applikationsingenieur


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

Beiträge: 156
Registriert: 14.06.2004

Map 2015 x64
Win7 x64
12 GB RAM
ADN
OpenDCL

erstellt am: 07. Feb. 2007 17:07    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

Hm, meine Frau hebt die leeren Schlecker-Kisten auf. Ich glaub, das ist 'n anderes Thema.

VG, Fred

------------------
Fred Tomke
Dipl.-Ing. (FH) Landespflege

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 07. Feb. 2007 17:09    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 fred_tomke 10 Unities + Antwort hilfreich

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