Beheer van dubbele schermen op SW

Ik heb 2 schermen op mijn computer. Als ik SolidWorks op deze 2 schermen inzet, heb ik altijd losse elementen op de 2, nooit een straddle display. Maar als ik bijvoorbeeld een assemblage op het linkerscherm heb, wijs ik een van de onderdelen aan en open ik het, het verschijnt op de 2 schermen en ik moet het gaan "vertellen" op welk scherm ik moet weergeven. Het is erg pijnlijk om beleefd te blijven, omdat je elke keer dat je een bestand opent de manipulatie moet uitvoeren.

De vraag is dus de volgende: kunnen we zeggen dat het automatisch opent op een van de 2 schermen (links of rechts), of zelfs dat het direct opent in het scherm waar ik was?

Ik zit op SW13

Bij voorbaat dank

PS: Ik zou liever een echt antwoord dan internetlinks of tutorials. Tenzij je het niet kunt knippen! Bedankt voor uw begrip. :)

1 like

Hallo

 

Zelfde probleem, ik kon geen oplossing vinden!

 

Ter info, weet je dat er twee kleine knoppen rechtsboven in elk actief SolidWorks-venster zijn (naast het kruis om te sluiten), om dit venster direct naar rechts of links te schakelen?

2 likes

Net als Lucas met de bi-screen sinds SW2013 staan er beheerpictogrammen naast het kruis voor het sluiten van bestanden. Misschien moeten we daar eens naar kijken.

 

@+

1 like

En met 2 macro's? De ene om naar links te sturen en de andere naar rechts. Denk je dat er een manier is? Dat koppelen aan een sneltoets...

1 like

Van wat ik net heb gelezen, moet je spelen op de alt-toets en het mozaïekpictogram

Om een betegeld documentvenster op het scherm te rangschikken:

  •  Druk op Alt + klik op Tegel aan de linkerkant  , Tegel aan de rechterkant  Tegel bovenaan  of Tegel onderaan   in de titelbalk van het documentvenster.

Maar het is niet gemakkelijk :-| 

1 like

@XabiB ik niet zie wat voor verschil het maakt om op Alt te drukken? Kun je me meer vertellen?

 

Ik probeer macro's parallel, ik heb ze niet geleerd, maar het werkt niet geweldig :/ Het verschuift het raam slechts gedeeltelijk. Misschien is het ook te wijten aan het feit dat ik 2 schermen van verschillende formaten en resoluties heb ?

2 likes

Misschien is het mogelijk met een macro, maar ik weet het niet zeker, want het is een beetje een "speciale" knop.

U kunt proberen een macro op te nemen door te trainen en tijdens de opname alleen op de knop te klikken (probeer een keer rechts en een keer links):

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

En kijk naar de code.

1 like

A priori moet u (volgens de VBA-API's) het volgende gebruiken:

swApp.SchikkenWindows 1

   ' 0 = Trapsgewijs

       ' 1 = Tegel horizontaal

       ' 2 = Tegel verticaal

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

De code die ik krijg is de volgende:

Dim swApp als object

Deel dimmen als object
Dim boolstatus als Booleaanse
Dim longstatus As Long, longwarnings As Long

Sub hoofd()

Stel swApp in = _
Toepassing.SldWorks

Deel instellen = swApp.ActiveDoc
Deel instellen = swApp.ActiveDoc
myModelView dimmen als object
Stel myModelView = Deel.ActiveView in
myModelView.FrameLeft = 3
myModelView.FrameTop = 24
Stel myModelView = Deel.ActiveView in
myModelView.FrameState = swWindowState_e.swWindowNormal
Einde Sub

 

Ik voel me niet bijzonder op mijn gemak over het onderwerp, het is een paar jaar geleden dat ik makreel heb gegeten, en het was in Excel! :)

2 likes

Oké, dus je kunt de positie en grootte bepalen

myModelView.Framehoogte = 500

Hoogte van het raam

myModelView.Kader Links = 100

'Afstand vanaf links
myModelView.FrameState = swWindowNormal

'Niet te gebruiken in jouw geval, denk ik
myModelView.Frame Top = 100

'Afstand tot de top
myModelView.FrameBreedte = 500

Breedte van het venster

Zie deze link:

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

1 like

Zie deze link die een aantal interessante aanwijzingen geeft, waaronder een macro:

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

 

 

1 like

@Benoit.LF

Om je vraag te beantwoorden, ik heb het net getest en uiteindelijk verandert het alleen de positie en de grootte van het venster in de richting van het gekozen scherm (volgens mozaïekklik)...

Dus nutteloos voor jou, vooral als je 20 bestanden moet verplaatsen ;-)

Goed!

Dus ik heb macro's doorgenomen (bedankt voor je hulp @Lucas). In dit geval 2: Links.swp en Rechts.swp. Mijn linkerscherm is het belangrijkste en grootste, het linker het secundaire, kleinere en 4/3 formaat.

 

Dus ik geef je de code + de macro's in bijgevoegde bestanden

Links.swp

Dim swApp als object

