Curve extrusion along curve differences between gui and api

Ho fatto qualche prova e alla fine mi sono buttato giù uno script che fa circa quello che hai chiesto… poi bisogna vedere come inserire lo stesso procedimento nel plugin…

Option Explicit
'Script written by Lucio Zadra
'Script version giovedì 11 settembre 2025 18:23:17

Call Main()
Sub Main()

	Dim CrvId, Segm, Rad, CrvArr, OffsArr(), i, ResultArray, GrpName
	
	i = 0
	
	'Seleziono la curva da offsettare
	
	CrvId = Rhino.GetObject("Seleziona la curva da elaborare", 4, VbTrue)
	If Not IsNull(CrvId) Then
		Rad = Rhino.GetReal("Inserisci la larghezza dell'offset", 2)
		If IsNull(rad) Then Exit Sub
		CrvArr = Rhino.explodeCurves(CrvId)
		If Not IsNull(CrvArr) Then
			Rhino.EnableRedraw False
			For Each Segm In CrvArr
				ReDim Preserve OffsArr(i)
				Rhino.SelectObject Segm
				Rhino.Command "_Offset " & Cstr(Rad) & " _Bothside _Cap=Round _Enter", False
				Rhino.UnselectAllObjects
				If Rhino.IsCurveClosed(Rhino.FirstObject) Then
					OffsArr(i) = Rhino.FirstObject
					i = i + 1
				Else
					Rhino.DeleteObject Rhino.FirstObject
				End If
			Next
			Rhino.DeleteObjects CrvArr
			ResultArray = Rhino.CurveBooleanUnion(OffsArr, True)
			If IsNull(ResultArray) Then
				'Rhino.DeleteObjects OffsArr
				Rhino.EnableRedraw True
				Exit Sub
			End If
			
			GrpName = "Gruppo" & Cstr(Time)
			Rhino.AddGroup GrpName
			Rhino.AddObjectsToGroup ResultArray, GrpName
			Rhino.EnableRedraw True
		End If
	End If
	
End Sub

E’ in VbScript perchè io sono vecchio e non mi sono adeguato…
Però funziona… su per giù, almeno per i test che ho fatto…

2 Mi Piace