Renommer tous les parts et products avec formules

Aller en bas

EnCours Renommer tous les parts et products avec formules

Message par lgesl1catia le Jeu 18 Oct 2018 - 7:35

Bonjour à tous

 J'ai une macro qui permet de recomposer tous les noms de mes Parts ainsi que mes Products via les propriétés

Mes Parts et Products sont paramétrés, les propriétés commandent le nom du Part et Product avec une formule simple

Cette macros fonctionne correctement sur les Parts car elle renomme et remplace la formule des chaque Parts dans le Products

Par contre concernant les Products cela remplace bien le nom mais pas la formule, donc le nom du Product n'est plus piloté par les propriétés, je ne comprends pas pourquoi

Si vous avec un idée je suis preneur, merci par avance

For i = 1 To CATIA.Documents.Count 'pour chaque élément :
    If TypeName(CATIA.Documents.Item(i)) = "ProductDocument" Then 'si c'est une piece :
        If InStr(CATIA.Documents.Item(i).Name, "Symmetry of") <> 0 Then
            For j = 1 To CATIA.Documents.Item(i).Product.Parameters.Count
                If Split(CATIA.Documents.Item(i).Product.Parameters.Item(j).Name, "\")(UBound(Split(CATIA.Documents.Item(i).Product.Parameters.Item(j).Name, "\"))) = "Référence" Then
                    If InStr(CATIA.Documents.Item(i).Product.Parameters.Item(j).Value, "Symmetry of") <> 0 Then
                        ''''''''''''''''''''''''''''''''''''''''''''''''''Intégrer les nouvelles propriétés'''''''''''''''''''''''''''''''''''''''''''''''''''''''
                        designation = ""
                        fournisseur = ""
                        Reference = ""
                        ''''''''''''''''''''''''''''''''''''''''''''''''''''''''Decomposition du nom''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                        If UBound(Split(CATIA.Documents.Item(i).Product.Parameters.Item(j).Value, "_")) = 2 Then
                            designation = Split(CATIA.Documents.Item(i).Product.Parameters.Item(j).Value, "_")(0)
                            fournisseur = Split(CATIA.Documents.Item(i).Product.Parameters.Item(j).Value, "_")(1)
                            Reference = Split(CATIA.Documents.Item(i).Product.Parameters.Item(j).Value, "_")(2)
                        End If
                        Set strParam1 = CATIA.Documents.Item(i).Product.ReferenceProduct.UserRefProperties.CreateString("N° Affaire", Right(designation, 4))
                        If InStr(designation, "Symmetry of ") > 0 Then designation = Replace(designation, "Symmetry of ", "")
                        Set strParam2 = CATIA.Documents.Item(i).Product.ReferenceProduct.UserRefProperties.CreateString("Nom Affaire", Replace(designation, Right(designation, 5), ""))
                        Set strParam3 = CATIA.Documents.Item(i).Product.ReferenceProduct.UserRefProperties.CreateString("Nom Nomenclature", fournisseur)
                        Set strParam8 = CATIA.Documents.Item(i).Product.ReferenceProduct.UserRefProperties.CreateString("Designation", Reference & " SYM")
               
                        Set relations2 = CATIA.Documents.Item(i).Product.Relations
               
                        Set parameter1 = CATIA.Documents.Item(i).Product.Parameters.Item("Référence")
               
                        Set parameter2 = CATIA.Documents.Item(i).Product.Parameters.Item("Nom Affaire")
                        Set parameter3 = CATIA.Documents.Item(i).Product.Parameters.Item("Nom Nomenclature")
                        Set parameter4 = CATIA.Documents.Item(i).Product.Parameters.Item("Designation")
                        Set parameter5 = CATIA.Documents.Item(i).Product.Parameters.Item("N° Affaire")
                       
                        Set formula2 = relations2.CreateFormula("Formula.2", "", parameter1, "`" & parameter2.Name & "` + " & """" & " " & """" & " + `" & parameter5.Name & "` + " & """" & "_" & """" & " + `" & parameter3.Name & "` + " & """" & "_" & """" & " + `" & parameter4.Name & "`")
                        'CATIA.Documents.Item(i).Product.Update
            '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                    End If
    '            ElseIf InStr(CATIA.Documents.Item(i).Part.Parameters.Item(j).Name, "Référence") <> 0 Then
    '                MsgBox CATIA.Documents.Item(i).Part.Parameters.Item(j).Name
                End If
            Next j
        End If
    End If
Next i
avatar
lgesl1catia
actif
actif

Messages : 36
Date d'inscription : 24/11/2016
Localisation : orne

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum