grasshopper的觉悟(篇章一)

序言


美国Robert McNeel & Assoc开发的  Rhinoceros  3D 

Rhinoceros(NURBS modeling for Windows)      

NURBS(Non-Uniform Rational B-Spline 非均匀有理B样条曲线)

3DS MAX 与Softimage的模型功能


Rhino是由美国Robert McNeel公司于1998年推出的一款基于NURBS为主三维建模软件。其开发人员 基本上是原Alias(开发MAYA的A/W公司)的核心代码编制成员。

几大建模的巨头横刀立马站在它的面前(MAYA,3dmax,Softimage,XSI,houdini,Lightwave)

是什么让rhino这个软件引爆全球,成为最受欢迎的建模软件之一呢?

是什么让rhino从这么多软件中杀了出来,成为那么多人的最爱呢?

解开Rhino的面纱! 

  • rhino将传统的CAD精确性和曲线(spline)为基础之模型建构技术的弹性 相结合;

  • 建构出的对象,平顺的Nurbs曲线及曲面而非直线的区段或多边形的曲格面;

  • 有修剪任意曲线与曲面,实体之组合物体的超强能力支持。

认识样条线


TGES,DXF,3DS,LWO,VRML.STL,OBJ,WMF,RIB,BMP,TGA,JPG,AI格式

Rhino特点: small But Powerful;widely used。

Nurbs非均匀有理B样条   Polygon多段线

Nurbs曲线基本元素

①控制点cp(除了收尾两个控制点在曲线上,其他都不在曲线上)

②编辑点ep

③节点Knot

④锐角点

⑤阶数,准确来说,是一个描述曲线方程的指数


Nurbs曲面,所有他造型的曲面都是由四边形曲面的结构变化而来的。一个独有的特性,它可以被剪切分割以及还原。

1.曲面被剪切之后,曲面本身是不会变形的。即使变形,也是因为显示精度不够的原因。

2.所有被剪切过的曲面,都可以被还原成原来的样子,这是nurbs的特性,trim,untrim,仅仅是把不需要的部分隐藏了起来,曲面本身的数据资料并没有发生任何变化。
原则:两轴四边  (点的积分成线,线的积分成面)


认识参数化

境界:

看你的介绍应该是基础比较薄的,我想你可能自己都不清楚怎么样才算是入门gh。在我看来入门gh的判断标准并不是能做什么什么东西了,建出什么什么模型了(一般这样的换个思路换个方案立马抓瞎,换个表皮立马方了),而是有了足够的能力进行独自的研究,知道去哪里查找需要的未知的资源,知道学习方法,遇到不会的知道研究方向,能独立查找教程自我学习,以及有一个圈子可以交流。不然的话,gh这个坑是永无止境的,你画效果图,熟络了你就知道就那个套路,但是,rhino学了有一堆插件(以下仅仅建筑相关的,其他专业的再加上就没完了),Ts,Bongo,evolute,Pt,Vray,maxwell·········,gh就是rhino插件,gh学了还有gh的插件,去看看food4上的插件们,gh高级部分还有网格,gh的各种插件更是数不胜数,更上一层楼的时候就开始自己写插件(高手都不削于用别人的插件),自己写插件就得学代码,学代码你就会发现有python,有c#,有·····,又多出一堆代码,关键这期间还有多个发展方向,gh可以做立面设计(表皮),幕墙深化(建造),做动画(你不知道灰哥?),做平面设计,做力学,做节能分析,搞机械装置,毕竟gh本身就是打包的代码,而代码是万能的,这时候你甚至考虑转行去做it了,建筑学也不挣钱反正。

所以入门的标准应该是指有了深入学习和研究的能力。也正是因为如此,至少我的课比较反感的是教表皮这种适用度较少的东西,而更喜欢全参模型以及给学员展示gh的方方面面,再说了,像前几年那样一个表皮就可以做一个方案的时代早就一去不复返了。


Grasshopper所采用的数据结构及它的核心组织和管理工具

重点不是掌握各种参数化工具的用法,因为这只是学到了参数化设计的表面部分,参数化的核心是对数据结构的理解和灵活运用。通过数据结构的组织,才能真正发挥出参数化设计方法的强大能力。

作为一个强大的参数化设计工具,它最大的特点就是:提供了一套可以让设计师自由管理的数据结构

学习招式,可以快速让用户看到成果,内功修炼不能忽略,否在只是浅层面无法持续进步


圈子:鹿神,兔神,蒯爷,可可,刘珂,茶壶王

途径:food for rhino;微信群,qq群;

目的就是为了告诉大家,rhino是很强的,什么都可以做。来来,这是rhino做的动画,当然和灰哥比起来就是渣渣级别的了。放着就是为了告诉大家没有任何人,可以定义rhino是用来干什么的,除了你自己。

参数化的核心:关联!!!!!!  可以联想excel。运算器能够传递数据结构,而panel便签不能传递数据。

参数化设计和传统设计方法之间的差距不在于结果,最形象的比方就是,用excel和word做表格之间的差距,表格关联越多,量越复杂,excel越强大,这里的表格就是指代我们的建筑设计。——BIM也是参数化中的一种。


参数化设计及辅助设计能干啥?

找形,纠错,优化,建造,平面设计,动画,人机,生态分析。不单单是用来做异形的,做什么完全看你。


何为参数化和参数化辅助设计

参数化设计:选择参数建立程序,将建筑设计问题变为逻辑推理问题的方法,它用理性思维替代主观想象进行设计,它将设计师的工作从个性发挥推向有据可依;它使人重新认识设计的规则,并大大提高运算量,它与建筑形态的美学结果无关,转而探讨思考推理过程。

