明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3295|回复: 12

lisp 读取文本文档的问题

  [复制链接]
发表于 2012-11-21 12:10:29 | 显示全部楼层 |阅读模式
假如 文本格式是  为 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以下的数据形成另一条多线段?请各位老师指导一下,郁闷了好几天了  一直无从下手

发表于 2012-11-21 17:05:22 | 显示全部楼层
Lisp实现并不难,都读出来,然后对数据进行判断,后面就好处理了。
在lisp中构造多段线的方法稍微复杂一点,我是不太喜欢用。
这种问题,如果内容不是特别多的话,我倒是喜欢用Excel辅助作图,把文件读到Excel中,构建“x,y”这样的列,复制粘贴到CAD的PL命令下。
 楼主| 发表于 2012-11-21 17:34:05 | 显示全部楼层
我想在lisp中实现  请老师贴出相应源码
发表于 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其中有个别行只有一个数据,
      

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



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-11-21 19:13:42 | 显示全部楼层
待修订...

  1. (defun drawpl (m)
  2.    (command "pline")
  3.    (mapcar 'command m)
  4.    (command "")
  5. )

  6. ;;; for test only
  7. ;;; 程序草稿
  8. (defun C:test ()
  9.   (setq fn (getfiled "座标点输入文件名" "新建 文本文档 (3)" "txt" 8)
  10.         fp (open(findfile fn) "r")
  11.        pts nil
  12.       ptss nil  
  13.   )
  14.   
  15.   (while (setq str (read-line fp))
  16.     (cond
  17.      ((wcmatch str "@*")
  18.       (setq ptss (cons pts ptss)
  19.              pts nil
  20.      ))
  21.      ((setq xy (read (strcat "(" str ")")))
  22.       (setq pts (cons xy pts))
  23.    )))
  24.    (setvar "CmdEcho" 0)
  25.    (setvar "OsMode" 0)
  26.    (drawpl pts)
  27.    (foreach pts (cdr (reverse ptss)) (drawpl pts))
  28.    (setvar "CmdEcho" 1)
  29. )
 楼主| 发表于 2012-11-21 21:25:39 | 显示全部楼层
谢谢 Andyhon 的源码,实在对不起 我发现了一个问题,我上传的 文本文档数据是连续的,线段能自然分开,如果数据有了变化,那么多线段就会出现交叉现象,我的本意是可以形成多个多线段,然后可以自动排列好空间  不出现交叉现象,请你老人家再完善一下好吗?再有就是把每条直线的名字一并加在多线段上方,谢谢了!
 楼主| 发表于 2012-11-21 21:29:29 | 显示全部楼层
谢谢 Andyhon 的源码,实在对不起 我发现了一个问题,我上传的 文本文档数据是连续的,线段能自然分开,如果数据有了变化,那么多线段就会出现交叉现象,我的本意是可以形成多个多线段,然后可以自动排列好空间  不出现交叉现象,请你老人家再完善一下好吗?再有就是把每条直线的名字一并加在多线段上方,谢谢了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2012-11-21 21:32:24 | 显示全部楼层
Andyhon 发表于 2012-11-21 19:13
待修订...

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2012-11-21 22:05:03 | 显示全部楼层
依程序所得,请依此订正成合乎原意的正确图形以供探讨

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-9-28 07:21 , Processed in 0.174965 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表