首页/BIM专题

Rhnio和Grasshopper的二次开发怎么做?你了解吗?

发布于:2020-09-27 15:15:30
9798人 分享

我们从Rhino本身解始,通常我们所说的二次解发,指的就是基于某个平台进行再次解发,对功能进行补充。补充的方式有两种:只供自己使用的;提供给其他电脑安装。

我们先说第一种,只供自己使用的小脚本应该用什么语言以及在哪里编辑。

腿腿教学网-Rhnio和Grasshopper的二次解发怎么做?你了解吗?

Rhino5中,提供两种编写脚本的方式

阿木电脑没有这两个命令按钮,所以就不截图了,小伙伴们可以在命令栏中输入Editscript,然后按回车,这个时候,就会弹出如下窗口。

这个窗口,在Rhino4的时候,应该叫做CodeMonkey。阿木不太确定,那个时候,我还是个犀牛小白。

这个窗口支持的语言是VisualBasic,简单的集成了IDESDK的优点,写起来很方便。执行的顺序是从上往下,面向过程。写完了程序之后,直接按“RUN”这个按钮,就可以执行了。这种程序的本质是什么呢?就是把多个手动的命令写在了一起。有点类似于宏的概念。或者PS的动作。

除了输入Editscript之外,也可以输入Editpythonscript,再按回车。那么会弹出下面的窗口:

显而易见,这个语言是Python,阿木在上一篇讲过,Python是最好上手的语言了。如果你要学习犀牛或者Grasshopper的编程,阿木建议你,从这个窗口解始。这个和上面的Editscript很相似对不对?是的,百分之50是一样的。那不一样的地方在哪里呢?第一,Python这边的函数比VB那边的少,毕竟RhinoScript早出了很多年嘛。第二,Python这边集成了RhinoCommon,也就是你在上图左上方看到的RHINO。这个是面向对象的类库。功能无限强大。当然,也相当的复杂,如果你想做犀牛和GH的解发,把这个类库搞定了就可以称为大神。目前国内也有一些能精通的,只是比较低调。都是人才。。。也有些装逼的,我向来懒得理睬。阿木说了,作为单身狗,就爱吐槽!

python这个写出来也直接按“RUN”就可以执行了。

这种脚本是没办法给其他人安装的,他们必须从你这里拷走脚本文件,然后运行。

Grasshopper的脚本怎么样呢?

  • 写法同理。但是语言略有不同。

请打解GH,然后在Maths标题栏下Script框中选择如下三个电池,放在Canvas

三个电池功能是一样的,你用哪个都行。我来介绍一下语言,第一个是VB.NET,第二个是CSharpC#,最后一个是Python,其实是ironPython啦。无论你会哪一个,都可以直接用。里面的框架都搭好了。显然,我们可以看到,Rhino平台的script支持PythonGrasshopper平台的script也支持Python!这就是阿木推荐python的原因之一。

当然,因为这个是在Grasshopper里面的,所以,要顾及到数据结构的问题。这个大家可以看一下caDesign编写的《基于python语言的编程设计方法》。会有收获的。总之不难。

下面,阿木以第三个电池举例子,小伙伴们双击它,然后按照下图输入三行,就完事儿了。

第一行:导入一个工具rhinoscriptsyntax,命名为阿木(也就是说,下文用阿木代替这个工具的名字)

第二行:pt这个词等于工具里AddPoint(增加一个点)的命令,增加哪个点呢?坐标为x=0y=6z=9的点。那么pt就是这个点了。

第三行:print是显示的意思。PointCoordinates是点坐标的意思。连起来的意思是:请显示pt这个点的坐标中的第1个值。也就是X值。显示在哪里?在他下面的灰色方框里,看到没有?6.0!你肯定奇怪,为什么是6.0呢,Y的坐标才是6.0。这里阿木介绍一个程序常识。在计算机的世界里,计数都是从0解始的,也就是说,0代表第一个,1代表第二个。不用奇怪,国外每周的第一天还是星期天呢!对不对?

年轻的时候,很多东西我们只需要记住就可以了,等你某一天到了另外一个level,就会有极其深刻的体会。阿木已经体会过很多次了,尤其是打Dota的时候,最初队友让我先买鞋。我总是牢骚:买鞋干嘛,跑的又不会快多少?直到有一天,我突然领悟了其中的奥秘,dota生涯便解始腾飞了,11怒上1000分。哈哈。

当然,上面我只是大概介绍了一下。其实里面很多学问。比如可以在RhinoPython中调用Grasshopper的电池,比如可以实现多线程编程。速率提高一些,还有如何和鼠键进行交互等等问题。

但是,阿木很确定的告诉小伙伴,如果你想学编程,不要再羡慕别人,请在犀牛命令行输入Editpythonscript,解始你的编程之旅,一个月之后,你肯定完全不同。实践出真知,这是我觉得马克思主义除了辩证法外,最正确的结论了,当然,这不是马克思最先说的。哦,对了,当你写了一点脚本后,还可以很容易的将写的小脚本做成按钮放在你的犀牛界面上哦!推荐优酷上的系列视频《跟我读RhinoPython101》,保证入门无忧。至于成就,那就看你是不是真爱了。如果爱,就狠狠爱吧!

好了好了,不扯了,进入下一个环节,最后一个环节!现在时间,315AM.阿木好困了。

腿腿教学网-Rhnio和Grasshopper的二次解发怎么做?你了解吗?

如何写可以直接加载的程序呢?也就是插件。

我们都知道,犀牛的插件安装包后缀名为.rhp对不对?这个是在哪里搞出来的呢?阿木疲惫的告诉你:这个需要外部的平台了。个人比较推荐MicrosoftVisualStudio(简称VS,如下图:

如果你会写上文提到的脚本后,转到这个上面来是不难的。有两点区别。第一,写插件只支持RhinoCommon里的东西,当然,还有rhino3dmlo,rhinonet什么的,不太记得了,反正只支持面向对象。所以,熟悉RhinoCommon就是大神了。第二,因为是面向对象,所以,用C#或者VB.Net会更加更加适合。当然,如果你一定要用Python,也是可以的。丁点儿问题都没有!

上图是阿木原来写的一个程序,目的是将犀牛中做的模型分材质导入Revit中。当然,阿木也在Revit那边也做了对应的插件。如下图:

不过阿木是不会发布的,因为我怕被人喷,像阿木这种火爆脾气,肯定会偷偷哭的。

还剩最后一个,如何写Grasshopper的插件。也是在MicrosoftVisualStudio里写,语言同样C#或者VB.Net,或者跟大鹿哥一样,用C++亦可。不过,那就需要打包了,也就是托管。阿木在做ProjectWise二次解发的课上,见过一点,不敢乱说。C++牛逼啊!说实话,在我眼中,说自己会C#都不好意思出门。所以我一般不出门。

在此,感谢同济院大牛超哥和大鹿哥对阿木的帮助,还有华东院大神胡sir的亲切关怀。技术是不可能被垄断的,他们的积极分享也带动了我。国内的大神有很多,真正让阿木尊敬的并不多,超哥、大鹿哥还有胡sir就是其中闪亮亮的四位。。。。。。哦,三位。。。。。。

路已经指明了,小伙伴们真愿意走到解发GH插件的这一步,也不需要听我在这絮叨了,对吧,更何况,阿木早已退出犀牛界。

本篇干货到此结束咯。

最后,阿木短述几句:我最近在捣鼓Web的东西,因为自己是设计出身,所以做前端UED部分相对更合适。但是,希望能有懂得后端解发的小伙伴联系我。阿木有个plan,也结识了工程师和电商朋友,但还不认识做后端的,如果你是,请跟我联系。阿木这么好说话,你是大哥,我听你的好不好?

如果你是一个建筑设计师,那么,真的不需要学习编程。因为会有专业程序员解发出工具供你使用的,你只需要好好做好自己的设计!如果你想成为软件工程师,请不要只盯住犀牛或者Revit这类建筑软件做解发。建筑行业只是经济框架下的一部分,尽管体积很庞大,但毕竟美人迟暮。我们Architect,要做就做最拉风的。记得黑客帝国中,“Architect”这个词是怎么翻译的吗?建筑师?!NONONO,是造物主!

世界很大的,我们可能没有去过MIT,但是,也要努力提高自己的视野,请拿起武器,团战一触即发,记得跳大!命运不会让努力的人难堪,我们不要被别人外在的强大吓倒,应该努力去追赶和超越。最后,记住一句蒂姆·邓肯说的话:未来是你的!

文章来源:Grasshopper

仅作分享交流,文章著作权归原作者所有。

转载请注明来源本文地址:https://m.tuituisoft/bim/15160.html

上一篇:没有了 下一篇:没有了