ZZXXQQ 发表于 2014-4-16 21:59:51

bai2000 发表于 2014-4-16 19:43 static/image/common/back.gif
可惜不支持天正文字

没试过怎么知道不行?

bai2000 发表于 2014-4-16 22:04:34

ZZXXQQ 发表于 2014-4-16 21:59 static/image/common/back.gif
没试过怎么知道不行?

试了,不行,选不上文字

品茗新秀 发表于 2014-4-16 22:32:43

xyp1964 发表于 2014-4-16 07:31 static/image/common/back.gif

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

lyqiezi 发表于 2014-4-16 23:32:28

不是不知道你说啥,就是想说,你有啥想法一次说清楚,不要解决了一个,又来一个要求,一次到位

lyqiezi 发表于 2014-4-17 00:51:18

本帖最后由 lyqiezi 于 2014-4-17 00:54 编辑

(defun c:tt()
(princ "\n选择源文字")
(setq ss1 (ssget '((0 . "TEXT"))))
(princ "\n选择目标文字")
(setq ss2 (ssget '((0 . "TEXT"))))
(setq i 0)
(if (and ss1 ss2)
    (while (< i (sslength ss1))
      (progn
      (setq text1 (cdr (assoc 1 (entget (ssname ss1 i)))))
      (command "_.CHPROP" (ssname ss1 i) "" "c" (1+ i) "")
      (command "select" ss2 "")
      (if (setq ss (ssget "p" (list '(0 . "text") (cons 1 text1))))
          (command "_.CHPROP" ss "" "c" (1+ i) "")
         )
      )
    (setq i (1+ i))
    )
   )
(prin1)
)
请教一下
(setq ss (ssget "p" (list '(0 . "text") (cons 1 text1))))
这一句,我一开始没有把(0 . “text”)放进去,就一直调不出来,不知道是什么原因

lyqiezi 发表于 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"))))如果能加上前一个选择集中的文字名称就好了

llsheng_73 发表于 2014-4-17 13:33:52

本帖最后由 llsheng_73 于 2014-4-17 13:36 编辑

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

xyp1964 发表于 2014-4-17 13:49:29

;;需要e派工具箱(XCAD)的支持:http://yunpan.cn/QXQKsW9gAPmpF
(defun c:tt ()
(princ "\n选择样板文本: ")
(if (setq ss1 (ssget '((0 . "text"))))
    (progn
      (setq lst '() i -1)
      (while (setq s1 (ssname ss (setq i (1+ i))))
      (if (not (member (setq t1 (xyp-DXF 1 s1)) lst))
          (setq lst (cons t1 lst))
      )
      )
      (setq lst (vl-sort lst '<)
            tx (xyp-strcat lst ",")
            nn (+ (length lst) 1)
            i -1
      )
      (princ "\n选择处理范围: ")
      (if (setq ss (ssget (list '(0 . "text") (cons 1 tx))))
      (progn
          (setq ss (ssdiff ss ss1))
          (while (setq s1 (ssname ss (setq i (1+ i))))
            (setq m (- nn (length (member (xyp-DXF 1 s1) lst))))
            (xyp-SubUpd s1 62 m)
          )
      )
      )
    )
)
(princ)
)

lyqiezi 发表于 2014-4-17 14:04:25

品茗新秀 发表于 2014-4-17 13:27 static/image/common/back.gif
(setq ss2 (ssget '((0 . "TEXT"))))如果能加上前一个选择集中的文字名称就好了

这个想过,用处就是避免原先选择集中有重复文字,但是这个修改很容易,自己想办法吧,我还要搞清楚list的问题
页: 1 [2] 3
查看完整版本: 求点选一文字,框选一定区域内的文字,如果该文字与点选文字相同