关于填充安全数组中的元素 (AutoLISP/ActiveX)
使用 创建数组后,可以使用 或 用数据填充数组。vlax-make-safearrayvlax-safearray-fillvlax-safearray-put-element 注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。
使用 vlax-safearray-fill 填充数组该函数需要两个参数:包含要填充的数组的变量和要分配给数组元素的值列表。您必须指定与数组中元素一样多的值。vlax-safearray-fill 例如,以下代码填充三个双精度的单维数组: (setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) (vlax-safearray-fill point (list 100 100 0)) #<safearray...> 数组的内容可以以列表形式显示,功能如下:vlax-safearray->list (vlax-safearray->list point) (100.0 100.0 0.0) 如果未为数组中的每个元素指定值,则会导致错误。vlax-safearray-fill 使用多维数组时,必须将列表列表传递给 ,每个列表对应一个维度。例如,以下语句将值赋给一个二维字符串数组,该数组在每个维度中包含三个元素:vlax-safearray-fill (setq mat2 (vlax-make-safearray vlax-vbString '(0 . 1) '(1 . 3))) (vlax-safearray-fill mat2 '(("a" "b" "c") ("d" "e" "f"))) #<safearray...> 用于确认 mat2 的内容:vlax-safearray->list (vlax-safearray->list mat2) (("a" "b" "c") ("d" "e" "f")) 使用 vlax-safearray-put-element 填充数组该函数可用于将值分配给安全数组的一个或多个元素。此函数所需的参数数取决于数组中的维度数。以下规则适用于指定参数:vlax-safearray-put-elementvlax-safearray-put-element
例如,以下代码填充三个双精度的单维数组: (setq point (vlax-make-safearray vlax-vbDouble '(0 . 2))) #<safearray...> (vlax-safearray-put-element point 0 100) (vlax-safearray-put-element point 1 100) (vlax-safearray-put-element point 2 0) 如果需要更改数组中元素的值,可以再次调用。下面将数组的第二个元素更改为值 50:vlax-safearray-put-element (vlax-safearray-put-element point 1 50) 下面的示例创建并填充字符串的二维数组。数组的第一个维度从索引 0 开始,而第二个维度从索引 1 开始: (setq mat2 (vlax-make-safearray vlax-vbString '(0 . 1) '(1 . 3))) #<safearray...> (vlax-safearray-put-element mat2 0 1 "a") (vlax-safearray-put-element mat2 0 2 "b") (vlax-safearray-put-element mat2 0 3 "c") (vlax-safearray-put-element mat2 1 1 "d") (vlax-safearray-put-element mat2 1 2 "e") (vlax-safearray-put-element mat2 1 3 "f") 您可以使用以下方法确认数组的内容:vlax-safearray->list (vlax-safearray->list mat2) (("a" "b" "c") ("d" "e" "f")) 相关概念 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2024-12-15 22:08
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.