Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  VB.net - iProperties auslesen

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:  VB.net - iProperties auslesen (2285 mal gelesen)
iUser
Mitglied



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

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 26. Nov. 2013 13:19    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,

versuche mich gerade in VB.net/INV.

Habe in den iProperties folgenden benutzerdefinierten Text

Name: TEST
Typ: TEXT
WERT: 123456

Wie bekomme ich mit VB.net den WERT in eine Variable?

Habe hier schon geblättert, aber leider nichts passendes gefunden, oder
vielleicht auch übersehen. 

danke

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 26. Nov. 2013 16:28    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 iUser 10 Unities + Antwort hilfreich

Hallo

Indem du eine Variable vom Typ String erstellst und dieser deiniProperty.Value zuweist.

Code:
Private Sub iProp()

Dim sValue as String
Dim iProp As Property

For Each iProp In myInvApp.ActiveDocument.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
    If iProp.Name = "TEST" Then
        sValue = iProp.Value
    End If
Next

End Sub


------------------
MfG
Ralf

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

iUser
Mitglied



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

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 26. Nov. 2013 22:18    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

Danke- Habs aber wohl noch nicht verstanden.....

Bin gerade auch erst beim einlesen in VB.net, und bei den
ersten kleinen Übungen.

Dieser Code will zumindest nicht laufen....aller Anfang ist schwer.

Schönen Gruss

Code:

Public Class Form1
Dim myInvApp As Inventor.Application
Dim oDoc As Inventor.PartDocument

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
iProp()
End Sub
Private Sub iProp()

Dim sValue As String

Dim iProp As Property

For Each iProp() In myInvApp.ActiveDocument.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
If iProp.Name = "TEST" Then
sValue = iProp.Value
lbl_test.Text = sValue
End If
Next

End Sub
End Class


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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 26. Nov. 2013 23:19    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 iUser 10 Unities + Antwort hilfreich

Hallo

Du deklarierst zwar myInvApp als Variable, weist ihr aber keinen Wert zu. Es gibt eine brauchbare Funktion über die du das erledigen kannst.

Code:
Public Class Form1
Dim myInvApp As Inventor.Application
Dim oDoc As Inventor.PartDocument

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
iProp()
End Sub

Private Sub iProp()

Dim sValue As String
Dim iProp As Property

If InventorLoad(myInvApp) Is Nothing Then
    Exit Sub
End If

For Each iProp() In myInvApp.ActiveDocument.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
If iProp.Name = "TEST" Then
sValue = iProp.Value
lbl_test.Text = sValue
End If
Next

End Sub


Private Function InventorLoad(ByRef myInventor As Inventor.Application) As Inventor.Application

        Try
            ' Try to get an active instance of Inventor
            Try
                myInvApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Inventor.Application")
            Catch ex As Exception
            End Try

            'Return Nothing

            ' If not active, create a new Inventor session
            If myInvApp Is Nothing Then
                Dim inventorAppType As Type = System.Type.GetTypeFromProgID("Inventor.Application")
                myInvApp = System.Activator.CreateInstance(inventorAppType)
            End If

            myInvApp.Visible = True
            myInvApp.SilentOperation = True

            ' Inventor läuft und wir sind verbunden
            Return myInvApp


        Catch ex As Exception
            Return Nothing
        End Try
    End Function
End Class



Für den Zugriff auf iProperties reicht aber der kleinere, schnellere ApprenticeServer:

Code:
Public Class Form1
Dim myInvApp As New Inventor.ApprenticeServerComponent 'Inventor.Application
Dim oDoc As Inventor.PartDocument

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
iProp()
End Sub

Private Sub iProp()

Dim sValue As String
Dim iProp As Property

If InventorLoad(myInvApp) Is Nothing Then
    Exit Sub
End If

For Each iProp() In myInvApp.ActiveDocument.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
If iProp.Name = "TEST" Then
sValue = iProp.Value
lbl_test.Text = sValue
End If
Next

End Sub

End Class



------------------
MfG
Ralf

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

iUser
Mitglied



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

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 27. Nov. 2013 08:06    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


vb.PNG

 
Dank dir, mir ist aber immer noch nicht klar, warum er hier meckert.

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 27. Nov. 2013 10:56    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 iUser 10 Unities + Antwort hilfreich

Moin

Code:
Dim iProp as Inventor.Property

Die Deklaration als Property ist nicht eindeutig. Auch Dateien im Windows Explorer haben Properties, die aber nix mit Invertor iProps zu tun haben.

Die Funktion InventorLoad meckert er an, weil du sie nicht im Code mit drin hast. Logisch oder. Bei Nutzung des ApprenticeServers solltest du die drei Zeilen entfernen.

Der dritte Fehler ist ein Folgefehler der fehlgeschlagenen Deklaration von iProp als Property. Ist die Variable iProp nicht deklariert, kann sie auch nicht genutzt werden. Da ist .Net (zum Glück) pingeliger als VBA.

------------------
MfG
Ralf

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

iUser
Mitglied



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

Beiträge: 38
Registriert: 26.11.2013

Inv2k13

erstellt am: 29. Nov. 2013 10:02    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


2013-11-29_100022.jpg

 
danke,irgendwie habe ich den dreh noch nicht...... 

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 02. Dez. 2013 16:14    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 iUser 10 Unities + Antwort hilfreich

Hallo

Du hast zwar eine Inventor Apprenticeserverinstanz erzeugt, aber ich sehe nirgends das du auch ein Dokument öffnest. Somit kann der Zugriff auf ActiveDocument nur schief gehen. Aus'n Kopf, daher könnten Fehler drin sein:

Code:

Public Class Form1
Dim myInvApp As New Inventor.ApprenticeServerComponent 'Inventor.Application
'Dim oDoc As Inventor.PartDocument

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
iProp()
End Sub

Private Sub iProp()

Dim sValue As String
Dim iProp As Property

Dim sFile as String
sFile = "vollständiger_Pfad_zu_deiner_Datei"

Dim oApprDoc As Inventor.ApprenticeServerDocument
oApprDoc = myInvApp.Open(sFile)

For Each iProp() In oApprDoc.PropertySets.Item("{D5CDD505-2E9C-101B-9397-08002B2CF9AE}")
If iProp.Name = "TEST" Then
sValue = iProp.Value
lbl_test.Text = sValue
End If
Next

oApprDoc.Close

End Sub

End Class


------------------
MfG
Ralf

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