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í