 - [FONT=courier new](defun C:zbbz (/ old_textsize zb gd cld)
- (setq o_cm (getvar "cmdecho")
- o_os (getvar "osmode")
- o_bl (getvar "blipmode")
- o_dz (getvar "dimzin")
- old_textsize (getvar "textsize")
- gd (getreal
- (strcat "指定标注文字高度:<" (rtos old_textsize 2) ">")
- )
- )
- (setvar "modemacro"
- "坐标标注程序键入zbbz执行,程序设计:小谢"
- )
- (setvar "cmdecho" 0)
- (setvar "blipmode" 0)
- (initget 4)
- (setvar "dimzin" 0)
- (if (= gd nil)
- (setq gd old_textsize)
- )
- (setq jd (getint "\n指定坐标精度:<3>"))
- (if (= jd nil)
- (setq jd 3)
- )
- (command "UNDO" "BE")
- (while (setq zb (getpoint "\n指定坐标点 : "))
- (setq cld (getpoint zb "\n指定标注位置 : ")
- len (max (strlen (strcat "x=" (rtos (cadr zb) 2 jd)))
- (strlen (strcat "y=" (rtos (car zb) 2 jd)))
- )
- x (strcat "x=" (rtos (cadr zb) 2 jd))
- y (strcat "y=" (rtos (car zb) 2 jd))
- ang (angle zb cld)
- )
- (setvar "osmode" 0)
- (command "line")
- (command (list (car zb) (cadr zb)))
- (command (list (car cld) (cadr cld)))
- (command "")
- (if (or (and (>= (* (/ ang pi) 180) 0)
- (<= (* (/ ang pi) 180) 90)
- )
- (and (>= (* (/ ang pi) 180) 270)
- (<= (* (/ ang pi) 180) 360)
- )
- )
- (progn
- (command "line")
- (command (list (car cld) (cadr cld)))
- (command (list (+ (car cld) (* gd len 0.8)) (cadr cld)))
- (command "")
- (setq ptx (list (car cld) (+ (cadr cld) (/ gd 1.5)))
- pty (list (car cld) (- (cadr cld) (/ gd 1.5)))
- )
- (command "text" "ml" ptx gd "0" x)
- (command "text" "ml" pty gd "0" y)
- )
- (progn
- (command "line")
- (command (list (car cld) (cadr cld)))
- (command (list (- (car cld) (* len gd 0.8)) (cadr cld)))
- (command "")
- (setq ptx (list (- (car cld) (* gd len 0.8))
- (+ (cadr cld) (/ gd 1.5))
- )
- pty (list (- (car cld) (* gd len 0.8))
- (- (cadr cld) (/ gd 1.5))
- )
- )
- (command "text" "ml" ptx gd "0" x)
- (command "text" "ml" pty gd "0" y)
- )
- )
- (setvar "osmode" o_os)
- )
- (command "UNDO" "E")
- (setvar "dimzin" o_dz)
- (setvar "blipmode" o_bl)
- (setvar "osmode" o_os)
- (setvar "cmdecho" o_cm)
- )
- (princ)[/FONT]
|