【SEG出品】Grasshopper插件讲解(8)

2019-03-10 20:34

本帖隐藏的内容 最后Cache按钮,你点击一下编辑器会保存此刻的代码,你可以用旁边的Recover from cache.来恢复代码。当然编辑器也会自动隔段时间保存代码。如果不小心代码丢失了,来这里面找找吧。

最后介绍几个鲜为人知的快捷键,实际上这个编辑器与VS有着某种关系,VS里面的快捷键基本上在此都可以用。

ctrl+e紧接着按 ctrl+c 用来批量注释所选代码 ctrl+e紧接着按 ctrl+u 用来批量反注释所选代码

如果一行代码太长,超出了编辑器的右边界,你想复制此行代码,选择起来不方便,那么没关系,将光标定位到行首,按Ctrl+C即可复制此行。

最后,按住Alt键,然后鼠标右键选择会出现一种神奇的隔行矩形选择:

对此矩形区域可以进行复制粘贴以及删除,有时候可以达到很神奇的功效。 如果群中潜水的高手还知道一些其他比较方便好使的快捷键,欢迎回复消息。 等下,貌似我们的界面还遗漏了什么:

36

Ctrl+F,Find以及替换,这里面有很多选项,其中值得一提的是Use regular expressions,可以使用正则表达式哟。

那么此替换和查找就比较强大了。作为一个脚本开发者,如果你不知道正则表达式就有点太不专业了,必须恶补

【SEG出品】GH中级篇之脚本计算器讲解(三)

37

感谢各位关注。新加入成员可以查看之前的帖子教程。由于用户基础不一,我们要由浅入深,先讲基础操作,再讲工程实例,再到深入GHA开发,以及各种复杂算法。期间可能会穿插着来讲,可以直接回复问题,我们会尽量去解答。您觉得有用,请将此微信号分享给能用得着的朋友。

今天,我们开始讲解GH中的VB脚本代码。

打开GH中的VB编辑器,里面已经预先生成了一些代码,如下,我们逐行讲解: Option Strict Off Option Explicit On

上面两个是编译器的对代码的选项,第一个意思是严格定义关闭,如果开启严格定义即Option Strict On那么我们必须保证我们的代码正确无误才能执行,甚至连警告错误都不能有。还好这里按照的不是严格定义。 第二个选项是显示定义,意思 我们定义变量的时候必须显示定义而不能是隐式的,即dim pt as point3d,而不能直接不定义,把pt当成point3d来用,这样的话会提示一个错误

“1. Error (BC30451): 'pt' is not declared. It may be inaccessible due to its protection level. (line 87)”

以上两个选项目前版本还不能用户自己改动。

下面是导入的命名空间,不知道命名空间是何物的童鞋,可以恶补一下。导入这些,方便我们写代码,例如导入Rhino.Geometry空间后,里面有个Point3d的结构体,那么我们就可以直接使用Point3d这个结构体,Dim pt as Point3d 而不用麻烦滴写 Dim pt as

Rhino.Geometry.Point3d,至于命名空间的其他用途这里就不在赘述。下面介绍一下这些常用的空间。

38

Imports Rhino

Imports Rhino.Geometry 几何类空间,这个里面几乎每个类都需要知道,如果你想对犀牛里面几何对象了如指掌的话。 Imports Rhino.DocObjects

犀牛物件空间,犀牛文档物件。 Imports Rhino.Collections

犀牛泛型空间,就是很多集合空间,例如图层表,颜色表等。 Imports GH_IO GH的文件空间。

Imports GH_IO.Serialization

GH文件序列空,这个是GH能保存文档,初始几何对象的一个重要的空间。 Imports Grasshopper

Imports Grasshopper.Kernel

Imports Grasshopper.Kernel.Data GH的数据空间

Imports Grasshopper.Kernel.Types

GH的类型空间,GH里面所有类型都是GH_xxx例如String实际上是GH_String,GH魔术般的功能都是由这些类型支撑的。

以下是NetFrame框架的一些常用空间。 Imports System Imports System.IO 系统文件管理空间。 Imports System.Xml Xml空间。

Imports System.Xml.Linq XML的linq空间。 Imports System.Linq

Linq空间,不知道Linq为何物的童鞋,要恶补以下,这个很久以前没有引入,后来才引入的,很有用,可以用SQL语句一般的.net语言对各种集合查询。 Imports System.Data Imports System.Drawing 绘图空间。

Imports System.Reflection 反射空间。

Imports System.Collections 泛型空间,这个要掌握。

Imports System.Windows.Forms

WinForm空间,就是那些界面空间,传言犀牛6要移除,不过后来Steve好像找到了另外的方法,保留此空间引用。 Imports Microsoft.VisualBasic

这个空间使用VB6的同学可能很喜欢。是VB6之前的方法函数。 Imports System.Collections.Generic 泛型空间,这个要掌握。

Imports System.Runtime.InteropServices

39

运行时交互空间。(本人水平有限,对很多空间功能也不甚了解。) 目前命名空间的导入,我们只能用默认的不能自己导入。我曾向GH官方建议让用户自己导入。他们会在GH2.0里面加入自己导入命名空间的功能,这样我们的自由读就更大了。比如我们可以自己导入正则表达式空间等。 '''

''' This class will be instantiated on demand by the Script component. '''

下面就是脚本类。

Public Class Script_Instance Inherits GH_ScriptInstance #Region \

'''

Print a String to the [Out] Parameter of the Script component. '''

'Implementation hidden in Script Edit mode... End Sub

'''

Print a formatted String to the [Out] Parameter of the Script component.

'''

'''

Private Sub Print(ByVal format As String, ByVal ParamArray args As Object()) 'Implementation hidden in Script Edit mode... End Sub

'''

Print useful information about an object instance to the [Out] Parameter of the Script component.

'''

'Implementation hidden in Script Edit mode... End Sub

'''

Print the signatures of all the overloads of a specific method to the [Out] Parameter of the Script component.

'''

Private Sub Reflect(ByVal obj As Object, ByVal method_name As String) 'Implementation hidden in Script Edit mode... End Sub #End Region 本帖隐藏的内容

上面四个方法,前两个是Out输出端输出的过程函数,这几个过程函数我们都无法修改。但是可以调用。

例如 我们写入如下代码:

40


【SEG出品】Grasshopper插件讲解(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版高中语文课内成语汇编

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: