数组用于从 ActiveX 函数返回多个值,并将多个值传递给 ActiveX 函数。 注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。
以下函数用于获取分配给数组中元素的值:
数组的数据类型使用 AutoLISP 函数时,您需要知道正在处理的数据类型。每个数组都使用特定类型的数据进行定义。该函数用于标识创建数组以保存的数据类型;它需要一个参数:包含数组的变量。此函数返回一个整数值,该值表示创建数组以保存的数据类型。vlax-safearray-type 例如,以下代码创建一个包含三个双精度的一维数组: (setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) (vlax-safearray-fill point (list 100 100 0)) #<safearray...> 例如,以下代码返回 5,因为数组被定义为保存双精度: (vlax-safearray-type point) 5 数组中的维度访问数组的值需要知道创建数组时使用的维度和元素的数量。该函数返回一个整数,该整数表示创建数组时使用的维度数。vlax-safearray-get-dim 下面的代码创建一个包含三个双精度的单维数组: (setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) (vlax-safearray-get-dim point) 1 下面的示例创建一个字符串的二维数组: (setq mat2 (vlax-make-safearray vlax-vbString '(0 . 1) '(1 . 3))) (vlax-safearray-get-dim mat2) 2 数组维度中的元素知道数组中的维数(使用 )后,可以获取数组的下限 () 和上限 ()。数组的边界可帮助您识别维度中的元素数以及可以找到数组元素的索引范围。vlax-safearray-get-dim functionvlax-safearray-get-l-boundvlax-safearray-get-u-bound 数组维度中的元素数可以通过减去 and 函数返回的值来计算。vlax-safearray-get-u-boundvlax-safearray-get-l-bound 例如,以下内容返回一维数组中的元素数: (setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) (setq arrayRange (1+ (- (vlax-safearray-get-u-bound point 1) (vlax-safearray-get-l-bound point 1)))) 3 下面返回二维数组的第二个维度中的元素数: (setq mat1 (vlax-make-safearray vlax-vbString '(0 . 1) '(2 . 5))) (setq arrayRange (1+ (- (vlax-safearray-get-u-bound mat1 2) (vlax-safearray-get-l-bound mat1 2)))) 4 获取数组中元素的值知道数组中维度和元素的数量后,可以使用函数获取元素的值。vlax-safearray-get-element 例如,以下代码填充三个双精度的单维数组: (setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) (vlax-safearray-fill point (list 100 50 0)) #<safearray...> 下面返回数组中第二个元素的值: (vlax-safearray-get-element point 1) 50.0 下面的代码填充字符串的二维数组,并获取第一个维度的第二个元素: (setq mat2 (vlax-make-safearray vlax-vbString '(0 . 1) '(1 . 3))) (vlax-safearray-fill mat2 '(("a" "b" "c") ("d" "e" "f"))) (vlax-safearray-get-element mat2 0 2) "b" 相关概念 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 14:32
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.