Aller au contenu

Macro de liaison entre propriétés ajoutées de Catpart vers paramètre Drawing


Messages recommandés

Posté(e)

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.

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité