签到天数: 120 天 连续签到: 1 天 [LV.7]亲友会员
|
你好,请问一下喔在rhinoscript中运行是,第35行报错,代码如下,28行之前都没问题,就是rhino.moveobject的时候出错,请问是什么原因,从rhino.GetPointCoordinates()中得到的数组是否是一维数组,还有我的现在是两个点,怎样改写成100个点
Option Explicit
'Script written by <insert name>
'Script copyrighted by <insert company name>
'Script version 2013年4月12日 10:06:53
Call Main()
Sub Main()
Dim arrayX(),arrayY(),arrayZ()
Dim s,i
s = 10000
For i = 0 To 1 Step 1
Randomize
ReDim Preserve arrayX(i),arrayY(i),arrayZ(i)
arrayX(i) = rnd()*s + 1
arrayY(i) = rnd()*s + 1
arrayZ(i) = rnd()*s + 1
Next
Dim strPt1,strPt2
strPt1 = rhino.AddPoint(array(arrayX(0),arrayY(0),arrayZ(0)))
strPt2 = rhino.AddPoint(array(arrayX(1),arrayY(1),arrayZ(1)))
Dim dblSphere1,dblSphere2
dblSphere1 = rhino.AddSphere(array(arrayX(0),arrayY(0),arrayZ(0)),1000)
dblSphere2 = rhino.AddSphere(array(arrayX(1),arrayY(1),arrayZ(1)),1000)
Do
Dim dblDistance2Pt
Dim arrPt1Coordinates,arrPt2Coordinates
dblDistance2Pt = rhino.Distance(array(arrayX(0),arrayY(0),arrayZ(0)),array(arrayX(1),arrayY(1),arrayZ(1)))
If dblDistance2Pt > 5000 Then
If IsNull(dblDistance2Pt)Then Exit Do
'选择点1,点2,得到点1,点2的坐标
Call rhino.SelectObject(strPt1)
arrPt1Coordinates = rhino.GetPointCoordinates("strPt1",(rhino.SelectObject(strPt1)))
Call rhino.SelectObject(strPt2)
arrPt2Coordinates = rhino.GetPointCoordinates("strPt2",(rhino.SelectObject(strPt2)))
'移动点1,
Call rhino.MoveObject(strPt1,arrPt1Coordinates,arrPt2Coordinates)
Call rhino.MoveObject(dblsphere1,arrPt1Coordinates,arrPt2Coordinates)
Call rhino.Sleep(1000)
ElseIf dblDistance2Pt < 5000 Then
If IsNull(dblDistance2Pt)Then Exit Do
'选择点1,点2,得到点1,点2的坐标
Call rhino.SelectObject(strPt1)
arrPt1Coordinates = rhino.GetPointCoordinates("strPt1",(rhino.SelectObject(strPt1)))
Call rhino.SelectObject(strPt2)
arrPt2Coordinates = rhino.GetPointCoordinates("strPt2",(rhino.SelectObject(strPt2)))
'移动点1,
Call rhino.MoveObject(strPt1,arrPt2Coordinates,arrPt1Coordinates)
Call rhino.MoveObject(dblsphere1,arrPt2Coordinates,arrPt1Coordinates)
Call rhino.Sleep(1000)
End If
Loop While dblDistance2Pt = 2000
End Sub |
|