| |
| 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
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 / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für fred_tomke
|
fred_tomke Mitglied Applikationsingenieur
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 / zitieren --> Unities abgeben:
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
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 05. Feb. 2007 11:11 <-- editieren / zitieren --> Unities abgeben: Nur für fred_tomke
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
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 / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für fred_tomke
|
fred_tomke Mitglied Applikationsingenieur
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 / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für fred_tomke
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
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 / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für fred_tomke
|
fred_tomke Mitglied Applikationsingenieur
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 / zitieren --> Unities abgeben:
|
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
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 / zitieren --> Unities abgeben: Nur für fred_tomke
|