【原创插件】Grasshopper超细节玻璃护栏快速生成工具

您所在的位置:网站首页 护栏设计软件 【原创插件】Grasshopper超细节玻璃护栏快速生成工具

【原创插件】Grasshopper超细节玻璃护栏快速生成工具

2024-01-22 05:33| 来源: 网络整理| 查看: 265

我们所使用的工具深刻地影响我们的思考习惯,

从而也改变了我们的思考能力。

- 结构程序设计之父 艾兹格·迪科斯彻

The tools we use have a profound influence on our thinking habits, 

and, therefore, on our thinking abilities.

- Edsger W. Dijkstra

建筑概念设计的阶段,设计师有时需要快速建模许多构件,如门窗框,幕墙分割竖挺,挑檐百叶和栏杆扶手等。这次推送要分享的这个工具,就是针对这种需要快速生成护栏构件的情况开发的Grasshopper工具。设计师在制作模型和导出视图时,尤其是近景有玻璃护栏构件的情况下,就可以用它快速生成带有细节的护栏。

文末提供关键词,可在后台发送关键词获取Grasshopper脚本源文件以及打包成插件的版本。

其实这个护栏建模脚本和插件工具的开发本身难度并不大。这篇文章的另一半意义在于探讨grasshopper工具的开发方式,分享了同一工具的几种不同使用方式,包括直接使用GH脚本,使用打包成单一电池的工具,还有开发成交互界面的方式,各有优缺,后文会进行对比和讨论。

直接使用Grasshopper进行护栏建模

首先,最直接的GH建模方式就是使用Grasshopper中的基本电池。之前一篇探讨Grasshopper如何模拟现实中的随机感的推送中,曾经分享过基于一条线生成完整的护栏扶手构件的案例思路。这次的GH脚本基于原生电池制作而成,从Rhino导入需要生成玻璃护栏的基本曲线后,可以调整各个构件的参数来控制模型,调整到理想的状态后再Bake到Rhino里即可。虽然是整个脚本是基于基础的原生电池,但由于电池的数量比较大,连线到处都是,而且除了制作者以外其他人如果直接使用这个脚本文件不容易熟悉各个构件相关参数的输入位置,因此适合对Grasshopper操作比较熟悉的人群。

Grasshopper界面截图 乱线太多

由于是用来快速生成玻璃护栏,因此没有考虑到多种类型的护栏生成。不过可输入的参数依然有好多项,包括玻璃面板顶高度和底高度,扶手管件的高度和半径,以及竖向支撑结构的间距等。考虑到有时生成的护栏内外方向会与需求相反,在脚本中也加入了反转朝向的控制。如果遇到输入的基本线为弯曲弧线的护栏,想在弧形玻璃面板和平面板间切换也可以用一个布尔开关来控制。

直接分享Grasshopper原脚本文件的好处是即拿即用,需要输入用的按钮、开关和滑杆都已经设置好,直接输入基本几何体就可以开始调整,同时也方便同是Grasshopper使用者的人群根据电池图相互学习。

当用Grasshopper制作好脚本准备分享给他人使用时,至少要用Scribe进行关键参数输入和输出物件的标注,尽量将电池整理对齐,其他使用者才能一下子明白这个脚本的使用方式。

Scribe

打包成单一电池

有了基本的Grasshopper建模脚本后,就可以进一步打包成一个电池包,界面瞬间简洁,只需要留下关键的输入和输出接口。需要修改时也依旧可以打开电池包进去调整,整个脚本更加清晰,层次分明。

像这样具有普适性功能的电池群组打包后可以在不同项目中反复使用,因此当认为脚本比较成熟的之后,就可以把整个电池包保存到Grasshopper的工具栏中,命名并写上使用说明,方便以后从不同的项目文件中直接使用,不用每次都打开原始脚本文件来复制。

打包并存入工具栏的电池

打包的电池还可以加密来保护知识产权,仅供有密钥的开发者有权限来修改。当然今天分享的电池组就没有加上密码了,方便大家打开电池包来研究。

为电池设置开启密码

