Zarządzanie wyświetlaniem na dwóch ekranach w oprogramowaniu

Mam 2 ekrany na moim komputerze. Kiedy wdrażam SolidWorks na tych 2 ekranach, zawsze mam oddzielne elementy na 2, nigdy na ekranie Straddle. Ale jeśli np. mam zespół na lewym ekranie, wskazuję na jedną z jego części i otwieram ją, pojawia się na 2 ekranach, a ja muszę iść i "powiedzieć" mu, na którym ekranie ma się wyświetlić. Zachowanie uprzejmości jest bardzo bolesne, ponieważ musisz dokonywać manipulacji za każdym razem, gdy otwierasz plik.

Pytanie jest więc następujące: czy możemy powiedzieć, aby otwierał się automatycznie na jednym z 2 ekranów (lewym lub prawym), a nawet, aby otwierał się bezpośrednio na ekranie, na którym byłem?

Jestem na SW13

Z góry dziękuję

PS: Wolałbym prawdziwą odpowiedź niż linki internetowe lub samouczki. Chyba, że nie możesz tego przeciąć! Dziękujemy za zrozumienie. :)

1 polubienie

Witam

 

Ten sam problem, nie mogłem znaleźć rozwiązania!

 

FYI, czy wiesz, że w prawym górnym rogu każdego aktywnego okna SolidWorks (obok krzyżyka, aby zamknąć) znajdują się dwa małe przyciski, aby przełączyć to okno bezpośrednio w prawo lub w lewo?

2 polubienia

Podobnie jak w przypadku Lucasa z bi-screenem od SW2013, obok krzyżyka zamykającego pliki znajdują się ikony zarządzania. Może właśnie tam powinniśmy szukać.

 

@+

1 polubienie

A przez 2 makra? Jeden do wysłania w lewo, a drugi w prawo. Myślisz, że jest na to sposób? Łącząc to ze skrótem klawiaturowym...

1 polubienie

Z tego co właśnie przeczytałem, trzeba grać na alt i ikonie mozaiki

Aby rozmieścić sąsiadujące okno dokumentu na ekranie :

  •  Naciśnij Alt + kliknij Sąsiadująco po lewej stronie  Sąsiadująco po prawej  Sąsiadująco u góry  lub Sąsiadująco u dołu   paska tytułu okna dokumentu.

Ale to nie jest łatwa sprawa :-| 

1 polubienie

@XabiB Nie widzę różnicy, czy naciskam Alt? Czy możesz powiedzieć mi coś więcej?

 

Próbuję makr równolegle, nie nauczyłem się ich, ale nie działa to świetnie :/ Przesuwa okno tylko częściowo. Może wynika to też z tego, że mam 2 ekrany o różnych rozmiarach i rozdzielczościach ?

2 polubienia

Może jest to możliwe z makrem, ale nie jestem pewien, bo to trochę "specjalny" przycisk.

Możesz spróbować nagrać makro poprzez trening, a podczas nagrywania kliknij tylko przycisk (spróbuj raz w prawo i raz w lewo):

http://help.solidworks.com/2013/french/SolidWorks/sldworks/c_recording_playing_macros.htm

I spójrz na kod.

1 polubienie

A priori, których powinieneś użyć (zgodnie z interfejsami API VBA):

swApp.ZorganizowaćOkna 1

   ' 0 = Kaskada

       ' 1 = Ułóż poziomo

       ' 2 = Ułóż pionowo

http://help.solidworks.com/2012/English/api/sldworksapi/Create_and_Arrange_Windows_Example_VB.htm

Kod, który otrzymuję, jest następujący:

Dim swApp As Object

Przyciemnij część jako obiekt
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Ustaw swApp = _
Aplikacja.SldWorks

Ustaw część = swApp.ActiveDoc
Ustaw część = swApp.ActiveDoc
Przyciemnij myModelView jako obiekt
Ustaw myModelView = Part.ActiveView
myModelView.FrameLeft = 3
myModelView.FrameTop = 24
Ustaw myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowNormal
Koniec subwoofera

 

Nie czuję się szczególnie komfortowo w tym temacie, minęło kilka lat, odkąd jadłem makrelę i to w Excelu! :)

2 polubienia

Okej, więc możesz kontrolować pozycję i rozmiar 

myModelView.Wysokość ramy = 500

Wysokość okna

myModelView.FrameLeft = 100

"Odległość od lewej strony
myModelView.FrameState = swWindowNormal

– Myślę, że nie do użycia w twoim przypadku
myModelView.FrameTop = 100

"Odległość od szczytu
myModelView.Szerokość ramki = 500

Szerokość okna

Zobacz ten link:

http://help.solidworks.com/2012/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ISldWorks~FrameState.html

1 polubienie

Zobacz ten link, który podaje kilka interesujących leadów, w tym makro:

https://forum.solidworks.com/message/202935

 

 

1 polubienie

@Benoit.LF

Odpowiadając na twoje pytanie, właśnie przetestowałem i ostatecznie zmienia tylko położenie i rozmiar okna w kierunku wybranego ekranu (zgodnie z kliknięciem mozaiki)...

Więc bezużyteczne dla Ciebie, zwłaszcza jeśli masz 20 plików do zmiany położenia ;-)

Dobry!

