tony 发表于 2011-7-9 09:48:43

RS Ubound 出错

……
crv = Rhino.getobject("Select crv",4)
arrC = Rhino.explodecurve (crv,1)
If ubound(arrC)>0 then
……
在上面的脚本中,如果crv本身是一条不可爆炸开的曲线,Ubound(arrC)的值应该为0,结果就是为0时会出错。如果crv是一条可炸开的曲线,就不会出错。
请各位指教.......

modern 发表于 2011-7-10 08:38:36

这个出错不见得在Ubound
最好能看到下面的部份
很可能问题出在下面

tony 发表于 2011-7-12 15:03:41

modern 发表于 2011-7-10 08:38 http://bbs.rhino3d.us/static/image/common/back.gif
这个出错不见得在Ubound
最好能看到下面的部份
很可能问题出在下面

谢谢M大,你可以测试一下.只画一条不能炸开的线,就是会出错,而由两条线Join起来的线,就不会.


Call Main()
Sub Main()
Crv1 = Rhino.GetObject("select curve 1",4)

If IsNull(Crv1) Then Exit Sub

If Rhino.IsCurve(Crv1) Then

newcrv1 = Rhino.ExplodeCurves(crv1,True)
   
If Ubound(newcrv1)>0 Then
   
   Rhino.MessageBox "Curve 1 is a polycurve! Please Check it!!",48,"Warning"
   
   Exit Sub

End If   
End If

End Sub

tony 发表于 2011-7-14 22:06:37

高声呼叫M大

hyycq 发表于 2012-12-26 22:47:09

你的错误是在newcrv1=rhino.explodecurves(crv1,true)
因为你如果是单独的curve的话,newcrv1的返回值是null。所以下面ubound是空的无效的。我吧你的这个小东东改了一下,这样应该可以用了。

Call Main()
Sub Main()
Dim crv1,newcrv1
Crv1 = Rhino.GetObject("select curve 1",4)

If IsNull(Crv1) Then Exit Sub

If Rhino.IsCurve(Crv1) Then

newcrv1 = Rhino.ExplodeCurves(crv1,True)
if isnull(newcrv1) then
call rhino.print("It is not a polyline.")
else   
   Rhino.MessageBox "Curve 1 is a polycurve! Please Check it!!",48,"Warning"
      Exit Sub
end if

End If   

End Sub

hyycq 发表于 2012-12-26 22:48:33

为什么这个论坛不能上传?我存了个rvb格式的还不能发帖上传!

tony 发表于 2012-12-31 20:38:23

hyycq 发表于 2012-12-26 22:47 static/image/common/back.gif
你的错误是在newcrv1=rhino.explodecurves(crv1,true)
因为你如果是单独的curve的话,newcrv1的返回值是nu ...

谢谢~~~~~~~~~~~~~~

tony 发表于 2012-12-31 20:38:59

hyycq 发表于 2012-12-26 22:48 static/image/common/back.gif
为什么这个论坛不能上传?我存了个rvb格式的还不能发帖上传!

你可以存为txt文件啊
页: [1]
查看完整版本: RS Ubound 出错