What I would do is to create only one dwg containing all the different blocks in it. Then I'd save this dwg with a password. Then I open it (by ObjectDBX, which means without really opening the dwg) from your Lisp routine (which is a .fas or .Vlx) passing the password you only know. Then I'd import all the required blocks and Insert them & modify them as needed in the host dwg. Once the lisp has finished (here is the bloody part) save the file and close the Acad session (politely but inmediately, the user may open it later) just for avoiding anyone to open your library dwg (the one with all your blocks) in which case no password will be asked because you're still in the same acad session. For garantee this it would be better to set the SDI variable to 1 (acad work on only one dwg at a time) before proceed with your main lisp routine.
Looking forward your feed back...
Justo Aguiar.
While you can do various tricks to protect your block library on disk, there isn't much you can do to prevent the user
from copying the blocks from the finished drawing.
One way to discourage using your library without your program would be to break your blocks to smaller parts, tag them in some non-obvious ways, transform some of the parts in some way, pile them all together, possibly adding unrelated dummy data, and add to your program parts to re-build the blocks at runtime from the parts as needed.
--