Jump to content
bn-top

Droplist+button Maxscript


yogurt
 Share

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

Link to comment
Share on other sites

bn-top

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

Link to comment
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

Link to comment
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 .

 

Link to comment
Share on other sites

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
Link to comment
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 ?

 

Link to comment
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... 

Link to comment
Share on other sites

  • 1 month later...

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 

Link to comment
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

Link to comment
Share on other sites

  • 3 weeks later...

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

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
Link to comment
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. ?

Link to comment
Share on other sites

  • 3 weeks later...
Il 14/5/2019 at 18:58 , mOcrAm ha scritto:

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

 

sistemo le ultime cose poi faccio partire una specie di preorder.

pensavo di distribuirlo con Gumroad, e per proteggerlo ho diverse idee: al momento ho cryptato il file ms e ho modificato i nomi dei file a cui fa capo cosi è quasi impossibile risalire quale file è e fa cosa o copiarne una parte, non so ancora se lo faro' ma volendo posso mettere una password o licenza all'installer, e come ultima cosa dentro uno dei file, sono più di 4400, inserisco un tag che mi dice chi ha comprato quel installer (ti sfido a trovarlo, e cosi se vuoi metterlo su internet e io lo trovo so a chi mandare gli avvocati..nel magico mondo fatato dello yogurt) cmq dubito che una persona si metta li a cercare di decrittarlo o a darlo in giro ( forse tra studenti ma chissenefrega) anche perchè pensavo di venderlo ad un prezzo talmente basso che se lo fai lo fai solo perchè sei stro*zo (2 euro studenti 4 professionisti e aziende) . 

mi sono sempre dimenticato di risponderti .)

Link to comment
Share on other sites

cmq al momento :

il sito è praticamente pronto

lo script per max + corona è pronto

lo script per max + scanline volendo c'è

lo script per max + vray è quasi pronto ( appena capisco perchè non li collega le bitmap al materiale è fatto)

lo script per max + octane volendo c'è

lo script per max + fstorm c'è devo solo verificarlo

devo preparare la documentazione e la licenza d'utilizzo

e devo fare qualche immagine per l'installer 

logo e icone ci sono

 

anzi se qualcuno vuole farmi da betatester su max ben volentieri 

Link to comment
Share on other sites

1 ora fa, yogurt ha scritto:

[....]cmq dubito che una persona si metta li a cercare di decrittarlo[...]

 

Sei sicuro? Heheheheeheheheheehh ?  Di folli ce ne sono nel deep web! 

Link to comment
Share on other sites

16 ore fa, Michele71 ha scritto:

 

Sei sicuro? Heheheheeheheheheehh ?  Di folli ce ne sono nel deep web! 

 

spacer.png

 

e questi non sono neanche un sesto. in più ci sono 31345 linee di codice criptate. se uno lo fa per 4 euro ha tutta la mia stima .

 

11 ore fa, mOcrAm ha scritto:

Non sei l'unico ?

 

abbiaate pazienza entro martedi saprete tutto

 

11 ore fa, mOcrAm ha scritto:

Se hai bisogno fischia...

 

ne approfitto, anzi visto che mi hai aiutato divcerse volte vorrei ringraziarti in qualche modo, pensavo di condividere con te una parte degli introiti, se ce ne saranno..

finisco l'installer e ti mando 

 

Edited by yogurt
Link to comment
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.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...