| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Objektkatalog / API ObjectModel (1623 mal gelesen)
|
Colli123 Mitglied Maschinenbau Student
Beiträge: 32 Registriert: 18.10.2014 Inventor 2013 Visual Studio 2010
|
erstellt am: 11. Nov. 2014 18:18 <-- editieren / zitieren --> Unities abgeben:
Hallo Community, mal eine Grundlegende Frage eines VB.Net/Inventor API Anfängers: Wie kann ich alle Methoden eines Objektes herausfinden? Beispielsweise ThisApplication.ActiveDocument.ComponentDefinition.Sketches. Über den Objektkatalog finde ich heraus das ActiveDocument zu Inventor.Application gehört. Welche Methods/Properties ActiveDocument dann hat, Wie z.B. .Skechtes, finde ich nicht im Objektkatalog. Ich vermute weil Sketches zur Inventor API gehört. In der API Help finde ich die Methodes/Properties/Events von Objekten aus dem API ObjectModel Baum allerdings auch nicht. Wo finde ich alle Methoden/Properties/Events von jedem API Objekt? Ohne dieses Wissen kann man doch nur nach den API Help Code Examples arbeiten, weil man garnicht herausfinden kann was alles möglich ist. Ich bin mir sicher das ich da etwas übersehen hab. Danke für jede Hilfe Gruß Colli123 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 11. Nov. 2014 19:54 <-- editieren / zitieren --> Unities abgeben: Nur für Colli123
Hallo ActiveDocument kann je nach Dateityp (Part, Assembly, Drawing usw.) unterschiedlichen Inhalt haben. Daher wirst du für diese Objekte keine Liste der Methoden und Properties finden. Angenommen das ActiveDocument ist ein Part, dann schau dir die Programmierungshilfe zum PartDocument-Object an und du wirst alles gesuchte finden. In der Programmierungshilfe sind meines Wissens alle verfügbaren Objekte, Methoden und Properties aufgeführt. Sketches ist übrigens auch so ein Sammelcontainer. Im Part enthält es Objekte vom Typ PlanarSketches. Und unter PlanarSketches in der Programmierungshilfe findet man alle verfügbaren Objekte, Methoden und Properties dazu.
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Colli123 Mitglied Maschinenbau Student
Beiträge: 32 Registriert: 18.10.2014 Inventor 2013 Visual Studio 2010
|
erstellt am: 11. Nov. 2014 20:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, Danke für deine schnelle Antwort! Sowas hab ich mir schon fast gedacht. Die Zeile "Set oSketches = ThisApplication.ActiveDocument.ComponentDefinition.Sketches" Ist aus der API Hilfe und Sketches ist Laut API Hilfe aber kein Member von ComponentDefinition.(Dafür aber von z.b. PartComponentDefinition) Die Zeile hat mich zu der Annahme geführt das in der API Hilfe nicht alle Objekte/Methoden aufgelistet sind. Ist der Beispiel Code hier veraltet oder verstehe ich ihn falsch? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 11. Nov. 2014 20:56 <-- editieren / zitieren --> Unities abgeben: Nur für Colli123
Hallo Nein, der Code ist korrekt so. So wie ActiveDocument vom Typ PartDocument, AssemblyDocument, DrawingDocument sein kann, kann ComponentDefinition vom Typ PartComponentDefinition, AssemblyComponentDefinition oder bei Drawings gar nicht vorhanden sein. Diese allgemeinen Objekte erlauben durch die Objektstruktur der API zu gehen, ohne zwischendrin auf Typdeklarationskonflikte zu treffen. Das Objekt PlanarSketch ist vielleicht ein gutes Beispiel. Du kannst über ThisApplicaiotn.ActiveDocument.ComponentDefinition.Sketches.Item(1) sowohl auf die Skizze:1 eines Parts, als auch auf Skizze:1 einer Baugruppe zugreifen. Gäbe es diese allgemeinen Objekt nicht, müßtest du beide Wege einzeln im Code beschreiben. Also im Prinzip so: ThisApplication.ActivePartDocument.PartComponentDefinition.PlanarSketches.Item(1) bzw. ThisApplication.ActiveAssemblyDocument.AssemblyComponentDefinition.PlanarSketches.Item(1) Das ist ein fiktives Beispiel, der Code funktioniert so nicht und dient nur der Verdeutlichung. Denkt man sich jetzt noch die erforderlichen Prüfungen und Fallunterscheidungen dazu, merkt man schnell um wieviel aufwändiger dieser primitive Zugriff auf eine Skizze wäre. Ich hoffe das hat jetzt nicht noch mehr verwirrt.
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Colli123 Mitglied Maschinenbau Student
Beiträge: 32 Registriert: 18.10.2014 Inventor 2013 Visual Studio 2010
|
erstellt am: 11. Nov. 2014 21:09 <-- editieren / zitieren --> Unities abgeben:
|