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)
»
Topic:
Why is this lisp count start point of 2 lines as one point?
« previous
next »
Print
Pages: [
1
] |
Go Down
Author
Topic: Why is this lisp count start point of 2 lines as one point? (Read 1174 times)
0 Members and 1 Guest are viewing this topic.
HasanCAD
Swamp Rat
Posts: 1422
Why is this lisp count start point of 2 lines as one point?
«
on:
April 18, 2018, 12:02:25 PM »
attached snapshop for the result no. 1 has 2 lines
The code
Code - Auto/Visual Lisp:
[Select]
(
defun
c:RVC
(
/
*
acad arc clyr doc gp gp1 i obj objs ortmd
p1 p1x p1y p2 p2x p2y p3 p4 p5 p5x p5y ptlist
sp spc tmp ts
)
(
vl-load-com
)
(
setq
doc
(
vla-get-ActiveDocument
(
setq
*
acad
(
vlax-get-Acad-Object
)
)
)
spc
(
if
(
zerop
(
vla-get-activespace
doc
)
)
(
if
(
=
(
vla-get-mspace
doc
)
:vlax-true
)
(
vla-get-modelspace
doc
)
(
vla-get-paperspace
doc
)
)
(
vla-get-modelspace
doc
)
)
)
(
setq
arc
500
)
(
setq
gp
(
getpoint
"
\n
Pick gathering porvcint"
)
)
(
setq
gp
(
trans
gp
1
0
)
)
(
setq
ts
(
getvar
'TEXTSIZE
)
)
(
setvar
'TEXTSIZE
250
)
(
setq
sp
(
getvar
'TEXTSIZE
)
)
(
setq
i
-
1
)
(
while
T
(
if
(
and
(
setq
p1
(
getpoint
"
\n
Pick first corner"
)
)
(
setq
p1
(
trans
p1
1
0
)
)
(
setq
ortmd
(
getvar
"orthomode"
)
)
(
setvar
"orthomode"
0
)
(
setq
p2
(
getcorner
p1
"
\n
Pick second corner"
)
)
(
setq
p2
(
trans
p2
1
0
)
)
(
setvar
"orthomode"
ortmd
)
)
(
progn
(
setq
clyr
(
getvar
"clayer"
)
)
(
vl-cmdf
"_.LAYER"
"MAKE"
"Defpoints"
""
)
(
setvar
"clayer"
clyr
)
(
setq
p1X
(
min
(
nth
0
p1
)
(
nth
0
p2
)
)
p1Y
(
min
(
nth
1
p1
)
(
nth
1
p2
)
)
p2X
(
max
(
nth
0
p1
)
(
nth
0
p2
)
)
p2Y
(
max
(
nth
1
p1
)
(
nth
1
p2
)
)
)
(
setq
p1
(
list
p1X p1Y
0
)
p2
(
list
p2X p2Y
0
)
p3
(
list
p2X p1Y
0
)
p4
(
list
p1X p2Y
0
)
ptlist
(
list
p1 p3 p2 p4
)
ptlist
(
apply
'
append
ptlist
)
)
(
setq
tmp
(
vlax
-
make
-
safearray
vlax-vbDouble
(
cons
0
(
-
(
length
ptlist
)
1
)
)
)
)
(
vlax-safearray-fill
tmp ptlist
)
(
setq
obj
(
vla-addPolyline
spc tmp
)
)
(
vla-put-closed
obj
:vlax-true
)
(
vl-cmdf
"_.Revcloud"
"A"
arc arc
""
(
entlast
)
"NO"
)
(
setq
obj
(
vlax
-
ename
->
vla-object
(
entlast
)
)
)
(
setq
objs
(
vla-put-layer
obj
"Defpoints"
)
)
(
setq
objs
(
vla-put-color
obj
256
)
)
(
if
(
<
0
(
nth
0
p1
)
)
(
setq
p5x
(
nth
0
p1
)
)
(
setq
p5x
(
nth
0
p2
)
)
)
(
if
(
<
0
(
nth
1
p1
)
)
(
setq
p5y
(
nth
1
p1
)
)
(
setq
p5y
(
nth
1
p4
)
)
)
(
setq
p5
(
kjk_nearest gp
(
list
p1 p2 p3 p4
)
)
)
(
setq
gp1
(
polar
gp
(
*
1.5
pi
)
(
*
(
setq
i
(
1+
i
)
)
(
*
sp
2
)
)
)
)
(
vl-cmdf
"_.LINE"
gp1 p5
""
)
(
setq
obj
(
vlax
-
ename
->
vla-object
(
entlast
)
)
)
(
setq
objs
(
vla-put-layer
obj
"Defpoints"
)
)
(
setq
objs
(
vla-put-color
obj
256
)
)
(
setq
objs
(
vla-put-linetype
obj
"Continuous"
)
)
(
setq
obj
(
vla-addtext
spc
(
strcat
(
itoa
(
1+
i
)
)
" - "
)
(
vlax-3D-point
gp1
)
sp
)
)
(
setq
objs
(
vla-put-layer
obj
"Defpoints"
)
)
(
setq
objs
(
vla-put-color
obj
256
)
)
)
)
)
(
setvar
'TEXTSIZE ts
)
)
(
defun
kjk_nearest
(
pt1 ptlist
/
tpt nearest
)
(
foreach
tpt ptlist
(
if
tpt
(
setq
nearest tpt
)
)
)
(
foreach
tpt ptlist
(
if
tpt
(
if
(
<
(
distance
tpt pt1
)
(
distance
pt1 nearest
)
)
(
setq
nearest tpt
)
)
)
)
nearest
)
Thanks in advance
Logged
Sorry for my English.
Donate to Theswamp
www.sergiwa.com
CAB
Global Moderator
Seagull
Posts: 10401
Re: Why is this lisp count start point of 2 lines as one point?
«
Reply #1 on:
April 18, 2018, 12:12:35 PM »
Without trying the lisp, Turn the osnaps off.
Logged
I've reached the age where the happy hour is a nap. (°¿°)
Windows 10 core i7 4790k 4Ghz 32GB GTX 970
Please support this web site.
HasanCAD
Swamp Rat
Posts: 1422
Re: Why is this lisp count start point of 2 lines as one point?
«
Reply #2 on:
April 19, 2018, 03:09:52 AM »
Thanks CAB
Working perfect
Logged
Sorry for my English.
Donate to Theswamp
www.sergiwa.com
Print
Pages: [
1
] |
Go Up
« previous
next »
TheSwamp
»
Code Red
»
AutoLISP (Vanilla / Visual)
»
Topic:
Why is this lisp count start point of 2 lines as one point?