Voilà mon problème. J'ai une macro qui permet de renommer les feuilles des mises en plan par le nom de la config insérée dans cette feuille. Jusqu'à la version 2016, elle fonctionnait très bien. Je viens de passer en 2017 SP4.1 et elle ne fonctionne plus correctement. Elle ne change que le nom de la 1ère feuille.
Et comme je n'y connait rien en VB, je suis dans le caca ...
Le code s'execute comme d'habitude, il change le nom de la 1ère feuille, passe aux feuilles suivantes mais ne change pas le nom. Il laisse le nom déjà présent.
Apres essai sous SW2016 elle ne fonctionne deja pas tres bien car
Pas de controle des nom precedent de feuille ce qui fait que si la configuration a le meme nom SW ne peut pas renomer plusieur feuille avec le meme nom
En theorie non c'est pas possible mais par contre dans ta mise en plan il est possible que la vue de reference fasse toujours appel a la meme configration
Les piste sont les suivantes
SetupSheet5 est obsolete donc deja le mettre à jour :)
Juste pour être sur, tu as une pièce avec x configurations, et les x configurations on leur MEP dans un seul fichier MEP avec une configuration par folio?
J'abonde dans le sens de gt22 mais le plus simple serait de dérouler la macro en pas-à-pas pour voir le comportement et rajouter des debug.print pour vérifier le contenu de configname.
De plus, il aurait était bon de "zapper" le fond de plan, ne scanner que les vues et arrêter le traitement une fois une valeur obtenu sur la configuration.
Je confirme par contre que ça fonctionne sur 2016 sans problème (même si peu propre en terme de code) et qu'en toute théorie Solidworks ne s'amuse pas à retirer les fonctions dites obsolètes donc probable bug ailleurs ou incompatibilité hardware/software.
hola, je suis largué. Je ne comprends pas du tout de quoi vous parlez.
Est-ce que quelqu'un arrive à corriger cette macro pour qu'elle fonctionne sur SW17 ?
Voici le contenu du fichier .swp
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swDraw As SldWorks.DrawingDoc Dim swSheet As SldWorks.Sheet Dim swModelview2 As Configuration Dim vSheets As Variant Dim swView As SldWorks.View Dim Part As Object Dim i As Integer
Sub main()
'Le template se trouve dans le dossier template drawing de SW
Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swDraw = swModel Dim ConfigName As String Dim bRet As Boolean Dim vSheetProps As Variant
vSheets = swDraw.GetSheetNames For i = 1 To swDraw.GetSheetCount swDraw.ActivateSheet vSheets(i - 1) Set swSheet = swDraw.GetCurrentSheet
Count = swDraw.GetModelViewCount
Set swView = swDraw.GetFirstView
Do While Not swView Is Nothing ConfigName = swView.ReferencedConfiguration Set swView = swView.GetNextView Loop Set Part = swApp.ActiveDoc boolstatus = Part.SetupSheet5(swSheet.GetName, 12, 12, 2, 3, True, "a3 - iso - NND.slddrt", 0.42, 0.297, "Par défaut", True) swSheet.SetName ConfigName