Jump to content
yogurt

Droplist+button Maxscript

Recommended Posts

Ciao a tutti,

magari qui trovo qualcuno che puo' aiutarmi.

vorrei fre una cosa con maxscritp per velocizzare alcune operazioni che faccio spesso. 

partiamo dal codice

rollout action "actionlist" width:150 height:128
(
	dropDownList 'DropList1' "temp" pos:[15,25] width:100 height:40 items:#("azione1", "azione2","azione3") selection:10 align:#left
	button 'playaction' "play" pos:[15,70] width:100 height:20 toolTip:"play" align:#left
)
createDialog  action

allora, ho un droplist con delle voci e un bottone play. come faccio a dirgli quando seleziono "azione1"  e schiaccio play esegui quellazione mentre se seleziono un altra voce fai quest'altra azione?

 

idee? ho provato diverse cose copiando codici qua e la ma non funziona ( e io non sono competente in questa cosa e a parere mio consultare la guida in linae di maxscritp sognifica come minimo un travaso di bile)

grazie .

pace e amore

Share this post


Link to post
Share on other sites

Ciao Davide,

puoi entrarci semplicemente facendo un If, mi sembra la strada più semplice da gestire.

Puoi scegliere se fare un controllo sulla stringa contenuta con un selected oppure sul numero dell'array selezionato 1 2 3 con un selection

 


if action != undefined do destroyDialog action
try destroyDialog action catch()

 

rollout action "actionlist" width:150 height:128
(
    dropDownList DropList1 "temp" pos:[15,25] width:100 height:40 items:#("azione1", "azione2","azione3") selection:10 align:#left
    button playaction "play" pos:[15,70] width:100 height:20 toolTip:"play" align:#left
        
    on playaction pressed do
    (
        If DropList1.selected == "azione1" do (print "azione1")
        If DropList1.selected == "azione2" do (print "azione2")
        If DropList1.selected == "azione3" do (print "azione3")
        
        If DropList1.selection == 1 do (print "azione1")
        If DropList1.selection == 2 do (print "azione2")
        If DropList1.selection == 3 do (print "azione3")
    )
)

createdialog  action

Share this post


Link to post
Share on other sites
21 minuti fa, mOcrAm ha scritto:

Ciao Davide,

puoi entrarci semplicemente facendo un If, mi sembra la strada più semplice da gestire.

Puoi scegliere se fare un controllo sulla stringa contenuta con un selected oppure sul numero dell'array selezionato 1 2 3 con un selection

 

 


if action != undefined do destroyDialog action
try destroyDialog action catch()

 

rollout action "actionlist" width:150 height:128
(
    dropDownList DropList1 "temp" pos:[15,25] width:100 height:40 items:#("azione1", "azione2","azione3") selection:10 align:#left
    button playaction "play" pos:[15,70] width:100 height:20 toolTip:"play" align:#left
        
    on playaction pressed do
    (
        If DropList1.selected == "azione1" do (print "azione1")
        If DropList1.selected == "azione2" do (print "azione2")
        If DropList1.selected == "azione3" do (print "azione3")
        
        If DropList1.selection == 1 do (print "azione1")
        If DropList1.selection == 2 do (print "azione2")
        If DropList1.selection == 3 do (print "azione3")
    )
)

createdialog  action

 

ti voglio un sacco di bene

Share this post


Link to post
Share on other sites

Io mi sono fatto dei pulsanti Che Svolgono delle azioni come in Photoshop 

tipo aggiungere uvwma già  con delle coordinate oppure tramite editpoli aggiungere cuciture 

puoi farlo tramite maxscript listener che Registra le operazioni che vengono fatte .

 

Share this post


Link to post
Share on other sites

Che bello.  Tipo le actions in photoshop?  Cioè registri le azioni e poi copi e incolli su max script e lo salvi ? Mi pare troppo bello per essere vero.... non è che ci vuole comunque un minimo di conoscenza di linguaggio? .... 

Share this post


Link to post
Share on other sites
Posted (edited)
8 ore fa, Filippo Soldateschi ha scritto:

Che bello.  Tipo le actions in photoshop?  Cioè registri le azioni e poi copi e incolli su max script e lo salvi ? Mi pare troppo bello per essere vero.... non è che ci vuole comunque un minimo di conoscenza di linguaggio? .... 

 

io ho seguito questo tutorial

https://www.luxuryvisuals.com/jaked3d/how-to-record-actions-in-3ds-max-like-in-photoshop

 

una volta capito il sistema è abbastanza semplice

devi ricordarti che non sono veri script quindi faranno solo la ripetizione dell'azione e non potranno adattarsi 

però per le operazioni ripetitive sono ottimi


