Most of my problem was in the block I created and not in the lisp. When scaling the handle point of the block was not right. When it was scaled 96 x it simply was so far off the screen I could not find it.
Here is what I have so far. I am also attaching the block it anyone wants it.
As a caution the rotation does not work well. 0 is fine but any other adds extra rotation.
(defun c:Bc1 (/ sel int ent att spc Size1 an1)
;; Tharwat - Date: 19.Jun.2017 ;;
(setq Size1 (getvar "dimscale"))
(setq an1 (getint "What rotation :"))
(if
(and
(or (tblsearch "BLOCK" "fixturebubble")
(alert "Attributed Block <fixturebubble> is not found in drawing <!>")
)
(princ "\nSelect Mtexts to be replaced with Attributed Block <fixturebubble> :")
(setq sel (ssget "_:L" '((0 . "text,MTEXT"))))
)
(progn
(defun unformatmtext (string / text str)
;; ASMI - sub-function ;;
;; Get string from Formatted Mtext string ;;
(setq text "")
(while (/= string "")
(cond ((wcmatch (strcase (setq str (substr string 1 2)))
"\\[\\{}`~]"
)
(setq string (substr string 3)
text (strcat text str)
)
)
((wcmatch (substr string 1 1) "[{}]")
(setq string (substr string 2))
)
((and (wcmatch (strcase (substr string 1 2)) "\\P")
(/= (substr string 3 1) " ")
)
(setq string (substr string 3)
text (strcat text " ")
)
)
((wcmatch (strcase (substr string 1 2)) "\\[LOP]")
(setq string (substr string 3))
)
((wcmatch (strcase (substr string 1 2)) "\\[ACFHQTW]")
(setq string (substr string
(+ 2 (vl-string-search ";" string))
)
)
)
((wcmatch (strcase (substr string 1 2)) "\\S")
(setq str (substr string 3 (- (vl-string-search ";" string) 2))
text (strcat text (vl-string-translate "#^\\" " " str))
string (substr string (+ 4 (strlen str)))
)
(print str)
)
(t
(setq text (strcat text (substr string 1 1))
string (substr string 2)
)
)
)
)
text
)
(setq spc
(vlax-get (vla-get-activelayout
(vla-get-activedocument (vlax-get-acad-object))
)
'block
)
)
(repeat (setq int (sslength sel))
(setq ent (ssname sel (setq int (1- int))))
(and (setq att (vla-insertblock
spc
(vlax-3d-point (cdr (assoc 10 (entget ent))))
"fixturebubble"
Size1
Size1
Size1
an1
)
)
(vl-some
'(lambda (x)
(if (eq (strcase (vla-get-tagstring x)) "SYS")
(progn (vla-put-textstring
x
(unformatmtext (cdr (assoc 1 (entget ent))))
)
t
)
)
)
(vlax-invoke att 'getattributes)
)
(entdel ent)
)
)
)
)
(princ)
)(vl-load-com)