Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Problem mit FileLocations-Objekt

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
Autor Thema:   Problem mit FileLocations-Objekt (707 mal gelesen)
Manfred Zirk
Mitglied



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

Beiträge: 509
Registriert: 01.11.2002

IV2012 WIN 7 x64 SP1

erstellt am: 01. Nov. 2008 16:48    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 Leute,

ich möchte aus dem FileLocations-Objekt die Namen und Pfade der Bibliotheken erhalten.
Leider ruft der Aufruf der Mehode .Libraries bei mir einen Laufzeitfehler hervor.

Code:

Shared Function DocumentStoredInLibary(ByVal oDoc As Inventor.Document) As String

            Try
                Dim oFileLocations As Inventor.FileLocations
                Dim asLibariesNames As System.Array = Nothing
                Dim asLibariesPaths As System.Array = Nothing
                Dim numberOfLibraries As Integer = 0

                ' Liste der Bibliotheken ermitteln.
                oFileLocations = My.Application.Inventor.GeneralSettings.oInventor.FileLocations

                ' ##### bis hier ist alles ok, das oFileLocations-Objekt enthält auch Daten
                ' ##### Beim Aufruf von .Libaries kommt dann die Fehlermeldung:
                ' ##### Err.Number = 91 Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt 
                Call oFileLocations.Libraries(numberOfLibraries, asLibariesNames, asLibariesPaths)

            return "test"

            Catch ex As Exception
                MessageBoxCustom.ShowErrorMessage(ex, Nothing)
                Return Nothing

            End Try

        End Function


Das Beispiel in der API-Hilfe ist genauso aufgebaut.
Jedoch musste ich die Arraydeklaration ändern, da bei OPTION STRICT ein Typkonflikt vorliegt.
Auch der Zählerparameter ist in der API als Long angeben, ist aber Integer.

Die Parameter des Subs .Libraries werden byRef übergeben.


Mir ist nicht klar, was an dem Code falsch sein soll.
Vielleicht hat ja jemand eine Tip für mich, was da falsch läuft.

Grüße

Manfred

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570
Laptop: Alienware m17x
Win7, Inventor2012

erstellt am: 01. Nov. 2008 17:31    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 Manfred Zirk 10 Unities + Antwort hilfreich

Hallo Manfred,

laut API sind das String Arrays. Du könntest mal versuchen deine Arrays neu zu instanzieren.

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

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

Manfred Zirk
Mitglied



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

Beiträge: 509
Registriert: 01.11.2002

IV2012 WIN 7 x64 SP1

erstellt am: 09. Nov. 2008 00:33    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 Igor,

Danke für den Hinweis.
Genau daran liegt es.
Die Methode erwartet ein Array mit Datenfeldern vom Typ "String".
Das Array kann man immerhin auf 0 Einträge voreinstellen.

Und so funktioniert es dann:

Code:

Shared Function DocumentStoredInLibary(ByVal oDoc As Inventor.Document) As String

            Try
                Dim oFileLocations As Inventor.FileLocations
                Dim asLibariesNames As System.Array = System.Array.CreateInstance(GetType(String), 0)
                Dim asLibariesPaths As System.Array = System.Array.CreateInstance(GetType(String), 0)
                Dim numberOfLibraries As Integer

                ' Liste der Bibliotheken ermitteln.
                oFileLocations = oDoc.Parent.FileLocations

                Call oFileLocations.Libraries(numberOfLibraries, asLibariesNames, asLibariesPaths)

                Return Nothing

            Catch ex As System.Exception
                MessageBoxes.ShowErrorMessage(ex, Nothing)
                Return Nothing

            End Try

        End Function


Grüße

Manfred

[Diese Nachricht wurde von Manfred Zirk am 09. Nov. 2008 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)2020 CAD.de | Impressum | Datenschutz