Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Problem: neues Dokument in Baugruppe (bestehendes öffnen/aus Vorlage)

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:  Problem: neues Dokument in Baugruppe (bestehendes öffnen/aus Vorlage) (1077 mal gelesen)
C-Hoppen
Mitglied
CAD-Trainer


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

Beiträge: 51
Registriert: 23.10.2006

Inventor 2019-22 Professional
Produkt Design Suite, Factory Design Suite
Win 10
Core i9/9900k @ 5 GHz
32 GB RAM
GeForce RTX 270
---
Sinclair ZX 81 mit 16 KB RAM-Erweiterung und High-Res-Platine für Grafikauflösung 256 x 256 Pixel, Grundig-Kassettenrekorder, S/W-Fernseher ;-)

erstellt am: 11. Jul. 2009 11:52    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 zusammen,

ich will in einer Baugruppe ein neues Bauteil einfügen, entweder ein bestehende öffnen, oder ein neues anlegen aus Vorlage.

Umgebung ist Visual Studio 2008 (VB), als Standalone.exe und Inventor 2010 Prof.

Zunächst muss ich ja Inventor.Application definieren:

Code:

    Public ThisApplication As Inventor.Application
    Public o_Doc As Document
    Public o_AsmDoc As AssemblyDocument
    Public o_CompOccs As ComponentOccurrences
    -----------------------------------------
    ...

      Dim ThisApplication As Inventor.Application = Nothing
        Try
            ThisApplication = System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application")

        Catch ex As Exception
            MsgBox("Inventor muss gestartet und eine Baugruppe geöffnet sein!")
            End

        End Try
...



Dann kann ich problemlos auf das aktive Dokument zugreifen:
Code:

        o_Doc = ThisApplication.ActiveDocument
        Dim i_RefsNum As Integer
        Try
            o_AsmDoc = o_Doc
            o_CompOccs = o_AsmDoc.ComponentDefinition.Occurrences
            i_RefsNum = o_CompOccs.Count
...


Was auch problemlos geht, ist ein Auswahlfilter:
Code:

...
        oInteractEvents = ThisApplication.CommandManager.CreateInteractionEvents
        oInteractEvents.InteractionDisabled = False
        oSelectEvents = oInteractEvents.SelectEvents
        oSelectEvents.AddSelectionFilter(filter)
        oInteractEvents.Start()
...


Wenn ich aber versuche, ein bestehendes Bauteil hinzuzufügen, oder ein neues aus Vorlage, gibts immer einen Fehler, den ich nicht verstehe.
(NullReferenceExeption ... Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt...)
Code:

...
Dim oPartDoc1 As PartDocument
Dim TemplateDoc As String

TemplateDoc = ThisApplication.FileManager.GetTemplateFile(DocumentTypeEnum.kPartDocumentObject)
oPartDoc1 = ThisApplication.Documents.Add(DocumentTypeEnum.kPartDocumentObject, TemplateDoc, True)
...



Gleiche Fehlermeldung, wenn ich Pfade abfragen will:
Code:

        Dim sWorkgroups As String()
        Dim sNames As String()
        Dim ii As Integer
        ThisApplication.FileLocations.Workgroups(ii, sNames, sWorkgroups)


oder bei
Code:

        Dim oTG As TransientGeometry
        oTG = ThisApplication.TransientGeometry


Im VBA funktioniert es, im VB2008 nicht :-(.

Hat irgendwer einen Tipp? Würde mich freuen!

Gruß, Christoph

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: 11. Jul. 2009 12: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 Nur für C-Hoppen 10 Unities + Antwort hilfreich

Hallo,

befindet sich der ganze Code in einer Datei/Klasse? Sieht für mich nach einem Gültigkeitsbereich Problem aus. Wie wenn ThisApplication nicht zugewiesen ist, obwohl du ganz am Anfang sagst, dass die zugewiesen ist. Das bringt mich zur Annahme, dass ThisApplication da einfach Null als Wert hat, weil die sich ausserhalb von dem Gültigkeitsbereich von der oberen ThisApplication befindet. Normalerweise kann man aber in diesem Fall auch nicht kompilieren, zumindest in C# nicht, denn der Compiler erkennt, dass es sich um zwei verschiedene Variablen handelt. VB.NET ist in einigen Sachen tolleranter, was IMHO der Anfang vom Ende ist. Daher, wenn .NET dann C#.   

PS: Benutze mal den Debugger um genau festzustellen wo und was da Null ist.
PPS: Ist das eine x86, x64 oder Any CPU Anwendung?

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

FX64 Software Solutions - Inventor Tools

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

C-Hoppen
Mitglied
CAD-Trainer


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

Beiträge: 51
Registriert: 23.10.2006

erstellt am: 11. Jul. 2009 15: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

Zitat:
Original erstellt von daywa1k3r:
Hallo,

befindet sich der ganze Code in einer Datei/Klasse? Sieht für mich nach einem Gültigkeitsbereich Problem aus...



Danke für's Augen öffnen. Ganz oben in meinem Code steht "Public ThisApplication..."

Das, was fünktioniert (direkt darunter) ist in der Sub xy... und da steht "Dim ThisApplication..." 
Der Code, der nicht funktioniert, steht in einer anderen Sub YZ (im gleichen Modul).   

Schönes WE noch 

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