jaminth 发表于 2008-6-29 13:22:00

[求助]如何完全通过VLISP删除存在的实体?

<p>求助大家,下面要求想完全通过VLISP实现....谢谢先!</p><p>1.判断在某一坐标位置上是否存在一个文字对象(比如:"LIBRARY"),若存在,在执行第2步...</p><p>2.删除文字对象"LIBRARY"</p><p>3.在该坐标位置上建立一个新的实体,比如"圆"</p>

ZZXXQQ 发表于 2008-6-29 21:31:00

<p>1、为何要通过坐标判断?</p><p>2、坐标是如何得到的?</p><p>3、不用VLISP用LISP行吗?</p>

jaminth 发表于 2008-6-29 22:57:00

<p>最近写了一个批处理程序,其中关键部分采用了“龙龙仔”大哥的批量修改文字代码。。。我试过用LISP总不成功。</p><p>程序功能是想在某个位置批量添加文字。。。我遇到这样一种情况:就是如果我想插入文字的这个位置已经有文字了,我首先要把存在的文字删除,然后再做插入文字操作。坐标位置可以事先设定好,比如在0,0,0点位置。</p><p>拜托ZZXXQQ了!</p>

ZZXXQQ 发表于 2008-6-30 08:21:00



;定点删字画圈 明经 ZZXXQQ 2008.6.30
(defun deltext (pt0 mtxt r)
(setvar "CMDECHO" 0)
(setq oldos (getvar "OSMODE"))
(setvar "OSMODE" 0)
(if (and (= (type pt0) 'LIST) (= (type mtxt) 'STR))
(if (setq ss (ssget pt0 '((0 . "TEXT")))) (progn
   (setq ent (entget(ssname ss 0)))
   (if (= (cdr(assoc 1 ent)) mtxt) (progn
    (setq pt (cdr(assoc 10 ent)))
(command ".erase" (ssname ss 0) "" "CIRCLE" pt r)
   ))
))
)
(setvar "OSMODE" oldos)
(setvar "CMDECHO" 1)
(princ)
)

页: [1]
查看完整版本: [求助]如何完全通过VLISP删除存在的实体?