BLOACH85 发表于 2022-7-6 14:41:40

lisp读取csv文件??

有没有人有一个lisp可以读取csv文件并用它制作表格?唯一需要注意的是,我需要它以十进制形式读取文件,并以建筑英尺和英寸的形式制作表格,这将非常有帮助

BIGAL 发表于 2022-7-6 16:00:27

这是一个read txt并在一个框中创建多行文本,您需要更仔细地查看这些值并进行更多的数学运算,例如12.34=12+int(.34*12)=12'4“
 
                  ;SETOUTBOX.LSP
                   ; program to draw setout details as a co-ord list
                   ; 29/9/04 by alan
(setvar "menuecho" 0)
(setvar "SNAPMODE" 0)
(SETQ OLDSNAP (GETVAR "OSMODE"))
(setvar "OSMODE" 0)
(defun xyz ()
(setq ans "")
(setq char_found "")
(while (/= char_found ",")
   (setq char_found (substr new_line x 1))
   (setq x (+ x 1))
   (setq ans (strcat ans char_found))
)                  ;end while
)                  ;end defun
(setq setsc (/ (getreal "\nEnter Dwg scale 1: ") 1000.0))
(setq stpt (getpoint "\nPick top left point for details "))
(setq xyzfiles (getfiled "\nENTER CO-ORD File name" "" "" 4))
(setq fopen (open xyzfiles "R"))
(command "zoom" "E")
(command "zoom" "c" stpt (* setsc 100.0))
(setq pt1 stpt)
(setq txtht (* 2.5 setsc)); 2.5mm HIGH LETTERING
(setq num 1)
(setq llen (* 84.0 setsc))
(setq ydiff (* 4.5 setsc)); 4.5mm line spacing
(setq stptx (car stpt))
(setq stpty (cadr stpt))

(setq txtpt (list (+ stptx (* 42.0 setsc)) (+ stpty (* 2.0 setsc))))
(command "text" "BC" txtpt txtht "" "xxxxx")

(setq txtpt (list (+ stptx (* 42.0 setsc)) (+ stpty (* 7.0 setsc))))
(command "text" "BC" txtpt txtht "" "%%uSETOUT DETAIL")
(setq pt2 (polar stpt 0.0 llen))
(command "line" stpt pt2 "")      ;draw horizontal line
(setq pt1 (polar stpt 4.7124 (* 5.75 setsc)))
(setq txtpt (polar pt1 0.0 (* 9.0 setsc)))
(command "text" "BC" txtpt (* 3.5 setsc) "" "POINT")
(setq txtpt (polar pt1 0.0 (* 34.0 setsc)))
(command "text" "BC" txtpt (* 3.5 setsc) "" "EASTING")
(setq txtpt (polar pt1 0.0 (* 67.0 setsc)))
(command "text" "BC" txtpt (* 3.5 setsc) "" " NORTHING ")
(setq pt1 (polar stpt 4.7124 (* 8.0 setsc)))
(setq pt2 (polar pt1 0.0 llen))
(command "line" pt1 pt2 "")      ;draw horizontal line
(setq pt1 (polar pt1 4.7124 (* 1.0 setsc)))
(setq pt2 (polar pt1 0.0 llen))
(command "line" pt1 pt2 "")      ;draw horizontal line below above
(setq pt1 (polar pt1 4.7124 (* 1.0 setsc)))
(setq pt2 (polar pt1 0.0 llen))
(command "line" pt1 pt2 "")      ;draw horizontal line below above

(setq pt3 pt1)                ; sets pt to last line position
;(setq pt5 (polar pt3 1.5708 (* 1.0 setsc)))      ; 1 mm above line
(setq pt5 pt3)                ; 0.5 mm above line
(SETQ XX 1)
(while (setq new_line (read-line fopen))
(PRINC XX)
(setq x 1)
(setq y 5)
(xyz)
(setq ptno ans)            ;pull ptno out
(xyz)
(setq easting ans)
(xyz)
(setq northing ans)

(setq pt3 (polar pt3 4.7124 ydiff))
(setq pt4 (polar pt3 0.0 llen))
(command "line" pt3 pt4 "")
(setq pt5 (polar pt5 4.7124 ydiff))
(setq pt6 (polar pt5 0.0 (* 8.0 setsc)))
(setq pt7 (polar pt5 0.0 (* 28.0 setsc)))
(setq pt8 (polar pt5 0.0 (* 58.0 setsc)))
(command "text" "BL" pt6 txtht "" ptno)
(command "text" "BL" pt7 txtht "" EASTING)
(command "text" "BL" pt8 txtht "" NORTHING)
(SETQ XX (+ XX 1))
)                  ; end while
(command "line" stpt pt3 "")
(setq pt3 (polar pt3 0.0 (* 18.0 setsc)))
(setq stpt (polar stpt 0.0 (* 18.0 setsc)))
(command "line" stpt pt3 "")
(setq pt3 (polar pt3 0.0 (* 33.0 setsc)))
(setq stpt (polar stpt 0.0 (* 33.0 setsc)))
(command "line" stpt pt3 "")
(setq pt3 (polar pt3 0.0 (* 33.0 setsc)))
(setq stpt (polar stpt 0.0 (* 33.0 setsc)))
(command "line" stpt pt3 "")
(princ setsc )
(setq pt1nil
   pt2nil
   pt3nil
   pt4nil
   pt5nil
   pt6nil
   pt7nil
   pt8nil
   stpt nil
   ansnil
   SETSC NIL
)
(SETVAR "OSMODE" OLDSNAP)
(princ)
页: [1]
查看完整版本: lisp读取csv文件??