


(if (< (length vtx) 3) (setq vtx (reverse (cons 0.0 (reverse vtx)))))

(defun c:plarea (/ cmde ent e_typ e_lst area vtx x_lst y_lst z_lst x_pt y_pt z_pt c_lst v_lst) If you need the area string to have a prefix eg "Area : " with the units at the end please let me know. If PLAREA doesn't work for you replace the red item with whatever you want, remembering that the "c:" must preceed the new command name. It will now insert an MText object as opposed to a Text object as this was easier to centre within the polyline. I've updated the lisp as I noticed there was stil a vl- function within it (replaced) and I've change the command to PLAREA. Y_pt (/ (apply '+ (mapcar '(lambda (x) (cadr x)) v_lst)) (length v_lst))

X_pt (/ (apply '+ (mapcar '(lambda (x) (car x)) v_lst)) (length v_lst)) V_lst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (< 9 (car x) 11)) e_lst)) (cond ( (/= "SEQEND" (cdr (assoc 0 (entget ent)))) (while (/= "SEQEND" (cdr (assoc 0 (entget ent)))) (cond ( (/= 0 (getvar 'cmdecho)) (setq cmde (getvar 'cmdecho)) (setvar 'cmdecho 0))) (defun c:PLA (/ cmde ent e_typ cnt area vtx x_lst y_lst z_lst x_pt y_pt z_pt c_lst) (defun *dxf* (code lst) (cdr (assoc code lst))) The area text at present is just the area converted to a string and is inserted on the current layer, in the current style at the current text height. It loops until you click on a blank area of screen. Try this, it should work on a MAC as it only uses autolisp, and I think you can also use "getpropertyvalue"
