CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2020 开发者帮助

从点列表构造变体

2024-5-18 18:19| 发布者: admin| 查看: 98| 评论: 0|原作者: admin|来自: AutoCAD

从点列表构造变体

到目前为止,polypoints 变量中的数据采用列表格式,适用于许多 AutoLISP 调用。但是,数据将作为输入参数提供给需要 ActiveX 变体数组的 ActiveX 调用。您可以使用另一个实用程序函数进行从列表到变体的所需转换:

(defun gp:list->variantArray (ptsList / arraySpace sArray)
  ; allocate space for an array of 2d points stored as doubles
  (setq arraySpace (vlax-make-safearray
              vlax-vbdouble ; element type
              (cons 0
                    (- (length ptsList) 1)
                    ) ; array dimension
              )
  )

  (setq sArray (vlax-safearray-fill arraySpace ptsList))

  ; return array variant
  (vlax-make-variant sArray)
)

以下操作发生在:gp:list->variantArray

  • 调用该函数来分配 doubles () 数组。该函数还要求您指定数组的索引下限和上限。在 中,对的调用指定起始索引 0,并将上限设置为比传递给它的元素数少 1 ()。vlax-make-safearrayvlax-vbdoublevlax-make-safearraygp:list->variantArrayvlax-make-safearrayptsList
  • 调用该函数以使用点列表中的元素填充数组。vlax-safearray-fill
  • 调用 以将 safearray 转换为变体。作为最后一个函数调用,返回值将传递给调用函数。vlax-make-variantgp:list->variantArray

下面是一个函数调用的示例,该调用调用用于将列表转换为 double 的变体数组:gp:list->variantArray

; data conversion from list to variant
(setq VLADataPts (gp:list->variantArray polypoints))

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2025-1-19 06:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部