先说一下,我们到底在干些什么:
1.1 Macros(宏)
犀牛是基于命令行界面。这意味着你可以控制只使用它的键盘。您键入的命令和程序将执行它们。自从鼠标出现以后,纯命令出现的用户界面是被认为是原始的。如果你不想用下面的输入方式:
Line 0,0,0 10,0,0
你也同样可以单击该行按钮,然后在视口中两次确定的起始和结束点形成线。由于第二(图形)接口被有些人已完全取消了命令行。有些用户是命令行的狂热分子,其他人只使用工具栏和菜单。程序员在这方面无所谓,他们都执于命令行。这是没有用的编程鼠标到某坐标,然后模拟点击鼠标,这只是普通愚蠢的。程序员输入犀牛文本然后他们期望得到的回报文本。
在犀牛的最低形式的编程使用宏。我不想否认你们写宏的生活,但不能否认这是一个非常原始的方式来实现流程自动化。我只简单地暂停在宏的问题,也是让我们知道这是哪部分是因为我们在某些时候可能会模拟宏使用RhinoScript。
宏是一个预先写好的犀牛所要执行的命令的清单。这个_Line命令是一个非常简单的宏示例。如果你的工作是开放犀牛文件,添加从0,0,0到10,0,0的线并且每次都重新保存文件,如果你每一分钟输入6次“_Line W0的,0,0 w10,0,0“,可能会变得非常疲惫。那么请进入宏。宏只能替你完成手工的活动,而不是头脑的活动。宏并不聪明,也不能反应过来他们要帮助创造些什么。他们更像是一个交通督导员,而那些命令就是人群,他指挥这些命令应该怎么运行。一个更复杂的宏观例子是:
_SelNone
_Polygon _NumSides=6 w0,0,0 w10,0,0
_SelLast
-_Properties _Object _Name RailPolygon _Enter _Enter
_SelNone
_Polygon _NumSides=6 w10,0,0 w12,0,0
_SelLast
_Rotate3D w0,0,0 w10,0,0 90
-_Properties _Object _Name ProfilePolygon _Enter _Enter
_SelNone
-_Sweep1 _SelName RailPolygon _SelName ProfilePolygon _Enter _Simplify=None Enter
上面的代码将一遍又一遍创建相同的六角环(如图1.1.1所示)。
图1.1.1
它可能是有用的,但它不是灵活的。您可以输入上面的文本命令,您甚至可以直接复制,粘贴到犀牛的文本里面。
顺便说一句,强调所有命令基于犀牛本身的。犀牛将使用英语命令名称,而不是说像,意大利,日本或任何自定义设置。你应该总是强迫使用英文命令名称,因为这是唯一保证可以让犀牛识别的命令,您的代码将可以在世界各地的犀牛的所有版本里被识别并运行。
在前面的_Properties连字符和_Sweep1命令用来引领对话框。如果你不用这些连字符的话,你将无法通过改变一个命令来改变犀牛的工作状态。
我们无法限制一个宏可以达到的复杂程度,你可以不加限制的去增加你的命令,但是再多的命令也无法改变一个宏的核心。
1.2 Scripts(脚本)
宏的局限性导致了脚本语言的发展。脚本是宏和手工画图之间的中转(编译)程序和插件。不像宏可以执行宏数学运算,评估变量条件,满足他们的环境和与用户沟通。不同的程序,他们不需要前制订运行。犀牛可以实现标准的Microsoft ? Visual Basic ?的脚本版的语言(通常称为如VBScript),这意味着真正的VBScript也是RhinoScript。
脚本,每次演译出一个线的文本文件,但是,这里有一个很有趣的部分,不同于宏,脚本控制的线下执行。流量控制,这使得脚来跳过某些指示或重复他人。流量控制是通过所谓的“有条件的评价”,我们自己必须熟悉的VBScript语言规则,才可以采取流量控制的优势。
VBScript是一个非常宽松的编程语言。 '宽松',在这个意义上表明,语言规则是相当宽松。语言规则通常称为语法,他们指出哪些是无效的:
1 "There is no apple cake here." ? valid “没有苹果蛋糕了。” ?有效
2 "There is here no apple cake" ? invalid “这里没有苹果蛋糕”?无效
3 "Here, there is no apple cake." ? valid “在这里,没有苹果蛋糕。” ?有效
4 "There is no Apfelstrudel here." ? invalid “没有Apfelstrudel这里。” ?无效
上述名单是英语语法规则的有效性检查。第一和第三行是正确的英语,其他的都不是。但是,也有一定程度的错误。没有人会误解第二行仅仅因为词序是错误的。该行已经提出了一些困难,因为它具有从一个不同的语言文字。
虽然我们大多数人有足够的智慧理解所有四个线,但是计算机不能。我前面提到的VBScript是宽松的语言。这意味着它可以拦截小的语法错误。在我们可以开始与犀牛做任何事情之前,我们必须对VBScript语法有一个很好的理解。
1.3 Running Scripts(运行脚本)
有几种方法可以在犀牛中运行脚本,都有自己的优劣。你可以存储为外部文本文件的脚本并且可以随时让犀牛来运行它们。你也可以使用犀牛自己的脚本编辑器,这意味着你可以从脚本编辑器中直接来编写一个脚本。使用_EditScript命令来激活它,然后输入你的脚本并点击Run这个按钮。(图1.3.1)
图1.3.1
所有在本教程的例子代码可以复制,粘贴到EditScript直接运行。 |