@Muhammed.OPERA ,
I am a big proponent of entmake also, so this was a fun challenge for me. There are 2 methods to approach this..
1) (the method I used) Running "entmakex-hatch" function after One large list-of-lists has been created. This will generate ONE hatch. (e.g. If 5 items are selected in selection set, all 5 will be hatched, but only 1 hatch will exist)
2) Running "entmakex-hatch" function after Each entity list has been created. This would create n hatches for n objects in Selection Set. (e.g. If 5 items are selected, all 5 will have individual hatches)
I made some mods to Elpanov's Function that appear to be doing the correct hatching. You might have to spend a couple minutes fine-tuning the color/layer that you want the hatch on, but I hope this can do it for you. This method uses an entity name and extracts vertices/bulges.. I would have no idea how to approach this by selecting an interior point. Here you go:
(defun c:TEST ( / ss cnt e hList)
(setq ss nil)
(prompt "\nSelect Closed Polylines to Hatch: ")
(while (not (setq ss (ssget '((0 . "LWPOLYLINE")))))
(prompt "...invalid selection set.")
);while
(setq cnt (sslength ss))
(while (<= 0 (setq cnt (1- cnt)))
(setq e (ssname ss cnt))
(if (setq tmp (CreateHatchList e))
(setq hList (cons tmp hList))
);if
);while
(setq hList (reverse hList))
(if (entmakex-hatch hList 0.0 "ANSI31" 1.0)
(prompt "\nSuccess!")
(prompt "\n...Failure.")
);if
(princ)
);defun
(defun CreateHatchList (e / i j pList found)
(foreach i (entget e)
(if (= 10 (car i))
(progn
(setq pList (cons i pList))
(setq found nil j (member i (entget e)))
(while (and (not found) (< 0 (length j)))
(if (= 42 (car (car j)))
(setq pList (cons (car j) pList) found t)
);if
(setq j (cdr j))
);while
);progn
);if
);foreach
(reverse pList)
);defun
(defun entmakex-hatch (l a n s)
;; By ElpanovEvgeniy
;; L - list point
;; A - angle hatch
;; N - name pattern
;; S - scale
;; return - hatch ename
(entmakex
(apply
'append
(list
(list '(0 . "HATCH") '(100 . "AcDbEntity") '(410 . "Model") '(100 . "AcDbHatch")
'(10 0.0 0.0 0.0) '(210 0.0 0.0 1.0)
(cons 2 n)
(if (= n "SOLID")
'(70 . 1)
'(70 . 0)
) ;_ if
'(71 . 0)
(cons 91 (length l))
) ;_ list
(apply 'append
(mapcar '(lambda (a)
(apply 'append
(list (list '(92 . 7) '(72 . 1) '(73 . 1) (cons 93 (/ (length a) 2)))
(mapcar '(lambda (b) b) a)
'((97 . 0))
) ;_ list
) ;_ apply
) ;_ lambda
l
) ;_ mapcar
) ;_ apply
(list '(75 . 0) '(76 . 1) (cons 52 a) (cons 41 s) '(77 . 0) '(78 . 1) (cons 53 a)
'(43 . 0.) '(44 . 0.) '(45 . 1.) '(46 . 1.) '(79 . 0) '(47 . 1.) '(98 . 2)
'(10 0. 0. 0.0) '(10 0. 0. 0.0) '(451 . 0) '(460 . 0.0) '(461 . 0.0) '(452 . 1)
'(462 . 1.0) '(453 . 2) '(463 . 0.0) '(463 . 1.0) '(470 . "LINEAR")
) ;_ list
) ;_ list
) ;_ apply
) ;_ entmakex
) ;_ defun
Before...

After...

Best,
~DD