可能是系统问题,在Mac下编写的,在win下会编码错误,试一下面修改的
 - (defun c:gg (/ p m s mode os-old pt undo lst)
- (setvar "cmdecho" 0)
- (setq os-old (getvar "OSMODE"))
- (setq mode 1)
- (setq undo '())
- (setvar "OSMODE" 1535)
- (setvar "AUTOSNAP" 16383)
- (princ "\n右键:切模式(当前:垂直│) | 左键:画 | Z:撤 | 空格:退\n")
- (while (setq p (grread t))
- (setq m (car p))
- (setq pt (cadr p))
- (setq s (if (and (listp pt) pt) (osnap pt "_end,_mid") nil))
- (setq pt (if s s pt))
- (cond
- ((= m 25)
- (setq mode (if (= mode 0) 1 0))
- (princ (strcat "\n切换: " (if (= mode 0) "水平─" "垂直│") "\n"))
- )
- ((= m 3)
- (command "_xline" (if (= mode 0) "_h" "_v") pt "")
- (setq lst (entlast))
- (if lst (setq undo (cons lst undo)))
- (princ (strcat "→ 已画: " (if (= mode 0) "水平─" "垂直│") (if s " (捕点)" "") "\n"))
- )
- ((and (= m 2) (= (cadr p) 122))
- (if undo
- (progn
- (command "_erase" (car undo) "")
- (setvar "cmdecho" 1)
- (setq undo (cdr undo))
- (princ "\n→ 已撤回\n")
- )
- (princ "\n无操作可撤\n")
- )
- )
- ((and (= m 2) (member (cadr p) '(32 27)))
- (setvar "OSMODE" os-old)
- (princ "\n工具退出\n")
- (exit)
- )
- )
- )
- (princ)
- )
|