I found this whilst trawling through the internet.
this was the lisp I was looking for.
;Degrees to Radians Function
(defun dtr (a)
(* pi (/ a 180.0))
);defun
;Main Routine
(defun c:circ ( / olderr myerror #sn1 #sn2 )
; Error Function
(defun myerror (s)
(if (/= st "Function cancelled")
(alert (strcat s "\nByee.... : " ))
);if
(setvar "aperture" #ap )
(setvar "osmode" #os )
(setvar "blipmode" #bm )
(setvar "cmdecho" #ce )
(setvar "expert" #ex )
(setq *error* olderr)
(princ)
);defun
(initget "Fifty Hundred" )
(setq #d (getkword "\nScale> Fifty / <Hundred>: "))
(setq #dist 565 )
(cond
((= #d "Fifty")
(setq #dist 282.5 )
)
);cond
(initget "Centre Edge" )
(setq #p (getkword "\nCircuit From.. Edge / <Centre>: "))
(setq #sn1 584 )
(setq #sn1b "nod,ins,nea" )
(setq #sn2 68 )
(setq #sn2b "ins,cen" )
(cond
((= #p "Edge")
(setq #sn1 18 )
(setq #sn1b "mid,qua" )
(setq #sn2 18 )
(setq #sn2b "mid,qua" )
)
);cond
(setq olderr *error*)
(setq *error* myerror)
(setq #ex (getvar "expert" ))
(setvar "expert" 5 )
(setq #ce (getvar "cmdecho" ))
(setvar "cmdecho" 0)
(setq #bm (getvar "blipmode" ))
(setvar "blipmode" 0)
(setq #ap (getvar "aperture" ))
(setvar "aperture" 12)
(setq #os (getvar "osmode" ))
(setvar "osmode" 0 )
(setq #dist2 0 )
(setq #dist3 0 )
(setq #flag1 1)
(while #flag1
(setvar "osmode" #sn1 )
(setq #pik1 (getpoint "\nPick Point on Edge of 1st Symbol "))
(if (= #pik1 nil ) (setq #flag1 nil)
(progn
(setq #pt1 #pik1 )
(setq #pt2 (osnap #pik1 #sn2b ))
(setq #dist2 (distance #pt1 #pt2 ))
(setq #pik2 (getpoint "\nPick Point on Edge of 2nd Symbol "))
(setq #pt3 (osnap #pik2 #sn1b ))
(setq #pt4 (osnap #pik2 #sn2b ))
(setq #dist3 (distance #pt4 #pt3 ))
(setq #ang (angle #pt2 #pt4 ))
(setvar "osmode" 0 )
(setq #pt5 (polar #pt2 (+ #ang (dtr 45)) #dist2 ))
(setq #pt6 (polar #pt2 (+ #ang (dtr 45)) #dist ))
(setq #pt8 (polar #pt4 (+ #ang (dtr 135)) #dist3 ))
(setq #pt7 (polar #pt4 (+ #ang (dtr 135)) #dist ))
(command "line" #pt5 #pt6 #pt7 #pt8 "" )
);progn
);if
);while
(setvar "aperture" #ap )
(setvar "osmode" #os )
(setvar "blipmode" #bm )
(setvar "cmdecho" #ce )
(setvar "expert" #ex )
(setq *error* olderr)
(princ)
);defun
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Circuiting Routine - 1 line
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun dtr (a)
(* pi (/ a 180.0))
);defun
(defun c:circ1 ( / olderr myerror )
(defun myerror (s)
(if (/= st "Function cancelled")
(alert (strcat s "\nByee.... : " ))
);if
(setvar "aperture" #ap )
(setvar "cmdecho" #ce )
(setvar "osmode" #os )
(setq *error* olderr)
(princ)
);defun
(setq olderr *error*)
(setq *error* myerror)
(setq #ce (getvar "cmdecho" ))
(setvar "cmdecho" 0 )
(setq #ap (getvar "aperture" ))
(setvar "aperture" 12 )
(setq #os (getvar "osmode" ))
(setvar "osmode" 0 )
(setq #dist 565 )
(setq #dist2 0 )
(setq #flag1 1)
(while #flag1
(setvar "osmode" 8 )
(setq #pik1 (getpoint "\nPick Node on Edge of Symbol" ))
(if (= #pik1 nil) (setq #flag1 nil)
(progn
(setq #pt2 #pik1 )
(setq #pt1 (osnap #pik1 "ins" ))
(setq #dist2 (distance #pt1 #pt2 ))
(setq #ang (angle #pt1 #pt2 ))
(setq #pt3 (polar #pt1 #ang #dist2 ))
(setq #pt4 (polar #pt1 #ang #dist ))
(command "line" #pt3 #pt4 "" )
);progn
);if
);while
(setvar "aperture" #ap )
(setvar "osmode" #os )
(setvar "cmdecho" #ce )
(setq *error* olderr)
(princ)
);defun