Bonjour,
Je n'arrive pas à faire fonctionner cette macro codée sous VBA malgré tous mes efforts.
Mon objectif est de changer l'apparence de la pièce en fonction du traitement de surface que j'ai entré dans la propriété personnalisée "TRAITEMENT". Je veux créer une nouvelle configuration appelée "COULEURS REALISTES" et je veux que l'apparence ait changé uniquement dans cette configuration.
Je n'arrive pas non plus à publier ma macro dans la description... je dépasse les 6000 caractères autorisés à priori... Je la mets en PJ, si quelqu'un voit ce qui ne va pas dans mon code, ce serait une enorme aide pour moi!!
Merci!!
attribuer_traitement_de_surface_a_couleur.swp
Bonjour,
Le lien vers le fichier est brisé
Bonjour,
en effet, c'est très bizarre... je la retente ici!
attribuer_traitement_de_surface_a_couleur.swp
Je ne pense pas que tu puisse changer l'état d'affichage avec SelectedFeatureProperties car l'état d'affichage n'est pas une feature.
Pour changer l'état d'affichage des pièces dans un assemblage regarde ici: change_color_of_component_in_specific_display_state_example_vb
Pour changer la couleur des pièces elles mêmes, regarde ceci: MaterialPropertyValues
D'accord, je vais tenter quelque chose avec ça alors!
autre petite question, j'ai du mal à comprendre pourquoi dans leur tuto, SW ils multiplient la fonction Min/Max Excel par 16*16 puis par 16*16*16*16?
16x16 = 256, ce qui peut correspondre à l'intervale de couleur [0;255], mais pourquoi faire cette multiplication si la valeur de ma variable est déjà sous ce format? Et encore plus incompréhensible, pourquoi faire 16x16x16x16 ensuite?? Je ne comprends pas... (J'ai mis le bout de code en question ci-dessous)
PeintureBleueRGB = Excel.WorksheetFunction.Max(Excel.WorksheetFunction.Min(PeintureBleueR, 255), 0) + Excel.WorksheetFunction.Max(Excel.WorksheetFunction.Min(PeintureBleueG, 255), 0) * 16 * 16 + Excel.WorksheetFunction.Max(Excel.WorksheetFunction.Min(PeintureBleueB, 255), 0) * 16 * 16 * 16 * 16
C'est commme ça que les couleurs RGB sont concaténées dans la propriétée Color
Rebonjour Jerome,
J'ai joué avec tes liens, mais je bute toujours sur une erreur qui semblerait venir de la ligne 189 de mon code... J'ai réutilisé une partie de ton code afin que l'apparence change dans toutes les pièces de l'ensemble et des sous-ensembles.
C'est cette ligne de code qui pose soucis, mais je ne trouve pas la raison :
swApp.ActivateDoc3 swComp.Name2, False, swRebuildOnActivation_e.swRebuildActiveDoc, Empty
Je mets ma macro en PJ, si tu pouvais y jeter un coup d'œil pour me guider une fois de plus, je t'en serais reconnaissant!!
Merci
attribuer_traitement_de_surface_a_couleur.swp
ActivateDoc3 requière le nom de la pièce (<ModelDoc2>.GetTitle ou <ModelDoc2>.GetPathName) au lieu du nom du composant (swComp.Name2)