Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Solid Edge
  API BeforeSave

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 SolidEdge
Autor Thema:  API BeforeSave (2913 mal gelesen)
biker9to5
Mitglied
Konstrukteur / Selbständig

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

Beiträge: 2
Registriert: 05.02.2007

erstellt am: 23. Jun. 2011 21: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

ich versuche bald verzweifelt, mein Addin dazu zu bringen, dass es auf das BeforeSave Event reagiert.
Da ich auch hier nix gefunden habe, bitte ich die Könner, ein paar Zeilen zur Verfügung zu stellen, wie die Definition und der Aufruf aussehen muss.
Dank euch schon mal.

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

Matthias Leemann
Mitglied
Masch. Ing HTL


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

Beiträge: 393
Registriert: 03.10.2003

Windows 11 Pro
Solid Edge 2022

erstellt am: 23. Jun. 2011 21: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 biker9to5 10 Unities + Antwort hilfreich

Hoi biker9to5

die wichtigsten Zeilen sehen bei mir (VB.NET) so aus:

Code:
Dim WithEvents seEvents As SolidEdgeFramework.ISEApplicationEvents_Event
Dim SE As SolidEdgeFramework.Application



Public Sub SeAnbindung()

        Try
            SE = Marshal.GetActiveObject("SolidEdge.Application")
            seEvents = SE.ApplicationEvents
            Control.CheckForIllegalCrossThreadCalls = False
                   
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
                     
        End Try
End Sub

Private Sub seEvents_BeforeDocumentSave(ByVal theDocument As Object) Handles seEvents.BeforeDocumentSave
        Dim objOpendoc As Object
        objOpendoc = SE.ActiveDocument
        SE.StatusBar = objOpendoc.fullname
        strFilenameBeforeSave = theDocument.Fullname.ToString
       

       
        Select Case SE.ActiveDocumentType
            Case SolidEdgeFramework.DocumentTypeConstants.igSyncPartDocument
               
                Debug.WriteLine("BeforeDocumentSave: igSyncPartDocument")
            Case SolidEdgeFramework.DocumentTypeConstants.igSyncSheetMetalDocument
             
                Debug.WriteLine("BeforeDocumentSave: igSyncSheetMetalDocument")
            Case SolidEdgeFramework.DocumentTypeConstants.igPartDocument
             
                Debug.WriteLine("BeforeDocumentSave: igPartDocument")
            Case SolidEdgeFramework.DocumentTypeConstants.igSheetMetalDocument
             
                Debug.WriteLine("BeforeDocumentSave: igSheetMetalDocument")
            Case SolidEdgeFramework.DocumentTypeConstants.igAssemblyDocument
             
                Debug.WriteLine("BeforeDocumentSave: igAssemblyDocument")
            Case SolidEdgeFramework.DocumentTypeConstants.igSyncAssemblyDocument
             
                Debug.WriteLine("BeforeDocumentSave: igSyncAssemblyDocument")
        End Select

           
     
    End Sub


------------------
SE ST3
SePropManager.NET und SeDimPro2 von
www.leemann-software.net

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

biker9to5
Mitglied
Konstrukteur / Selbständig

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

Beiträge: 2
Registriert: 05.02.2007

erstellt am: 02. Jul. 2011 21: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

Hallo Matthias,
ich bin erst jetzt dazugekommen deine Zeilen in mein Addin einzupflegen.
Und o Wunder, binnen 15 min hat mein Addin auf die Events reagiert.

Danke für deine Hilfe!
biker9to5

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

Dark Solid-Worker
Mitglied
Ingenieur


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

Beiträge: 51
Registriert: 05.12.2003

ST5 64bit Classic MP7 / Win 7 64bit / Smap3D V9.6

erstellt am: 12. Jul. 2011 12: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 Nur für biker9to5 10 Unities + Antwort hilfreich

Hallo

Habe Probleme mit dem bevore document save event

