熟悉犀牛建模软件中的RhinoScript程序介绍

当前位置:首页 - 资讯 - 设计理论      2018-01-31 15:52:17     
品拉索产品策划

熟悉犀牛建模软件中的RhinoScript程序介绍

在犀牛建模软件中是有很多的建模程序,而且这些建模程序都是核心的技术,通过掌握这些核心的程序就能够很好地利用每项建模工具,但这些都需要了解犀牛建模的编程语言,以便于更加清楚犀牛的核心操作技术,下面就来熟系一下RhinoScript的程序脚脚本吧,更加透彻的了解建模软件。

1、简介

RhinoScript是Rhinoceros(犀牛建模软件)自带的参数化编辑脚本程序。

2、解释

RhinoScript脚本语言是一个基于微软VBScript语言。与RhinoScript,你可以很快添加功能,或自动化犀牛重复的工作。

脚本语言是一种解释都可以从微软的一个子集,它是一种程序设计语言。如果你已经知道的视觉基本或视觉基本应用(VBA),可以将非常熟悉。即使你不知道,Visual Basic,一旦你学会VBScript,你是在用自己的方式来规划与整个族的VB语言。

假使从字面上来直译,RhinoScript可以翻译为「犀牛脚本」。RhinoScript架构在VB(Visual Basic)语言之上的Rhino专属程序语言,大致上又可分做Marc与Script两大部分。以下简单地说明Marco与Script两者之间的差别。

Marcos = Static (fixed, linear sequence)

        Scripts = Dynamic (non-linear)

        ‧flow control (skipping and repeating lines)

        ‧variable control (logical and mathematical operations)

        ‧input and output (user interaction)

说明:简单地说,在Rhino中的 Marcos (可以称做宏)就像是一个口令一个动作的叫Rhino帮我们执行「动作」(actions)。Marco 的命令行是线性、静态的,意思就是说,如果我们下了一百条指令,Rhino就会从第一条、第二条、第三条等等,这样一路执行到第一百条命令,无法跳跃也无法重复执行某个命令。相对而言,Scripts则是动态且非线性的。首先,透过 Flow Control我们可以跳过或者重复某些命令行,而Variable Control则可以让我们创造出逻辑与数学的运算,Input and Output (I/O)则是使用者与Rhino之间的互动,使用者可以送进许多种类型的资料 (data),再经过运算之后以许多种数据形态输出。

本文的主要目的在于说明 Marcos与 Scripts之间的差别,之后将进一步对 Scripts 的语法、功能与运用方式做进一步的说明。

02=Introduction to RhinoScript (Syntax)


在了解 Marcos 与 Scripts 之间的差别之后,我们首先开始来介绍一点简单的「语法」(syntax)。在计算机程序语言中的语法,其实就跟我们学英文或其他外国语言一般,我们需要背单 字也需要学文法,而在此的语法就有点像是文法。因此,语法就是一种「成套」(a set)的规则组合。于是乎,当然也就会有所谓合法与不合法的语法,只不过,一般日常生活中,如果我们说出不合文法的语句,人基本上还可以透过上下文来猜懂。但是,计算机就没这么聪明了,如果我们写出不合语法的命令行,计算机不但不会去猜,根本就不理会,只会告诉我们:「描述方式有误」、「语法不合规定」等警 告句,告诉我们必须回头去检查到底是哪句命令行说错了。

RhinoScript 所使用的VB语言的语法基本上算是简单的,已经非常接近日常的口语,这算是非计算机用户的一大福音。所以,以下我们就来简单说明一下在Rhino中会用到的几种基本语法。

如果我们要画一条线,我们大概会这么说:「画一条线,起点在坐标(0,0,0)的位置,端点在(10,0,0)的位置。」同样地,在Rhino的Marco命令行我们可以这么下指令(请开启Tools\Commands\Marco Editor):

      _Line 0,0,0 10,0,0


然而,如果我们不是在Marco中,而是在Script的环境下(请开启Tools\RhinoScript\Edit),会有两种说法。一种就像是直接在Rhino工作接口中的Command列下指令一般,可以这样讲:

  Rhino.Command "_Line 0,0,0 10,0,0"

另一种讲法,则是呼叫RhinoScript中内部建构的许多Methods(超过200种),所以我们应该写成:

Call Rhino.AddLine(Array(0,0,0), Array(10,0,0))

基本上,本文的目的不在于将所有指令或者Rhino内建的Methods解说完毕,用意只在于很简单地说明在计算机语言中的语法与日常用语中文法的关系。差别只在于,所以,如果指令下了,Rhino却没反应,决不是Rhino有错,赶紧回头检查自己的命令行是否下错了。


此外,如果要详细了解VB的语法可以参考网络上的Microsoft教学手册,可以免费下载 并且有中文版。如果想详细了解RhinoScript中所有Methods的语法,请开启 Help\Plug-ins\RhinoScript,这里头详细记载了每个Mehods的用途、语法以及回传 (return)值等说明,当然,我们也会在后期提及。

这些基本的要求也是要设计师都了解的,这样才能够成为一名资深的大牛建模设计师。




ugainian官方微信

扫一扫,订阅最新资讯

留言
评论(0条评论