试试这个:
- (defun c:ptlabel ( / dr fn file ht i lst pr s st sf ts )
- (setq
- pr (getstring t "\nSpecify Label Prefix <None>: ")
- sf (getstring t "\nSpecify Label Suffix <None>: ")
- st (cond ((getint (strcat "\nSpecify Start Number <" (itoa (setq st (cond (st) (1)))) ">: "))) (st))
- ht (cons 40 (getvar 'TEXTSIZE))
- ts (cons 7 (getvar 'TEXTSTYLE))
- )
- (initget "LtR RtL BtT TtB")
- (setq dr (cond ((getkword (strcat "\nSpecify Direction [LtR/RtL/BtT/TtB] <" (setq dr (cond (dr) ("LtR"))) ">: "))) (dr)))
-
- (if (setq s (ssget '((0 . "POINT"))))
- (progn
- (setq fn (getfiled "Enter file to save to" (getvar 'dwgprefix) "csv" 1))
- (setq file (open fn "w"))
- (repeat (setq i (sslength s))
- (setq lst (cons (cdr (assoc 10 (entget (ssname s (setq i (1- i)))))) lst))
- )
- (foreach pt
- (vl-sort lst
- (cdr
- (assoc dr
- '(
- ("LtR" . (lambda ( a b ) (< (car a) (car b))))
- ("RtL" . (lambda ( a b ) (> (car a) (car b))))
- ("BtT" . (lambda ( a b ) (< (cadr a) (cadr b))))
- ("TtB" . (lambda ( a b ) (> (cadr a) (cadr b))))
- )
- )
- )
- )
- (entmake (list '(0 . "TEXT") (cons 10 pt) ht ts '(72 . 1) '(73 . 2) (cons 11 pt) (cons 1 (strcat pr (itoa st) sf))))
- (write-line (strcat pr (itoa st) sf "," (vl-princ-to-string pt)) file)
- (setq st (1+ st))
- )
- (close file)
- (startapp "explorer.exe" fn)
- )
- )
- (princ)
- )
如果我理解正确,您希望将点数据从CAD导出到EXCEL。。。选项是通过CSV文件;启动EXCEL后,您可以将工作表数据保存为任何EXCEL文件格式,如XLS等。。。
干杯,M.R。 |