Cze wszystkim
Chcę utworzyć makro, aby wyeksportować moje prezentacje w formacie PDF i DWG.
Póki co nie martw się, że tam dotrę, ale chciałbym, aby mój plik PDF i DWG utworzony za pomocą tego makra miał nazwę mojej otwartej prezentacji?
Tam piłem, rozumiałem system edycji makr, ale nie wiem co wpisać.
' Zapisz jako
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\ tutaj. DWG", 0, 0)
Koniec subwoofera
Myślę, że wszystko jest odtwarzane tam, gdzie tu napisałem, pewnie trzeba wpisać coś w stylu "Nazwa pliku", prawda?
Z góry dziękuję ;)
EDIT: Jeśli masz linki skąd mogę pobrać wszystkie makropolecenia to jestem zainteresowany:D
Witam
Najwyraźniej jest to funkcja GetTitle , której szukasz. Więc w swoim makrze musisz pobrać ten GetTitle i przerobić ścieżkę do pliku z wynikiem uzyskanym z GetTitle.
Pozdrowienia
2 polubienia
Witam i dziękuję za odpowiedź,
Przepraszam, to pierwszy raz, kiedy postawiłem stopę w Macro, nie rozumiem, to nie działa^^
' Zapisz jako
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\GetTitle.PDF", 0, 0)
Koniec subwoofera
Prawda?
Witam
Nie, wcale tak nie jest!
GetTitle to funkcja API, która pozwala pobrać w formie tekstowej nazwę pliku otwartego w Solidworks, tam właśnie napisałeś, że Twój plik PDF powinien nazywać się GetTitle.PDF.
Jeśli nigdy nie robiłeś makra i/lub programowałeś, będziesz musiał albo zrobić małe rozeznanie na temat tego, jak działa język programowania, zanim to zrobisz, albo będziesz musiał opublikować pełne makro i wyjaśnić, w jaki sposób chcesz zmienić sposób, w jaki działa, mając nadzieję, że ktoś będzie chciał się tego trzymać.
Przyznam, że nie rozumiem uwagi "Póki co nie martw się, docieram do celu" na początku Twojego pytania.
Pozdrowienia
Tak, najpierw musisz uzyskać nazwę swojego pliku za pomocą funkcji getTitle.
Przyznam też, że nie do końca rozumiem to "Póki co nie martw się, że tam docieram"...
Spróbuj tego:
'déclaration des variables
Dim swApp As Object
Dim Part As Object
Dim longstatus As Long
dim nomfichier as string
Sub enregistrement()
'initialisation des variables objet
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
'récupération du nom fichier part
Nomfichier = Part.GetTitle
'suppression de l'extension solidworks
Nomfichier = Strings.Left(Nomfichier, Len(Nomfichier) - 7)
'enregistrement du fichier en pdf
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\" & nomfichier & ".PDF", 0, 0)
end sub
2 polubienia
Ok nie ma problemu.
Zasadniczo rozumiem, jak to działa, jeśli można tak powiedzieć, ale tak naprawdę muszę zadać sobie więcej pytań o problem i programowanie.
W rzeczywistości jest to stosunkowo proste i myślę nawet, że to makro musi już istnieć.
Żałuję tylko, że po zakończeniu rysunku kliknąłem przycisk, który generuje dla mnie plik PDF i DWG w folderze, ale z otwartą nazwą rysunku.
Jeśli otworzę nowy rysunek, chcę, aby to makro generowało inne odrębne i nazwane pliki z tym rysunkiem.
Przepraszam, nie jestem pewien, czy jestem zbyt jasny...
Tak właśnie robi przykład podany przez bengousa , wystarczy dodać nagranie DWG na tej samej zasadzie, co w przypadku PDF...
1 polubienie
Tak, umieściłem cię z rozszerzeniem pdf, ale myślę, że powinno działać, jeśli dodasz linię
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\" & nomfichier & ".DWG", 0, 0)
Tuż po tym, kto tworzy Twój plik PDF. I nie wiem czy to działa, nie uruchamiałem tego makra.
1 polubienie
Wiem dobrze, D.roger, że był błąd, nie mogłem już zobaczyć komentarzy, na które musieliśmy odpowiedzieć w tym samym czasie.
Przetestuję to i odezwę się do Ciebie, aby Ci powiedzieć ;)
Dziękuję w każdym razie:D
EDIT: Mój Visual Basic jest w języku angielskim, czy może grać?
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Part.SheetPrevious
Part.SheetNext
boolstatus = Part.EditRebuild3()
' Redraw
Part.GraphicsRedraw2
' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
' Zoom To Fit
Part.ViewZoomtofit2
' Redraw
Part.GraphicsRedraw2
' Save As
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\???.DWG", 0, 0)
' Save As
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\???", 0, 0)
End Sub
Zrobiłem ci kod, którego nawet nie użyłeś...
Cóż, spróbuj zrobić to w ten sposób
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
dim nomfichier as string
Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Part.SheetPrevious
Part.SheetNext
boolstatus = Part.EditRebuild3()
' Redraw
Part.GraphicsRedraw2
' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
' Zoom to Area
Part.ViewZoomTo2 0, 0, 0, 0.1, 0.1, 0.1
' Zoom To Fit
Part.ViewZoomtofit2
' Redraw
Part.GraphicsRedraw2
'récupération du nom fichier part
Nomfichier = Part.GetTitle
'suppression de l'extension solidworks
Nomfichier = Strings.Left(Nomfichier, Len(Nomfichier) - 7)
' Save As
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\" & nomfichier & ".DWG", 0, 0)
' Save As
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\" & nomfichier & ".pdf", 0, 0)
End Sub
I myślę, że twoje zoomy będą zależeć od pozycji wyjściowej, więc myślę, że lepiej jest wykadrować się przed nagrywaniem.
1 polubienie
Bengous nie przyjmuje tego źle, jestem nowy w tej rzeczy^^
Jeśli dobrze wypróbowałem twój kod, nie traktuj go źle, po prostu odkrywam
Zanim dojdę do tej linii:
' Save As
longstatus = Part.SaveAs3("C:\Users\dao\Desktop\MACRO_PDF-DWG\ & "nomfichier" & ".DWG", 0, 0)
Powiedział do mnie:
"Błąd kompilacji
a także mając na uwadze, co następuje: separator listy lub )"
W porządku, to działa, bardzo dziękuję za cierpliwość.
Jeszcze raz przepraszam, ale muszę wszystko zrozumieć.
Tak, zapomniałem "Poprawiam się"
Nie martw się, biorę to całkiem sporo
Czy znasz jakąś stronę lub inną, na której mogę nauczyć się podstaw itp
Miłego dnia, jeszcze raz dziękuję ;)
Witaj Maxbzh,
Znajdziecie TUTAJ wątek dyskusyjny, który dotyczył tematyki nauki programowania na Solidworks, radzę przeczytać go do końca, znajdziecie tam całą masę ciekawych linków.
Pozdrowienia