Your problem was the (car because the "Point" entry is not a list, it is a string & causes an error.
(setq arc1 [color=red](car[/color] (entsel "\nSelect Arc or [Point]: ")))
I would use something like this:
(if (null pt3)
(while
(cond
((not (or
(initget 128 "Point")
(setq arc1 (entsel "\nSelect Arc or [Point]: "))
)
)
(prompt "\nNull response not allowed, try again.")
t ; stay in loop
)
((= arc1 "Point")
(initget 1)
(if (listp (setq pt3 (getpoint "\nSelect center point: ")))
nil ; exit loop
(princ "\nInvalid response, Try again.") ; stay in loop
)
)
((= (cdr (assoc 0 (setq elst (entget (car arc1))))) "ARC")
(setq pt3 (cdr (assoc 10 elst))) ; pt3 is the arc center point
nil ; exit loop
)
((princ "\nThe Object selected is not an Arc, Try again.")
t ; stay in loop
)
) ; cond
) ; progn
) ; if