I found a code lee mac made poking around...though I found it to confuse types of intersections when lines touch at more than one point.
Has anyone seen a lisp that trims everything between to parallel plines on the same layer that are a give distance apart 6", 8", 10", 12", 14"
So that only overlapping lines would be trimmed?
(defun c:mlfix ( / cm e1 e2 i1 i2 il m1 m2 o1 o2 p1 ss )
(if (setq ss (ssget "_:L" '((0 . "MLINE"))))
(progn
(setq cm (getvar 'cmdecho))
(setvar 'cmdecho 0)
(repeat (setq i1 (sslength ss))
(setq e1 (ssname ss (setq i1 (1- i1)))
o1 (vlax-ename->vla-object e1)
)
(repeat (setq i2 i1)
(setq e2 (ssname ss (setq i2 (1- i2)))
o2 (vlax-ename->vla-object e2)
il (group3 (vlax-invoke o1 'intersectwith o2 acextendnone))
)
(cond
( (= 1 (length il))
(command "_.-mledit" "_CJ" (list e1 (car il)) (list e2 (car il)) "")
)
( (= 4 (length il))
(command "_.-mledit" "_OC" (list e1 (car il)) (list e2 (cadr il)) "")
)
( (= 2 (length il))
(setq p1 (car il)
m1 (group3 (vlax-get o1 'coordinates))
m2 (group3 (vlax-get o2 'coordinates))
)
(if (< (min (distance p1 (car m1)) (distance p1 (last m1)))
(min (distance p1 (car m2)) (distance p1 (last m2)))
)
(command "_.-mledit" "_OT" (list e1 (car il)) (list e2 (cadr il)) "")
(command "_.-mledit" "_OT" (list e2 (car il)) (list e1 (cadr il)) "")
)
)
)
)
)
(setvar 'cmdecho cm)
)
)
(princ)
)
(defun group3 ( l / r )
(repeat (/ (length l) 3)
(setq r (cons (list (car l) (cadr l) (caddr l)) r)
l (cdddr l)
)
)
(reverse r)
)
(vl-load-com) (princ)