Well this is close but I don't have time to complete it.
(defun C:DETL
(/ ANG02 ANG021 ANG022 CLAY CORM COSM DETN
DSCL PNT01 PNT02 PNT021 PNT022 PNT023 PNT024 RAD01
RAD02 RAD03 LTSC arw r2 r3
)
; DEFINE VARIABLES
; ANG02 = ANGLE, PNT01 TO PNT02
; CLAY = CURRENT LAYER
; CORM = CURRENT ORTHO MODE
; COSM = CURRENT OSNAP MODE
; DETN = DETAIL NAME
; DSCL = DIMSCALE
; PNT01 = CENTER OF VIEW CIRCLE
; PNT02 = LOCATION OF VIEW NAME
; RAD01 = DISTANCE, PNT01 TO PNT02
; RAD02 = DIMSCALE TIMES DETAIL ARROWHEAD SIZE
; RAD03 = DIMSCALE TIMES TEXT HIGHT
; LTSC = LTSCALE
(setq CLAY (getvar "CLAYER")
CORM (getvar "ORTHOMODE")
COSM (getvar "OSMODE")
DSCL (getvar "DIMSCALE")
LTSC (getvar "LTSCALE")
)
;; CAB added vara
(setq arw 0.38196601
r2 0.140625
r3 0.09375
)
(if (and (/= (getvar "TileMode") 1)
(= (getvar "cvport") 1) ; in an active viewport
(/= ltsc 1.0)
)
(setq ltsc (/ ltsc 10)
arw (/ arw ltsc)
r2 (/ r2 ltsc)
r3 (/ r3 ltsc)
DSCL (/ DSCL ltsc)
)
)
(setvar "CMDECHO" 0)
(command "._-LAYER" "_NEW" "SECTION" "_COLOR" 230
"SECTION" "_LTYPE" "PHANTOM" "SECTION" ""
)
(setvar "ORTHOMODE" 0)
(setvar "OSMODE" 0)
(setq PNT01 (getpoint "\nPick center of View Circle: ")
PNT02 (getpoint PNT01 "\nPick location of View Name: ")
DETN (getstring 2 "\nDetail Name? ")
ANG02 (angle PNT01 PNT02)
RAD01 (distance PNT01 PNT02)
RAD02 (* DSCL r2)
RAD03 (* DSCL r3)
)
(command "._LAYER" "_SET" "0" ""
"._CIRCLE" PNT01 PNT02)
(command
"._CIRCLE" PNT02 RAD02)
;; Set layer to 0 and draw the detail circle and a circle on the
;; circumference of the detail circle having a radius equal to 1.5
;; times the standard character hite (i.e., 9/64"). Record points,
;; angles, & distances involved.
(setq PNT021 (polar PNT02 (+ ANG02 (* pi 0.5)) RAD02)
PNT021 (osnap PNT021 "APP")
ANG021 (angle PNT01 PNT021)
PNT022 (polar PNT02 (+ ANG02 (* pi 1.5)) RAD02)
PNT022 (osnap PNT022 "APP")
ANG022 (angle PNT01 PNT022)
)
;; Get both points where the two circles intersect, & record the points
;; and the angles relative to the center of the large circle.
(command "._MOVE" "_LAST" "" PNT02 PNT021)
(setq PNT023 (polar PNT021 (+ ANG021 (* pi 0.5)) RAD02)
PNT023 (osnap PNT023 "APP")
)
;; Shift the small circle counterclockwise one character hight &
;; determine where one of the arrowheads will end
(command "._MOVE" "_LAST" "" PNT021 PNT022)
(setq PNT024 (polar PNT022 (+ ANG022 (* pi 1.5)) RAD02)
PNT024 (osnap PNT024 "APP")
)
;; then shift it two character hights clockwise & get the endpoint
;; of the other arrowhead.
(command "._ERASE" "_LAST" ""
"._CIRCLE" PNT02 PNT023
"._TRIM" "_LAST" "" PNT02 ""
"._ERASE" "_PREVIOUS" ""
"._PEDIT" "_LAST" "YES" ""
"._CHANGE" "_LAST" "" "_PROPERTIES" "_LAYER" "SECTION" ""
"._LAYER" "SET" "SECTION" ""
"._PLINE" PNT021 "_WIDTH" 0.0 (* RAD02 arw) PNT023 ""
"._MIRROR" "_LAST" "" PNT01 PNT02 "_NO"
".-STYLE" "STANDARD" "ROMANS" "0" "1" "0" "N" "N" "N"
"._TEXT" "MC" PNT02 RAD03 0.0 (strcase DETN)
"._LAYER" "_SET" CLAY "")
(setvar "OSMODE" COSM)
(setvar "CLAYER" CLAY)
(setvar "ORTHOMODE" CORM)
(princ)
)