尝试
- (defun c:Test (/ *error* c s n sn e aa ab ac)
- ;; Tharwat 23.05.2014 ;;
- (defun *error* (msg)
- (command "_.ucs" "_w")
- (if c (setvar 'cmdecho c))
- (if (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")
- (princ msg)
- (princ (strcat "Error : < ** " msg " ** >"))
- )
- )
- (if (zerop (getvar 'PDMODE))
- (setvar 'PDMODE 34)
- )
- (setq c (getvar 'cmdecho))
- (setvar 'cmdecho 0)
- (if (setq s (ssget '((0 . "TEXT"))))
- (repeat (setq n (sslength s))
- (setq sn (ssname s (setq n (1- n))))
- (setq e (textbox (list
- (cons -1 sn)
- )
- )
- )
- (command "_.ucs" "Object" sn)
- (setq aa (car e)
- ab (cadr e)
- ac (list (car ab) (cadr aa))
- )
- (command "_.point"
- "_non"
- (list (car ac)
- (- (cadr ac) (/ (cdr (assoc 40 (entget sn))) 2.))
- )
- )
- )
- )
- (command "_.ucs" "_w")
- (setvar 'cmdecho c)
- (princ)
- )
|