OK Try this
(defun rh:get_pt (msg pt)
(initget 1)
(if pt (setq pt (getpoint pt (strcat "\nSelect " msg " Point : "))) (setq pt (getpoint (strcat "\nSelect " msg " Point : "))))
(reverse (cdr (reverse pt)))
);end_defun
(vl-load-com)
(defun c:LB (/ *error* sv_lst sv_vals c_doc c_spc len s_pt i_pt e_pt l_obj b_obj)
(defun *error* ( msg )
(mapcar 'setvar sv_lst sv_vals)
(if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*")) (princ (strcat "\nAn Error : " msg " occurred.")))
(princ)
);_end_*error*_defun
(setq c_doc (vla-get-activedocument (vlax-get-acad-object))
c_spc (vlax-get-property c_doc (if (= 1 (getvar 'cvport)) 'paperspace 'modelspace))
sv_lst (list 'cmdecho 'osmode)
sv_vals (mapcar 'getvar sv_lst)
);end_setq
(mapcar 'setvar sv_lst '(0 0))
(initget 6)
(setq len (cond ( (getreal "\nEnter Line Length <52.0> : ")) (52.0))
(setq s_pt (rh:get_pt "Start" nil)
i_pt (rh:get_pt "Direction" s_pt)
e_pt (polar s_pt (angle s_pt i_pt) len)
l_obj (vlax-invoke c_spc 'addlightweightpolyline (apply 'append (list s_pt e_pt)))
e_pt (reverse (cons 0.0 (reverse e_pt)))
);end_setq
(mapcar '(lambda (x y) (vlax-put l_obj x y)) (list 'layer 'constantwidth) (list "Column_lock" 3))
(setq b_obj (vlax-invoke c_spc 'InsertBlock e_pt "CL" 1 1 1 0));THIS ASSUMES THE BLOCK SCALE IS 1 (x y & z) AND ROTATION IS 0
(vlax-put b_obj 'layer "HARDWARE")
(mapcar 'setvar sv_lst sv_vals)
(princ)
);end_defun
Assumptions, as I didn't ask:
Block Scales are 1 and rotation is 0
Drawing units are in inches
If these are not correct please advise and I will adjust
Ammended code above to allow any length of line (default 52.0)
I am not one of the robots you're looking for