Aktualizacja mapy bazowej

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.


macro_fdp.png
3 polubienia

Witam

Wraz z adaptacją (ścieżka i nazwa map bazowych) dołączone makro w razie potrzeby zmienia mapy bazowe każdego arkusza.


changefonddeplans.swp powiedział:
1 polubienie

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.

1 polubienie

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ć.

1 polubienie

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.