CAD programy 4M
Čtení dat z .csv souboru
Často je nutné vytvářet v CAD výkresech nejrůznější tabulky, jejichž alternativy již existují v Excellu. Excellovou tabulku lze jednoduše uložit do formátu s příponou .csv a hodnoty pak načíst do CAD výkresu pomocí následujícího skriptu.Skript je nastaven na oddělení sloupců pomocí středníků a odstraňuje uvozovky, pokud je do nich text sloupce uzavřen. Ve skriptu je nutné nastavit název a umístění .csv souboru. Oddělující znak i velikost textu v CAD výkrese lze také snadno změnit úpravou hodnot na začátku skriptu.
Vzorový .csv soubor naleznete zde.
(DEFUN C:READ(/ nazev file pt0 pt pt1 pt2 x y pt h r rline strct tmplist mtext colct rowct value1 value2 delimiter colheight colwidth lineshift) (setq nazev "mistnosti1np.csv") ; nazev souboru (setq nazev (strcat "C:/_projekty/tabulky/" nazev)) ; cesta k souboru (setq delimiter ";") ; sloupce v csv jsou oddeleny strednikem (setq h 200) ; vyska textu (setq r 0) ; natoceni textu (setq colheight 500) ; vyska radku tabulky ve vykrese (setq colwidth 1600) ; sirka sloupce tabulky ve vykrese (setq lineshift 100) ; odsazeni cary tabulky (setq file (open nazev "r")) (setq pt0 (getpoint "\nZadejte umisteni: ")) (setq x (car pt0)) (setq y (cadr pt0)) (setq pt (list x y)) (setq rowct 0) (setq rline (read-line file)) (while (/= rline nil) (if (setq rline (read-line file)) (progn (setq strct 1) ; nastavi pocitadlo znaku v radku na 1 (setq tmplist (list 0)) ; vlozi 0 do seznamu oddelovacich znaku ; prida do tmplist seznam pozic oddelovacich znaku (napr. stredniku) (repeat (strlen rline) (if (= (substr rline strct 1) delimiter) (setq tmplist (reverse (cons strct (reverse tmplist)))) ) (setq strct (1+ strct)) ) (setq tmplist (reverse (cons strct (reverse tmplist)))) (setq colct 0) (setq x (car pt0)) (setq y (- y colheight)) ; cteni sloupcu v radku (repeat (1- (length tmplist)) (setq value1 (nth colct tmplist)) (setq value2 (nth (1+ colct) tmplist)) (setq mtext (substr rline (1+ value1) (- (- value2 value1) 1))) ; smazani uvozovek, pokud text sloupce zacina uvozovkami (if (= (substr mtext 1 1) "\"") (setq mtext (substr mtext 2 (- (strlen mtext) 2)))) (setq pt (list x y)) (command "_text" pt h r mtext) (setq colct (1+ colct)) (setq x (+ x colwidth)) ) ;(princ colct) ;(princ "\n") (setq pt1 (list (car pt0) (- y lineshift))) (setq pt2 (list (+ (car pt0) (* colct colwidth)) (- y lineshift))) (command "_line" pt1 pt2 "") )) ) (close file) (princ) )
Soubor ke stažení