Vai al contenuto
graffio83

Selezione Oggetto E File Esterno

Recommended Posts

Ciao, volevo un paio di informazioni... se potete :-)

Scusate se nn parlo tecnicamente ma io programmo e nn disegno...

Quindi:

1) devo selezionare un oggetto all'interno di un area e inserirlo in una variabile, poi devo fare lo stesso con un secondo.

per ora ho risolto con 2 programmi simili (cambia il nome della variabile siscritti.

for obj in selection do

(

x=$

)

così ho associato l'oggetto selezionato a x

for obj in selection do

(

y=$

)

così ho associato l'oggetto selezionato a y

a questo punto lancio un terzo script che fa varie cose su x e y

credo esista un modo più elegante per fare ciò...

vorrei che uscisse una finestra che mi dica di selezionare il primo oggetto e che vada avanti appena l'ho selezionato...

è possibile?

2) Devo aprire un file excel (sempre in maxscript) e leggere dei valori dalla prima riga e usarli.

leggere dalla seconda riga ed usarli e così via...

qualcuno sa come si fa???

Sentiti ringraziamenti a quanti interverrano :rolleyes: :rolleyes: :rolleyes: :rolleyes:

Ciao ciao

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

usa un codice così:

x=pickObject()

y=pickObject()

richiamata così ti permetterà di prendere un oggetto di qualsiasi tipo, ma è possibile passargli parametri per prendere più oggetti, filtrarli per classe e così via....

come al solito nella reference sono spiegati dettagliatamente.

Se invece vuoi farlo da un'interfaccia c'è un pulsante apposito che fa la stessa cosa, è il PickButton.

per quel che riguarda excel posso indirizzarti alla reference cercando"excel ole automation" .

Non uso excel e quindi non ho mai testato la cosa.

so che in tutte le mie risposte ti ho sempre reindirizzato alla reference ma con maxscript senza la reference sempre aperta non si va avanti, bisogna abituarsi ad usarla costantemente.

ciao!

P.S. hai guardato i videotutorial introduttivi al maxscript di philix? sono qui su treddi

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
usa un codice così:

x=pickObject()

y=pickObject()

richiamata così ti permetterà di prendere un oggetto di qualsiasi tipo, ma è possibile passargli parametri per prendere più oggetti, filtrarli per classe e così via....

come al solito nella reference sono spiegati dettagliatamente.

Se invece vuoi farlo da un'interfaccia c'è un pulsante apposito che fa la stessa cosa, è il PickButton.

per quel che riguarda excel posso indirizzarti alla reference cercando"excel ole automation" .

Non uso excel e quindi non ho mai testato la cosa.

so che in tutte le mie risposte ti ho sempre reindirizzato alla reference ma con maxscript senza la reference sempre aperta non si va avanti, bisogna abituarsi ad usarla costantemente.

ciao!

P.S. hai guardato i videotutorial introduttivi al maxscript di philix? sono qui su treddi

Lo so ma mi fa comodo provare le cose direttamente sul 3dstudio ma l'ho solo a lavoro e li nn ho interne (nn sono abilitato)

non so come ringraziarti...

Ciao e ancora grazie

martedì provo il tutto e ti faccio sapere :-)

ciao

Scusami un ultima domanda in una tua risposta hai usato:

"stringfiltering" o qualcosa di simile...

mi spieghi il suo uso (giuro di aver visto prima sulle referece)

Grazie ancora... Ciao

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Scusami ho un'altra domanda

come faccio ad attendere mentre l'utente seleziona... ovvero (scrivo in pseudocodice)

fai comparire un box con la scritta "Seleziona il primo oggetto"

x=pickObject()

Solo dopo che l'oggetto è stato selezionato prosegui

fai comparire un box con la scritta "Seleziona il secondo oggetto"

y=pickObject()

Solo dopo che l'oggetto è stato selezionato prosegui

Grazie

ciao

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

credo ti rifestica a quando ho scritto della possibilità di passare alla funzione pickobject il parametro filter, per dirle di filtrare gli oggetti della scena in modo da poterne "prendere" solo alcuni.

in pratica crei una funzione con un solo parametro che sarà l'oggetto preso in esame, poi gli fai restituire come risultato un booleano, in modo che restituisca true per gli oggetti che ti interessano e false per quelli che non vuoi.

ciao!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

scusa, non avevo capito.

in pratica io avevo la stringa "[2,3,4]" e dovevo convertirlo nel point3 corrispondente(ovvero [2,3,4])

in teoria avrei potuto scrivere un codice così:

stringa="[2,3,4]"

/* dato che le stringhe sono vettori di caratteri i numeri che mi interessano sono in posizione 2, 4 e 7

*/

numero=[stringa[2] as float,stringa[4] as float,stringa[7] as float]
in questo modo ottengo il point3 ma se i numeri sono composti da più di un carattere o ci sono degli spazi da qualche parte la cosa non funziona più il filterstring in pratica ti filtra una stringa togliendogli i caratteri che decidi e spezzandola ogni volta che trova uno dei caratteri che gli passi:
stringa="[2,3,4]"

stringa_filtrata=filterstring stringa ",[] "

/*tolgo dalla stringa tutti i caratteri che non voglio e ottengo quindi un vettore con tre stringhe, ognuna è uno dei tre numeri del point3 che voglio ottenere


stringa_filtrata sarà così:

#("2","3","4")

e quindi la conversione diventa semplice

*/

num=[stringa_filtrata[1] as float , stringa_filtrata[2] as float , stringa_filtrata[3] as float]

prendendo come esempio un caso più complesso se stringa fosse: " [ 2.0 , 123444.2346 , 4] "

otterrei stringa_filtrata così: #("2.0","123444.2346","4")

ciao!


Modificato da coren

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora


  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×