Works here but was able to crash it with osnaps on. 8-)
Start & end points the same.
Just saying that with careless snapping you can pick start & end as the same point & routine crashes.
No big deal, just start over. I know the routine is not fool prof. :-)
Command: aarc
*Invalid*
; error: Function cancelled
This is 2006, if VLIDE is active it shows the command pause as the source of the error.Code: [Select]Command: aarc
*Invalid*
; error: Function cancelled
(defun C:DETL
(/ ANG02 ANG021 ANG022 CLAY CORM COSM
DETN DSCL PNT01 PNT02 PNT021 PNT022
PNT023 PNT024 RAD01 RAD02 RAD03 LTSC
)
; 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")
)
(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 0.140625)
RAD03 (* DSCL 0.09375)
)
(command "._LAYER" "_SET" "0" "" "._CIRCLE" PNT01 PNT02 "._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 height &
;; 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 0.38196601) 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 "") ;
(princ)
)
Just saying that with careless snapping you can pick start & end as the same point & routine crashes.Even with routines that are fool proof, never underestimate the ingenuity of a fool.
No big deal, just start over. I know the routine is not fool prof. :-)