NCF参数化建筑论坛

标题: Python与Grasshopper的联合. [打印本页]

作者: RichieBall    时间: 2012-12-25 17:19
标题: Python与Grasshopper的联合.
转自:http://cadesign.cn/bbs/thread-11-1-1.html

                               
登录/注册后可看大图


                               
登录/注册后可看大图

以程序语言为基础的参数驱动技术辅助设计逐渐的成为三维模型构建的主流,是未来发展的重要方向。现在计算机语言发展已经构建出一个强大的阵营,包括C,C++,C#,Java,VB,Python,PHP,Perl等等。设计师似乎难以想象自己何时竟与程序语言构建了联系。而这种联系竟然是未来发展的一个重要方向。在规划,建筑,景观设计师的培训机制中,国内尚且很少有将其与设计挂钩的相关课程。如果作为设计师培训课程的一部分,设计行业的发展必然会出现另一种局面。
在众多的程序语言中,让设计师极为棘手的莫过于选择哪种语言。被认为只有计算机专业才应该掌握的程序语言,对于设计师来讲系统的学习要耗费非常大的精力。实际上也并不推荐学习难度大的C语言等耗费精力的语言。对于设计师,扎实的设计基本功和空间感悟、美学修养是其永不变的基础。语言是在这个基础之上,放大设计师可以触及到的形态领域。目前三维分析设计软件基本都有自己的脚本语言。MAYA是MEL,自8.5之后支持Pyhton语言。Rhinoceros是RhinoScript,自5.0之后嵌入Ironpython,Houdini使用的是HScript,自9.0后使用HOM(Houdini Object Mode),支持Python语言。地理信息软件,ArcGis8基于地理视图的脚本语言开始引入,9.0开始支持Python。VUE自然景观生成软件与FME地理数据转化平台同样支持Python语言。Python程序语言在逐渐的被更为广泛的三维分析设计软件所支持,这正是在于Python语言的优美,同时可以让设计师在短时间内即可掌握,并进入实践的语言。
    在程序语言的辅助设计下,设计内容也日趋复杂,仅依靠传统纸笔的设计方式难以达到目的。而在三维模型构建程序中,仅仅依靠传统建模方式,会带来繁重的工作量。尤其在设计不断整合,来回修改的过程中,依靠程序语言(编码)的方式,可以大幅度减轻工作难度,将重点放置于设计推敲上,并进入和探索新的形态领域。
    在未接触程序语言时,设计师看待语言的态度是神秘的。由无数代码产生的图形总比直观的形态推敲要抽象的多。实际上一旦读懂语言,所关注的重点自然是这种构建逻辑的合理性,不会被抽象的语言所迷惑。当然,程序越简单,可读性越强是最好的。不仅使模块易于操作修改,同时使其他设计师或程序员也更加易读。Python语言与GH的结合 ,极大的拓展了GH的模型构建能力。
    使用Python语言协助设计,相对于其他编程语言,例如Rhino另一个支持的语言VB,和C等语言来说,python语言能够给予设计师更流畅的表达,“…但最重要的是,Python是一种使你在编程时能够保持自己风格的程序设计语言。你不用费什么劲就可以实现你想要的功能,并且编写的程序清晰易懂(和当前流行的其他各种程序设计语言相比更是如此)。”-<Beginning Python from Novice to Professional>由 Python语言编写的程序可以感觉到类似于一篇优雅的散文。在使用Python协助设计的过程中,设计师不用过多的关注类似其他语言那样严格的控制结构,例如给予VB语言的Rhinoscript,必须声明变量,语句块结构结束需要有End If, End Sub关键字标示结束。更重要的是Python语言与一般英语结构相似,例如:   
name=input('What is your name?')
if name.endswith('Gumby'):
    print ('Hello,Mr.Gumby')
else:
print('Hello,Stranger')
   
注:学习Python建议首先阅读([挪]Mangus Lie Hetland.Begining Python from novice to professional second edition python基础教程,司维,曾军葳,谭颖华译.北京,人民邮电出版社,2010.)在实际编程过程中需要(David M.Beazley.Python Essential Reference fourth edition python 参考手册.谢俊,杨越,高伟译.2011.北京,人民邮电出版社.)一书为辅助,可以帮助查询语法和命令。
    针对RHINO平台的Python可以从官方网址下载教程(Skylar Tibbits,Arhur van der Harten, Steve Baer.2011.Python for rhinoceros 5.),实际操作过程中需要参考RHINO提供的Rhino IronPython帮助文件;


                               
登录/注册后可看大图
GH Python:


比较GH与Python脚本,Python命令行形式的编程环境是基础的语言,可以理解为GH中所有的命令都可以通过Python命令行形式的语言得以实现,甚至可以扩展  GH的组件,也就是为什么设计师在了解了GH之后,还要学习脚本语言。使用GH,在设计的过程中不免受制于GH现有组件,有些设计逻辑不得不求助于Python等脚本语言才可以实现。将GH与Python结合可以使GH功能无限扩展。实际上GH内嵌了c#,VB语言,目前GH版本Version November-24,2011,Build0.8,0031的Python需要额外加载。
  使用GH中的Python组件把 RhinoPython中编写的程序调入进来,在调入的过程中,需要根据GHPython的输入,输出的方式调整代码。
    这里把主要的控制参数作为输入条件,包括basicpoint,lengthunit,angle,offsetvalue,topbplineheight,multiple1,multiple2,multiple3,floorheight。同时,针对random.choice函数,增加了初始化随机数生成器,seed([x]),在GH中可以实时的获得随机几何形式,增加设计调整的便利。下面列出主要针对GHPython组件调整的代码部分,与RhinoPython一致的部分以省略号替代。


                               
