Python --- 不调用rhino内部命令的情况下,如何用rinoscript实现圆管?

[复制链接]
跳转到指定楼层
25385 gyhk02 发表于 2013-2-26 18:13:38 楼主
不调用rhino内部命令的情况下,如何用rvb实现圆管,不加盖的更好。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
关于大陆地区Rhino原厂培训中心
Jessesn 发表于 2013-3-15 15:48:32
2
搂住的意思是说不用指令,而是用 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:33
3
搂住的意思是说不用指令,而是用 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:28
4
  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:20
5
不好意思写惯了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:18
6
谢两位,问题解决。
您需要登录后才可以回帖 登录 | 注册成为会员

本版积分规则