robot51 发表于 2006-4-9 10:37:00

删除指定块名称的LISP小程序

<P>如何用LISP编制删除所有指定块名称的小程序?</P>

自贡黄明儒 发表于 2010-10-3 21:28:00

我也一直在求,求之不得。。。

crazylsp 发表于 2010-10-4 18:05:00

本帖最后由 crazylsp 于 2011-4-21 09:46 编辑 <br /><br /><P><FONT face=Verdana>;试下</FONT></P>
<P><FONT face=Verdana>(defun c:tt()<BR></FONT></P>

poseidon17 发表于 2011-3-29 22:47:38

我想删除名字为note-1的块
按照这样的方法写的:
(setq mame (getstring t "NOTE-1"))
(setq ss (ssget "X" (list(cons 0 "insert")(cons 2 mame)) ))
(command "erase" ss "")
貌似不行

faith66 发表于 2012-3-10 16:57:25

本帖最后由 faith66 于 2012-3-10 16:59 编辑

(defun c:test(/ blk-name ss cmdecho_bak)
(setq cmdecho_bak (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq blk-name(getstring"\n请输入预删除的块名:"))
(if (= blk-name "")
    (alert "未输入块名!!")
    (progn
      (setq ss (ssget "x" (list(cons 0 "INSERT")(cons 2 blk-name))))
      (command "_.erase" ss "")
    )
)
(setvar "cmdecho" cmdecho_bak)
princ
)


楼上的朋友"INSERT"需要大写,就可以实现了

江湖远人 发表于 2012-3-11 14:13:04

多谢楼上的分享
页: [1]
查看完整版本: 删除指定块名称的LISP小程序