;贾氏坐标注记程序;适合各种实体!!! (defun C:zJ() (setvar "cmdecho" 0) (setvar "osmode" 0)
;;以下这句有可能要根据实际情况改一下 (COMMAND "-STYLE" "TTST" "SIMKAI.TTF" 0 0.9 0 "N" "N""")
(setq SC (GETREAL "请输入标注字高<1.0>:")) (if (= sc nil) (setq sc 1) ) (setq LABLE (entget(car (entsel "请选择要标注的实体:")))) (command "color" 5"") (while (SETQ la1 (assoc '10 LABLE))
(SETQ la (CDR la1)) (SETQ JJX (rtos (cadr la) 2 3)) (SETQ JJX (strcat "X=" JJX)) (SETQ JJY (rtos (car la) 2 3)) (SETQ JJY (strcat "Y=" JJY)) ;求标注文字的最大长度 (setq lenx (* (+ (strlen jjx) 1) sc)) (setq leny (* (+ (strlen jjy) 1) sc)) (if (< lenx leny) (setq lenx leny) ) ;求标注线水平段的长度 (setq lenx (* lenx 0.65)) (setq lb (list (+ (car la) (* 2 sc)) (+ (cadr la) (* 2 sc)))) (setq lc (list (+ (car lb) lenx) (cadr lb))) (COMMAND "PLINE" la lb lc"") (command "Text" "j" "bl" (list (+ (car lb) (* 0.5 sc)) (+ (cadr lb) (* 0.4 sc))) (* 1 sc) 0 JJX) (command "Text" "j" "tl" (list (+ (car lb) (* 0.5 sc)) (- (cadr lb) (* 0.5 sc))) (* 1 sc) 0 JJy) (setq LABLE (CDR (MEMBER LA1 LABLE) )) ) (command "color" "BYLAYER" "") ) |