(defun blkchk (nblkname)
(if (/= (tblsearch "block" nblkname) nil)
(setq blkchk1 "Y")
(progn
(princ "\nBlock not found . . . creating shape.")
(setq blkchk1 nil)
)
)
)
The above subfunction looks for the supplied <nblkname> from some other function in the existing block list for the drawing. IF found sets "BLKCHK1" to "Y", if not, sets it to nil (i know, i know)
So in the body of your routine you could use something like:
(setq blkname <however_it_is_you_get_the_blockname_defined>)
(blkchk blkname)
(if (/= blkchk1 "Y")
(progn
( <insert_the_blinking_thing> )
)
(progn
( <build_the_blinking_thing> )
)
)
I'm quite sure the masters lurking here can produce a much more elegant code structure, but this concept fits in my head.