(defun c:bd( / oldcolor oldpltp dist pt e1 e2
n fil_w x str nf st l e m p1 p2 ttl tt ptx pty)
(setvar "modemacro" " YuCheng ")
(command "_.undo" "m")
(command)
(setvar "cmdecho" 0)
(setq n 0)
(setq oldcolor (getvar "cecolor"))
(setvar "CECOLOR" "red")
(setq oldpltp (getvar "PLINETYPE"))
(setvar "PLINETYPE" 1)
(setq e1 nil)
(setq ss (ssadd))
(setq sh (ssadd))
(setvar "osmode" 32)
(initget 0 "Up Down Left Right")
(setq fx (getkword "确定表格生长方向Up/Down/<Down>:"))
;(setq dist (getdist"\n>>**********>>输入行间距:"))
(setvar "osmode" 0)
(command)
(print '>>**********>>注意将打开的写入文件关闭,或更换文件名!!!)
(while (setq pt (getpoint"\n>>**********>>点击选择字段:"))
(command "_.boundary" "a" "i" "n" "" "" pt "")
(command)
(if (= (cdr (assoc 0 (entget (entlast)))) "LWPOLYLINE")
(setq e2 (entlast))
(setq e2 e1)
)
;(command "_.pedit" e2 "w" 1 "")
(command)
(if (/= e2 e1)
(progn
(setq ss (ssadd e2 ss))
(setq e1 e2)
(command "_.hatch" "s" e1 "")
(command)
(setq sh (ssadd (entlast) sh))
(redraw e2 2)
(setq n (+ n 1))
(print '>>*****>>已选字段数:)
(prin1 n)
)
(print '>>**********>>所选字段无效!!!)
)
)
(setq fil_w (getfiled "请指定保存的文件" "table" "csv" 1))
(setq x (open fil_w "w"))
(setq str "1")
(setq nf 0)
(while (/= str "")
(setq str "")
(setq st "")
(setq l 0)
(while (/= l n)
(if (setq e (ssname ss l))
(progn
(setq m 4)
(setq p1 (reverse (entget e)))
(while (> m 0)
(setq p1 (cdr p1))
(setq m (- m 1))
)
(setq p1 (cdar p1))
(setq m 12)
(setq p2 (reverse (entget e)))
(while (> m 0)
(setq p2 (cdr p2))
(setq m (- m 1))
)
(setq p2 (cdar p2))
(if (or (setq ttl (ssget "w" p1 p2 '((0 . "text")))) (setq ttl (ssget "w" p1 p2 '((0 . "mtext")))))
(progn
(setq tt (cdr (assoc 1 (entget (ssname ttl 0)))))
;(setq distx (abs (- (car p2) (car p1))))
(setq disty (abs (- (cadr p2) (cadr p1))))
)
(setq tt "")
)
)
(setq tt "")
)
(setq st (strcat st tt ","))
(setq str (strcat str tt))
(setq l (+ l 1))
)
(print)
(princ st)
(write-line st x)
(setq ptx (car p1))
(setq pty (cadr p1))
(cond
((= fx "Up") (setq pt (list ptx (+ pty disty) 0)))
((= fx "Down") (setq pt (list ptx (- pty disty) 0)))
((= fx nil) (setq pt (list ptx (- pty disty) 0)))
)
(setq nf (+ nf 1))
(command "_.move" ss sh "" p1 pt)
(command "_.pan" pt p1)
(command)