Problème à la création de contrainte glissière

Bonjour,

J’ai une macro qui insère des pièces et crée des contraintes, elle fonctionne très bien quand je veux créer des contraintes glissière avec un coulisseau à deux faces parallèles, mais pas avec un coulisseau rond. En le faisant à la main cela ne pose pas de problème, donc pour voir d’où vient le problème j’ai crée un modèle simplifié avec un coulisseau rond et un parallèle et deux contraintes glissières correspondantes créées à la main.

Quand je veux recréer une nouvelle contrainte avec celle précédemment créée à la main, tout fonctionne bien, mais pas quand je la crée de zéro.

Après investigation, il semblerait que l’objet WidthMateFeatureData utilisé pour créer une nouvelle contrainte n’accepte par défaut (quand il est créé avec createMateData(11)) que 2 faces et « refuse » sa modification avec un coulisseau à une seule face.

A l’inverse, quand on le crée à la main avec un coulisseau à une seul face, il « refuse » d’être modifié en coulisseau à deux faces.
Est-ce que vous savez comment faire pour que l’objet WidthMateFeatureData accepte un coulisseau rond à partir de zéro ? (attribut TabSelection de taille 1)
Ou bien une astuce pour pouvoir créer une contrainte largeur avec un coulisseau rond?

Pour être plus précis voici un morceau de mon code commenté

'swCircularMateData : objet WidthMateFeatureData d’une contrainte glissière avec un coulisseau rond (créée à la main)
'swOldMateData : objet WidthMateFeatureData d’une contrainte glissière avec un coulisseau à deux faces parallèles (créée à la main)

Set swTestMateData = swCircularMateData 'récupère l'objet WidthMateFeatureData créé à la main
swAssembly.CreateMate swTestMateData 'crée la contrainte sans problème

Set swTestMateData = swAssembly.CreateMateData(11) 'crée un objet WidthMateFeatureData vide
'Recopie l'intégralité des attributs de l'objet
swTestMateData.ConstraintType = swCircularMateData.ConstraintType
swTestMateData.DistanceFromEnd = swCircularMateData.DistanceFromEnd
swTestMateData.FlipDimension = swCircularMateData.FlipDimension
swTestMateData.PercentDistanceFromEnd = swCircularMateData.PercentDistanceFromEnd
swTestMateData.TabSelection = swCircularMateData.TabSelection
swTestMateData.WidthSelection = swCircularMateData.WidthSelection

swAssembly.CreateMate swTestMateData 'la contrainte ne se crée pas
vTest = swTestMateData.TabSelection 'en inspectant l'attribut TabSelection, il s'avère être vide

swTestMateData.TabSelection = swParalleleMateData.TabSelection 'recopie l'attribut TabSelection de la contrainte avec le coulisseau parallele
swAssembly.CreateMate swTestMateData 'crée la contrainte sans problème