我的犀牛教程_第1页
我的犀牛教程_第2页
我的犀牛教程_第3页
我的犀牛教程_第4页
我的犀牛教程_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华轩集团东莞华轩内部Rhino+Grasshopper培训课程

授课人:王俊雄

释放您的思维前言目录第一讲:Rhino属性设置与基本操作(4课时)第二讲:RhinoScript编程(16课时)第三讲:Grasshopper控件编程(10课时)第一讲:Rhino界面和操作1.1Rhino4.0操作界面:1.2Rhino属性设置:视图窗口与物件显示模型Rhino选项设置图层与物件属性1.3

Rhino物件创建点物件曲线曲面多重曲面实体1.4

编辑曲线与曲面曲线组合与炸开修剪与分割重组曲线重组曲面1.5高级工具集从物件建立曲线套用UV线,沿曲面流动从3D模型建立2D图图片实例犀牛模型1.6

铝板建模实例操作1)试飞院工程2)黄河楼3)林和村4)龙湖西苑15)龙湖西苑26)哈尔滨大剧院第二讲:RhinoScript编程2.1

VB常用数据类型String数据类型字符串Integer数据类型

整数Long数据类型

长整数Single数据类型单精度Double数据类型双精度Boolean数据类型(布尔)真假2.1.1字符型数据String

字符型数据(String)用以定义一个字符序列。在内存中一个字符用一个字节来存放。2.1.2数值型数据数值型数据包括:整型、长整型、浮点型(单精度和双精度)4种。

(1)整型数整数(Integer):是不带小数点、范围-32768到32767之间数,在内存中用2个字节(16位)来存储一个整数。在-32678~32767之间的一个数字在尾部加一个“%”符号也表示一种整型数据,如1345%,-67%。

(2)长整型数长整型数(Long):是超过一32768~32767范围,而在-2147483648~2147483647之间的不带小数点的数,一个长整数在内存中占4个字节(32位)。在-2147483648~2147483647之间的数字在尾部带一个“&"符号,也表示为一个长整数。

(3)浮点数单精度数(Single):是带小数点的实数,有效值为7位。在内存中用4个字节(32位)存放一个单精度数。通常以指数形式(科学记数法)来表示,以“E"或“e”表示指数部分。双精度数据(Double):也是带小数点的实数,有效值为15位。在内存中用8个字节(64位)存放一个双精度数。双精度数通常以指数形式(科学记数法)来表示,以“D"或“d”表示指数部分。2.1.3布尔类型

布尔类型(Boolean):布尔型数据是一个逻辑值,也称逻辑类型,用两个字节存储,它只取两种值,即True(真)或False(假)。2.2常用转换函数和数学函数2.2.1类型转换函数Int(x):求不大于自变量x的最大整数Long数据类型。

Cstr(x):把x的值转换为一个字符串。

Cint(x):把x的小数部分四舍五入,转换为整数。CDbl(x):把x值转换为双精度数。

CSng(x):把x值转换为单精度数。2.2.2数学函数

Sin(x):返回自变量x的正弦值。

Cos(x):返回自变量x的余弦值。

Tan(x):返回自变量x的正切值。

Sqr(x):返回自变量x的平方根,x必须大于或等于0。2.3控制结构2.3.1条件语句

格式:If

条件语句

Then执行语句

Else执行语句EndIf练习:(1)给定x和y两个数,如果x>y则A=0,否则A=1

(2)把数学成绩分为分4个等级,给定一个分数,然后评出这个分数的等级。

2.3.2循环控制结构

格式:for循环变量=初值to终值[

step步长]

循环体

next练习:(1)列出从1到10的整数。2.3.3Foreach…..In…..结构

格式:foreach元素in数组

循环体

next练习:(1)选取几个物体,分别输出他们的ID。2.3.4Do…..Loop无限循环

格式:DO

循环体

Loop练习:在rhino的top平面制作一个挂钟。2.3