登录/注册后可看大图




作者: phoenixding    时间: 2012-12-25 19:03
多谢!很有收获!
作者: 建筑师哈哈    时间: 2012-12-25 20:43
给力~有相关教程没?
作者: maniux    时间: 2012-12-25 22:22
一大堆废话,说白了就一句:Rhino下用python要在GH里面用。
作者: jasonroc    时间: 2012-12-25 23:10
有详细一点的教程吗,关于python的?
作者: 红环针管笔    时间: 2012-12-25 23:27
maniux 发表于 2012-12-25 22:22
一大堆废话,说白了就一句:Rhino下用python要在GH里面用。

其实普及作用还是有的,,,还是很感谢楼主的。。。
作者: zhiaixu2010    时间: 2012-12-26 08:05
混迹于NCF的老湿~
作者: 剑鱼    时间: 2012-12-26 09:40
感谢楼主分享,
作者: cujuhu    时间: 2012-12-26 11:48
看来得学习编程了
作者: 小白two    时间: 2012-12-26 15:36
学习了,先mark再看!
作者: pink58972    时间: 2012-12-27 00:11
谢谢 主楼 伟大的分享  支持你的~~~~ 加油
作者: maxleach    时间: 2012-12-29 09:39

谢谢 主楼 伟大的分享  支持你的~~~~ 加油
作者: rodman36    时间: 2012-12-30 15:01
语言到底难么?很想知道有必要学么?
作者: RichieBall    时间: 2013-1-5 23:46
en
, python倒是不难,不过,用到时很少,只有grasshopper解决不能时,才会想到python, 不过学会python也不是只为了grasshopper,很多三维软件都支持python, 例如arcgis,所以抽空当乐趣学习下了。
作者: leonkeh    时间: 2013-3-20 07:23
很不错,有收获
作者: dreamer-lfb    时间: 2013-3-27 10:40
很不错,可以扩展gh的使用范围!!!
作者: zachmarrison    时间: 2013-5-16 21:27
多谢分享。普及作用起到了
作者: 砾石    时间: 2013-6-7 15:08
我觉得这帖子挺好的
作者: zzucloud    时间: 2013-8-22 10:15
RichieBall 发表于 2013-1-5 23:46
en
, python倒是不难,不过,用到时很少,只有grasshopper解决不能时,才会想到python, 不过学会python也不 ...

楼主请教一下,python如何调用gh的运算器啊,比如取出曲线和Plane的交点,gh是curve|plane运算器,我在帮助文件里没有找对相应代码的编写,请教下楼主该怎么解决!以及其他类似的情况的通常解决办法!谢谢……
作者: RichieBall    时间: 2013-8-22 13:41
en, 其实gh的组件基本都是rhino.python包含的,一般调用的都是rhino.python
作者: 无非    时间: 2013-10-24 15:46
确实啊,到最后还得学习编程
作者: 月之眼    时间: 2013-10-25 11:08
竟然看见老师的这个帖子了,,
作者: DEDEZZZZ    时间: 2013-10-28 11:41
懂python到会用还需要一段时间啊
作者: 无一涯    时间: 2013-10-28 12:30
额先马克一下,嘿嘿
作者: stjackin    时间: 2013-11-6 17:16
py加入rhino后,让rhino空前强大了。
rvb vb/C#都没有 ironpython给力。
作者: 在井底看世界    时间: 2013-11-7 18:26
谢谢楼主! 准备入手python,很有启发!
作者: dearlu88    时间: 2013-12-24 12:28
好高深啊,看球不懂
作者: 无非    时间: 2014-1-5 21:15
想问下,怎么去认识Python和Rhinoscript?
两者是否有互相联系的地方,或者就是两种不同的语言
作者: 爱上一个吃货    时间: 2014-1-12 18:07
谢谢分享,学习了
作者: craigdavid    时间: 2014-2-20 23:00
谢谢分享!正在学习python中...
作者: derek096    时间: 2014-6-6 15:52
(RHINO提供的Rhino IronPython帮助文件) 请问“Rhino IronPython帮助文件”在哪儿查看?
作者: pdq1977    时间: 2014-6-23 23:07

很不错,有收获
作者: 庄周之水    时间: 2015-6-5 18:09
正在找关于语言的书,多谢啦
作者: 庄周之水    时间: 2015-6-11 11:30
去官网现在教程学习下,谢啦
作者: ogfjll    时间: 2015-7-15 13:19
还搞不懂啊  
作者: 柒⑩︶譕所蓶    时间: 2015-11-29 16:49
老师V5  谢谢分享 虽然之前都看过了




欢迎光临 NCF参数化建筑论坛 (http://ncf-china.com/) Powered by Discuz! X3.2