R&D Data/Code · 2025. 9. 7.

종이모형 설명서 제작용 파트 번호 자동 증가 생성 라이노 스크립트

Increase Numbering

!-_RunScript (
Option Explicit

Call Main()
Sub Main()
	Dim arrObject, Vertical, TextObject, Shift, ShiftObject01, ShiftObject02
	Dim auxiliary01, auxiliary02
	Dim i
	Dim length, left01, right01, e, Operator01, Last
	
	arrObject = Rhino.ObjectsByLayer("Part_Number")
	Shift = Rhino.GetReal("add:", 1)
	Vertical = Rhino.GetReal("Input number to start increasing from:")
	
	For i=0 To UBound(arrObject)
		If Rhino.IsText (arrObject(i)) Then
			TextObject = Rhino.TextObjectText(arrObject(i))
			left01 = TextObject
			right01 = Null
			ShiftObject01 = Len(left01)
			If Not isNumeric (left01) Then
				length = Len(left01)
				For e = 1 To length
					Operator01 = Left (TextObject, e)
					If Not IsNumeric (Operator01) Then
						e=length
					Else
						Last = e
					End If
				Next
				left01 = Left (TextObject, Last)
				right01 = Right (TextObject, length - Last)
			End if
			left01 = left01 * 1
			If (left01 > Vertical) Or (left01 = Vertical) Then
				left01 = left01 + Shift
				Rhino.TextObjectText arrObject(i), left01 & right01
				
				ShiftObject02 = Len(left01 & right01)
				If Not (ShiftObject02-ShiftObject01 = 0) Then
					auxiliary01 = Array (0,0,0)
					auxiliary02 = Array (-((Rhino.TextObjectHeight(arrObject(i))*0.4 * (ShiftObject02-ShiftObject01))),0,0)
					Rhino.MoveObject arrObject(i),auxiliary01,auxiliary02
				End If
				
			End If

		End If
	Next

End Sub
)