数组2.3.1数组定义

数组就是在电脑中占据的一块内存区域,数组名是这个区域的名称,必须先定义后使用。定义数组的目的就是通知电脑为其留出所需要的空间。

常用来定义数组的语句:

Dim定义数组

Redim定义数组,在过程中用

数组中的每一个数据称为数组元素,用数组名和该数据在数组中的序号来标识。序号又称为下标,数组元素又称为下标变量。例如,S(2)是一个数组元素,其中的S称为数组名,2是下标。

数组的下界必须小于上界,Ubound(数组名,[维])可求出数组上界。如果只用一个下标就能确定某个数组元素在数组中的位置,这样的数组称为一维数组。如果用两个或多个下标才能确定某个数组元素在数组中的位置,则数组分别称为二维数组或多维数组。2.3.2一维数组

一维数组定义定义一个数组:DimA(5),A是一个数组,这个数组共有5个元素。最小下标为0(也就是从A(0)开始),最大下标为5-1(也就是A(5-1))。

数组在电脑中的内存区域为:

假如给数组A(5)赋值:

A(0)=10;A(1)=11;A(2)=12;A(3)=13;A(4)=14

那么A=array(10,11,12,13,14),即:

这就如有一排座位,分别作了记号A(0),

A(1),

A(2),

A(3),

A(4),管理员把某人10分配在A(0)座位,把某人11分配在A(1)座位,把某人12分配在A(2)座位,把某人13分配在A(3)座位,把某人14分配在A(4)座位。A(0)A(1)A(2)A(3)A(4)1011121314

一维数引用如数组

A=array(10,11,12,13,14)

数组信息:

位置

数据

1)假如需要12这个数据,那么用A(2)输出。

2)假如需要逐个输出,则可用foreach…..next结构。A(0)A(1)A(2)A(3)A(4)10111213142.3.2二维数组

二维数组定义定义一个数组:DimA=array(array(5,6),array(9,11))

该数组在电脑中的内存区域和数值:

那么,A(0)(0)=5;A(0)(1)=6;A(1)(0)=9;A(1)(1)=11。列行0105619112.4常用创建几何体函数2.4.1点

1)用坐标创建点:Rhino.AddPoint(arrPoint)(单点)Rhino.AddPoints(arrPoints)(多点)2)点到物件的最近点:Rhino.PointClosestObject(arrPoint,strObject)Rhino.PointClosestObject(arrPoint,arrObjects)3)返回点坐标:Rhino.PointCoordinates(strObject[,arrPoint])4)求点与点的距离:Rhino.Distance(arrPoint1,arrPoint2)Rhino.Distance(arrPoint1,arrPointArray)2.4.2线

1)直线:Rhino.AddLine(arrStart,arrEnd)2)多段线:Rhino.AddPolyline(arrPoints)3)圆:Rhino.AddCircle(arrPlane,dblRadius)4)求平面闭合曲线面积:

Rhino.CurveArea(strObject)5)求平面闭合曲线中心点:Rhino.CurveAreaCentroid(strObject)6)布尔运算并集:Rhino.CurveBooleanUnion(arrCurves

[,blnDelete])7)曲线与曲线相交:Rhino.CurveCurveIntersection(strObject1,strObject2[,dblTolerance])

8)线终点:Rhino.CurveEndPoint(strObject[,intIndex[,arrPoint]])9)线起点:Rhino.CurveStartPoint(strObject[,intIndex[,arrPoint]])10)求曲线长度:Rhino.CurveLength(strObject[,intIndex[,arrSubDomain]])11)求曲线中点:

Rhino.CurveMidPoint(strObject[,intIndex])12)等分曲线:Rhino.DivideCurve(strObject,lngSegments[,blnCreate[,blnPoints[,arrInterval]]])13)以长度等分曲线:Rhino.DivideCurveLength(strObject,dblLength[,blnCreate[,blnPoints[,arrInterval]])14)炸开曲线:Rhino.ExplodeCurves(strObject[,blnDelete[,blnReturnSingles]])10)延伸曲线:Rhino.ExtendCurveLength(strObject,intType,intSide,arrObjects)11)合并曲线:

