- 积分
- 3521
- 明经币
- 个
- 注册时间
- 2010-9-4
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2021-6-29 16:00:13
|
显示全部楼层
;纯lisp获取所有顶点
(setq ed (entget (setq en (car (entsel))))) ;获取关联表
(setq lst_tmp '()) ;初始化一个空表
(while (setq ed (member (assoc 10 ed ) ed)) ;找到下一个顶点,并把其后所有内容(包括这个顶点)重新赋值给ed,找不到时返回nil,结束循环
(setq lst_tmp (cons (car ed ) lst_tmp)) ;把关联表中第一个元素记录下来
(setq ed (cdr ed)) ;从ed中去除第一个元素,避免死循环
)
(print (reverse lst_tmp) );倒置列表并打印
(princ)
;纯lisp获取起点终点
(setq ed (entget (setq en (car (entsel))))) ;获取关联表
(setq start (assoc 10 ed)) ;获取第一个顶点
(setq end (assoc 10 (reverse ed)));倒置后获取第一个顶点,即原始的最后一个顶点
(print (list start end) );倒置列表并打印
(princ)
; 纯lisp获取到的点包含组码10,可用cdr去除
|
|