Rhino(犀牛)中国技术支持与推广中心

标题: 不调用rhino内部命令的情况下,如何用rinoscript实现圆管? [打印本页]

作者: gyhk02    时间: 2013-2-26 18:13
标题: 不调用rhino内部命令的情况下,如何用rinoscript实现圆管?
不调用rhino内部命令的情况下,如何用rvb实现圆管,不加盖的更好。




作者: Jessesn    时间: 2013-3-15 15:48
搂住的意思是说不用指令,而是用 RhinoScript 来执行 Pipe 的类似功能吗?
RhinoScript 所有的函数都是呼叫 Rhino 内部函数库的, 例如可以这么写
  1. m strCurve, arrDomain

  2. strCurve = Rhino.GetObject("Select curve to create pipe around", 4, True)

  3. If Not IsNull(strCurve) Then

  4.   arrDomain = Rhino.CurveDomain(strCurve)

  5.   Rhino.AddPipe strCurve, Array(arrDomain(0)), Array(4)

  6. End If
复制代码

作者: Jessesn    时间: 2013-3-15 15:48
搂住的意思是说不用指令,而是用 RhinoScript 来执行 Pipe 的类似功能吗?
RhinoScript 所有的函数都是呼叫 Rhino 内部函数库的, 例如可以这么写
  1. Dim strCurve, arrDomain

  2. strCurve = Rhino.GetObject("Select curve to create pipe around", 4, True)

  3. If Not IsNull(strCurve) Then

  4.   arrDomain = Rhino.CurveDomain(strCurve)

  5.   Rhino.AddPipe strCurve, Array(arrDomain(0)), Array(4)

  6. End If
复制代码

作者: 毛伟伟RIVER    时间: 2013-4-12 23:52
  1. import rhinoscriptsyntax as rs



  2. class pipe:
  3.    
  4.     def __init__(self,curve):
  5.         
  6.         self.crv = curve
  7.         
  8.         
  9.     def pipe(self,rad):
  10.         
  11.         domain = rs.CurveDomain(self.crv)
  12.         pipe = rs.AddPipe(self.crv,domain[0],rad)
  13.         
  14. def main():
  15.     crvs = rs.GetObjects("select your curves",4)
  16.     raddi = rs.GetReal("pipe raddio",.5)
  17.     for i in crvs:
  18.         
  19.         myPipe = pipe(i)
  20.         myPipe.pipe(raddi)


  21. main()
复制代码

作者: 毛伟伟RIVER    时间: 2013-4-12 23:56
不好意思写惯了class。这是非class的。J大的知识一根,多管加个for loop就可以了
  1. import rhinoscriptsyntax as rs


  2. crvs = rs.GetObjects("select your curves",4)

  3. raddi = rs.GetReal("pipe raddio",.5)

  4. for i in crvs:
  5.    
  6.     domain = rs.CurveDomain(i)
  7.     pipe =rs.AddPipe(i,domain[0],.5)


复制代码

作者: gyhk02    时间: 2013-6-11 11:28
谢两位,问题解决。




欢迎光临 Rhino(犀牛)中国技术支持与推广中心 (http://bbs.rhino3d.asia/) Powered by Discuz! X3.2