找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1230|回复: 5

[LISP函数]:查询选中目标的数量的lisp怎样写?

[复制链接]
发表于 2005-10-14 15:26:49 | 显示全部楼层 |阅读模式

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

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

×
下面的代码只能实现文体的查询,我还想实现 块 、群组及多义线 的查询。

那位高手能帮忙修改一下,可同时实现其他的查询

(defun c:txs()
  (setq ent(car (entsel "\\n选择要筛选的字母: ")))
  (redraw ent 3)
  (setq tex(cdr (assoc 1 (entget ent))))
  (prompt "选择要筛选的区域....")
  (setq ss(ssget (list '(0 . "TEXT") (cons 1 tex))))
  (redraw ent 4)
  (setq len (sslength ss))
  (print (strcat "文本" tex "共有" (rtos len)))
  (princ)
  )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-10-14 17:20:15 | 显示全部楼层
可以这样
(setq ss (ssget))
(setq len (sslength ss))

只是查个数的话其实比楼主贴出的程序更简单,我试过文学、线、多义线、块均能查询
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-14 17:56:22 | 显示全部楼层
  1. [FONT=courier new](load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR][url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]|;

  11. (defun c:txs ()
  12.   (setq uw (UKWORD 7 "1 2 3 4" "\n1-文本/2-块/3-群组/4-多义线" uw))
  13.   (cond        ((= uw "1")
  14.          (setq ent (car (entsel "\n选择要筛选的字母 : ")))
  15.          (redraw ent 3)
  16.          (prompt "选择要筛选的区域....")
  17.          (setq ss (ssget
  18.                     (list '(0 . "TEXT") (cons 1 (cdr (assoc 1 (entget ent)))))
  19.                   )
  20.          )
  21.          (redraw ent 4)
  22.         )
  23.         ((= uw "2")
  24.          (prompt "\n选择要筛选的区域....")
  25.          (setq ss (ssget '((0 . "BLOCK"))))
  26.         )
  27.         ((= uw "3")
  28.          (prompt "\n选择要筛选的区域....")
  29.          (setq ss (ssget '((0 . "group"))))
  30.         )
  31.         ((= uw "4")
  32.          (prompt "\n选择要筛选的区域....")
  33.          (setq ss (ssget '((0 . "*POLYLINE"))))
  34.         )
  35.   )
  36.   (print (strcat "共有实体 " (rtos (sslength ss)) " 个"))
  37.   (princ)
  38. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-10-15 08:45:54 | 显示全部楼层
版主3楼的程序运行后出现,ERROR: no function definition: UKWORD ,我用的是2006 ,难道UKWORD是要另外加载的函数?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-15 11:50:15 | 显示全部楼层
最初由 xyp1964 发布
[B][CODE](load "xyp_lib")
;|加载通用函数(可在签名栏直接下载)
如果已经下载xyp_lib并放到搜索路径下可以不再下载!
利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
1.在acad.lsp... [/B]

三楼斑竹自编了一个函数库,已经编译成“.vlx”文件,你可以先点击链接下载该函数,然后按照提示步骤1~4(其中任何一个都可以)加载该函数,然后再运行程序就可以了?
对了,xyp1964斑竹能否将这个函数库的源码公布,或发至我的邮箱:xuefeng0323.student@sina.com,在下感激不尽!
如不能,兄弟也能理解,毕竟是您辛苦的劳动成果么!!
再次感谢xyp1964斑竹,感谢所有热心帮助别人的朋友!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 17:05 , Processed in 0.335562 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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