Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Dateiname Vorbelegen

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:  Dateiname Vorbelegen (278 mal gelesen)
Andreas01
Mitglied
Dipl.-Ing.(FH) Konstrukteur


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

Beiträge: 227
Registriert: 05.08.2004

Inventor 2020
i7
32 GB RAM
Quatro FX 4000
WIN10-64bit

erstellt am: 07. Apr. 2022 16: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


Screenshot2022-04-07160247.jpg

 
Hallo Forum,

gibt es eine Möglichkeit bei Speicherdialog den Dateinamen selbst zu definieren?
Ich möchte kein neues Speicherdialog erstellen sondern das von Inventor nutzen.

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: 07. Apr. 2022 16:48    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 Andreas01 10 Unities + Antwort hilfreich

Hallo

Nö, meines Wissens nicht. Du hast zwei Möglichkeiten.
1. Einen eigenen Speicherndialog nutzen. Mit einem dutzend Zeilen Code is man durch damit.
2. Entweder den FullFileName per Code zusammenstricken oder in einer Eingabe vom User abfragen. Den String dann per CommandManager.PostPrivateEvent in die Zwischenablage von Inventor schieben und speichern. Dann kommt kein Speicherndialog. Es sei denn deine Datei hat referenzierte Dokumente die ebenfalls noch nicht gespeichert wurden, dann kommt der Dialog für's Speichern der referenzierten Dokumente.

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

RKW Solutions GmbH
www.RKW-Solutions.com

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

Andreas01
Mitglied
Dipl.-Ing.(FH) Konstrukteur


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

Beiträge: 227
Registriert: 05.08.2004

Inventor 2020
i7
32 GB RAM
Quatro FX 4000
WIN10-64bit

erstellt am: 08. Apr. 2022 09: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

Hallo Ralf,
schade.
Das mit den eigenen Speicherndialog habe ich schon gemacht, nur ich müsste jetzt das Inventor eigene Speicherndialog abbrechen und das habe ich noch nicht hinbekommen. Eigentlich müsste das mit HandlingCode = HandlingCodeEnum.kEventCanceled funktionieren, tut es aber nicht.

Private Sub m_appEvents_OnSaveDocument(ByVal DocumentObject As Inventor._Document, ByVal BeforeOrAfter As Inventor.EventTimingEnum,
                ByVal Context As Inventor.NameValueMap, ByRef HandlingCode As Inventor.HandlingCodeEnum) Handles m_appEvents.OnSaveDocument

            If BeforeOrAfter = EventTimingEnum.kBefore Then
                HandlingCode = HandlingCodeEnum.kEventCanceled
            End If

End Sub

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: 08. Apr. 2022 15: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 Andreas01 10 Unities + Antwort hilfreich

Hallo

Wenn, dann musst du das OnFileSaveAsDialog Event abfangen. Das OnSave Event wird erst nach dem Dialog ausgelöst.
Ablauf:
- Speichern gedrückt
- OnFileSaveAsDialog Event
- Dialog eingeblendet
- wenn Dialog abgebrochen wird:
    - OnSave mit BeforeOrAfter=kAfter wird ausgelöst (OnSave mit BeforeOrAfter=kBefore entfällt)
- wenn Dialog mit OK beendet wird:
    - OnSave mit BeforeOrAfter=kBefore wird ausgelöst
    - Speichern
    - OnSave mit BeforeOrAfter=kAfter wird ausgelöst

Also müsste man das erste OnFileSaveDialog Event abfangen und einen eigenen, modifizierten Inventordialog einblenden. Das löst aber direkt das OnFileSaveAsDialog Event erneut aus und würde eine Endlosschleife erzeugen. Mit einer einfachen Bool Variablen signalisiert man im zweiten OnFileSaveAsDialog Event, das nicht wieder ein Dialog geöffnet werden soll und steigt an der Stelle aus (Canceled das Event). Der modifizierte Dialog wird angezeigt und kann ganz normal zum Speichern genutzt werden.
Ich hab ein bißchen mit dem unten stehenden VBA Code herumgespielt. Das scheint zu funktionieren. Ich konnte keinen Fehler finden. Kann trotzdem einer drin sein.
Der Einfachheit halber habe ich den Dateinamen fix im Code. Den muss man später natürlich dynamisch aus gewünschtem Pfad, Dateiname und Extension zusammensetzen.


