No problem. The code is a modification of a code I found online. It is ment to select all obkects inside a closed polyline. I changed the code a litle bit meanwhile.
(defun c:SWC (/ _pac add ss i temp i2)
;; Select Within Curve
;; Alan J. Thompson, 03.31.11
(vl-load-com)
(defun _pac (e / l v d lst)
(setq d (- (setq v (/ (setq l (vlax-curve-getDistAtParam e (vlax-curve-getEndParam e))) 100.))))
(while (< (setq d (+ d v)) l)
(setq lst (cons (trans (vlax-curve-getPointAtDist e d) 0 1) lst))
)
)
(if (setq add (ssadd) ss (ssadd a))
(progn (repeat (setq i (sslength ss))
(if (setq temp (ssget "_WP" (_pac (ssname ss (setq i (1- i))))))
(repeat (setq i2 (sslength temp)) (ssadd (ssname temp (setq i2 (1- i2))) add))
)
)))
(cond ((/= temp nil)
(setq aadd add)
(setq countobj (sslength aadd))
(cond ((= countobj 1)
(setq i2 (sslength temp))
(ssadd (ssname temp (setq i2 (1- i2))) add)
(setq aadd add)
(setq countobj (sslength aadd))
(sssetfirst nil add)
(ssget "_I")
))
(cond ((> countobj 1)
(setq file_handle1 (open "D:\\Data1.txt" "a"))
(setq enname (ssname aadd 0))
(setq enname1 (vlax-ename->vla-object enname))
(setq parbr (vla-get-textstring enname1))
(setq listaprint01(list parbr))
(print listaprint01 file_handle1)
))
))
(cond ((= temp nil)
(setq ispis "No parcel nnumber")
(setq file_handle1 (open "D:\\Data1.txt" "a"))
(setq listaprint001 ispis)
(print listaprint001 file_handle1)
)
)
(princ)
)
(setq add (ssadd) ss (ssadd a))
This creates a emty selection set 'add' and selection set 'ss' containing 'a' which is a entity name of the closed polyline.
(if (setq add (ssadd) ss (ssadd a))
(progn (repeat (setq i (sslength ss))
(if (setq temp (ssget "_WP" (_pac (ssname ss (setq i (1- i))))))
(repeat (setq i2 (sslength temp)) (ssadd (ssname temp (setq i2 (1- i2))) add))
)
)))
So, this part selects all objects inside the polyline. When no objects are present it returns 'temp' as nil.
What I'm trying to do with the cond functions is :
-If there are no objects inside the polyline then do this
(cond ((= temp nil)
(setq ispis "No parcel nnumber")
(setq file_handle1 (open "D:\\Data1.txt" "a"))
(setq listaprint001 ispis)
(print listaprint001 file_handle1)
)
)
-If there are objects then count hov many.
(cond ((/= temp nil)
(setq aadd add)
(setq countobj (sslength aadd))
If only one then do this
(cond ((= countobj 1)
(setq i2 (sslength temp))
(ssadd (ssname temp (setq i2 (1- i2))) add)
(setq aadd add)
(setq countobj (sslength aadd))
(sssetfirst nil add)
(ssget "_I")
))
If more than one than do this
(cond ((> countobj 1)
(setq file_handle1 (open "D:\\Data1.txt" "a"))
(setq enname (ssname aadd 0))
(setq enname1 (vlax-ename->vla-object enname))
(setq parbr (vla-get-textstring enname1))
(setq listaprint01(list parbr))
(print listaprint01 file_handle1)
))