(defun c:wq (/ pt pt2 i j n Le ;剩余长度 Long ;每段长度 Ang ;每段角度 Ang_W ;分割线角度 pt_W pt_Ws pt_O pt_N pt_WE os) (setvar "cmdecho" 0) (setq pt (getpoint "\n输入起点:")) (setq pt_N pt) (setq pt_O pt) (setq Le 0) (command "_.pline" pt_O) (while (setq pt_N (getpoint pt_N "\n输入下一点:")) (command pt_N) (setq Long (+ Le (distance pt_N pt_O))) (setq Ang (angle pt_O pt_N)) (setq Ang_W (- Ang (/ pi 2))) (setq n (fix (/ Long 10))) (setq pt_W (polar pt_O Ang (- 10 Le))) (setq pt_WE (polar pt_W Ang_W 0.5)) (setq pt_Ws (append pt_Ws (list (list pt_W pt_WE)))) (setq Le (- Long (* n 10))) (setq j 1) (while (< j n) (setq pt_W (polar pt_W Ang 10)) (setq pt_WE (polar pt_W Ang_W 0.5)) ;; (command "_.pline" pt_W pt_WE "") (setq pt_Ws (append pt_Ws (list (list pt_W pt_WE)))) (setq j (1+ j)) ) (setq pt_O pt_N) ) (command "") (setq os (getvar "osmode")) (setvar "osmode" 0) (setq ent (entlast)) (command "_.offset" 0.5 ent pt_WE "") ;| (mapcar \ '(lambda (lst) (command "_.pline" (car lst) (cadr lst) "")) pt_Ws ) |;
(mapcar (function (lambda (lst) (command "_.pline" (car lst) (cadr lst) "") ) ) pt_Ws ) (setvar "osmode" os) (princ) ) 设置个“wq”图层?/ 需更多资料 / or 单纯的Layer命令? |