Code:
(defun c:linesbtwbrokenlines ( / ss fuzz i lix pl p pp )
(prompt "\nSelect broken lines...")
(setq ss (ssget '((0 . "LINE"))))
(initget 6)
(setq fuzz (getdist "\nPick or specify fuzz distance <0.1> : "))
(if (null fuzz)
(setq fuzz 0.1)
)
(if ss
(progn
(repeat (setq i (sslength ss))
(setq lix (entget (ssname ss (setq i (1- i)))))
(setq pl (cons (cdr (assoc 10 lix)) pl) pl (cons (cdr (assoc 11 lix)) pl))
)
(foreach p pl
(if (vl-member-if (function (lambda ( x ) (equal p x 1e-6))) (vl-remove p pl))
(setq pl (vl-remove-if (function (lambda ( x ) (equal p x 1e-6))) pl))
)
)
(while (setq p (car pl))
(if (<= 0.0 (distance p (setq pp (cadr (vl-sort pl (function (lambda ( a b ) (< (distance a p) (distance b p)))))))) fuzz)
(progn
(entmake (list '(0 . "LINE") (cons 10 p) (cons 11 pp)))
(setq pl (vl-remove p pl) pl (vl-remove pp pl))
)
(setq pl (cdr pl))
)
)
)
)
(princ)
)
HTH., M.R.