weiqi 发表于 2013-1-13 23:13:46

求关于点选框输出框内文字

本帖最后由 weiqi 于 2013-1-13 23:24 编辑

希望点选框    提取框内 两个图层的文字(框内有其他图层的文字)并输出(E-ID 和 E-PE)里的文字。(E-ID排在前,E-PE的文字排在后 输出)




感谢 群里 阿然大哥提供的一段 提取一个图层 内的文字并输出    图层里的所有 文字并输出。
但我希望是有 范围的输出。
望高手出手指点指点

叮咚 发表于 2013-1-13 23:13:47

本帖最后由 叮咚 于 2013-1-14 20:03 编辑

学习重要,
也只有你这样选吧

已改

weiqi 发表于 2013-1-14 01:37:04

本帖最后由 weiqi 于 2013-1-14 01:37 编辑

边查边写,自己试着改了一下。


有几个问题。
我这样写的时候
(ssget(list (cons 8 "E-ID,E-PE")(cons 0 "TEXT"))
选对象就可以。
但是我如果先选对象
(setq s1 (ssget))对象集定义为s1
后 想 从 s1 中加入条件 (list (cons 8 "E-ID,E-PE")(cons 0 "TEXT") 得怎么写呢。

weiqi 发表于 2013-1-14 01:39:03

本帖最后由 weiqi 于 2013-1-14 01:55 编辑

第三个箱错误 是因为第三个箱的文字 并不在 E-ID 和 E-PE上边。

还搞不懂 ,这个是以什么方式 来计算先输出哪个的。

貌似是按 生成时间来的,要是能就近距离按范围来输出就好了。。。。

免得,大量框选的时候。由于画图的时候顺序不对。    输出的顺 序乱了。

weiqi 发表于 2013-1-14 19:21:26

感谢楼上~但是 貌似 只能列出 一个屏幕内的内容,如果在框内,但是屏幕没显示的话,列不出来

ZZXXQQ 发表于 2013-1-15 08:02:09

CAD版本不同,有些命令不一样。

(defun c:cdx ()
(setvar "cmdecho" 0)
(princ "\n选择方框<空格退出>:")
(while (setq ss (ssget ":e:s" (list (cons 0 "lwpolyline"))))
(setq lin (ssname ss 0) data (entget lin) pts nil)
(foreach xx data (if (= 10 (car xx))(setq pts (cons (cdr xx) pts))))
(command ".zoom" "W" (car pts) (caddr pts))
(setq ens (ssget "cp" pts '((0 . "TEXT") (8 . "E-PE,e-id"))))
(command ".zoom" "p")
(or ens (setq ens (ssadd)))
(setq len (sslength ens) n 0 strs nil)
(while (< n len)
   (setq en (ssname ens n) data (entget en))
   (setq strs (cons (cons (cdr (assoc 10 data))(strcat " " (cdr (assoc 1 data)))) strs))
   (setq n (1+ n))
)
(if strs (progn
   (setq strs (vl-sort strs '(lambda(e1 e2) (> (cadar e1)(cadar e2)))))
   (setq str "")
   (foreachxx strs (setq str (strcat str (cdr xx))))
   (initget 1)
   (setq pt-ins (getpoint "\n指定一点:"))
   (entmake
    (list
   '(0 . "TEXT")
   '(100 . "AcDbEntity")
   '(8 . "E-PE")
   '(62 . 110)
   '(100 . "AcDbText")
   (cons 10 pt-ins)
   '(40 . 444.444)
   (cons 1str)
   '(41 . 0.7)
   '(7 . "HZ")
    )
   )
)
   (princ "\n不包含指定层文字!")
)
(princ "\n选择方框<空格退出>:")
)
(setvar "cmdecho" 1)
(princ)
)

cable2004 发表于 2013-1-15 12:13:22

为什么要限制图层,合并框里面的就可以?
页: [1]
查看完整版本: 求关于点选框输出框内文字