Met de RunCommand API kunt u SW-opdrachten uitvoeren, maar u kunt geen feedback krijgen. het is alsof je handmatig op de knop klikt in SW
Waarom voert u niet zelf een dialoogvenster voor opslaan als uit en gebruikt u vervolgens de SaveAs Method API (IModelDocExtension) om uw bestand te exporteren.
Niet genoeg kennis in VBA, dus ik zie niet echt hoe ik dit dialoogvenster zelf moet starten, en als ik naar de SW API-help kijk, ben ik niet geavanceerder.
Ik zal iets meer moeten weten over de te volgen methode.
Als ik in de hulp van SW kijk, is er niet veel: http://help.solidworks.com/SearchEx.aspx?q=dialog+box+vba&sort=&version=2018&lang=English&prod=api&context=LANG%3den%26NRESULTS%3d25
Zoals prossignol al zei, moet u de SaveAs Method API (IModelDocExtension) gebruiken om uw bestand te exporteren. Voor het dialoogvenster kunt u gewoon een msgBox maken met keuze en verwerken wat te doen op basis van de feedback van de gebruiker. Hier is een voorbeeld van wat u in uw macro kunt doen in de actie voor een kamer
ElseIf (swModel.GetType = swDocPART) Then
swModel.SetTitle2 "$PRP:SW-File Name"
Dim namePRT As String
Dim chemin As String
chemin = "D:\Etude\Commerce\"
namePRT = chemin & swModel.GetTitle & ".sldprt"
If MsgBox("Voulez-vous sauvegarder cette pièce ?", vbYesNo, "Enregistrement") = vbYes Then
swModel.SaveAs namePRT
End If
End If
Bedankt voor deze antwoorden, maar ik wil het venster open houden met Windows Verkenner omdat er een boomstructuur in deze map "Commerce" is om de componenten op te slaan.
Sorry, maar op dit moment zie ik geen beter antwoord....
In dit geval is het mogelijk om een verkenner te openen zonder het SW-dialoogvenster te gebruiken. Het is iets algemener en stelt je in staat om door de boom te navigeren.
In dit geval neem ik het stukje code, want zelfs als het me zou lukken om een oplossing te vinden met msgbox, zou een generieke oplossing goed bij me passen....
U kunt ook een BrowserForFolder gebruiken om de gebruiker in staat te stellen de doelmap te kiezen:
ElseIf (swModel.GetType = swDocPART) Then swModel.SetTitle2 "$PRP:SW-File Name"
Dim namePRT As String
Dim chemin As String
chemin = "D:\Etude\Commerce\"
If MsgBox("Voulez-vous sauvegarder cette pièce ?", vbYesNo, "Enregistrement") = vbYes Then
Dim objShell As Shell
Dim ssfWINDOWS As Long
Dim objFolder As Folder
Set objShell = New Shell
Set objFolder = objShell.BrowseForFolder(0, "SelectDossiers", 0, chemin)
If (Not objFolder Is Nothing) Then
namePRT = objFolder & "\" & swModel.GetTitle & ".sldprt"
swModel.SaveAs namePRT
End If
End If
End If
Wees voorzichtig, u moet "Microsoft Shell Controls And Automation" in de projectreferenties zetten.