【版权声明】
| 作者:月之眼 | 好多猫
| 首发于大水牛参数化设计平台
| 如需转载请联系作者
| 如果觉得文章不错,欢迎分享
写插件的原因
大家在用Rhino做项目的时候,到了渲染阶段往往需要在Rhino模型中添加一些Vray代理树、车的模型、人的模型等等。添加Vray代理树的过程是非常繁琐的,需要复制,旋转,缩放等一系列操作。
这个时候大家是不是想用Grasshopper来解决?
但是Grasshopper自带的电池无法解决这个问题,因为把Vray代理树拾取进Grasshopper中,操作完之后再Bake到Rhino视窗就不是Vray代理树了。
这个时候是不是想要一个3D MAX的散布插件?
刚好那阵子好多猫和我讨论过这个问题,借机和好多猫一起写了这个插件。
看到插件的名字是不是很熟悉,Bubalus_GH其实就是公众号的名字~
欢迎大家下载使用。
插件下载与安装
下载链接:https://www.food4rhino.com/app/bubalusgh
1:电脑上只有Rhino5的情况:
请下载第二个压缩包,下载好后。
第一步:解压压缩包,里面有Bubalus_GH插件的案例和一个安装文件夹。
第二步:把安装文件夹复制到Gha的安装路径 :
C:\Users\****\AppData\Roaming\Grasshopper\Libraries
第三步:重启犀牛和Grasshopper就安装好了。
2:电脑上只有Rhino6的情况:
请下载第一个压缩包,下载好后。
第一步:解压压缩包,里面有Bubalus_GH插件的案例和一个安装文件夹。
第二步:把文件夹复制到Gha的安装路径 :
C:\Users\****\AppData\Roaming\Grasshopper\6\Libraries
第三步:重启犀牛和Grasshopper就安装好了。
3:电脑上有Rhino6和Rhino5的情况:
请下载第一个压缩包和第三个压缩包。下载好后。
第一步:解压压缩包,里面有Bubalus_GH插件的案例和一个安装文件夹。
第二步:把for Rhino6的文件夹复制到Gha的安装路径 :
C:\Users\****\AppData\Roaming\Grasshopper\6\Libraries
第三步:把for Rhino5的文件夹复制到Cluster的安装路径:
C:\Users\****\AppData\Roaming\Grasshopper\UserObjects
第四步:重启犀牛和Grasshopper就安装好了。
注意:如果安装之后还没有出现电池(如上截图),请到刚复制粘贴的文件夹找到Bubalus_GH.gha文件,右键-属性-解锁一下,然后重启Rhino和Grasshopper。
插件使用
Bubalus_GH插件的种树原理是根据点的位置来复制移动代理树,所以种树的点非常非常重要。如果你的点是渐变的,那么种出来的树就是渐变的;如果你的点在一个坡地上,种出来的树就在一个坡地上。点越自由,种出来的树就越自由。
1:Add_Geometry
当种一种树种的Vray代理树时使用这个电池。
Input:
run:运行电池
guid:树或人的guid(建议输入的物体是图块)
P:种树的位置点
SD:随机缩放的比例(默认是0.9 to 1)
RD:随机旋转的比例(默认是0 to 360)
N:树的法线方向(默认的是工作平面Z轴方向)
Output:
N:树的名字
2:Create_GeometryBlock
写这个电池的主要原因是因为很多用户没有手动创建图块的习惯,不使用图块会造成两个问题1:种了树的Rhino模型很大 2:Vray面板代理物体会很多。
所以加了这个电池来自动创建图块,如果已经手动在Rhino视窗中创建了图块,则不需要使用这个电池。
Input:
guid:要创建图块的guid
Output:
G:生成图块的guid
学完上面的两个电池,我们就可以做一些简单的案例了:
首先来看看我们很爱种的行道树。
需要先导入一个Vray代理树,弄好材质,再用Bubalus插件种树。
种植行道树。
跟随曲线种树
随机种树
如果我们想树的方向是垂直于曲面,我们可以这样做。
把上面例子中树的模型换成人和车的模型,就可以随机放置人和车的模型了,这里就不过多介绍了。
3:Add_Geometrys
当种多种树种的Vray代理树时使用这个电池。
Input:
run:运行电池
guid:树或人的guid(建议输入的物体是图块)
P:种树的位置点
SD:随机缩放的比例(默认是0.9 to 1)
RD:随机旋转的比例(默认是0 to 360)
AR:每个树种的随机分配比例(比如我有两个树种,这里输入1,2。那么第一个树种的数量就占33%第二个树种的数量占66%)
N:树的法线方向(默认的是工作平面Z轴方向)
Output:
N:树的名字
4:Geometry_Location
这个电池的主要作用是提取树的位置点(当需要更换树种的时候就需要使用到这个电池)
Input:
guid:提取定位点的树种
Output:
L:树的位置点
5:Transform_RhinoObject
利用Grasshopper中的Transform移动、缩放、旋转Rhino中的任意物体。
Input:
active:是否运行电池
guid:需要变换物体的guid
transform:变化的transform
来看两个Transform_RhinoObject 电池的例子
对帧平面进行缩放移动
对图块进行旋转移动(旋转放置完的桌椅还是同一个图块,编辑其中一个,所有图块都会相应变化)
6:DeleteGuid
根据Guid删除Rhino中的物体
Input:
guid:需要删除物体的guid
delete:是否删除
7:BakeBlock
可以根据树形数据把Grasshopper中的物体Bake成图块。
Input:
bakeBlock:是否bake成图块
geometrys:要bake成图块的物体
location:图块的定位点
blockName:图块的名字
atts:图块的属性
transform:图块的变幻矩阵
Output:
outBlockName:生成图块的名字
根据树形数据把物体Bake成图块
8:ExplodeText
获取Rhino中Text的一些属性
Input:
guid:text的guid
createTC:是否创建text曲线
createBC:是否创建text的最小边框曲线
Update:是否实时更新电池
Output:
texts:text的文字内容
pts:text的定位点
textCurve:生成的text曲线
boundingCurve:生成的最小边框曲线
获取Text的一些信息
9:ExplodeBlock
炸开图块(如果你会C#代码,可以双击电池进行编辑)
Input:
guid:图块的guid
Output:
geo:图块内的物体
name:图块的名字
location:图块的定位点
xform:图块的transform
atts:图块的属性
10:Purge_RhinoDocument
清理Rhino空间,和Rhino中的Purge指令一样
Input:
P:是否清理
11:Ratio_random
根据比例随机分组
Input:
L:需要分组的列表
AR:分组的比例
Output:
C:分好组的列表
根据33%和66%的比例随机分组10个数据
12:Ratio_random
在一定区间内生成指定个数的随机整数
Input:
R:生成随机数的区间
N:生成随机数的个数
S:随机因子
ISInt:是否是整数
Output:
R:生成的列表
13:Populate_2C
在两个线之间生成指定个数的随机点
Input:
C1:外面的曲线
C2:里面的曲线
N:随机点的个数
S:随机因子
Output:
P:生成的随机点
当我们要在基地内,建筑周围生成随机点时,可以使用这个电池。
14:BifocalsPlus
这个电池是Bifocals插件的增强功能,所以在使用之前,需要先去Food4rhino下载Bifocals插件。
这个电池可以让Bifocals插件显示电池的插件名字,在讲案例的时候,很多人不知道一些电池是来源于什么插件,所以我在这个版本增加了这个电池。
但是需要注意:因为Grasshopper的插件开发者太多,并且每个插件开发者的命名习惯很不统一,所以这个电池会有很多Bug。这个时候可以双击电池进行代码编辑或者联系我,我会在下个版本更新这个问题。
Input:
Update:是否实时更新电池名字
增强Bifocals插件,标注电池的插件来源
15:Transparent_BackGround
透明化GH窗体,在Rhino6中鼠标可以穿透GH背景编辑Rhino中的物体。
Input:
run:是否运行此电池
holeWidth:透明开洞的范围(范围是0 to 1)
transparency:gh窗体的透明
如果遇到显示Bug,可以先断开所有的连线,再执行一下Run就OK了
16:GeometryFaceToCamera
让物体跟随着摄像机旋转
Input:
Reset:是否让物体跟随着摄像机旋转
Guids:需要旋转的物体
Output:
P:一个生成的点
17:CameraOrientPlane
动态获取摄像机的工作平面(使用的时候不能隐藏这个电池)
Output:
P:摄像机平面
18:3D_Text_Tags
在Rhino视窗中显示Text,此Text总是朝向摄像机
Input:
T:需要显示的文字
L:显示文字的定位点
C:显示文字的颜色
S:显示文字的大
最后三个电池可以用来辅助出分析图,下面我们来介绍一下。
在出分析图的时候也需要往模型内放置一些物件,这个时候我们就可以利用我们前面介绍的电池。
上面这张图有个问题:模型旋转的时候,人物不会跟着旋转。
所以写了一个电池实现类似SU中面总是朝向摄像机的功能。让Rhino中的物体总是跟着摄像机旋转。
(su中的效果)
(Rhino中的效果)
开始没绑定的时候,人物是不会朝向摄像机的;当把Reset设置为True时,绑定了人物和摄像机;人物就总是朝向Rhino的摄像机,Rhino的视角旋转,人物也跟着旋转。有没有找到旋转SU的感觉。
可以绑定物体的类型:文字、平面曲线、平面曲面、平面网格、还有填充物体
动态获取Rhino摄像机的工作平面
动态获取Rhino摄像机的工作平面,重构获取到的工作平面,在重构的工作平面上画几何体,让你画的所有几何物体一直朝向Rhino的摄像机。
比如案例中画的圆,不管如何转动视角,圆都是正对着摄像机。
动态显示Text(Text总是朝向摄像机)
利用Bubalus_GH插件在Lumion中种树
那如何利用Bubalus_GH插件在Lumion中种树呢?
柯基鸡发过一篇很详细的教程:Bubalus插件与lumion结合批量山地种树小技巧。
大家看完上面的教程就会了。
同时Lumion官方也在food4rhino网站发布了Rhino和Lumion实时交互的插件,有兴趣的朋友可以试试。
下载链接 :https://www.food4rhino.com/app/lumion-livesync-rhino
往期精彩文章回顾:
【GHPython】设置Number Slider 电池的最大、最小值
Rhino 与 unity 连接(基于服务器)
【GhPython】Python如何使用“委托”和lambda表达式
【Python】Gh如何选中Rhino中图层的物体
【Python】如何循环标注
【Processing教程6】----Minim的简单运用
【Processing 教程 5】 ----PeasyCam 和 gHowl
【Processing教程4】----library的简单运用
【Processing 教程3】--Arry和For Loop
【Processing 教程 2 】----- function
【Processing 教程1】--界面和参数介绍
【号外,号外】大家期待已久的Processing教程来啦
【Python】一键标注封闭多重直线
【Python】通过python删除指定名称的电池
【分分钟建模系列20】如何路径分组
【分分钟建模系列19】如何用RhinoPython实现“向日葵”开洞
【分分钟建模系列18】如何用Rhino做垂直格栅
【分分钟建模系列08】山寨一个教堂
【分分钟建模系列07】做个扭转建筑
【分分钟建模系列】SoftMove命令的简单应用
【分分钟建模系列】手把手教你做旋转楼梯
【分分钟建模系列】手把手教你做表皮
【分分钟建模系列05】手把手教你做编织
【分分钟建模系列06】手把手教你做个凳子
【分分钟建模系列09】如何用犀牛手工做灰阶度干扰
【分分钟建模10】MAD中国国家美术馆
【分分钟建模教程系列11】Big的W大楼
【分分钟建模教程系列12】如何做一个漂亮的楼梯
【分分钟建模教程系列13】如何做曲面干扰
【分分钟建模系列14】如何快速打断相交的曲线
【分分钟建模系列15】如何用Grasshopper建一座桥梁
【分分钟建模系列16】茶几建模
【分分钟建模系列17】BIG蛇形画廊的建模案例
【Bubalus_RH for Rhino6】选择“选中物体”所在的图层
【Grasshopper】Anemone插件的应用
大水牛参数化设计是一个传播分享建筑数字化设计与数字化建造资讯的平台
并且会不断连载原创或转载有价值的参数化软件教程
(Rhino、Grasshopper、Python、Revit、Processing等等)
是一个视野与技术并重的数字化传播平台
我们的目标是把这个平台创造成一个拥有良好氛围的学习平台
我们将带头冲锋;我们的立场非常坚定
我们的狂怒你驾驭不住;黎明就在眼前
欢迎你们加入我们的战队
记住我们不是一个人在战斗