Here is my quickie method.
Copies from the point of two pick points then allows the user to past the new pline.
;; Copy a user selected section of a pline
;; CAB 05/31/06
;; Pick 2 clip points then pick new location for new pline
(defun c:plineclip (/ end1 end2 endpt p1 p2 pk1 pk2 strpt)
(vl-load-com)
(command "._undo" "_begin")
(if (and
(setq pk1 (entsel "\nPick pline trim point."))
(setq pk2 (entsel "\nPick second pline trim point."))
(eq (car pk1) (car pk2))
(setq ent1 (car pk1))
(setq p1 (vlax-curve-getclosestpointto (car pk1) (cadr pk1)))
(setq p2 (vlax-curve-getclosestpointto (car pk2) (cadr pk2)))
(setq endpt (vlax-curve-getendpoint (car pk1)))
(setq strpt (vlax-curve-getstartpoint (car pk1)))
(if (< (vlax-curve-getdistatpoint (car pk1) p1)
(vlax-curve-getdistatpoint (car pk2) p2)
)
(setq end1 strpt end2 endpt)
(setq end2 strpt end1 endpt)
)
)
(progn
(command "._copybase" "_non" p1 ent1 "")
(command "._break" (list ent1 p1) end1)
(command "._break" (list ent1 p2) end2)
(command "._pasteclip" "_non" p1)
(command "._move" ent1 "" p2 pause)
(command "._undo" "_end")
)
)
(princ)
)
(prompt "\nCopy Pline section Loaded, Enter PlineClip to run.")
(princ)