Give this a try due to crossing trimming it can do a couple of weird things the more complex the lines the harder to do true trimming.
Code:
; random trimming of parallel lines
; not 100 % accurate due to crossing trims
; change layer name text to something in your dwg as a single layer
; By Alan H Oct 2018
(defun trimrandom ( / ss p1 p2 p3 p4 x p1a p2a p2b p2b )
(setq oldsnap (getvar 'omode))
(setvar 'osmode 0)
(setq p3 (getpoint "pick bottom left"))
(princ "\n")
(setq p4 (getpoint "pick top right"))
(princ "\n")
(setq off (getreal "enter offset"))
(while (setq p1 (getpoint "Pick 1st point"))
(setq p2 (getpoint p1 "Pick 2nd point"))
(setq pts (cons (list p1 p2) pts))
(setq ang (+ (/ pi 2.0) (angle p1 p2)))
(setq p1a (polar p1 ang off))
(setq p2a (polar p2 ang off))
(setq ang (- (angle p1 p2) (/ pi 2.0)))
(setq p1b (polar p1 ang off))
(setq p2b (polar p2 ang off))
(command "line" p1a p2a "")
(command "chprop" (entlast) "" "la" "text" "")
(command "line" p1b p2b "")
(command "chprop" (entlast) "" "la" "text" "")
)
(command "layiso" (entlast) "")
(repeat (setq x (length pts))
(setq stend (nth (setq x (- x 1)) pts))
(setq p1 (nth 0 stend))
(setq p2 (nth 1 stend))
(command "_trim" (ssget "w" (list (car p3)(cadr p3)) (list (car p4)(cadr p4))) "" "f" p1 p2 "" "")
)
(command "layuniso")
)
(trimrandom)