'* Programme qui lance et valide le Smartpropertiess '* Auteur : Sébastien DENIS '* Date : Décembre 2015 '* Titre de l'utilitaire : Smartproperties Auto '* But : Cette macro lance et validele smartproperties '* (vérification effectuer à chaque reconstruction (crtl+Q) du document) '* Validité: SolidWorks 2014 Option Explicit Dim swApp As SldWorks.SldWorks Dim swMacroFeature As SldWorks.Feature Dim swdoc As SldWorks.ModelDoc2 Dim swMFdata As SldWorks.MacroFeatureData Public VarparamNames As Variant Public VarparamTypes As Variant Public VarparamValues As Variant '**************************************************************************************************************** '* Lors de la premiére utilisation on passe par cette procédure pour introduire la macro dans le feature manager '* on décris les paramétre qui vont permettre l'utilisation de cette macro feature '**************************************************************************************************************** Sub main() 'Déclaration des objets SolidWorks et document 'Déclaration des objets indispensable à la définition des MacroFeatures Dim swFeatureMgr As SldWorks.FeatureManager Dim stFctName As Variant Dim vrFctType As Variant Dim vrFctValue As Variant Dim stMacroMethods(8) As String Dim vrMacroMethods As Variant Dim stFileName As String Dim lgOption As Long Set swApp = Application.SldWorks Set swdoc = swApp.ActiveDoc 'on test les conditions de démarage If swdoc Is Nothing Then swApp.SendMsgToUser2 "Il n'y a pas de document actif.", swMbWarning, swMbOk Exit Sub End If ' DEFINITION DES PROCEDURES A EXECUTER EN FONCTION DES EVENEMENTS stFileName = swApp.GetCurrentMacroPathName() ' On spécifie le nom de la macro a exécuté, le nom du module et ' le nom de la procédure que l'on exécute a chaque reconstruction ' Macro à exécuter à chaque reconstruction stMacroMethods(0) = stFileName 'Module dans la macro stMacroMethods(1) = "mdlProgramme" ' Procedure dans le module à executer stMacroMethods(2) = "swmRegen" ' On spécifie le nom de la macro a exécuté, le nom du module et le nom ' de la procédure que l'on exécute a chaque édition ' Macro à exécuter en édition stMacroMethods(3) = stFileName ' Module dans la macro d'édition stMacroMethods(4) = "mdlProgramme" ' Procedure dans la macro d'édition stMacroMethods(5) = "swmEdition" ' On spécifie le nom de la macro a exécuté, le nom du module et le nom ' de la procédure que l'on exécute a chaque suppression ' Facultatif, Macro à exécuter en cas de suppression ou effacement stMacroMethods(6) = "" ' Facultatif, Module à exécuter en cas de suppression ou effacement stMacroMethods(7) = "" ' Facultatif, Procédure à exécuter en cas de suppression ou effacement stMacroMethods(8) = "" 'On transforme les string en variant vrMacroMethods = stMacroMethods ' Option de la swMacroFeature ' swMacroFeatureByDefault ou swMacroFeatureAlwaysAtEnd lgOption = swMacroFeatureAlwaysAtEnd Set swFeatureMgr = swdoc.FeatureManager 'On insert la macro feature dans le feature manager du document ouvert avec le nom,et les paramètres défini au dessus. Set swMacroFeature = swFeatureMgr.InsertMacroFeature("Smartproperties_auto", "", _ vrMacroMethods, stFctName, vrFctType, vrFctValue, Nothing, swMacroFeatureByDefault) 'On passe sur l'édition pour mettre les paramètres Call swmEdition(swApp, swdoc, swMacroFeature) End Sub '**************************************************************************************************************** '* Module que l'on exécute lorsque l'on fait lance la macro pour la 1ère fois '**************************************************************************************************************** Function swmEdition(vrApp As Variant, vrPart As Variant, vrFeature As Variant) As Variant 'Insérer le code à lancer lors de la 1ère insertion de la macro 'Dim runMacroError As Long 'swApp.RunMacro2 "G:\Serveur fichier be\SOLIDWORKS\Macro SW\Essais macros\Messagebox.swp", "Messagebox1", "main01", swRunMacroUnloadAfterRun, runMacroError End Function '**************************************************************************************************************** '* Module que l'on exécute lorsque l'on fait une reconstruction ou que l'on modifie les paramètres de la macro '**************************************************************************************************************** Function swmRegen(vrApp As Variant, vrPart As Variant, vrFeature As Variant) As Variant Dim runMacroError As Long 'swApp.RunMacro2 "G:\Serveur fichier be\SOLIDWORKS\Macro SW\Essais macros\Messagebox 02.swp", "Messagebox1", "main01", swRunMacroUnloadAfterRun, runMacroError swApp.RunMacro2 "G:\Serveur fichier be\SOLIDWORKS\Configuration_SW\Fichiers mycadtools\Smartproperties\SmartProperties 2014-Auto.swp", _ "MldProgramme", "main", swRunMacroUnloadAfterRun, runMacroError End Function