AutoLISP: Arc to Circle

Here’s one that someone asked me about a while ago and I just just it. Very simply, you select arc and this routine turns these arcs into circles keeping both the arc’s radius and the layer that the arcs were on.

Here’s how:

ATC <enter> to start (Arc To Circle)

Select arcs to be made into circles

<enter> after selection is made


; ATC.LSP V1.0

; by Zoltan Toth

; ZOTO Technologies,

; 23 Greenhills Dve,

; Melton 3337.


; WWW:


; This program takes any number of arcs and converts them into circles.

; Each circle is a new object with all the properties of the arc it

; replaces. Non-arc objects are ignored.



(defun C:ATC (/ CTR2 CTR3 D2 SS2 OBN2 OBD2 OBD3)

(setq CTR2 0) ;initialize CTR2 for object counter

(prompt "\nSelect arcs to convert to circles: ")

(setq SS2 (ssget '((0 . "ARC")))) ;create selection set with arcs only

(repeat (sslength SS2) ;repeat for each object

(setq OBN2 (ssname SS2 CTR2)) ;get object name

(setq OBD2 (entget OBN2)) ;get object data lists

;substitute CIRCLE in assoc. 0

(setq OBD2 (subst (cons 0 "CIRCLE")(assoc 0 OBD2) OBD2))

(setq CTR3 (1- (length OBD2))) ;set CTR3 to 1 less than size of OBD2

(repeat (length OBD2) ;repeat for each list in OBD2

(setq D2 (nth CTR3 OBD2)) ;set D2 to an association list from the arc


;if association list is neither a start or end angle,

;copy the association list to OBD3

(if (and (/= 50 (car D2))(/= 51 (car D2))) ;check for assoc. 50 & 51

(setq OBD3 (cons D2 OBD3)) ;copy assoc. list to OBD3


(setq CTR3 (1- CTR3)) ;decrement counter CTR3

) ;end of second (repeat)

(entdel OBN2) ;delete arc

(entmake OBD3) ;make circle

(setq OBD3 nil) ;set OBD3 to (nil)

(setq CTR2 (1+ CTR2)) ;increment object counter

) ;end of first (repeat)

(princ) ;exit quietly


About AutoCAD Tips

This blog serves as a knowledge base for myself (and anyone else) so that I can reference tips & tricks that I have learned and also refer others to it as well. I hope that this blog helps you learn at least one tip to make your drafting/design experience better.
This entry was posted in AutoLISP, Modifying, TIPS. Bookmark the permalink.

1 Response to AutoLISP: Arc to Circle

  1. Monte says:

    Awesome LISP – Thanks a bunch!!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s