Vai al contenuto
Pickyw

Clonare Oggetti In Coordinate Definite

Recommended Posts

Ciao a tutti, :wallbash:

Ho un problema che mi tormenta da alcune settimane: vorrei creare uno script adatto al seguente scopo:

Ho un oggetto di cui dovrei fare c.a. 10000 cloni disposti nella scena in una serie di punti ognuno con coordinate definite da un file di testo es, x=123,76 y=6539,87 z=763,09 o eventualmente disponibili in un file autocad

Se qualcuno mi potrebbe aiutare lo ringrazio anticipatamente

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)
ma ci hai provato almeno?

Quoto, è un'operazione di scripting davvero basilare, giusto un clone, un parsing del file e un mappaggio di una matrice di trasformazione dentro un ciclo for.


Modificato da kage_maru

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Scusate ragazzi, di programmazione non ne conosco molto, tuttavia ho letto alcuni script relativi alla clonazione e successiva move roto scale e su questo ci siamo, ma per posizionare gli oggetti non a caso ma dove voglio io come devo fare? cioè: come devo dirgli quell'oggetto definito nel punto x'y'z' dal suo pivot clonalo e posizionalo nella coordinata x"y"z"?

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

ecco qua:

--QUI DEFINISCO FILEPATH DOVE SALVO IL PERCORSO CON IL NOME DEL FILE

filePath="C:\Programmi\Autodesk\3dsMax8\Scripts\work in progress\posizioni.txt"

--INIZIALIZZO IL VETTORE DOVE DOPO SALVERO' LE POSIZIONI LETTE DAL FILE DI TESTO

vettorePosizioni=#()

--QUI MI SALVO IN OGGETTOBASE IL PRIMO OGGETTO DELLA SELEZIONE, CHE POI CLONERO'

oggettoBase=selection[1]


try(

	--APRO IL FILE E MI SALVO IL SUO RIFERIMENTO IN FILE

	file=openFile filePath 


	--CON QUESTO CICLO ELABORO IL FILE FINO ALLA SUA FINE

	while not eof file do

	(

		--LEGGO UNA RIGA

		line=readLine file

		--DALLA RIGA MI RICAVO I TRE NUMERI CHE PERO' SONO ANCORA LETTERE

		numeri=filterString line ",][ "

		--AGGIUNGO LA POSIZIONE NEL VETTOREPOSIZIONI CONVERTENDO LE LETTERE IN NUMERI

		append vettorePosizioni [(numeri[1] as float),(numeri[2] as float),(numeri[3] as float)]

	)


	--PER OGNI POSIZIONE SALVATA CREO UN'ISTANZA DELL'OGGETTO BASE 

	for i in vettorePosizioni do

	(

		--CREO L'ISTANZA E MI SALVO UN SUO RIFERIMENTO IN COPIA

		copia=instance oggettoBase

		--GLI SETTO LA POSIZIONE CON QUELLA LETTA DAL FILE

		copia.pos=i

	)

	--CHIUDO IL FILE

	close file

)

catch(

	--MESSAGGIO DI ERRORE

	format "Errore nell'esecuzione!!!!"

)

il file di prova che ho creato è questo:posizioni.txt

ti basta creare un file uguale a quello e poi mettere il path nello script come ti ho scritto sopra.

Ti ho anche commentato le varie parti così ti puoi fare un'idea dello script.

Comunque prima provare e poi chiedere aiuto sulla propria prova è sicuramente meglio apprezzato. ;)

Credo che quello che tu volessi fosse questo, se non lo è vediamo cosa si può fare.

ciao!

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

direi che è perfetto, non l'ho ancora provato ma gia dal file di testo penso che sia proprio quello che mi serviva,

non so proprio come ringraziarti,

per la mie omesse prove hai ragione, non sono stato molto simpatico, mi giustifico cosi:

mi si è posto il problema della clonazione ed avendo pochissimo tempo a disposizione per effettuarla ho cercato di risolverla in questo modo, da solo non ce l'avrei mai fatta in tempo, quindi primo ti ringrazio sentitamente, secondo mi scuso con tutti, terzo prometto solennemente che comincerò ad affrontare il discorso seriamente condividendo gioie e dolori

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

non è che uno deve portare delle prove.... se uno ha bisogno gli si da una mano volentieri, ma lo spirito di aiutare gli altri quando gli altri se ne approfittano poi passa... il mio suggerimento era proprio per non dare l'impressione di volersi prendere il braccio.

Era un consiglio per il futuro anche perchè se mi fossi risultato antipatico non so se avrei usato una parte della mia pausa pranzo per buttarti giù lo script. :devil:

Il fatto è che molti prima chiedono senza neanche provarci.... e alla lunga questo stanca.

Comunque lieto di aver risolto il problema!

ciao

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.

×