参数化辅助设计:使用某种工具改善工作流程的工具:这些虽然能提高协同效率,减少错误,或实现较为复杂的建筑形体,但却不是真正的参数化设计。


notepad++作为一个轻量化编辑器,内存占用小+功能多,可以用来查看代码+替代windows的记事本,使用过程中,需要标注出文本中的重点内容,用style token高亮行内容,这个是无法保存的,
需要用bookmarks功能给文本行做记号,再次打开依然存在(Ctrl+F2),且空格是确定,tab是空格

重点:Maths,Sets,Curve,Surface


一、建立巨集MACROS


1.快捷键和巨集

一个常用的一劳永逸的节省时间的设置,命令栏联想提示的开关(选项-外观-自动完成命令),点开之后会看到这样一个表格,左侧列是快捷键,右侧列是对应的命令

<选项-工具列-替换文件rui(用于修改鼠标中键)

整体打包rhino的操作习惯=(工具-导出选项,存为ini文件),分开来讲

  • 修改之一(选项-工具列-文件替换rui)

  • 修改之二(选项-别名-替换快捷键txt)

  • 修改之三(选项-键盘-字母以外的全部)

建立巨集MACROS=RHINO的快捷键,工具-选项-rhino选项-别名/键盘

建筑建模常用命令,大大小小有400多个

2.命名规则

您可以使用以下的规则结合指令成为宏 =巨集=快捷键=别名(RHINO工具选项别名的快捷键是按照字母排序)

  • 空格符

会被视为按下enter键(rhino的所有指令名称都不包含空格符,但指令与指令之间必须以空格符隔开)

如果您的指令宏需要呼叫名称有空格符的文件、工具列、图层、物件名称或路径,名称前后必须加上双引号

copy 直接的设置形式,对于运行环境为英语的条件下可以直接输入命令本身 如C copy

后接一个空格符会被视为Cancel指令,通常最好在按钮前加上!,按下按钮时会先取消正在执行中的任何指令工作

J !_Join  前面带有!的命令,!的目的是为了安全起见,这可以取消前一个在运作的任何命令如J !_Join

  • '

在指令名称前加上'单引号代表后接的是一个可嵌套执行的命令(可以插入其他工作中的指令,而不会中断该指令的工作)

视图控制指令,可以在指令执行中使用而不会取消正在执行中的执行工作,例如,您可以在选取loft指令的参考曲线的同时缩放或平移视图