Więc przeszedłem przez makra (dziękuję za pomoc @Lucas). W tym przypadku 2: Left.swp i Right.swp. Mój lewy ekran jest główny i największy, lewy drugorzędny, mniejszy i w formacie 4/3.

 

Więc dam ci kod + makra w załączonych plikach

Left.swp (po lewej)

Dim swApp As Object

Przyciemnij część jako obiekt
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Ustaw swApp = _
Aplikacja.SldWorks

Ustaw część = swApp.ActiveDoc
Ustaw część = swApp.ActiveDoc
Przyciemnij myModelView jako obiekt
Ustaw myModelView = Part.ActiveView
myModelView.FrameLeft = 0
– Zarzynaj okno na górze
myModelView.FrameTop = 0
"Zaklinuj okno po lewej stronie
myModelView.FrameWidth = 1910
Szerokość okna, którą należy dostosować do rozdzielczości lewego ekranu
myModelView.FrameHeight = 855
Wysokość okna, którą należy dostosować do rozdzielczości lewego ekranu
Ustaw myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowNormal
Koniec subwoofera

 

oraz Right.swp

Dim swApp As Object

Przyciemnij część jako obiekt
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long


Sub main()

Ustaw swApp = _
Aplikacja.SldWorks

Ustaw część = swApp.ActiveDoc
Ustaw część = swApp.ActiveDoc
Przyciemnij myModelView jako obiekt
Ustaw myModelView = Part.ActiveView
myModelView.FrameLeft = 1912
– Zarzynaj okno na górze
myModelView.FrameTop = 0
"Zaklinuj okno po lewej stronie
myModelView.FrameWidth = 1273
Szerokość okna, którą należy dostosować do rozdzielczości lewego ekranu
myModelView.FrameHeight = 855
Wysokość okna, którą należy dostosować do rozdzielczości lewego ekranu
Ustaw myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowNormal
Koniec subwoofera

Następnie przypisałem każdemu z nich skrót klawiaturowy: G jak Left (zamiast bajecznego szkła powiększającego SW !!) i D jak Prawo zgodnie z http://help.solidworks.com/2012/French/SolidWorks/sldworks/t_assigning_macro_keyboard_shortcut.htm pomocy


macro_affichage_gauche_droite.zip
2 polubienia

Uwaga: jeśli wszystkie inne otwarte pliki są zminimalizowane, możesz po prostu zrobić kafelek! I przypisz go do skrótu klawiaturowego!

1 polubienie

@Lucas nie działa to zgodnie z oczekiwaniami, w przykładzie, który podałem w pytaniu, mozaika jest wykonywana na ekranie, na którym znajduje się montaż!

 

Ale mam już skróty do robienia mozaik poziomych lub pionowych (H i V).

2 polubienia

Czy wiesz, że gdy wybierzesz jedną ze swoich odpowiedzi, nie otrzymasz żadnych punktów? ;-)

Myślę, że moja poniższa odpowiedź odpowiedziała na pytanie: zawiera wszystkie

informacje potrzebne do sterowania oknem, a ponadto makro jest specyficzne

do swojego postanowienia, więc nie idź pomagać wielu ludziom!

Ale i tak dziękuję za 4 punkty +1!

Okej, więc możesz kontrolować pozycję i rozmiar 

myModelView. Wysokość ramy = 500

Wysokość okna

myModelView. FrameLeft = 100

"Odległość od lewej strony
myModelView. FrameState = swWindowNormal

– Myślę, że nie do użycia w twoim przypadku
myModelView. FrameTop = 100

"Odległość od szczytu
myModelView. Szerokość ramki = 500

Szerokość okna

Zobacz ten link:

http://help.solidworks.com/2012/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.ISldWorks~FrameState.html

 

 

 

 

@Lucas, podejrzewałem, że to sprawi, że zareagujesz: W załączeniu rozmowa, którą przeprowadziłem z @Clémentine na ten temat.

Dla mnie Twoja wiadomość była tropem, zresztą bardzo przydatnym, ale nie pełną odpowiedzią.

 

Słowo do mądrych!


screenshot462.jpg
2 polubienia

Nie martw się i czegoś się nauczyłem!

Potem jest to kwestia punktu widzenia, ale moja częściowa odpowiedź daje dokładnie taką odpowiedź, jakiej chciałby ktoś, kto tworzy makro. Twoje makro nie będzie działać na moim komputerze, na przykład dlatego, że nie mam tych samych ekranów.

Jestem za tym, aby ludzie próbowali robić własne makra i nie lubię przeżuwać pracy!

VBA jest bardzo potężny i bardzo przydatny dla wielu programów! Dlatego bardzo dobrze jest zacząć, ale posiadanie gotowego kodu nie pomoże Ci w pisaniu własnych makr!

Ale hej, będę wiedział o twoich następnych pytaniach dotyczących makr, że nie poświęcę czasu, aby na nie odpowiedzieć!

Słowo do mądrych!

Możesz to tak potraktować. Przynajmniej wiemy, po co tu jesteś: polowanie na punkty! Wzajemna pomoc i wymiana schodzą na dalszy plan!

2 polubienia

Ja bym tego tak nie postrzegał: my pomagamy ludziom i jest system, który nagradza tych, którzy zainwestowali najwięcej. To ciekawy plus. Ale dlaczego miałbym poświęcać czas wiedząc, że nigdy nie napiszę pełnego makra, ponieważ myślę, że to nie pomaga ludziom!