Jump to content
archimi

GrowFX Lister

Recommended Posts

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: GrowFX_Lister_02.jpg.475ed3f1a4d3e385c311b03965ad499e.jpg

En tous cas si il y en a qui veulent tester et faire des remarques, n'hésitez pas

 

Michel

 

Archimi_GrowFX_Lister.mcr

Share this post


Link to post
Share on other sites

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 :P

@SugaR ?

NC_VRQC_v0.20.mcr

Share this post


Link to post
Share on other sites
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 :P

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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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 ! :rolleyes:

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. :huh:

Share this post


Link to post
Share on other sites

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 :) 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Who's Online   0 Members, 0 Anonymous, 78 Guests (See full list)

    There are no registered users currently online

×
×
  • Create New...