[已解决] rhino.moveobject()遇到数据类型不匹配的问题

1
回复
2141
查看
打印 上一主题 下一主题
[复制链接]

微信扫一扫 分享朋友圈

签到天数: 120 天

连续签到: 1 天

[LV.7]亲友会员

1
发表于 2013-4-12 14:01:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
你好,请问一下喔在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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏
收藏0
支持
支持0
反对
反对0
订阅 Rhino 最新资讯
回复

使用道具 举报

签到天数: 94 天

连续签到: 1 天

[LV.6]常住会员

2
发表于 2013-6-15 23:51:12 | 只看该作者
顶一下吧~ 很少见的好帖了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

15927211580

周一至周五 9:30-18:00

武汉市武昌区中山路380号201

  • 关注微信公众号

  • 微信咨询客服号

QQ- Archiver- 鄂ICP备12016959号   充值M币 |勋章中心 | ( 鄂ICP备12016959号 )

Powered by Discuz!X3.2© 2001-2013 Comsenz Inc.

金融信息行业协会理事单位 | 信息服务业行业协会会员单位 | 网络信贷服务业企业联盟单位