找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 648|回复: 5

[求助] [求助]:请求帮助!

[复制链接]
发表于 2003-1-9 11:20:22 | 显示全部楼层 |阅读模式

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

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

×
看是否对你有用,同时也起抛砖引玉的作用。我已在CAD2002中试过,没问题。

  1. (defun c:Findtext(/ str layername ss ent1 el namelist newnamelist item i n loop name)
  2.   (setq layername (getstring "\n:请输入层名"))
  3. ;;此处你可修改一下,用选择实体的方式也可。
  4.   (if layername
  5.     (progn
  6.       (setq ss (ssget "x" (list (cons -4 " < AND") (cons 0 "TEXT")
  7.                                 (cons 8 layername) (cons -4 " AND > "))))      
  8.       (if ss
  9.         (progn
  10.           (setq i 0
  11.                 n (sslength ss)
  12.                 namelist nil
  13.                 ent1 nil
  14.                 )
  15.           (while (< i n)
  16.             (setq ent1 (ssname ss i))
  17.             (setq el (entget ent1))
  18.             (setq name (cdr (assoc 1 el)))
  19.             (setq namelist (append namelist (list name)))
  20.             (setq i (1+ i))
  21.             )
  22.           (setq i 0
  23.                 n 0
  24.                 loop 1
  25.                 )
  26.           (while loop
  27.             (setq name (nth 0 namelist))
  28.             (setq n 0)
  29.             (foreach item namelist
  30.               (if (= item name)
  31.                 (progn                  
  32.                   (setq n (1+ n))                  
  33.                   ))
  34.               )
  35.             (setq newnamelist nil)
  36.             (foreach item namelist
  37.               (if (null (= item name))
  38.                 (setq newnamelist (append newnamelist (list item)))
  39.                 )
  40.               )
  41.             (if str
  42.               (setq str (strcat str "\n" name "=" (rtos n) "个"
  43.                                 )
  44.                     )
  45.               (setq str (strcat name "=" (rtos n) "个"
  46.                                 )
  47.                     )
  48.               )
  49.             (setq namelist nil
  50.                   namelist newnamelist
  51.                   newnamelist nil
  52.                   )
  53.             (if namelist
  54.               (setq loop 1)
  55.               (setq loop nil)
  56.               )
  57.             )
  58.           
  59.             (setq namelist nil
  60.                   oldnamelist nil
  61.                 )
  62.           (setq ss nil)
  63.           ))
  64.     ))

  65.   (princ str)
  66.   (alert str)
  67.   (princ)
  68.   )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2003-1-9 18:22:48 | 显示全部楼层
出现这样的提示:

命令: _appload 已成功加载 Findtext.lsp。
命令: ; 错误: 输入的列表有缺陷

========================

你贴在这里的代码第6行
(setq ss (ssget "x" (list (cons -4 " (cons 8 layername) (cons -4 "AND>"))))

cons -4 "      是不是少了一个引号? 我添加了,但是还是不能正确执行。

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

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2003-1-9 20:57:47 | 显示全部楼层
最初由 鼠标右键 发布
出现这样的提示:

命令: _appload 已成功加载 Findtext.lsp。
命令: ; 错误: 输入的列表有缺陷

========================

你贴在这里的代码第6行
(setq ss (ssget "x" (list (co...


在 -4 " 后面有小于号及“AND")”,论坛中小于号后面连写的字符全部不能显示。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-1-9 22:26:26 | 显示全部楼层
谢谢上面两位。现在搞定了!

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

使用道具 举报

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

使用道具 举报

发表于 2003-1-10 19:25:21 | 显示全部楼层
我也编了一个:

  1. (defun text_sort (ss / text0 temp i tlist n ssl text1 test)

  2.         (setq ssl (sslength ss))
  3.         (setq i ssl)

  4.         (setq text0 (ssname ss 0))
  5.         (setq text0 (cdr (assoc 1 (entget text0))))
  6.         (setq tlist '())
  7.         (setq tlist (cons text0 tlist))

  8.         (while        (> i 1)
  9.                 (setq text1 (ssname ss (setq i (1- i))))
  10.                 (setq text1 (cdr (assoc 1 (entget text1))))
  11.                 (setq n (length tlist))
  12.                 (setq test n)
  13.                 (while        (> n 0)
  14.                         (setq n (1- n))
  15.                         (setq temp (nth n tlist))
  16.                         (if        (= text1 temp)
  17.                                 (setq test (1- test))
  18.                         )
  19.                 )
  20.                 (if        (= test (length tlist))
  21.                         (setq tlist (cons text1 tlist))
  22.                 )
  23.         )
  24.         (setq tlist tlist)
  25. )

  26. (defun c:nn (/ ss ssl e tlist tll text0 text1)
  27.        
  28.         (princ "\n请选取要统计的文字:")
  29.         (setq ss (ssget '((0 . "text"))))
  30.         (setq tlist (text_sort ss))       
  31.         (princ "\n所选文字中共有:")
  32.         (setq tll (length tlist))
  33.         (while         (> tll 0)
  34.                 (setq tll (1- tll))
  35.                 (setq text0 (nth tll tlist))
  36.                 (setq e 0)
  37.                 (setq ssl (sslength ss))
  38.                 (while         (> ssl 0)
  39.                         (setq text1 (ssname ss (setq ssl (1- ssl))))
  40.                         (setq text1 (cdr (assoc 1 (entget text1))))
  41.                         (if        (= text1 text0)
  42.                                 (setq e (1+ e))
  43.                         )
  44.                 )
  45.                 (princ"\n")
  46.                 (princ text0)
  47.                 (princ "----")
  48.                 (princ e)
  49.                 (princ "个")
  50.         )
  51.         (princ)
  52. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 19:35 , Processed in 0.417070 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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