这有点粗糙,但这是一个开始,并给出了方法。有一个问题可能是多段线是按颜色而不是按层。
- (defun c:polhatch ( / obj ss len layname)
- (setq oldhatch (getvar "HPNAME"))
- (setq ss (ssget "X" (list (cons 0 "LWPOLYLINE"))))
- (setq len (sslength ss))
- (setq x 0)
- (repeat len
- (setq obj (entget (ssname ss x)))
- (setq layname (cdr (assoc 8 obj)))
- (setvar "Clayer" layname)
- ;(setvar "hpname" "newhatchpattern") ;Sets a default hatch pattern name of up to 34 characters without spaces
- (command "-hatch" "S" (cdr (assoc -1 obj)) "" "")
- (setq x (+ x 1))
- )
- (setvar "Hpname" oldhatch) ;reset back to original pattern
- )
|