 - (prompt "<<zbdc>>获取多段线上各顶点坐标,并导出Excel表")
- (defun c:zbdc ()
- (setq en (ssget '((0 . "*POLYLINE"))))
- (setq i 0
- j 1
- filex (getfiled "指定输出文件路径" "" "xls" 1)
- file (open filex "w")
- )
- (repeat (sslength en)
- (setq ent (entget (ssname en i))
- p (cdr (assoc 10 ent))
- )
- (write-line (strcat "线段" (itoa (1+ i))) file)
- (write-line "点号\tX\tY" file)
- (entmake
- (list '(0 . "TEXT")
- (cons 1 (strcat (itoa (1+ i)) "#线段"))
- (cons 7 "宋体")
- (cons 10 (list (car p) (- (cadr p) 2)))
- (cons 40 2)
- )
- )
- (foreach ee ent
- (if (= (car ee) 10)
-
- (progn
- (setq ee (cdr ee))
- (setq y (cadr ee)
- x (car ee)
- )
- (entmake
- (list '(0 . "TEXT")
- (cons 1 (itoa j))
- (cons 10 (list (+ (car p) 0.01) (- (cadr p) 0.01)))
- (cons 7 "宋体")
- (cons 40 2)
- (cons 8 "编号")
- (cons 62 3)
- )
- )
- (write-line
- (strcat (itoa j)
- "\t"
- (rtos y 2 3)
- "\t"
- (rtos x 2 3)
- )
- file
- )
- (setq j (1+ j))
- )
- )
- )
- (setq i (1+ i))
- )
- (close file)
- (prin1)
- )
|