Vai al contenuto
Fremk83

Script per 3ds max per selezionare RGB e spostare in un determinato layer

Recommended Posts

Ciao a tutti,

Ho bisogno di uno script per 3ds Max dove io gli do l’RGB e lui seleziona tutti gli oggetti che hanno quel RGB che poi lo sposta in un Layer chi mi può aiutare?


Modificato da Fremk83

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Non dovrebbe essere molto complicato da realizzare, comunque hai dato un'occhiata che non esista qualcosa di simile qui www.scriptspot.com

Condividi questo messaggio


Link al messaggio
Condividi su altri siti
Inviata (modificato)

@Fremk83

 

Incuriosito dalla tua richiesta, ho creato un picollo script che potrebbe fare al caso tuo. Esso funziona come il "Select by Color" presente in max (ovvero seleziona gli oggeti che condividono lo stesso wirecolor) con l'aggiunta della selezione del layer dove spostare gli oggetti selezionati. Testato con 3dsmax2009, quindi è da provare con le ultime vesioni. Sicuramente è da migliorare, ma qui spero che ci sia qualche anima buona che faccia un upgrade dello script :D

 

Funziona cosi: Con il pickcolor (rgb) selezioni o immetti il colore dell'oggetto/i interessati. Con lo spinner scegli a quale livello devi trasferire la selezine (attenzione: il layer deve esistere). Premi il pulsante e voilà! Se vuoi, puoi anche trasferire sul livello selezionato un singolo oggetto.

 

scml.jpg

 

try (destroydialog :: tc) catch()

rollout tc "Select Color and Move to Layer" width:288 height:96
(
	Global cpc, w, layer
	
	groupBox grp1 "Choose Color and Layer" pos:[4,7] width:276 height:49
	colorPicker cp "Choose WireColor :" pos:[13,24] width:135 height:28 color:[255, 255, 255]
	spinner sp1 "Select Layer :" pos:[168,32] width:104 height:16 range:[0,100000,0] type:#integer fieldWidth:40
	button bt "Select and Move to Layer" pos:[16,64] width:256 height:21

		fn removeGlobals globalArr:#(#cpc, #w, #layer) =
			(
			for name in globalArr where globalVars.isglobal name do globalVars.remove name
			)
			
---
			
	
	on tc close do
		(removeGlobals())
	on bt pressed do
	(
		layer =layermanager.getlayer sp1.value
		
						if layer != undefined then
				(
			if selection.count == 1 do
				(
					cpc = cp.color
					w = $.wirecolor
						if cpc == w do
							(
								select (for o in objects where o.wirecolor == w collect o)
							)
		
				)
				
					for i in selection do  layer.addNode i
				)
					else (messagebox "Layer don't exist. Please create one")
	
	)
)

createdialog tc style:#(#style_titlebar, #style_sysmenu, #style_toolwindow, #style_sunkenedge)

 


Modificato da Michele71

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.

×