Witam
Używam oprogramowania SW2016 i zmieniłem mapy bazowe.
Chcę utworzyć makro, aby automatycznie aktualizować mapę bazową.
Czy to możliwe? Jeśli tak, to masz jakiś pomysł na temat kodu?
Z góry dziękuję
Fred
Witam
Używam oprogramowania SW2016 i zmieniłem mapy bazowe.
Chcę utworzyć makro, aby automatycznie aktualizować mapę bazową.
Czy to możliwe? Jeśli tak, to masz jakiś pomysł na temat kodu?
Z góry dziękuję
Fred
Kod nie jest wymagany.
Musiałem zrobić to samo.
Uruchom więc makro. (Klikając przycisk odtwarzania)
Kliknij prawym przyciskiem myszy u dołu instalacji, aby wyświetlić różne mapy bazowe.
Albo wybierzesz nową mapę bazową, jeśli jest inna, albo jeśli nazwa jest taka sama, kliknij "załaduj ponownie"
Zamknij makro za pomocą przycisku stop i gotowe
Zrób to samo dla różnych formatów: a3, a4 itp.
Witam
Wraz z adaptacją (ścieżka i nazwa map bazowych) dołączone makro w razie potrzeby zmienia mapy bazowe każdego arkusza.
Ups, duplikat
@Bart
Nie jest to rewelacyjne, bo makro zapamiętuje skalę i inne informacje, które nie są dynamiczne, więc nie będzie grać.
A dzięki wiedzy możliwe jest tworzenie makr, które automatycznie przeglądają pliki w celu ich aktualizacji.
Na przykład niedawno zrobiłem makro (stosunkowo złożone, które):
- Aktualizuje mapy bazowe
- Aktualizuje standardy ubioru
- Aktualizuje bloki (wykrywanie ścieżek i zastępowanie bloków)
- Wymiana naszych tabelek rewizyjnych
- Modyfikacja opcji.
Wszystko to jest zarządzane w Excelu (Solidworks jest więc kontrolowany przez Excel) i mogę tworzyć raporty o aktualizacjach. Mogę uruchomić makro w folderze i zaktualizować wszystkie plany w podfolderach.
Ale wadą jest to, że zajmuje to trochę czasu, ale jeśli policzysz, na naszych 900 planach aktualizacji zaoszczędziłem dużo czasu.
Dziękuję za odpowiedzi.
Niestety nie mogę uzyskać żadnych wyników....
Gdy ręcznie uruchamiam polecenie "reload" we właściwościach planu, to działa, ale gdy zapisuję ten sam manip w makrze, nic się nie dzieje...
Ponieważ nazwy moich map bazowych nie zmieniły się, gdy je zmieniłem, "po prostu" muszę uruchomić polecenie "przeładuj" bez zmiany czegokolwiek innego. Czy to polecenie istnieje samodzielnie bez konieczności sprawdzania poprawności wszystkich innych właściwości planu (na przykład skali)?
Dziękuję za pomoc, bo przyznam, że kodowanie nie jest moją wielką specjalnością....
Tak, istnieje, ale nie jest zarejestrowany :p
Musisz pobrać swój arkusz i użyć funkcji "ReloadTemplate", która ma zastosowanie do typu "SldWorks.Sheet"
Małe makro służące do aktualizowania mapy bazowej w celu dostosowania.
Dim swApp jako SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw jako SldWorks.DrawingDoc
Przyciemnij swSheet jako SldWorks.Sheet
Dim swView As SldWorks.View
Przyciemnij vSheetProps jako wariant
Ustaw swModel = swApp.ActiveDoc
Ustaw swDraw = swModel
Ustaw swSheet = swDraw.GetCurrentSheet
vSheetProps = swSheet.GetProperties
Przyciemnij rozmiar jako ciąg
Jeśli vSheetProps(0) = 6, to
'6 = A4 Krajobraz
templateFormat="A4 - KRAJOBRAZ. SLDDRT" '''Tutaj musimy zmienić "A4 - KRAJOBRAZ. SLDDRT i inne według własnych nazw szablonów
rozmiar = "A4H"
ElseIf vSheetProps(0) = 7 Następnie
'7 = A4 Portret
templateFormat = "A4 - PORTRET. SLDDRT"
rozmiar = "A4"
ElseIf vSheetProps(0) = 8 Następnie
'8 = A3 Krajobraz
templateFormat="A3. SLDDRT"
rozmiar = "A3"
ElseIf vSheetProps(0) = 9 Następnie
'9 = A2 Krajobraz
templateFormat = "A2. SLDDRT"
rozmiar = "A2"
ElseIf vSheetProps(0) = 10 Następnie
'10 = A1 Krajobraz
templateFormat = "A1. SLDDRT"
rozmiar = "A1"
ElseIf vSheetProps(0) = 11 Następnie
'11 = A0 Krajobraz
templateFormat = "A0. SLDDRT"
rozmiar = "A0"
Endif
boolstatus = swModel.SetupSheet5( _
swSheet.GetName, _
vSheetProps(0), _
vSheetProps(1), _
vSheetProps(2), _
vSheetProps(3), _
Prawdziwy_
templateFormat _
vSheetProps(5), _
vSheetProps(6), _
"Domyślnie", _
Prawdziwy_
)
swSheet.ReloadTemplate Fałsz
Następnie możesz umieścić to w pętli i przejrzeć wszystkie arkusze/pliki w folderze i tak dalej.
PS: W lynkoa byłoby naprawdę miło mieć tagi kodowe... Bo naprawdę nie jest łatwo się tym dzielić.
Witam
@fgauvreau Widzę na Twoim profilu, że masz MyCadServices, więc masz narzędzia MyCadTools, a narzędzie do integracji będzie w stanie spełnić Twoją prośbę i wiele więcej.
@+
Dziękuję Wam wszystkim!
KVuillemier: Komendy "swSheet.ReloadTemplate False" po prostu brakowało w makrze Cyril.F.
Dodając go, działa świetnie.
Podziękowania również dla Coyote za sugestię. Nigdy wcześniej nie miałem styczności z tym potężnym narzędziem.
Jeśli odpowiedź rozwiązała Twój problem, możesz wskazać, że rozwiązała Twój problem.