| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Objekteigenschaften (1331 mal gelesen)
|
Goofy007 Mitglied Vermessungstechniker
  
 Beiträge: 578 Registriert: 06.11.2004 Map3D 2018 und Civil3D 2018
|
erstellt am: 01. Nov. 2005 17:28 <-- editieren / zitieren --> Unities abgeben:         
Hallo Forum! Ich möchte alle Eigenschaften eines beliebigen Objektes (zB. Linie, Text, ect.) mittels VBA exportieren. Dafür kenne ich nun die Möglichkeit im Objektkatalog nachzuschauen welche Eigenschaften das Objekt hat, und diese dann mittels VBA abzufragen. Da die Eigenschaften für jeden Objekttyp anders sind, muss ich nun für jeden Objekttyp eigenen Code schreiben. Nun frage ich mich, bzw. euch: gibt es eine Möglichkeit alle Eigenschaften zu exportieren ohne zu wissen wie die Namen lauten. Also etwas, was im Pseudecode etwa so aussieht: für alle Eigenschaften dieses Objektes schreibe Eigenschaftenname und Eigenschaftenwert nexte Eigenschaft oder träume ich da, was ich eigentlich vermute, vom warmen Eislutscher? Ich möchte die Frage nur mal klären, bevor ich anfange eine Menge Code zu tippen! mfg Didi
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 02. Nov. 2005 09:09 <-- editieren / zitieren --> Unities abgeben:          Nur für Goofy007
Hallo Didi, mir wäre das hier nicht bekannt, dass man mit "for each Property in Entity.Properties" so was abfragen kann. Einigermassen variable könnte man es so machen: http://ww3.cad.de/foren/ubb/Forum259/HTML/000751.shtml#000004 Dann brauchst du pro Entity nur eine Auflistung der Properties erstellen und diese abarbeiten. Dann stellt sich aber noch die Frage nach dem Sinn. Es sind ja nicht alle EIgenschaften so flac wie "Layer" oder "Color". z.B. Blockreferenz hat Einfügepunkt in 3D, LWPolyline hat x-Stützpunkte in 2D, Ein Block kann Attribute haben. Wenn man das Ganze wie eine Wurst in eine Datei schreibt, kann da eh keiner was mit machen. Eigentlich muss man es doch sowieso in eine Struktur bringen. Ich glaube dann sind die verschiedenen Properties das kleinste Problem. Also: kalter Eislutscher und beim tippen warm werden lassen. Ist doch fast so wie du es willst. Stelli
------------------ Warum lisp'eln wenn's auch anders geht.  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Goofy007 Mitglied Vermessungstechniker
  
 Beiträge: 578 Registriert: 06.11.2004 Map3D 2018 und Civil3D 2018
|
erstellt am: 02. Nov. 2005 19:59 <-- editieren / zitieren --> Unities abgeben:         
|
fuchsi Mitglied Programmierer c#.net Datawarehouse
   
 Beiträge: 1201 Registriert: 14.10.2003 AutoCad Version 2012 deu/enu <P>Windows 7 64bit
|
erstellt am: 09. Nov. 2005 13:02 <-- editieren / zitieren --> Unities abgeben:          Nur für Goofy007
eine auswertbare Auflistung der möglichen Eigenschaften gibts meiner Meinung nach nicht. Du wirst da eher Elementtyp für Elementtyp abarbeiten müssen In etwa so: Sub test()
Dim n1 As AcadEntity For Each n1 In ThisDrawing.ModelSpace debug.print n1.layer Select Case TypeName(n1) Case "IAcadLine" Dim tmpLine As AcadLine Set tmpLine = n1 Debug.Print , tmpLine.StartPoint(0) Debug.Print , tmpLine.StartPoint(1) Debug.Print , tmpLine.StartPoint(2) Debug.Print , tmpLine.EndPoint(0) Debug.Print , tmpLine.EndPoint(1) Debug.Print , tmpLine.EndPoint(2) Case "IAcadCircle" Dim tmpCircle As AcadCircle Set tmpCircle = n1 Debug.Print , tmpCircle.Center(0) Debug.Print , tmpCircle.Center(1) Debug.Print , tmpCircle.Center(2) Debug.Print , tmpCircle.Radius End Select Next End Sub ------------------ Ing. Anton Fuchs WWW.FFZELL.AT.TC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |