dengken204 发表于 2008-7-8 18:02:00

[求助]希望高手对FIND命令做个扩展?

<p>希望高手对FIND命令做个扩展</p><p>在使用FIND命令的时候,需要人为用鼠标去确定一个选择范围.</p><p>但是在画梁配筋图的时候,为了查梁编号是否重复</p><p>使用FIND后,每次要在大图上大大的框选择一下</p><p>图纸很大的时候,就很费劲和费时间。</p><p>能否使FIND达到这样一个功能,使得:</p><p>1.不用选择,自动默认选择范围为全图的内容?</p><p>2.图形自动缩放到符合选择要求的文字项上,按回车即刻切换到下一个符合选择要求的文字</p>

xshrimp 发表于 2008-7-8 21:28:00

<p>1.不用选择,自动默认选择范围为全图的内容?</p><p>find命令本来就可以选择全图啊.不用选择.</p>

dengken204 发表于 2008-7-9 19:29:00

<p>find命令选择全图,不用选择的情况下,过滤选择到的文字只在find命令对话框中有提示.在图形中确定不了位置啊</p>

sailorcwx 发表于 2008-7-10 01:32:00

<p>;find扩展 by weltion chen<br/>;全选输入all<br/>;*匹配模糊查找<br/>;查找字符a,输入a<br/>;查找字符a开头的字符串,输入a*<br/>;查找字符a结尾的字符串,输入*a<br/>;查找带字符a的字符串,输入*a*<br/>(defun c:finde( / ACADAPP ACADDOC FINDSTR LEFTDOWNPOINT NEWSTR RIGHTUPPOINT SELECTIONSET)</p><p>&nbsp; ;加载Vlisp函数<br/>&nbsp; (vl-load-com)</p><p>&nbsp; (setq</p><p>&nbsp;&nbsp;&nbsp; ;AutoCAD<br/>&nbsp;&nbsp;&nbsp; acadapp (vlax-get-acad-object)</p><p>&nbsp;&nbsp;&nbsp; ;当前文档<br/>&nbsp;&nbsp;&nbsp; acaddoc (vla-get-activedocument acadapp)</p><p>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; <br/>&nbsp; (if (and<br/>&nbsp;;搜索内容,匹配"*"<br/>&nbsp;(setq findstr (getstring "\n输入查找字符串,输入*匹配搜索: "))<br/>&nbsp;;处理范围<br/>&nbsp;(ssget (list '(0 . "TEXT") (cons 1 findstr)))<br/>&nbsp;<br/>&nbsp;)<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;当前选集<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq selectionset (vla-get-activeselectionset acaddoc))</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;遍历选集<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vlax-for obj selectionset</p><p>&nbsp;;获取外框<br/>&nbsp;(vla-getboundingbox obj 'leftdownpoint 'rightuppoint)</p><p>&nbsp;;锁定目标<br/>&nbsp;(vla-zoomwindow acadapp leftdownpoint rightuppoint)</p><p>&nbsp;;扩大视图范围<br/>&nbsp;(vla-zoomscaled acadapp 0.5 acZoomScaledRelative)</p><p>&nbsp;</p><p>&nbsp;;修改内容<br/>&nbsp;(setq newstr (getstring 0 "\n输入修改内容或&lt;回车查找下一个&gt;: "))</p><p>&nbsp;(if newstr</p><p>&nbsp;&nbsp; ;替换文字内容<br/>&nbsp;&nbsp; (vla-put-textstring obj newstr)</p><p>&nbsp;&nbsp; )<br/>&nbsp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; <br/>&nbsp; ;静默退出<br/>&nbsp; (princ)<br/>&nbsp; )</p>

dengken204 发表于 2008-7-10 16:30:00

<p>谢谢!</p><p>我回去试试</p>

dengken204 发表于 2008-7-10 16:33:00

<p>其实我初始想法是这样的!</p><p>在梁编号的时候,用最简单的方法,查出是否有重复的编号</p><p>不用选择,直接得到答案</p><p>呵呵</p>

sfjlx 发表于 2008-7-10 20:57:00

点缩放为就可以

phoenixdjq 发表于 2008-7-10 22:04:00

<p>你的梁编号有没有特殊的写法</p><p>我工作中,所有杆件的编号都是&lt;*&gt;</p><p>所以做了个程序,可以做到</p><p>如果你的编号有什么特定的特征,就联系我吧</p>

dengken204 发表于 2008-7-13 20:29:00

phoenixdjq发表于2008-7-10 22:04:00static/image/common/back.gif你的梁编号有没有特殊的写法我工作中,所有杆件的编号都是&lt;*&gt;所以做了个程序,可以做到如果你的编号有什么特定的特征,就联系我吧

<p>没有什么特殊的地方<br/>为什么要在编号里面加*呢?</p><p>你说的是标注梁的跨数吧?<br/>我也是这样</p><p></p>

dengken204 发表于 2008-7-13 20:33:00

本帖最后由 作者 于 2008-7-13 21:01:57 编辑 <br /><br /> <p><strong><font face="Verdana" color="#61b713">sailorcwx兄,你的程序很好,但是如果一直回车按下去,当回车的次数大与查找到的文字的个数,会把查找的内容替换成“ ”了。<br/>能不能改进一下?<br/>谢谢</font></strong></p><p></p><p></p><p>另外还有2个问题<br/>1.如何去掉选择时候“ALL”的输入选项,简化操作?</p><p>2.如何直接“点取”要查找的文字,而不需要再在命令行中输入?</p>
页: [1] 2
查看完整版本: [求助]希望高手对FIND命令做个扩展?