Edited by deam

Share this post


Link to post
Share on other sites

già che ci sono vi chiedo anche un'altra cosa:

un'azione importa un file esterno. questo file è dove si trova lo script ma il posto di dove si trova lo script puo essere diverso a seconda di dove è installato max ( alcuni computer ce l'hanno in c altri in d alcuni hanno max 2018 altri max 2019) che indirizzo metto? ho provato mettendo come in html ../ prima ma non funziona.. è possibile fare una cosa cosi ?

 

Share this post


Link to post
Share on other sites
3 ore fa, yogurt ha scritto:

già che ci sono vi chiedo anche un'altra cosa:

un'azione importa un file esterno. questo file è dove si trova lo script ma il posto di dove si trova lo script puo essere diverso a seconda di dove è installato max ( alcuni computer ce l'hanno in c altri in d alcuni hanno max 2018 altri max 2019) che indirizzo metto? ho provato mettendo come in html ../ prima ma non funziona.. è possibile fare una cosa cosi ?

 

Allora lo script come lo avvii? Parte dalla cartella predefinita degli script di 3ds lo avvii semplicemente con il drag e drop lo distribuisci a tante persone e quindi devi prevedere tutte le molteplici possibilità... Insomma con qualche info in più magari si trova una soluzione... Poi questo script cosa deve fare importare tanti file uno solo... 

Share this post


Link to post
Share on other sites

altra domanda, la faccio qui che tanto è lo stesso progetto che ogni ttanto riprendo in mano e perfeziono: c'è un numero massimo di linee di codice? perche sono a 16K e quando lancio lo script ma va giù max.. e a stima ne dovro' aggiungere ancora un 8-10K

 

Il 7/3/2019 at 18:22 , mOcrAm ha scritto:

Allora lo script come lo avvii? Parte dalla cartella predefinita degli script di 3ds lo avvii semplicemente con il drag e drop lo distribuisci a tante persone e quindi devi prevedere tutte le molteplici possibilità... Insomma con qualche info in più magari si trova una soluzione... Poi questo script cosa deve fare importare tanti file uno solo... 

ho risolto facendo un installer che mi crea una cartella in c e carico tutto la dentro 

Share this post


Link to post
Share on other sites
27 minuti fa, mOcrAm ha scritto:

Non riesci a semplificare nulla con funzioni o altro? 

no. sono quasi tutte righe cosi

If DropListNCS.selected == "xxxx" do (meditMaterials[2] = CoronaBitmap fileName:"C:\Autodesk\Plug-in\xxx\xxx\xxx\xxxxx.jpg" max mtledit
meditMaterials[1] = CoronaMtl ()
meditMaterials[1].texmapDiffuse = CoronaBitmap () 
meditMaterials[1].texmapDiffuse.filename = "C:\Autodesk\Plug-in\xxx\xxx\xxx\xxxxx.jpg"
meditMaterials[1].texmapDiffuse.gamma = -1 )

e solo questa parte deve essere ripetuta per 4404 volte

Share this post


Link to post
Share on other sites

Purtroppo non vedendo il codice e non capendo esattamente cosa devi fare è dura aiutarti...

Sicuro però che se come dici quella parte deve essere ripetuta vuol dire che in qualche maniera si può semplificare

Share this post


Link to post
Share on other sites
Posted (edited)

ok risolto. c'erano delle  " () " di troppo. sono 27309 righe di codice

e vi diro' che ho anche finito. adesso devo trovare un modo per venderlo.. vi ho messo nei ringraziamenti


Edited by yogurt

Share this post


Link to post
Share on other sites
Posted (edited)
1 ora fa, yogurt ha scritto:

ok risolto. c'erano delle  " () " di troppo. sono 27309 righe di codice

e vi diro' che ho anche finito. adesso devo trovare un modo per venderlo.. vi ho messo nei ringraziamenti

 

Ma quindi puoi dirci Qualcos in più? Come lo distribuisci il codice se lo vendi? Per curiosità come lo proteggi? 


Edited by mOcrAm

Share this post


Link to post
Share on other sites
3 ore fa, yogurt ha scritto:

ok risolto. c'erano delle  " () " di troppo. sono 27309 righe di codice

e vi diro' che ho anche finito. adesso devo trovare un modo per venderlo.. vi ho messo nei ringraziamenti

 

 

Forse sono troppe tutte quelle righe 😁

Sicuro che siano indispensabili? Non ci sono funzioni da utilizzare per evitare di ripetere tutto?
Puoi utilizzare anche librerie esterne create ad hoc da richiamare per snellire lo script.
Utili se un domani dovrai modificarlo o aggiornarlo. 😆

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.   Restore formatting

  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.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...