清风明月名字 发表于 2013-7-7 19:50:52

CJ001035命令选中缩放到含某内容的第N个文字上窗口高0点2.lsp

要能够根据图元的外轮廓来决定窗口的高度就好了,请哪位高手完善一下
(defun c:tt ( / ent qq *过滤用的字符* 输入 输入2 图元组码 *序号* 坐标点对) ;只炸开理正图元"CCOMPLEXTEXT,CPMTEXTCDBPMZK,CDBDMX,CGTEXT,GLZTEXT",
;当选择集中有两个以上图元时成立,如果只有一个图元,则运行错误
;;qaflags这个系统变量一般为0,但如果为零一次就只能炸开一个图元,为1则可以炸开所以选定的图元。但它还有其它作用,所以最好设回0
(setvar "qaflags" 1)
(IF (=( setq 输入2 (getstring "选择集中第几个,是以0开始的,即*序号*") ) "")
(PRINC *序号*)
(setq *序号* 输入2)
)


( IF (= *序号* nil)
(SETQ *序号* 0)
)

(SETQ *序号* (atoI *序号*))

(IF (=( setq 输入 (vl-princ-to-string (getstring "*过滤用的字符*")) ) "")
(PRINC *过滤用的字符*)
(setq *过滤用的字符* 输入)
)

( IF (= *过滤用的字符* NIL)
(SETQ *过滤用的字符* (getstring "必须输入*过滤用的字符*"))
)




(if (setq QQ (ssget "X" (list (cons 0"TEXT") (cons 1(strcat "*" *过滤用的字符* "*")))))
(progn
; (IF(= 1 (sslength QQ))
; (setq entQQ )
    (setq ent (ssname QQ *序号*))
; );IF结束

(setq 图元组码 (entget ent))
      ; (setq 图元类型 (assoc '0 图元组码))
      ; (setq 图元类型 (cdr 图元类型))
      ; (if (= 图元类型 "TEXT")(progn
      (setq 坐标点对(CDR (assoc '10 图元组码)))
   
(COMMAND "ZOOM" "C" 坐标点对 0.2 "")
)
)
(SETQ *序号* (+ *序号* 1))
(setvar "qaflags" 0)
(princ)
)
页: [1]
查看完整版本: CJ001035命令选中缩放到含某内容的第N个文字上窗口高0点2.lsp