Try this draft and change the layer names as you require with the color number as well .
Code:
(defun c:Test (/ layers color ss)
;; Tharwat 04.12.2014 ;;
(setq layers "Layer1,Layer2,Layer3" ;; <= Layer names
color 1 ;; <= Color number between 1 to 256
)
(if (setq ss (ssget "_X"
(list '(0 . "LWPOLYLINE")
(cons 8 layers)
'(-4 . "&=")
'(70 . 1)
)
)
)
((lambda (i / sn h)
(while (setq sn (ssname ss (setq i (1+ i))))
(setq
h (vla-addhatch
(vlax-get
(vla-get-activelayout
(vla-get-ActiveDocument (vlax-get-acad-object))
)
'block
)
acHatchPatternTypePredefined
"SOLID"
:vlax-true
)
)
(vlax-invoke
h
'AppendOuterLoop
(list (vlax-ename->vla-object sn))
)
(vlax-invoke h 'Evaluate)
(vla-put-color h color)
)
)
-1
)
)
(princ)
)(vl-load-com)