A try with this?
Code:
(vl-load-com)
(defun c:surf_poly-closed ( / js nb ent dxf_ent ptlst n pt_ins val_txt)
(princ "\nSelect closed polylines")
(setq js
(ssget
(list
'(0 . "*POLYLINE")
'(-4 . "<AND")
'(-4 . "<NOT")
'(-4 . "&")
'(70 . 120)
'(-4 . "NOT>")
'(-4 . "&")
'(70 . 1)
'(-4 . "AND>")
(cons 67 (if (eq (getvar "CVPORT") 1) 1 0))
(cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model"))
)
)
)
(cond
(js
(repeat (setq nb (sslength js))
(setq
ent (ssname js (setq nb (1- nb)))
dxf_ent (entget ent)
ptlst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) dxf_ent))
n (float (length ptlst))
pt_ins (list (/ (apply '+ (mapcar 'car ptlst)) n) (/ (apply '+ (mapcar 'cadr ptlst)) n))
val_txt (rtos (vlax-get-property (vlax-ename->vla-object ent) "Area") 2 0)
)
(entmake
(list
'(0 . "TEXT")
'(100 . "AcDbEntity")
(cons 67 (if (eq (getvar "CVPORT") 1) 1 0))
(cons 410 (if (eq (getvar "CVPORT") 1) (getvar "CTAB") "Model"))
(cons 8 (getvar "CLAYER"))
'(100 . "AcDbText")
(cons 10 pt_ins)
(cons 40 (getvar "TEXTSIZE"))
(cons 1 val_txt)
(cons 50 (+ pi (angle '(0 0 0) (getvar "UCSYDIR"))))
'(41 . 1.0)
'(51 . 0.0)
(cons 7 (getvar "TEXTSTYLE"))
'(71 . 0)
'(72 . 1)
(cons 11 pt_ins)
(cons 210 (trans '(0 0 1) 1 0 T))
'(100 . "AcDbText")
'(73 . 2)
)
)
)
)
)
(prin1)
)