博客

  • grasshopper-series(系列运算器)用法之一:选择相邻的数据并为一组

    grasshopper-series(系列运算器)用法之一:选择相邻的数据并为一组

    grasshopper运算器教学

    series(系列运算器)用法之一:选择相邻的数据并为一组。

    如下图所示,生成一排直线,现在我们的目的是把相邻的两线段并为一组之后在作放样生成曲面(下面有效果图)。

    具体算法

    这里要注意这里有两个series运算器,第一个series运算器C端口输入的数值要等于线段等分点的1/2,第二个series运算器的C端口值等于第一个series公差值,也就是2.

    效果图

    series用法详解:

    S端口输入series的初始值,默认情况下等于0,N端口是输入公差,默认情况下等于1,则输出的数据列表为“0 1 2 3 …. 9”,C端口输入series列表的个数,默认10。

    如下图所示,第一个series列表公差为2,输出的数列为“0 2 4 6 8…18”,把列表的结果再输入第二个列表的初始值中,第一个列表的结果的每一个值都会在第二个series运算器中运算器一次,第二个series运算器的公差等于1,输出的数据数量为2个,那么最终得到的数据就是“0 1”“2 3”“4 5”……“18 19”

    算法文件下载

    series.gh

    关键字:grasshopper运算器教程,grasshopper算法教学

     

  • grasshopper翻转曲线的用法flip_curve

    grasshopper翻转曲线的用法flip_curve

    grasshopper翻转曲线的用法

    有时绘制或者一些点串联生成的曲线方向会不一致,这样会导致在做批量偏移曲线的时偏移方向也会不一致,如下图所示,绿色圈是偏移后的曲线,有些向内,有些曲线向外偏移了。

    A曲线:可以随意绘制一段曲线,亦可以从原来的曲线拾取作用指定的曲线方向,把A曲线输入Flip Curve(曲线方向翻转运算器),FlipCurve的C端口输出翻转后的曲线,F端口输出判断曲线是否翻转的布尔值。

    最终结果,绿色的为偏移后的曲线,不再出现偏移方向不一致的情况了。

    本小节的模型和Gh算法文件

    Flip_curve.gh

    flip_curve.3dm

  • grasshopper曲面流动的用法-surface-morph

    grasshopper曲面流动的用法-surface-morph

    grasshopper曲面流动的用法

    在Transform页面的我们可以找到Surface Morph运算器(曲面包裹器),这个运算器的功能跟犀牛的“沿着曲面流动的”类似,都是可以让一个形体直接附着到曲面上,在做曲面不规则变化那是相当便利的。

    用法


    首先在平面视图上绘制一个图形,形状如何无所谓,但是一定要有高度。接着创建一个被附着的曲面,这个曲面也是任意曲面,但是一定要注意这个曲面不能被修剪,这点要特别注意。创建的两个形态如下图所示。

    Brep调用在平面绘制的形体,Surface调用被附着的曲面,Surface Morph的G和R端口连接Brep,S端口连接Surface。其中R端口本身是输入一个Box物体的,只是在新的Grasshopper版本中如果连接物体本身,它默认会以该物体边界的长宽高定制一个Box。

    下图标记的一号运算器是划分曲面运算器,这个划分的UV值必须等于1,这样使得输出的UV区间值仅为一个。二号运算器作用是分解“二维区间”为“一维区间”,它输出的值输入Surface Morph的UV值,W值控制流动后的厚度。

    最终效果图

     

  • grasshopper钢架结构算法,桁架结构算法

    grasshopper钢架结构算法,桁架结构算法

    算法下载链接

    厂房屋顶.gh

    厂房屋顶.3dm

    如果不能下载,请评论区留言

    grasshopper钢架结构算法,桁架结构算法

    效果图

     

    带完整的桁架结构

    不带屋顶面桁架算法

    算法下载链接

    厂房屋顶.gh

    厂房屋顶.3dm

    如果不能下载,请评论区留言

    ​关键字:grasshopper算法,grasshopper教程,grasshopper钢架做法

  • 如何在grasshopper上找到真正的uv展开曲面

    如何在grasshopper上找到真正的uv展开曲面

    如何在grasshopper上找到真正的uv展开曲面

    grasshopper里Dimensions运算器是计算曲面的展开的uv值的,但是这个计算本身有比较大的误差,计算后的uv值根本不能如是反应到原来曲面上,如下图所示:计算出的uv值分别是26.5和25.2,但是把uv值转化为点在“映射”会曲面时就有问题了。

    箭头所指就是平面点(uv点)映射到曲面的情况,这时点并不在曲面上,而是飞出曲面。

    那除了这个在grasshopper里面还有一个运算器能够得到曲面的点的uv值:Divide Surface(等分点运算器),这个运算器输出曲面的等分点,同时还输出每个点的uv值,而且等分点的第一个点的值是从0坐标开始计算起,这样为我们做从原点开始绘制一个展开的矩形uv曲面提供极大便利。如下图

    整个uv值的“终点”就是等于最后一个点的uv坐标,我们只要能够获取该值就可以了。

    如下图所示,我把uv值“拍平”(Flatten Tree)让它形成线性数据,在Reverse List(翻转数据),翻转数据后点的最后一个数据会被排到一个位置上,最后List Item选出第一个数据,也就是曲面等分的最后一个点。如下图所示。

    用Deconstruct运算器得到UV值

     

  • grasshopper筛选出几何体内的点并删除

    grasshopper筛选出几何体内的点并删除

    grasshopper筛选出几何体内的点并删除

    绘制如下图的点阵列和全封闭的几何体。

    封闭的几何体我用的曲线加Pipe运算器生成,再加上Cap holes运算器加上盖子封闭圆管。点的阵列用Populate生成随机排列的点。

    点和几何体数据分别连到Point in Brep运算器,该运算器输出True和False的布尔值,如果在几何体内的输出True,在几何体外的输出False,但是我最终是要删除几何体内的点,因此用“等于运算器”判断值是否等于“True”,最后把不等于的值连进Cull Pattern运算器的P端口。Cull Pattern是根据True和False列表规则删除指定的数据。

    删除后的效果

    隐藏圆管的效果

  • grasshopper中点阵生成曲面的算法

    grasshopper中点阵生成曲面的算法

    grasshopper中点阵生成曲面的算法

    这个算法用Surface From Points(点阵生成曲面运算器)来完成的。

    运用这个算法要满足三个个条件

    1. 点阵要是线性数据(Flatten Tree)
    2. 点阵序号排列必须如下图所示,否则会正常扭曲的曲面
    3. 生成的曲面的U方向分段数量要与点的数量一致(算法图中的15是Grid的分格数量,点的数量要比分格数量大1个)

    完成的曲面

    点阵序号显示

     

  • grasshopper中点重新排列

    grasshopper中点重新排列

    grasshopper中点重新排列

    在grasshopper里随机产生无序的点非常容易,但是我们在做建筑设计往往要把无序的点组合变成按照我们想要的点组合,这样建筑的表面变化才会随我们的想法而改变。
    Populate 2D就可以生成无序随机点,让这生成输入“Sort Along Curve(沿着曲线排列)”,最终输出点就是经过重新排列的了。

    但是这个运算器仅仅只支持点的重新排列,如果其实已经存在的非点对象应该怎么处理呢?

    我们观察Sort Along Curve这个运算器后面的输出端口有“I”的参数,这个参数就是输出改变后点的地址(Index)的排列顺序,我们只要用“List Item”运算器在重新“读取”一次原有列表就可以重新排列非点对象物体了 http://http://pic-7niu.3dscg.com/sortpoint006.png

  • 告诉你丽台专业卡和游戏卡的区别在哪里?【转载】

    告诉你丽台专业卡和游戏卡的区别在哪里?【转载】

    很多人觉得专业显卡售价实在太贵,买低端的专业显卡还不如买一块高端的游戏显卡,做工精良的游戏显卡至少看上去“威武”多了,性能“应该”不会差。

    这实际上是一个天大的误区,虽然在硬件方面专业显卡和游戏显卡完全相同,但软件应用方面的差别导致两者的定位泾渭分明。

    正所谓闻道有先后、术业有专攻,专业显卡的秘密就在于搭配专用的驱动程序,对常用的大型绘图软件进行了优化,使得显卡在多窗口、多个实例下运行软件时能够发挥出更佳的效能,这显然和游戏显卡的工作方式有着本质区别。
    另一方面,从市场的角度来讲,游戏显卡是在卖硬件,出货量大竞争激烈所以价格可以压得很低;
    而专业显卡是在卖软件、品质和各种服务,硬件成本所占比重不高,无形的资产才是最值钱的!
    一般来说,大型图形工作室和企业采购都是“不差钱”的,只要产品好花多少钱都愿意。
    报怨专业显卡太贵的一般都是初学者或小型工作室,也正是考虑到这部分入门级用户的需要,NVIDIA近年来发布了多款低端专业显卡,售价不足千元极为平易近人。

    ● 专业显卡与游戏显卡的区别之一:硬件设计理念不同

    一般来说,游戏卡目前虽然可以都可以很好地支持各种OpenGL和Direct3D游戏,但是,它们更多地专注于游戏中需要的那些功能。为节约成本,对于在游戏中明显不会用到的功能一般是不会在硬件中予以支持的。
    而专业图形卡面对的是专业图形图象软件,往往更多的时间是在显示模型在创建和编辑状态中的情形,因此线框模式,阴影模式下的性能也是至关重要的,各种专业软件所涉及到的功能都应该在硬件上予以支持。
    另外,从性能上来说,游戏运行需要足够快的速度,而且游戏的场景往往不太复杂,因此游戏的性能瓶颈大多出现在像素或者纹理处理速度上;专业应用中,像高级场景渲染,CAD/CAM,影视用三维动画等应用领域往往会遇上非常大规模的模型和许多光源,因此图形系统的几何与光线处理能力是至关重要的。

    ● 专业显卡与游戏显卡的区别之二:驱动程序

    专业卡的驱动对各种绘图应用提供了优化模式,游戏卡在驱动程序中只需要对游戏中常用到的部分OpenGL函数能够提供很好支持就OK了。
    而专业显卡由于面向广域的专业图形应用软件,所以它必须要能够对所有OpenGL函数都予以支持。这也是为什么在游戏中性能很好的游戏卡,在运行专业图形软件时经常会出现性能剧烈下降的现象的原因。

    ● 专业显卡与游戏显卡的区别之三:应用软件/游戏中的兼容和优化

    专业卡的驱动程序完全针对OpenGL的所有函数进行优化,同时,针对各个不同的应用程序的特别之处采用专门的解决办法,如在驱动程序里面提供各种主要软件的优化设置选项,提供专门的驱动程序。
    而游戏卡在这方面没有采取任何措施,因此采用游戏卡来运行专业软件的时候经常会出现各种奇怪的兼容性问题,如显示错乱,性能突然下降,以至于死机,等等问题。
    反过来说,游戏卡会针对某些热门游戏会专门做一些优化,通常对游戏的优化与对专业软件的优化会有些冲突,产生莫名其妙的问题,因此专业显卡和游戏显卡只能是术业有专攻,针对不同应用程序的兼容和优化,游戏卡跑专业软件会很慢。
    而专业卡跑游戏的话,Q600=GT440,Q2000=GT450,Q4000=GTX560,按专业卡的价格买游戏卡,都上好几个档次了,除非真的不差钱!!!!

    ● 专业显卡与游戏显卡的区别之四:硬件和驱动程序方面是否经过十分严格的测试

    专业显卡可以最大程度降低图形软件在运行时出现的不稳定情况;游戏显卡关注于游戏运行的速度,在稳定性方面就没有过多的要求。
    所有Quadro都是经过NVIDIA严格测试和认证,兼容性稳定性不必担心
    值得说明一下,不要以为专业显卡就只能在影视特效制作、广告特效制作、三维动画上有所作为。事实上他们的用处远远超过你的想象。
    专业应用行业:计算机辅助设计、机械设计与制造、三维动画设计、气象图像、动漫设计、电影电视影像后期制作、医疗影像成像技术、军事仿真射击训练与模拟发射、航天航空生产与设计、GPS监控系统图像、卫星遥感地形测绘、模具制作设计、汽车飞机设计与制造、石油勘探、多屏幕同步显示、具多管道同步显示与无缝拼接技术等

    原链接:http://itbbs.pconline.com.cn/diy/50646508.html

  • grasshopper分组数据替换算法treeitem,treestatistic和replaceMembers

    grasshopper分组数据替换算法treeitem,treestatistic和replaceMembers

    grasshopper获取分组数据任何一个分支数据上的元素的方法。

    如果我们想获取分组数据任何一个分支数据上的元素,一般有怎么几个方法:

    1. 把分组数据拍平成为线性数据,通过“List Item”的Id号获取线性数据的数据元素。这种方法最为直接,但缺点也明显,那就是数据拍平后原有的分组数据结构就被破环了,那有得重新去组织数据的结构,显得就很麻烦。如果后面数据匹配都是线性对线性的话,那这个方法无妨,否则就得用我今天介绍的第二种方法。
    2. Tree Statistic 和Tree Item运算器:这个两个运算器中前者是统计分组数据的数据结构,它输出数据分组的路径和路径下的元素数量,Tree Item则是获取指定路径下的指定ID号的元素。获取后的这个元素可以二次编辑后再“Replace Members(替换回原来的数据分组内)”,这样原数据分组就不会发生任何的改变了,最终生成新的数据。

    被替换的数据点