take a look this
wireruns.lsp
need theswamp id
http://www.theswamp.org/index.php?topic=45092.msg503931#msg503931
======================================
if you have coordinates of destinations
1. spread destinations by texts to cad by excel or manually
2. then draw some main line (main tray)
3. and draw minimum shortest line between text and main lines, by lisp (by ronjonp)
(defun c:MIN (/ _dxf _sl a b c e p s x)
;; RJP ≫ 2019-01-10
(defun _sl (s) (cond ((= 'pickset (type s)) (vl-remove-if 'listp (mapcar 'cadr (ssnamex s))))))
(defun _dxf (c e) (cdr (assoc c (entget e))))
(cond
((setq s (_sl (ssget)))
(foreach x s
(if (wcmatch (_dxf 0 x) "TEXT") ;edited line
(setq b (cons (_dxf 10 x) b))
(and (= 'real (type (vl-catch-all-apply 'vlax-curve-getendparam (list x))))
(setq a (cons x a))
)
)
)
(and a
b
(foreach p b
(setq c
(car (vl-sort
(mapcar
'(lambda (x)
(list (setq c (vlax-curve-getclosestpointto x p)) (distance p c) (_dxf 8 x))
)
a
)
'(lambda (r j) (< (cadr r) (cadr j)))
)
)
)
(setq e (entmakex (list '(0 . "LINE") (cons 10 p) (cons 11 (car c)) (cons 8 (caddr c)))))
;; This line below creates the right example comment out to get left
;; (setq a (cons e a))
)
)
)
)
(princ)
)
4. use mpedit command to make polyline
5. breaking all crossing polylines
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/break-all-polylines/m-p/2251689/highlight/true#M260485
add ucs w, ucs p line if you use this in custom ucs drawing
6. use wireruns lisp
then I edit this "to points" inserts(block) -> text
and If it is an alternative CAD other than AutoCAD, some modifications are required.
7. use fmp lisp (filletmultiplepolylines.lsp)
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/fillet-multiple-polyline-all-at-once-by-lisp/m-p/10151411/highlight/true#M412320