Try this..........Use CHHL.....
(defun c:CHHL (/ lst l1 ss Data DataT N N1)
(setvar 'cmdecho 0)
(princ "\nSelect Hatch...")
(setq selectionset (ssget '((0 . "HATCH"))))
(setq osm (getvar 'osmode))
(setvar 'osmode 0)
(repeat (setq N (sslength selectionset))
(setq Data (ssname selectionset (setq N (- N 1))))
(setq lst (Poly_Cor_Extr 10 (entget Data)))
(setq l1 (remove-at lst (- (length lst) 1)))
(setq l1 (remove-at l1 0))
(setq ss (ssget "_CP" l1 '((0 . "TEXT"))))
(repeat (setq N1 (sslength ss))
(setq DataT (ssname ss (setq N1 (- N1 1))))
(entmod (subst (assoc 8 (entget DataT)) (assoc 8 (entget Data)) (entget Data)))
)
(command "_pline")
(while (= (getvar "cmdactive") 1 )
(repeat (setq x (length l1))
(command (nth (setq x (- x 1)) l1))
)
(command "C")
)
(entmod (subst (assoc 8 (entget Data)) (assoc 8 (entget (entlast))) (entget (entlast))))
)
(setvar 'osmode osm)
(setvar 'cmdecho 1)
(princ)
)
(defun Poly_Cor_Extr (key cor / val cor_list)
(foreach val cor
(if (eq key (car val)) (setq cor_list (cons (cdr val) cor_list)))
)
(reverse cor_list)
)
(defun remove-at (lst pos / head)
(repeat pos
(setq head (cons (car lst) head)
lst (cdr lst)
)
)
(append (reverse head) (cdr lst))
)
Debashis Bhunia
Co-Founder of Geometrifying Trigonometry(C)
________________________________________________
Walking is the First step of Running, Technique comes Next....