明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1195|回复: 4

[求助]新手编程遇到问题了,高手帮帮~

[复制链接]
发表于 2007-5-21 21:12 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-5-21 21:21:46 编辑

我用lisp编写了个展点的程序

看不出有什么问题,但是实际用时,我用两个数据文件实验,用第一个时程序读入文件第一行数据,再读时就只读了个双引号,后面的程序就不能继续运行了;用第2个时,好象数据类型又出错了.自己又老是调不好,不知道问题出在哪了,自己没找明白

高手帮帮啊~~帮我看一下怎么回事呢?

程序和数据文件我都上传在这了~~

十分感谢哦~~!

 

 

本帖子中包含更多资源

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

x
 楼主| 发表于 2007-5-21 21:23 | 显示全部楼层

第2个数据文件格式不正确,不应该有","的,我弄错了,第1个我不知道是为什么,程序老是不对

帮帮我哦

发表于 2007-5-21 21:42 | 显示全部楼层
简单改了一下程序以支持第一个数据文件。
  1. (defun c:zd()
  2.   ;;;;;;;;;;;;;;;;;;;;;数据格式为:;;;;;;;;;;;;;;;;;;;;;
  3.   ;;;X坐标 Y坐标 高程                               ;;;
  4.   ;;;...                                            ;;;
  5.   ;;;X坐标 Y坐标 高程                               ;;;
  6.   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  7.   (setq ff (open (getfiled "请选择要展点的数据文件" "" "txt;dat" 2) "r");ff为打开文件的描述符;
  8.     cm (getvar "cmdecho");控制在 AutoLISP 的 command 函数运行时 AutoCAD 是否回显提示和输入.0 关闭1 打开;
  9.     os (getvar "osmode");osmode对象捕捉;
  10.     tcm1 "高程注记"
  11.     tcm2 "点记"
  12.     )
  13.   (setvar "cmdecho" 0);关闭回显
  14.   (setvar "osmode" 0);关闭对象捕捉
  15.   (if (= (tblsearch "layer" tcm1) nil) (command "layer" "n" tcm1 ""));建立图层
  16.   (if (= (tblsearch "layer" tcm2) nil) (command "layer" "n"  tcm2 ""))
  17.   (setq x0 nil x1 nil y0 nil y1 nil)
  18.   (while
  19.     (setq zb (read-line ff));读取数据
  20.     (if (/= zb "") (progn
  21.      (setq fbh (read (strcat "(" zb ")")))
  22.      (setq e1 (car fbh)
  23.            e2 (cadr fbh))
  24.      (if (< e1 x0)(setq x0 e1)
  25.       (progn (if (> e1 x1) (setq x1 e1)))
  26.       )
  27.      (if (< e2 y0)(setq y0 e2)
  28.       (progn (if (> e2 y1) (setq y1 e2)))
  29.       )
  30.      (setq zfc (rtos (last fbh) 2)
  31.            pt  (list (car fbh)(cadr fbh)))
  32.      (entmake (list '(0 . "TEXT") '(100 . "AcDbEntity") '(100 . "AcDbText") '(62 . 1) '(40 . 2.5) '(50 . 0.0)
  33.            (cons 8 tcm1)   (cons 1 zfc)  (cons 10 (mapcar '+ pt  '(1.5 -1.25))))
  34.          )
  35.     (entmake (list '(0 . "POINT") '(100 . "AcDbEntity") '(100 . "AcDbPoint")'(62 . 2)
  36.                    (cons 8 tcm2)  (cons 10 pt));cons构造表;
  37.          )
  38.      ));end if
  39.     );while
  40.   (close ff)
  41.   (command "zoom" "w" (list x0 y0) (list x1 y1));指定窗口角点
  42.   (setvar "cmdecho" cm)(setvar "osmode" os)
  43.   (princ)
  44.   )
 楼主| 发表于 2007-5-22 13:10 | 显示全部楼层
真是太感谢了,我这几天弄程序弄的头脑都短路了,怎么就没想到了?多谢多谢~!
 楼主| 发表于 2007-5-22 13:26 | 显示全部楼层

我试了试,好象还是有问题,读不出数据来,再帮我看看怎么回事好吗?

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

本版积分规则

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

GMT+8, 2024-5-19 02:59 , Processed in 0.141271 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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