;;;--------墙线---------- (defun C:WL (/ L1 L2 PT1 PT2 PT3 PT4 KU) (if (setq L1 (getpoint "\nPick point:")) (progn (setq OLD_CMDECHO (getvar "CMDECHO")) (setvar "CMDECHO" 0) (setq CL (getvar "clayer")) (setvar "EDGEMODE" 1) (command "-layer" "m" "WALL" "C" "1" "" "") ; LINEWID 存储多段线的缺省宽度 (setvar "PLINEWID" 60) (while (setq L2 (getpoint L1 "\nPick point:")) (setq KU (angle L1 L2)) (setq PT1 (polar L1 (+ KU (* 0.5 pi)) 120)) (setq PT2 (polar L1 (+ KU (* 1.5 pi)) 120)) (setq PT3 (polar L2 (+ KU (* 0.5 pi)) 120)) (setq PT4 (polar L2 (+ KU (* 1.5 pi)) 120)) ;;绘制 (command "_.Pline" "non" PT1 "non" PT3 "") (setq ENT13 (entlast) S1 (list ENT13 PT1) ) (command "_.Pline" "non" PT2 "non" PT4 "") (setq ENT24 (entlast) S2 (list ENT24 PT2) ) ;;对上一交点处尝试进行修剪或延伸 (if S3 (progn (command "_.TRIM" S1 S3 "" S1 S3 "") (command "_.TRIM" S2 S4 "" S2 S4 "") (command "_.EXTEND" S1 S3 "" S1 S3 "") (command "_.EXTEND" S2 S4 "" S2 S4 "") ) ) ;;为下一段做准备 (setq S3 (list ENT13 PT3) S4 (list ENT24 PT4) L1 L2 ) ) ;;图层名称应是字符串 (setvar "clayer" CL) (setvar "CMDECHO" OLD_CMDECHO) ) ) (princ) ) |