吴欣 发表于 2012-11-21 12:10:29

lisp 读取文本文档的问题

假如 文本格式是为 b1   
                                  2   13   12
                                  4   16    4
                                  6    8      3
                                  8   10.5    12
                                  b2
                                 2   10   4
                                 4      4    3
                                 5      11   6
       那么如何用lisp读取文本数据,实现 b1 使用b1以下的坐标形成一个多线段,b2 使用b2以下的数据形成另一条多线段?请各位老师指导一下,郁闷了好几天了一直无从下手

ll_j 发表于 2012-11-21 17:05:22

Lisp实现并不难,都读出来,然后对数据进行判断,后面就好处理了。
在lisp中构造多段线的方法稍微复杂一点,我是不太喜欢用。
这种问题,如果内容不是特别多的话,我倒是喜欢用Excel辅助作图,把文件读到Excel中,构建“x,y”这样的列,复制粘贴到CAD的PL命令下。

吴欣 发表于 2012-11-21 17:34:05

我想在lisp中实现请老师贴出相应源码

Andyhon 发表于 2012-11-21 17:54:17

本帖最后由 Andyhon 于 2012-11-21 17:54 编辑

2   13   12
x    y   z   

吴欣 发表于 2012-11-21 17:58:54

本帖最后由 吴欣 于 2012-11-21 18:02 编辑

   可以这样理解 三行数据可以理解为xyz其中有个别行只有一个数据,
      

要求每行一个数据分开形成多线段,其中 一个数据的行 标注为 这条多线段的文字



Andyhon 发表于 2012-11-21 19:13:42

待修订...
(defun drawpl (m)
   (command "pline")
   (mapcar 'command m)
   (command "")
)

;;; for test only
;;; 程序草稿
(defun C:test ()
(setq fn (getfiled "座标点输入文件名" "新建 文本文档 (3)" "txt" 8)
      fp (open(findfile fn) "r")
       pts nil
      ptss nil
)

(while (setq str (read-line fp))
    (cond
   ((wcmatch str "@*")
      (setq ptss (cons pts ptss)
             pts nil
   ))
   ((setq xy (read (strcat "(" str ")")))
      (setq pts (cons xy pts))
   )))
   (setvar "CmdEcho" 0)
   (setvar "OsMode" 0)
   (drawpl pts)
   (foreach pts (cdr (reverse ptss)) (drawpl pts))
   (setvar "CmdEcho" 1)
)

吴欣 发表于 2012-11-21 21:25:39

谢谢 Andyhon 的源码,实在对不起 我发现了一个问题,我上传的 文本文档数据是连续的,线段能自然分开,如果数据有了变化,那么多线段就会出现交叉现象,我的本意是可以形成多个多线段,然后可以自动排列好空间不出现交叉现象,请你老人家再完善一下好吗?再有就是把每条直线的名字一并加在多线段上方,谢谢了!

吴欣 发表于 2012-11-21 21:29:29

谢谢 Andyhon 的源码,实在对不起 我发现了一个问题,我上传的 文本文档数据是连续的,线段能自然分开,如果数据有了变化,那么多线段就会出现交叉现象,我的本意是可以形成多个多线段,然后可以自动排列好空间不出现交叉现象,请你老人家再完善一下好吗?再有就是把每条直线的名字一并加在多线段上方,谢谢了!

吴欣 发表于 2012-11-21 21:32:24

Andyhon 发表于 2012-11-21 19:13 static/image/common/back.gif
待修订...

谢谢 Andyhon 的源码,实在对不起 我发现了一个问题,我上传的 文本文档数据是连续的,线段能自然分开,如果数据有了变化,那么多线段就会出现交叉现象,我的本意是可以形成多个多线段,然后可以自动排列好空间不出现交叉现象,请你老人家再完善一下好吗?再有就是把每条直线的名字一并加在多线段上方,谢谢了!

Andyhon 发表于 2012-11-21 22:05:03

依程序所得,请依此订正成合乎原意的正确图形以供探讨
页: [1] 2
查看完整版本: lisp 读取文本文档的问题