Try this, but you will need to remove or comment out one of the new code sections depending on how you want to be prompted.
The first occurrence will ask each time you start the lisp.
The second occurrence will ask over and over as you make more plines.
(defun C:MakeCL (/ usercmd p0 p1 p2 p3 clayer lyr clr tmp)
(setq usercmd (getvar "CMDECHO"))
(setq clayer (getvar "CLAYER"))
(setvar "CMDECHO" 0)
(or ClLength (setq ClLength 60.0)) ; Default Length
;; Make Layer
(setq lyr "retea_canal"
Clr "40")
(if (tblsearch "LAYER" lyr)
(command "._Layer" "_Thaw" lyr "_On" lyr "_UnLock" lyr "_Set" lyr "")
(command "._Layer" "_Make" lyr "_Color" (if (= Clr "") "_White" Clr) lyr "")
)
;;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
;; This will ask once each time you run the routine
(if (setq tmp (getdist (strcat "\nEnter new Center Line Length. <"
(rtos ClLength 2 2)"> ")))
(setq ClLength tmp)
)
;;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(while
(and
(setq p1 (getpoint "\nPick 2 points to center START between."))
(setq p2 (getpoint p1 "\nPick second point for START."))
(setq p1 (osnap p1 "_end,_nea")
p2 (osnap p2 "_end,_nea"))
(setq p0 (polar p1 (angle p1 p2) (/(distance p1 p2)2.0)))
(setq p1 (getpoint p0 "\nPick 2 points to center END between."))
(setq p2 (getpoint p1 "\nPick second point for END."))
(setq p1 (osnap p1 "_end,_nea")
p2 (osnap p2 "_end,_nea"))
(setq p3 (polar p1 (angle p1 p2) (/(distance p1 p2)2.0)))
;;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
;; This will ask each time you create a Center Line
(if (setq tmp (getdist (strcat "\nEnter new Center Line Length. <"
(rtos ClLength 2 2)"> ")))
(setq ClLength tmp)
t
)
;;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(vl-cmdf "_.pline" "_non" p0 "_non" (polar p0 (angle p0 p3) ClLength) "")
)
) ; end while
(setvar "CMDECHO" usercmd)
(setvar "CLAYER" clayer)
(princ)
) ; end defun
(prompt "\nCreate Center Line from pick points. Enter MakeCL to run.")
(Princ)