通过实例学习Virtools脚本语言VSL - 检索和修改数组的数据

简介: 该实例中,我们会用VSL来检索和修改数组中的数据。 概述 在创建数组时,建议以下参数类型: Integer Float String Object Parameter 前面四种类型 - "Integer", "Float", "String" 及 "Object" -占用的系统内存比"Parameter"类型将近小十倍。

 该实例中,我们会用VSL来检索和修改数组中的数据。

概述

在创建数组时,建议以下参数类型:

  1. Integer
  2. Float
  3. String
  4. Object
  5. Parameter

前面四种类型 - "Integer", "Float", "String" 及 "Object" -占用的系统内存比"Parameter"类型将近小十倍。仅仅在必需时使用"Parameter" 类型的数组,比如当在Schematic视图和数组单元格间快捷方式时(自动更新数组而不需使用BB)使用。注意:这些这种快捷方式仅仅在从 Schematic视图到数组时会发生,其它方式都不行;你必须从Schematic中复制数据并将快捷方式复制到数组单元格。

可用的VSL方法

检索单元格的值

下面是用于从数组中检索数据的方法,及附带的所需参数:


GetElement

这个方法返回作品中该元素的索引值。然后你需要通过bc的"Get Object"方法从索引值来识别该元素。

 



GetElementObject

这是从由CKObject类实体(二维实体 - 2D entities,三维实体 - 3D entities, 动画 - animations,等等)组成的数组中检索元素的最简单的方法,它基于行与列索引的详细指定。既然检索值是"object"类型,我们就经常要通 过"Cast"方法来转换类型了。



GetElementStringValue

利用这个方法从一个包含字符串类型元素的数组检索字符值。通过使用一个null参数,我们检索所读取字符串的总大小。注意:该大小包含了最后的字符 串"0" - 表示字符串的结束。然后我们通过指定的参数重设字符串的大小。然而在指定大小的时候,"Resize"方法不需要考虑最后的字符串"0",所以我们减掉了 1.

 

警告:要避免下面的脚本,"str"类型的使用尽管编译时没有问题,但会产生错误。

 



GetElementValue

这里,我们用"p_Value"变量存储从数组检索的值。这个方法尤其适用于那些包含了非衍生自CKObject类类型(integer, float, matrix, vector等)值的数组。

 

修改单元格的值

如下,我们把用于修改数组中值的VSL方法集合在一起,提示框上可以看到所必要的参数:

 

注意: "SetElementValueFromParameter" 方法还没在这里出现,将会放在以后的文档中。


SetElementObject

这是向由CKObject类实体(二维实体 - 2D entities、三维实体 - 3D entities、 动画 - animations、等等)组成的数组中放置元素的最简单的方法,它基于行与列索引的详细指定。

 


SetElementStringValue

这个方法用于包含字符串的数组,且是基于详细指定行与列索引来用的。



SetElementValue

这个方法用来存储那些包含非衍生自CKObject类的类型(如integer、float、matrix、vector等)的数组的值。


现在去看看Virtools Minisite 中提供的其它更多VSL技术样例吧,在Dev文档目录 /CMOS/TechnicalSamples/VSL/Samples/. 下。

目录
相关文章
|
6月前
|
并行计算 监控 Serverless
函数计算操作报错合集之出现了设备不匹配的问题,该如何解决
在使用函数计算服务(如阿里云函数计算)时,用户可能会遇到多种错误场景。以下是一些常见的操作报错及其可能的原因和解决方法,包括但不限于:1. 函数部署失败、2. 函数执行超时、3. 资源不足错误、4. 权限与访问错误、5. 依赖问题、6. 网络配置错误、7. 触发器配置错误、8. 日志与监控问题。
|
7月前
|
存储 安全 Java
Java集合类是Java编程语言中用于存储和操作一组对象的工具
【6月更文挑战第19天】Java集合类,如`List`、`Set`、`Map`在`java.util`包中,提供高级数据结构。常用实现包括`ArrayList`(快速随机访问)、`LinkedList`(高效插入删除)、`HashSet`(无序不重复)、`TreeSet`(排序)、`HashMap`(键值对)和`TreeMap`(排序映射)。集合动态调整大小,支持对象引用,部分保证顺序。选择合适集合优化性能和数据组织。
42 1
|
8月前
|
算法 项目管理 数据中心
【数据结构】拓扑网络(AOE算法举例+源码)
【数据结构】拓扑网络(AOE算法举例+源码)
【数据结构】拓扑网络(AOE算法举例+源码)
|
8月前
|
数据处理 Python
Python中每个字段增加多条数据的高效方法
Python中每个字段增加多条数据的高效方法
64 1
|
IDE Java 开发工具
Python语言应该加上块标识(开始、结束)的特性
Python语言应该加上块标识(开始、结束)的特性
114 0
Python编程语言学习:批量对array数组数据按照条件限制进行替换、修改
Python编程语言学习:批量对array数组数据按照条件限制进行替换、修改
|
Python
函数第二部分:动态参数是自由主义的体现-Python基础前传(11)
编程语言就是大家一起定个规则大家一起玩。规则是人定的,但也是定给人的。我们之前学习函数的参数,都遵循着一个原则就是:形式参数有几个,实际参数就只能传几个;我们从开发 python 这门编程语言的角度思考,我们要是真的就是规定形式参数有几个,实际参数就有几个的原则,是不是不能满足实际工作需要,在实际工作中谁又能保证每一次都预先设定好参数的个数呢?这个时候,作为编程语言的设计人员,就会引进动态参数,我们想想如果不引入动态参数,谁还能使用这个编程语言呢。
828 0
|
JavaScript 前端开发 测试技术
[译]借助函数完成可组合的数据类型(软件编写)(第十部分)
本文讲的是[译]借助函数完成可组合的数据类型(软件编写)(第十部分),在 JavaScript 中,最简单的方式完成组合就是函数组合,并且一个函数只是一个你能够为之添加方法的对象。换言之,你可以这么做:
1031 0