如果用直接使用grasshopper脚本的方法,随时可以在需要输入参数的位置添加数字滑杆或者开关,比较灵活。但一个完成度高的电池包对输入输出端的考虑应该是相对完善的,应该避使用时突然要增加输入端的情况。因此在打包一组电池的时候,思路会逐渐从软件使用者向开发者的思维转换,尽量预留出多种可能输入参数和控制的端口,并且在各个输入参数的备注中添加使用的注意事项,让使用者避免出错地流畅使用。

输入端的备注

在把GH中的构件导出到Rhino中这一环节里稍微优化了一下,用插件Human里的Bake电池把原本需要右键-BAKE的操作转成一个按钮点击完成,对使用者更友好一点点。当然还有很多这样可以优化的细节,可以不断完善和提升,这也是为什么软件和插件都会有很多小版本的迭代更新。

有科学依据表明相比于文字,使用图标能使人脑的认知符合度大大降低。因此给自己打包的电池添加一个合适的图标可以让电池更容易被记住,看起来也更专业,被使用到的几率也就增加了,发挥出它的价值。

给电池添加图标

升级为交互式窗口界面

更进一步的工具开发可以将脚本做成专门的使用窗口,完全为使用者的体验设计。在这个案例中因为是GH开发的工具,因此使用基于GH的插件Human UI。这是一款Andrew Heumann大神在NBBJ开发的UI设计插件,简单好上手,NBBJ的digital team经常用它开发一些小工具给设计师使用。

Human UI在Food4Rhino中的介绍页

将所有的参数输入,开关按钮,列表选项甚至是3D样本窗口集中到一个面板中,控制更加集中了,更靠近一个真正的插件工具或者说是软件。

除了像面前打包电池思路中留出尽量多的参数端口外,有了Human插件强大的加持,还加入了烘培是否建组,烘培到哪个Rhino图层这样的选择,甚至尝试加入了一个3D窗口在面板中,用户可以在这个窗口中事先确认通过各个参数生成的单个栏杆构件是否是自己想要的,再拾取Rhino中的曲线去生成栏杆。这样的流程避免了生成大量重复的栏杆后再去修改参数导致的大量计算卡顿,有点像Revit中family构件的思路。

扶手间距调节UI界面3D窗口

缺陷就是由于是基于Human UI这样的外部插件,要求使用者也安装了Human UI才能打开这个工具,对于并不开发UI的使用者来说,为了使用这个工具而去下载插件显得有些繁琐。因此分享类似于Human UI这样的插件开发的工具时,最好把插件的安装包本身也一并发送,免得使用者因为没有插件或者下载不到插件就放弃了使用。

方向和面板类型转换导出到Rhino

基于Rhino工具栏按钮类型的工具

如果能把工具开发成一个或者一组Rhino工具栏中的按钮,应该是一种对使用者更加友好的模式,在NBBJ发布的工具中也看到过不少这种形式。目前这个护栏生成工具没有做成这种按钮,一是因为需要输入好几个参数,所以不适合做成这种Rhino式的一键工具。另一个原因也确实因为我还没有仔细尝试过这个方法。

Enscape在Rhino中的按钮就是典型的插件Toolbar

另外Rhino 7.0中新发布的可以让GH脚本直接在Rhino中运行的功能也值得研究。以后也可以尝试用这个方法开发类似的工具。

这个栏杆构件的生成脚本还有很多值得优化的地方,例如生成的构件应该是Mesh来节省一些文件大小,目前还是Brep,所以大量生成之后会有点拖慢操作。最理想的状态应该是生成Block,简化了重复的信息,这样就可以做到文件存储效率最大化。还有就是栏杆构件类型也可以加入更多选择,不一定局限在目前的现代玻璃栏杆风格。之后如果按这些原则更新优化了这个插件,将会继续在这里分享。

此篇文章作为一次插件开发尝试的笔记,有兴趣的话可以到我的公众号 术TheTRICK 后台发送“护栏生成器”来下载相关文件,包括原脚本、打包的电池以及交互式界面版本的工具,Human UI插件也在内,欢迎交流和提出建议。

关注我的公众号 术TheTRICK,可以查看更多Grasshopper思维交流文章~

想要以上这些案例的GH源文件可在公众号后台回复 “护栏生成器”

即可下载以上案例的Grasshopper脚本源文件!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3