Welcome,
Guest
. Please
login
or
register
.
1 Hour
1 Day
1 Week
1 Month
Forever
Login with username, password and session length
News:
Home
Help
Login
Register
TheSwamp
»
Code Red
»
AutoLISP (Vanilla / Visual)
»
XDRX-API
»
Topic:
[XDrX-PlugIn(34)] Generate Circle statistics table
« previous
next »
Print
Pages: [
1
] |
Go Down
Author
Topic: [XDrX-PlugIn(34)] Generate Circle statistics table (Read 786 times)
0 Members and 1 Guest are viewing this topic.
xdcad
Swamp Rat
Posts: 527
WWW
[XDrX-PlugIn(34)] Generate Circle statistics table
«
on:
December 04, 2023, 05:47:11 AM »
Circles of the same area are coded together
Code - Auto/Visual Lisp:
[Select]
(
defun
c:XDTB_TJCIR1
(
/
ss a p lst v a p1 txt
)
(
if
(
not
#xd
-
var
-
global
-
table
-
textheight
)
(
setq
#xd
-
var
-
global
-
table
-
textheight
4.0
)
)
(
if
(
setq
v
(
getreal
(
xdrx
-
prompt
"
\n
Text height<"
#xd
-
var
-
global
-
table
-
textheight
">:"
t
)
)
)
(
setq
#xd
-
var
-
global
-
table
-
textheight v
)
)
(
if
(
not
#xd
-
var
-
global
-
table
-
textpos
)
(
setq
#xd
-
var
-
global
-
table
-
textpos
5
)
)
(
xdrx
-
initget
"1 2 3 4 5 6 7 8 9"
)
(
if
(
setq
v
(
getreal
(
xdrx
-
prompt
"
\n
Text label position [BottomLeft(1)/BottoMiddle(2)/BottomRight(3)/MiddleLeft (4)/Middle(5)/MiddleRight(6)/UpperLeft(7)/UpperMiddle(8)/TopRight(9)]<"
#xd
-
var
-
global
-
table
-
textpos
">:"
t
)
)
)
(
setq
#xd
-
var
-
global
-
table
-
textpos v
)
)
(
if
(
not
#xd
-
var
-
global
-
bits
)
(
setq
#xd
-
var
-
global
-
bits
1
)
)
(
if
(
setq
v
(
getint
(
xdrx
-
prompt
"
\n
Number of decimal places<"
#xd
-
var
-
global
-
bits
">:"
t
)
)
)
(
setq
#xd
-
var
-
global
-
bits v
)
)
(
if
(
and
(
xdrx
-
initssget
"
\n
Select the circles to be counted <Exit>:"
)
(
setq
ss
(
xdrx_ssget '
(
(
0
.
"circle"
)
)
)
)
)
(
progn
(
xdrx
-
begin
)
(
xdrx_sysvar_push '
(
"dimzin"
0
)
)
(
setq
lst
(
mapcar
'
(
lambda
(
x
)
(
list
(
xdrx_getpropertyvalue x
"radius"
)
(
xdrx
-
getpropertyvalue x
"center"
)
x
)
)
(
xdrx_pickset
->
ents ss
)
)
lst
(
xd::
list
:groupbyindex lst 1e
-
3
)
lst
(
vl-sort
lst '
(
lambda
(
x y
)
(
<
(
car
x
)
(
car
y
)
)
)
)
a
65
)
(
xd::text:init
1
)
(
setq
lst
(
mapcar
'
(
lambda
(
x
/
i
)
(
setq
i
1
)
(
mapcar
'
(
lambda
(
b
/
p p1 txt
)
(
setq
p
(
xdrx_getpropertyvalue b
"center"
)
txt
(
xdrx_text_make
p1
(
strcat
(
chr
a
)
(
itoa
i
)
)
#xd
-
var
-
global
-
table
-
textheight
0.0
)
p1
(
cond
(
(
=
#xd
-
var
-
global
-
table
-
textpos
1
)
(
setq
pos
9
)
(
polar
p
(
*
5
(
/
pi
4
)
)
(
*
(
car
x
)
1.2
)
)
)
(
(
=
#xd
-
var
-
global
-
table
-
textpos
2
)
(
setq
pos
8
)
(
polar
p
(
-
(
/
pi
2
)
)
(
*
(
car
x
)
1.2
)
)
)
(
(
=
#xd
-
var
-
global
-
table
-
textpos
3
)
(
setq
pos
7
)
(
polar
p
(
-
(
/
pi
4
)
)
(
*
(
car
x
)
1.2
)
)
)
(
(
=
#xd
-
var
-
global
-
table
-
textpos
4
)
(
setq
pos
6
)
(
polar
p
(
-
pi
)
(
*
(
car
x
)
1.2
)
)
)
(
(
=
#xd
-
var
-
global
-
table
-
textpos
5
)
(
setq
pos
5
)
p
)
(
(
=
#xd
-
var
-
global
-
table
-
textpos
6
)
(
setq
pos
4
)
(
polar
p
0.0
(
*
(
car
x
)
1.2
)
)
)
(
(
=
#xd
-
var
-
global
-
table
-
textpos
7
)
(
setq
pos
3
)
(
polar
p
(
*
3
(
/
pi
4
)
)
(
*
(
car
x
)
1.2
)
)
)
(
(
=
#xd
-
var
-
global
-
table
-
textpos
8
)
(
setq
pos
2
)
(
polar
p
(
/
pi
2
)
(
*
(
car
x
)
1.2
)
)
)
(
(
=
#xd
-
var
-
global
-
table
-
textpos
9
)
(
setq
pos
1
)
(
polar
p
(
/
pi
4
)
(
*
(
car
x
)
1.2
)
)
)
(
t
p
)
)
txt
(
xdrx_text_make
p1
(
strcat
(
chr
a
)
(
itoa
i
)
)
#xd
-
var
-
global
-
table
-
textheight
0.0
)
i
(
1+
i
)
)
(
xdrx_text_setvermode txt
3
)
(
setq
lxd txt
)
(
xdrx
-
entity
-
move txt
(
xd::geom:get9pt txt pos
)
p1
)
)
(
mapcar
'
last
(
vl-sort
(
cdr
x
)
'
(
lambda
(
x y
)
(
<
(
caar
x
)
(
caar
y
)
)
)
)
)
)
(
setq
a
(
1+
a
)
)
(
list
(
chr
(
1-
a
)
)
(
car
x
)
(
car
x
)
(
length
(
cdr
x
)
)
)
)
lst
)
)
(
setq
i
0
)
(
setq
lst
(
mapcar
'
(
lambda
(
x
)
(
list
(
setq
i
(
1+
i
)
)
(
car
x
)
(
strcat
"%%c"
(
rtos
(
cadr
x
)
2
#xd
-
var
-
global
-
bits
)
)
(
strcat
"Φ"
(
rtos
(
*
2
(
cadr
x
)
)
2
#xd
-
var
-
global
-
bits
)
)
(
rtos
(
*
2
pi
(
cadr
x
)
)
2
#xd
-
var
-
global
-
bits
)
(
rtos
(
*
pi
(
cadr
x
)
(
cadr
x
)
)
2
#xd
-
var
-
global
-
bits
)
(
last
x
)
)
)
lst
)
)
(
setq
lst
(
append
lst
(
list
(
list
"Sum"
nil
nil
""
(
rtos
(
apply
'
+
(
mapcar
'
(
lambda
(
x
)
(
atof
(
nth
4
x
)
)
)
lst
)
)
2
#xd
-
var
-
global
-
bits
)
(
rtos
(
apply
'
+
(
mapcar
'
(
lambda
(
x
)
(
atof
(
nth
5
x
)
)
)
lst
)
)
2
#xd
-
var
-
global
-
bits
)
(
apply
'
+
(
mapcar
'
(
lambda
(
x
)
(
nth
6
x
)
)
lst
)
)
)
)
)
)
(
setq
tb
(
XD::Table:MakeFromList
(
append
(
list
'
(
"Circle Statistics Table"
nil
nil
nil
nil
nil
nil
)
'
(
"Number"
"Coding"
"Radius"
"Diameter"
"Perimeter"
"Area"
"Quantity"
)
)
lst
)
'
(
0
0
0
)
#xd
-
var
-
global
-
table
-
textheight
(
/
#xd
-
var
-
global
-
table
-
textheight
3.0
)
)
)
(
xdrx_setpropertyvalue tb
"color"
7
)
(
xd::drag:simplemove
(
entlast
)
"
\n
>>Table insertion point:"
8
t
)
(
xdrx
-
sysvar
-
pop
)
(
xdrx
-
end
)
)
)
(
princ
)
)
Logged
The code I wrote uses XDRX-API,which can be downloaded from github.com and is updated at any time.
===================================
https://github.com/xdcad
https://sourceforge.net/projects/xdrx-api-zip/
http://bbs.xdcad.net
Print
Pages: [
1
] |
Go Up
« previous
next »
TheSwamp
»
Code Red
»
AutoLISP (Vanilla / Visual)
»
XDRX-API
»
Topic:
[XDrX-PlugIn(34)] Generate Circle statistics table