That's readily do-able. Let's break it down into sub-functions and build the routine.
First, you'll need to select an entity which contains a radius, in this case an arc.
My suggestion is Lee-Mac's select if routine
(defun LM:SelectIf
( msg pred func keyw
/ sel
) (setq pred
(eval pred
)) ;;---------------------=={ Select if }==----------------------;;
;; ;;
;; Provides continuous selection prompts until either a ;;
;; predicate function is validated or a keyword is supplied. ;;
;;------------------------------------------------------------;;
;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;;
;;------------------------------------------------------------;;
;; Arguments: ;;
;; msg - prompt string ;;
;; pred - optional predicate function [selection list arg] ;;
;; func - selection function to invoke ;;
;; keyw - optional initget argument list ;;
;;------------------------------------------------------------;;
;; Returns: Entity selection list, keyword, or nil ;;
;;------------------------------------------------------------;;
(princ "\nMissed, Try again.") )
nil
)
(princ "\nInvalid Object Selected.") )
)
)
)
)
sel
)
In order to call the sub-function, additional parameters must be passed. Lee's website includes the full command call.
(LM:SelectIf "\nSelect an Arc: "
)
Next you need to obtain the radius, if you have access to VLISP it's a rather simple operation
To test that everything up until now works, create an alert window to display the radius of obj.