奇怪,应该不会花那么长时间。。。
如果您只想选择一部分,请尝试以下操作:
- (defun c:txtHts (/ ss i j en en2 ht1 ht2 ht3 pt1 pt2 flag)
- (princ "\nSelect Text: ")
- (setq ss (ssget '((0 . "TEXT")(8 . "AS,OGL")))
- i -1)
- (while (setq en (ssname ss (setq i (1+ i))))
- (if (eq (cdr (assoc 8 (entget en))) "AS")
- (progn
- (setq ht1 (atof (cdr (assoc 1 (entget en))))
- pt1 (cdr (assoc 10 (entget en)))
- j -1
- flag nil)
- (while (and (not flag)
- (setq en2 (ssname ss (setq j (1+ j)))))
- (if (eq (cdr (assoc 8 (entget en2))) "OGL")
- (progn
- (setq pt2 (cdr (assoc 10 (entget en2))))
- (if (and (equal (car pt1) (car pt2) 0.5)
- (equal (cadr pt1) (cadr pt2) 0.5))
- (setq flag T)
- )
- )
- )
- )
- (if flag
- (progn
- (setq ht2 (atof (cdr (assoc 1 (entget en2)))))
- (setq ht3 (- ht2 ht1))
- (entmake (list (cons 0 "TEXT")
- (cons 1 (rtos ht3 2 2))
- (cons 8 "0")
- (cons 10 pt1)
- (cons 40 0.2)
- (cons 100 "AcDbEntity")
- (cons 100 "AcDbText")
- )
- )
- )(princ "\nOGL Text Not Found.")
- )
- )
- )
- )
- (princ)
- )
|