写得很快,
- (defun c:test ( / area en nm pt )
- (while
- (progn (setvar 'ERRNO 0) (setq en (car (entsel)))
- (cond
- ( (= 7 (getvar 'ERRNO))
- (princ "\nMissed, try again.")
- )
- ( (eq 'ENAME (type en))
- (if (vl-catch-all-error-p
- (setq area (vl-catch-all-apply 'vlax-curve-getarea (list en)))
- )
- (princ "\nInvalid Object.")
- )
- )
- ( (setq area nil) )
- )
- )
- )
- (if (and area (setq pt (getpoint "\nPoint for Text: ")))
- (entmake
- (list
- '(0 . "TEXT")
- (cons 210 (setq nm (trans '(0.0 0.0 1.0) 1 0 t)))
- (cons 10 (trans pt 1 nm))
- (cons 40 (getvar 'TEXTSIZE))
- (assoc 8 (entget en))
- (cons 50 (angle '(0.0 0.0 0.0) (trans (getvar 'UCSXDIR) 0 nm t)))
- (cons 1 (rtos (/ area 144.0) 2))
- )
- )
- )
- (princ)
- )
- (vl-load-com) (princ)
|