Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Pro ENGINEER
  VB.NET Zeichnung Öffnen + neu erstellen

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:  VB.NET Zeichnung Öffnen + neu erstellen (2590 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: 07. Mai. 2014 15:00    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,

habe mir diesen Script als Vorlage genommen:

Code:

Option Explicit On
Option Strict On
Imports pfcls

Module Module1

    Sub Main()

        Dim drawings As Cstringseq
        Dim model As IpfcModel
        Dim modelDesc As IpfcModelDescriptor
        Dim Mdlname As String
        Dim Drwname As String
        Dim Pfad As String
        Dim Pos As Integer
        Dim Proe As CCpfcAsyncConnection
        Dim asyncConnection As IpfcAsyncConnection
        Dim session As IpfcBaseSession


        Proe = New CCpfcAsyncConnection
        asyncConnection = Proe.Connect("", "", ".", 5)
        session = CType(asyncConnection.Session, IpfcBaseSession)


        Try
            model = session.CurrentModel
            If model Is Nothing Then
                Throw New Exception("Kein Model im Hauptfenster:  ")
            End If
            Mdlname = session.CurrentModel.FullName.ToLower  'ToLower - wandelt in Kleinschrift um
            Pfad = session.CurrentModel.Origin                'absolute Lage  der Datei
            Pos = Pfad.LastIndexOf(Mdlname)                  'Position des letzten vorkommens von Mdlname
            Pfad = Pfad.Remove(Pos)                          ' Schneidet den Dateinamen vom absoluten Pfad weg
            'MsgBox("Pfad " & Pfad)
            Drwname = Mdlname + ".drw"
            'MsgBox("name  " & Drwname)
            drawings = session.ListFiles(Drwname, EpfcFileListOpt.EpfcFILE_LIST_LATEST, Pfad) 'Suche nach datei


            If drawings.Count = 0 Then
                Throw New Exception(" Keine Zeichnung  vorhanden:  ")
            End If

            modelDesc = (New CCpfcModelDescriptor).CreateFromFileName(Drwname)
            session.OpenFile(modelDesc).Activate()

        Catch ex As Exception
            MsgBox(ex.Message.ToString + Chr(13))
        End Try
        asyncConnection.Disconnect(2)


    End Sub

End Module


Soweit funktioniert alles aber das Fenster um eine neue Zeichnung zu erstellen wenn keine vorhanden ist kommt leider nicht.

Die Anweisung ist doch diese hier: 

modelDesc = (New CCpfcModelDescriptor).CreateFromFileName(Drwname)
            session.OpenFile(modelDesc).Activate()

Kann mir jemand auf die Sprünge helfen?

Beste Grüße

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

San Benedetto
Mitglied



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

Beiträge: 29
Registriert: 28.05.2013

Win7
Pro/e Wf4/Creo 2.0
VB2010express
VB2012express

erstellt am: 07. Mai. 2014 15:49    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

Servus Vladi182

modelDesc = (New CCpfcModelDescriptor).CreateFromFileName(Drwname)
session.OpenFile(modelDesc).Activate()
-> Öffnet drw wenn vorhanden (fileName)

Zeichnung erstellen : "If drawings.Count = 0 Then"

        Dim drawingOptions As New CpfcDrawingCreateOptions
        Dim drawing As IpfcDrawing
        Dim DrawingName As String
        Dim Template As String = "NamedesTemplates"
        DrawingName = session.CurrentModel.FullName.ToLower
        drawing = session.CreateDrawingFromTemplate(DrawingName, Template, model.Descr, drawingOptions)
        drawing.Display()
        session.CurrentWindow.Activate()
        session.CurrentModel.Save()

[Diese Nachricht wurde von San Benedetto am 07. Mai. 2014 editiert.]

[Diese Nachricht wurde von San Benedetto am 07. Mai. 2014 editiert.]

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: 07. Mai. 2014 16:00    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

Das hast du ja auch noch nirgends bei dir stehen. Du erzeugst zwar ein Model-Descriptor. Diesen benötigt man allerdings nur für Dateien die auch schon vorhanden sind. Afaik müsstest du eigentlich irgend eine Fehlermeldung bekommen.

Hmpf... wieder ein paar Sekunden zu spät.

Aber Danke Benedetto für den Code. Daran wollte ich mich die Tage eh mal ran setzen, da ich das bisher über RunMacro gelöst habe, was a) nicht schön ist und b) auch noch viel zu langsam.

