Macro changement fond de plan

Bonjour,

Je cherche une macro pour changer le fond de plan d'un SLDDRW, peu importe le fond de plan d'origine, qui ouvre les propriétés de la feuille ou bien le pop up de l'image jointe puis que l'on sélectionne le format voulu.

Ca parait simple mais je trouve pas la combine...

Merci pour vos réponses eventuelles.


capture.jpg
1 « J'aime »

Bonjour,

Ci joint une macro qui change le fond de plan existant par un du même format situé dans un répertoire défini... si çapeut donner une piste d'avancement!


changefonddeplans.swp
4 « J'aime »

Bonjour,

Voir la fonction SetupSheet6 (IDrawingDoc) : http://help.solidworks.com/2017/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IDrawingDoc~SetupSheet6.html?verRedirect=1

Cordialement,

1 « J'aime »

Bonjour,

Je ne crois pas que ça réponde à sa demande. Si j'ai bien compris il souhaite pouvoir sélectionner un fond de plan sans connaître à l'avance lequel et donc pouvoir accéder au configurateur de la feuille.

A ma connaissance pas accessible via l'API (qui en général permet de se passer de cette fenêtre d'affichage) il faut donc se développer sa propre interface en listant les différents fonds de plan disponibles.

1 « J'aime »

Pas de solution pour ouvrir la fenêtre désiré, mais si cela convient tu peux changer de fond de plan suivant des règle avec l'outil mycad Intégration.

Si le fond de plan =A4 remplacer par Si A3 remplacer par A3.sldprt...

Voir même si fond de plan = a un certain nom...

Voir capture d'écran ci-jointe.

Peut être que cela pourra répondre à tes besoins même si cela n'est pas la demande initiale.


remplacer_fond_de_plan.png

Je crois qu'il est non realisable via "API".

 

Merci fgauvrau pour la macro, c'est pas exactement ce que je cherchais mais c'est encore mieux puisque ça reprend le format qu'il y a déja!!

Bonjour à tous,
je me permet de relancer le sujet avec mon petit problème de macro de changement de format plan et d’échelle par le biais d’une fenêtre de sélection.

Elle marche à merveille tant que je change de fichier de fond de plan. Mais ! Si je ne veux que changer l’échelle, je perds la feuille, et je dois aller dans les propriétés de la feuille et recharger.
Je n’arrive pas à intégrer ce « Recharger » dans ma macro.

Voici la partie du code pour un plan de détail A3
J’ai la même chose pour les autres fond de plan. C’est surement quelque chose à ajouter à la toute fin de ma macro mais je plante…

@sbadenis ! Vous qui m’avez souvent éclairé les zones d’ombre de mes codes de débutant ^^

Voici une fois que j’ai fait mes choix:

Private Sub CommandValidation_Click()

Unload Fenetre

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2(« Feuille1 », « SHEET », 0, 0, 0, False, 0, Nothing, 0)

‹ A3 - Détail ›
If OptionButton3.Value = True And OptionButtonPrt.Value = True Then
boolstatus = Part.SetupSheet5(swSheet.GetName, 12, 12, TextBox1.Value, TextBox2.Value, True, « Fond de plan prt-A3h.slddrt », 0, 0, « Par défaut », True)
Part.EditTemplate
Part.EditSheet

Else
End If`

Bonjour,

Peut-être tenter un reload: ReloadTemplate Method (ISheet) - 2022 - SOLIDWORKS API Help

1 « J'aime »

Bonjour,
j’ai trouvé la boulette. Tout bête. dans la ligne de code :
Part.SetupSheet5(swSheet.GetName, 12, 12, TextBox1.Value, TextBox2.Value, True, « A3h.slddrt », 0, 0, « Par défaut », True)

Le premier 12 ne correspond pas à mon format A3. Du coup conflit. Il faut 8 pour A3, 9 pour A2, 10 pour A1 et 11 pour A0
Bizarre que ça fonctionne avec 12 pour chaque format d’ailleurs !!!

Et en fin de code :

Part.EditTemplate
Part.EditSheet
Part.ViewZoomtofit2

Bonjour,
Pour éviter d’autres bugs faudrait dans ce cas récupérer le format de la feuille. Je pense que ça sera plus robuste en cas de changement de version de SW et plus propre surtout que de laisser la fonction se baser sur un paramètre UserDefined.


swDwgPaperSizes_e Enumeration - 2022 - SOLIDWORKS API Help

1 « J'aime »