Add Theoretical Sharp with distance from the selected lines

Good day everyone,

      Below is a code that adds theoretical sharp on radius or fillet however the code below added the lines (yellow) directly touching the selected lines which can be seen in Fig.A. Is there a way that the created lines are detached on the selected lines preferably the distance is in the middle of the selected line nearest endpoint up to the intersection lines, last image shows what I'm trying to say. Is it possible to do it this way? Thank you in advance.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(defun c:THS (/ l1 l2 offset l1pos l2pos intersection radius)
   
   (setq 
       
       ;; Inputs
       l1 (car (entsel "\\nFirst Line 1"))
       l2 (car (entsel "\\nSecond Line 2"))
       ;; start and end point locations
       l1pos (list
           (list 
               (cadr   (assoc 10 (entget l1))); X-axis
               (caddr  (assoc 10 (entget l1))); Y-axis
               (cadddr (assoc 10 (entget l1))); Z-axis
           );list
           (list 
               (cadr   (assoc 11 (entget l1))); X-axis
               (caddr  (assoc 11 (entget l1))); Y-axis
               (cadddr (assoc 11 (entget l1))); Z-axis
           );list
       );list
       l2pos (list
           (list 
               (cadr   (assoc 10 (entget l2))); X-axis
               (caddr  (assoc 10 (entget l2))); Y-axis
               (cadddr (assoc 10 (entget l2))); Z-axis
           );list
           (list 
               (cadr   (assoc 11 (entget l2))); X-axis
               (caddr  (assoc 11 (entget l2))); Y-axis
               (cadddr (assoc 11 (entget l2))); Z-axis
           );list
       );list
       
       ;; Intersection point
       intersection (inters 
           (car l1pos)(cadr l1pos)
           (car l2pos)(cadr l2pos)
           nil
       );inters
       
       ;; Nearest position to intersection point
       l1pos (car (vl-sort
           l1pos
           (function (lambda (x1 x2)
               (or
                   (< (abs (- (car   intersection)(car   x1)))(abs (- (car   intersection)(car   x2))))
                   (< (abs (- (cadr  intersection)(cadr  x1)))(abs (- (cadr  intersection)(cadr  x2))))
                   (< (abs (- (caddr intersection)(caddr x1)))(abs (- (caddr intersection)(caddr x2))))
               );or
           ));function<-lambda
       ));car <- vl-sort
       l2pos (car (vl-sort
           l2pos
           (function (lambda (x1 x2)
               (or
                   (< (abs (- (car   intersection)(car   x1)))(abs (- (car   intersection)(car   x2))))
                   (< (abs (- (cadr  intersection)(cadr  x1)))(abs (- (cadr  intersection)(cadr  x2))))
                   (< (abs (- (caddr intersection)(caddr x1)))(abs (- (caddr intersection)(caddr x2))))
               );or
           ));function<-lambda
       ));car <- vl-sort
   );setq
   ;; If lines need to be offest from end point or only extend out a certain length, then do changes here
   ;; Modifiy l1pos and l2pos positions
   
   ;; Loading line types
   (if (not (tblsearch "LTYPE" "DASH2DOT"))
       (vla-load
           (vla-get-linetypes (vla-get-activedocument (vlax-get-acad-object)))
           "DASH2DOT"
           (strcat (getenv "CADCFG") "\\\\Linestyles\\\\INCH.LIN")
       );vla-load
   );if
   (if (not (tblsearch "LTYPE" "DASHED"))
       (vla-load
           (vla-get-linetypes (vla-get-activedocument (vlax-get-acad-object)))
           "DASHED"
           (strcat (getenv "CADCFG") "\\\\Linestyles\\\\INCH.LIN")
       );vla-load
   );if
   
   ;; Creating Lines
   (entmakex (list '(0 . "LINE") (cons 10 intersection)(cons 11 l1pos) '(8 . "10") '(6 . "DASH2DOT") '(62 . 50)))
   (entmakex (list '(0 . "LINE") (cons 10 intersection)(cons 11 l2pos) '(8 . "10") '(6 . "DASH2DOT") '(62 . 50)))
   
   (princ)
);defun