Copiare layer in altri layers

ciao,
aparte eseguire tutto in modo manuale e reiterando la sequenza…
esiste un comando per velocizzare la selezione di uno o più layer (senza il loro contenuto) e copiarli in automatico in uno o più layer già presenti nel file stesso?

esempio:
ho il layer “1”, “2” e “3” e li voglio replicare come copie sotto i layer “pippo”, “pluto” e “paperino”

??

grazie in anticipo per l’aiuto

Questa definizione rinomina i layer già duplicati con l’apposito comando Rhino quindi non so se può andar bene.
Necessario il plugin Human.
Lo script c# non è farina del mio sacco.
rename layer.gh (12,7 KB)

Ciao Leopoldo, grazie per la segnalazione ma non è quello che cerco; sarebbe utile un piccolo script (che purtroppo non saprei scrivere) dove una volta richiamato da un tasto editato, il promt mi chiede di selezionare i layer da copiare, seleziono e con tasto dx chiudo la selezione, il prompt mi chiede i layer sotto cui andare a mettere le copie dei layer precedentemente selezionati

Allego uno script che ho buttato giù.

Option Explicit
'Script written by Lucio Zadra
'Script version giovedì 29 agosto 2024 16:03:43

Call Main()
Sub Main()

	Dim Layers, CopyLayer, PasteLayer, NameLayer, LayerColor
	
	Layers = Rhino.LayerNames
	
	If IsArray(Layers) Then
		CopyLayer = Rhino.GetLayers("Seleziona i Layer da copiare")
		If IsArray(CopyLayer) Then
			PasteLayer = Rhino.GetLayer("Seleziona sotto quale layer vuoi copiare")
			If Not isNull(PasteLayer) Then
				For Each NameLayer In CopyLayer
					LayerColor = Rhino.LayerColor(NameLayer)
					Rhino.AddLayer PasteLayer & "::" & NameLayer, LayerColor
				Next
			End If
		End If
	End If
			
End Sub
1 Mi Piace

Grazie Lucio!
Domani provo a importare lo script e usarlo, ti aggiornerò

Appena si potrà riproporre un rhino day mi sdebiterò :wink:

1 Mi Piace

ciao Lucio,
perdonami ma come sempre mi perdo in un bicchiere d’acqua…

ho inserito il tuo script in un comando di rhino ma devo aver fatto qualche errore nella sintassi di caricamento…

ti allego due immagini che mostrano lo script inserito e il messaggio di errore…
image

image

Ciao Marco

Lo scrpt di Lucio non e’ in Python,
e’ in VBScript.

Ci vuole l’altro comando.
Se non ricordo male LoadScript … ma non ci giuro. :blush:

1 Mi Piace

ciao Emilio!
si sembra sia LoadScript ma adesso mi da questo messaggio di errore…

image
image

@illo76
Se lo metti in un pulsante il comando che lo esegue è:

! -_Runscript (

“Script che ti ho mandato”

)

Ricordati le parentesi.

2 Mi Piace

GRANDE!

tutto ok solo l’ultima richiesta dovrebbe chiedere sotto quali (uno o più) layer copiare quelli selezionati…

così funziona tutto ma mi fa la copia scegliendo solo uno di destinazione

Ah, beh, e io che ho fatto apposta a far selezionare un solo layer per essere sicuro che uno non sbagliasse…

Option Explicit
'Script written by Lucio Zadra
'Script version giovedì 29 agosto 2024 16:03:43

Call Main()
Sub Main()

	Dim Layers, CopyLayer, PasteLayer, NameLayer, ParentLayer, LayerColor
	
	Layers = Rhino.LayerNames
	
	If IsArray(Layers) Then
		CopyLayer = Rhino.GetLayers("Seleziona i Layer da copiare")
		If IsArray(CopyLayer) Then
			PasteLayer = Rhino.GetLayers("Seleziona sotto quali layer vuoi copiare")
			If Not isNull(PasteLayer) Then
				For Each ParentLayer In Pastelayer
					For Each NameLayer In CopyLayer
						LayerColor = Rhino.LayerColor(NameLayer)
						Rhino.AddLayer ParentLayer & "::" & NameLayer, LayerColor
					Next
				Next
			End If
		End If
	End If
			
End Sub
1 Mi Piace

SUPER! perfetto

1 Mi Piace