Hi All,
I found one nice piece of code which was of immense help to me so wanted to share with all of you.
This AutoLISP code basically counts the number of circles of particular radius in selected area of drawing.
Procedure is as follows:
1. Type "Appload" in command window
2. A dialog box will pop-up where you can select the file containing below code and press "Load" button
3. Once the code is loaded in AutoCAD you can then press the command "RADCT"
4. It will prompt for radius input and you can input value for radius e.g. 40
5. Then select the objects in drawing containing circles (objects shouldn't be blocks rather individual objects (or blocks in exploded mode))
6. It will give you dialog box saying number of circles found
Regards
AutoLISP code to count number of circles with Radius
-
- I have made <0 posts
- Posts: 4
- Joined: Tue Sep 01, 2015 1:06 pm
- 8
- Full Name: syed meesam ali
- Company Details: CCL Gulf
- Company Position Title: Project Engineer
- Country: UAE
- Skype Name: syedmeesamali
- Linkedin Profile: Yes
- Location: Dubai
AutoLISP code to count number of circles with Radius
Syed Meesam Ali
Project Engineer, CCL
+971 555314269
Project Engineer, CCL
+971 555314269
-
- I have made <0 posts
- Posts: 4
- Joined: Tue Sep 01, 2015 1:06 pm
- 8
- Full Name: syed meesam ali
- Company Details: CCL Gulf
- Company Position Title: Project Engineer
- Country: UAE
- Skype Name: syedmeesamali
- Linkedin Profile: Yes
- Location: Dubai
Re: AutoLISP code to count number of circles with Radius
Sorry I forgot the code. Here is the code below:
Code: Select all
(defun C:RADCT (/ rad ss count)
(setq rad (getdist "\nRadius to count: ")
ss (ssget (list '(0 . "CIRCLE")(cons 40 rad)))
count (sslength ss)
)
(alert (strcat (itoa count) " " (rtos rad) " radius circles found."))
(princ)
)
Syed Meesam Ali
Project Engineer, CCL
+971 555314269
Project Engineer, CCL
+971 555314269
-
- V.I.P Member
- Posts: 146
- Joined: Mon Jun 17, 2013 5:02 pm
- 10
- Full Name: Zoltan Ferenczy
- Company Details: ClearEdge3D
- Company Position Title: Industry Strategist
- Country: USA
- Linkedin Profile: Yes
- Been thanked: 4 times
Re: AutoLISP code to count number of circles with Radius
You can also do this with the QSELECT command.
You do not have the required permissions to view the files attached to this post.
-
- I have made <0 posts
- Posts: 4
- Joined: Tue Sep 01, 2015 1:06 pm
- 8
- Full Name: syed meesam ali
- Company Details: CCL Gulf
- Company Position Title: Project Engineer
- Country: UAE
- Skype Name: syedmeesamali
- Linkedin Profile: Yes
- Location: Dubai
Re: AutoLISP code to count number of circles with Radius
Thanks a lot zoltan.
Actually my real problem was to count and get the details of various circles in the drawing. I could count them eventually using LISP and your method is one nice easy one but get their names was another issue. Eventually I used this beautiful piece of code to export all the names and then save them in excel after sorting for required info.
Sharing this so that if somebody faces similar problem then can easily get the solution.
Actually my real problem was to count and get the details of various circles in the drawing. I could count them eventually using LISP and your method is one nice easy one but get their names was another issue. Eventually I used this beautiful piece of code to export all the names and then save them in excel after sorting for required info.
Sharing this so that if somebody faces similar problem then can easily get the solution.
Code: Select all
;TEXTOUT.LSP By: Jeffery P. Sanders
;This program gets text from an AutoCAD drawing and writes it to a text file.
;define program - listing your variable names here
; resets them to nil after the program finishes
(defun C:TEXTOUT(/ lts ernote filen fil eset en enlist cntr)
;turn echo off
(setvar "cmdecho" 0)
;get ltscale (Note: ltscale should always equal dimscale)
(setq lts(getvar "ltscale"))
;set the exit note to successful
(setq ernote "\n....TextOut Complete.")
;use dialog box to set file name / the 1 allows
;the user to type in a new file name
;the "txt" sets the default to be "*.txt"
(setq filen
(getfiled "Type or Select Text File Name" "" "txt" 1)
)
;open file to write
(if (setq fil(open filen "w"))
;progn necessary for multiple statements inside an if statement
(progn
;if ssget returns a valid selection set
(if (setq eset(ssget))
;progn necessary for multiple statements inside an if statement
(progn
;set the entity counter to zero [the first entity in a set is zero]
(setq cntr 0)
;step through each entity in the selection set
(while (< cntr (sslength eset))
;get the entity name indexed by cntr
(setq en(ssname eset cntr))
;get the DXF group codes for the entity
(setq enlist(entget en))
;check the group code 0 to see if entity type = TEXT
(if(= "TEXT" (cdr(assoc 0 enlist)))
;progn necessary for multiple statements inside an if statement
(progn
;get the text string from the entity's DXF Group Code 1
(setq str(cdr(assoc 1 enlist)))
;print the string to the command line
(princ (strcat "\nOutput To File: " str))
;print the string to the file
(princ (strcat "\n" str) fil)
) ;close the if progn
) ;close the if statement
;increment the counter to get the next entity
(setq cntr(+ cntr 1))
) ;close the while loop
;close the text file
(close fil)
) ;close the if progn
;set the exit note as an error
(setq ernote "\nError - No Entities Selected.")
) ; close the if statement
) ;close the if progn
;set the exit note to be an error
(setq ernote (strcat "\nError - Could not create File: " filen))
) ;close the if statement
;turn the command echo back on
(setvar "cmdecho" 1)
;print the exit note to the command line
(princ ernote)
;clear the command line
(princ "\n ")
;supress last echo
(princ)
) ;close the program
Syed Meesam Ali
Project Engineer, CCL
+971 555314269
Project Engineer, CCL
+971 555314269
- DelioPontes
- V.I.P Member
- Posts: 213
- Joined: Fri Dec 14, 2007 1:45 pm
- 16
- Full Name: Delio Pontes
- Company Details: Fugro
- Company Position Title: Engineering Surveyor
- Country: United Kingdom
- Linkedin Profile: Yes
- Location: United Kingdom
- Contact:
Re: AutoLISP code to count number of circles with Radius
You have also "Cadtools"
http://www.glamsen.se/CadTools.htm
You will find a option to export all circles to excel with layer name, Coordinates, and radius.
http://www.glamsen.se/CadTools.htm
You will find a option to export all circles to excel with layer name, Coordinates, and radius.
-
- V.I.P Member
- Posts: 146
- Joined: Mon Jun 17, 2013 5:02 pm
- 10
- Full Name: Zoltan Ferenczy
- Company Details: ClearEdge3D
- Company Position Title: Industry Strategist
- Country: USA
- Linkedin Profile: Yes
- Been thanked: 4 times
Re: AutoLISP code to count number of circles with Radius
AutoCAD can do this natively as well using the DATAEXTRACTION command. You can extract any properties of any object type, sort the data, and then insert it into the drawing as a table or export to xls, mdb, csv, or txt.