------------------
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: 07. Mai. 2014 16:07    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

Supi, vielen Dank  San :-) Werde es gleich ausprobieren

Jetzt stehe ich vor einem anderen Problem.

Wenn ich ein neus part z.b. Test.prt erstelle und debugge die VB funktiononiert alles einwandfrei.

Öffne ich eine andere Baugruppe die Familiengesteuert ist bekomme ich die Fehlermeldung: StartIndex darf nicht kleiner als Null sein Parametername: startindex???

Liegt es an der Generik?

Beste Grüße

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

San Benedetto
Mitglied



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

Beiträge: 29
Registriert: 28.05.2013

Win7
Pro/e Wf4/Creo 2.0
VB2010express
VB2012express

erstellt am: 07. Mai. 2014 16: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 Nur für vladi182 10 Unities + Antwort hilfreich

Servus vladi182

ich glaube das hat mit der Stringumwandlung zu tun

            Pfad = session.CurrentModel.Origin    'absolute Lage  der Datei
            Pos = Pfad.LastIndexOf(Mdlname)      'Position des letzten vorkommens von Mdlname
      --->> Pfad = Pfad.Remove(Pos)              ' Schneidet den Dateinamen vom absoluten Pfad weg

Generisch und Variante Dateiname - hier must du ansetzen wenn du das brauchst.

kann dir auf die schnelle keine alternative anbieten-- aber wenn du die hast dann posten.

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: 07. Mai. 2014 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 vladi182 10 Unities + Antwort hilfreich

Lass dir doch mal die einzelnen Strings anzeigen. Dann siehst du schnell den Fehler.

Du hast ein FamTab-Mitglied geöffnet.
Origin ist dann aber der Ort vom Generic.
Fullname ist allerdings "instancename<genericname>"
LastIndexOf(mdlname) ist demnach -1 weil der Fullname nicht gefunden 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: 07. Mai. 2014 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

Alles klar ich versuchs!

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: 07. Mai. 2014 16:43    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

Hi Nico,

