将cad的填充转化为多段线lisp脚本如下:
(defun c:zs()
(COMMAND "UNDO" "BEGIN" "")
(SETVAR "CMDECHO" 0)
(SETVAR "PLINEGEN" 1)
(SETVAR "SNAPMODE" 0)
(princ "\nZS: ")
(setq fltr '((-4 . "<OR")
(0 . "hatch")
(8 . "8112")
(-4 . "OR>")
))
(setq ss (ssget "x" fltr))
(if (/= ss nil)
(progn
(setq sslen (sslength ss))
(setq loop 0)
(while (< loop sslen)
(setq ent (ssname ss loop))
(setq ed (entget ent))
(setq pt (assoc 8 ed))
(setq layer (cdr pt))
(command "layer" "m" layer "")
(command "hatchedit" ent "B" "P" "Y")
(setq loop (+ 1 loop))
)
))
(COMMAND "UNDO" "END" "")
)