把三维对象的Z轴放在0的相关代码!
如题:(if (setq ss (ssget '((0 . "3DFACE"))))
(foreach en (yq_ss2lst ss)
(setq ent (entget en))
(setq en1 (vl-remove-if-not '(lambda (x) (member (car x) '(10 11 12 13))) ent))
(setq en2 (vl-remove-if '(lambda (x) (member (car x) '(10 11 12 13))) ent))
(setq en1 (mapcar '(lambda (x) (subst 0 (last x) x)) en1))
(setq ent (append en2 en1))
(entmod ent)
)
)
这个运行起来比较卡.请问下还有更简化或是运行起来更快的方法吗?请指点!
本帖最后由 自贡黄明儒 于 2025-12-11 14:38 编辑
从en1 到ent,本来只要一句,你写了4句。会不会是这个原因?
(setq ent (mapcar (function (lambda (x) (if (member (car x) '(10 11 12 13)) (list (car x)(cadr x) (caddr x)) x))) ent))
谢谢大神!学习了! 本帖最后由 qifeifei 于 2025-12-11 16:08 编辑
(if (setq ss (ssget '((0 . "3DFACE"))))
(foreach en (yq_ss2lst ss)
(entmod
(mapcar '(lambda (x)
(if (member (car x) '(10 11 12 13))
(list (car x) (cadr x) (caddr x) 0)
x))
(entget en)))))试试看
页:
[1]