|
发表于 2022-7-6 09:08:52
|
显示全部楼层
Just to avoid troubles with Excel, try it for the quick test
It will output text file instead:
Command :Txtin
[code];;*** list to csv readable string ***(defun list->csv(lst sep / join);;arguments;; lst -list of string like: '("CENTER" "-4612.43" "5043.47" "1787.77");;sep - string (separator, i.e: ",");;return string like "CENTER,-4612.43,5043.47,1787.77" (setq join (apply 'strcat (mapcar '(lambda (x)(strcat x sep)) lst)) join (vl-string-right-trim sep join)) join )(defun C:Txtin(/ contours datafile datalist fname mtext_list pt sectexts txs x)(command "_zoom" "_e")(if (setq sectexts (ssget "X" (list (cons 0 "mtext") (cons 8 "C-ROAD-SCTN-TITL") (cons 62 92) (cons 40 2.0) (cons 7 "Standard") (cons 1 "*+*") (cons 410 (getvar "ctab")) ) ) ) (progn (setq mtext_list (mapcar 'vlax-ename->vla-object (mapcar 'cadr (ssnamex sectexts))) ) (setq contours (mapcar '(lambda (x) (if (setq pt (vlax-get x 'insertionpoint)) (cons (vlax-get x 'textstring) (list (list (- (car pt) 24) (cadr pt)) (list (+ (car pt) 24) (cadr pt)) (list (+ (car pt) 24) (- (cadr pt) 24)) (list (- (car pt) 24) (- (cadr pt) 24)) ) ) ) ) mtext_list ) ) (setq datalist (mapcar '(lambda (x) (cons (car x) (list (if (setq txs (ssget "wp" (cdr x) (list (cons 0 "text") (cons 8 "are-block") (cons 410 (getvar "ctab")))) ) (vlax-get (vlax-ename->vla-object (ssname txs 0)) 'textstring) "" ) (if (setq txs (ssget "wp" (cdr x) (list (cons 0 "text") (cons 8 "are-block1") (cons 410 (getvar "ctab"))) ) ) (vlax-get (vlax-ename->vla-object (ssname txs 0)) 'textstring) "" ) ) ) ) contours ) ) (setq fname (strcat (getvar "dwgprefix") (vl-filename-base (getvar "dwgname")) ".txt");csv record "\t") datafile) )(close datafile)(getstring "\n\t\t *** Press Enter to open resulting file ***");;(startapp "C:\\Program Files\\Microsoft Office\\Office12\\EXCEL.EXE" (strcat "\"" fname "\"")) (startapp "NOTEPAD.EXE" (strcat "\"" fname "\"")) ) )(princ))(prompt "\n\t\t >>> Start command with Txtin |
|