Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  XDATA

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:  XDATA (2066 mal gelesen)
Kenny1
Mitglied



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

Beiträge: 77
Registriert: 29.06.2004

erstellt am: 20. Dez. 2005 18:55    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 vor gehabt diverse Informationen an Elementen anzuhängen und diese weiterzuverarbeiten nach bestimmten Vorgaben. Dazu habe ich mir die XDATA ausgeguckt. In einer Testumgebung habe ich jetzt festgestellt,das bei 256 Zeichnungselementen Schluß ist.Ich habe pro Zeichnungselement ein String und ein dotted Pairs angehangen.
Gibt es da noch Möglichkeiten das Problem zu umgehen (z.B. mit Xdsize ?). Wichtig ist dabei, das ich die Informationen ein Objekt zuordnen kann, modifizieren und über die Zeichnung hinweg speichern / laden kann. Das ging alles wunderbar. Allerdings wären 256 Elemente  doch arg limitert.

Gruß Kenny1

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: 20. Dez. 2005 21:14    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 Kenny1 10 Unities + Antwort hilfreich

Für die reinen Daten nimm doch ein Dictionary. Und den Verweis auf das entsprechende Dicionary und den Schlüssel für die Daten du als XDATA an das Objekt.
oder entsprechend implementiert
wie wärs mit XRecords. -> in ActivX : HasExtensionDictionary ,AddXrecord GetXRecorddata, -> Siehe Hilfe
oder guck dir mal den Thread an.

Sorry für die Halbheiten, aber in der Richtung hab ich noch nicht viel gemacht.
------------------
  - 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

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: 823
Registriert: 09.10.2004

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

erstellt am: 22. Dez. 2005 11:08    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 Kenny1 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von CADmium:

Für die reinen Daten nimm doch ein Dictionary. Und den Verweis auf das entsprechende Dicionary und den Schlüssel für die Daten du als XDATA an das Objekt.
oder entsprechend implementiert
wie wärs mit XRecords. -> in ActivX : HasExtensionDictionary ,AddXrecord GetXRecorddata, -> Siehe Hilfe
oder guck dir mal den Thread an.

Sorry für die Halbheiten, aber in der Richtung hab ich noch nicht viel gemacht.


Wenn die Daten zum Element gehören, dann sind entweder XDATA oder XDICTIONARIES die richtige Wahl - Dein Tipp mit den in den XDATA gespeicherten Verweis auf ein DICTIONARY führt nach Kopieren oder Löschen von Elementen zu Fehlern, wenn die Applikation das nicht überwacht und z.B. verwaiste Dictionaries löscht.

Wenn man die Elemente über die angehängten Daten auswählen will, dann kommt man um XDATA nicht herum, andererseits bieten die XDATA eben nur begrenzten Speicherplatz am Objekt.

Trotzdem dürfte der vom OP geschilderte Fehler nicht passieren - es gibt keine Begrenzung der Zahl der Elemente, an die man XDATA anhängen kann. Der Fehler muss im Programmcode des OP stecken.

Tom Berger

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

Kenny1
Mitglied



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

Beiträge: 77
Registriert: 29.06.2004

erstellt am: 27. Dez. 2005 11:08    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,

Was ich mich jetzt anhand der Threads frage ist : Welcher Weg ist der „vernünftigste“ um diese Informationen zu bekommen ? Sind es Xdata, irgendwelche Reactoren , Dictionarys oder etwas im Verbund ?
Vielleicht sollte ich dazu die Umgebungssituation näher beschreiben :
Ich füge Elemente als Gruppe über eine Einfügedialog ein. Diese Elemente können aber auch über copy / reihe etc  in der Zeichnung kopiert oder gelöscht werden. Als Info gebe ich den einzelnen Elementen einen Namen mit. Eine Gruppe besteht aus 2-max. 10,11,12 Elementen. Ich muß von jedem Teil wissen zu welcher Gruppe es gehört. Ebenso muß ich wissen, wie viel und welche Gruppen in der Zeichnung sind. Diese Infos muß ich auch nach dem Laden und speichern einer Zeichnung haben.

Sind da Xdata überhaupt die richtige Wahl ? Ich habe mal ein wenig nachgelesen und den Eindruck, das dies ein alte Technologie ist, die über Jahre nicht weiter ausgebaut wurde und Xrecord als „Nachfolger“ geboren worden ist (?).