Wenn ich SE StartCommands ausführe (z.B. hide rev planes, Isometric View) wird das Dokument zuerst gespeichert, und erst dann die Commands abgearbeitet.
Andere Befehle im Event (z.B. window.View.Fit) funktionieren.
Lösung? Gibt es ev. andere Befehle für Hide rev Planes und Isometric view, nicht über StartCommands.

Besten Dank für eine Antwort

Grüsse

Heinz

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

pablo
Mitglied
Techniker


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

Beiträge: 453
Registriert: 23.01.2002

Win10
Office 365
SE 2019

erstellt am: 12. Jul. 2011 13:25    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 biker9to5 10 Unities + Antwort hilfreich

Heinz,
Zitat:
Original erstellt von Dark Solid-Worker:

Wenn ich SE StartCommands ausführe (z.B. hide rev planes, Isometric View) wird das Dokument zuerst gespeichert, und erst dann die Commands abgearbeitet.
Andere Befehle im Event (z.B. window.View.Fit) funktionieren.
Lösung? Gibt es ev. andere Befehle für Hide rev Planes und Isometric view, nicht über StartCommands.

es gibt die Möglichkeit, einen Befehl zu unterbrechen,
Code abzuarbeiten und dann den Befehl wieder aufzurufen.
Ob das auch bei einem AddIn funktioniert habe ich nicht getestet (VB6):

Private Sub moSEAppEv_BeforeCommandRun(ByVal theCommandID As Long)
Dim SEComm As SolidEdgeFramework.Command
  Select Case theCommandID
    Case 57603
      Set SEComm = moSEApp.CreateCommand(seTerminateAfterActivation)
      SEComm.Start
      Set SEComm = Nothing
      moSEApp.StartCommand 40018
      moSEApp.StartCommand 32810
      moSEApp.StartCommand 57603
  End Select
End Sub

pablo

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

Dark Solid-Worker
Mitglied
Ingenieur


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

Beiträge: 51
Registriert: 05.12.2003

ST5 64bit Classic MP7 / Win 7 64bit / Smap3D V9.6

erstellt am: 12. Jul. 2011 15: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 Nur für biker9to5 10 Unities + Antwort hilfreich

Hallo Pablo

Danke für die Antwort.
Will in meinem VB.net 2010 Express nicht funktionieren.

Fehler:
"seterminateafterActivation" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden.

Heinz

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

pablo
Mitglied
Techniker


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

Beiträge: 453
Registriert: 23.01.2002

Win10
Office 365
SE 2019

erstellt am: 12. Jul. 2011 16: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 biker9to5 10 Unities + Antwort hilfreich

Heinz,

laut Solid Edge ST3 SDK: Application.CreateCommand Method sollte es funktionieren, hast du es mit 1 statt mit seTerminateAfterActivation probiert?
Die isometrische Ansicht lasst sich auch im View-Objekt einstellen. Einmal mit View.GetCamera die Einstellungen für Eye, Target und Up ermitteln, dann mit View.SetCamera in die aktuelle Ansicht übertragen und mit View.Fit einpassen. Für die Referenzebenen fällt mir nichts ein.

pablo

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

Dark Solid-Worker
Mitglied
Ingenieur


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

Beiträge: 51
Registriert: 05.12.2003

ST5 64bit Classic MP7 / Win 7 64bit / Smap3D V9.6

erstellt am: 13. Jul. 2011 08:26    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 biker9to5 10 Unities + Antwort hilfreich

Hallo Pablo

Komme irgendwie nicht weiter mit deinen Infos.
Kann zwar mit Getcamera die Werte auslesen und auch die Ansicht verändern (Werte setzen), weis aber nicht wie ich so auf eine Iso-Ansicht komme (kann mit den Werten nichts anfangen)

Was meinst du mit "hast du es mit 1 statt mit seTerminateAfterActivation probiert"? Hättest du mir ein Beispiel?

Für Referenzebenen ausblenden habe ich etwas gefunden, funktioniert mit: objDoc.ToggleRefPlanesDisplay(False)


