将RhinoPython代码修改为GhPython代码的简易教学
VIEW CONTENTS
Rhino3D犀牛中文网 图文教学 查看内容

将RhinoPython代码修改为GhPython代码的简易教学

2017-4-11 20:25| 发布者: Jorin| 查看: 1464| 评论: 0
摘要: 本次教学将教大家把RhinoPython代码修改为GhPython代码的基本方法。 我们使用一位同学在Shaper分享的代码来修改,获取源代码请访问:http://bbs.shaper3d.com/thread-23768-1-1.html 第一步,把RhinoPython的交互函 ...

本次教学将教大家把RhinoPython代码修改为GhPython代码的基本方法。

我们使用一位同学在Shaper分享的代码来修改,获取源代码请访问:
http://bbs.shaper3d.com/thread-23768-1-1.html

第一步,把RhinoPython的交互函数去掉

此例中直接把第20行(让用户选取曲线的语句)删除。修改完以后的main函数如下:

def main():
    global t
    t = 0
    while t <= 1:
        dividecurve(curve_id,t)
        t += 0.002

那么curve_id这个参数从哪里来呢?
第二步,修改GHpython元件的输入参数
默认情况下,GHpython元件的两个输入参数是x和y,输出参数是a

1.jpg
我们需要的是curve_id,所以删除一个参数,修改剩下一个参数的名称为curve_id,并从外部为curve_id输入一条曲线
修改后的应该是这样:

2.png
第三步,查错,并删除不能在GH中使用的函数
此例中删除第17行line = rs.ObjectColor(line,getcolor(parameter))为直线设置颜色的函数。
GH用自身的颜色显示方式覆盖了Rhino场景中的颜色显示方式,这个函数不能直接使用,之后可以通过GH显示颜色的原件去做。为了方便讲解修改代码的要点,我们直接删除此行和getcolor函数。
第四步,添加输出参数
不论GHpython中添加了多少物件,但只要不在原件的输出端做输出,都不会显示出来。
不同的代码,输出参数的设置方法不同,但只要记住上面这点,就很好设置了。
此例代码中产生了很多直线,我们要输出这些直线,就需要添加一个列表,来记录这些直线。
我们在main()函数中添加一个列表line,while循环每循环一次,line列表中就增加一条直线。
但是dividecurve函数并没有返回值,所以还需要把dividecurve函数中的line返回。
但此时main函数中的line列表同样是局部变量,不能直接用于输出,所以我们返回main函数中的line列表。
在执行main函数后,输出main函数的返回值,所以我们让输出参数a=main()
至此,整个代码修改过程完毕:

import rhinoscriptsyntax as rs

def dividecurve(curve_id,parameter):
    domain = rs.CurveDomain(curve_id)
    t_curve = domain[0] + (domain[1] - domain[0])*parameter
    point = rs.EvaluateCurve(curve_id,t_curve)
    if point:
        line = rs.AddLine(point,[0,0,0])
        return line

def main():
    line=[]
    global t
    t = 0
    while t <= 1:
        line.append(dividecurve(curve_id,t))
        t += 0.002
    return line

a=main()
最终效果如图:

4.jpg
为了讲解方法,我们修改中间牺牲了颜色变化的特性,现在大家了解方法以后,可以做一个练习,把颜色也输出出来,做成如下结果:

5.png

提交作业及更多关于此话题的讨论,请访问

http://bbs.shaper3d.com/thread-23770-1-1.html



路过

雷人

握手

鲜花

鸡蛋

最新评论

Rhino3D(犀牛)中文网

  • 深圳:0755-29642189
  • 上海:021-56496412
  • 成都:028-61592400
  • support@shaper3d.com

关注我们

Copyright   ©2007-2017  Rhino3D犀牛中文网  Powered by©Discuz!     ( 粤ICP备12051517号-5