ZE '_Zoom _Extents  前面是',这种是嵌套命令,(')(_)(命令)(空格)(_)(命令)可以同时做几个命令

  • _

加底线,以英文的指令、选项名称执行指令(rhino有不同的语言版本,为了强制rhino使用英文的指令、选项、选项值。而忽略rhino所用的语言,在他们前面加上_就是在告诉rhino底线后加的是英文。BU  _BooleanUnion  带有下划线的命令,为何用下划线_?下划线告诉rhino,无论在任何语言环境下执行rhino,接下来的指令是英文。这样的巨集不管在任何语言环境下都可以使用 如BU _BooleanUnion

  • -

加连字符,可以抑制指令弹出对话框(几乎所有的指令都可以以指令宏=快捷键执行,即使是会弹出对话框的指令也可以,加上-可以抑制指令弹出对话框,改以之指令行选项执行)

二、rhino一千零一个问题

1. 数据结构——内功修炼

算法和数据的基本知识

基本的数据概念——数据类型,数据源,处理数据的常用方法 

数据结构规则(单个数据/列表数据/树形数据——设计问题中的实际应用)

列表里每个数据都有自己的数据序号,一对一的出现

但是不同的数据可以在一个数据支里边,对数据结构相关知识回顾和梳理,并排查自身存在的理解错误和遗漏的知识部分,加深用grasshopper数据结构清晰的理解和灵活运用的程度

多看多做简单易懂的教学案例,从中体会和理解参数化设计的运作方法,建立清晰的参数化思路和逻辑

数据结构也与核心算法紧密相关,需要使用者深入思考的部分。也是教学过程中决定成败的关键部分

数据结构来控制数据的存储和访问方式

2. 数据类型

  1.     几何数据类型

  •     数学数据类型

  • 3. 核心思想

  • 用高度逻辑性的思维,编写,算法;用直观的数据,进行直观的设计

目标是:用清晰说明设计意图+对应的实现步骤

四步法:输入部分,关键步骤,中间步骤,输出部分  (来帮助开发算法)

逆向思维:进行分析具体问题,研究可能的解决方案

运用的知识:几何,数学,编程

4. 五大模块,三大领域,两大教学

划分为五个模块: 数,逻辑运算,分析,排序,选取

三大领域:算法与数据,数据结构总结,高级数据结构

两大教学:数据处理教学,流程控制教学

5. 参数曲线具有区间

(对应为曲线上点的参数值范围)  

当需要使用统一的参数区间来分析多条曲线,将曲线的区间重新参数化为某个统一的范围有助于解决问题,最常见的就是“0到1”。任意的GH组件的曲线输入端,选择加入一个Reparameterize(重新参数化)组件,曲线的定义区间重置为“0到1”

※专题:如何使用颜色标记和注释来编写具有各种样式的算法

※专题:如何进行树形数据匹配 

6. 算法设计中的误区

输入无效的或者错误的数据类型

输入错误

操作顺序错误

数据结构不匹配

处理时间过久

组织结构杂乱无序    (大会处女座的优势,整理的好看一点)

7. 逻辑运算

交并或与非

逻辑门

8. 输出布尔值的运算器

9. 三种数据结构

将数据与GH的组件连接在一起的连接线为数据结构提供了额外的可视参考

  • 单个数据  
  1. 连线显示:单线(只有一个分支结构,且内部只有一个数据 )

  • 单个列表 
  • 连线显示:双线(只要一个分支结构,且内部只有多个数据)

  • 树形数据 

连线显示:双虚线(具有多个分支结构,且每个分支有任意数量的数据)

10.生成列表

GH中有很多方法生成数据列表。

Range

Series

Random

Divide curve(输出部分包含点列表,切向列表,参数值列表)   

11. 数据匹配专题

1.1 匹配短列表,匹配长列表,交叉匹配

GH在进行多个数据同时运算时,在背后的迭代运算对数据的匹配是有一定的原则的,简单来说就是哪个数据进行原酸,哪个数据不会进行运算, 初学者如果理解这一点会很有用的

1.2 GH给了三种对应模式,分别为Shortest List,Longest List,Crossreference

GH中默认的数据匹配方式是Longest List

  • Short List      右键有Trim Start(默认的),Trim End

  • Longest List 右键有Repeat First(默认的),Interpolate, Wrap ,Filp    

  • Cross Reference 右键有Holistic(默认的),Diagonal,Coincident,Lower,LowerStrict,Upper,UpperStrict

1.3 连线的规则 

Cross Reference 两组之间的每一个数据都和另一组数据进行运算,直接的表示是连线

  •  Longest List 数据多的一组,多的数据仍旧和数据少的一组最后一个进行运算

  • Shortest List 数据多的一组,多的数据不参加运算   

  • Long组件的作用和默认的匹配方式相同,即重复启用较短列表中的最后一个数据,已达到与较长列表相同的长度后再进行匹配

  • Holistic是交叉对应


12. .匹配数据连线的方法有三种

(两个point中的元素个数不同)point+point=line

  • Shortest list 短排法

  • Longest list  长排法    

  • Cross referene错排法


13. 建模思路

很多犀牛学习者,特别是初学者,拿到准备要建模的设计方案后,急忙的打开犀牛建模界面,动起鼠标,就开始画方案的轮廓线。

①建模前分析:拿到设计方案(草图后,我们应该先去观察草图,了解所要建模产品的形态结构,分析它由哪些块面组成,如果所建物体是复杂的组合物体,我们应该怎么样去拆开分析这个组合物体

②建模的物体进行画线:还要分析哪些线是我们要画该画的,哪些是多余的,不该画的,同时画线应注意线条的走向,因为你画的每一条线都影响你将要建模的模型。

③组合成主体形状:把线画好了,我们将要做它的主体形态,也就是说根据线来做产品的面-体,最后将他们组合成主体形态,要做好分层处理。

④修正做细节:做最后完善处理,包括倒角等,倒角也有原则,先大后小 

   
14. 每个电池的颜色分别代表的含义是什么

①橘黄色:未赋予值的变量

②白色:赋予模块一个变量

③深灰色:指定数值或隐藏模块

④红色:赋予错误的类型给变量

15. 辅助建模操作——对象的选取

 选取对象是最频繁的操作

  1. 左键单击

  2. 按住shift/ctrl左键单击,高亮显示(黄色)

  3. 按住Alt,框选(虚实框)

  4. Ctrl+a 全选/反选  套索选取:只能选取点对象,

  5. 点,线,面,体,标注,光源都有ID

  6. 按住Ctrl+Shift,点选 =选取结构线或者结构面

16. 比较Jitter,random reduce,lunchbox中的random split三者之间的差别

  • Jitter,将数列进行打乱,其中seed为随机种子,Jitter输入的是0-1,1为完全打乱(seed为整数)(输入data,Number,Integer,输出data,Integer)

  • random reduce,随机删除n个数据,seed是随机的第n种情况(seed为整数)

  • random

  • random split,注意:random随机(输入domain,integer,integer,输出data)

17. 辅助操作技能点:

鼠标中键,Ctrl加,Shift减

Txt工具/选项/别名/导出(快捷键)

rui工具/选项/工具列/文件/保存出来的(自定义好中键)

3dm文件/保存为模板(模板)

Ini工具/导出选项(界面)

18. GH的右键都有什么?

  • reverse  翻转数据

  • flatten  拍平数据,由原来的几个树枝,变成一个树枝的树叶

  • Graft   每个数据单独成组,一个树叶一个树枝

  • simplify 简化数据结构 

19. 运算器输入端和输出端的参数设置的 含义和作用

在进行运算器的操作前,还需要对运算器的参数设置进行了解,运算器的参数设置一共有九种

  1. (向右的箭头)Principal对输出数据树形结构与其中的一个输入数据做匹配

  2. (旋转的箭头)Reverse对输入的数据进行颠倒,相当于Set下List里边的Reverse List

  3. (向下的箭头)Flatten 拍平树形数据,类似于Set下Tree里的Flatten Tree,这个运算器的P端可以设置拍平后数据的路径

  4. (向上的箭头)Graft 树形数据转换,将输入的数据转换成单一的树形数据,类似于Set下的Tree里的Graft Tree

  5. (两股拧成一股)Simplify 可以理解为简化路径

  6. (一个圆圈)Degrees 可以理解为角度与弧度之间的转换,类似于Math下trig里的Radians,把角度转换为弧度

  7. (一个星星)Expression 一个写函数表达式的功能,类似于Math下Script里边的Expression

  8. Invert 相当于逻辑运算器里的not

  9. Reparameterize 将输入的数据线或面定义域转化为0到1,也可以用Python来达到这样的效果

20. GH电池的显示模式有两种

一种是图标,一种是英文,用哪种显示模式看个人习惯

在Display里,有一个Draw Icons可以切换图标还是英文全名;另外点击电池,右键有个小油漆桶点一下可以进行切换。

  1. 包含了数据的原始参数电池,显示浅灰色

  2. 不包含参数信息的原始参数电池,显示橙色

  3. 正常运行的电池,电池显示浅灰色

  4. 没有运行的电池,显示橙色

  5. 选中的电池,显示绿色

  6. 隐藏的电池,显示中性灰

  7. 禁止运行的电池,显示深灰色

  8. 数据运算错误的电池,显示红色

运算器的连接,通过一个线,从前面拉到后边;按住shift可以将两个参数接入下一个,可以用Ctr来取消连接;也可以通过右键的disconnect来取消连接

21. rhino的辅助建模操作

  1. 操作轴

  2. 按住Alt, 再移动=复制

  3. 按住Ctrl,再移动=移动操作轴

  4. 移动,再按Ctrl=形成体块(相当于推拉)

  5. 拖动-轴

  6. -输入数据,

  7. -按住Alt键,是复制

  8. Tab点限制:光标限制在某个方向上,

  9. Ctrl,升降机模式,改变操作轴的位置 

22. rhino的辅助建模操作

  • 坐标和坐标值的输入

输入世界坐标值(wx,y,z)/(wx,y)

输入作图平面的坐标(x,y,z)

输入相对坐标(rx,y,z)

输入极坐标(d<a)

点过滤器: 命令栏输入(x,y,z….xy,yz,wx)

  • 光标的限制

光标,记号,轨迹线…… 记号有时偏离光标中心,由于控件迫使记号到达某个记号特定位置的点,网格捕捉距离和角度的限制

  • 升降机模式
  1. 使用升降机画曲线(按住CTRL键,拖动鼠标左键升降;亦可在命令栏中输入数,以精确确定)

  2. 使用升降机模式在作图平面上垂直移动物体(先选择,后按住ctrl,再升降)

  3. 正交模式(开为黑,关为灰)

  4. 平面模式

  5. 栅格捕捉, 栅格捕捉,锁定格点,物件锁定

  6. 使用tab限制,使得记号沿着一条线移动(按下tab键的同时,记号即被限制在始点和按下tab点的位置)

  7. 对象捕捉 

23. rhino的辅助建模操作

  • 对象的可见性

  • 隐藏显示,锁定对象,编辑控制点等功能

  • 显示控制点

  • 快捷键和快捷命令  

  • 图层和群组(改变对象所在的图层,存在按钮,建立组,解散组)

  • 对象属性和贴图

  • 灯光和渲染

  • 分析和斑马线

24.GH的菜单栏,Export Hi-Res Image

可以为大家导出整个电池图,选择png可以导出没有任何背景的高清电池图

  • Display As Icons 操作界面的电池栏标签变成图标

  • Special Folders  点开会定位到GH存放其自己插件的一些特殊文件夹

  • Ctrl+G制作Group,还有框选电池,Ctrl是减选,Shift是加选,

  • Obscure Components 所有的电池就会显示在面板上,可以挑高效率,让电池位置一目了然

  • Draw Icons是电池是显示英文名字还是图标,Full Names意思是显示英文全称

  • Draw Fancy Wires是显示多种电线,

三种电线,

  1. 第一种是细实线是表示单个数据

  2. 第二种是空心双细线,表示多个数据

  3. 第三种是虚线,表示树形数据

好多好多,十种捕捉方式主要是用于捕捉一些特殊位置的点,如(可单次捕捉,也可多次捕捉)
类似距离限制,可以把记号锁定在一些特殊的轨迹线上:基于xx点的锁定,曲线,曲面上的锁定
对象捕捉的投影模 

25.tree相关的运算器说明

tree相关运算器//对数据结构的调整

  • clean 清除(空集cull,nulls,非法值)

  • Flatten 拍平数据,成一组,反义词unflatten

  • graft 每个数据单独的成组

  • Prune 是删除数据支(范围以外的)

  • Sub 是删除定区间的数据

  • simplify 是简化数据结构

  • Trim 是修建数据结构

  • shift 是砍级

  • split 是删除某一数据支

  • statistic 是数据支的信息

  • explode 炸开数据结构,成单支

  • match 是数据支名称匹配

数据类型的大致结构图

  • 数据(警告,正常,错误)

  • 数据(单个,线性,树形)

  • Flatten,graft  (常用的术语)(最常用的数据处理形式)

  • Path compare:路径是否一直,输出wrap

  • Replace Paths:替换路径名称,并合并   

数据流匹配,组织语法,逻辑相当重要,数据结构

A——过程——B  (左右是同类的数据)

进而复杂,单维变多维(即树形结构)    例子:看到路边的夹竹桃,树枝砍掉,然后重新捆绑,Unflatten tree

26. SET的相关内容

1.1 GH中都是从零开始计数的 输入序号,注意是序号,而不是第几个

※※ Sets 篇章 都是一级的数据,对一级数据进行处理

※※ sequence和text 也都是一级的数据,对一级数据进行处理 

※※ tree是多级数据的处理

  • List item          指定序号的数据(大佬)

  • item index       指定数据的序号

  • Insert Items     是在序号处插入/ Replace Items是在序号处替换

  • Partition List    根据size分组,比如两个成组

  • Reverse list 翻转;Shift list 偏移;Sort list 排序;Split list 指定位置一分为二;Sub list 抽取;

  • cull和null

  • cull删除(Index指定序号的数据,Nth数值倍数的数据,Pattern布尔值)是通过布尔来筛选数

  • null是无效的空集 

  • Replace Nulls  替换Null空数据——去替换列表中所有的空数据

  • Null Item     空变量评价——数列中是否有空数据,接合Dispatch。进行剔除

  • Combine Data 组合数据;合并几个输入端的数据,消除Null值; 合并数据,用数据去替换院列表中的空数据

  • Cull Pattern 根据条件分流输出Null数据  

  • Cull Index   删除制定序列号的数据,当序号大于list列表总数时是否循环删除   

  • Cull Nth    删除倍数

  • Cull Pattern 布尔删除

  • Null Item 判断数据是否存在Null(空值)和Invaild(无效)

1.2 复制数据专题
  • Duplicate 按照个数,复制数据

  • Repeat   按照长度,复制数据

  • stack,根据stack端指定的复制数量对data端的数据逐个复制

  • range/series/Jitter/Random/sequence(数列)

1.3 区分几个概念:常见单词的含义

indices序号(输入端)、index序号(输出端)、text文本(如果只要数字,可以传递数据)、Numbers/Domain区间、List列表数列、Items数据

list不只是数据列表

text可以输入文字,包含数值的文字可以直接被其他运算器识别

从列表中取出数据(抽取)——数据筛选(在参数化设计过程中,对数据做条件判断并筛选是很常见的处理需求)

List item : 指定序号的数据,默认是0,也就是第一个数据

Sub List : 指定区间的数据提取

Dispatch : 根据wrap来提取 true和false两个选项 ———— 给予一个过滤规则;根据true和false来,分成true组和false组 

cull pattern :根据wrap来提取 true和false两个选项——— 给予一个过滤规则    

Pcik"n"Choose :根据(0;1)来提取    //    从不同的列表中提取后合并

Sift Pattern   :根据(0;1)替换为空集;根据true和false,false替换为空集

sort list :进行数据排序

shift list :偏移一个数据

1.4 数据分流专题       

Dispatch             是数据分流(输入端是True,False,True,以此循环,进行分流)

weave                是数据编织 两个正好相反,为列表设定编号后,按顺序提取编号下的数

Pick^n^Choose  按照条件输出列表数据,根据输入端的1与0,从两组数据中进行抽取 

Sift  Pattern        数据分流清楚,如同dispatch 

1.5建立一个模型

就是个人就是单独的数据,拥有唯一的ID,但是会有同是小孩的;上一层:家庭=房间号;再上一层是楼层号,逐层的概念;再上一层是楼号,核心是数据结构

  • Clean 清楚空集,Nulls或者非法值

  • Flatten 拍平数据,无序号(小区的人都去参加社会核酸)

  • Graft   全校集合,有序号(每个班级,每个酒店,每个家庭)小区核酸,

  • Prune  删除指定序号长度以外的数据

  • Simplify 简化数据结构的路径名称,41弄21号502,只要502.

  • Tree Statistics 返回数据的路径名称,每支数据路径的数据的个数,总数据支个数,比如,


27.选点选线选面的技巧

选择线或面,选择首尾双击中间,就可以选择中间的循环连续的线或面选择线或面

Ctrl+Shift 点击点或者线,加选或者减选点或面

Ctrl+Shift 点击面双击第二个,循环某个方向的面

Ctrl+Shift 双击线,循环整个线

选中一排点不如选中一排线

28. 关于Panel的一些事

Panel运算器,既可以输入数据,又可以查看输出的数据

  • 当放大的时候,会出现九个小方格,第一个是减去字号,第二个是改字体,第三个是增加字号,第四个到六个是三种对齐方式,最后一个是改变颜色

  • 双击面板或通过右键Edit notes来输入数据

  • 输出数据

使用习惯:把一个panel的标签放在上边,可以随意复制使用,用于输入数据和查看数据

因为panel是查看器,用panel连接就过去就是text了,不是运算器

数据传递,这个要谨记,传递的是数据还是text。text已经没有数据结构了

Panel和Param View是常用的两个查看数据、数据结构的运算器

前者看详细的数据,后者看数据结构,更加清晰看有几个branch

Param下边的Geometry组,最常用运算器,是GH连接Rhino中物件的桥梁

Panel  进行解析,查看数据; Param Viewer 查看数据结构

Param Viewer  数据预览  

29. List几个常用的工具

  • Sort List 形象的说是像军训一样,让队员按照身高重新排列(输入number和data,输出number和data)

  • Sub List 形象的说是列表中抽取执行区间序号的数据及其序号(输入Data,Domain,Boolean,输出Data,Integer)

  • List Length 形象的说是返回输入端列表(可以是数字,线,物体,点等等)的长度,也就是人员的总数(输入data,输出Tnteger)

  • List Item 形象的说是提取指定编号的数据(输入Data,Integer,Boolean,输出Data)

30. Maths的相关运算器

  • Bounds是把一个数组转换成一个区间,包含原数组的最小值和最大值构成的区间

  • Range等分,将一个范围等分成N段,提取在等分点处的数字(形成数组)    

  • Relative Item 从树形数据中检索相关的组合,取N行N列和N+1行N+1列的两个点连接

  • Square 位于Vector下生成单元组成的网格

  • Colour Swatch+Custom Preview参数化的结果显示

31. 数据类型,除了数字,还可以是矢量,布尔值,数据的布尔

creat set 合并同类项

set Difference返回数列A中独有的数据/Differences 返回数列A或B中独有的数据

set Intersection 返回数列的交集

set Majority 返回出现过一次的数据

set Union 返回数列的并集

Carthesian Product 数据编织分组

Disjoint 判断两组数据有无相同元素

32.如何自定义快捷键

第1步:按住键盘shift键后,鼠标右键点所需定义的指令图标,打开“编辑工具栏按钮”对话框 

第2步:复制指令字母,后关闭对话框。(注意犀牛指令有左键右键之分,左右对话框为对应的指令字母)

第3步:点选项指令图标,--打开选项对话框--点新增--点别名

第4步:在前对空框内打入定义的字母(可单个或多字母组合),在后空框内粘贴刚才复制的指令字母,OK完成!

OK完成后可导岀保存为.TXT文本,以备下次重装软件后直接导入使用(也可以每个人导入自己个性化快捷方式)。

快捷指令的使用方法:为自定义的字母+空格键,或字母+鼠标右键,字母+回车.

也可以复制指令字母到键盘快捷!直间配合ctrl或shift使用!

33.关于操作轴的全部理解

  • 那个小黑点是什么,小黑点是推拉,可以点一下,然后输入距离

  • 小箭头是什么,小箭头是移动,可以点一下,然后输入距离

  • 选的时候,当哪个轴变黑就可以往那个方向移动

  • 为什么有的时候看不到缩放的小正方形

  • 为什么先Alt在移动,就可以复制,固定的距离怎么办

  • 为什么先移动再按Ctrl,就可以推拉,那固定的距离怎么办

  • 为什么重新定位操作轴的命令GumballRelocate或者是按一下Ctrl然后拖动操作轴的白点

34.调用运算器 

  • 方法一可以从运算器面板中点击要使用的运算器将其拾取,然后再工作区点击放在指定的位置

  • 方法二可以通过双击空白区,激活运算器搜索栏,输入自己想要的名词

  • 方法三可以通过工作区左下角的马尔科夫链来寻找是否有需要的电池

如果需要相同的,可以复制+粘贴来完成

如果想知道别人的源文件电池在哪儿,可以用Ctrl+Alt+鼠标左键完成

注意:马尔科夫链(Markov Chain)

35.GH的本质是记录建模的过程

也就是说Grasshopper是一种逻辑程序图,建模逻辑不变的情况下,可以调节自变量来调整整个建筑的一些参数。通过不断的读程序图,我们可以更快的理解建模逻辑,同时发现很多有意思的运算器串联用法。本质呢,将一些建模“过程”通过电池给图像化表示的一个建模软件,其中一个个电池又是对于编程脚本的打包,然后做成电池样子可视化处理,这样大家就不必学习晦涩难懂的计算机编程语言的语法和结构了。所以对于建模软件的转换或者说建模实质的转换(从建立模型到建立过程),我们的建模思维也应该有一个较大的转换

36.深刻理解数据tree

501.5022.5021.503.504

  • Trim tree 修剪一级或多级,41弄21号01.502.503变为41弄21号

  • unflatten,拍平的数据,挽回,但是需要原来的数据结构作为指导

  • entwine,类似编大蒜,拍平一支数据,和另外的组合起来。可以取消拍平一起组合,相反Explode tree,就是把编好的大蒜,再拆开。也就是炸开数据结构,需要右键匹配数据机构的数量

  • Flip翻转 矩阵

  • Merge 合并相同路径下的数据。注意这个合并,必须是相同的路径,数据结构完全一致

  • Match Tree 将一组数据结构的名称匹配成;另一组,仅仅是数据结构

  • 最最最强大的人物: Path Mapper 数据结构编辑器,右键有很多很多的功能

  • Shift Paths 和 Trim tree功能相似,输入端一个是1,一个是-1,砍掉一级数据结构 

  • Split 分割数据结构,指定路径名称的数据支,和其他支分离出来。

  • Stream Fliter 数据流过滤器,根据Gate输入的数值开控制哪一个数据端输出

  • tree Branch,抽取指定路径名称的数据

  • tree Item,抽取指定路径名称和指定序号的数据

  • 大佬:(Sequence)path mapper  是数据结构编辑器,GH中最强的数据结构处理运算器---可以直接右键点击,选择一些预设好的功能

    对数据结构有了更深的理解(本质上数据结构就是矩阵的行和列,树杈与树叶,同时{0;0;0是类似小区的X弄X号X楼层号房间})

  • Creat Null Mapping,Null自然就是什么都不操作,之前怎样,之后还怎样,

  • Creat Flatten Mapping,Flatten的本质是砍掉所有❀数据结构(词典+语法=数据+结构),把所有的数据按照顺序放在{0},或者指定的❀路径

  • Creat Graft Mapping    给数据单独成组,从{A;B;C;}(i)变为{A;B;C;i}根据数据的个数,再分组,原本的三级变为四级

  • 这就是Graft的本质

  • Creat Trim Mapping     即Trim Tree,修剪数据,往上砍一级,Path Mapper上显示{A;B;C}到{A;B},C级路径上的所有数据

  • 都被放到{0;0}里了,而{0;0}本身只有一支,所以所有数据都被放到一起了

  • Creat Reverse Mapping   翻转数列,相当于排队向后转,最后的一名成了第一

  • Creat Renumber Mapping 无视原数据结构的分级,将所有数据结构分支逐个排列。管你之前有大组小组,统一按照012345挨个排列

  • path_index 用路径名称的序号来代替原数据结构

  • {A}(i)-{i}(A)          就是flip matrix,翻转数据结构的本质

  • {A;B}(i)-{A;i}(B)

37.GH拥有一整套Point/vector运算器来执行“向量数学”

如加法,减法,乘法,点乘或者叉乘,标准数学方法:

1:一个小写字母表示一个数

2:一个小写字母并在它上边带个箭头表示一个向量    

3:一个小写字母并在它上面带个点表示一个点

4:绝对值符号用来表示向量的长度

curve和surface的Domain的含义

首先要区分下Domain和Length的区别

Domain的值是曲线初始控制点连线的长度;可以用Reparameterize指令重新定义

Length是曲线的实际弧长值

曲面的Domain计算方式同曲线,只是有U/V两个方向的计算,所以会更加复杂,因为一个曲面上的可以提取的UV线是N条

38.Remap Numbers:映射两个范围比值得到新范围

  • 输入端V:映射数值

  • 输入端S:源范围

  • 输入端T:目标范围

  • 输出端R:新的范围

这个比较难翻译其作用,输入端和输出端的关系是:R=VT/S      映射直白点说,就是把一个区间等比缩放,保证趋势不变,但是数值等比放大,或者缩小。
   
名字是映射两个范围*比值*得到新范围,本质是形成三角形某一边的平行线。从下往上看,参与映射的两个范围,0重合以末尾连线的比值映射 

39.SubD的建模方式和之前的T-Splines一样

都是通过对 SubD 物件上的各元素(点,线,面)以推、拉、挤出的方式进行调整,

在实时互动中探索复杂的自由曲面造型。并且显示速度比T-Splines快很多。

Rhino中的命令可以和 SubD 搭配使用,您可以随时向 SubD 物件添加精确的曲面造型细节(例如修剪、布尔运算、圆角等),以增强概念设计的表现效果。

40.Python 变量命名规则

  • 第一个字符必须是字母或下划线(_)

  • 剩下的字符可以是字母和数字或下划线

  • 大小写敏感,即A与a是不同的变量

  • 不能使用系统保留字,如if,else,as

  • 变量的赋值由于GH-Python中的变量的赋值氛围两种情况(1,外部赋值 2,内部赋值)

几种赋值的方式 a=5( 普通赋值),a=b=c=12(多重赋值),a,b,c=(多元赋值),a+=16(增量赋值,相当于a=a+1)

41.于列表List的一些运算器

  • W端是布尔值,true和false两个选项

  • Insert Items,插入数据到列表中,布尔决定是否循环原有数据列表(插入什么数据,插入数据的编号)

  • List Items,根据编号选择列表里的数据

  • Partition List,按数量划分列表

  • Reverse List,反转数据列表的顺序

  • Sort List,排列列表,按照编号的大小顺序排列编号和与编号关联的对象

  • Sub List输入一个区间,将元列表在指定区间内的项选择出来

  • Item Index,不理解的一个运算器

  • List Length,计算数据列表长度

  • Replace Items,替换列表指定项的数据内容

  • Shift List,根据输入值偏移数据,向上或向下滚动列表

  • Split List,根据输入编号,将数据列表划分为两个部分

42.在三维坐标系中,向量

可用三个实数表示v=<a1,a2,a3>,其中a1,a2,a3是三个实数

那么由A(x,y,z)到点B(x+a1,y+a2,z+a3)的线段是向量v的等效表示,非常重要的一点是不要将向量和与其具有等效分量的点混淆

向量运算:

向量加法遵循平行四边形法则

通过相加两个向量相应的分量来完成他们的相加,cos0°=1,sin0°=0,cos90°=0

a·b=|a||b|cos夹角

 向量性质:

1. a + b = b + a

2. a +0= a

3. s(a+b)= sa +sb

4. st(a)= s(ta)

5. a+(b + c)=(a+b)+ c

6. a + (-a)=0

7. (s + t)a = sa + ta

8. 1* a = a

点积性质 :  

 如果a、b 和c 都是向量而s 为标量,那么:

1. a . a =| a |2

2. a .(b + c)= a . b + a . c

3. 0. a =0

4. a . b = b . a

5. (sa). b = s(a . b)= a .(sb)

叉乘的性质:

(线性代数的知识)这里要会的是行列式的计算

区分行列式和矩阵:

行列式是一个标量,矩阵是一个数表,矩阵的质是一个标量

43.参数化带来的改变

数据操作模式的改变:由直接操作数据变为操作数据组合与生成规则

数据表达模式的改变:由尽量表达全部数据变为认为选择需要表达的数据

参数化是什么

人操作复杂性数据的能力与运用方式

图纸发展(从手工图纸,到计算机图纸,再到计算机模型)

手工图纸,用2d的方式表达3d形态,对3维形态进行平面化的2维数据定位,限于人类工具的使用能力,不够精确,数据较少,控制能力弱

计算机图纸,计算机的使用,手工图纸的电子信息化,实现了数据的大量修改复制与保存传输,从简单数据发展为更大规模的简单数据复合

再到计算机模型,数据从2维向3维的突破,每个形态均是大量控制数据,不需要将3维向2维转变。数据非常精确,大量复杂数据的集合,控制力突破性提升

44.rhino的鼠标操作

  • ctrl+按住鼠标右键向上拖动  放大

  • ctrl+按住鼠标右键向下拖动  缩小

  • ctrl+shift+按住鼠标右键拖  旋转

一直有:
  • 右键+拖动        =左/右/上/下平移

  • 右键+Ctrl+拖动     =放大/缩小

  • 滚轮+滚动      =放大/缩小

  • 中键(滚轮)+点击    =滚轮菜单

  • 空格键            =滚轮菜单

  • 左键+Alt+拖动    =拆分对象(也称为“摩西工具”)    注:圣经中摩西分开了红海

  • 在空画布上选择:

  • 左键+拖动        =框选

  • 左键+Shift+拖动    =增加框选

  • 左键+Ctrl+拖动    =减少框选

  • 右键+点击        =画布菜单

在一个对象上:

左键+拖动                     =拖动所选对象

左键+Shift+拖动           =沿正交轨道拖动所选对象

左键+拖动+Alt              =复制所拖动之对象

左键+点击                     =选取一个对象,若对象已被选取,则不执行任何操作

左键+Shift+单击            =添加选取对象

左键+Ctrl+点击              =剔除已选对象

左键+Ctrl+Shift+单击    =切换选取状态

左键+Ctrl+Alt                =信息模式    注:显示所点击之电池于面板中位置

左键+Ctrl+Shift+Alt       =将信息模式保存为图像

右键+点击                     =对象环境菜单

连接输入/输出端:

  1. 左键+拖动                         =创建一个新连线

  2. 左键+Shift+拖动                =创建新线且不割断旧连线

  3. 左键+Ctrl+Shift+拖动        =将此输入/输出端所有连线都换连至另一个输入/输出端

  4. 左键+拖动+右键                =多重创建新连线    注:此功能在安装轴突小工具后,会失效

  5. 左键+拖动+右键+Shift       =多重创建新连线且不割断旧连线

  6. 左键+拖动+右键+Ctrl        =多重割断已有连线

  7. 当在工具面板上的组件图标上时:左键+Shift+点击 =创建电池聚合     注:好像是一次带多个电池下来

编  辑

  • Ctrl+Z        =撤销

  • Ctrl+Y        =重做

  • Ctrl+X        =剪切

  • Ctrl+C        =复制

  • Ctrl+V        =粘贴

  • Ctrl+Alt+V   =原地粘贴    注:测试时快捷键失效,菜单栏按钮有效

  • Ctrl+Shift+V =贴至视图中心

  • Delete          =删除

  • Ctrl+A           =选取全部

  • Ctrl+D           =删除全部

  • Ctrl+Shift+I   =反转选取

修 改 选 取

  • Ctrl+Shift+A     =扩大选取

  • Ctrl+Shift+←    =扩选上游

  • Ctrl+Shift+→    =扩选下游

  • Ctrl+←             =上游电池

  • Ctrl+→             =下游电池

整  理

  • Ctrl+B              =拉至底部

  • Ctrl+F              =升至顶部

  • Ctrl+Shift+B     =下移一层

  • Ctrl+Shift+F      =上移一层

  • Ctrl+Shift+W     =整理选取

  • Ctrl+G                =群组

  • Ctrl+Shift+G       =解除群组

  • F3                      =查找

  • F4                      =创造    注:我没试出效果

45.幕墙参数化建模,下料的相关内容

  • 1.熟悉犀牛软件的工作界面常用命令演示,自定义命令按钮(点线面,Orient,曲率,阶数,网格成面,patch,setpt,align,显示模式,布尔运算)

  • 2.GH软件插件的安装,界面设置,电池连线

  • 3.GH数据输入及输出,简单电池案例学习应用

  • 4.GH数据类型(基础类型,几何数据,其他)

  • 5.GH数据结构(列表,树形数据)

  • 6.表皮建模,分格(干扰,冲孔,泰森多边形应用,循环迭代)电池应用

  • 7.点阵连线,excel数据交互,代码介绍学习及应用

  • 8.线阵优化,封面(袋鼠,WB应用),龙骨点位放线图编号及坐标点导出(以提供全站仪打点龙骨定位)

  • 9.幕墙立柱,横梁的长度统计及编号图,自动导出龙骨加工图(带图框,页码,编号,长度)及料单Excel表单

  • 10.面板排序,扣缝(玻璃,铝板等),统一方向防止铝板角码碰撞

  • 11.面板分析(曲率分析,翘曲分析,单曲双曲分析)平板化,单曲化(幕墙面板双曲优化成单曲面或平板)

  • 12.面板加工图(批量展平,标注,带图框,页码,编号,面积等,料单Excel表)

  • 13.单元板块公母立柱,后横梁加工图(批量出图,包括龙骨正视图及标注,截面图,局部放大图,及支座,横梁与立柱连接位置打孔定位及标注)

Grasshopper中,如果你是在使用Rhino Grasshopper作为款基于组件的视觉化编程环境,它主要用于建筑设计和参数化设计,而不是直接用于Windows窗口的创建。然而,如果你想在外部程序如Python通过IronPython集成Grasshopper,你可以利用它来生成数据然后通过IronPython控制Windows应用程序。 例如,你可以编写个Python脚本,首先在Grasshopper中获取所需的图形信息,然后通过`System.Windows.Forms`库来创建和操作Windows窗体。以下是简化的步骤: 1. 安装IronPython:确保你已经安装了IronPython,并将其添加到Grasshopper的路径中。 2. 在Grasshopper中,使用GH_Component、GH_DataTree等组件生成你需要的数据,比如窗体的位置、大小、内容等。 ```gh import Rhino from System.Drawing import Point # 在这里获取窗口属性数据 position = [x, y] # 窗口左上角坐标 size = [width, height] # 窗口尺寸 # 转换为IronPython可以处理的数据类型 iron_position = Point(position[0], position[1]) iron_size = Size(size[0], size[1]) ``` 3. 使用IronPython创建窗体: ```python from IronPython.Wpf import Window class MyWindow(Window): def __init__(self): self.Title = "My Custom Window" self.Size = iron_size self.Left = iron_position.X self.Top = iron_position.Y # 创建并显示窗体 my_window = MyWindow() my_window.Show() ``` 请注意,这需要对IronPython和WPF有基本了解,因为Grasshopper本身并不直接支持跨平台的窗口操作。如果你的目标是在Grasshopper内创建UI元素,那么更适合考虑使用GH_Plot或GH_Surface等组件绘制图形,而非创建独立的窗口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值