尘缘一生 发表于 2025-1-7 09:21:39

去除实体102 360组码

这个问题,做个函数,发现标注会变


[*];;选择集去除102组码----(一级)----
[*];(ss-re102 (ssget))
[*](defun ss-re102 (ss / nam n ent)
[*](repeat (setq n (sslength ss))
[*]    (setq nam (ssname ss (setq n (1- n))))
[*]    (if (or (dxf1 nam 102) (dxf1 nam 360))
[*]      (progn
[*]      (setq ent (sl-codestrip (entget nam) (list 102 360)))
[*]      (if (not (vl-catch-all-error-p (vl-catch-all-apply 'entmake (list ent)))) (entdel nam))
[*]      )
[*]    )
[*])
[*])
[*];将entl表 剔除striplst表中的组码值---(一级)----
[*];(sl-codestrip (entget (car(entsel))) (list 330 -1 5 8 70 100 10))
[*](defun sl-codestrip (entl striplst)
[*](vl-remove-if '(lambda (a) (vl-position (car a) striplst)) entl)
[*])


咱们能作个完美的吗

e2002 发表于 2025-1-7 10:40:41

(vl-remove-if (function (lambda (x) (member (car x) liCodeForRemove))) el)

尘缘一生 发表于 2025-1-7 17:41:44

e2002 发表于 2025-1-7 10:40
(vl-remove-if (function (lambda (x) (member (car x) liCodeForRemove))) el)

嗯,是的。
页: [1]
查看完整版本: 去除实体102 360组码