Here you have it. Works only with polylines (plines).
(defun c:wire_jumper( / LM:intersections pick_poly take take2 pointlist2d pl plo pt cir co intlist di tmp ang coords i radius);
;Author: hak_vz
; Monday, September 6, 2021
;https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5530556
;Posted at
;https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/crossing-two-lines-with-arc/td-p/10602471
;Creates arced wire jumper at intersection between two wires
(defun LM:intersections ( ob1 ob2 mod / lst rtn )
(if (and (vlax-method-applicable-p ob1 'intersectwith)
(vlax-method-applicable-p ob2 'intersectwith)
(setq lst (vlax-invoke ob1 'intersectwith ob2 mod))
)
(repeat (/ (length lst) 3)
(setq rtn (cons (list (car lst) (cadr lst) (caddr lst)) rtn)
lst (cdddr lst)
)
)
)
(reverse rtn)
)
(defun pick_poly ()
(setq e (car(entsel "\nSelect polyline >")))
(if (and (not e) (= (getvar 'Errno) 7)) (pick_poly) e)
)
(setq radius 2); change this according to your preference
(defun take (amount lst / ret)(repeat amount (setq ret (cons (car lst) (take (1- amount) (cdr lst))))))
(defun take2 (lst) (take 2 lst))
(defun pointlist2d (lst / ret) (while lst (setq ret (cons (take 2 lst) ret) lst (cddr lst))) (reverse ret))
(setq pl (pick_poly))
(setq plo (vlax-ename->vla-object pl))
(setq pt (vlax-curve-getclosestpointto pl (getpoint "\nSelect wire jumper intersection point >")))
(setq cir(entmakex (list (cons 0 "CIRCLE") (cons 10 pt) (cons 40 radius))))
(setq co (vlax-ename->vla-object cir))
(setq intlist (mapcar 'take2 (LM:intersections co plo acextendboth)))
(setq coords (append (pointlist2d(vlax-get plo 'Coordinates)) intlist))
(vlax-release-object co)
(entdel cir)
(foreach c coords
(setq di (vlax-curve-getDistAtPoint plo c))
(setq tmp (cons (append (list di) c) tmp))
)
(setq coords (mapcar 'cdr (vl-sort tmp '(lambda (x y) (< (car x)(car y))))))
(vlax-put plo 'Coordinates (apply 'append coords))
(setq coords (pointlist2d(vlax-get plo 'Coordinates)))
(setq test T i -1)
(setq intlist (vl-sort intlist (lambda (x y) (< (vlax-curve-getDistAtPoint plo x) (vlax-curve-getDistAtPoint plo y)))))
(while test
(setq i (1+ i))
(if (= (distance (nth i coords) (car intlist)) 0.0) (setq test nil))
)
(setq ang (+ (angle (car intlist)(cadr intlist)) (/ pi 2.0)))
(setq pt (take2 (polar pt ang radius)))
(cond
((or
(< (angle (car intlist) (cadr intlist)) (/ PI 2))
(> (angle (car intlist) (cadr intlist)) (* 1.5 PI))
)
(vla-SetBulge plo i -1.0)
)
(T (vla-SetBulge plo i 1.0) )
)
(princ)
)
Change arc radius value according to your preference.
(setq radius 2); change this according to your preference
Since you are new member to this forum, if this solves your request, accept this as a solution (green button Accept).
Miljenko Hatlak

Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.