API - propriete personnalisée

Bonjour a tous,

J'ai une questions sur la gestion des proprietes personnalisee dans solidworks

est-ce que l'on peut changer une propriete personnalisée a partir d'un assemblage, je m'explique:

J'ai un assemblage d'ouvert et partir de cette assemblage "CO37662-33867_Ensemble_goulotte_sortie" je souhaite modifie la propriete personnalisée d'une piece "CO37662-33867F09-1" 

Est-ce possible sans ouvrir la pièce?

j'ai fait un morceau de code en VBA pour essai mais cela ne fonctionne pas

' ******************************************************************************
' ******************************************************************************
Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()

Set swApp = _
Application.SldWorks

Set Part = swApp.ActiveDoc

boolstatus = Part.Extension.SelectByID2("CO37662-33867F09-1@CO37662-33867_Ensemble_goulotte_sortie", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.CustomInfo("No_article") = 2000200



' fonctionne dans une piece
'boolstatus = Part.AddCustomInfo3("", "No_article", 1, "")
'Part.CustomInfo("No_article") = 2000200
End Sub

 

Merci de votre aide

1 « J'aime »

Bonjour,

Je n'ai pas SW sous la main pour vérifier mais je pense qu'il faut à minima éditer la pièce dans l'assemblage pour pouvoir intervenir sur ses propriétés personnalisées, ce que ton bout de code ne fait pas...

Cordialement,

Bonjour,

j'ai mis en editant la piece comme cela

boolstatus = Part.Extension.SelectByID2("CO37662-33867F01-1@CO37662-33867_Ensemble_goulotte_sortie", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)

 

Mais cela modifie l'attribut de l'assemblage.

 

Bonjour,

La fonction SelectByID2 n'est pas une fonction d'édition mais juste de sélection...

Pour faire ce que tu souhaites il faut que tu passes par la fonction GetModelDoc2 de façon à récupérer le ModelDoc2 du composant sélectionné, à partir de là tu pourras travailler sur ces propriétés personnalisées.

Cordialement,

2 « J'aime »