Modifier propriétés personnalisées sans ouvrir une pièce

vos questions concernant les API SolidWorks

Modifier propriétés personnalisées sans ouvrir une pièce

Messagepar lajproSW » Lun 14 Sep 2015, 14:02

Bonjour,

Comme le titre du sujet l'indique, j'aimerais modifier des propriétés sur toutes les pièces 3D d'un répertoire sans ouvrir chaque pièce. Je sais le faire mais en ouvrant les pièces les unes après les autres.

Merci pour votre aide.
lajproSW
Ewok SolidWorks
 
Messages: 38
Inscription: Mar 16 Mar 2010, 10:32
Localisation: VALENCE

Re: Modifier propriétés personnalisées sans ouvrir une pièce

Messagepar lajproSW » Mar 15 Sep 2015, 15:41

Bonjour,
J'ai trouvé la solution en cherchant à droite à gauche.
Voilà le code qui me permet de modifier des propriétés personnalisées de toutes les pièces d'un assemblage.
Il faut au départ avoir un assemblage ouvert, je récupère les propriétés d'un formulaire.

Sub TraverseComponent(swComp As SldWorks.Component2, nLevel As Long)

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim vChildComp As Variant
Dim swChildComp As SldWorks.Component2
Dim swCompConfig As SldWorks.Configuration

Dim swAssembly As SldWorks.AssemblyDoc
Dim swChildModel As SldWorks.ModelDoc2


Dim sPadStr As String
Dim i As Long
Dim retval As Variant
Dim Prop As String

For i = 0 To nLevel - 1
sPadStr = sPadStr + " "
Next i

vChildComp = swComp.GetChildren
For i = 0 To UBound(vChildComp)
Set swChildComp = vChildComp(i)
TraverseComponent swChildComp, nLevel + 1
Set swApp = Application.SldWorks
Set swModel = swChildComp.GetModelDoc()
'Modification des propriétés des pièces et assemblage enfants
'efface les propriétés à modifier
retval = swModel.DeleteCustomInfo2("", "AFFAIRE")
retval = swModel.DeleteCustomInfo2("", "TITRE2")
retval = swModel.DeleteCustomInfo2("", "DATECREA")
retval = swModel.DeleteCustomInfo2("", "INDICEMODIF")
retval = swModel.DeleteCustomInfo2("", "TOLGEN")
'création propriété
Prop = Formulaire.N_Aff.Value
retval = swModel.AddCustomInfo3("", "AFFAIRE", 30, Prop)
Prop = Formulaire.N_Machine.Value
retval = swModel.AddCustomInfo3("", "TITRE2", 30, Prop)
Prop = Formulaire.D_Crea.Value
retval = swModel.AddCustomInfo3("", "DATECREA", 30, Prop)
Prop = Formulaire.I_Modif.Value
retval = swModel.AddCustomInfo3("", "INDICEMODIF", 30, Prop)
Prop = Formulaire.T_Gen.Value
retval = swModel.AddCustomInfo3("", "TOLGEN", 30, Prop)
' enregistre le modèle 3D
swModel.Save2 True
' Debug.Print sPadStr & swChildComp.Name2 & " <" & swChildComp.ReferencedConfiguration & ">"
Next i

End Sub
lajproSW
Ewok SolidWorks
 
Messages: 38
Inscription: Mar 16 Mar 2010, 10:32
Localisation: VALENCE


Retourner vers Questions générales sur les API

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 5 invités

banniere