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. :)
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 ?
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.
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.
@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 ?
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) :
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 ! :)
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 ;-)
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
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 !
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 !