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