Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  variant type 10 bei Xrecord Data GC 290

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:  variant type 10 bei Xrecord Data GC 290 (1174 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: 17. Nov. 2006 09: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,

der Betreff sagt eigentlich alles, die AutoCAD-Hilfe jedoch nichts (oder ich finde es nicht).

Was will ich tun?
Ich will eigene Layerfilter programmiertechnisch erzeugen und bin beim Auslesen existierender Layerfilter und Gruppen auf einen interessanten Variant-Wert gestoßen.

Wo befinde ich mich?
[ActiveDocument]
  |
  + Layers-Collection-Object
     |
    ExtensionDictionary
      |
      + ACLYDICTIONARY
          |
          + XRecord *A1 (= Layerfilter "Meine Filter")
            |
            ExtensionDictionary
              |
              + ACLYDICTIONARY
                  |
                  + XRecord *A1 (= untergeordneter Layerfilter "Flächenfüllungen")

Von dem untergeordneten Layerfilter der Flächenfüllungen mal die XRecordData abfragen:
(vla-GetXRecordData oRec 'varType 'varValue)
(if (>= (vlax-safearray-get-u-bound varType 1) 0)
  (progn
    (setq lstItem (mapcar 'cons (vlax-safearray->list varType) (mapcar 'vlax-variant-value (vlax-safearray->list varValue))))
  ); progn
); if

varValue ist dabei (#<variant 10 ...> #<variant 8 AcLyLayerFilter> #<variant 3 1> #<variant 8 Flächenfüllungen> #<variant 8 NAME=="bf-*"> )
Beachte den ersten Listenwert. An der gleichen Stelle im Array varTyp befindet sich der Wert 290 für den entsprechenden GC.

Bei der Wandlung (mapcar 'vlax-variant-value (vlax-safearray->list varValue)) krachts mit dem Hinweis: ; Fehler: LispFromPtr failed. The type is not supported: 10
Ich habe bereits versucht, den Typ des ersten Variants zu ändern (z.B. (vlax-variant-change-type x 3)), jedoch ohne Erfolg.

Mit dem Debugger von Autodesk (ArxDbg.arx) erfahre ich, dass sich hinter dem GC 290 eigentlich nur der Wert 1 steht. Was jedoch 290 bei Objekten wie Xrecord bedeutet, kann ich der AutoCAD-Hilfe nicht entnehmen. Bei Layern soll es ja bedeuten, dass ein Layer geplottet werden kann oder nicht. Aber ich bin ja hier nicht bei Layern, sondern bei XRECORDS.

Hat jemand eine Idee?
Besser: Hat mich jemand verstanden?

VG, Fred

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 17. Nov. 2006 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

ich zitier mal aus der Hilfe zu "Grundlagen der Speicherung von Layereinstellungen in AutoCAD "


""..Sie brauchen XRecord-Objekte nicht zu interpretieren (und sollten es auch nicht versuchen), wenn Sie mit Layereinstellungen in ActiveX arbeiten. Verwenden Sie die Funktionen des LayerStateManager-Objekts für den Zugriff auf gespeicherte Layereinstellungen...".

wandel den Xrecord mit (vlax-vla-object->ename ..) in eine GC Liste und mach da weiter..

und für den Aufbau de Xrecords in Extensionsdictionaries sind nur die jeweiligen erzuegenden Applicationen verantwortlich, ebenso für die anschließende Interpretation der enthaltenen Daten ...

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

   

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: 17. Nov. 2006 10:32    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 Herr Brischke,

das Zitat ist richtig und kannte ich - bezieht sich aber auf den LayerStateManager?

Die Filterlisten arbeiten doch gar nicht mit dem LayerStateManager, oder?

VG, Fred

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 17. Nov. 2006 10:44    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:
Hallo Herr Brischke,

das Zitat ist richtig und kannte ich - bezieht sich aber auf den LayerStateManager?

Die Filterlisten arbeiten doch gar nicht mit dem LayerStateManager, oder?

VG, Fred


Richtig, mir gings prinzipiell um XRecords die irgentwie gefüllt worden sind und die Interpretation der entsprechenden Daten.
Xrecords und auch Dictionaries sind Container, die alles mögliche speichern können, weswegen sie bei Applicationsentwicklern auch so beliebt sind.

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.

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: 17. Nov. 2006 10: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 fred_tomke 10 Unities + Antwort hilfreich

Am Rande:
IMHO stand im "AutocadCAD-Objekte" Buch von Dietmar Rudolph der Aufbau der Layerfilter beschrieben.. wenn es mal einer bei der Hand hat und nachguckt ...

------------------
  - 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: 17. Nov. 2006 10:59    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, und da war das Problem: "wenn es mal einer bei der Hand hat".
I hoabs ned!

Danke derweil! Problem ist auch gelöst.

VG, Fred

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: 17. Nov. 2006 11:06    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

Zitat:
Original erstellt von Brischke:
... weswegen sie bei Applicationsentwicklern auch so beliebt sind.


... und ich liebe es auch! Ob es komplette Leistungsverzeichnisse, Layerreihenfolgen oder komplexe Einstellungen mit hierarchischen Strukturen sind - ICH LIEBE ES!

V, 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: 17. Nov. 2006 13:42    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:
Was will ich tun?
Ich will eigene Layerfilter programmiertechnisch erzeugen und bin beim Auslesen existierender Layerfilter und Gruppen auf einen interessanten Variant-Wert gestoßen.

Hi Fred,
das habe ich bereits fertig geproggt und dabei keinerlei Probleme gehabt. Kannst Du mir mal die Fehlerverursachende Datei zukommen lassen? Würd' mich mal interessieren wo das Problem liegt. Dann könnte man Deinen Erklärungen auch sicher besser folgen...
Ist das 'n Layergruppenfilter oder ein Layereigenschaftenfilter der Probleme macht?

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

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: 19. Nov. 2006 05:26    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,

also, von Problemen will ich konkret nicht sprechen. In erster Linie wollte ich wissen, was sich hinter dem Variant-Typ 10 verbirgt - sofern es jemandem bekannt ist.

Das ist leicht zu reproduzieren, wenn man im Layereigenschaften-Manager von AutoCAD einen Layereigenschaftenfilter definiert und unterhalb dessen einen weiteren (also verschachtelt, quasi). Liest man mit den ActiveX-Board-Mitteln die XRecord-Data des untergeordneten Layereigenschaftenfilters aus, gibt es die o.g. Liste (#<variant 10 ...> #<variant 8 AcLyLayerFilter> #<variant 3 1> #<variant 8 Flächenfüllungen> #<variant 8 NAME=="bf-*"> ). Ich wollte nur wissen, was es mit dem Varianttype 10 auf sich hat. Also nur mein Wissen erweitern.

Richtig ist, dass ich mit der Wandlung zum ENAME die Lisp-Werte kriege (siehe Antwort von Herrn Brischke). Ich habe festgestellt, dass es nichts ausmacht, wenn man beim manuellen (programmiertechnischen) Erzeugen von Layereigenschaftenfiltern den GC 290 einfach weglässt.

Es besteht kein konkreter Handlungsbedarf. Hätte nur sein können, dass der Varianttype etwas bestimmtes ist.

VG, Fred

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