OK I got it!!! I'm sure it could be simplified as I don't think it really needs the IF/ELSE bit for DIMENSIONS anymore.
But it's now globally disabling background fill for DIMS, MTEXT and MLEADERS!!!
Code:
(vl-load-com)
(defun c:unmask (/ ent entdata hnd i newentdata ob1 ss xdata)
(if (setq ss (ssget "X" (list(cons 0 "DIMENSION,MTEXT,MULTILEADER"))))
(repeat (setq i (sslength ss))
(setq hnd (ssname ss (setq i (1- i)))
ent (entget hnd)
)
(cond ((wcmatch (cdr (assoc 0 ent)) "*TEXT")
(setq ob1 (vlax-ename->vla-object hnd))
(vlax-put ob1 'backgroundfill 0)
)
((= (cdr (assoc 0 ent)) "MULTILEADER")
(setq ob1 (vlax-ename->vla-object hnd))
(vlax-put ob1 'textbackgroundfill 0)
)
(T
(setq ent (entget hnd '("ACAD")))
(if (or (not (setq xdata (assoc -3 ent)))
(and (setq xdata (assoc -3 ent))
(member '(1000 . "DSTYLE") (last xdata))
(/= (cdr (assoc 1070 (reverse (last xdata)))) 1)
(setq ent (vl-remove-if '(lambda (x) (= -3 (car x))) ent))
)
)
(setq entdata '((-3 ("ACAD" (1000 . "DSTYLE") (1002 . "{") (1070 . 69) (1070 . 0) (1002 . "}"))))
newentdata (append ent entdata)
)
(setq ent (vl-remove-if '(lambda (x) (= -3 (car x))) ent)
entdata '((-3 ("ACAD" (1000 . "DSTYLE") (1002 . "{") (1070 . 69) (1070 . 0) (1002 . "}"))))
newentdata (append ent entdata)
)
)
(entmod newentdata)
)
)
)
)
(princ)
)