逐月飞鸿 发表于 2008-12-15 08:44:00

支持通配符替换替换lisp

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

cnks 发表于 2008-12-15 11:37:00

查找一下无痕或者狂刀或者正则!

逐月飞鸿 发表于 2008-12-15 12:39:00

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

<p>郁闷,这个看来是有点难度的</p><p>看了半天正则,呵呵,没懂</p>

mccad 发表于 2008-12-15 12:46:00

<a href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=70729">http://bbs.mjtd.com/forum.php?mod=viewthread&tid=70729</a>

逐月飞鸿 发表于 2008-12-15 17:47:00

勾兑后的一个帖子

<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 (&lt; 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:00

期待完美,请高人相助

本帖最后由 作者 于 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&nbsp;kgb (getreal "\n请输入替换后宽高比:"))&nbsp; ;不输入就是宽高比就是原有文字的宽高比,输入的话,就是替换后的文字宽高比!请大侠帮助一下!</font>

ding9736 发表于 2008-12-20 18:55:00

<p>(if (/= value nil)<br/>&nbsp; (setq input value)<br/>&nbsp; (setq input 0)<br/>)&nbsp;&nbsp;&nbsp;&nbsp;</p><p>(princ "\n请输入替换后宽高比:&lt;")<br/>(PRINC input)<br/>(PRINC "&gt;")<br/>(setq value (getreal))<br/>(if (= value ())<br/>&nbsp; (setq value input)<br/>)</p>
页: [1]
查看完整版本: 支持通配符替换替换lisp