摩登犀牛

标题: rhino.moveobject()遇到数据类型不匹配的问题 [打印本页]

作者: 我的千岁寒    时间: 2013-4-12 14:01
标题: rhino.moveobject()遇到数据类型不匹配的问题
你好,请问一下喔在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
作者: ll905518294    时间: 2013-6-15 23:51
顶一下吧~ 很少见的好帖了




欢迎光临 摩登犀牛 (http://www.rhino3d.us/) Powered by Discuz! X3.2