构造折线点数组
要处理的最后一个问题是如何将单个点变量—, , 和 —转换为函数所需的格式。首先,获得有关该主题的一些帮助。p1p2p3,p4vla-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) |
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-3-28 17:26
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.