Deel dimmen als object
Dim boolstatus als Booleaanse
Dim longstatus As Long, longwarnings As Long

Sub hoofd()

Stel swApp in = _
Toepassing.SldWorks

Deel instellen = swApp.ActiveDoc
Deel instellen = swApp.ActiveDoc
myModelView dimmen als object
Stel myModelView = Deel.ActiveView in
myModelView.FrameLeft = 0
'Klem het raam naar boven vast
myModelView.FrameTop = 0
'Wig het raam aan de linkerkant
myModelView.FrameWidth = 1910
De breedte van het venster, aan te passen aan de resolutie van het linkerscherm
myModelView.FrameHoogte = 855
De hoogte van het venster, aan te passen aan de resolutie van het linkerscherm
Stel myModelView = Deel.ActiveView in
myModelView.FrameState = swWindowState_e.swWindowNormal
Einde Sub

 

en Right.swp

Dim swApp als object

Deel dimmen als object
Dim boolstatus als Booleaanse
Dim longstatus As Long, longwarnings As Long


Sub hoofd()

Stel swApp in = _
Toepassing.SldWorks

Deel instellen = swApp.ActiveDoc
Deel instellen = swApp.ActiveDoc
myModelView dimmen als object
Stel myModelView = Deel.ActiveView in
myModelView.FrameLeft = 1912
'Klem het raam naar boven vast
myModelView.FrameTop = 0
'Wig het raam aan de linkerkant
myModelView.FrameWidth = 1273
De breedte van het venster, aan te passen aan de resolutie van het linkerscherm
myModelView.FrameHoogte = 855
De hoogte van het venster, aan te passen aan de resolutie van het linkerscherm
Stel myModelView = Deel.ActiveView in
myModelView.FrameState = swWindowState_e.swWindowNormal
Einde Sub

Daarop heb ik voor elk een sneltoets toegewezen: G voor Links (in plaats van het fantastische SW-vergrootglas !!) en D voor Rechts na de hulp http://help.solidworks.com/2012/French/SolidWorks/sldworks/t_assigning_macro_keyboard_shortcut.htm


macro_affichage_gauche_droite.zip
2 likes

Let op: als alle andere geopende bestanden geminimaliseerd zijn, kun je gewoon een tegel maken! En wijs het toe aan een sneltoets!

1 like

@Lucas, het werkt niet zoals gewenst, in het voorbeeld dat ik bij de vraag gaf, wordt het mozaïek gedaan op het scherm waar de montage is!

 

Maar ik heb al snelkoppelingen om horizontale of verticale mozaïeken te maken (H en V).

2 likes

Weet je dat wanneer je een van je antwoorden kiest, je geen punten verdient? ;-)

Ik denk dat mijn antwoord hieronder de vraag beantwoordde: het bevat alle

informatie die nodig is om het venster te besturen en bovendien is uw macro specifiek

naar je goede voornemen, dus ga niet veel mensen helpen!

Maar toch bedankt voor de 4 punten van +1!

Oké, dus je kunt de positie en grootte bepalen

myModelView. Framehoogte = 500

Hoogte van het raam

myModelView. Kader Links = 100

'Afstand vanaf links
myModelView. FrameState = swWindowNormal

'Niet te gebruiken in jouw geval, denk ik
myModelView. Frame Top = 100

'Afstand tot de top
myModelView. FrameBreedte = 500

Breedte van het venster

Zie deze link:

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

 

 

 

 

@Lucas, ik vermoedde dat dit je zou doen reageren: Bijgevoegd is het gesprek dat ik met @Clémentine over dit onderwerp had.

Voor mij was je bericht een aanknopingspunt, erg handig overigens, maar geen volledig antwoord.

 

Een woord voor de wijzen!


screenshot462.jpg
2 likes

Geen zorgen, en ik heb iets geleerd!

Daarna is het een kwestie van standpunt, maar mijn gedeeltelijke antwoord geeft precies het antwoord dat iemand die een macro maakt zou willen. Je macro werkt bijvoorbeeld niet op mijn pc omdat ik niet dezelfde schermen heb.

Ik ben er voorstander van dat mensen hun eigen macro's proberen te maken en ik hou er niet van om het werk op te kauwen!

VBA is zeer krachtig en zeer nuttig voor veel software! Het is dus heel goed om te beginnen, maar het hebben van een kant-en-klare code gaat je niet helpen om je eigen macro's te schrijven!

Maar goed, ik weet voor je volgende vragen over macro's dat ik niet de tijd zal nemen om ze te beantwoorden!

Een woord voor de wijzen!

Je kunt het zo opvatten. We weten in ieder geval waarom je hier bent: de jacht op punten! Wederzijdse hulp en uitwisseling komen op de achtergrond!

2 likes

Ik zou het niet zo zien: we helpen mensen, en er is een systeem om degenen die het meest hebben geïnvesteerd te belonen. Het is een interessant pluspunt. Maar waarom zou ik de tijd nemen om te weten dat ik nooit een volledige macro zal schrijven, omdat ik denk dat dat mensen niet helpt!