Mise à Jour fond de plan

Bonjour,

J'utilise SW2016 et j'ai modifié mes fonds de plan.

Je souhaiterai faire une macro pour mettre à jour automatiquement mon fond de plan.

Est ce possible? Si oui, une idée du code?

Merci d'avance

Fred

Pas besoin de code.

 

J'ai du faire la même chose.

 

Donc lancez une macro. (En cliquant sur play)

Faites un clic droit en bas de votre mep pour afficher les différent fond de plan.

Soit vous selectionnez le nouveau fond de plan si il est diffrent, soit si le nom est identique cliquez sur "recharger"

Cloturer votre macro avec le bouton stop et le tour est joué

 

Faites pareil pour vos différents format : a3 a4 etc...


macro_fdp.png
3 « J'aime »

Bonjour,

Avec adapation (chemin d'accès et nom des fonds de plans), la macro jointe change les fonds de plan de chaque feuille s'il y a lieu.


changefonddeplans.swp
1 « J'aime »

Oups, doublon

@Bart

C'est pas top, car la macro mémorise l'échelle et d'autre information qui ne sont pas dynamique, ça ne jouera donc pas.

Et il est possible avec des connaissances de faire des macros parcourant automatiquement les fichiers pour les mettres à jour.

 

J'ai par exemple récemment fait une macro (Relativement complexe qui):

- Met à jour les fonds de plan
- Met à jour les normes d'habillage
- Met à jour les blocs (Détection des chemins et remplacement des blocs)
- Remplacement de nos tables de révision
- Modification d'options.

Tout ceci étant géré sur excel (Solidworks est donc piloté par excel) et je peux faire des rapports sur les mises à jour. Je peux lancer la macro sur un dossier et elle met à jour tous les plans dans les sous dossiers.

Mais l'inconvénient est que ça prend du temps, mais si on calcul, sur nos 900 plans à mettre à jour j'ai gagné beaucoup de temps.

1 « J'aime »

Merci pour vos réponses.

Malheureusement je n'arrive pas à obtenir de résultat....

Lorsque je lance manuellement la commande "recharger" dans les proprités du plan ça fonctionne, mais lorsque j'enregistre la même manip dans une macro rien ne se passe...

Comme mes noms de fond de plan n'ont pas changer lorsque je les ai modifiés, il "suffit" de lancer la commande "recharger" sans rien changer au reste. Cette commande existe-t-elle toute seule sans avoir à valider toutes les autres proprités du plan (echelle par exemple)?

Merci de votre aide car j'avoue que le code n'est pas ma grande spécialité....

Oui elle existe mais n'est pas enregistrer :p

Il faut récupéré ta feuille et utiliser la fonction "ReloadTemplate" qui s'applique sur un type "SldWorks.Sheet"

Une petite macro pour la mise à jour de ton fond de plan à adapter.

Dim swApp                       As SldWorks.SldWorks
Dim swModel                     As SldWorks.ModelDoc2
Dim swDraw                      As SldWorks.DrawingDoc
Dim swSheet                     As SldWorks.Sheet
Dim swView                      As SldWorks.View
Dim vSheetProps                 As Variant

Set swModel = swApp.ActiveDoc
Set swDraw = swModel
Set swSheet = swDraw.GetCurrentSheet
vSheetProps = swSheet.GetProperties

Dim size As String
If vSheetProps(0) = 6 Then
            '6 = A4 Paysage
            templateFormat = "A4 - PAYSAGE.SLDDRT" '''Ici il faut changer le "A4 - PAYSAGE.SLDDRT et les autres par tes noms de template à toi
            size = "A4H"
ElseIf vSheetProps(0) = 7 Then
            '7 = A4 Portrait
            templateFormat = "A4 - PORTRAIT.SLDDRT"
            size = "A4"
ElseIf vSheetProps(0) = 8 Then
            '8 = A3 Paysage
            templateFormat = "A3.SLDDRT"
            size = "A3"
ElseIf vSheetProps(0) = 9 Then
            '9 = A2 Paysage
            templateFormat = "A2.SLDDRT"
            size = "A2"
ElseIf vSheetProps(0) = 10 Then
            '10 = A1 Paysage
            templateFormat = "A1.SLDDRT"
            size = "A1"
ElseIf vSheetProps(0) = 11 Then
            '11 = A0 Paysage
            templateFormat = "A0.SLDDRT"
            size = "A0"
Endif


boolstatus = swModel.SetupSheet5( _
    swSheet.GetName, _
    vSheetProps(0), _
    vSheetProps(1), _
    vSheetProps(2), _
    vSheetProps(3), _
    True, _
    templateFormat, _
    vSheetProps(5), _
    vSheetProps(6), _
    "Par défaut", _
    True _
)
               
swSheet.ReloadTemplate False

 

Tu peux ensuite mettre ça dans une boucle et parcourir toutes les feuilles / tous les fichiers d'un dossier, etc.

PS: A lynkoa, ce serait vraiment bien d'avoir des balises de code... car c'est vraiment pas simple à partager.

1 « J'aime »

Bonjour,

@fgauvreau je vois sur votre profil que vosu avez MyCadServices, vous avez donc les outils MyCadTools et l'outils Intégration pourra répondre à votre demande et bien plus encore.

@+

Merci à tous!

KVuillemier: La commande "swSheet.ReloadTemplate False" manquait juste dans la macro de Cyril.F.

En l'ajoutant ça marche super.

 

Merci également à Coyote pour la suggestion. Je n'avais jamais explorer cet outil puissant.

Si la réponse à résolu ton problème, tu peux indiquer qu'elle a résolu ton problème.