| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Koordinaten aus eingebetteter Excel-Tabelle abrufen (2346 mal gelesen)
|
mattesa88 Mitglied
Beiträge: 17 Registriert: 17.05.2011
|
erstellt am: 21. Jun. 2011 14:01 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich hoffe ihr könnte mir weiterhelfen. Ich möchte über ein Makro sehr viele Gleiche Unterbaugruppen in eine Baugruppe einfügen und die Koordinaten dafür aus einer eingebetteten Excel-Tabelle beziehen. Wie ich die Baugruppen platziere konnte ich mit Hilfe von Forum und Programmierhilfe schon herausfinden, jetzt stecke ich allerdings beim "Herausziehen" der Daten fest, da ich ja keinen Pfad für die Tabelle angeben kann (oder doch?). Ich hoffe der ein oder andere fühlt sich in der Lage mir (noch sehr unerfahrenem) VBA-Programmierer unter die Arme zu greifen. Schonmal vielen Dank dafür! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 21. Jun. 2011 14:33 <-- editieren / zitieren --> Unities abgeben: Nur für mattesa88
|
mattesa88 Mitglied
Beiträge: 17 Registriert: 17.05.2011
|
erstellt am: 21. Jun. 2011 16:08 <-- editieren / zitieren --> Unities abgeben:
Naja, ich habe schon Beispiele gesehen, wo auf eine Excel-Tabelle zugegriffen wurde, aber wenn ich sie nicht verlinkt, sondern eingebettet habe, dann ist sie ja nur in der Baugruppendatei gespeichert (soweit ich das verstanden habe). Aus diesem Grund habe ich sie auch eingebettet, da ich gedacht habe, dass wenn ich mein komplettes Projekt meinem Betreuer gebe es dann nicht mehr funktioniert, weil der Pfad evtl. ein anderer ist. Bin ich etwa total auf dem Holzweg? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 21. Jun. 2011 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für mattesa88
|
mattesa88 Mitglied
Beiträge: 17 Registriert: 17.05.2011
|
erstellt am: 22. Jun. 2011 11:35 <-- editieren / zitieren --> Unities abgeben:
Hier habe ich jetzt mal meinen Code (möglicherweise voller Fehler) den ich mir größtenteils aus Programmierhilfe und Forum zusammengebastelt habe. Das Problem das jetzt aufgetreten ist, wenn ich das Makro starte ist, dass das Programm den Excel-Befehl Cells() nicht kennt. Ich habe hier im Forum schon gelesen, dass mein die Excel-Bibliothek importieren muss - wie geht das in Inventor 11? Oder liegt es an etwas anderem? Schonmal danke für jede Hilfe, Andreas CODE: Public Sub AddFuelPins() Dim oAsmDoc As Inventor.AssemblyDocument 'Zugreifen auf das aktive Dokument. Set oAsmDoc = ThisApplication.ActiveDocument 'Referenz auf die Baugruppendefinition setzen. Dim oAsmCompDef As AssemblyComponentDefinition Set oAsmCompDef = ThisApplication.ActiveDocument.ComponentDefinition 'Referenz auf das vorübergehende Geometrieobjekt setzen. Dim oTG As TransientGeometry Set oTG = ThisApplication.TransientGeometry 'Matrix erstellen. Dim oMatrix As Matrix Set oMatrix = oTG.CreateMatrix 'Variablen für die Koordinaten festlegen. Dim dblX As Double Dim dblZ As Double 'Zugreifen auf die Parametersammlung. Dim oParams As Parameters Set oParams = oAsmDoc.ComponentDefinition.Parameters 'Zugriff auf Parameter in der verlinkten Datei. Dim oParamTableFiles As ParameterTables Set oParamTableFiles = oParams.ParameterTables 'Durch die Sammlung verlinkter Dateien gehen. Dim oParamTableFile As ParameterTable For Each oParamTableFile In oParamTableFiles 'Einholen der Parametersammlung aus der Datei. Dim oTableParams As TableParameters Set oTableParams = oParamTableFile.TableParameters Dim iRow As Integer For iRow = 7 To 123 dblX = Cells(iRow, 3) dblZ = Cells(iRow, 4) 'Translation der Matrix festlegen so dass die Matrix bei (dblX,0,dblZ) positioniert wird. Call oMatrix.SetTranslation(oTG.CreateVector(dblX, 0, dblZ)) 'Baugruppe hinzufügen. Dim oOcc As ComponentOccurrence Set oOcc = oAsmCompDef.Occurrences.Add("C:\Users\Mattes\Documents\Inventor\Phénix\FUEL_PIN.iam", oMatrix) Next iRow Next End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mattesa88 Mitglied
Beiträge: 17 Registriert: 17.05.2011
|
erstellt am: 22. Jun. 2011 12:17 <-- editieren / zitieren --> Unities abgeben:
Also das erste Problem ist gelöst, das Programm scheint den Befehl jetzt zu kennen, allerdings erhalte ich jetzt folgende Fehlermeldung: Run-time error '1004': Method 'Cells' of object '_Global' failed Jemand 'ne Idee? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mattesa88 Mitglied
Beiträge: 17 Registriert: 17.05.2011
|
erstellt am: 22. Jun. 2011 13:34 <-- editieren / zitieren --> Unities abgeben:
|
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 22. Jun. 2011 18:10 <-- editieren / zitieren --> Unities abgeben: Nur für mattesa88
|
mattesa88 Mitglied
Beiträge: 17 Registriert: 17.05.2011
|
erstellt am: 23. Jun. 2011 14:03 <-- editieren / zitieren --> Unities abgeben:
Der Code ist in Inventor-VBA. Aber es hat sich erledigt, das Problem ist behoben. Manchmal ist die Lösung doch so einfach - alles schließen und neu starten und siehe da - es funktioniert Trotzdem vielen Dank für die Unterstützung, ich find's echt super, dass es so hilfsbereite Menschen gibt, ich wäre aufgeschmissen, wenn es nicht so wäre! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |