Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  PRO E/ VB.NET Verbindung

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 Creo
Autor Thema:  PRO E/ VB.NET Verbindung (2346 mal gelesen)
vladi182
Mitglied
Konstrukteur - CAD-Administrator


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

Beiträge: 46
Registriert: 22.03.2013

Creo/Elements/Pro M070
Workstation HP Z400
Win7 64
MDESIGN 2010
Office 2003

erstellt am: 24. Sep. 2013 19:01    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


1.png

 
Hallo Leute ich hoffe ihr könnt mir bei meinem Problem helfen

Habe eine WinForm erstellt und ein kleines Quellcode für die Pro E Verbindung geschrieben jetzt möchte ich gerne eine Abfrage die den Verbindung Status kontrolliert falls die Verbindung nicht besteht soll ich Fenster erscheinen mit dem Kommentar "Konnte keine Verbindung aufgebauet werden"

Hier mein Kunstwerk:

Code:

'========================================
        Dim cAC As CCpfcAsyncConnection
        Dim asyncConnection As IpfcAsyncConnection = Nothing

        cAC = New CCpfcAsyncConnection()
        asyncConnection = cAC.Connect(Nothing, Nothing, Nothing, Nothing)

        Dim session As IpfcBaseSession
        session = session.CurrentModel()

        '========================================
        'Fehler falls keine Verbindung aufgebaut ist
        '========================================

        Try
            If cAC Is Nothing Then
                Throw New Exception("Konnte keine Verbindung aufgebaut werden")
            End If

            asyncConnection.Disconnect(2)

        Catch ex As Exception
            MsgBox(ex.Message.ToString + Chr(13) + ex.StackTrace.ToString)

        End Try
    End Sub


Bekomme folgende Fehlermeldung (Siehe Bild)

Was mache ich falsch?

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

NicoFTB
Mitglied
Ingenieur Entwicklung/Konstuktion


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

Beiträge: 806
Registriert: 08.05.2012

erstellt am: 25. Sep. 2013 08:57    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 vladi182 10 Unities + Antwort hilfreich

Kurz: Nutze das Beispiel welches ich dir letzte Woche gezeigt habe.

Lang:

Code:
Option Explicit On
Option Strict On

Sollten immer oben stehen. Damit lassen sich schon viele Fehler beseitigen.

In deinem konkreten Fall asyncConnection = cAC.Connect(DBNull.Value, DBNull.Value, DBNull.Value, DBNull.Value)

Zudem ist session.CurrentModel() ein Object von IpfcModel und nicht IpfcBaseSession. Daher nochmal: Setze die Optionen die ich oben genannt habe in jeden Quelltext oben ein.

------------------
Grüße
Nico \o/

Üs - ProE-Beziehungen

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

vladi182
Mitglied
Konstrukteur - CAD-Administrator


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

Beiträge: 46
Registriert: 22.03.2013

Creo/Elements/Pro M070
Workstation HP Z400
Win7 64
MDESIGN 2010
Office 2003

erstellt am: 25. Sep. 2013 10:04    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


2.jpg

 
Guten Morgen Nico,

erstmal vielen Dank für den Tipp!

Dein Quelcode ist eingepflegt soweit sogut, allerdings bin ich mir mit der Globalen Anweisung nicht ganz vertraut Option Explicit On / Option Strict On

Ich dachte das diese Anweisung innerhalb einer Operation vergeben wird oder bin ich auf den falschen Dampfer? :-)

Gruß

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

NicoFTB
Mitglied
Ingenieur Entwicklung/Konstuktion


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

Beiträge: 806
Registriert: 08.05.2012

erstellt am: 25. Sep. 2013 10:21    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 vladi182 10 Unities + Antwort hilfreich

Diese Optionen helfen nur dabei richtig zu programmieren und zeigen einem frühzeitig Fehler in der Syntax. Und einfach nur copy und paste hilft dir auch nicht. Ich habe dir Funktionen gegeben die aufgerufen werden können in deinem Button.

Wenn du die Funktion starten() mal aus deinem Button rauskopierst sollte das in etwa so aussehen und auch funktionieren.

Code:
Privat Sub button...
Quelltext
...
starten()
...
Try ...
  If...
  End if...
  beenden()
Catch
End Try
End Sub

Public Function starten()
Quelltext
End Function

Public Function beenden()
Quelltext
End Function



So, mehr Hilfe gibt es erst mal nicht mehr. Den Rest bitte einlesen.
Und hier im Forum wird es gerne gesehen wenn man Unities abgibt, wenn einem geholfen wird.

------------------
Grüße
Nico \o/

Üs - ProE-Beziehungen

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

vladi182
Mitglied
Konstrukteur - CAD-Administrator


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

Beiträge: 46
Registriert: 22.03.2013

Creo/Elements/Pro M070
Workstation HP Z400
Win7 64
MDESIGN 2010
Office 2003

erstellt am: 25. Sep. 2013 12:16    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 Nico,

vielen Dank nochmal für deine Unterstützung, ich bin sehr froh das du, mir hierbei hilfst.

Ich hoffe du denkst nicht das ich mir alles häppchenweise serviert bekommen möchte. Im Gegenteil was bringt mir es wenn jemand für mich macht und ich nur Copy/Paste betreibe es ist nicht der Sinn der Sache ich möchte die Materie komplett selber verstehen.

Du glaubst nicht wie viele Bücher /Youtube Videos usw... ich über dieses Komplexe Thema gewälzt hab. Das Problem hierbei ist das ich in der IpfC-Bibliothek alle Anweisungen nachlesen kann aber die Kombination von den Anweisungen nicht ganz verstehe.

Ich hab nur die eine Info-Quelle "VB API User's Guide 5.0" auf Englisch.
Du hast mir mal den Link zur Galileo Buch geschikt das Beispiel habe ich bearbeitet allerdings passen die Befehle nicht ganz zur PTC Anwendung, egal ich habe viel über die MsgBox gelernt :-)

Wie bist du eigentlich vorgegangen einfach die VB API User Guide genommen und ausprobiert oder hast du in deinem Unternehmen Programmierer die sich mit sowas beschäftigen?

Ich bin mit dem Wissen VBA-Excel hier eingestiegen und kenne mich nur hier aus, So bin ich immer vorgegangen:

Variabeln anlegen überlegen ob es String=Text, Boolean=Wahr oder Falsch, Integer= Zahl,(hierbei werden die Variabeln Global angelegt) sein soll. Im weiteren mit welcher Tabelle wird gearbeitet folgend mit den Anweisungen.

Bei VB API-ProE fehlen mir letztendlich ein paar Praktische Beispiele.

PS: Ich hoffe du verstehst mich.

Gruß

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

NicoFTB
Mitglied
Ingenieur Entwicklung/Konstuktion


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

Beiträge: 806
Registriert: 08.05.2012

erstellt am: 25. Sep. 2013 12:44    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 vladi182 10 Unities + Antwort hilfreich

Der Link von dem Buch soll auch erst mal nur helfen überhaupt zu verstehen wie die Programmierung mit VB.NET funktioniert. Dort wird auch gezeigt wie mit Klassen umgegangen wird. Und ob diese Klasse nun pfcModel heißt oder Eis sollte zum ersten lernen nicht relevant sein aber beim Verständnis helfen. In der HTML-Datei sind die Funktionen und Klassen sehr schön aufgelistet und dessen Abhängigkeiten durch Vererbung abgebildet.
Also groben Ablauf bei Creo/Proe:

Deine Verbindung erstellen. Danach bekommst du über die Verbindung eine Session. Über diese Session kannst du dann entweder dein aktuelles Model (CurrenModel) im Fenster oder alle Modelle die in der Sitzung sind (Models) darauf zugreifen. Ein einzelnes Modell gehört zu IpfcModel. Mehrere Modelle zu IpfcModels. Hier kann man dann theoretisch auch auf einzelne Features, Parameter oder Beziehungen zugreifen.

Letzendlich habe ich mir das alles selber beigebracht und viel probiert und auch selbst getestet. Häufig waren es nur kleine Fehler warum ein Programm nicht funkionierte. Da hilft dann nur viel testen und lesen der Dokumentation die zwar nicht immer selbsterklärend ist, aber sehr umfangreich.

Hier ist mal ein Beispiel in VBScript geschrieben. Dieses unterscheidet sich in VB.NET mit der Erzeugung von Klassen erheblich. Ich habe hier keine Möglichkeit das in VB.Net zu programmieren. Speichere den Code in einer Datei und nenne diese code.vbs. Jetzt öffnest du deine Eingabeaufforderung (CMD) und führst das Script mit "cscript code.vbs" aus. Vergiss nicht das ProE offen sein muss und ggf. auch ein paar Teile in der Sitzung geladen sind.

Das Script zeigt alle Modelle und deren Parameternamen an.

Code:
Dim asynconn
Dim conn
Dim session
On Error Resume Next
Err.Clear

Set asynconn = CreateObject("pfcls.pfcAsyncConnection")
Set conn = asynconn.Connect("", "", ".", 5)
Set session = conn.session

Dim model
Dim models

Set models = CreateObject("pfcls.pfcModels")

Set models = session.ListModels 'Alle Modelle in Sitzung

For Each model in models 'Jedes einzelne Model in Models
WScript.Echo "Dateiname: " & model.FileName 'Zeige den Dateinamen

Dim paraOwner
Dim parameters

Set paraOwner = model
Set parameters = paraOwner.ListParams 'Liste der Parameter im Model (nicht Models)

For Each parameter In parameters 'Jeder Parameter in Parameters
WScript.Echo parameter.Name 'Schreibe den Namen vom Parameter
Next

Next

Wscript.Echo "Modelle in der Sitzung: " & models.Count 'Hier zählt er die Modelle auf die in der Sitzung sind

'Errorhandler in VBScript (nicht schön, geht hier nicht anders)
if Err.Number <> 0 Then
WScript.Echo Err.Number
WScript.Echo Err.Source
WScript.Echo Err.Description
Err.Clear
End if
On Error Goto 0

conn.Disconnect(2)


Ach ja, durch die Optionen Strict und Explicit werden sicherlich viele Fehler auftauchen und du kannst deinen Code den du mit Visual Studio erzeugt nicht ausführen. Schaue dir die Fehler genau an und lese dir die Fehlermeldungen durch. Ggf. hilft dir bei den Fehlern dann auch google. Es ist nicht immer die VB-API die einem nen Strich durch die Rechnung macht.

------------------
Grüße
Nico \o/

Üs - ProE-Beziehungen

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

vladi182
Mitglied
Konstrukteur - CAD-Administrator


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

Beiträge: 46
Registriert: 22.03.2013

Creo/Elements/Pro M070
Workstation HP Z400
Win7 64
MDESIGN 2010
Office 2003

erstellt am: 25. Sep. 2013 13:16    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


3.jpg


4.jpg


5.jpg

 
Alles klar Nico,

danke erstmal für dein Bespiel. Ich werde heute Abend mich damit befassen auf der Arbeit darf ich es leider nicht (noch nicht).

Noch eine Frage zur deinem Quellcode:

1. Ist er in VBA geschrieben oder in VB/ VB.NET?
2. Die Fehlerdiagnostik ist in VB.NET ist nicht so schön wie in VBA(z.B. MsgBox...) die finde ich persönlich besser bzw ich kann die nicht in VB.NET anwenden?

Im Weiteren du hast du HTML-Datei erwähnt bzw. Die Dokumentation das Problem bei mir ist ich kriege diese leider nicht geöffnet.

Bekomme permanent diese Fehlermeldung siehe Bild.3

Diesbezüglich habe ich mich auf die Fehlersuche begeben alle Sicherheitseinstellungen die ich machen konnte wurden auf minimum gesetzt (Neustart erforderlich) Java ist installiert Siehe Bild.4/5

Ich weis nicht was ich noch umstellen muss?

Gruß

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

NicoFTB
Mitglied
Ingenieur Entwicklung/Konstuktion


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

Beiträge: 806
Registriert: 08.05.2012

erstellt am: 26. Sep. 2013 09:39    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 vladi182 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von NicoFTB:
Hier ist mal ein Beispiel in VBScript geschrieben.

Wenn du etwas in dem Text nicht verstehst nutze bitte eine Suchmaschine deiner Wahl.

------------------
Grüße
Nico \o/

Üs - ProE-Beziehungen

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