lisp求助,有一个lisp命令求大神给改成顺序复制,顺序粘贴文字(属性快的文字,标注的文字,普通的文字 150

lisp的程序实现依次复制几个(N多个)数,再按照顺序粘贴出来,比如现在有A组10,11,12,13四个数B组14,15,16,17四个数字,运行这个程序后依次点选A组的... lisp的程序实现依次复制几个(N多个)数,再按照顺序粘贴出来,比如现在有A组10,11,12,13四个数B组14,15,16,17四个数字,运行这个程序后依次点选A组的,10,11,12,13,后确定,然后点B组的数字,使B组14,15,16,17四个数字变成10,11,12,13
。其中这些数字有些是标注里的数字,有些是属性快的数字。(请注意一定要可以复制粘贴属性快的文字!!!)您可以修改这个

;替换文字和属性指定内容
(vl-load-com)
(defun c:trt()
(SETVAR "CMDECHO" 0)
(setq SS (ssget (list (cons 0 "INSERT,TEXT"))));;;附带处理单行文本
(setq S1 (ssget "P" '((0 . "INSERT") (66 . 1))));;;过滤出属性块
(vl-cmdf "SELECT" SS "")
(SETQ S88 (SSGET "P" '((0 . "TEXT"))));;;过滤出文本
(setq i -1)
(setq s2 (ssname s1 0))
(setq s20 (getstring "\n请输入要查找的文本内容:"))
(setq s21 (getstring "\n请输入要替换的文本内容:"))
(if s88 (progn
(repeat (sslength s88)
(setq s83 (entget (ssname s88 (setq i (1+ i)))))
(setq s84 (cdr (assoc 1 s83)))
(if (vl-string-search s20 s84)
(entmod (subst (cons 1 (vl-string-subst s21 s20 s84)) (assoc 1 s83) s83))
)
)
))
(if s1 (progn
(setq i -1)
(repeat (sslength S1)
(setq ENT (entget (ssname S1 (setq I (1+ I))))
ENT1 ENT)
(while (/= (cdr(assoc 0 (setq ENT1 (entget(entnext(cdr(assoc -1 ENT1))))))) "SEQEND")
(if (= (cdr(assoc 0 ENT1)) "ATTRIB") (progn
(setq s15 (cdr(assoc 1 ent1)))
(if (vl-string-search s20 s15) (progn
(entmod (subst (cons 1 (vl-string-subst s21 s20 s15)) (assoc 1 ent1) ent1))
(entmod ent)
))
))
)
)
))
(terpri)
(SETVAR "CMDECHO" 1)
(princ)
)
展开
 我来答
LISP2DCL
2013-09-23 · TA获得超过241个赞
知道答主
回答量:330
采纳率:0%
帮助的人:120万
展开全部
哈哈,原来的这个是你啊
更多追问追答
追问
是啊,帮我改改吧,我不会改啊
而且急用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式