VSL基础
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基础的更多相关文章
- Java基础语法
java基础学习总结——基础语法1 一.标识符
- java基础学习总结——基础语法1
一.标识符
- java 基础语法 1
一.标识符 二.关键字 三.JAVA基础数据类型 3.1. java常量 3.2. java变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后 ...
- java基础—基础语法1
一.标识符
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- node-webkit 环境搭建与基础demo
首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
随机推荐
- vue项目中打包background背景路径问题
项目中图片都放在src/img文件夹,img和background-image引用都用相对路径,即../../这种形式 在打包build的设置路径assetsPublicPath: ‘./‘,然后那些 ...
- Java——类
[类]
- <知识整理>2019清北学堂提高储备D2
简单数据结构: 一.二叉搜索树 1.前置技能: n/1+n/2+……+n/n=O(n log n) (本天复杂度常涉及) 2.入门题引入: N<=100000. 这里多了一个删除的操作,因此要 ...
- hdu3714 Error Curves
题目: Error Curves Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- 笔记本连接树莓派3b(不需要屏幕)
一.网线直连 工具:笔记本,网线,树莓派 软件:putty 过程: 将系统烧录进SD卡后,在root里添加一个名字为“ssh”的空白文件(不需后缀名)来开启ssh服务,SD卡里的cmdline.txt ...
- css基础—字体那些事
css基础-字体那些事 1. 首先讲字的大小样式等 字体大小 font-size: 40px; 文字字体 font-family: "宋体",Arial; 文字样式 font-st ...
- flask中的Configuration为何这样写
flask中的Configuration flask中,我们需要用到很多配置.我们知道最简单的flask是: from flask import Flask app = Flask(__name__) ...
- jni中arm64-v8a,armeabi-v7a,armeabi文件夹的意义和用法<转>
jni中arm64-v8a,armeabi-v7a,armeabi文件夹的意义和用法 起因 之前并没有关注这块,直到:您的应用被拒绝,原因:xplay5sQ心里点击笑值点击拍照显示停止运行,查看发过来 ...
- 从数据库、页面加载速度角度思考 id设计 sku asin
(已对数据进行字符串替换,去身份识别.隐私跟踪) 12-13-14-15-16-18岁20女孩夏装初中高中学生韩版上衣服短袖T恤衫-tmall.com天猫 https://detail.tmall.c ...
- 如何查看yum安装的程序包都放在哪些地方了?
yum安装, 是先下载下来, 然后安装, 用dnf代替yum后, 配置文件跟yum类似, 也是放在 /etc/dnf/ 目录下的, 也有dnf.conf 配置文件等 dnf list后面还可以跟参数: ...