找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1229|回复: 6

[求助] [求助]:一个很好用的程序,请大家帮忙修改一下,程序如下

[复制链接]
发表于 2007-9-19 21:01:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
(defun c:chazhao()        ;根据权属人姓名查找地块位置且居中显示
(setq syscmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq qsr (getstring "\n请输入权属人姓名:"))
(setq ssp nil cord nil)
(setq ssp (ssget "x" (list (cons 0 "text") (cons 1 qsr))))
(if (/= ssp nil)
    (progn
    (setq i 0)
    (while  (< i (sslength ssp))
         (setq cord (cdr (assoc 10 (entget (ssname ssp i) ))))
               (command "zoom" "c" cord 20)
               ;(redraw  (ssname ssp i) 3)
               (if (> (sslength ssp) 1)
               (setq aia (getstring "\n 继续...请按ENTER:")))
               (setq i (+ i 1))
       );while
      
))
(if (= ssp nil)
    (progn
          (princ "\n    权属人:  ")
          (princ qsr)
          (princ " 没有找到!请确认后重新输入...")
    ))
(setvar "cmdecho" syscmd)
(princ)
)

上述实现了查找,
比如存在‘张三’,输入‘张三’就可以查找
但是,输入‘三’就不行,
现在如何改进,实现模糊查询,比如输入‘三’就可以查处关于‘三’的名字呢?谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 7073个

财富等级: 富甲天下

发表于 2007-9-19 21:23:35 | 显示全部楼层
(setq ssp (ssget "x" (list (cons 0 "text") (cons 1 qsr))))
====>
(setq ssp (ssget "x" '((0 .  "text") (1 .  "*三*"))))

不过可要处理衍生的问题.....
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-9-20 00:07:30 | 显示全部楼层

  1. ;;;=============================================================================
  2. ;;;改进后:模糊查询
  3. (defun C:TT (/ CMD_OLD E I LST NAME PT SS STR)
  4.     (princ "\n**在"TEXT"对象中模糊查询**")
  5.     ;;
  6.     (setq CMD_OLD (getvar "CMDECHO"))
  7.     (setvar "CMDECHO" 0)
  8.     ;;
  9.     (if        (and (/= (setq NAME (getstring "\n请输入查询内容:")) "")
  10.              (or (setq SS (ssget "x"
  11.                                  (list (cons 0 "TEXT") (cons 1 NAME))
  12.                           )
  13.                  )
  14. ;;;                 (setq SS (ssget "x"
  15. ;;;                                 (list (cons 0 "TEXT")
  16. ;;;                                       (cons 1 (strcat NAME "*"))
  17. ;;;                                 )
  18. ;;;                          )
  19. ;;;                 )
  20. ;;;                 (setq SS (ssget "x"
  21. ;;;                                 (list (cons 0 "TEXT")
  22. ;;;                                       (cons 1 (strcat "*" NAME))
  23. ;;;                                 )
  24. ;;;                          )
  25. ;;;                 )
  26.                  (setq SS (ssget "x"
  27.                                  (list (cons 0 "TEXT")
  28.                                        (cons 1 (strcat "*" NAME "*"))
  29.                                  )
  30.                           )
  31.                  )
  32.              )
  33.         )
  34.         (progn
  35.             ;;组建排序表
  36.             ;;其格式为:((字符长度 字符 点位)()...)
  37.             (setq LST '()
  38.                   I   0
  39.             )
  40.             (repeat (sslength SS)
  41.                 (setq E          (ssname SS I)
  42.                       STR (cdr (assoc 1 (entget E)))
  43.                       PT  (cdr (assoc 10 (entget E)))
  44.                 )
  45.                 (setq LST (cons (list (strlen STR) STR PT E) LST))
  46.                 (setq I (1+ I))
  47.             ) ;_结束repeat
  48.             ;;排序
  49.             (setq LST (vl-sort LST
  50.                                (function (lambda (E1 E2)
  51.                                              (< (car E1) (car E2))
  52.                                          )
  53.                                )
  54.                       )
  55.             )
  56.             ;;逐个显示
  57.             (foreach N LST
  58.                 (progn
  59.                     (command "._pan" (caddr N) (getvar "VIEWCTR"))
  60.                     (redraw (last N) 3)
  61.                     (princ "\n找到内容: "")
  62.                     (princ (cadr N))
  63.                     (getstring "" 请按空格键继续...: ")
  64.                     (redraw (last N)4)
  65.                 )
  66.             ) ;_结束foreach
  67.         )
  68.         (princ "\n没有找到!")
  69.     )
  70.     ;;
  71.     (setvar "CMDECHO" CMD_OLD)
  72.     (princ)
  73. );_结束defun


代码着色显示效果,见:http://zml84.blog.sohu.com/64529687.html
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-9-20 04:43:44 | 显示全部楼层
支持zml!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-9-20 09:31:57 | 显示全部楼层
FIND
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2007-9-20 09:37:42 | 显示全部楼层
FIND
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

发表于 2013-5-13 15:46:58 | 显示全部楼层
很不错的说
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-25 14:35 , Processed in 0.419631 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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