Here's an old method that should work in LT for getting Area.
Uses (command ".area" O ent) to set system variable 'Area (for entity 'ent)
Give it a try. I'm not sure why your original code prompts for selecting polylines to
(subtract), but code shows addition ? Anyway, change as desired.
Cheers
ECCAD
(defun C:SubArea ( )
(vl-load-com)
;; Select Outer Polyline for Area
(setq pl1 (car (entsel "\nSelect Outer Polyline for Area:")))
(if pl1
(progn
(redraw pl1)
(command ".area" "O" pl1); set var 'area to this area
(setq pl1_area (/ (getvar "area") 144)); Area in Sq. Ft.
(if pl1_area
(progn
(setq subA 0 I 0)
(princ "\n<<<< Select Objects to Subtract >>>>")
(setq plS (ssget)); Select Objects to Subtract
(repeat (sslength plS)
(setq plx (ssname plS I)); each item
(setq etype (cdr (assoc 0 (entget plx))))
(if (= etype "LWPOLYLINE")
(progn
(command ".area" "O" plx)
(setq subA (+ subA (/ (getvar "area") 144)))
); progn
); if
(setq I (+ I 1))
); repeat
(if (> subA 0.0)
(progn
(setq TotA (- pl1_area subA)); Subtract Areas from Outer Polyline
(setq str (rtos TotA 2 2))
(alert (strcat "\nTotal Area: " str " SF"))
); progn
); if
); progn
); if
); progn
); if
(princ)
); function
(princ)