In ein normales Modul:

Code:

Option Explicit

Dim oFUI As New clsFileUI

Private Sub Connect()
    oFUI.StartEvent
End Sub

Private Sub Disconnect()
    oFUI.StopEvent
End Sub


In ein Klassenmodul namens clsFileUI

Code:

Option Explicit

Private WithEvents oFileUIEvents As FileUIEvents

Private a As Boolean

Public Sub StartEvent()
    Set oFileUIEvents = ThisApplication.FileUIEvents
End Sub

Public Sub StopEvent()
    Set oFileUIEvents = Nothing
End Sub

Private Sub oFileUIEvents_OnFileSaveAsDialog(FileTypes() As String, ByVal SaveCopyAs As Boolean, ByVal ParentHWND As Long, FileName As String, ByVal Context As NameValueMap, HandlingCode As HandlingCodeEnum)
 
    If a = True Then
        Exit Sub
    End If
       
        a = True
       
        Dim sFileTypes As String
        sFileTypes = Join(FileTypes, "|")
       
        Dim oDlg As Inventor.FileDialog
        Call ThisApplication.CreateFileDialog(oDlg)
       
        With oDlg
            .filter = sFileTypes
            .FilterIndex = 1
            .CancelError = True
            .DialogTitle = "My special Save as dialog"
            .FileName = "C:\Temp\justAtest.iam" '<--- the InitialDirectory property doesn't work in save dialog. Use FullFilename here
            .OptionsEnabled = True
        End With
       
        On Error Resume Next
        Call oDlg.ShowSave
       
        If err.Number <> 0 Then
            HandlingCode = kEventCanceled
        Else
            HandlingCode = kEventHandled
            FileName = oDlg.FileName
        End If
       
        a = False
End Sub



Für VB.Net
In der StandardAddInserver Klasse:

Code:

Private WithEvents m_FileUIEvents As FileUIEvents
Private a As Boolean

Private Sub m_FileUIEvents_OnFileSaveAsDialog(ByRef FileTypes() As String, SaveCopyAs As Boolean, ParentHWND As Integer, ByRef FileName As String, Context As NameValueMap, ByRef HandlingCode As HandlingCodeEnum) Handles m_FileUIEvents.OnFileSaveAsDialog

    If a = True Then Exit Sub 'a is a classwide boolean, initial value=false
    a = True

    Dim sFileTypes As String = Join(FileTypes, "|")

    Dim oDlg As Inventor.FileDialog = Nothing
    g_inventorApplication.CreateFileDialog(oDlg)

    With oDlg
        .Filter = sFileTypes
        .FilterIndex = 0
        .CancelError = True
        .DialogTitle = "My special Save as dialog"
        .FileName = "C:\Temp\justAtest.iam" '<--- the InitialDirectory property doesn't work in save dialog. Use FullFilename here
        .OptionsEnabled = True
    End With

    On Error Resume Next
    Call oDlg.ShowSave()

    If Err.Number <> 0 Then
        HandlingCode = HandlingCodeEnum.kEventCanceled
    Else
        HandlingCode = HandlingCodeEnum.kEventHandled
        FileName = oDlg.FileName
    End If

    a = False
End Sub


In der Activate Sub:

Code:

m_FileUIEvents = g_inventorApplication.FileUIEvents
a = False

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

RKW Solutions GmbH
www.RKW-Solutions.com

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

Andreas01
Mitglied
Dipl.-Ing.(FH) Konstrukteur


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

Beiträge: 227
Registriert: 05.08.2004

Inventor 2020
i7
32 GB RAM
Quatro FX 4000
WIN10-64bit

erstellt am: 12. Apr. 2022 06: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

Hallo Ralf,

danke dir für die ausführliche Erklärung. Ich werde es in den nächsten Tagen probieren.

Gruß
Andreas

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