Grüsse Heinz

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

pablo
Mitglied
Techniker


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

Beiträge: 453
Registriert: 23.01.2002

Win10
Office 365
SE 2019

erstellt am: 13. Jul. 2011 09:10    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 biker9to5 10 Unities + Antwort hilfreich

Hallo Heinz,
Zitat:
Original erstellt von Dark Solid-Worker:
Hallo Pablo

Komme irgendwie nicht weiter mit deinen Infos.
Kann zwar mit Getcamera die Werte auslesen und auch die Ansicht verändern (Werte setzen), weis aber nicht wie ich so auf eine Iso-Ansicht komme (kann mit den Werten nichts anfangen)

Was meinst du mit "hast du es mit 1 statt mit seTerminateAfterActivation probiert"? Hättest du mir ein Beispiel?

Für Referenzebenen ausblenden habe ich etwas gefunden, funktioniert mit: objDoc.ToggleRefPlanesDisplay(False)

Grüsse Heinz


Mit SetCamera(0.1, -0.1, 0.1, 0, 0, 0, 0, 0, 1, FALSCH, 1000) erhältst du eine isometrische Ansicht, mit Fit kannst du sie einpassen.

1 ist der Wert von SolidEdgeConstants/seCmdFlag/seTerminateAfterActivation.

Eine weitere Möglichkeit wäre, nach den SEStartCommands noch einmal über die API zu speichern.

pablo

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

Dark Solid-Worker
Mitglied
Ingenieur


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

Beiträge: 51
Registriert: 05.12.2003

ST5 64bit Classic MP7 / Win 7 64bit / Smap3D V9.6

erstellt am: 19. Jul. 2011 07:54    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 biker9to5 10 Unities + Antwort hilfreich

Hallo

Bin erst jetzt dazu gekommen deine Antwort mal anzuschauen.
Set Camera -> ISO Ansicht funktioniert prima.

seTerminateAfterActivation funktioniert auch. Nun habe ich aber das Problem, wenn ich das speichere abbreche, und anschliessend das speichere über objdoc.save ausführe, jedesmal wieder abgebrochen wird, ohne zu speichern (beforecommandrun event läuft von neuem los und bricht wieder ab)

Nachtrag zu: Für Referenzebenen ausblenden habe ich etwas gefunden, funktioniert mit: objDoc.ToggleRefPlanesDisplay(False)
Funktioniert leider nur bei par und psm. Lösung für ASM, um alle Ebenen auzublenden??

Grüsse Heinz

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

pablo
Mitglied
Techniker


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

Beiträge: 453
Registriert: 23.01.2002

Win10
Office 365
SE 2019

erstellt am: 19. Jul. 2011 09:53    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 biker9to5 10 Unities + Antwort hilfreich

Hallo Heinz,
Zitat:
Original erstellt von Dark Solid-Worker:
Hallo

Bin erst jetzt dazu gekommen deine Antwort mal anzuschauen.
Set Camera -> ISO Ansicht funktioniert prima.

seTerminateAfterActivation funktioniert auch. Nun habe ich aber das Problem, wenn ich das speichere abbreche, und anschliessend das speichere über objdoc.save ausführe, jedesmal wieder abgebrochen wird, ohne zu speichern (beforecommandrun event läuft von neuem los und bricht wieder ab)

Nachtrag zu: Für Referenzebenen ausblenden habe ich etwas gefunden, funktioniert mit: objDoc.ToggleRefPlanesDisplay(False)
Funktioniert leider nur bei par und psm. Lösung für ASM, um alle Ebenen auzublenden??

Grüsse Heinz


Für das erneute Speichern brauchst du einen boolschen Wert (bAllowSave), den du beim Unterbrechen auf True setzt. Wenn er auf True steht setzt du ihn im Event auf False und führst die SE-Routine aus Dann kannst du im Assembly mit StartCommand(AssemblyAssemblyToolsHideAllReferencePlanes <=> 40018)die Referenzebenen ausblenden.

pablo

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