PDF zapisz makro w bieżącym folderze

Witam

Pomimo wszystkich zadanych już pytań dotyczących makr dla rekordu PDF w Solidworks (w moim przypadku 2014), nie mogę znaleźć niczego, co odpowiadałoby mojemu problemowi.

Chciałbym makro, które zapisuje plan jako plik PDF w bieżącym folderze, z aktualną nazwą pliku, ale nie mając znajomości kodu VBA, niemożliwe jest dla mnie zmodyfikowanie kodu w wierszu ścieżki , w której zostanie zapisany plik PDF, pomimo wielu badań w Internecie.

Stworzyłem makro, dowiadując się, że jest tutaj, pozostaje tylko zmodyfikować tę słynną linię.

W moim przypadku makro zawsze będzie zapisywać pliki PDF o nazwie "1841-22" w folderze "1841", podczas gdy w przypadku planu "1836-12" wolałbym, aby znajdowało się w folderze "1836", a wszystko to przy jednoczesnym posiadaniu jednego wspólnego makra dla wszystkich moich folderów, a nie makra dla każdego folderu.

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
Przyciemnij myModelView jako obiekt
Ustaw myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ViewZoomtofit2
Part.ViewZoomtofit2
Part.ViewZoomtofit2
longstatus = Part.SaveAs3("M:\Biuro projektowe\Produkty\1800-49\1841\1841-22.PDF", 0, 0)
Koniec subwoofera

 

Z góry dziękując za pomoc,

 

Pozdrowienia

 

Allan.

 

Witam

Zobacz, jak odzyskać nazwę pliku tutaj:

https://forum.solidworks.com/thread/26814

I ta linia będzie musiała zostać zmieniona:

longstatus = Part.SaveAs3("M:\Biuro projektowe\Produkty\1800-49\1841\1841-22.PDF", 0, 0)

Inspirację możemy również czerpać z tego makro:

https://forum.solidworks.com/servlet/JiveServlet/download/116587-39393/Save%20Part-Assembly%20as%20Parasolid.zip

Zobacz też moje makra tutaj (nie wiem, które z nich zawiera nazwę pliku):

http://www.lynkoa.com/tutos/macro-ouvrir-la-piece-dans-l-assemblage

http://www.lynkoa.com/tutos/3d/macro-enregistrer-sous-avec-solidworks

W rzeczywistości dokonałem modyfikacji, spróbuj tego:

Sub main()

Ustaw swApp = Application.SldWorks

Ustaw część = swApp.ActiveDoc

Pobiera pełną ścieżkę bieżącego dokumentu, w tym nazwę pliku:
PathName = UCase(PArt.GetPathName)


Przyciemnij myModelView jako obiekt
Ustaw myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
Part.ViewZoomtofit2
Part.ViewZoomtofit2
Part.ViewZoomtofit2
longstatus = Part.SaveAs3(Replace(NazwaŚcieżki,"SLDDRW","PDF") , 0, 0)
Koniec subwoofera

2 polubienia

Dziękuję, .PL twoja modyfikacja działa idealnie, wypróbowałem ją na kilku plikach i bez souçi, dziękuję za pomoc!

1 polubienie

Pan Makro znowu szaleje^^

1 polubienie

Jeśli masz narzędzia MyCADtools, PowerPrint robi to bardzo dobrze.

 

uh biorąc pod uwagę temat, jeśli chcemy mieć tę samą ścieżkę, ale tylko nazwę pliku, który zmienia te możliwe jego? będziemy musieli zauważyć czy info? :)

Cześć wszystkim

Po kilku miesiącach rozstrzygających testów dzięki makro .PL (jeszcze raz dziękuję), wracam do Was po mały szczegół, który zaczyna mi przeszkadzać.

 Kiedy plan .PDF jest otwierany na warsztacie w celu konsultacji i muszę wprowadzić zmianę. na tej samej płaszczyźnie bezpośrednio w Solidworks, a ja używam tego makra PDF, Solidworks ulega awarii i zamyka się, ponieważ nie może nadpisać pliku PDF, ponieważ jest już otwarty.

Jednakże, gdy próbuję zapisać plan .PDF za pomocą File-Save sous-.PDF, pojawia się komunikat "Ten plik jest tylko do odczytu" i pozwala Solidworks uniknąć awarii.

Czy byłoby możliwe pobranie linii kodu w moim makrze, która pozwoliłaby mi na wyświetlenie tego komunikatu, gdy plik jest już otwarty, i nie spowodowałoby awarii Solidworks?

Z góry dziękuję za pomoc,

Pozdrowienia

Allan.

1 polubienie

@allan.Comment : zadaj nowe pytanie na forum, nikt nie przychodzi zobaczyć starych.