Kris 0 Report post Posté(e) March 23, 2018 Hello, j'aurais besoin d'un petit coup de main sur un macro-script, j'essaie d'optimiser certaines tâches répétitives, étant néophyte en max-script/macro-script je rencontre bien évidemment quelques soucis. Voici la fonction de ma macro en l'état : macroScript Macro32 category:"DragAndDrop" toolTip:"" ( modPanel.addModToSelection (sweep ()) ui:on $.modifiers[#Sweep].SmoothSection = on $.modifiers[#Sweep].SmoothPath = on $.modifiers[#Sweep].PivotAlignment = 3 $.modifiers[#Sweep].realWorldMapSize = on $.modifiers[#Sweep].CustomShape = 1 ) J'aimerais ajouter la fonction mergeCustomSection(), pour remplacer le clique manuel du dit boutton dans le modifier sweep, mais je n'y arrive pas. En gros je souhaiterais après avoir fait le CustomShape = 1 que la macro m'ouvre la boîte de dialogue pour merge une section que j'irais chercher manuellement en fonction des besoins. Si quelqu'un a une idée de comment intégrer ça dans ma macro ça serait super ! Merci d'avance ! Citer Share this post Link to post Share on other sites
SugaR 635 Report post Posté(e) March 23, 2018 ( modPanel.addModToSelection (sweep ()) ui:on $.modifiers[#Sweep].SmoothSection = on $.modifiers[#Sweep].SmoothPath = on $.modifiers[#Sweep].PivotAlignment = 3 $.modifiers[#Sweep].realWorldMapSize = on $.modifiers[#Sweep].CustomShape = 1 $.modifiers[#Sweep].mergeCustomSection() ) Ça devrait le faire Citer Share this post Link to post Share on other sites
Kris 0 Report post Posté(e) March 23, 2018 Merci SugaR ça fonction, j'avais pourtant essayé..., mais je devais avoir fait une erreur de syntax...(mybad) Vu que tu as l'air doué en maxscript, j'ai éventuellement une autre question pour tes super méninges ! Il existe aussi une autre commande, qui est .pickCustomSection(), j'ai fait quelques essais, mais techniquement le script aurait besoin de faire une pause, le temps que l'utilisateur sélectionne un Shape puis continu la lecture du script (mon script ne s’arrête pas là, j'y ajoute d'autre modifier du coup le pickCustomSection() est complètement zappé et l'utilisateur n'a pas le temps de choisir un Shape). Une idée, ou il n'y a que le sleep pour delay la suite de mon script ? Merci encore pour ta première réponse, et bon week-end. Citer Share this post Link to post Share on other sites
SugaR 635 Report post Posté(e) March 23, 2018 Faut faire un petit workaround apparemment pour ça. Pour le test, je rajoute juste un modifier edit_poly par dessus le sweep, qui est ajouté uniquement après que l'utilisateur est pick une custom shape. ( modPanel.addModToSelection (sweep ()) ui:on $.modifiers[#Sweep].SmoothSection = on $.modifiers[#Sweep].SmoothPath = on $.modifiers[#Sweep].PivotAlignment = 3 $.modifiers[#Sweep].realWorldMapSize = on $.modifiers[#Sweep].CustomShape = 1 $.modifiers[#Sweep].shapes[1] = pickObject() modPanel.addModToSelection (edit_poly()) ui:on ) L'idée c'est plutôt que d'utiliser la fonction du modifier pour pick une shape ( .pickCustomSection() ), tu assignes directement ta custom shape via "$.modifiers[#Sweep].shapes[1]" en utilisant "pickObject()", ce qui devrait revenir au même. Par contre PickObject() met bien le script en pause le temps que l'utilisateur pick un objet. Au passage tu peux filtrer les objets que l'utilisateur peut pick, a toi de trouver comment (avec un gros indice quand même : http://help.autodesk.com/view/3DSMAX/2016/ENU/?guid=__files_GUID_CB0EBFC3_9360_445B_BCD4_5F5B2031579F_htm) 1 Nicolas Caplat reacted to this Citer Share this post Link to post Share on other sites
Kris 0 Report post Posté(e) March 26, 2018 Salut SugaR ! J'ai fait quelques essais avec la fonction pickObject() Alors, ça fonctionne effectivement, et ça met bien le script en pause le temps que l'utilisateur sélectionne une Shape. En revanche je sais pas pourquoi, mais j'ai l'impression que les ID mats appliqués sur ma Shape que je sélectionne ne sont pas pris en compte, du coup il faut que je reload manuellement la Shape dans le Sweep pour que les ID mats soit bien appliqués... Je pense que je vais rester sur le mergeCustomShape() qui fait la pause et importe bien les ID mats de la Shape ! Merci pour ton aide ! Citer Share this post Link to post Share on other sites