要处理的最后一个问题是如何将单个点变量—,,and—转换为函数所需的格式。首先,获得有关该主题的一些帮助。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))) 写四遍函数有点麻烦。您可以使用 theandfunctions 进一步减少代码。选中此选项后,对一个或多个列表中的单个元素执行函数,并将参数列表传递给指定的函数。生成的代码如下所示: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-1-8 19:15
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.