Hallo CAD´ler,
In meinem Code lass ich das Model speichern und Frage danach den Pfad des Models ab.
Ablauf:
Wenn das Model noch ungespeichert ist, wird der User zum Speichern mit Dialog aufgefordert.
Wenn der User in diesem Dialog aber abbrechen klickt wird trotzdem nicht gespeichert, was auch weiterhin möglich sein darf.
Im weiteren Verlauf muss ich unterscheiden ob das Teil gespeichert wurde (sprich es existiert ein Pfad zur Datei, und eine Zeichnung könnte existieren).
Code:
Dim txtPathModel As String
Dim txtPathZeichnung As String
Dim CloseErrors As Long
Dim CloseWarnings As Long
Dim SaveErrors As Long
Dim SaveWarnings As Long
Dim SaveValue As Boolean
Dim SwModel As SldWorks.ModelDoc2Set SwModel = Model
SaveValue = SwModel.Save3(swSaveAsOptions_AvoidRebuildOnSave, SaveErrors, SaveWarnings)
' ' Errors
' Debug.Print ("Errors as defined in swFileSaveError_e: " & SaveErrors)
'
'
' ' Warnings
' Debug.Print ("Warnings as defined in swFileSaveWarning_e: " & SaveWarnings)
'SaveValue = True
'Auslesen des Pfades
If SaveValue = True Then
txtPathModel = Left(Model.GetPathName, Len(Model.GetPathName) - 7)
txtPathZeichnung = txtPathModel + ".slddrw"
End If
Das Problem ist das die Variable "SaveValue" nach dem erfolgreichen Speichern True ("Wahr") ist, aber von meiner If-Abfrage nicht als "Wahr" erkannt wird.
Wenn ich die Variable "SaveValue" aber davor(im Moment auskommentiert) als "Wahr" schreibe, funktioniert der IF-Baustein.
Die Variable "SaveValue" wird nach dem speichern im Lokal Fenster auch als Wahr angezeigt.
Meines Wissens nach hat der Datentyp nur "True" oder "False"..... gibt es so was wie ne Halbwahrheit?
Die unschöne Lösung ist:
Code:
If Not SaveValue = False Then
Nur sinnig ist es ja nicht gerade....
Könnt ihr ähnliches bei diesem Befehl beobachten oder liegt das bei mir am Rechner?
Gruß Christoph
------------------
Wer einen Fehler findet darf ihn behalten,
wer zwei findet kann beide behalten,
ab fünf Fehler gibs Rabatt :-)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP