RhinoScript入门

更新时间:2023-07-14 08:22:53 阅读: 评论:0

RhinoScript入门
RhinoScript 是以VB语法作为语言基础的,任何一个RhinoScript脚本运行在当前的Rhino环境中时都可以使用Rhino本身的函数和子程序调用,以及某些Rhino环境变量。注意在脚本或者其他插件中,Rhino的当前环境被称之为“文档(document)”。
RhinoScript实际为文本文档,为了实现各版本之间的兼容性,请使用标准的ASC编码的脚本文件,即使是注释也不要使用中文。一般的RhinoScript格式后缀为rvb。
一,RhinoScript的载入
在使用RhinoScript前需要将rvb文件载入到文档中。常用的方法如下:
如上图所示,可以使用Tools|RhinoScript|Load,来加载rvb文件。也可以在Rhino命令行中输入“LoadScript”命令进行载入。
在菜单或者命令操作之后会有如下的对话框出现:
点击ADD按钮可以加入新的RVB文件到列表中。在列表中选择一个文件,点LOAD即可加载。点REMOVE即可从列表中删除一个文件。
RhinoScript加载规则如下:
如果RVB文件中只包含子程序或者函数的定义,这时候没有“裸语句”, Rhino仅仅检查语法规则,不运行任何一个子程序或者函数。但RVB文件中还包含“裸语句”,这时Rhino会解吸并运行这个脚本。
二,RhinoScript作为命令运行
在RhinoScript被载入之后,这个RVB文件内部的一些函数或者子程序便可以当作特殊命令被使用,但并不是RVB文件内的所有函数或者子程序可以被当作特殊命令使用,只有满足如下条件的子程序才可以被使用。使用条件是:
必须为标准的VB子程序,并且这个子程序不可以带任何参数。
如下一段摘自Rhino4 RhinoScript帮助文档的程序
Sub Test1()
MsgBox "Test1"
End Sub
Sub Test2(strMessage)
祗园寺MsgBox strMessage
End Sub
Function Test3()
MsgBox strMessage
Test3 = strMessage
End Function
其中只有Test1可以被当作命令使用。Test2带有参数,而Test3是函数,所以他们不能被使用。
使用VB子程序的特殊命令是:-RunScript “子程序名称”,注意前面有减号“-”
如上面的代码运行:
-RunScript Test1
就可以调用Test1()子程序
可以用Tools|RhinoScript|Run菜单命令来管理或者运行RhinoScript命令,也可以用RunScript命令完成同样的功能。执行菜单命令或者RunScript命令后会出现如下的对话框。
里面有当前所有可用子程序名称。
下面给出一段实际代码:
'rhomboid.rvb
Function t_rhomboid()
    'define local var
    Dim ArrPoint(3), PointName(3), LineName(3), Vector, GroupName
    'get the first point
    ArrPoint(0) = Rhino.GetPoint("input the first point")
    If Fal = IsArray(ArrPoint(0)) Then
        Exit Function
气血两虚的症状及调理    End If
    'get the identifier string of the point, for using
    PointName(0) = Rhino.AddPoint(ArrPoint(0))
    'get the cond point
    ArrPoint(1)=Rhino.GetPoint("input the cond point")
    If Fal = IsArray(ArrPoint(1)) Then
        Exit Function
    End If
    PointName(1) = Rhino.AddPoint(ArrPoint(1))
    'get the third point合欢花的作用
    ArrPoint(2)=Rhino.GetPoint("input the third point")
    If Fal = IsArray(ArrPoint(2)) Then
        Exit Function
    End If
    PointName(2) = Rhino.AddPoint(ArrPoint(2))
    'init the Vector and ArrPoint(3) into array type
    Vector = Array(0,0,0)
    ArrPoint(3) = Array(0,0,0)
    'calculate the ArrPoint(3)
    Vector(0) = ArrPoint(1)(0) - ArrPoint(0)(0)
    Vector(1) = ArrPoint(1)(1) - ArrPoint(0)(1)
    Vector(2) = ArrPoint(1)(2) - ArrPoint(0)(2)
    ArrPoint(3)(0) = ArrPoint(2)(0) + Vector(0)
    ArrPoint(3)(1) = ArrPoint(2)(1) + Vector(1)
    ArrPoint(3)(2) = ArrPoint(2)(2) + Vector(2)
    'add ArrPoint(3) to document.
    'you can delete it, while delete all operation of PointName(3)
    PointName(3) = Rhino.AddPoint(ArrPoint(3))
    'add 4 lines to document.
    LineName(0) = Rhino.AddLine(ArrPoint(0), ArrPoint(1))
    LineName(1) = Rhino.AddLine(ArrPoint(0), ArrPoint(2))
    LineName(2) = Rhino.AddLine(ArrPoint(1), ArrPoint(3))
    LineName(3) = Rhino.AddLine(ArrPoint(2), ArrPoint(3))
    'delete help points from PointName(0) to PointName(3)
    Rhino.DeleteObject(PointName(0))
    Rhino.DeleteObject(PointName(1))
    Rhino.DeleteObject(PointName(2))
    Rhino.DeleteObject(PointName(3))
    'make a new group and add 4 lines(from LineName(0) to LineName(3)) to the group
    'like this, ur can operate this rhomboid as a single object
    GroupName = Rhino.AddGroup()
    If Fal = Rhino.IsGroup(GroupName) Then
        Exit Function
    End If
    Rhino.AddObjectToGroup LineName(0), GroupName
    Rhino.AddObjectToGroup LineName(1), GroupName
    Rhino.AddObjectToGroup LineName(2), GroupName
    Rhino.AddObjectToGroup LineName(3), GroupName
    'return this gruop name for more operation
    t_rhomboid = GroupName
End Function
Sub trb()
    t_rhomboid()
End Sub
'-RunScript trb
Rhino.AddAlias "addrh", "_-RunScript trb"
上面一段代码只有一个函数,和一个无参子程序,来提供给Rhino命令使用。整个程序只有一个函数t_rhomboid产生功能。
坛子肉t_rhomboid先让用户输入三个点,然后函数使用这三个点计算第四个点,然后由这四个点连成一个平行四边,并将作为标记的四个点删除,只留下四条线段。并将这四条线段加入到同一个组内,使这个平行四边成为一个对象。
注意最后一行的“裸语句”Rhino.AddAlias "addrh", "_-RunScript trb"
这是一个Rhino子程序Rhino.AddAlias的调用,作用是给一段标准的Rhino命令起一个“别名”,之后就可以使用这个别名来实现这个Rhino命令的功能。本例中为"_-RunScript trb",注意前面的“_”是不能少的。然后就可以在命令行里输入addrh栾川豆腐来实现-RunScript trb命令的作用,而实际上就是最终调用函数t_rhomboid()
三,启动Rhino时自动加载RVB文件
一般情况下当然是希望Rhino时自动加载一些RVB,来扩展Rhino的功能,方法如下:
TOOLS|Options
弹出如下对话框:
孩子与狗
选择客厅屏风图片大全RhinoScript一项,在右端方可进行启动加载脚本文件的操作。
另外RhinoScript函数:Rhino.AddStartupScript (strScriptFile [, intIndex])也可以完成这个操作
strScriptFile是一个RVB文件路径,intIndex是一个0起始索引,用来表示这个strScriptFile在加载列表中的加载顺序,0索引先加载。函数成功则返回一个整数,其为加入的新RhinoScript在加载列表中的索引。调用失败返回Null。

本文发布于:2023-07-14 08:22:53,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1080942.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:命令   使用   子程序
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图