Jak zapisać w formacie PDF za pomocą makra

Cze wszystkim

oto mój problem, chciałbym zapisać w PDF rysunki, które modyfikuję.

Jako, że muszę zrobić kilka razy z rzędu, za każdym razem muszę oszczędzać pod ponownym ustąpieniem miejsca...... Krótko mówiąc, dużo kliknięć.

Próbowałem zrobić makro, zapisuje się ono w formacie PDF, ale nadal w folderze tworzenia, a nie w tym samym folderze co rysunek.

Makro, o którym mowa:

' ******************************************************************************
' C:\Użytkownicy\FCH. CORADINCORP.001\AppData\Local\Temp\swx3264\Macro1.swb - makro nagrane w dniu 30.03.16 przez fch
' ******************************************************************************
Dim swApp As Object

Przyciemnij część jako obiekt
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Ustaw swApp = _
Aplikacja.SldWorks

Ustaw część = swApp.ActiveDoc
longstatus = Part.SaveAs3("E:\teste macro.PDF", 0, 0)
Koniec subwoofera

 

dziękuję za pomoc

Franciszek


enr-pdf-1.swp

Dlaczego nie skorzystać z konwertora wsadowego?....

 

1 polubienie

Witam

Oto makro, które powinno działać:

 


Dim swApp As Object

Przyciemnij część jako obiekt
Dim boolstatus As Boolean
Dim docPath
Dim longstatus As Long, longwarnings As Long

Sub main()

Ustaw swApp = _
Aplikacja.SldWorks

 

Ustaw część = swApp.ActiveDoc
docPath = Nazwa_Części.GetPathName
longstatus = Part.SaveAs3(Replace(LCase(docPath), ".slddrw", ".pdf"), 0, 0)
Koniec subwoofera

5 polubień

Witaj, użyj narzędzia Mycadtools

2 polubienia

Witam

Oto MOCRO, którego używamy w domu, to makro automatycznie zapisuje plik PDF w folderze, w którym znajduje się rysunek.


macro_pdf.swp
1 polubienie

Dziękuję wszystkim za pomoc

SergeR:   Nie znam bathconvert, ale dowiem się.

amseli:   Narzędzie Mycad W tej chwili nie mam go w umowie. Mam nadzieję, że wkrótce.

Manu 67:  dziękuję manu, ale twoje makro jest puste

 

 .PL: dziękuję za makro, właśnie zamieniłem .sldprt na slddrw i teraz działa bardzo dobrze, jeszcze raz dziękuję

oryginalny wiersz: longstatus = Part.SaveAs3(Replace(LCase(docPath), ".sldprt", ".pdf"), 0, 0)

zamień na: longstatus = Part.SaveAs3(Replace(LCase(docPath), ".slddrw", ".pdf"), 0, 0)

Jeszcze raz dziękuję wszystkim za pomoc

Franciszek

1 polubienie

Dim swApp jako SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim lErrors tak długo
Dim lOstrzeżenia tak długo

Sub main()

Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc
swModel.Extension.SaveAs GetFilename(swModel.GetPathName) & " rev." & swModel.GetCustomInfoValue("", "Revision") & ".pdf", swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, lErrors, lWarnings

Koniec subwoofera


Funkcja GetFilename(strPath As String) Jako ciąg
    Dim strTemp As String (Ciąg ścisłości)
    strTemp = Mid$(strPath, InStrRev(strPath, "\") + 1)
    GetFilename = Left$(strTemp, InStrRev(strTemp, ".") - 1)
Zakończ funkcję

 


macro_pdf.docx
1 polubienie

Dziękuję manu67 Wypróbuję twoje makro tak szybko, jak to możliwe

Witam

Oto ten, który działa i właśnie go przetestowałem:

Dim swApp jako SldWorks.SldWorks
Dim swModel As ModelDoc2
Dim lErrors tak długo
Dim lOstrzeżenia tak długo

Sub main()

Ustaw swApp = Application.SldWorks
Ustaw swModel = swApp.ActiveDoc
swModel.Extension.SaveAs GetFilename(swModel.GetPathName) & " rev." & swModel.GetCustomInfoValue("", "Revision") & ".pdf", swSaveAsCurrentVersion, swSaveAsOptions_Silent, Nothing, lErrors, lWarnings

Koniec subwoofera

Funkcja GetFilename(strPath As String) Jako ciąg
Dim strTemp As String
strTemp = Mid$(strPath, InStrRev(strPath, "\") + 1)
GetFilename = Left$(strTemp, InStrRev(strTemp, ".") - 1)
Zakończ funkcję

3 polubienia

Makra działają dobrze, ale mam małą prośbę o dodanie, czy to możliwe, że makro działa dla wszystkich planów otwartych w Solidworks.