Gestion d'affichage en double écran sur SW

J'ai sur mon poste 2 écrans. Quand je déploie SolidWorks sur ces 2 écrans, j'ai toujours des éléments distincts sur les 2, jamais un affichage à cheval. Or si par exemple j'ai un assemblage sur l'écran de gauche, que je pointe une de ses pièces et que je l'ouvre, elle apparait sur les 2 écrans, et je dois aller lui "dire" sur quel écran s'afficher. C'est très pénible pour rester poli, vu qu'il faut faire la manip à chaque ouverture de fichier.

Donc la question est la suivante : est-ce qu'on peut lui dire d'ouvrir d'office sur un des 2 écrans (gauche ou droite), voire que ça ouvre directement dans l'écran où j'étais ?

Je suis sous SW13

Merci d'avance

PS : je préférerai une vraie réponse que des liens internet ou tuto. Sauf si on ne peut pas y couper ! Merci de votre compréhension. :)

1 « J'aime »

Bonjour,

 

Même problème, je n'ai pas trouvé de solution !

 

Pour info, tu sais qu'il y a deux petits boutons en haut à droite de chaque fenêtre active de SolidWorks (à côté de la croix pour fermer), pour basculer directement cette fenêtre à droite ou à gauche ?

2 « J'aime »

Comme Lucas avec le bi-écran depuis SW2013 il y a des icones de gestion a coté de la croix de fermeture du fichier. Peut être que c'est par là qu'il faut regarder.

 

@+

1 « J'aime »

Et par 2 macros ? Une pour envoyer à gauche et l'autre à droite. Vous pensez qu'il y a moyen ? En couplant ça à un raccourci clavier...

1 « J'aime »

D'après ce que je viens de lire, il faut jouer sur la touche alt et l'icone mosaique

Pour arranger une fenêtre de document en mosaïque à l'écran :

  • Appuyez sur Alt + cliquez sur Mosaïque à gauche  Mosaïque à droite  Mosaïque en haut  , ou Mosaïque en bas   dans la barre de titre de la fenêtre du document.

Mais c'est pas évident comme truc :-| 

1 « J'aime »

@XabiB Je ne vois pas ce que ça change d'appuyer sur Alt ? Tu peux m'en dire plus ?

 

Je suis en train d'essayer en parallèle les macros, j'en ai fais pas apprentissage, mais ça ne marche pas terrible :/ Ca me décale que partiellement la fenêtre. C'est peut-être aussi du au fait que j'ai 2 écrans de tailles et résolutions différentes ?

2 « J'aime »

C'est peut-être possible avec une macro, mais je ne suis pas sûr car c'est un bouton un peu "spécial".

Tu peux tester d'enregistrer une macro par apprentissage, et pendant l'enregristrement, cliquer uniquement sur le bouton (essaye une fois droite et une fois gauche) :

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

Et regarde le code.

1 « J'aime »

A priori il faut utiliser (selon les API VBA) :

swApp.ArrangeWindows 1

'   0 = Cascade

    '   1 = Tile horizontally

    '   2 = Tile vertically

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

Le code que je récupère est le suivant :

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 3
myModelView.FrameTop = 24
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowNormal
End Sub

 

Je ne suis pas spécialement à l'aise sur le sujet, ça fait quelques années que je n'ai pas mangé de maquereaux, et c'etait sous Excel ! :)

2 « J'aime »

Ok, donc tu peux controler la position et la taille 

myModelView.FrameHeight = 500

'hauteur de la fenêtre

myModelView.FrameLeft = 100

'distance depuis la gauche
myModelView.FrameState = swWindowNormal

'à ne pas utiliser dans ton cas je pense
myModelView.FrameTop = 100

'distance depuis le haut
myModelView.FrameWidth = 500

'largeur de la fenêtre

Voir ce lien :

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

1 « J'aime »

Voir ce lien qui donne queqlues pistes intéressantes dont une macro :

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

 

 

1 « J'aime »

@Benoit.LF

Pour répondre à ta question, je viens de tester et en fin de compte ça ne change que la position et la dimension de la fenêtre vers l'écran choisi (selon clic mosaique)...

Donc inutile pour toi surtout si tu as 20 fichiers à repositionner ;-)

Bon !

