用lisp写了一个小程序,从文本文件读入坐标,在cad里画多段线,文本格式为: 1 495227 4143786 1 495226 4143788 1 495225 4143790 程序源码如下: (defun c:tkl (/ filename pointgroup corlist data POINTNUMBER) (setq filename (open (getfiled "选择数据文件" " " "" 0) "r")) (setq pointgroup nil   OINTNUMBER 0 ) (while (sETQ DATA (read-line filename)) (setq corlist (list (list 10 (CAdR (READ (STRCAT "(" DATA ")"))) (CAddR (READ (STRCAT "(" DATA ")"))) ) (cons 40 0) (cons 41 0) (cons 42 0) ) ) (setq pointgroup (append corlist pointgroup)) (SETQ POINTNUMBER (1+ POINTNUMBER) ) ) ;(setq pointgroup (reverse pointgroup)) (print pointgroup) (close filename) (entmake (list (append (list (cons 0 "LWPOLYLINE") (CONS 5 "150") (cons 100 "AcDbEntity") (CONS 67 0) (cons 410 "model") (cons 8 "tracklines") (cons 100 "AcDbPolyline") (cons 90 POINTNUMBER) (cons 70 0) (cons 43 0) (cons 38 0) (cons 39 0) ) pointgroup (LIST (list 210 0.0 0.0 1)) ) ) ) (gc) ) 运行后提示: 错误: DXF 组不正确: ((0 . "LWPOLYLINE") (5 . "150") (100 . "AcDbEntity") (67 . 0) (410 . "model") (8 . "tracklines") (100 . "AcDbPolyline") (90 . 3) (70 . 0) (43 . 0) (38 . 0) (39 . 0) (10 495225 4143790) (40 . 0) (41 . 0) (42 . 0) (10 495226 4143788) (40 . 0) (41 . 0) (42 . 0) (10 495227 4143786) (40 . 0) (41 . 0) (42 . 0) (210 0.0 0.0 1)) 请高手指点,错在何处了,不胜感激。 |