明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 品茗新秀

[已解答] 求点选一文字,框选一定区域内的文字,如果该文字与点选文字相同

[复制链接]
发表于 2014-4-16 21:59:51 | 显示全部楼层
bai2000 发表于 2014-4-16 19:43
可惜不支持天正文字

没试过怎么知道不行?
回复

使用道具 举报

发表于 2014-4-16 22:04:34 | 显示全部楼层
ZZXXQQ 发表于 2014-4-16 21:59
没试过怎么知道不行?

试了,不行,选不上文字
回复

使用道具 举报

 楼主| 发表于 2014-4-16 22:32:43 | 显示全部楼层
xyp1964 发表于 2014-4-16 07:31

也就是点选改框选,框选中有不同文字,就给出不同的颜色,然后再去框选指定区域,一 一对应相应颜色
回复

使用道具 举报

发表于 2014-4-16 23:32:28 | 显示全部楼层
不是不知道你说啥,就是想说,你有啥想法一次说清楚,不要解决了一个,又来一个要求,一次到位
回复

使用道具 举报

发表于 2014-4-17 00:51:18 | 显示全部楼层
本帖最后由 lyqiezi 于 2014-4-17 00:54 编辑
  1. (defun c:tt()
  2.   (princ "\n选择源文字")
  3.   (setq ss1 (ssget '((0 . "TEXT"))))
  4.   (princ "\n选择目标文字")
  5.   (setq ss2 (ssget '((0 . "TEXT"))))
  6.   (setq i 0)
  7.   (if (and ss1 ss2)
  8.     (while (< i (sslength ss1))
  9.       (progn
  10.         (setq text1 (cdr (assoc 1 (entget (ssname ss1 i)))))
  11.         (command "_.CHPROP" (ssname ss1 i) "" "c" (1+ i) "")
  12.         (command "select" ss2 "")
  13.         (if (setq ss (ssget "p" (list '(0 . "text") (cons 1 text1))))
  14.           (command "_.CHPROP" ss "" "c" (1+ i) "")
  15.          )
  16.       )
  17.     (setq i (1+ i))
  18.     )
  19.    )
  20.   (prin1)
  21. )
请教一下
(setq ss (ssget "p" (list '(0 . "text") (cons 1 text1))))
这一句,我一开始没有把(0 . “text”)放进去,就一直调不出来,不知道是什么原因

点评

框选一定区域内的文字最好仅包含样本文字。  发表于 2014-4-17 02:53

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1 就是这个意思

查看全部评分

回复

使用道具 举报

发表于 2014-4-17 10:09:36 | 显示全部楼层
测试过你就知道了,只有完全一样的才变色


(setq ss (ssget "p" (list '(0 . "text") (cons 1 text1))))
这一句,我一开始没有把(0 . “text”)放进去,就一直调不出来,不知道是什么原因

这个谁来给我解答一下
我前段时间编的一个程序也是这个问题,我觉得text已经是过滤过的,怎么还要再进行一次过滤呢?
回复

使用道具 举报

 楼主| 发表于 2014-4-17 13:27:10 | 显示全部楼层
(setq ss2 (ssget '((0 . "TEXT"))))如果能加上前一个选择集中的文字名称就好了

回复

使用道具 举报

发表于 2014-4-17 13:33:52 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-4-17 13:36 编辑

一个功能不停追加需求,而自己却不想法根据最基本的功能进行修改完善,怎么看怎么不象是在学习,倒越看越象找义务劳工,也许我说错了,弄不好我因此成为挑事的,哎,随便吧

点评

自已是学基本的,需求一次说了,高手帮了忙,自已可能却看不懂,还是从简单的一次一次的加深,方便初学者学习,可辛苦高手们了。感谢高手的热心帮助。  发表于 2014-4-17 13:46
自已也试着改了一上,可基本功太差,运行没通过  发表于 2014-4-17 13:40
回复

使用道具 举报

发表于 2014-4-17 13:49:29 | 显示全部楼层
  1. ;;需要e派工具箱(XCAD)的支持:[url]http://yunpan.cn/QXQKsW9gAPmpF[/url]
  2. (defun c:tt ()
  3.   (princ "\n选择样板文本: ")
  4.   (if (setq ss1 (ssget '((0 . "text"))))
  5.     (progn
  6.       (setq lst '() i -1)
  7.       (while (setq s1 (ssname ss (setq i (1+ i))))
  8.         (if (not (member (setq t1 (xyp-DXF 1 s1)) lst))
  9.           (setq lst (cons t1 lst))
  10.         )
  11.       )
  12.       (setq lst (vl-sort lst '<)
  13.             tx (xyp-strcat lst ",")
  14.             nn (+ (length lst) 1)
  15.             i -1
  16.       )
  17.       (princ "\n选择处理范围: ")
  18.       (if (setq ss (ssget (list '(0 . "text") (cons 1 tx))))
  19.         (progn
  20.           (setq ss (ssdiff ss ss1))
  21.           (while (setq s1 (ssname ss (setq i (1+ i))))
  22.             (setq m (- nn (length (member (xyp-DXF 1 s1) lst))))
  23.             (xyp-SubUpd s1 62 m)
  24.           )
  25.         )
  26.       )
  27.     )
  28.   )
  29.   (princ)
  30. )

本帖子中包含更多资源

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

x

点评

你下载E派工具支持呗,能用就行了。  发表于 2014-6-3 16:44
院长如能破例提供一下该程序的子函数,对初学者将会有很大的帮助  发表于 2014-4-17 13:58
是院长这个意思,可惜内子函数,对初学者,学习有难度,感谢院长的热心  发表于 2014-4-17 13:56
回复

使用道具 举报

发表于 2014-4-17 14:04:25 | 显示全部楼层
品茗新秀 发表于 2014-4-17 13:27
(setq ss2 (ssget '((0 . "TEXT"))))如果能加上前一个选择集中的文字名称就好了

这个想过,用处就是避免原先选择集中有重复文字,但是这个修改很容易,自己想办法吧,我还要搞清楚list的问题
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-20 03:52 , Processed in 0.174695 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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