Bill Tillman 发表于 2022-7-5 16:34:59

构建点列表

我已经有一段时间没有尝试过了,但我需要做的是建立一个点列表,可以用来构建多段线。
但是我并没有得到我想要的结果,也就是
这就引出了一个问题,是最好组装一个列表列表,还是只组装一个每个点的car/cadr列表,当我想使用entmake来使用点列表构建多段线时。

Grrr 发表于 2022-7-5 16:51:17

以下是构建列表的两种常见方法:

(defun test ( / p pL ) ; #1
(while (setq p (getpoint "\nSpecify point: "))
   (setq pL (cons p pL)) ; items are collected in reverse order
)
(reverse pL)
)

(defun test ( / p pL ) ; #2
(while (setq p (getpoint "\nSpecify point: "))
   (setq pL (append (list p) pL)) ; items are collected in order
)
)

对于多段线加工,请检查此螺纹。

Stefan BMR 发表于 2022-7-5 17:18:19

(append list1 list2)正在将list2的每个元素添加到list1的末尾
观察每个样品:
如果想要点列表,必须向append函数提供点列表,每个点都是数字列表(X,Y坐标)。在您的示例中,所有列表都是数字列表。
 
这两个样品相当:
(setq pt1 '((0.0 0.0))
   pt1 (append pt1 (list (list (caar pt1) (+ (cadar pt1) 12))))
   pt1 (append pt1 (list (list (+ (caar pt1) 12) (+ (cadar pt1) 12))))
)

(setq pt1 '((0.0 0.0))
   pt1 (cons (mapcar '+ (car pt1) '(0.0 12.0)) pt1)
   pt1 (cons (mapcar '+ (car pt1) '(12.0 0.0)) pt1)
   pt1 (reverse pt1)
)

BIGAL 发表于 2022-7-5 17:34:21

下一步,如果你没有,一定要这样做
 
4

hanhphuc 发表于 2022-7-5 17:46:28

我更喜欢这个
5
更易于操作
重复
虽然
地图车
第n个
foreach公司
vl排序
或转置等。。(如果缺失,请命名)
 
列表进程
简而言之,LeeSP
页: [1]
查看完整版本: 构建点列表