找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1102|回复: 7

[求助] [求助]:支持通配符替换替换lisp

[复制链接]
发表于 2008-12-14 22:13:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
图纸中遇到这样的文字:
钢筋C30混凝土;钢筋混凝土(C30);钢筋C35砼等
“钢筋*”的词组,有没有这样的支持通配符的程序,就是开头是钢筋的短语都改成“钢筋混凝土(C40)”的lsp程序,就是支持通配符的替换程序!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2008-12-15 09:49:35 | 显示全部楼层
用CAD命令:find
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-15 10:50:19 | 显示全部楼层
find命令是支持通配符的,可以有很多文档,想都批量执行一个lsp,呵呵,这样就可以批量修改了
呵呵
不过还是很谢谢carrot1983的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-15 11:51:48 | 显示全部楼层
那就用
(ssget (list (cons 0 "TEXT") (cons 1 string)))
string就是支持通配符,具体通配符的用法,看wcmatch函数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-15 12:45:09 | 显示全部楼层
(ssget "X"(list (cons 0 "TEXT") (cons 1 "钢筋*")))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2008-12-15 13:58:20 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-15 15:38:09 | 显示全部楼层

学习上面的后,勾兑的一个程序,谢谢各位!

(defun c:fre ()
;;;  模糊的查找替换程序,即支持前后通配符
(princ "\n**在\"TEXT\"对象中模糊查找替换(包含即替换)*")
    ;;
    (setq CMD_OLD (getvar "CMDECHO"))
    (setvar "CMDECHO" 0)
    ;;
    (setq findname (getstring "\n请输入替换内容包含文字:"))
    (setq rename   (getstring "\n请输入替换后内容:"))
    (setq ss (ssget "x"  (list (cons 0 "*TEXT")  (cons 1 (strcat "*" findname "*")) ) ))
   
(setq n 0)
(while (< n (sslength ss))
(setq eg (entget (ssname ss n)))
(setq eg (subst (cons 1 rename)(assoc 1 eg) eg))
(entmod eg)
(setq n (1+ n))
)
  (setvar "CMDECHO" CMD_OLD)
)

如果再开始在加一个替换后的宽高比参数就完美了,不输入的话,就默认为就是个文字原来的宽高比,输入的话,各替换文字同一一个输入参数的宽高比,请大侠补充一下!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-12-15 20:18:18 | 显示全部楼层
占位置 好好学习
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-16 11:43 , Processed in 0.350708 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表