kymba 发表于 2022-7-6 15:12:55

Lisp帮助-循环浏览

大家好
 
作为谷歌和论坛搜索的第一篇帖子通常会搜索到我想要搜索的内容,但这是我无法理解的。
 
我有一些代码(之前由ASMI在这里发布)返回多段线中每个顶点的坐标。
 
现在,我想循环浏览这个列表,并检查多段线的每一段与其他两个点之间的交点
 
到目前为止,我得到了两个端点,但从这里我没有任何线索
 

(defun c:asdf (/ whoa pts ep1 ep2)
(setq whoa (mapcar 'cdr(vl-remove-if '(lambda(x)(/= 10(car x)))(entget(car(entsel))))))
(setq pts (cdr whoa))
(setq ep1 (car pts))
(setq ep2 (cadr pts))
(princ)
)

CarlB 发表于 2022-7-6 16:12:46

我建议您使用“nth”函数从列表中检索所需的点。使用“length”函数获取列表的长度。设置计数器;首次通过使用pt1和pt2;然后是pt2和pt3;直到最后一点。

kymba 发表于 2022-7-6 16:26:27

谢谢CarlB
 
你给了我一个主意,在那里用“while”和长度检查
 


(defun c:asdf (/ whoa pts ep1 ep2)
(setq pts (mapcar 'cdr(vl-remove-if '(lambda(x)(/= 10(car x)))(entget(car(entsel))))))
(while (>= (length pts) 2)
(setq ep1 (car pts))
(setq ep2 (cadr pts))
        (setq pts (cdr pts))
(princ)
)
)


 
这看起来可以吗?我以前从未打过环
 
我还意识到我的第一批代码去掉了第一个顶点。。。哎呀
页: [1]
查看完整版本: Lisp帮助-循环浏览