明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2272|回复: 11

[LISP]请问,遇到这样的问题该怎样解决???

  [复制链接]
发表于 2006-3-13 16:18 | 显示全部楼层 |阅读模式

我在网上下载了这样的程序:

(defun c:shuchu(/ F Fn PP P0 P H)
(setvar "cmdecho" 0)
  (setq Fn (getfiled "\n数据文件" "" "txt;*" 8)
         F (open Fn "r")
  )
  (WHILE (setq L (READ-LINE F))
    (setq PP (read (strcat "(" L ")"))
          P0 (cdr PP)
           H (last PP)
           P (list (cadr P0) (car P0) H)
          P0 (polar P -0.5 1.0)
    )
    (if (eval (car PP))
        (setq ZF (rtos (car PP) 2 0))
      (progn
        (setq ZF (vl-string-subst "" "" (car PP)))
      )
    )
    (command "circle" P 0.2)
    (command "text" P0 "1.0" "0" ZF)
  )
  (close F)
)

在我工作中常常要将坐标写进电子表格中,然后在运行以上程序,但是命令行却提示:

;错误:读入的(八进制)字符不正确:0

真不知道该怎样解决,更改程序?

敬请高手指点!!!!!

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2006-3-13 16:37 | 显示全部楼层

文件格式:

x坐标 y坐标 z坐标

x坐标 y坐标 z坐标

x坐标 y坐标 z坐标

 

这是数据输入的程序!命令又为何是“shuchu”?!

 楼主| 发表于 2006-3-13 17:29 | 显示全部楼层

这个名字只是我随便起的,并无实际意义!

请问大侠,能不能编写一个可以打开电子表格并根据电子表格的数据可以在cad图形中完成标注点号和园的程序。就像实现上面的程序:

 (command "circle" P 0.2)
    (command "text" P0 "1.0" "0" ZF)
  )
  (close F)
)
一样。并且生成相应的点号层和园层!!!!

不管您能不能编写,先谢谢您的关注了!!!!!!!

 楼主| 发表于 2006-3-13 17:40 | 显示全部楼层

电子表格的格式仍然是:

点号列  X坐标列 Y坐标列 Z坐标列

发表于 2006-3-13 18:11 | 显示全部楼层
tianyuan发表于2006-3-13 17:29:00 这个名字只是我随便起的,并无实际意义! 请问大侠,能不能编写一个可以打开电子表格并根据电子表格的数据可以在cad图形中完成标注点号和园的...
请先提供数据文件!
 楼主| 发表于 2006-3-14 09:27 | 显示全部楼层

数据全部放在电子表格当中:

格式和数据为:

点号 X坐标 Y坐标 Z坐标
J1 593369.790 4156255.412 0.000
J2 593174.234 4154693.263 0.000
J3 593236.976 4158862.510 0.000
J4 593987.963 4158843.775 0.000
J5 594268.709 4155643.755 0.000
J6 595796.439 4158665.000 0.000
J7 597956.594 4158691.485 0.000
J8 598123.071 4158910.798 0.000
J9 593265.076 4158744.230 0.000
J10 597513.900 4157600.490 0.000

发表于 2006-3-14 10:23 | 显示全部楼层

在Excel中,将文件另存为文本文件——Unicode 文本 (*.txt),再使用shuchu程序不就行了吗?

 楼主| 发表于 2006-3-14 11:04 | 显示全部楼层

不行。我先存成文本文件然后在运行shuchu命令就好出现1楼的情况:

然后在运行以上程序,但是命令行却提示:

;错误:读入的(八进制)字符不正确:0

发表于 2006-3-14 14:02 | 显示全部楼层
(defun c:test ()
  (cmdlaSC0)
  (vl-load-com)
  (alert
    "\n数据格式:   
    \n    编号 x坐标 y坐标 z坐标   
    编号 x坐标 y坐标 z坐标
    编号 x坐标 y坐标 z坐标
    ..."
  )
  (mkla"temp"3)
  (setvar"osmode"0)
  (if (not
 (setq
   fle (findfile
  (getfiled "坐标数据文件(txt;dat;*)" "" "txt;dat;*" 2)
       )
 )
      )
    (setq fle (getfiled "请选择数据文件" "txt1" "txt;dat;*" 8))
  )
  (if fle
    (progn
      (setq fn (open fle "r"))
      (prompt "\n稍候 ")
      (while (setq pt (read-line fn))
 (setq pt2 (read (strcat "(" pt ")"))
       tx (substr pt 1 (vl-string-search " " pt) )
       pt1 (cdr pt2)
 )
 (command "circle" pt1 (* sc 300))
 (command "text" pt1 (* sc 300) "0" tx)
 (princ ".")
      )
      (close fn)
    )
    (princ "\n未选择数据文件,退出")
  )
  (prompt " 完毕!")
  (cmdla1)
)
发表于 2006-3-14 14:05 | 显示全部楼层

在Excel中,将文件另存为文本文件——Unicode 文本 (*.txt)的确不行,但将文件另存为文本文件(制表符分隔)(*.txt)即可,并注意删除文本文件内的所有空白行。另外,在Excel中选中那些数进行复制,在记事本中进行粘贴,然后存盘,再使用1楼的程序也行。

 

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

本版积分规则

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

GMT+8, 2024-5-19 14:25 , Processed in 0.176648 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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