明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3417|回复: 15

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

  [复制链接]
发表于 2008-7-8 18:02:00 | 显示全部楼层 |阅读模式

希望高手对FIND命令做个扩展

在使用FIND命令的时候,需要人为用鼠标去确定一个选择范围.

但是在画梁配筋图的时候,为了查梁编号是否重复

使用FIND后,每次要在大图上大大的框选择一下

图纸很大的时候,就很费劲和费时间。

能否使FIND达到这样一个功能,使得:

1.不用选择,自动默认选择范围为全图的内容?

2.图形自动缩放到符合选择要求的文字项上,按回车即刻切换到下一个符合选择要求的文字

发表于 2008-7-8 21:28:00 | 显示全部楼层

1.不用选择,自动默认选择范围为全图的内容?

find命令本来就可以选择全图啊.不用选择.

 楼主| 发表于 2008-7-9 19:29:00 | 显示全部楼层

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

发表于 2008-7-10 01:32:00 | 显示全部楼层

;find扩展 by weltion chen
;全选输入all
;*匹配模糊查找
;查找字符a,输入a
;查找字符a开头的字符串,输入a*
;查找字符a结尾的字符串,输入*a
;查找带字符a的字符串,输入*a*
(defun c:finde( / ACADAPP ACADDOC FINDSTR LEFTDOWNPOINT NEWSTR RIGHTUPPOINT SELECTIONSET)

  ;加载Vlisp函数
  (vl-load-com)

  (setq

    ;AutoCAD
    acadapp (vlax-get-acad-object)

    ;当前文档
    acaddoc (vla-get-activedocument acadapp)

    )
 
  (if (and
 ;搜索内容,匹配"*"
 (setq findstr (getstring "\n输入查找字符串,输入*匹配搜索: "))
 ;处理范围
 (ssget (list '(0 . "TEXT") (cons 1 findstr)))
 
 )
    (progn
     
      ;当前选集
      (setq selectionset (vla-get-activeselectionset acaddoc))

      ;遍历选集
      (vlax-for obj selectionset

 ;获取外框
 (vla-getboundingbox obj 'leftdownpoint 'rightuppoint)

 ;锁定目标
 (vla-zoomwindow acadapp leftdownpoint rightuppoint)

 ;扩大视图范围
 (vla-zoomscaled acadapp 0.5 acZoomScaledRelative)

 

 ;修改内容
 (setq newstr (getstring 0 "\n输入修改内容或<回车查找下一个>: "))

 (if newstr

   ;替换文字内容
   (vla-put-textstring obj newstr)

   )
 )
      )
    )
 
  ;静默退出
  (princ)
  )

 楼主| 发表于 2008-7-10 16:30:00 | 显示全部楼层

谢谢!

我回去试试

 楼主| 发表于 2008-7-10 16:33:00 | 显示全部楼层

其实我初始想法是这样的!

在梁编号的时候,用最简单的方法,查出是否有重复的编号

不用选择,直接得到答案

呵呵

发表于 2008-7-10 20:57:00 | 显示全部楼层
点缩放为就可以
发表于 2008-7-10 22:04:00 | 显示全部楼层

你的梁编号有没有特殊的写法

我工作中,所有杆件的编号都是<*>

所以做了个程序,可以做到

如果你的编号有什么特定的特征,就联系我吧

 楼主| 发表于 2008-7-13 20:29:00 | 显示全部楼层
phoenixdjq发表于2008-7-10 22:04:00你的梁编号有没有特殊的写法我工作中,所有杆件的编号都是<*>所以做了个程序,可以做到如果你的编号有什么特定的特征,就联系我吧

没有什么特殊的地方
为什么要在编号里面加*呢?

你说的是标注梁的跨数吧?
我也是这样

 楼主| 发表于 2008-7-13 20:33:00 | 显示全部楼层
本帖最后由 作者 于 2008-7-13 21:01:57 编辑

sailorcwx兄,你的程序很好,但是如果一直回车按下去,当回车的次数大与查找到的文字的个数,会把查找的内容替换成“ ”了。
能不能改进一下?
谢谢

另外还有2个问题
1.如何去掉选择时候“ALL”的输入选项,简化操作?

2.如何直接“点取”要查找的文字,而不需要再在命令行中输入?

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

本版积分规则

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

GMT+8, 2025-9-21 04:16 , Processed in 0.187739 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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