纯瞎折腾--直线命令
(defun c:tt5 (/ *error* loop pt1 pt2 ptlst);;直线命令(defun *error* (msg)(grtext 1 "*取消*"))
(setq pt1 (getpoint "\n指定第一点:") ptlst (cons pt1 ptlst) loop t)
(while loop
(initget "U C")
(setq pt2 (getpoint (if (< 2 (length ptlst)) "\n指定下一点或 [闭合(C)/放弃(U)]:" "\n指定下一点或 [放弃(U)]:") pt1))
(cond ((= pt2 "U") (if (= 1 (length ptlst)) (setq loop nil) (progn (entdel (entlast)) (setq pt1 (car ptlst) ptlst (cdr ptlst)))));放弃
((= pt2 "C")(if (< 2 (length ptlst)) (progn (entmake (list '(0 . "LINE") (cons 10 pt1) (cons 11 (last ptlst)))) (setq loop nil)) (princ "\n需要点或选项关键字。")));闭合
((= (type pt2) 'LIST)(entmake (list '(0 . "LINE") (cons 10 pt1) (cons 11 pt2))) (setq ptlst (cons pt1 ptlst) pt1 pt2 ));画线
((setq loop nil))
);cond
);while
(if (= pt2 "U") (progn (princ "\n已经放弃所有线段。") (c:tt5)))
(princ)
)
能不能右击鼠标连续后退? 本帖最后由 start4444 于 2020-10-20 12:18 编辑
bai2000 发表于 2020-10-20 11:01
能不能右击鼠标连续后退?
cond 里面4个选项,1是U ,2是C,3是选点画线,4是其他,包含了鼠标右键,你把4选项改为u的那个项就行了,自己折腾吧 仿造pline命令,有创意!!! 怎么感觉和line命令没啥区别 仿造pline命令,有创意!!! 这跟line命令有什么区别? 感觉更像pline 请问能不能加入标注功能?就是每画一条线都自动标长度。 楼主写的很有意思,
页:
[1]