Ich habe folgende Fehlermeldung, wenn ich über 256 Elemente mit Xdata gezeichnet habe :
„Fehlerhafter Argumentwert : does not fit in byte : 256 Layer“.
Die Xdata lasse ich mir einmal in eine Liste schreiben ( listenlänge ebenfalls 256 Elemente , obwohl insgesamt über 350 Elemente in der Zeichnung sind) und einmal in eine txt schreiben, wo das gleiche Problem auftritt.
Weiß jemand mit der Fehlermeldung so ad-hoc was anzufangen ?

Gruß Kenny1

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: 823
Registriert: 09.10.2004

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

erstellt am: 27. Dez. 2005 13:39    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 Kenny1 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Kenny1:
[i]Hallo,

Was ich mich jetzt anhand der Threads frage ist : Welcher Weg ist der „vernünftigste“ um diese Informationen zu bekommen ? Sind es Xdata, irgendwelche Reactoren , Dictionarys oder etwas im Verbund ?


Das hängt von Deinen Anforderungen ab.

Zitat:

Sind da Xdata überhaupt die richtige Wahl ? Ich habe mal ein wenig nachgelesen und den Eindruck, das dies ein alte Technologie ist, die über Jahre nicht weiter ausgebaut wurde und Xrecord als „Nachfolger“ geboren worden ist (?).

Die XDATA sind zwar schon deutlich älter und haben mehr Einschränkungen, aber XRecords sind kein Ersatz dafür, denn über diese kannst Du die Objekte nicht SSGET-Filtern.

Zitat:

Ich habe folgende Fehlermeldung, wenn ich über 256 Elemente mit Xdata gezeichnet habe :
„Fehlerhafter Argumentwert : does not fit in byte : 256 Layer“.

Das hat ganz offensichtlich nichts damit zu tun, dass Du schon XDATA an 255 Elemente gehängt hast, sondern damit, dass Du falsche XDATA-Werte verwendest. Hier dürfte wohl der von Dir verwendete DXF-Gruppencode nicht der Richtige sein, denn Du verwendest einen, der nur ein Byte aufnehmen kann, und das kann eben nur die Werte von 0 bis 255 annehmen. Die Speicherung des Werts 256 unter diesem DXF-Gruppencode ergibt also zurecht diese Fehlermeldung

Tom Berger

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

Kenny1
Mitglied



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

Beiträge: 77
Registriert: 29.06.2004

erstellt am: 27. Dez. 2005 14:55    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 Tom,
ich verwende folgenden Xdata - Rumpf :
(-3 ("TEST" (1000 . "Info1")(1000 . "Info2")))

Ich habe 2 Infosätze, die im wesentlichen variable Strings sind.

Ist der GC 1000 falsch ? Welcher GC eignet sich denn dafür ?

Gruß Kenny1

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: 823
Registriert: 09.10.2004

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

erstellt am: 27. Dez. 2005 17:17    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 Kenny1 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Kenny1:
Hallo Tom,
ich verwende folgenden Xdata - Rumpf :
(-3 ("TEST" (1000 . "Info1")(1000 . "Info2")))

Ich habe 2 Infosätze, die im wesentlichen variable Strings sind.

Ist der GC 1000 falsch ? Welcher GC eignet sich denn dafür ?

Gruß Kenny1


Der ist schon der richtige, aber dann ist einer Deiner Strings zu lang.

Tom Berger

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: 28. Dez. 2005 12:29    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 Kenny1 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Kenny1:
Ich füge Elemente als Gruppe über eine Einfügedialog ein. Diese Elemente können aber auch über copy / reihe etc  in der Zeichnung kopiert oder gelöscht werden

Hmm, da sind IMHO XDATA die beste Wahl, wenn absehbar ist das Du nicht über die Datenmengenbegrenzung der XData pro Objekt (16K) kommst.
Da Du Objekte miteinander verketten willst solltest Du Dir den GC 1005
(Database Handle 1005. Handle of an entity in the drawing database -> vgl. Hilfe "Organization of Extended Data") angucken.
Meinen Test nach ist das zumindest in einem Fall ein Garant für Datenkonsistenz: Wenn Du eine über GC 1005 verknüpfte Gruppe als ganzes in eine Zeichnung über Insert / Ursprung importierst. Da werden die Handles in GC 1005 auomatisch neu vergeben! Ob dieser Automatismus auch in Deinen anderen Bearbeitungsfällen zutrifft, wirst Du ja relativ leicht herausfinden können.


------------------
Ciao,
Marc

[Diese Nachricht wurde von marc.scherer am 08. Mrz. 2006 editiert.]

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