One last bit of help needed
I have re-written my lsp file to include zeha's code for sorting but I cannot get the last piece to work,
I am tyring to re-use the sorting code to place text on each sorted point,
I had it working before but cant work out where I should place the lines
(command "text" n "" 0 (strcat pfx (rtos sn 2 0) sfx))
(num)
as used before.
sorry to be such a pain.
Spencer
(vmon)
(defun dtr (a) (* pi (/ a 180.0)) )
(defun NUM ()
(setq sn (1+ sn))
)
(defun tabpts ()
(setq e (entget x))
(setq n (length e))
(setq a 0)
(while (<= a (1- n))
(if (= (car (nth a e)) 10) (progn
(setq np (polar np (dtr 270) dtl))
(if (= wyn "Y") (progn
(setq rn (1+ rn))
(command "text" np "" "" (rtos rn 2 0))
))
(if (= wx "X") (progn
(command "text" (polar np 0.0 dtcr) "" "" (rtos (cadr (nth a e))) )
))
(if (= wx "Y") (progn
(command "text" (polar np 0.0 dtcr) "" "" (rtos (caddr (nth a e))) )
))
(if (= wx "XY") (progn
(command "text" (polar np 0.0 dtcr) "" "" (rtos (cadr (nth a e)))
"text" (polar np 0.0 (+ dtcr dtc1)) "" "" (rtos (caddr (nth a e))) )
))
(if (= wx "XYZ") (progn
(setq zp 0.0)
(command "text" (polar np 0.0 dtcr) "" "" (rtos (cadr (nth a e)))
"text" (polar np 0.0 (+ dtcr dtc1)) "" "" (rtos (caddr (nth a e)))
"text" (polar np 0.0 (+ dtcr dtc1 dtc2)) "" "" (rtos zp) )
))
))
(setq a (1+ a))
)
)
;................................................................................
;................................................................................
(defun inputget (q txt x y z / a)
(if (= x nil) (setq x y))
(if (= (type x) 'STR)
(princ (strcat txt x)) (princ (strcat txt (rtos x))))
(setq a x)
(cond ((= q "kw") (setq x (getkword "> : ")))
((= q "r" ) (setq x (getreal "> : ")))
((= q "d" ) (setq x (getdist "> : ")))
((= q "i" ) (setq x (getint "> : ")))
((= q "s" ) (setq x (getstring T " : ")))
((= q "a" ) (setq x (getangle "> : ")))
((= q "p" ) (setq x (getpoint ":
: ")))
)
(if (or (= x nil) (= x "")) (setq x a))
(eval x))
;......................................................
(defun C:PCL (/ ss csor dtc dtc1 dtc2 n etlist sp wyn rn x np)
(setq pfx (getstring "\n Prefix: ")
sfx (getstring "\n Suffix: ")
sn (getint "\nStart Number: ")
)
(setq ss (ssget '((0 . "CIRCLE"))))
(if ss
(progn
(setq n (1- (sslength ss)) c nil)
(while (>= n 0)
(setq elist (entget (ssname ss n))
c (cons (cdr (assoc 10 elist)) c)
n (1- n)
)
)
(setq p (car (vl-sort c (function (lambda (e1 e2) (and (< (car e1) (car e2))(< (car e1) (car e2))))))))
(command "._pline")
(while c
(setq csor (vl-sort c (function (lambda (e1 e2) (< (distance p e1) (distance p e2))))))
(setq p (car csor))
(command p)
(setq c (cdr csor))
)
(setq csor (vl-sort c (function (lambda (e1 e2) (< (distance p e1) (distance p e2))))))
(foreach n csor
(command n)
)
(command "")
(setq z 2)
(setq sp (getpoint "\nStart Point (top left hand corner of table):"))
(initget "X Y Z XY XYZ")
(setq wx (inputget "kw" "\nValues to be tabulated: X, Y, Z, XY or XYZ ? <" wx "XY" nil))
(setq dtcr 0)
(initget "Y N")
(setq wyn (inputget "kw" "\nAdd Reference Column (i.e pile No's) Y/N :<" wyn "Y" nil))
(if (= wyn "Y") (progn
(setq dtc (inputget "d" "\nDistance between Ref Column & X: <" dtc 0.0 nil))
(setq rn 0 dtcr dtc)
))
(setq dtl (inputget "d" "\nDistance between Rows: <" dtl 0.0 nil))
(if (or (= wx "XY") (= wx "XYZ")) (progn
(setq dtc1 (inputget "d" "\nDistance between columns X & Y: <" dtc1 0.0 nil)) ))
(if (= wx "XYZ") (progn
(setq dtc2 (inputget "d" "\nDistance between Columns Y & Z: <" dtc2 0.0 nil)) ))
(setq x (entlast))
(if x (progn
(setq np (polar sp (dtr 90) dtl) )
(tabpts)
)))
)
(progn
(setq n (1- (sslength ss)) c nil)
(while (>= n 0)
(setq elist (entget (ssname ss n))
c (cons (cdr (assoc 10 elist)) c)
n (1- n)
)
)
(setq p (car (vl-sort c (function (lambda (e1 e2) (and (< (car e1) (car e2))(< (car e1) (car e2))))))))
(command "text" n "" 0 (strcat pfx (rtos sn 2 0) sfx))
(num)
(while c
(setq csor (vl-sort c (function (lambda (e1 e2) (< (distance p e1) (distance p e2))))))
(setq p (car csor))
(command p)
(setq c (cdr csor))
)
(setq csor (vl-sort c (function (lambda (e1 e2) (< (distance p e1) (distance p e2))))))
(foreach n csor
(command n)
)
)
(princ)
)