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
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...
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.
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.
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.
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.