Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API Save3 Befehl

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 SOLIDWORKS
  
SolidCAM Professor Videos | Tipps & Tricks (SolidCAM)
Autor Thema:  API Save3 Befehl (614 / mal gelesen)
Christoph Weise
Mitglied
Technischer Produktdesigner / Konstruktion / CAD-Admin


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

Beiträge: 204
Registriert: 22.03.2015

Dell 3650
Intel I7 11700k
32 GB RAM
Nvidia RTX A4000 16GB
Win 10 22H2 64-bit
SolidWorks 2022SP5
QuickPress 6.3.3
PortaX 2.27
SAP ERP 6.0

erstellt am: 02. Mrz. 2020 17:08    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 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.ModelDoc2

Set 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

HenryV
Mitglied
Konstrukteur, Engineering


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

Beiträge: 813
Registriert: 18.05.2005

SolidWorks 2022 x64 SP5.0
Dell Precision 5820
Intel Xeon W-2125 4x4GHz
NVIDIA Quadro P2000 5GB
32GB RAM
2x Dell U2412M, 24" TFT
Windows 10 Enterprise x64 22H2
Microsoft 365 E5
Microsoft Visual Studio Enterprise 2022

erstellt am: 02. Mrz. 2020 18:05    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 Christoph Weise 10 Unities + Antwort hilfreich

Hallo Christoph
Das Problem ist, dass True -1 oder 1 sein kann und das ist leider nicht dasselbe.
Du kannst das testen mit:
Code:
Debug.Print CInt(SaveValue)
Debug.Print CInt(True)

Deshalb frage ich Boolean-Variablen immer ohne Vergleichswert ab.
Code:
If SaveValue Then
    txtPathModel = Left(SwModel.GetPathName, Len(SwModel.GetPathName) - 7)
    txtPathZeichnung = txtPathModel + ".slddrw"
End If

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

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

Christoph Weise
Mitglied
Technischer Produktdesigner / Konstruktion / CAD-Admin


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

Beiträge: 204
Registriert: 22.03.2015

Dell 3650
Intel I7 11700k
32 GB RAM
Nvidia RTX A4000 16GB
Win 10 22H2 64-bit
SolidWorks 2022SP5
QuickPress 6.3.3
PortaX 2.27
SAP ERP 6.0

erstellt am: 03. Mrz. 2020 09: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

Hallo Andreas,

Genau das war es... 

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

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)2024 CAD.de | Impressum | Datenschutz