Bonjour,
Je suis encore un peu novice dans la partie macro Catia et je rencontre quelques soucis pour une liaison entre une CatPart et un Drawing.
Un peu de contexte:
Aujourd'hui j'ai une CatPart dans laquelle j'édite des paramètres (Concepteur/Reference/Nomenclature/Type/Materiau/Masse/...). Ces derniers sont ensuite intégrés via une macro aux propriété de la Part. J'ai dû créer des propriétés ajoutées pour certains champs (ce sont elles qui me posent problèmes).
Voilà la macro pour avoir une idée (elle servira peut-être à quelqu'un un jour)
______________________________________________________________________________________________________________________________
Language="VBSCRIPT"
Sub CATMain()
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set parametersconcepteur = part1.Parameters
Set strParamconcepteur = parametersconcepteur.Item("Concepteur")
Set parametersmateriau = part1.Parameters
Set strParammateriau = parametersmateriau.Item("Materiau")
Set parameterstype = part1.Parameters
Set strParamtype = parameterstype.Item("Type")
Set parameterstraitementmateriau = part1.Parameters
Set strParamtraitementmateriau = parameterstraitementmateriau.Item("TraitementMateriau")
Set parameterstraitementdesurface = part1.Parameters
Set strParamtraitementdesurface = parameterstraitementdesurface.Item("TraitementDeSurface")
Set parametersmasse = part1.Parameters
Set strParammasse = parametersmasse.Item("Masse")
Set parametersgx = part1.Parameters
Set strParamgx = parametersgx.Item("Gx")
Set parametersgy = part1.Parameters
Set strParamgy = parametersgy.Item("Gy")
Set parametersgz = part1.Parameters
Set strParamgz = parametersgz.Item("Gz")
Set parametersproprieteconcepteur = part1.Parameters
Set strParamproprieteconcepteur = parametersproprieteconcepteur.Item("Propriétés\Concepteur")
Set parametersproprieteinformations = part1.Parameters
Set strParamproprieteinformations = parametersproprieteinformations.Item("Propriétés\Informations")
Set parametersproprietemateriau = part1.Parameters
Set strParamproprietemateriau = parametersproprietemateriau.Item("Propriétés\Materiau")
Set parametersproprietetype = part1.Parameters
Set strParamproprietetype = parametersproprietetype.Item("Propriétés\Type")
Set parametersproprietetraitementmateriau = part1.Parameters
Set strParamproprietetraitementmateriau = parameterstraitementmateriau.Item("Propriétés\TraitementMateriau")
Set parametersproprietetraitementdesurface = part1.Parameters
Set strParamproprietetraitementdesurface = parametersproprietetraitementdesurface.Item("Propriétés\TraitementDeSurface")
Set parametersproprietemasse = part1.Parameters
Set strParamproprietemasse = parametersproprietemasse.Item("Propriétés\Masse")
Set parametersproprietegx = part1.Parameters
Set strParamproprietegx = parametersproprietegx.Item("Propriétés\Gx")
Set parametersproprietegy = part1.Parameters
Set strParamproprietegy = parametersproprietegy.Item("Propriétés\Gy")
Set parametersproprietegz = part1.Parameters
Set strParamproprietegz = parametersproprietegz.Item("Propriétés\Gz")
strParamproprieteconcepteur.Value = strParamconcepteur.Value
strParamproprieteinformations.Value = "N/A"
strParamproprietemateriau.Value = strParammateriau.Value
strParamproprietetype.Value = strParamtype.Value
strParamproprietetraitementmateriau.Value = strParamtraitementmateriau.Value
strParamproprietetraitementdesurface.Value = strParamtraitementdesurface.Value
strParamproprietemasse.Value = strParammasse.Value
strParamproprietegx.Value = strParamgx.Value
strParamproprietegy.Value = strParamgy.Value
strParamproprietegz.Value = strParamgz.Value
End Sub
______________________________________________________________________________________________________________________________
Ensuite j'ai un drawing dans lequel je souhaite remplir des paramètres qui sont identiques à la Part (Concepteur/Reference/Nomenclature/Type/Materiau/Masse/...) en auto via une macro. Les champs du cartouche sont remplis via la fonction "lier à un attribut".
Actuellement ma macro n'arrive à récupérer que les propriétés standards de la Part (Definition/Nomenclature), mais je ne trouve pas comment coder les propriétées ajoutées manuellement (Masse/Materiau/Concepteur/Type/...). J'ai bien trouvé sur le site un vieux post pour faire de la liaison, mais cette dernière nécessite de nommer les cellules des champs du drawing. Or de mon côté je veux "simplement" récupérer les données de la Part pour les intégrer dans des paramètres spécifiques au Drawing.
Quelqu'un(e) peut-il m'aider ? 🙂
Voici ma macro actuelle:
______________________________________________________________________________________________________________________________
Sub CATMain()
set drawingDoc1 = CATIA.ActiveDocument
Set parameters1 = drawingDoc1.Parameters
Set strParamdrawdef= parameters1.Item("Designation")
Set strParamdrawref= parameters1.Item("PartReference")
Set strParamdrawdate= parameters1.Item("DateDeCreationDrawing")
Set strParamdrawtype = parameters1.Item("Type")
Set strParamdrawmat = parameters1.Item("Materiau")
Set strParamdrawmasse = parameters1.Item("Masse")
Set strParamdrawtraitmat = parameters1.Item("TraitementMateriau")
Set strParamdrawtraitsurf = parameters1.Item("TraitementDeSurface")
Set ParentVue = CATIA.ActiveDocument.Sheets.ActiveSheet.Views.Item(3).GenerativeLinks.FirstLink
Set ParentVue = ParentVue.Parent
Dim ActualDay, MyDay, MyMonth
MyDay = Day(Now)
MyMonth = Month(Now)
If Len(MyDay) = 1 Then MyDay = "0" & MyDay
If Len(MyMonth) = 1 Then MyMonth = "0" & MyMonth
ActualDay = MyDay & "/" & MyMonth & "/" & Year(Now)
strParamdrawdate.Value = ActualDay
strParamdrawdef.Value = ParentVue.Product.Definition
strParamdrawref.Value = ParentVue.Product.Nomenclature
strParamdrawtype.Value = "le bon codage pour le type"
strParamdrawmat.Value = "le bon codage pour le materiau"
strParamdrawmasse.Value = "le bon codage pour la masse"
strParamdrawtraitmat.Value = "le bon codage pour le TraitementMateriau"
strParamdrawtraitsurf.Value = "le bon codage pour le TraitementDeSurface"
'Set drawingDoc1.Name = ParentVue.Product.Name
End Sub
______________________________________________________________________________________________________________________________
Merci d'avance.