摩登犀牛

标题: RS Ubound 出错 [打印本页]

作者: tony    时间: 2011-7-9 09:48
标题: 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
这个出错不见得在Ubound
最好能看到下面的部份
很可能问题出在下面
作者: tony    时间: 2011-7-12 15:03
modern 发表于 2011-7-10 08:38
这个出错不见得在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
高声呼叫M大
作者: hyycq    时间: 2012-12-26 22:47
你的错误是在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
为什么这个论坛不能上传?我存了个rvb格式的还不能发帖上传!
作者: tony    时间: 2012-12-31 20:38
hyycq 发表于 2012-12-26 22:47
你的错误是在newcrv1=rhino.explodecurves(crv1,true)
因为你如果是单独的curve的话,newcrv1的返回值是nu ...

谢谢~~~~~~~~~~~~~~
作者: tony    时间: 2012-12-31 20:38
hyycq 发表于 2012-12-26 22:48
为什么这个论坛不能上传?我存了个rvb格式的还不能发帖上传!

你可以存为txt文件啊




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