Donc je suis bien passé par des macros (merci pour ton aide @Lucas). En l'occurence 2 : Gauche.swp et Droite.swp. Mon écran Gauche étant le principal et plus grand, le gauche le secondaire, plus petit et format 4/3.

 

Je vous donne donc le code + les macros en fichiers joints

Gauche.swp

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 0
'Cale la fenêtre en haut
myModelView.FrameTop = 0
'Cale la fenêtre à gauche
myModelView.FrameWidth = 1910
'largeur de la fenêtre, à ajuster selon la définition de l'écran de gauche
myModelView.FrameHeight = 855
'hauteur de la fenêtre, à ajuster selon la définition de l'écran de gauche
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowNormal
End Sub

 

et Droite.swp

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long


Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameLeft = 1912
'Cale la fenêtre en haut
myModelView.FrameTop = 0
'Cale la fenêtre à gauche
myModelView.FrameWidth = 1273
'largeur de la fenêtre, à ajuster selon la définition de l'écran de gauche
myModelView.FrameHeight = 855
'hauteur de la fenêtre, à ajuster selon la définition de l'écran de gauche
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowNormal
End Sub

Là-dessus, j'y ai affecté un raccourci clavier pour chaque : G pour Gauche (à la place de la fabuleuse loupe SW !!!) et D pour Droite en suivant l'aide http://help.solidworks.com/2012/French/SolidWorks/sldworks/t_assigning_macro_keyboard_shortcut.htm


macro_affichage_gauche_droite.zip
2 « J'aime »

Remarque : si tous les autres fichiers ouverts sont minimisés, tu peux simplement faire une mosaique ! Et l'affecter à un raccourcis clavier !

1 « J'aime »

@Lucas, ça ne marche pas comme souhaité, dans l'exemple que je donnais dans la question, la mosaïque se pratique sur l'écran où est l'assemblage !

 

Mais j'ai effectivement déjà des raccourcis pour faire des mosaïque horizontales ou verticales (H et V).

2 « J'aime »

Tu sais que quand tu choisis une de tes réponses, tu ne gagnes pas de point ? ;-)

Je pense que ma réponse ci-dessous répondait à la question : elle contient toutes les

informations nécessaires pour le pilotage de la fenêtre et de plus ta macro est spécifique

à ta résolution, donc ne va pas aider beaucoup de gens !

Mais merci quand même pour les 4 points de +1 !

Ok, donc tu peux controler la position et la taille 

myModelView.FrameHeight = 500

'hauteur de la fenêtre

myModelView.FrameLeft = 100

'distance depuis la gauche
myModelView.FrameState = swWindowNormal

'à ne pas utiliser dans ton cas je pense
myModelView.FrameTop = 100

'distance depuis le haut
myModelView.FrameWidth = 500

'largeur de la fenêtre

Voir ce lien :

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

 

 

 

 

@Lucas, je me doutais que ça te ferais réagir : Ci-joint la conversation que j'ai eu avec @Clémentine à ce sujet.

Pour moi ton message était une piste, forte utile d'ailleurs, mais pas une réponse complète.

 

A bon entendeur !


screenshot462.jpg
2 « J'aime »

Pas de soucis, et en plus j'ai appris quelque chose !

Après c'est une question de point de vue, mais ma réponse partielle donne exactement la réponse que quelqu'un qui fait une macro voudrait. Ta macro ne va pas fonctionner sur mon PC par exemple car je n'ai pas les mêmes écrans.

Je suis pour que les gens essayent de faire leur macros eux-même et je n'aime pas mâcher le travail !

VBA est très puissant et très utile pour de nombreux logiciels ! Donc c'est très bien s'y initier, mais avoir un code tout fait ne va pas aider à écrire ses propres macros !

Mais bon, je saurai pour tes prochaines quesitons sur les macros que je ne prendrai pas de temps pour y répondre !

A bon entendeur !

Tu peux le prendre comme ça. Au moins, on sait pourquoi tu es là : la chasse aux points ! L'entraide et l'échange passe au second plan !

2 « J'aime »

Je ne verrais pas ça comme ça : on aide les gens, et il y a un système pour récompenser ceux qui ce sont le plus investi. C'est un plus intéressant. Mais pourquoi je prendrais du temps en sachant que je n'écrirai jamais de macro complète, car je pense que ce n'est pas aider les gens !