Macro SOLIDWORKS permettant de créer des mises en plan pour toutes les configurations avec une nomenclature actualisée
Article par Samony Riyaz mis à jour le 21 novembre 2019
Article
Avez-vous déjà eu une pièce avec des dizaines, des centaines ou des milliers de configurations ? Et vous êtes responsable de la création d'un dessin pour CHACUNE de ces configurations avec une nomenclature correcte ?
Et bien n'ayez plus peur ! Nous avons une macro SOLIDWORKS pour vous, dans laquelle tout ce que vous avez à faire est de... changer deux lignes, cliquer sur un bouton, vous asseoir et vous détendre pendant que SOLIDWORKS génère les fichiers automatiquement.
Commençons.
- Créer une nouvelle macro
- Utilisez le bouton Nouvelle macro dans la barre d'outils des macros (ou sélectionnez Outils > Macro > Nouvelle).
- Assurez-vous que les références dans SOLIDWORKS Visual Basic Editor (VBA) sont correctes avec votre version de SOLIDWORKS.
- Copiez le code ci-dessous et modifiez le texte orange surligné pour l'adapter à votre environnement :
- Enregistrer le code
- Exécuter
Conditions préalables: Assurez-vous que vous exécutez le code ci-dessous sur un DESSIN contenant un MODÈLE, qui contient des configurations multiples.
Résultats: Dans le dossier OUTPUT_FOLDER de votre choix, vous devriez voir les fichiers de dessin pour CHAQUE configuration avec une nomenclature mise à jour.
Const OUTPUT_FOLDER = "C:\Out\" Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swDraw As SldWorks.DrawingDoc Dim swRefModel As SldWorks.ModelDoc2 Sub main() Dim i As Integer Dim vConfs As Variant Dim swView As SldWorks.View Dim confName As String Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swDraw = swModel Set swView = swDraw.GetFirstView().GetNextView Set swRefModel = swView.ReferencedDocument vConfs = swRefModel.GetConfigurationNames Pour i = 0 à UBound(vConfs) confName = vConfs(i) ProcessViews confName swModel.ForceRebuild3 False boolstatus = swModel.Extension.SaveAs(OUTPUT_FOLDER + confName + ".slddrw", swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Copy, Nothing, 0, 0) Suivant i MsgBox "Completed" (terminé) Set swApp = Rien Set swModel = Rien Set swDraw = Rien Set swRefModel = Rien End Sub Sub ProcessViews(confName As String) Dim i As Integer Dim vSheets As Variant Dim j As Integer Dim vViews As Variant Dim swFeat As SldWorks.Feature Dim swView As SldWorks.View vFeat = swDraw.GetViews Pour i = 0 à UBound(vSheets) vViews = vSheets(i) For j = 0 To UBound(vViews) Set swView = vViews(j) swView.ReferencedConfiguration = confName Suivant j Suppression de la nomenclature Set swFeat = swDraw.FirstFeature Debug.Print swFeat.Name + " - " + swFeat.GetTypeName While Not swFeat Is Nothing Debug.Print swFeat.Name + " - " + swFeat.GetTypeName Si "BomFeat" = swFeat.GetTypeName Alors swFeat.Select2 False, -1 swDraw.Extension.DeleteSelection2 swDeleteSelectionOptions_e.swDelete_Absorbed End If Set swFeat = swFeat.GetNextFeature Wend boolstatus = swModel.Extension.SelectByID2(swView.Name, "DRAWINGVIEW", 0, 0, 0, False, 0, Nothing, 0) AnchorType = swBOMConfigurationAnchorType_e.swBOMConfigurationAnchor_TopLeft BomType = swBomType_e.swBomType_PartsOnly Configuration = confName TableTemplate = "" ' Insertion d'une table de nomenclature Set swBomAnn = swView.InsertBomTable2(True, 0.4, 0.3, AnchorType, BomType, Configuration, TableTemplate) swModel.ClearSelection2 True ' Mise à jour de l'arbre de conception FeatureManager swDraw.ForceRebuild Suivant i Set swFeat = Rien Set swView = Rien End Sub
NOTE: Les exemples d'API sont fournis tels quels et ne doivent être utilisés qu'à titre de référence. Vous pouvez les utiliser dans votre environnement, les modifier ou les distribuer, mais Javelin n'est pas responsable des types de dommages quels qu'ils soient (y compris, mais sans s'y limiter, les dommages résultant de la perte d'utilisation, de données, de bénéfices ou d'affaires) découlant de l'utilisation de ces informations, applications ou services.
En savoir plus sur les macros/API de SOLIDWORKS
Javelin propose des cours de formation SOLIDWORKS VB for Applications et SOLIDWORKS API, que vous pouvez suivre en ligne ou dans l'une de nos salles de classe canadiennes. Consultez notre calendrier pour en savoir plus.
Liens connexes
Obtenez des services SOLIDWORKS certifiés de Javelin
Javelin Experts peut vous aider à :