(defun pull ( / )
(setq b1 0)
(while (/= b 3)
(progn
(setq a (grread 2 nil))
(coord)
(if (and (= b 2) (= b2 4)) (setq b 4))
(setq b2 b)
(setq b (car a))
(cond
((or (= b 5) (= b 12) );只移动十字光标时
(progn
(setq pframe (cadr a))
(field pstart pframe an0)
(endp pstart pframe ang2)
(if (>= (distance plast pframe) 0.1)
(progn
(drag pstart polde plast)
(setq plast pframe polde pend)
) ;for progn
) ;for if
) ;for progn
) ;for cond1
( (= b 3);用鼠标在屏幕上点取一点时
(progn
(setq pframe (cadr a))
(field pstart pframe an0)
(endp pstart pframe ang2)
(if (>= (distance plast pframe) 0.1)
(progn
(grdraw pstart polde -1 0)
(setq plast pframe polde pend)
) ;for progn
) ;for if
) ;for progn
) ;for cond1
((= b 2);键盘输入
(progn
(setq c1 (cadr a))
(cond ((= c1 138) (ant)) ;F2
((= c1 139) (leng)) ;F3
((= c1 140) ;F4
(progn
(setq b2 4)
(command"zoom" "0.7x")
)
) ;for (= c1 140)
((= c1 141) ;F5
(progn
(setq b2 4)
(command"zoom" "1.4x")
)
) ;for (= c1 141)
((= c1 13) (home))
((= c1 27) (home))
(T (princ "\n 未定义的键"))
) ;for cond
(princ "\n F2/F3/F4/F5/ESC/Return /下一点:")
);for progn
);for (cond (= b 2))
((= b 4);点取下拉菜单时
(progn
(setq c1 (cadr a))
(princ "\n")
(cond ((= c1 6005)
(progn
(command"zoom" "w")
(princ "\n 第一角点:")
(command pause)
(princ "\n 第二角点:")
(command pause)
)
) ;for (= c1 6005)
((= c1 6007)
(command"zoom" "p" ))
((= c1 6008)
(command"zoom" "a" ))
((= c1 6011)
(progn
(command"pan")
(princ "\n 第一参考点:")
(command pause)
(princ "\n 第二参考点:")
command pause)
)
) ;for (= c1 6011)
;;else
(T (princ "\n 未定义的菜单"))
) ;for cond
(princ "\n F2/F3/F4/F5/ESC/Return /下一点:")
) ;FOR PROGN
) ;for (cond (= b 4))
(T (home) ) ;for else
) ;for cond
) ;for progn
) ;for while
) ;for defun pull
;; draw() , 绘制直线子程序
(defun draw ( / )
(while (/= b1 1)
(progn
(if (= b 3)
(progn
(command"line" pstart pend "")
(princ "\n F2/F3/F4/F5/ESC/Return /下一点:")
(setq b 0 b1 1)
(setq pstart pend)
);for progn
); for if
(pull)
) ;for progn
) ;for while
(grdraw pstart pend -1 0)
(grdraw pend pframe -1 0)
) ;for defun draw
;;;;主程序
(defun c:os ( / b b1 b2 c pstart pend pframe plast ang2
dist scmd ccoords olderr cosmode )
;;; an0 len0 are defined out program
(init)
(draw)
(princ "\n")
(command"redraw")
(setq *error* olderr)
(setvar "cmdecho" scmd)
(setvar "osmode" cosmode)
(setvar "coords" ccoords)
(princ "\n\n\t ------角度捕捉2.0版------\n")
最新相关文章
发表评论