明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3009|回复: 6

支持通配符替换替换lisp

[复制链接]
发表于 2008-12-15 08:44:00 | 显示全部楼层 |阅读模式

图纸中遇到这样的文字:
钢筋C30混凝土;钢筋混凝土(C30);钢筋C35砼等
“钢筋*”的词组,有没有这样的支持通配符的程序,就是开头是钢筋的短语都改成“钢筋混凝土(C40)”,宽高比为0.7的的lsp程序,就是支持通配符的替换程序!

谢谢

发表于 2008-12-15 11:37:00 | 显示全部楼层
查找一下无痕或者狂刀或者正则!
 楼主| 发表于 2008-12-15 12:39:00 | 显示全部楼层

郁闷,这个看来是有点难度的

郁闷,这个看来是有点难度的

看了半天正则,呵呵,没懂

发表于 2008-12-15 12:46:00 | 显示全部楼层
 楼主| 发表于 2008-12-15 17:47:00 | 显示全部楼层

勾兑后的一个帖子

(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)
)

如果再开始在加一个替换后的宽高比参数就完美了,不输入的话,就默认为就是个文字原来的宽高比,输入的话,各替换文字同一一个输入参数的宽高比,请大侠补充一下!
 楼主| 发表于 2008-12-15 19:43:00 | 显示全部楼层

期待完美,请高人相助

本帖最后由 作者 于 2008-12-15 19:43:39 编辑

(setq findname (getstring "\n请输入替换内容包含文字:"))
(setq rename (getstring "\n请输入替换后内容:"))

(setq kgb (getreal "\n请输入替换后宽高比:"))  ;不输入就是宽高比就是原有文字的宽高比,输入的话,就是替换后的文字宽高比!请大侠帮助一下!
发表于 2008-12-20 18:55:00 | 显示全部楼层

(if (/= value nil)
  (setq input value)
  (setq input 0)
)    

(princ "\n请输入替换后宽高比:<")
(PRINC input)
(PRINC ">")
(setq value (getreal))
(if (= value ())
  (setq value input)
)

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-7-29 22:10 , Processed in 0.182704 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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