Makro zmienia tło

Witam

Szukam makra do zmiany tła SLDDRW, bez względu na oryginalną mapę bazową, która otwiera właściwości arkusza lub wyskakujące okienko dołączonego obrazu, a następnie wybiera żądany format.

Wydaje się to proste, ale nie mogę znaleźć sztuczki...

Dziękuję za możliwe odpowiedzi.


capture.jpg
1 polubienie

Witam

W załączeniu znajduje się makro, które zmienia istniejący plan tła o jeden z tych samych formatów, który znajduje się w zdefiniowanym katalogu... jeśli może dać ślad postępu!


changefonddeplans.swp powiedział:
4 polubienia

Witam

Zobacz funkcję SetupSheet6 (IDrawingDoc): http://help.solidworks.com/2017/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IDrawingDoc~SetupSheet6.html?verRedirect=1

Pozdrowienia

1 polubienie

Witam

Nie sądzę, żeby to spełniało jego prośbę. Jeśli dobrze rozumiem, chce mieć możliwość wyboru mapy bazowej, nie wiedząc z góry, która z nich, a tym samym mieć dostęp do konfiguratora arkusza.

O ile mi wiadomo, nie jest to dostępne przez API (które generalnie pozwala obejść się bez tego okna wyświetlania), musisz opracować własny interfejs, wyświetlając listę różnych dostępnych map bazowych.

1 polubienie

Nie ma rozwiązania, aby otworzyć żądane okno, ale jeśli to pasuje, możesz zmienić tło zgodnie z regułami za pomocą narzędzia Mycad Integration.

Jeśli mapa bazowa =A4 zamień na Jeśli A3, zamień na A3.sldprt...

Zobacz, nawet jeśli background = ma określoną nazwę...

Zobacz załączony zrzut ekranu.

Być może spełni Twoje potrzeby, nawet jeśli nie jest to początkowa prośba.


remplacer_fond_de_plan.png

Uważam, że nie jest to wykonalne przez "API".

 

Dziękuję fgauvrau za makro, to nie jest dokładnie to, czego szukałem, ale jest jeszcze lepiej, ponieważ przyjmuje format, który już istnieje!!

Cze wszystkim
Pozwalam sobie ponownie uruchomić temat z moim małym problemem makro zmiany formatu planu i skali przez okno wyboru.

Działa cudownie, o ile zmieniam plik tła. Oprócz! Jeśli chcę tylko zmienić skalę, gubię arkusz i muszę przejść do właściwości arkusza i ponownie załadować.
Nie mogę zintegrować tego "Doładowania" z moim makro.

Oto część kodu dla szczegółowego planu A3
To samo mam do innych środowisk. To pewnie coś do dodania na samym końcu mojego makra, ale się zawieszam...

@sbadenis ! Ty, który często oświetlałeś szare obszary moich kodów dla początkujących^^

Oto, kiedy już dokonałem swoich wyborów:

Prywatna subskrypcja CommandValidation_Click()

Okno rozładunku

Ustaw swApp = Application.SldWorks
Ustaw część = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("Arkusz1", "ARKUSZ", 0, 0, 0, Fałsz, 0, Nic, 0)

‹ A3 - Szczegóły ›
Jeśli OptionButton3.Value = True i OptionButtonPrt.Value = True to
boolstatus = Part.SetupSheet5(swSheet.GetName, 12, 12, TextBox1.Value, TextBox2.Value, True, "Basemap prt-A3h.slddrt", 0, 0, "Default", True)
Part.EditTemplate (Szablon części)
Part.EditSheet (Arkusz edycji)

Inaczej
Koniec, jeśli"

Witam

Może spróbuj przeładować : Metoda ReloadTemplate (ISheet) - 2022 - Pomoc SOLIDWORKS API

1 polubienie

Witam
Znalazłem pieróg. Całkiem proste. W wierszu kodu:
Part.SetupSheet5(swSheet.GetName, 12, 12, TextBox1.Value, TextBox2.Value, True, "A3h.slddrt", 0, 0, "Default", True)

Pierwsze 12 nie odpowiada mojemu formatowi A3. A więc konflikt. Potrzeba 8 dla A3, 9 dla A2, 10 dla A1 i 11 dla A0
Dziwne, że działa z 12 dla każdego formatu, nawiasem mówiąc!!

A na końcu kodu:

Part.EditTemplate (Szablon części)
Part.EditSheet (Arkusz edycji)
Part.ViewZoomtofit2

Witam
Aby uniknąć innych błędów, w takim przypadku musiałbyś odzyskać format arkusza. Myślę, że będzie to bardziej niezawodne w przypadku zmiany wersji oprogramowania i czystsze, zwłaszcza niż pozwolenie na to, aby funkcja była oparta na parametrze UserDefed.


Wyliczenie swDwgPaperSizes_e - 2022 - Pomoc SOLIDWORKS API

1 polubienie