@Kent1Cooper wrote:
....
BUT could you redefine the Block to use CIRCLEs instead of Donut Polylines for those dots? Then there wouldn't be any ENDpoint to Osnap to except for the desired Polyline vertex, which would greatly simplify a routine to do what you want.
If the Block is edited that way, for example like this:

then Zoomed out to where I can see all of them, this is all it takes to do it in your sample drawing:
(defun C:B2V (/ ss n blk); = Blocks {to} Vertices
(if (setq ss (ssget "_X" '((2 . "KabelID"))))
(repeat (setq n (sslength ss))
(setq blk (ssname ss (setq n (1- n))))
(setpropertyvalue blk "Position" (osnap (getpropertyvalue blk "Position") "_end"))
); repeat
); if
(prin1)
)
It assumes there aren't other things around that could have closer endpoints than the Polyline vertices to the Block insertion points. The selection filter can be adjusted for other Block names, limited to certain Layers, ask for User selection [such as windowing an area] instead of just finding all such Blocks, etc.
Kent Cooper, AIA