支持通配符替换替换lisp
<p><font face="宋体" size="2">图纸中遇到这样的文字:<br/>钢筋C30混凝土;钢筋混凝土(C30);钢筋C35砼等<br/>“钢筋*”的词组,有没有这样的支持通配符的程序,就是开头是钢筋的短语都改成“钢筋混凝土(C40)”,宽高比为0.7的的lsp程序,就是支持通配符的替换程序!</font></p><p>谢谢</p> 查找一下无痕或者狂刀或者正则!
郁闷,这个看来是有点难度的
<p>郁闷,这个看来是有点难度的</p><p>看了半天正则,呵呵,没懂</p> <a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=70729">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=70729</a>勾兑后的一个帖子
<font face="宋体" size="2">(defun c:fre ()<br/>;;; 模糊的查找替换程序,即支持前后通配符<br/>(princ "\n**在\"TEXT\"对象中模糊查找替换(包含即替换)*")<br/>;;<br/>(setq CMD_OLD (getvar "CMDECHO"))<br/>(setvar "CMDECHO" 0)<br/>;;<br/>(setq findname (getstring "\n请输入替换内容包含文字:"))<br/>(setq rename (getstring "\n请输入替换后内容:")) <br/>(setq ss (ssget "x" (list (cons 0 "*TEXT") (cons 1 (strcat "*" findname "*")) ) ))<br/><br/>(setq n 0)<br/>(while (< n (sslength ss))<br/>(setq eg (entget (ssname ss n)))<br/>(setq eg (subst (cons 1 rename)(assoc 1 eg) eg))<br/>(entmod eg)<br/>(setq n (1+ n))<br/>)<br/>(setvar "CMDECHO" CMD_OLD)<br/>)<br/><br/>如果再开始在加一个替换后的宽高比参数就完美了,不输入的话,就默认为就是个文字原来的宽高比,输入的话,各替换文字同一一个输入参数的宽高比,请大侠补充一下!</font>期待完美,请高人相助
本帖最后由 作者 于 2008-12-15 19:43:39 编辑 <br /><br /> <font face="宋体" size="2">(setq findname (getstring "\n请输入替换内容包含文字:"))<br/>(setq rename (getstring "\n请输入替换后内容:")) </font><br/><font size="2">(setq kgb (getreal "\n请输入替换后宽高比:")) ;不输入就是宽高比就是原有文字的宽高比,输入的话,就是替换后的文字宽高比!请大侠帮助一下!</font> <p>(if (/= value nil)<br/> (setq input value)<br/> (setq input 0)<br/>) </p><p>(princ "\n请输入替换后宽高比:<")<br/>(PRINC input)<br/>(PRINC ">")<br/>(setq value (getreal))<br/>(if (= value ())<br/> (setq value input)<br/>)</p>
页:
[1]