Hallo,
Ik heb een macro die onderdelen invoegt en constraints maakt, het werkt geweldig als ik slide-constraints wil maken met een tweezijdige parallelle schuifregelaar, maar niet met een ronde schuifregelaar. Door het met de hand te doen is het geen probleem, dus om te zien waar het probleem vandaan komt, heb ik een vereenvoudigd model gemaakt met een ronde schuifregelaar en een parallelle en twee bijbehorende schuifbeperkingen die met de hand zijn gemaakt.
Als ik een nieuwe constraint wil hermaken met degene die eerder met de hand is gemaakt, werkt alles prima, maar niet als ik het helemaal opnieuw maak.
Na onderzoek lijkt het WidthMateFeatureData-object dat wordt gebruikt om een nieuwe constraint te maken, standaard slechts 2 vlakken accepteert (wanneer het wordt gemaakt met createMateData(11)) en " weigert" de wijziging ervan met een enkelzijdige schuif.
Omgekeerd, wanneer het met de hand wordt gemaakt met een enkelzijdige schuif, "weigert " het om te worden aangepast tot een tweezijdige slede.
Weet je hoe je het WidthMateFeatureData-object vanaf nul een ronde schuifregelaar kunt laten accepteren? (TabSelection-attribuut van grootte 1)
Of een truc om een breedtebeperking te kunnen creëren met een ronde schuifregelaar?
Om preciezer te zijn, hier is een stukje van mijn gecommenteerde code
'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