This is my first post on AUGI and I hope somebody here will guide me in trying to find a solution to this problem.
Please load the following code and run the 'c:helix_along_x_axis' function.
Running the code will draw 3 helix, a conical central one and 2 partial ones at the beginning and end of the central one.
As you will be able to see the partial helix at the end joins perfectly as a continuation of the central one.
I would like to do the same with the partial at the beginning but with the same coding philosophy it does not come as a continuation of the central one.

Any help will be greatly appreciated.

Code:
(vl-load-com)
(defun set_act_ucs (/ ucsorg ucsxdir ucsydir xvec yvec act_ucs)
 (setq
  AcadObject     (vlax-get-acad-object)
  AcadApp        (vla-get-Application AcadObject)
  ActiveDocument (vla-get-ActiveDocument AcadApp)
  UCSs           (vla-get-UserCoordinateSystems ActiveDocument)
  ucsorg         '(23.5187 11.9872 -1.20653) 
  ucsxdir        '(0.997401 0.0720439 0.0)
  ucsydir        '(0.0 0.0 1.0)
  xvec           '()
  yvec           '()
 )
 (mapcar '(lambda (o v) (setq xvec (append xvec (list (+ o v))))) ucsorg ucsxdir)
 (mapcar '(lambda (o v) (setq yvec (append yvec (list (+ o v))))) ucsorg ucsydir)
 (setq
  act_ucs (vla-Add UCSs
                   (vlax-3d-point ucsorg)
                   (vlax-3d-point xvec)
                   (vlax-3d-point yvec)
                   "TEMP"
          )
 )  
 (vla-put-ActiveUCS ActiveDocument act_ucs)  
)

(defun helix_test (
                   /
                   origin the_length big_radius small_radius pitchs tails_step
                   turns_number tails_length helix_starts helix_ends
                   )
 (setq
  origin       1.0
  the_length   5.0
  big_radius   3.0
  small_radius 1.5
  pitch        0.80
  tails_step   0.25
  turns_number (fix (/ the_length pitch))
  tails_length (/ (rem the_length pitch) 2.0)
  helix_starts (list origin 0 0)
  helix_ends   (list (+ origin (* turns_number pitch)) 0 0)
 )
 (vl-cmdf "._helix" "_non" helix_starts "_non" big_radius "_non" small_radius "_H" pitch "_A" "_non" helix_ends)
;;; Center helix
 (setq
  helix_starts  helix_ends
  helix_ends  (list (+ (car helix_starts) tails_length) 0 0)
  big_radius small_radius
  small_radius (- big_radius tails_step)
  )
 (vl-cmdf "._helix" "_non" helix_starts "_non" big_radius "_non" small_radius "_H" pitch "_A" "_non" helix_ends)
 ;;; Helix at the end of center helix
 (setq
  helix_starts (list origin 0 0)
  helix_ends   (list (- origin tails_length) 0 0)  
  big_radius   3.0
  small_radius (- big_radius tails_step)
  )
 (vl-cmdf "._helix" "_non" helix_starts "_non" big_radius "_non" small_radius "_H" pitch "_A" "_non" helix_ends)
 ;;; Helix at the beginning of center helix
 (vl-cmdf "._zoom" "_e" "")
)

(defun c:helix_along_x_axis () 
 (set_act_ucs)
 (helix_test)
 )
THESE ARE DIFFERENT UCS' CONFIGURATION EXAMPLE DATA THAT CAN BE COPY/PASTE ON 'set_act_ucs' FUNCTION FOR TESTING PURPOSES.

ALL THESE UCS' ALLOW FOR THE HELIX TO BE DESIGNED ALONG THE 'X' VECTOR !!!!!!
PARAMETERS OF THE HELIX CAN ALSO BE CHANGED FOR TESTING PUSPOSES !!!!!!

(6.0 -2.23712 0.890296)
(-1.0 2.22045e-16 0.0)
(0.0 0.0 1.0)
"\n"
(1.52137 -4.5 1.00644)
(2.22045e-16 1.0 0.0)
(0.0 0.0 1.0)
"\n"
(-6.0 -2.05441 0.89958)
(1.0 -2.22045e-16 0.0)
(0.0 0.0 1.0)
"\n"
(2.1418 1.91194 2.0)
(2.22045e-16 0.0 -1.0)
(0.0 1.0 0.0)
"\n"
(35.5021 10.9139 -1.27168)
(-0.997401 -0.0720439 0.0)
(0.0 0.0 1.0)
"\n"
(26.434 7.98767 -1.53538)
(-0.0720439 0.997401 0.0)
(0.0 0.0 1.0)
"\n"
(23.5187 11.9872 -1.20653)
(0.997401 0.0720439 0.0)
(0.0 0.0 1.0)

Thanks in advance.