找到最少entmake关键元素 作者:不死猫
(defun c:tt( / del_ent ele ent i must new_ent)(setq ent (entget (car (entsel "\n请选择一个图元"))));得到组码
(setq i 0 must '());初始化
(repeat (length ent)
(setq del_ent (vl-remove (nth i ent) ent));测试删除
(setq new_ent (entmake del_ent));测试生成
(if (= 10 (car (nth i ent)))
(progn
(setq must (append must (list (nth i ent))))
(if new_ent
(entdel (entlast))
)
)
(if new_ent;如果生成新图元则删除否则认为该元素为关键元素
(entdel (entlast))
(setq must (append must (list (nth i ent))))
)
)
(setq i (1+ i))
);end repeat
(cond
((= "LWPOLYLINE" (cdr (assoc 0 ent)))
(setq must (append must (list (assoc 90 ent))))
)
((= "SPLINE" (cdr (assoc 0 ent)))
(setq must (append must (list (assoc 74 ent))))
(foreach ele ent
(if (= 11 (car ele))
(setq must (append must (list ele)))
)
)
)
((= "DIMENSION" (cdr (assoc 0 ent)))
(foreach ele ent
(if (or (= 11 (car ele))
(= 21 (car ele))
(= 31 (car ele))
(= 70 (car ele))
(= 71 (car ele))
(= 1 (car ele))
(= 3 (car ele))
)
(setq must (append must (list ele)))
)
)
)
)
(print must)
(princ)
)这个程序真心好用..不敢独享...
分享给需要的同学,,,,好学的同学
感谢不死猫
哦哦,是猫老师视频里的那个程序吧,但感觉还是不完全,很多图元还是需要自己去测试! 重慶崽兒 发表于 2014-4-13 00:40 static/image/common/back.gif
哦哦,是猫老师视频里的那个程序吧,但感觉还是不完全,很多图元还是需要自己去测试!
正是那个程序 这 对于属性块的,这程序没什么用 这个还不如自己穷举一个一个弄呢 猫老师的教程我有看过 可能我刚看一点 为什么我用点击一根线 或块没有反映
我尝试的解读了一下
(setq del_ent (vl-remove (nth i ent) ent));测试删除
(setq new_ent (entmake del_ent));测试生成
其实到这里 就可以得到 要创建的所有了 对吗? 张大锤 发表于 2018-6-26 11:07
为什么我用点击一根线 或块没有反映
我尝试的解读了一下
我现在也不会玩LISP了...
自己需要的常用LISP写完了...也就丢光了
对不起大佬的载歌载培 ysq101 发表于 2018-6-28 00:05
我现在也不会玩LISP了...
自己需要的常用LISP写完了...也就丢光了
没事已经解决了
(if new_ent;如果生成新图元则删除否则认为该元素为关键元素
这里; 有些问题 我前面已经加了空格 但是这句话 被当做;处理了 导致少句if 正套垮掉
后来我删掉就好了
页:
[1]