
- [FONT=courier new]
- (defun tt-text-corners (ename / ang dx dy key p1 p2 p3 p4)
- (if (is-ename ename)
- (progn
- (setq key (th-get-dxf 0 ename)
- ang (th-get-dxf 50 ename)
- )
- (cond
- ((= key "TEXT")
- (txt-text-corners ename)
- )
- ((= key "MTEXT")
- (setq p4 (th-get-dxf 10 ename)
- dx (th-get-dxf 42 ename)
- dy (th-get-dxf 43 ename)
- p3 (polar p4 ang dx)
- p1 (polar p4 (- ang (/ pi 2)) dy)
- p2 (polar p1 ang dx)
- )
- (list p1 p2 p3 p4)
- )
- (t
- nil
- )
- )
- )
- )
- )
- (defun txt-text-corners (ent / ang p0 p1 p2 tb)
- (if (and
- (is-ename ent)
- (= (th-get-dxf 0 ent) "TEXT")
- )
- (progn
- (setq p0 (th-get-dxf 10 ent)
- ang (th-get-dxf 50 ent)
- )
- (setq tb (textbox (entget ent))
- p1 (car tb)
- p2 (cadr tb)
- tb (list p1 (list (car p2) (cadr p1)) p2 (list (car p1)
- (cadr p2)
- )
- )
- )
- (mapcar
- '(lambda (x)
- (polar p0 (+ ang (angle '(0. 0. 0.) x)) (distance '(0. 0. 0.) x))
- )
- tb
- )
- )
- )
- )
- (defun th-get-dxf (g e)
- (cond
- ((= 'ename (type e))
- (cdr (assoc g (entget e)))
- )
- ((= 'list (type e))
- (cdr (assoc g e))
- )
- )
- )
- (defun is-ename (arg)
- (equal (type arg) 'ename)
- )
- [/FONT]
|