archimi 92 Report post Posted August 30, 2022 Salut à tous, au départ je voulais juste me faire un petit utilitaire pour sélectionner des plantes GrowFX dans une scène. Parfois c'est ch... d'attraper l'icone, en tous cas chez moi. Je me suis donc lancé dans la programmation et au fur et à mesure j'ai rajouté des fonctions et donc, des problèmes forcément. Et le gros problème était de faire une boite de dialogue qui à un nombre de ligne variable selon le nombre d'objet. J'ai donc utilisé des "addControl" pour faire ça. Pour les pro de Maxscript, cela vous semble la bonne solution ? Au final ça donne ça: En tous cas si il y en a qui veulent tester et faire des remarques, n'hésitez pas Michel Archimi_GrowFX_Lister.mcr Quote Share this post Link to post Share on other sites
Nicolas Caplat 2757 Report post Posted August 31, 2022 Salut @archimi Très cool ton script ! bravo ! Si je comprends bien, tu veux que la hauteur de ton floater varie en fonction du nombre d'items dans ta liste ? le mieux serait, je pense, de stocker la hauteur de ton floater dans une variable, et ensuite d'ajouter / de soustraire (n * hauteur d'une ligne) en fonction du nombre de lignes ? Si besoin, j'ai mis en PJ un vieux script que j'avais fait qui utilise ce principe (cherche la variable floatSizeLg). Bon, à l'époque, j'étais un peu bourrin avec les variables globales, pas taper, hein @SugaR ? NC_VRQC_v0.20.mcr 1 archimi reacted to this Quote Share this post Link to post Share on other sites
archimi 92 Report post Posted August 31, 2022 24 minutes ago, Nicolas Caplat said: Si je comprends bien, tu veux que la hauteur de ton floater varie en fonction du nombre d'items dans ta liste ? le mieux serait, je pense, de stocker la hauteur de ton floater dans une variable, et ensuite d'ajouter / de soustraire (n * hauteur d'une ligne) en fonction du nombre de lignes ? En fait, je ne savait pas comment faire une boite de dialogue qui aurait un nombre de boutons, de boite de texte, etc qui changerait selon le nombre d'objet. Je savais faire des boite de dialogue fixe, mais pas dynamique. Mais je pense que la solution que j'ai adopté est la bonne, même si c'est, je trouve assez galère (obligation de passer par du texte et par "execute"). Pour la hauteur du floater variable, ce sera pour une prochaine version ! 29 minutes ago, Nicolas Caplat said: Bon, à l'époque, j'étais un peu bourrin avec les variables globales, pas taper, hein Pareil pour moi 😁 j'ai été obligé de passer mes variables en global sinon ça ne marchait jamais au premier chargement. J'avoue que je me suis un peu perdu là dedans. 1 Nicolas Caplat reacted to this Quote Share this post Link to post Share on other sites
Nicolas Caplat 2757 Report post Posted August 31, 2022 1 minute ago, archimi said: j'ai été obligé de passer mes variables en global sinon ça ne marchait jamais au premier chargement fais très attention avec les variables globales, @SugaR est très sympa, mais il peut mordre 😁 Quote Share this post Link to post Share on other sites
Nicolas Caplat 2757 Report post Posted August 31, 2022 @archimi je viens de voir que tu es sur Aix ?? je vais bientôt passer par chez toi pour aller sur Sofia Antipolis - ce serait cool qu'on puisse se croiser, en fonction de tes dispos Quote Share this post Link to post Share on other sites
archimi 92 Report post Posted August 31, 2022 1 hour ago, Nicolas Caplat said: @archimi je viens de voir que tu es sur Aix ?? je vais bientôt passer par chez toi pour aller sur Sofia Antipolis - ce serait cool qu'on puisse se croiser, en fonction de tes dispos Avec plaisir ! Contact moi quand tu sera de passage. Quote Share this post Link to post Share on other sites
Nicolas Caplat 2757 Report post Posted August 31, 2022 17 minutes ago, archimi said: Avec plaisir ! Contact moi quand tu sera de passage. Ok, je te dirai. je ne sais pas encore précisément quand, on va voir quand mon boss cale tout ça. Quote Share this post Link to post Share on other sites
SugaR 635 Report post Posted September 1, 2022 Hello @archimi. Projet très sympa, j'avais jamais trop regardé le rolloutCreator perso, je trouve que ca pond vite du code assez pénible a gérer. Du coup ca m'a quand même motivé a essayer de faire quelque chose en partant de ce que tu as fait. Pour le coup c'est plus un test / exemple qu'autre chose puisque ca permet juste de gérer des sphères. Je le met ici si ca t'intéresse. Par rapport a ton script, j'ai enlevé la plupart des variables globales (il n'en reste plus que deux) et la liste est entièrement dynamique donc il n'y a normalement aucun besoin de rafraichir la liste manuellement (en gros, n'importe quelque changement dans la scène qui est exposé dans la liste met automatiquement la liste a jour). Si jamais tu es intéressé par le code et que tu veux en discuter, n'hésite pas à demander (plus sur discord qu'ici mais comme tu veux ). rol_creator_06.ms 2 Nicolas Caplat and archimi reacted to this Quote Share this post Link to post Share on other sites
Nicolas Caplat 2757 Report post Posted September 1, 2022 2 hours ago, SugaR said: j'avais jamais trop regardé le rolloutCreator perso, je trouve que ca pond vite du code assez pénible a gérer Un peu comme Visual Maxscript ? 😅 1 SugaR reacted to this Quote Share this post Link to post Share on other sites
SugaR 635 Report post Posted September 1, 2022 A la rigueur visual maxscript ne te force pas a coder un rollout juste avec des strings 1 Nicolas Caplat reacted to this Quote Share this post Link to post Share on other sites
archimi 92 Report post Posted September 1, 2022 Vraiment merci SugaR pour ton script ! Je vais analyser ça en profondeur, mais déjà, rien que de voir la structure et ta façon de coder, ça m'apprend plein de chose. Je suis comme un peintre en bâtiment qui regarde Michel Ange peindre le plafond de la chapelle Sixtine ! Par contre, tu as le même genre de bug que j'avais eu (avant de mettre les variables en global par dépit): quand tu viens d'ouvrir 3DS (c'est important), que tu lance ton programme et que tu effaces ou copie une sphère, tu as un message d'erreur "removeRollout requires RolloutClass". Mais si tu relance le script ça marche parfaitement. 1 SugaR reacted to this Quote Share this post Link to post Share on other sites
SugaR 635 Report post Posted September 1, 2022 Je regarde ca EDIT: @archimi essaie de remplacer "removeRollout SphereListerRollout SphereListerFloater" par "removeRollout ::SphereListerRollout SphereListerFloater" dans la fonction "updateSphereListerRollout" (ligne 14). Les "::" devant une variable la force en global. Ce qui est étrange c'est que elle est déjà censé l'être (ce qui ce vérifie en tapant "SphereListerFloater" dans le listener en exécutant le script au démarrage de max, ce qui retourne bien le rollout, donc c'est forcement une globale). Dans tous les cas ca ne change rien hormis que ca doit forcer maxscript a chercher aussi dans les variables globales Quote Share this post Link to post Share on other sites
TChadail 797 Report post Posted October 8, 2022 Wow la classe ... il est top ton script Michel, bravo ! 1 archimi reacted to this Quote Share this post Link to post Share on other sites