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

종이모형 설명서 제작용 원안에 번호 생성 라이노 스크립트

Num in Circle

!-_RunScript (
Option Explicit
'Script written by <>
'Script copyrighted by <>
'Script version v1 14.11.2010

Call Main()
Sub Main()
	Dim arrBod01, arrBod02
	Dim arrArea
	Dim Circle01, Radius01
	
	Dim Number, FontSize, Shift, Text, LongText
	Dim Operator
	
	Number = Rhino.GetReal("Start Numbers:",1)
	Radius01 = Rhino.GetReal("Radius of the circle:",2.5)

	FontSize = Radius01 * 0.8
	Operator = 0
	
	If Not Rhino.isLayer("Numbers::Parts_Num") Then
		Rhino.AddLayer "Numbers::Parts_Num"
	End If
	If Not Rhino.isLayer("Numbers::Num_Lines") Then
		Rhino.AddLayer "Numbers::Num_Lines"
	End If
	
	Do
		arrBod01 = Rhino.GetPoint("Click to Location:")
		If Not isNull(arrBod01) Then
			arrArea = Rhino.WorldXYPlane
			Circle01 = Rhino.AddCircle(arrArea, Radius01)
			Rhino.ObjectColor Circle01, 0
			Rhino.MoveObject Circle01, Rhino.CircleCenterPoint(Circle01), arrBod01
			
			LongText = Len(Number)
			Shift = FontSize * 0.75 / 2 * LongText

			arrBod02 = Array (arrBod01(0)-Shift, arrBod01(1)-(FontSize/2), 0)
			Text = Rhino.AddText (Number, arrBod02, FontSize)
			Rhino.TextObjectStyle Text, 1
			Rhino.ObjectColor Text, 0
			Number = Number + 1
				
			Rhino.ObjectLayer Circle01, "Numbers::Num_Lines"
			Rhino.ObjectLayer Text, "Numbers::Parts_Num"				
				
		Else
			Operator = 1
		End If
	Loop Until Operator = 1
	
	Rhino.Print("Finished users")

End Sub
)

 

 

Simple Letter+Num

!-_RunScript (
Option Explicit

Call Numbering

Sub Numbering
	Dim Number
	Dim Fontsize
	Dim Text, Letter, Character
	Dim arrSuradniceTextu
  

	Letter = Rhino.GetString("Select a Letter:", "A-")
	Number = Rhino.GetReal("Begin with a number:",1)
	Fontsize = Rhino.GetReal("Font Size:",2.5)

	If Not Rhino.isLayer("Numbers::Parts_Num") Then
		Rhino.AddLayer "Numbers::Parts_Num"
	End If
  
	Do 
		arrSuradniceTextu = Rhino.GetPoint("Select a location:")
		If Not IsNull (arrSuradniceTextu) Then
			Text = Rhino.AddText (Letter&Number, arrSuradniceTextu, Fontsize)
                                          Rhino.TextObjectFont Text, "Arial"
               		Rhino.TextObjectStyle Text,0
			Number = Number + 1
		End If
		Rhino.ObjectLayer Text, "Numbers::Parts_Num"
	Loop Until IsNull(arrSuradniceTextu)
  
End Sub
)