VSL是Virtools提供的一个非常有创意的脚本语言,它以输写代码的方式(区别于Virtools现有的图形化编程界面)进行编程开发,提高了程序的可读性和工作效率。

下图的功能是:将一个3D物体拷贝出10个,然后分别重新命名这10个新的3D物体。要完成这样的功能需要4个BB进行组合,要连接8条线。

  

现在我们用VSL脚本程序(注意不是Virtools脚本)写一个BB来实现同样的功能,如下代码:

void main()
{
// Insert your code here
String temp;
for(int i=;i<;i++)
{
Entity3D myCopy=Entity3D.Cast(bc.Copy(MyRef));
temp=MyName+i;
myCopy.SetName(temp.Str());
}
}

其中Run VSL有两个输入参数,MyRef(类型为Entity3D)和MyName(类型为String),简化后如图2所示:

  

  增加需求,不仅要拷贝出这些3D物体,还要把他们的位置全部归0,也就是放到世界坐标为:0,0,0的位置上。这时候来看看两种方法各自改进的工作量吧:

  

  VSL脚本程序只需要在for循环最后加入代码:

  Vector pos(,,);
  myCopy.SetPosition(pos);

  

  VSL脚本编写很简单,在这儿主要介绍下脚本程序的定位及删除:

  如果想从VSL管理器中直接跳转到使用了该VSL脚本BB的Virtools脚本中去,右键选中某个VSL脚本,然后选择“Focus in Schematic”即可。如果Virtool脚本中多处都使用了这个VSL脚本,那这个方法只能定位到其中的一个Virtools脚本BB中去。

  删除一个VSL脚本BB不能在通过VSL管理器来删除,既然它是BB,就自然是按常规的方法,到Virtools脚本中,选中要删除的BB来进行删除。注意如果Virtool脚本中多处都使用了这个VSL脚本BB,只有把这些BB都删除了,该BB的VSL脚本才会从VSL管理器中自动地消失。

  

  VSL语法为类C语言,在此不再赘述。

  关于快捷键,列出如下:

  • Shift + F4 –在Debug编辑模式中显示上一句错误代码的位置
  • F5 –执行脚本程序。
  • F6 – 停止脚本程序的执行。
  • F7 – 编辑当前VSL脚本程序。
  • Shift + F7 –编辑所有VSL脚本程序。
  • F9 – 插入一个断点。
  • F9 + Shift – 移除当前VSL脚本程序中所有的断点
  • F9 + Shift + Control – 移除全部VSL脚本的所有断点。
  • F10 –在Debug编辑模式中单步调试VSL脚本程序。
  • F11 –在Debug编辑模式中单步调试,所调用的函数体内的语句。
  • Shift + F11 –在Debug编辑模式中单步调试,所调用的函数体外的语句。
  • Ctrl + Pge Up/Pg Down –上翻/下翻查看代码。
  • Ctrl + C –复制。
  • Ctrl + V – 粘贴。
  • Ctrl + F –查找。
  • Ctrl + H – 替换。
  • Ctrl + G – 跳转到特定的行。
  • Alt + Enter – 全屏或窗口编辑模式切换。
  • Ctrl + M – 自动完成设置开关。
  • Ctrl + B – 自动关闭开关。

VSL基础的更多相关文章

  1. Java基础语法

    java基础学习总结——基础语法1 一.标识符

  2. java基础学习总结——基础语法1

    一.标识符

  3. java 基础语法 1

    一.标识符 二.关键字 三.JAVA基础数据类型 3.1. java常量 3.2. java变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后 ...

  4. java基础—基础语法1

    一.标识符

  5. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  6. node-webkit 环境搭建与基础demo

    首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...

  7. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  8. Golang, 以17个简短代码片段,切底弄懂 channel 基础

    (原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...

  9. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

随机推荐

  1. 什么是UAT

    基本概念 UAT,英文User Acceptance Test的简写,也就是用户验收测试,或用户可接受测试,系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测 ...

  2. MySQL简版(一)

    第一章 数据库的基本概念 1.1 数据库的英文单词 Database,简称DB. 1.2 什么是数据库? 用于存储和管理数据的仓库. 1.3 数据库的特点 持久化存储数据的.其实数据库就是一个文件系统 ...

  3. 前端之CSS:属性操作2

    css样式之属性操作 一.文本属性 1.text-align:cnter 文本居中2.line heigth 垂直居中 :行高,和高度对应3.设置图片与文本的距离:vertical-align4.te ...

  4. Java课后作业04

    一.古罗马皇帝凯撒在打仗时曾经加密军事情报: 1.设计思想: 加密原理是abc等全部后移3位xyz分别等于abc,根据ascii码表的转化,将其利用charat()取单个字符进行转化,再利用Strin ...

  5. day4 切片,数据类型

    day5: 序列,可以使用切片 序列类型:字符串,列表,元祖 特点:可以通过坐标来取值,坐标从0开始 >>> s = "agfdagsgsdgsa" >&g ...

  6. css3 宽度百分比减去固定宽度 无效问题

    一定要注意中间横线的间距才有效果 正确 width: calc(50% - 10px); 错误 width:calc(50%-10px);

  7. ES6数据结构Set、Map

    一.Set数据结构 Set是无序的不可重复的多个value的集合体,Set结构是类似于数组结构,但是Set中的值都不能重复 常用的属性和方法 size:返回set实例的成员总数 add():添加某个值 ...

  8. jquery +点击按钮,切换div内容,按钮加高亮

    html: <div class="dw4"> <span class="dw">单位(次)</span> <div ...

  9. JavaScript 练习

    搜索框 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...

  10. Java的基本使用

    1.如何运行一个Java源码 打开文本编辑器,输入以下代码: public class Hello { public static void main(String[] args) { System. ...