Próbuję zrobić makro, aby zapisać każdy arkusz moich rysunków w formacie DXF i PDF. Do tej pory mogę zapisać wszystkie arkusze w odpowiednim formacie lub aktywować go, majstrując przy opcjach Solidworks.
Niemniej jednak chciałbym mieć możliwość bezpośredniej zmiany nazwy bez zmiany nazwy każdego pliku (tak nudne!) Krótki. Aby to zrobić, chciałbym móc powiedzieć mojemu makru, aby otworzyło arkusz, zapisało go, a następnie przeszło do następnego. Wiem, że muszę postawić na nim miernik.... Ale jak mam mu powiedzieć, żeby wziął arkusz1, potem 2 itd.
I małe pytanie dodatkowe. Czy jest gdzieś podsumowanie wszystkich poleceń specyficznych dla Solidworks?
Dla swojego "licznika" musisz zapętlić wszystkie arkusze, jeśli masz pewność, że zawsze jest to arkusz1, a następnie 2 itd., wszystko, czego potrzebujesz, to instrukcja taka jak ta:
[KOD]
i = 1
Czy (sheet_name istnieć) 'Nie znam instrukcji głowy
sheet_name = "Liść" & i
"Oto Twój kod do eksportu w formacie PDF i DWG
i = i +1
Pętla
[/KOD]
Ale jeśli dana osoba usunie arkusz 1 lub zmieni jego nazwę, to już nie działa!
Musisz więc pobrać nazwę lub numer każdego arkusza, a pomoc API SolidWorks oferuje przykład!
Bardzo dziękuję Lucas P za szybkie i udzielone odpowiedzi.
Przynajmniej teraz jestem uzbrojony w przykłady (na szczęście mój angielski nie jest tak daleko w tyle!)
Tak, widziałem twoje podobne makro. Bardzo mnie to zainspirowało, jeśli chodzi o mnie, dostosowując go do moich potrzeb.
Z drugiej strony, z tego, co rozumiem z tego, co mi przysyłasz, jestem zobowiązany znać nazwy tych arkuszy. Jeśli nie jest to problemem dla moich opowiadań, to tak naprawdę nie radzę sobie z tym, co robili moi poprzednicy.
Miałem więc nadzieję, że uda mi się znaleźć coś takiego jak w Excelu, gdzie można umieścić "Arkusz1", aby oznaczyć ich, a nie ich nazwy.
Zamierzam się trochę pobawić, a potem wrócę i opublikuję cały kod, jeśli zadziała
Mam makro, które idzie gładko ... ale gdzie nic się nie dzieje. Naprawdę nie rozumiem, dlaczego i gdzie to utknęło. Czy ktoś ma jakiś pomysł?
Zapisz podrzędnie() Dim swapp As SldWorks.SldWorks Przyciemnij swdoc jako SldWorks.ModelDoc2 Dim Swdraw jako SldWorks.ModelDoc Przyciemnij swSheet jako SldWorks.Sheet Dim vSheetNames As Variant Dim Nbfeuille As Variant Ustaw swapp = Application.SldWorks Ustaw swdoc = swapp. Plik ActiveDoc Ustaw Swdraw = swdoc Set swSheet = Swdraw.GetCurrentSheet "Komunikat potwierdzający ret = MsgBox("czy chcesz przekonwertować ten rysunek na DXF i PDF?", vbOKCancel + vbExclamation + vbMsgBoxSetForeground + vbSystemModal, "Konwersja laserowa") Jeśli ret = vbAnuluj, to Koniec Rejestracja nowej nazwy Robić newname = InputBox("Proszę określić nową nazwę:", "blabla", nowanazwa) Jeśli StrPtr(nowanazwa) = 0 to MsgBox "procedura anulowana" Wyjdź z subwoofera Zakończ jeżeli: 'Sprawdzanie okien z zakazanymi znakami Wykonaj While InStr(nowa_nazwa, "/") > 0 Or InStr(nowa_nazwa, "*") > 0 Or InStr(nowa_nazwa, "?") > 0 Lub InStr(nowa_nazwa, "<") > 0 Or InStr(nowa, ">") > 0 Lub InStr(nowa, "!") > 0 newname = InputBox("Proszę zauważyć, że nazwa zawiera co najmniej jeden z zabronionych znaków \/:*?""<>!" & vbNewLine & vbNewLine & "Proszę określić nową nazwę:", "save-under by LPR", newname) Pętla Pętla, podczas gdy nowa_nazwa = " " "Dokumentacja rejestracyjna Robić FilePath = InputBox("Określ ścieżkę", "folder nagrań", Ścieżka pliku) Jeśli StrPtr(ŚcieżkaPliku) = 0, to MsgBox "procedura anulowana" Wyjdź z subwoofera Zakończ jeżeli: 'Dodanie znaku \ na końcu nazwy folderu Jeśli Right(FilePath, 1) <> "\", to FilePath = FilePath & "\" Jeśli Dir$(FilePath) <> "" to ISTNIEJE = 1 W przeciwnym razie: MsgBox "katalog nie istnieje, utwórz go" Debug.Print Dir$(FilePath) Zakończ jeżeli: Pętla, gdy ISTNIEJE <> 1 "Wskazuje liczbę arkuszy Nbfeuille = swdoc. GetSheetCount (Liczba arkuszy) Dla i = 0 Do Nbfeuille SWDOC. ArkuszPoprzedni Dalej i 'Przejdź do następnego arkusza, jeśli < do całkowitej liczby Dla i = 0 Do varSheetCount - 1 Jeśli <> 0 to SWMODEL. ArkuszNastępny Zakończ jeżeli: Nagrywanie w formacie DXF i PDF SWDOC. Zapisz jako (Ścieżka pliku + nowa_nazwa + "_" + i + ".dxf") SWDOC. Zapisz jako (ŚcieżkaPliku + nowa_nazwa + "_" + i + ".pdf") Dalej i Koniec subwoofera