Rhino.JoinCurves(arrObjects[,blnDelete[,dblTolerance]])12)偏距曲线:Rhino.OffsetCurve(strObject,arrDirection,dblDistance[,arrNormal[,intStyle]])13)反转曲线:Rhino.ReverseCurve(strObject)14)分割曲线:Rhino.SplitCurve(strObject,dblParameter[,blnDelete])15)剪切曲线:Rhino.TrimCurve(strObject,arrInterval[,blnDelete])16)移动基准平面:Rhino.MovePlane(Rhino.WorldXYPlane,arrOrigin)2.4.3图层

1)新建图层:Rhino.AddLayer([strLayer[,lngColor[,blnVisible[,blnLocked[,strParent]]]]])2)激活图层为当前图层:Rhino.CurrentLayer([strLayer])3)删除图层:Rhino.DeleteLayer(strLayer)4)移动物件到指定图层:

Rhino.ObjectLayer(arrObjects,strLayer)

2.4.4物件

1)拾取点:Rhino.GetPointCoordinates([strMessage[,blnPreSelect]])2)拾取点(直接创建):Rhino.GetPoint([strMessage[,arrPoint[,dblDistance[,blnPlane[,blnSnapObject]]]]])3)输入数:Rhino.GetReal([strMessage[,dblNumber[,dblMin[,dblMax]]]])4)输入字符串:

Rhino.GetString([strMessage[,strString[,arrStrings]]])5)选取物件:Rhino.GetObjects([strMessage[,intType[,blnPreSelect[,blnSelect[,arrObjects]]]]])

6)复制:Rhino.CopyObjects(strObject[,arrStart,arrEnd])7)删除物件:Rhino.DeleteObjects(arrObjects)8)移动物件:Rhino.MoveObjects(arrObjects,arrStart,arrEnd)9)命名物件:

Rhino.ObjectNames(arrObjects[,arrNames])10)旋转物件:Rhino.RotateObjects(arrObjects,arrPoint,dblAngle[,arrAxis[,blnCopy]])11)通过名称选择物件:Rhino.ObjectsByName(strName[,blnSelect[,blnIncludeLights]])2.4.4其它常用函数

1)弹出消息框:(简写:MsgBox)Rhino.MessageBox(strMessage[,intButtons[,strTitle]])2)打开指定格式的文件:Rhino.OpenFileName([strTitle[,strFilter[,strFolder[,strFilename

[,strExtension]]]]])3)点坐标转换为字符串:Rhino.Pt2Str(arrPoint[,intPrecision[,blnSpace]])4)读取文本信息:

Rhino.ReadTextFile(strFileName[,blnIgnoreEmptyRows[,blnTrimSpaces]])5)输入信息到文本:Rhino.WriteTextFile(strFileName,arrStrings[,blnAppend[,intEncoding]])

6)添加文字:Rhino.AddText(strText,arrPoint[,dblHeight[,strFont[,intStyle[,intJustification]]]])7)添加Dot文字:Rhino.AddTextDot(strText,arrPoint)8)包裹物件:Rhino.BoundingBox(arrObjects[,arrPlane[,blnWorldCoords]])9)求文字的点坐标:

Rhino.TextObjectPoint(strObject[,arrPoint])10)把文字从ID格式转换成文字格式:Rhino.TextObjectText(strObject[,strText])11)返回标注的数字(包括手动修改的):Rhino.DimensionText(strObject)12)修改标注数字:Rhino.DimensionUserText(strObject[,strUserText])13)设置脚步快捷键:Rhino.AddAlias(strAlias,strMacro)14)使用rhino内部命令:Rhino.Command(strCommand

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论