CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

构造折线点数组

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

构造折线点数组

要处理的最后一个问题是如何将单个点变量—, , 和 —转换为函数所需的格式。首先,获得有关该主题的一些帮助。p1p2p3,p4vla-addLightweightpolyline

获取有关函数的信息

  1. 单击 Visual LISP 工具栏上的 “Help”(帮助)按钮。
  2. 在“输入项目名称”对话框中输入,然后单击“确定”。 (帮助系统不区分大小写,因此不必担心如何大写函数名称。vla-addLightweightpolyline

帮助指出,要求您将折线顶点指定为变体形式的双精度数组。下面是帮助描述此参数的方式:AddLightWeightPolyline

The array of 2D WCS coordinates specifying the vertices of the polyline. At least two points (four elements) are required for constructing a lightweight polyline. The array size must be a multiple of 2.

变体是一种 ActiveX 构造,用作各种类型数据的容器。字符串、整数和数组都可以用变体表示。变体存储数据以及标识数据的信息。

到目前为止,您有四个点,每个点的格式为 (x、y、z)。挑战在于将这四点转换为以下形式的列表:

(x1 y1 x2 y2 x3 y3 x4 y4)

该函数接受多个列表并将它们连接起来。若要以 ActiveX 函数的正确格式创建四个点的列表,可以使用以下表达式:append

(setq polypoints (append (3dPoint->2dPoint p1)
                              (3dPoint->2dPoint p2)
                              (3dPoint->2dPoint p3)
                              (3dPoint->2dPoint p4)))

将函数编写四次有点麻烦。您可以使用 and 函数进一步减少代码。选中后,对一个或多个列表中的单个元素执行函数,并将参数列表传递给指定的函数。生成的代码如下所示:3dPoint->2dPointmapcarapplymapcarapply

(setq polypoints (apply 'append (mapcar '3dPoint->2dPoint 
(list p1 p2 p3 p4))))

在调用 之前,点列表采用以下形式:mapcar

((x1 y1 z1) (x2 y2 z2) (x3 y3 z3) (x4 y4 z4))

获得以下形式的积分列表后:mapcar

((x1 y1) (x2 y2) (x3 y3) (x4 y4))

最后,在返回的列表中应用函数后,您最终会得到以下内容:appendmapcar

(x1 y1 x2 y2 x3 y3 x4 y4)

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-3-28 17:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部