!-_RunScript (
Option Explicit
Call Numbering02
Sub Numbering02
Dim Number
Dim Fontsize, Text
Dim arrBod01, arrBod02, arrBod03
Dim arrTextassociate
Dim Line01, Line02
Dim UnderlineLength
Dim Operator
Dim arrLeaderPoints(1)
Operator = 0
Number = Rhino.GetReal("Start Number:",1)
Fontsize = Rhino.GetReal("Font Size:",2)
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
If Not Rhino.isLayer("Numbers::Leader_Lines") Then
Rhino.AddLayer "Numbers::Leader_Lines"
End If
Do
UnderlineLength = Fontsize*0.8
UnderlineLength = UnderlineLength * Len(Number)
arrBod01 = Rhino.GetPoint("Select the top line:")
If Not IsNull (arrBod01) Then
arrBod02 = Rhino.GetPoint("Select the end of the line:", arrBod01 )
If Not IsNull (arrBod02) Then
If arrBod02(0)>arrBod01(0)Then
' 'Line01 = Rhino.AddLine(arrBod01,arrBod02)
arrBod03 = Array(arrBod02(0)+UnderlineLength ,arrBod02(1),arrBod02(2))
Line02 = Rhino.AddLine(arrBod02,arrBod03)
' 'Rhino.CurveArrows Line01, 1
arrTextassociate = Array(arrBod02(0),arrBod02(1)+0.5,arrBod02(2))
Text = Rhino.AddText (Number, arrTextassociate, Fontsize)
Rhino.TextObjectFont Text, "Arial"
Rhino.TextObjectStyle Text,0
Number = Number + 1
Else
'Line01 = Rhino.AddLine(arrBod01,arrBod02)
arrBod03 = Array(arrBod02(0)-UnderlineLength ,arrBod02(1),arrBod02(2))
Line02 = Rhino.AddLine(arrBod02,arrBod03)
'Rhino.CurveArrows Line01, 1
arrTextassociate = Array(arrBod02(0)-UnderlineLength ,arrBod02(1)+0.5,arrBod02(2))
Text = Rhino.AddText (Number, arrTextassociate, Fontsize)
Rhino.TextObjectFont Text, "Arial"
Rhino.TextObjectStyle Text,0
Number = Number + 1
End If
'Rhino.ObjectLayer Line01, "Numbers::Leader_Lines"
Rhino.ObjectLayer Line02, "Numbers::Num_Lines"
Rhino.ObjectLayer Text, "Numbers::Parts_Num"
Else
Operator = 1
End If
'화살표 그리기
arrLeaderPoints(0) = arrBod01
arrLeaderPoints(1) = arrBod02
Rhino.AddLeader arrLeaderPoints
Else
Operator = 1
End If
Loop Until Operator=1
Rhino.Command "SelNone"
Rhino.Command "SelLeader"
Rhino.Command "-ChangeLayer pause Numbers::Leader_Lines"
Rhino.Command "SelNone"
Rhino.Print("Finished users")
End Sub
)
Num + Letter on Line
!-_RunScript (
Option Explicit
Call Numbering02
Sub Numbering02
Dim Number
Dim Fontsize, Text
Dim arrBod01, arrBod02, arrBod03
Dim arrTextassociate
Dim Line01, Line02
Dim UnderlineLength
Dim Operator, writing, Character
Dim arrLeaderPoints(1)
Operator = 0
Number = Rhino.GetReal("Select a number:",1)
writing = Rhino.GetString("Begin with a:", "a")
Character = Asc(writing)
Fontsize = Rhino.GetReal("Font Size:",2)
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
If Not Rhino.isLayer("Numbers::Leader_Lines") Then
Rhino.AddLayer "Numbers::Leader_Lines"
End If
Do
UnderlineLength = Fontsize*0.8
UnderlineLength = UnderlineLength * Len(Number&writing)
arrBod01 = Rhino.GetPoint("Select the top line:")
If Not IsNull (arrBod01) Then
arrBod02 = Rhino.GetPoint("Select the end of the line:", arrBod01 )
If Not IsNull (arrBod02) Then
If arrBod02(0)>arrBod01(0)Then
' Line01 = Rhino.AddLine(arrBod01,arrBod02)
arrBod03 = Array(arrBod02(0)+UnderlineLength,arrBod02(1),arrBod02(2))
Line02 = Rhino.AddLine(arrBod02,arrBod03)
' Rhino.CurveArrows Line01, 1
arrTextassociate = Array(arrBod02(0),arrBod02(1)+0.5,arrBod02(2))
Text = Rhino.AddText (Number&writing, arrTextassociate, Fontsize)
Rhino.TextObjectFont Text, "Arial"
Rhino.TextObjectStyle Text,0
Character = Character + 1
writing = Chr(Character)
Else
' Line01 = Rhino.AddLine(arrBod01,arrBod02)
arrBod03 = Array(arrBod02(0)-UnderlineLength,arrBod02(1),arrBod02(2))
Line02 = Rhino.AddLine(arrBod02,arrBod03)
' Rhino.CurveArrows Line01, 1
arrTextassociate = Array(arrBod02(0)-UnderlineLength,arrBod02(1)+0.5,arrBod02(2))
Text = Rhino.AddText (Number&writing, arrTextassociate, Fontsize)
Rhino.TextObjectFont Text, "Arial"
Rhino.TextObjectStyle Text,0
Character = Character + 1
writing = Chr(Character)
End If
' Rhino.ObjectLayer Line01, "Numbers::Leader_Lines"
Rhino.ObjectLayer Line02, "Numbers::Num_Lines"
Rhino.ObjectLayer Text, "Numbers::Parts_Num"
Else
Operator = 1
End If
'화살표 그리기
arrLeaderPoints(0) = arrBod01
arrLeaderPoints(1) = arrBod02
Rhino.AddLeader arrLeaderPoints
Else
Operator = 1
End If
Loop Until Operator=1
Rhino.Command "SelNone"
Rhino.Command "SelLeader"
Rhino.Command "-ChangeLayer pause Numbers::Leader_Lines"
Rhino.Command "SelNone"
Rhino.Print("Finished users")
End Sub
)