wie bereits San erwähnt hat kommt der Verweis / Fehlermeldung auf die Zeile:37 :-(

Allerdings liegt die Generik ebenfalls in gleichen Ordner also der Ort müsste doch passen? Meine Variante und Zeichnung haben den gleichen Namen und liegen ebenfalls im gleichen Ordner.

Das heißt meine Variante liegt in der Generik?

Da muss ich mal ins vbapi User Quide reinschauen wie ich gleichzeitig Generik und normal ansprechen kann.

Beste Grüße

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: 07. Mai. 2014 16:51    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


templates.PNG

 
Hallo San,

was die Vorlagen angeht: Dim Template As String = "NamedesTemplates" 

Benutzen wir keine ich muss immer Leer mit Formatierung wählen. Gibt es eine andere Möglichkeit?

Beste Grüße

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

San Benedetto
Mitglied



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

Beiträge: 29
Registriert: 28.05.2013

Win7
Pro/e Wf4/Creo 2.0
VB2010express
VB2012express

erstellt am: 07. Mai. 2014 16: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 Nur für vladi182 10 Unities + Antwort hilfreich

Servus

Nico hat es sehr gut erklärt

ergänze mal die Zeile

            Mdlname = session.CurrentModel.FullName.ToLower   'ToLower - wandelt in Kleinschrift um Modellname
    -->     MsgBox("MdlName " & Mdlname)

und du siehst <generic>

zu langsam  geantwortet

template -

dann mach dir ein template , du brauchst ein Start.drw oder wie die auch heist (Einstellungen in der zeichnungs.dtl)

wieder ein paar Klicks weniger zu erledigen bei der Arbeit

der Befehl CreateDrawingFromTemplate braucht ein Template

[Diese Nachricht wurde von San Benedetto am 07. Mai. 2014 editiert.]

[Diese Nachricht wurde von San Benedetto am 07. Mai. 2014 editiert.]

[Diese Nachricht wurde von San Benedetto am 07. Mai. 2014 editiert.]

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: 07. Mai. 2014 17:17    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 vladi182:
wie bereits San erwähnt hat kommt der Verweis / Fehlermeldung auf die Zeile:37 :-(


Es gibt kein Pfad.Remove(-1)

Nur weil der Fehler erst in Zeil 37 anschlägt, heißt es nicht, dass der Fehler dort entstanden ist.

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

Üs - ProE-Beziehungen

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

San Benedetto
Mitglied



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

Beiträge: 29
Registriert: 28.05.2013

Win7
Pro/e Wf4/Creo 2.0
VB2010express
VB2012express

erstellt am: 07. Mai. 2014 18: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 vladi182 10 Unities + Antwort hilfreich

Servus Vladi182

ich hab den code mal erweitert damit die Famtabellenteile auch gehen.

neue oder geänderte zeilen  sind linksbündig -------------


Option Explicit On
Option Strict On
Imports pfcls
Module Module1

    Sub Main()

        Dim drawings As Cstringseq
        Dim model As IpfcModel
        Dim modelDesc As IpfcModelDescriptor
        Dim Mdlname As String
        Dim Drwname As String
        Dim Pfad As String
        Dim Pos As Integer
        Dim Proe As CCpfcAsyncConnection
        Dim asyncConnection As IpfcAsyncConnection
        Dim session As IpfcBaseSession

Dim generic As IpfcSolid -----------------------


        Proe = New CCpfcAsyncConnection
        asyncConnection = Proe.Connect("", "", ".", 5)
        session = CType(asyncConnection.Session, IpfcBaseSession)


        Try
            model = session.CurrentModel
            If model Is Nothing Then
                Throw New Exception("Kein Model im Hauptfenster:  ")
            End If

generic = model.parent---------------------------
If generic Is Nothing Then-----------------------
generic = model-----------------------------------
End If------------------------------------------

Mdlname = generic.FullName.ToLower ----------------
Pfad = generic.Origin ------------------                    'absolute Lage  der Datei
            Pos = Pfad.LastIndexOf(Mdlname)                  'Position des letzten vorkommens von Mdlname
            Pfad = Pfad.Remove(Pos)                          ' Schneidet den Dateinamen vom absoluten Pfad weg
            'MsgBox("Pfad " & Pfad)
            Drwname = Mdlname + ".drw"
            'MsgBox("name  " & Drwname)
            drawings = session.ListFiles(Drwname, EpfcFileListOpt.EpfcFILE_LIST_LATEST, Pfad) 'Suche nach datei


            If drawings.Count = 0 Then
                Throw New Exception(" Keine Zeichnung  vorhanden:  ")
            End If

            modelDesc = (New CCpfcModelDescriptor).CreateFromFileName(Drwname)
            session.OpenFile(modelDesc).Activate()

        Catch ex As Exception
            MsgBox(ex.Message.ToString + Chr(13))
        End Try
        asyncConnection.Disconnect(2)


    End Sub

End Module

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: 07. Mai. 2014 21:37    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

Abend San,

du bist einfach der beste, vielen Dank für deine Unterstützung!

Werde es morgen ausprobieren.

Woher kennst du dich so gut mit der PTC-API Schnittstelle aus? Bist du als Programmierer tätig?

Beste Grüße

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: 08. Mai. 2014 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

Guten Morgen San,

soeben habe ich meinen Quellcode angepasst allerding bekomme ich eine Warnung:
Die model-Variable wird verwendet, bevor ihr ein Wert zugewiesen wird. Zur Laufzeit kann eine Nullverweisausnahme auftreten.C:\Users\xxx\documents\visual studio 2010\Projects\Zeichnung_Oeffnen\Zeichnung_Oeffnen\Module1.vb Zeichnung_Oeffnen

Trotz der Abschaltung der Option Strict On?

Die Variablen model, generic sind doch ausgewiesen?

Code:

Option Explicit On
'Option Strict On
Imports pfcls

Module Module1

    Sub Main()

        Dim drawings As Cstringseq
        Dim model As IpfcModel
        Dim modelDesc As IpfcModelDescriptor
        Dim Mdlname As String
        Dim Drwname As String
        Dim Pfad As String
        Dim Pos As Integer
        Dim Proe As CCpfcAsyncConnection
        Dim asyncConnection As IpfcAsyncConnection
        Dim session As IpfcBaseSession
        'Zeichnung
        Dim drawingOptions As New CpfcDrawingCreateOptions
        Dim drawing As IpfcDrawing
        Dim DrawingName As String
        Dim Template As String = "schablone_A3.frm"

        'Familientabelle
        Dim generic As IpfcSolid

        Proe = New CCpfcAsyncConnection
        asyncConnection = Proe.Connect("", "", ".", 5)
        session = CType(asyncConnection.Session, IpfcBaseSession)

        generic = model.parent

        If generic Is Nothing Then
            generic = model
        End If

        Try
            model = session.CurrentModel
            If model Is Nothing Then
                Throw New Exception("Kein Model im Hauptfenster:  ")
            End If
            Mdlname = session.CurrentModel.FullName.ToLower  'ToLower - wandelt in Kleinschrift um
            MsgBox("MdlName " & Mdlname)
            Pfad = generic.Origin                            ' Lager der Datein in Familientabelle
            Pfad = session.CurrentModel.Origin                'absolute Lage  der Datei
            Pos = Pfad.LastIndexOf(Mdlname)                  'Position des letzten vorkommens von Mdlname
            Pfad = Pfad.Remove(Pos)                          ' Schneidet den Dateinamen vom absoluten Pfad weg
            'MsgBox("Pfad " & Pfad)
            Drwname = Mdlname + ".drw"
            'MsgBox("name  " & Drwname)
            drawings = session.ListFiles(Drwname, EpfcFileListOpt.EpfcFILE_LIST_LATEST, Pfad) 'Suche nach datei


            If drawings.Count = 0 Then
                Throw New Exception(" Keine Zeichnung  vorhanden:  ")       
            End If

            modelDesc = (New CCpfcModelDescriptor).CreateFromFileName(Drwname)
            session.OpenFile(modelDesc).Activate()

            'Falls keine Zeichnung erstelle neu benutze hierbei die Vorlage
            If drawings.Count = 0 Then
                DrawingName = session.CurrentModel.FullName.ToLower
                drawing = session.CreateDrawingFromTemplate(DrawingName, Template, model.Descr, drawingOptions)
                drawing.Display()
                session.CurrentWindow.Activate()
                session.CurrentModel.Save()
            End If

        Catch ex As Exception
            MsgBox(ex.Message.ToString + Chr(13) + ex.StackTrace.ToString)
        End Try
        asyncConnection.Disconnect(2)


    End Sub
End Module



Beste Grüße

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: 08. Mai. 2014 08:38    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

Wir sind nicht dein Debugger. Ein letztes mal helfe ich noch und dann blende ich mich hier raus. Bitte lese den Text. Dann lese ihn nochmal.

Zitat:
Die model-Variable wird verwendet, bevor ihr ein Wert zugewiesen wird.

Dann wird dir auffallen, dass in der Zeile:
generic = model.parent
model noch gar nicht zugewiesen wurde aber du schon einen Wert weitergeben möchtest. model wird erst im Try-Block zugewiesen.

------------------
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: 08. Mai. 2014 08:45    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

Ja ist ja gut nicht aufregen. Alles wird gut 

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

San Benedetto
Mitglied



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

Beiträge: 29
Registriert: 28.05.2013

Win7
Pro/e Wf4/Creo 2.0
VB2010express
VB2012express

erstellt am: 08. Mai. 2014 09:13    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

SERVUS VLADI

wer lesen kann ist klar im Vorteil  - Scherz beiseite


schau dir meinen code oben an und vergleiche ihn mit deinem und du wirst unterschiede feststellen ??

copy and paste  und die Fehlermeldungen sind weg.

PS. ich bin kein Programmierer (alles try and error)

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: 08. Mai. 2014 10:51    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

Ne, ich rege mich nicht auf. 
Es ist nur so, dass beim Programmieren das Debuggen halt dazu gehört. Es kostet einen des Öfteren selbst mal reichlich Nerven, jedoch muss man sich da immer mal wieder durchbeißen. Ich hatte gestern erst einen recht dummen Fehler in meinem Tool und habe mich die ganze Zeit gefragt, warum da nix gescheites bei rumkommt.
Wichtig ist einfach, dass man sich in seinem Code zum einfachen Fehlerfinden die einzelnen Werte anzeigen lässt. Denn das Programm macht nur das, was man ihm auch sagt. So findet man die Fehler und lernt auch gut dazu.

------------------
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: 08. Mai. 2014 11:09    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

Hi Nico, klar ich möchte nicht den Eindruck erwecken "er pikt sich nur die Rosinen aus dem Brötchen"  

Ich versuche immer die einzelne Schritte zu verstehen deswegen kommentiere ich diese, um die chronologische Reihenfolge der Programmierung zu beachten.

Ich bin sehr froh das es diesen Forum gibt ich bin leider nur der einzige im Unternehmen der sich mit dieser zähen Materie außer einander setzt. Wir habe StartUpTools deswegen meinen meine Kollegen Zitat. " Es sind alles Programmierer Tätigkeiten wir haben SUT wir bezahlen Geld dafür usw..." Aber sobald man was angepasst haben möchte ist keiner bereit Geld zu bezahlen. Aber ich will ja nicht weinen   

Momentan bin ich an einem Parametermanager dran Siehe Anhang: Ich wage mich garnicht zu erwähnen wie viele private Stunden ich in diese Applikation investiert habe egal!

Nun zurück an die Buletten, soeben habe ich den Programmcode angepasst und siehe da keine Warnungen mehr allerding der Fehler Tritt immer noch auf wie bereits oben beschrieben Index darf nicht kleiner Null sein.

Ich verstehe es so das meine Variante immer noch nicht gefunden wird tut mir leid ich bin mit meinem Latein am Ende versuche es heute Abend zuhause.

Code:

Option Explicit On
'Option Strict On
Imports pfcls

Module Module1

    Sub Main()

        Dim drawings As Cstringseq
        Dim model As IpfcModel
        Dim modelDesc As IpfcModelDescriptor
        Dim Mdlname As String
        Dim Drwname As String
        Dim Pfad As String
        Dim Pos As Integer
        Dim Proe As CCpfcAsyncConnection
        Dim asyncConnection As IpfcAsyncConnection
        Dim session As IpfcBaseSession
        'Zeichnung
        Dim drawingOptions As New CpfcDrawingCreateOptions
        Dim drawing As IpfcDrawing
        Dim DrawingName As String
        Dim Template As String = "schablone_A3.frm"

        'Familientabelle
        Dim generic As IpfcSolid


        'Verbindung herstellen
        Proe = New CCpfcAsyncConnection
        asyncConnection = Proe.Connect("", "", ".", 5)
        session = CType(asyncConnection.Session, IpfcBaseSession)

        Try
            model = session.CurrentModel
            If model Is Nothing Then
                Throw New Exception("Kein Model im Hauptfenster:  ")
            End If

            generic = model.parent
            Mdlname = session.CurrentModel.FullName.ToLower  'ToLower - wandelt in Kleinschrift um

            If generic Is Nothing Then
                generic = model
            End If

            MsgBox("MdlName " & Mdlname)
            Pfad = generic.Origin                            ' Lager der Datein in Familientabelle
            Pfad = session.CurrentModel.Origin                'absolute Lage  der Datei
            Pos = Pfad.LastIndexOf(Mdlname)                  'Position des letzten vorkommens von Mdlname
            Pfad = Pfad.Remove(Pos)                          ' Schneidet den Dateinamen vom absoluten Pfad weg
            'MsgBox("Pfad " & Pfad)
            Drwname = Mdlname + ".drw"
            'MsgBox("name  " & Drwname)
            drawings = session.ListFiles(Drwname, EpfcFileListOpt.EpfcFILE_LIST_LATEST, Pfad) 'Suche nach datei


            If drawings.Count = 0 Then
                Throw New Exception(" Keine Zeichnung  vorhanden:  ")        
            End If

            modelDesc = (New CCpfcModelDescriptor).CreateFromFileName(Drwname)
            session.OpenFile(modelDesc).Activate()

            'Falls keine Zeichnung, erstelle neu benutze hierbei die Vorlage
            If drawings.Count = 0 Then
                DrawingName = session.CurrentModel.FullName.ToLower
                drawing = session.CreateDrawingFromTemplate(DrawingName, Template, model.Descr, drawingOptions)
                drawing.Display()
                session.CurrentWindow.Activate()
                session.CurrentModel.Save()
            End If

        Catch ex As Exception
            MsgBox(ex.Message.ToString + Chr(13) + ex.StackTrace.ToString)
        End Try
        asyncConnection.Disconnect(2)

    End Sub

End Module


Beste Grüße

[Diese Nachricht wurde von vladi182 am 08. Mai. 2014 editiert.]

[Diese Nachricht wurde von vladi182 am 08. Mai. 2014 editiert.]

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

San Benedetto
Mitglied



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

Beiträge: 29
Registriert: 28.05.2013

Win7
Pro/e Wf4/Creo 2.0
VB2010express
VB2012express

erstellt am: 08. Mai. 2014 11: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 vladi182 10 Unities + Antwort hilfreich

hmmm

weil du
Mdlname = session.CurrentModel.FullName.ToLower 

und nicht
Mdlname = generic.FullName.ToLower

verwendest

und das muss nach

generic = model.parent
If generic Is Nothing Then
generic = model
End If

stehen !!


-- Antwort vor der nächsten Frage ----


dein DRW erstellen wird nie ausgeführt
weil du mit der ersten Abfrage

            If drawings.Count = 0 Then
                Throw New Exception(" Keine Zeichnung  vorhanden:  ")
            End If

das Progamm beendest.

[Diese Nachricht wurde von San Benedetto am 08. Mai. 2014 editiert.]

[Diese Nachricht wurde von San Benedetto am 08. Mai. 2014 editiert.]

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

U_Suess
Moderator
CAD-Admin / manchmal Konstrukteur




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

Beiträge: 10560
Registriert: 14.11.2001

CREO 4 M120 (+Geniustool für Creo 6.0.2)
PDMLink 11.0 M030
NTSI Contender E64 SC8 mit
NVIDIA Quadro P4000
Intel Core i7-10700KF / 3,80 GHz
64GB DDR4-RAM / 2933 MHz
Win 10 Prof. 64Bit (20H2)

erstellt am: 08. Mai. 2014 11:20    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 vladi182:
... Wir habe StartUpTools ...
Hallo vladi, hast Du eigentlich schon einen Termin, wann Du das Rad neu erfinden wirst?
Als Chef würde ich wahrscheinlich keine der Arbeitsstunden bezahlen, die Du damit verbringst, vorhandene Lösungen nachzuprogrammieren.
Klar, auch diese Lösungen bekommt man nicht für 0€. Aber bei einem kalkulativen Stundensatz von geschätzten 75€ hat man schnell die Wartungskosten verbraten und eigentlich keinen Vorteil. Mal abgesehen von der Bestätigung eines einzelnen Mitarbeiters, dass er etwas nachempfinden kann, was es schon gibt. SCNR

------------------
Gruß
Udo              Keine Panik, Du arbeitest mit Pro/E! Und Du hast cad.de gefunden!

Neu hier?     Verwundert über die Antworten?    Dann schnell nachfolgende Links durchlesen. 
Richtig FragenNettiquetteSuchfunktionSystem-InfoPro/E-Konfig7er-Regel      • Unities

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: 08. Mai. 2014 11:41    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

Jep  ich war mir sicher das jemand sich melden wird 

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