博客

  • grasshopper系列文章-数字区间

    grasshopper系列文章-数字区间

    从这一节课开始后我们要开学习Grasshopper的数学了,Grasshopper给我们提供各式各样的数学工具,有了数学工具这个强大的武器,即使是数学不好的同学也能够利用数学设计建筑。

    image.png

    在数学里,区间通常是指这样的一类实数集合:如果x和y是两个在集合里的数,那么,任何x和y之间的数也属于该集合。例如,由符合0 ≤ x ≤ 1的实数所构成的集合,便是一个区间,它包含了0、1,还有0和1之间的全体实数。

    Construct Domain:创建数字区间,比如创建一个10到20的数字区间

    image.png

    Deconstruct Domain:分解区间,分解区间后将会得到区间的两个极值,就是最大值最小值。

    image.png

    image.png

    Bounds:从数据列表中获取最大值和最小值,然后输出数字区间。

    image.png

    Consecutive Domains:划分区间,划分的方法有两种,默认情况下是这样划分的,请看下图

    image.png

    这个运算器的N输入一个等差数列(当然不是等差数列也可以的,等差数列是比较常见的用法),D端口输出划分后的区间集合

    这个区间集合的规律是等差数列的0项和1项组成区间1,1项和3项组成区间2,3项和6项组成区间3,……以此类推。

    开始项 结束项 输出区间
    0 1 组成 区间1
    1 3 组成 区间2
    3 6 组成 区间3
    6 10 组成 区间4
    10 15 组成 区间5

    如果A端口输入FALSE

    输出的区间则为下图所示:它会以输入列表的最大值作为结束端,输出等分的区间集合

    image.png

    Divide Domain:等分区间,按照输入的等分数等分大区间,输出等分后的区间集合,下图是[5,8]的区间划分了6等分

    image.png

    Find Domain:查询区间的序号,根据输入的数据就能查询包含这个数据的区间的序号,所谓序号(Index)就是Panel上最左边一列从0开始的编号

    下图中输入的值为6.350,经过查询找出它属于编号为2的这个区间(6 to 6.5)

    image.png

    Includes:判断数值是否包含在指定的区间内,如果是输出True,如果不是则输出False。

    下图中判断2和6.350这两个数是否在[5,8]这个区间,结果是False和Ture。

    image.png

    Remap Numbers:重映射区间,这个运算器在Grasshopper应用当中是很重要的,其作用就是改变原有区间的取值范围,比如[5,666]的区间的所有数字可以映射为[0,1]或其他的取值范围。

    如下图输入的值是0 1 2 3 4 5 6 7 8 9这样的等差数列数字集合,经过Remap后输出的结果被限定在0到1之间,Remap 的T端口就是输入限定的区间大小,默认值为0 to 1

    image.png

    [elementor-template id=”7418″]

  • grasshopper系列文章-一些小工具02

    grasshopper系列文章-一些小工具02

    好的,还是按照惯例来一篇Grasshopper的基础文章,今天的教程是Params最后一篇了,还是一些杂七杂八的小工具,大部分都不怎么使用的,大家只要简单认识下就好了,不过像Galapagos这种大牛才用的运算器我们都以后的课程再慢慢讲。

    image.png

    Data Dam:额…这个运算器不知道怎么解释了,就是给它输入什么类型数据,那它就输出什么数据, ̄ω ̄=,貌似没什么用。

    Data Recorder:数据录制器,在做动画时是有用了,以后有机会做用Grasshopper做动画的话我们再来演示一下吧。

    Relay:数据转接器,平时只要在Grasshopper的连接线上双击就会长这玩意,左键可以任意拖动其位置,右键可以起名字,如下图所示

    image.png

    Suirify:这个是新版本增加的,本人没有用过,这里不做解释了。

    Timer:定时器,作为动画的时间间隔,右键可以设定一些常用的时间间隔。想要了解其作用可以看看我以前写过的文章,点击下面的链接

    Grasshopper时间运算器Timer的使用教程

    Cluster Input 和Cluster Output:封装Grasshopper算法用的输入端口和输出端口,关于封装也留到以后再讲吧

    Data Input 和Data Output:输入和输出Grasshopper的数据

    Fitness Landscpape:食用方法不明( ̄. ̄)

    Galapagos:大名鼎鼎的遗传算法运算器,大家就看着文章吧,这个也是我早前写过的一个小例子,grasshopper的Genome(galapagos)运算器的使用方法

    Gene Pool:数据池,就是一堆数据的集合,有点像Number Slider

    [elementor-template id=”7418″]

  • 吹风机——Rino犀牛建模教程

    吹风机——Rino犀牛建模教程

    [b2_insert_post id=”https://www.3dscg.com/rhino-download-fengtong.html”]

    [b2_insert_post id=”https://www.3dscg.com/rhino-video-fengtong.html”]

    这节课我们用犀牛Rino来做一个吹风机,这个吹风机的整体结构比较简洁,但有些结构还需注意一下

    首先,把图层先设置好,另有些细小材质可在绘制过程中添加图层

    image.png

    用犀牛Rino吹风机物件用line直线先定个位,这个尺寸我太概一下,可以自己定,在这里只要比例不会差太多即可,下面我们先把底座先做了,使用Rectangle矩形命令,选择圆角(c),绘出圆角矩形,再用Offset偏移曲线,向里偏移10mm,用ExtrudeCrv拉伸命令拉伸尺寸大的圆角矩形15mm,拉伸时选择实体(S)=否,再拉伸里面小的圆角矩形,选择实体(S)=是,连接曲面可以绘制一条曲线当截面,用sweep2双轨扫掠绘制出曲面,(注意,双轨扫掠路径是要用封闭的曲线,所以要用DupEdge复制边缘线再把线段join组合成封闭曲线),如下图所示。

    image.png

    绘制吹风机把手部分,先在前视图上风口位、把手位、把手底部用直线定位好,再切换至顶视图定位圆心,使用Cylinder圆柱体命令绘制直径为30mm的圆柱体为把手,下一步绘制把手底部,在底座上用Circle绘制圆形直径为50mm,把切换到前视图用Curve曲线绘制把手底部的截面,用Revolve旋转曲线命令360度转一圈,绘出把手底部,最后切换到前视图,使用Circle圆形命令绘制一个50mm的圆形,然后用ExtrudeCrv拉伸命令,尺寸设置50mm向两侧拉伸,如下图所示。

    image.png

    选择风筒其他部分隐藏,切换至前视图,用 Rectangle绘制矩形,选择圆角(c),再用DupEdge复制风口边缘线,选择圆角矩形和复制出的圆形边缘线其他隐藏,切换至前视图用Curve绘制截面曲线,再切换至透视图可看到曲线偏移了,我们用SetPt对齐命令把曲线对齐,(注意在犀牛Rino里,可能会有同学对对齐这个设置点不知哪个方向来对齐,我们可以看左下角的经xyz轴来判断比较容易些)如下图所示

    image.png

    绘制另一边的截面曲线的时候也跟上面的方法是一样的,如下图所示

    image.png

    然后用NetworkSrf网格建立曲面命令,把吹风机的吹风口绘成如下图所示

    image.png

    用show显示所有物件,用同样做风口的方法来做背面进风口 也可以,还有种简洁的方法就是画出截面曲线,用Revolve旋转命令把它变成曲面,再用box 正方体或用矩形拉伸也好,绘成长条方体,把这进风口条Array阵列再把圆圈外的方体用trim剪切掉就行了,如下图所示。

    image.png

    下面我们把剩下的细节做了,就是一些按钮之类的小物件,所用方法就是在前视图上绘制外轮廓,如圆形和圆角矩形,再用Project投影到把手上,再切换到透视图,把这些外轮廓用Split切割出来,用OffsetSrf偏移曲面,把按键向外或向内偏移,这几个按钮都是用这种方法来绘制的。

    image.png

    吹风机建模-犀牛Rino教程就绘制完了,可看下如下图效果。

    image.png

  • grasshopper系列文章-一些小工具01

    grasshopper系列文章-一些小工具01

    今天我们来学习Grasshopper的Params的最后一个菜单Util,这个菜单里面被归类于小工具了,顾名思义就是它们都不太好分类,都是一些杂项的工具

    image.png

    我们来看看上图的这四个小工具。

    Cherry Picker:樱桃拾取器,它跟樱桃没什么关系,其作用就是用获取“数据列表”中“Item”。其中数据列表在Grasshopper是非常重要的概念了,现在不理解也没有关系,简单地理解为Panel里显示的数据就行了。而Item就是数据列表里面的数据个体。下图同学们试着改变Cherry Picker 的Index数据看看,看它输出的数据是什么。

    image.png

    Jump:节点跳转,双击其中一个节点可以瞬间传送到另一个节点,如果算法的版面过大,可以用这个小工具达到快速跳转。

    Param Viewer:用来查看数据的数据结构的,数据结构的概念现在也不好说,我们后面的Grasshopper课程再详细讲。

    下图的运算器中”Data with 1 branches”s意思是这个数据列表只有一个分支,{0;0}是数据路径,N=10是说明这个数据列表有10个Item

    image.png

    Scribble:手写体的文字注解。按住Ctrl键拖动字体还可以摆动字体的方向,有点趣味性。

    image.png

    [elementor-template id=”7418″]

  • Rhino建模实例-飞行器模型犀牛建模教程

    Rhino建模实例-飞行器模型犀牛建模教程

    飞行器模型犀牛建模教程-rhino建模实例

    创建以下的图层,在制图过程中有细节材质,可以再添加图层

    结构线图层是物体外轮廓曲线

    image.png

    在顶视图使用BackgroundBitmap(载入背景图)命令载入飞行器的平面图片。

    定位曲线边界线,绘制如下图的中轴线和结构线 ,绘制主体轮廓曲线时可以使用Mirror(镜像)命令

    注意:我整个飞行器外轮廓尺寸定在300*300(mm)

    平面曲线完成

    image.png

    切换到透视图绘制下图显示的曲线,这里要注意,在Rhino犀牛里如果把握不到曲线的弧度可以在前视图或右视图使用BackgroundBitmap(载入背景图)命令,载入飞行器的立面图片绘制侧面轮廓线。

    image.png

    使用NetworkSrf(网格建立曲面)命令,做飞行器主体结构表面,再用Mirror(镜像)命令,侧面厚度可用loft(放样),主体基本完成

    image.png

    注意使用NetworkSrf(网格建立曲面)命令时,选择路径时曲线分两段如下图所示 。

    image.png

    切换到顶视图沿着平面背景图绘制螺旋桨外框,使用Circle(圆形)选择P(两点)定位画出圆形,点选圆形曲线使用ExtrudeCrv(拉伸)命令,选择实体(S)=否 ,拉伸出没有厚度的圆管状,再使用OffsetSrf(偏移曲面)向内我偏移(我给的尺寸是10mm)。如下图所示。

    image.png

    在顶视图中沿背景图使用Curve命令绘制曲线,ExtrudeCrv(拉伸)选择实体(S),拉伸结果如下图所示。

    image.pngimage.png

    在螺旋桨外框,使用DupEdge(复制边缘线),复制出两段半圆形线用join命令组成一条圆形,ExtrudeCrv(拉伸)命令,选择实体(S)=否,如下图所示

    image.png

    使用OffsetSrf(偏移曲面)向内偏移7mm。在一上下之间画一条截面如下图所示

    image.png

    使用Revolve(旋转)命令旋转曲线一周,形成斜面,如下图所示

    image.png

    给它FilletEdge(建立圆角边缘)命令,圆角 边缘为3mm.

    image.png

    螺旋框底部绘制,在顶视图描绘出螺旋框底部轮廓图

    image.png

    螺旋框底部定位,使用Arc(圆弧)命令,选择起点(S),画弧线,如下图点选的两条黄色弧线,再把这条弧线用Revolve(旋转)命令旋转曲线一周变成弧面,类似锅盖。

    image.png

    切换在Rhino犀牛顶视图上,选择要切割的物体,其他隐藏,使用trim(剪切)命令,切成如下图所示

    image.png

    螺旋桨底部造型可分两层绘制,方法跟上图一样。

    image.png

    它侧面是一个倾斜面,在Rhino犀牛里我们可以用loft(放样)的命令来绘制,再Mirror(镜像)另一侧,如下图 所示

    image.png

    切换至顶视图,hide隐藏其他物件,先使用curve曲线和Circle(圆形)命令绘制螺旋桨托轮廓,再ExtrudeCrv拉伸7mm,然后FilletEdge(建立圆角边缘)命令,圆角 边缘为1.5mm,最后用bend(弯曲)命令,让物体稍有点弯就可以了。圆形则拉伸10mm,使用FilletEdge(建立圆角边缘)命令,圆角 边缘为2mm,放置位置如下图所示。

    image.png

    使用show(显示)命令,把物件放在适合的位置

    image.png

    这几个转轴可在顶视图使用Circle(圆形)命令绘制圆形,再ExtrudeCrv拉伸和FilletEdge(建立圆角边缘)命令,如下图所示

    image.png

    好,现在我们来绘制螺旋桨的叶片,切换至顶视图,还是一样用hide隐藏命令,把其他物件隐藏起来,用curve曲线命令描出螺旋桨叶片轮廓,join 组成一条封闭的曲线。

    image.png

    切换到透视图,一样用拉伸命令拉伸,再作条辅助线,使用 bend弯曲命令,把叶片弯曲一点,叶片完成

    image.png

    把叶片放在适当的位置后,在顶视上显示叶片隐藏其他物件,用ArrayPolar环形阵列命令,把叶片阵列三个

    image.png

    下面我们把一些细节方面处理一下,在Rhino犀牛里一样绘制 Circle(圆形)再ExtrudeCrv拉伸和FilletEdge(建立圆角边缘)命令,中间凹下云部分先绘制一圆形在上面,再用Split切割,注意:先选要切割的物体再点选圆形就能切到了,然后用OffsetSrf偏移曲面,把这曲面Explode炸散后删除表面,边角可以圆滑一些,用 FilletSrf圆角建立曲面即可,其他细节部分需圆角的也可以处理一下,如下图所示。

    image.png

    现在我们回到顶视图来处理一些细节的东西,把散热窗口绘制出来,使用Rectangle绘制一个矩形(尺寸自定),用Array 阵列命令,将矩形排开,再用Project投影至物体上,如下图所示

    image.png

    切换至透视图,先选择这个斜面物体,用Split切割命令选取投影到物体上的矩形,回车,再把切割出的矩形体删除,然后OffsetSrf向外偏移曲面0.2mm,再这个面Mirror(镜像)至另一面,如下图所示

    image.png

    好,我们现在看一下细节,把那些开关按钮制作出来,同样是在顶视图上,绘制圆形,把它投影到物件上,椭圆可用Rectangle矩形,选择圆角来绘制,然后再用Split切割命令,把物件割离出来放入所属物件的图层,用OffsetSrf向里偏移曲面0.3mm ,再Explode打散,把表面曲面删除就可以了,其他的细节参照此法即可,如图所示。

    image.png

    最后把螺旋桨这部分用Mirror(镜像)至另外三个地方,飞行器模型建模完成。

    image.png

    好,我们今天Rhino犀牛建模教程就到这里,如有不明白的地方可以在本节课下面的留言窗口留言,我会给大家一一解答关于Rhino犀牛技术问题,下节课再见。

  • grasshopper系列文章-文件导入器

    grasshopper系列文章-文件导入器

    image.png

    今天我们来认识下Grasshopper的一些导入器,这些导入器顾名思义就是导入各种类别的文件了

    Atom Data:这个输出PDB文件的参数,这种文件类型大家可以到这个网站去下载到,www.rcsb.org,该文件类型我本人也不了解的,有兴趣的同学自己去了解一下的。

    Import 3DM:导入犀牛的文件

    Import Coordinates :通过文本导入点的坐标,通常做建筑地形需要用到点的高程和绝对坐标。

    Import Image:导入图片文件

    Import PDB:导入PDB文件,这种文件类型大家可以到这个网站去下载到,www.rcsb.org,该文件类型大概意思是一些和蛋白质相关的点云文件,有兴趣的同学自己去了解一下的。

    Import SHP:导入GIS文件

    Object Details:输出物件的细节参数,比如文件的名字,图层名称等有用信息,如下图Layer输出了从犀牛获取的模型的图层名称

    image.png

    Read File:读取外部的文件

    [elementor-template id=”7418″]

  • grasshopper系列文章-图像采样颜色获取工具

    grasshopper系列文章-图像采样颜色获取工具

    我们今天来继续Grasshopper的学习,大家看封面图的标记,从1-8的标号分别是以下几个运算器

    image.png

    ①:Calendar,日历小工具,没错就会回回输出日历日期的插件

    ②:Gradient,渐变色,可以根据参数输出渐变的颜色区间,这个具体的作用我在后面的课程再详细讲解

    ③:Clock,时钟,就是输出当前时间,双击表盘还能更新时间

    ④:Colour Wheel,颜色轮盘,转动轮盘可以获取颜色

    ⑤:Colour Swatch,颜色取样器,点击色块获取颜色

    ⑥:Colour Picker,颜色取样器,这个是上一个的直接版本,就是不用点击开关取色,但是占用面积太大,不建议使用

    ⑦:Graph Mapper:这个是我们Grasshopper课程的重点运算器之一,也留在后面的几节课讲,有兴趣的可以先看下我写的这篇文章

    ⑧:Image Sampler:图像采样器,这个也重点运算器之一,作用就是根据输入的图像得到一些与图像颜色相关的数据,从而利用这些数据来生成模型,后面课程用单独例子来讲解这个运算器。

    [elementor-template id=”7418″]

  • grasshopper系列文章-布尔值开关和数值调节工具

    grasshopper系列文章-布尔值开关和数值调节工具

    今天我们接着来学习Grasshopper运算器的基础知识,今天课程的主要内容是关于布尔值开关和数字滑杆的其他样式的,这些运算器使用起来也非常简单。

    image.png

    Boolean Toggle:布尔值开关

    鼠标双击按钮可以切换Ture和False的状态

    image.png

    布尔值只有true和false,就是1和0,开和关,如果布尔值是1就打开某个东西,如果布尔值是0就关闭某个东西,常用在机械控制上,由c语言构成逻辑层,或者说逻辑流。

    在Grasshopper上设计建筑使用布尔值常常用于设定曲线的开启和封闭,判断点是否在曲面上等等情况

    可以用布尔值判断下图所示点的位置是否在曲线上

    image.png

    使用布尔值可以控制下图曲线的开合情况,如果设定为Ture就是闭合,设定为FALSE就是开启

    image.png

    以上的情况是非常常用的,以后我们还遇到不同的情况要使用布尔值运算器。

    Button:按键开关

    这个是布尔值开关的“即时板”,意思就是默认情况下按钮处于False状态,一旦按住按钮就切换为Ture状态,松开鼠标就变为False状态

    下图是关于控制开合曲线的基础算法,同学们可以“照抄”下图的算法,自己亲自尝试看看。

    image.png

    Control Knob:刻度旋钮

    可以理解为能够更为精细调整的数值的Slider Number吧,它在默认情况下能调整的数字范围是0-10之间。

    image.png

    Digit Scroller:数字滚动调节杆

    Slider Number的滚动版

    image.png

    MD Slider:一个不好翻译的Number Slider,它输出的不是一个数字,而是一个三维的点坐标,平时把它用作创建一个可以随意调节位置的点来使用,下图中Panel显示的输出值{0.506098, 0.542683, 0},代表了点的XYZ三个坐标值,Z值等于0,说明这个点是一个平面上的点

    双击面板可以设定XY的取值范围,如下图所示。

    image.png

    Value List:精简版的Number Slider,但是不能滑动了,下拉菜单可以选择数字,双击后可以添加数据,不过添加方法略显麻烦的,一般就是使用默认数值,其默认数值为one tow three four

    image.png

    [elementor-template id=”7418″]

  • grasshopper系列文章-Number和Panel

    grasshopper系列文章-Number和Panel

    今天要讲解的运算器只有两个:NumbeSlider和Panel

    这两个运算器在Grasshopper占有非常重要的地位,但是使用起来是非常简单

    image.png

    Number Slider:数字滑杆

    这个Grasshopper中最常用的运算器之一,通常用于实时调整数据。

    快捷调用方法:双击屏幕输入任意数值回车即可调用

    输入整数3如下图

    image.png

    输入小数3.250,如下图,会得到带小数的滑杆

    image.png

    输入3.250…..30.00,如下图,会得到3.250到30.00滑动的数据区间

    image.png

    双击数字滑杆的头部“Slider”会弹出如下图的Slider设置面板

    image.png

    Rounding:数值的显示类型

    R:浮点数,也就是小数

    N:整数

    E:偶数

    O:奇数

    Number Domain:数值的区间,这里可以数值区间的大小

    Min:区间的最小值

    Max:区间的最大值

    Numeric Value:滑动数字大小

    Panel:信息板

    image.png

    用于显示数据的具体信息的,从Panel我们可以了解数据的类型,大小,空间位置等详细信息,如下图

    image.png

    [elementor-template id=”7418″]

  • grasshopper系列文章-认识基础数据类型

    grasshopper系列文章-认识基础数据类型

    这个列表都是关于基础的参数类型(没有具体形状的数据,比如整数),大家也是要花一些时间来记忆这些参数类型

    image.png

    Boolean:布尔值

    布尔值表示:yes或者no两种状态,比如判断点是不是在线内,曲线是否闭合等情况

    Integer:整数,让输入的数据输出为整数,如下图的grasshopper算法

    image.png

    Number:浮点数,俗称小数

    Text:文本数据

    image.png

    Colour:颜色值,输出RGB三个颜色值

    image.png

    Complex:复合数,一般输出数值区间,如下图的算法

    Culture:

    Domain:数据区间

    Domain²:曲面的数据区间

    Guid:获取物体的ID号

    Matrix:矩阵数据,获取矩阵数据

    Time:获取时间数据

    image.png

    Data:数据

    包含所有的数据类型,不管是点、线、数字、布尔值等等都可以输入到这个运算器中,例子如下图所示

    image.png

    Data Path:数据路径

    数据路径是Grasshopper里非常非常重要的概念,在后面课程会详细的介绍到,这里就简单认识下数据路径的位置是在哪里。

    下图中箭头所指的字符就是数据路径

    {0}表示下面的数据都在0这个路径下

    {0;0;1}表示1这个数据在{0;0;1}这个路径下

    image.png

    File Path:获取文件路径

    作用是获取一些外部文诸如犀牛文件或者一些表格文件。

    Shader:着色器

    获取材质数据

    [elementor-template id=”7418″]