请帮忙修正一下
(defun c:scbz ()(setq ss (ssget "X" ' ((0. "DIMENSION") (2. "DIMDIAMETER"))))
(command "erase" SS "")
(princ)
)
想法是识别所有标注集,删除标注集中的直径和半径标注
[*](defun c:tt (/ b count ent ent-data ss)
[*](defun dcb (L)
[*] (cond
[*] ((null L) nil)
[*] ((atom L)(list L))
[*] ((atom (car L))(cons (car L) (dcb (cdr L))))
[*] ((append (dcb (car L))(dcb (cdr L))))
[*] )
[*])
[*](setq ss (ssget "X" '((0 . "DIMENSION")))) ; 选择所有标注
[*](setq b nil)
[*](if ss
[*] (progn
[*] (setq count (sslength ss))
[*] (repeat count
[*] (setq ent (ssname ss (setq count (1- count))))
[*] (setq ent-data (entget ent))
[*] (setq b (dcb ent-data))
[*] (foreach str b
[*] (if
[*] (or
[*] (= str "AcDbRadialDimension")
[*] (= str "AcDbDiametricDimension")
[*] )
[*] (entdel ent)
[*] )
[*] )
[*] )
[*] )
[*])
[*](princ)
[*])
这方法感觉有点笨,希望有更好的方法。
统一网名 发表于 2024-9-12 16:31
[*](defun c:tt (/ b count ent ent-data ss)
[*](defun dcb (L)
[*] (cond
不行提示参数太少 本帖最后由 统一网名 于 2024-9-12 17:11 编辑
惜惜2 发表于 2024-9-12 16:55
不行提示参数太少
又试了一下,没有问题,我的是 cad2020.或者把你的图发上来我试一下。
统一网名 发表于 2024-9-12 17:09
又试了一下,没有问题,我的是 cad2020.或者把你的图发上来我试一下。
可以了谢谢
页:
[1]