你好
我试图使用LM:writecsv函数将数据从块导出到csv文件。
我制作了一个lisp,可以选择所有的块,并且我能够生成一个包含我需要的数据的列表。我遇到的问题是制作LM:writecsv函数所需的列表列表。
到目前为止,我有:
- (defun C:expcsv()
- (setq ssnsccsv (ssget "X" '((0 . "INSERT") (-3 ("vs_carrier*")))))
- (setq sscnt 0 sslist nil)
- (repeat (sslength ssnsccsv)(setq sslist (cons (ssname ssnsccsv sscnt) sslist))
- (setq sscnt (1+ sscnt))
- )
- (princ)
- ;(while (/= sslist nil)
- (setq a (car sslist))
- (setq b (cdr sslist))
- (setq varcsv1 1)
- (setq ssa (ssadd)) ;block ename
- (ssadd a ssa) ;to selection set 'ssa'
- (setq koordinatea (cdr (assoc 10 (entget (ssname ssa 0)))))
- (setq xkoora (rtos (car koordinatea))) ;x coordinate
- (setq ykoora (rtos (cadr koordinatea)));y coordinate
- (setq varcsv2 (strcat "POINT (" xkoora " " ykoora ")"))
- (setq lista1csv (list varcsv1 varcsv2))
- (setq dada (cdr(car(cdr(assoc -3 (entget a '("vs_carrier*")))))))
- (setq data1 (cdr (nth 0 dada)))
- (setq data2 (cdr (nth 1 dada)))
- (setq data3 (cdr (nth 2 dada)))
- (setq data4 (cdr (nth 3 dada)))
- (setq data5 (cdr (nth 4 dada)))
- (setq data6 (cdr (nth 5 dada)))
- (setq data7 (cdr (nth 6 dada)))
- (setq lista2csv (list data1 data2 data3 data4 data5 data6 data7))
- (setq listacsv (append lista1csv lista2csv))
- );end of defun
列表“listacsv”包含每个块所需的所有数据。
那么,我如何制作一个循环,从选择集中提取每个块,制作一个包含数据的列表,然后将该列表附加到一个列表列表中,然后我可以使用LM:writecsv函数。
我希望我是清楚的。
所以我需要每个块的列表,该列表应该是csv文件中的一行。
这是李·麦克的LM:writecsv函数的链接http://www.lee-mac.com/writecsv.html |