Macro récupération valeur d'un capteur des différentes configs

Bonjour,

Je cherche à faire une macro qui récupère la valeur d'un capteur et d'une propriété spécifique (nommée Mise en forme) de chaque configurations et qui m'ouvre un userform contenant un tableau à 2 colonnes.

Mise en forme   |   Capteur 

 

Pouvez vous m'aider svp ?

Merci

Bonjour,

Pour les capteur, regarde cette exemple qui permet de récupérer la valeur d'un capteur.

https://help.solidworks.com/2020/English/api/sldworksapi/Get_and_Set_Sensor_Example_VB.htm?verRedirect=1

Pour lister les configurations 2 exemples:

http://help.solidworks.com/2020/English/api/sldworksapi/Get_List_Of_Configurations_Example_VB.htm?verRedirect=1

http://help.solidworks.com/2017/English/api/sldworksapi/Change_Configuration_Properties_Example_VB.htm

Reste ensuite à afficher les valeur dans un message box sur 2 colonne, la j'ai un doute que ce soir réalisable par contre peut être plus réalisable dans un userform ou au pire export vers Excel.

Salut,

Merci, je regarde ça et oui en effet je cherche à l'ouvrir dans un useform et non un msg box

Merci encore pour les exemples

Edit : le code pour les capteurs ne marche pas malheureusement

Je viens de le tester pour moi il fonctionne, il faut une pièce ouverte. Et un capteur déjà créer et sélectionné avant de la lancer.

Ah ! 

Quelqu'un aurait la solution pour ne pas à avoir à sélectionner le capteur ?

J'ai cherché un peu de mon coté mais malheureusement je coince.

Merci

Voici un 1er lien avec du code pour lister tous les capteurs il fonctionne partiellement mais cela peut donner une bonne piste:

https://www.eng-tips.com/viewthread.cfm?qid=468348

'https://www.eng-tips.com/viewthread.cfm?qid=468348
Option Explicit
Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swPart As SldWorks.PartDoc
    Dim swModel As SldWorks.ModelDoc2
    Dim swFeat As SldWorks.Feature
    Dim swSubFeat As SldWorks.Feature
    Dim swSensor As SldWorks.Sensor
    Dim swDimSensor As SldWorks.DimensionSensorData
    Dim sensorValue As Double
    Dim text As String

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swFeat = swModel.FirstFeature

    Do While Not swFeat Is Nothing
    Debug.Print "swFeat.Name" & swFeat.Name
        If (swFeat.Name = "Capteurs") Then
            Set swSubFeat = swFeat.GetFirstSubFeature
            Do While Not swSubFeat Is Nothing
                Set swSensor = swSubFeat.GetSpecificFeature2
                'Mis en commentaire car ne fonctionne pas
                'swDimSensor = swSubFeat.GetSensorFeatureData
                'sensorValue = swDimSensor.sensorValue

                Debug.Print swSensor.Name & ": " & sensorValue
                Set swSubFeat = swSubFeat.GetNextSubFeature
            Loop
        End If
        Set swFeat = swFeat.GetNextFeature
    Loop
    MsgBox (text)
End Sub

Voici aussi un lien avec du code en C++ il faudra faire la traduction en vba mais le principe est là:

https://r1132100503382-eu1-3dswym.3dexperience.3ds.com/#community:yUw32GbYTEqKdgY7-jbZPg/iquestion:jpK7Vvu2QlugstMincAFoQ