找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1132|回复: 5

[编程申请]:TXT格式坐标值如何读入lisp

[复制链接]
发表于 2003-5-18 14:07:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
请教:如何把下列格式的TXT文档中的坐标值读入lisp中,成为空间点坐标
一、格式1:
1 12.35 32.55  55.66
2 56.88 45.88 45.55
3 89.55 66.78 45.66
二、格式2
12.555 12.885 468.54
456.554 12.55 42.58
45.45 5.699 56.66
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 4个

财富等级: 恭喜发财

发表于 2003-5-18 18:29:17 | 显示全部楼层

  1. (defun mc_getfile_text (files line / fn text)
  2.   (setq line(+ 1 line))
  3.   (setq files (findfile files))
  4.   (if files
  5.     (progn
  6.       (setq fn(open files "r"))
  7.       (if (<= line (mc_getfile_line files))
  8.         (progn
  9.           (repeat line
  10.             (setq text(read-line fn))
  11.           )
  12.           (close fn)
  13.           text
  14.         )
  15.         nil
  16.       )
  17.     )
  18.     nil
  19.   )
  20. )

功能  
读取指定文件中指定行的内容  
语法  
(mc_getfile_text files line)  
参数  
files:文本文件名,如未指定路径则自动在搜索路径中查找文件
line:指定行  
返回值  
返回文件指定行内容,如果文件不存在或指定行超过文件总行数,则返回nil  
样例  
(mc_getfile_text "tyl.ini" 5)  




  1. (defun mc_getfile(files / tmplst x fn)
  2.   (setq files(findfile files))
  3.   (if files
  4.     (progn
  5.       (setq fn (open  files "r"))
  6.       (while (setq x (read-line fn))
  7.         (setq tmplst(append tmplst(list x)))
  8.       )
  9.       (close fn)
  10.       tmplst
  11.     )
  12.      nil
  13.   )
  14. )  


功能  
读取文件并按行将文件转换为表  
语法  
(mc_getfile files)  
参数  
files:文本文件名,如未指定路径则自动在搜索路径中查找文件  
返回值  
返回一个表,文件中一行被转换为表中的一个项,如果文件不存在,则返回nil  
样例  
(mc_getfile "tyl.ini")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2003-5-18 18:58:36 | 显示全部楼层
用read-line读文件,然后用以下语句转换成表:
(setq pt(read (strcat "(" text ")")))


to tuger:
第一个函数中缺函数mc_getfile_line。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2003-5-18 20:48:36 | 显示全部楼层

Re: [编程申请]:TXT格式坐标值如何读入lisp

最初由 agang198 发布
[B]请教:如何把下列格式的TXT文档中的坐标值读入lisp中,成为空间点坐标
一、格式1:
1 12.35 32.55  55.66
2 56.88 45.88 45.55
3 89.55 66.78 45.66
二、格式2
12.555 12.885 468.54
456.554 12.55 42.58
45.... [/B]


看看cad的帮助,很简单的.

  1. ;1:
  2. (setq li '())
  3. (setq h(open "1.txt""r")
  4. (while(and (setq line(read-line h))(/= line ""))
  5. (setq li(cons(cdr (read(strcat "(" (read line)")")))li) )
  6. )
  7. (close h)
  8. (setq li(reverse li))
  9. ;li就是要的所有点表.

  10. ;2:不要cdr

写的时候,一定要考虑,可不可以读进cad,而且要最方便的转换.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4个

财富等级: 恭喜发财

发表于 2003-5-19 01:35:35 | 显示全部楼层
呵呵,不好意思,忘了贴这个

  1. (defun mc_getfile_line(files / tmplst x fn)
  2.   (setq files(findfile files)
  3.   (if files
  4.     (progn
  5.       (setq tmplst 0)
  6.       (setq fn(open files "r"))
  7.       (while (read-line fn)
  8.         (setq tmplst (+ 1 tmplst))
  9.       )
  10.       (close fn)
  11.       tmplst
  12.     )
  13.     nil
  14.   )
  15. )  

功能  
获取文件的行数  
语法  
(mc_getfile_line files)  
参数  
files:文本文件名,如未指定路径则自动在搜索路径中查找文件  
返回值  
返回文件的行数,如果文件不存在,则返回nil  
样例  
(mc_getfile_line "tyl.ini")




在给你一个参考
已知一组 X、Y、Z ,并且已写入一文件TXT1.TXT,要根据此文件让其自动用“PLINE”绘出。  
文件内容如下:

X Y Z
123 456 789
222 333 444
444 555 666
777 888 999
888 999 77
999 754 44
111 755 66
333 666 55
555 777 11

可以用以下程序完成:

  1. (defun c:pltxt (/ oldcmd oldblip oldsnap fle fn pt)
  2.   (setq oldcmd (getvar "cmdecho"))
  3.   (setvar "cmdecho" 0)
  4.   (setq oldblip (getvar "blipmode"))
  5.   (setvar "blipmode" 0)
  6.   (setq oldsnap (getvar "osmode"))
  7.   (setvar "osmode" 0)
  8.   (setq fle (findfile "txt1.txt"))
  9.   (if (not fle)
  10.     (setq fle (getfiled "请选择数据文件" "txt1" "txt;dat;*" 8))
  11.   )
  12.   (if fle
  13.     (progn
  14.       (setq fn (open fle "r"))
  15.       (read-line fn)
  16.       (read-line fn)
  17.       (command "pline")
  18.       (while (setq pt (read-line fn))
  19. (command (read (strcat "(" pt ")")))
  20.       )
  21.       (command "")
  22.       (close fn)
  23.     )

  24.     (princ "\n未选择数据文件,退出")
  25.   )
  26.   (setvar "cmdecho" oldcmd)
  27.   (setvar "blipmode" oldblip)
  28.   (setvar "osmode" oldsnap)
  29.   (princ)
  30. )

你可以参考这个。。。。程序把文件读入,然后用pl线画出
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-5-20 16:16:26 | 显示全部楼层
谢谢各位大哥大姐小弟小妹!
今晚好好拜读。
有了它,就可做程序数据接口了。
再三谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-26 11:14 , Processed in 0.584785 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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