找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 648|回复: 3

[求助] [求助]:[求助]:请高手帮忙看看错在哪里?谢谢!

[复制链接]
发表于 2006-3-4 19:20:26 | 显示全部楼层 |阅读模式

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

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

×
;;;统计文本内容=?的图元数目.
(defun c:SumCout ()
  (setq TextStr (getstring "\n请输入编号(区分大小写):"))
  (setq ss (ssget "X" (list (cons 0 "text") (cons 1 textstr))))
  (setq cont (rtos (sslength ss) 5 0))
  (setq i 0)
  (repeat (sslength ss)
    (redraw (ssname ss i) 3)
    (setq i (+ 1 i))
  )
  (redraw (ssname ss (- i 1)) 3)
  (zoom (ssname ss (- i 1)))
  (princ (strcat "共找到" cont "个" "[" TextStr "]"))
  (princ)
)
(defun zoom (ent)
  (if (= 'ENAME (type ent))(setq ent (entget ent)))
  (setq p1 (cdr(assoc 10 ent)) ang (cdr(assoc 50 ent)))
  (setq p1X (car p1))
  (setq p1Y (cadr p1))
  (setq tb (textbox ent))
  (setq P2 (cadr tb))
  (setq p2X (car p2))
  (setq p2Y (cadr p2))
  (setq str1 (strcat (rtos p1X 2 2) "," (rtos p1Y 2 2)))
  (setq str2 (strcat "@" (rtos p2X 2 2) "," (rtos p2Y 2 2)))
  (Command "zoom" "w" str1 str2 "")
)
目的:在图中查找YAZ1的数目,然后在窗口中央显示该对象集的第一个对象
在简单的调试图中能实现以上效果,但在我上传的这个图中就不行,不知道为什么,请各位高手指教。谢谢!
另外,是否有办法令选择集中的所有对象在窗口中央逐一显示?就是按一下鼠标或指定的键就显示下一对象?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-3-4 19:37:00 | 显示全部楼层
图元逐个显示:
  1. [FONT=courier new];;;图中所有对象在窗口中央逐一显示(按任意键显示下一对象)
  2. (defun c:test ()
  3.   (CMDLA0)
  4.   (setvar "osmode" 0)
  5.   (command "select" "all" "")
  6.   (setq        ss (ssget "P")
  7.         i  -1
  8.   )
  9.   (while (setq s1 (ssname ss (setq i (1+ i))))
  10.     (setq pt1 (xyp-get-MinMaxPoint s1 1)
  11.           pt9 (xyp-get-MinMaxPoint s1 9)
  12.     )
  13.     (command "zoom" "w" pt1 pt9)
  14.     (setq mode t)
  15.     (while mode
  16.       (setq MOTION (grread t 15 0)
  17.             CODE   (car MOTION)
  18.       )
  19.       (if (or (= code 2)
  20.               (= code 3)
  21.               (= code 25)
  22.           )
  23.         (setq mode nil)
  24.       )
  25.     )
  26.   )
  27.   (CMDLA1)
  28. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-3-4 19:50:09 | 显示全部楼层
程序改写:
  1. [FONT=courier new](defun c:test ()
  2.   (cmdla0)
  3.   (setq        TextStr        (USTR 7 "\n请输入编号(不区分大小写):" TextStr NIL)
  4.         ss        (ssget "X" (list (cons 0 "TEXT") (cons 1 textstr)))
  5.   )
  6.   (if ss
  7.     (setq cont (sslength ss)
  8.           s1   (ssname ss 0)
  9.     )
  10.   )
  11.   (if s1
  12.     (progn (setq pt1 (xyp-get-MinMaxPoint s1 1)
  13.                  pt9 (xyp-get-MinMaxPoint s1 9)
  14.            )
  15.            (command "zoom" "w" pt1 pt9)
  16.     )
  17.   )
  18.   (princ (strcat "\n共找到"
  19.                  (rtos cont 2 0);;转换为字符串
  20.                  "个"
  21.                  "["
  22.                  (strcase TextStr)
  23.                  "]"
  24.          )
  25.   )
  26.   (cmdla1)
  27. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-29 04:01 , Processed in 0.379663 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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