找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2504|回复: 34

[求助]:怎样一次性选择汉字?

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

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

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

×
现在图面上有有很多单行文字,如“卧室”,“客厅”
“厨房”,“0.000”,“3.000”,“4.500”等等,现在我想一次
性就选择好那些汉字,能不能用LISP实现这个想法,我
使用的是AUTOCAD R14。在线等。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-9-20 22:19:32 | 显示全部楼层
可以使用对象过滤器,选择文字值=XXX的对象过滤条件,然后应用选择即可。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-20 22:58:13 | 显示全部楼层
yi.gao长老大概没有看清题意。
我是想一次选择所有的中文单行文本,而不需要数字。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-20 23:07:51 | 显示全部楼层
都是单行文本对象,区分有一定难度,即便是lsp编程也需要判断ASCII码值然后断定是数字、字母还是其它。可以考虑用对象过滤器中的“或”组合选择,当然中文文本比较多的情况下仍然不是很简便!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-20 23:10:48 | 显示全部楼层
编程可以实现,只是这样的程序千年用一次的话,似乎不值得动脑筋,呵呵。。。。:)
*-*7 *-*7 *-*7 *-*7 *-*7 *-*7
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-9-21 00:00:29 | 显示全部楼层
柔兄,这千年用一次的程序恰巧就陪我碰到了,大概明天买彩票一定会中。呵呵
我说一下我的思路:在命令行上输入(atof "卧室")或(atof "客厅")返回的是0.0,而输入
(atof "-0.300")会返回-0.300,那能不能建立一个ATOF后返回的都是0的文字的选择集?
在下抛红砖一块待引玉。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-9-21 00:13:42 | 显示全部楼层
那数字0.0呢?
编程思路是这样的:
把文字全部选到选择集内,然后对每个文字对象进行分析:字符的ASCII码大于127的保留,小于127的继续查下去,直到最后还是小于127,说明它不是中文,就把它请出选择集。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-9-21 00:39:32 | 显示全部楼层
临时编一个,没测试过,错了不负责。*-*7 *-*7 *-*7

  1.   [FONT=courier new]
  2. (defun c:xbx7920 (/ sset ssl nsset elist str asc_a chn n temp)
  3.     (setq sset (ssget "X" (list (cons 0 "TEXT")))
  4.           ssl  (sslength sset)
  5.          nsset (ssadd)
  6.     )
  7.     (while (> ssl 0)
  8.        (setq temp (ssname sset (setq ssl (1- ssl))))
  9.        (setq elist (entget temp))
  10.        (setq  str (cdr (assoc 1 elist))  chn nil  n 1)
  11.        (while  (and (/= (substr str n 1) "") (= chn nil))
  12.           (setq asc_a (ascii (substr str n 1)))
  13.           (if (> asc_a 127)
  14.             (progn (setq chn T)  (ssadd temp nsset))
  15.             (setq n (1+ n))
  16.          )
  17.        )
  18.      )
  19.   ; nsset就是汉字的选择集,接下来你要干什么?我不知道了,呵呵。。。
  20. )  [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-9-21 01:01:39 | 显示全部楼层
找到以前一个小程序,可以参考

  1.   [FONT=courier new]
  2. ;;REMOVEhz.LSP 删除汉字  CYN  2000.4
  3. ;;
  4. ;; 功能:删除图中的所有汉字
  5. ;; 用途:向国外用电子邮件传送图纸
  6. ;; 原因:国外没有汉字字体,可能打不开文件

  7. (defun c:removehz(/ chk sset sslen elist str sl n nsl
  8.                     str1 asc strb stre)
  9.   (initget "Yes No")
  10.   (setq chk (getkword "\n警告! 你确实想删除图上的所有汉字吗? (Y/N) <N>"))
  11.   (if (= chk "Yes")
  12.    (progn
  13.      (setq sset (ssget "X" (List (cons 0 "*TEXT" )))
  14.           sslen (sslength sset)
  15.      )
  16.      (while (> sslen 0)   
  17.        (setq ename (ssname sset (setq sslen (1- sslen)))
  18.              elist (entget ename)
  19.                str (cdr (assoc 1 elist))
  20.                 sl (strlen str)
  21.                  n 1
  22.               stre str
  23.                nsl sl
  24.        )
  25.        (while (< n nsl)   
  26.          (setq str1 (substr str n 1)
  27.                 asc (ascii str1)
  28.          )
  29.          (if (> asc 127)  ;如果是汉字
  30.            (setq strb (substr str 1 (- n 1))
  31.                  stre (substr str (+ n 2))
  32.                   str (strcat strb stre)
  33.                   nsl (strlen str)
  34.            )
  35.            (setq n (1+ n))
  36.          )   
  37.        )   
  38.        (entmod (append elist (list (cons 1 str))))
  39.      )
  40.    )
  41.   )
  42.   (princ)
  43. )  [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-9-23 00:46:48 | 显示全部楼层
(distof "ABC") -->nil
(distof "123") -->123

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

使用道具 举报

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

使用道具 举报

发表于 2004-9-23 02:56:54 | 显示全部楼层
试试这个,一般情况下可用

  1. ;;选取不包含字母及数字的字符串.
  2. (ssget '((0 . "TEXT")(-4 . "< AND")(1 . "~*@*")(1 . "~*#*")(-4 . "AND >")))
复制代码

注意,因显示冲突原因,< >与AND之间加了空格,使用时候将< >与AND之间的空格去掉。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-20 12:11 , Processed in 0.242238 second(s), 61 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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