- (defun c:test ( / Text obj [color=blue]objent[/color] ht str ptList)
- (defun Text (pt hgt wd str)
- (entmakex
- (list (cons 0 "TEXT")
- (cons 10 pt)
- (cons 40 hgt)
- (cons 41 wd)
- (cons 1 str))))
- (cond (
- (and
- (setq obj (car (entsel "\nSelect Text:")))
- (setq [color=blue]objent[/color] (entget obj))
- (eq (cdr (assoc 0 [color=blue]objent[/color])) "TEXT")
- (setq ht (cdr (assoc 40 [color=blue]objent[/color])))
- (setq str
- (vl-remove-if
- '(lambda (y)
- (eq " "
- (chr y)))
- (vl-string->list (cdr (assoc 1 [color=blue]objent[/color])))))
- [color=blue](progn
- (vla-GetBoundingBox (vlax-ename->vla-object obj) 'a 'b)
- (setq ptList (list
- (setq Pt
- (vlax-safearray->list a))
- )))
- [/color] (repeat (1- (length str))
- (setq ptList (cons
- (setq pt (vl-list*
- (+ (* ht 1.5)
- (car pt))
- (cdr pt)))
- ptList)))
- (mapcar '(lambda (k l)
- (Text l (cdr (assoc 40 objent)) (cdr (assoc 41 objent))(chr k)))
- str
- (reverse ptList))
- [color=blue](entdel obj)
- [/color] )
- )
- )
- (princ)
- )
这是我能得到的。 |