明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: zhongguola

求助两个程序、一个问题

  [复制链接]
 楼主| 发表于 2005-10-6 21:37:00 | 显示全部楼层

导出的文件的格式是TXT(例如)

daoxu1 93040.613 33443.8609 -106.1
daoxu2 93022.4496 33423.3548 -106.383
fuce1 96833.7857 28842.6931 -107.074
fuce2 96743.2614 28689.9682 -106.182
fuce3 96727.7287 28699.416 -106.182
fuce4 96712.9022 28673.5436 -106.114
fuce5 96742.1221 28711.4565 -106.432

第一列是“点名”,第二列是“工程X”,第三列是“工程Y”,第四列是“工程H”即高程

我们在作图输入坐标时,先输入“工程Y”,在输入“工程X”

谢谢!!!!!!

发表于 2005-10-7 09:45:00 | 显示全部楼层
现假设你的数据文件名为test.txt并且位于C盘根目录下:
(defun c:TEST(/ Fn n m pp p0 h0)
  (setvar "PDMODE" 32)(setvar "PDSIZE" 0.25)
  (setq Fn "c:/test.txt")
  (File_Lst Fn)
  (setq n (length RE) m 0)
  (repeat n
    (setq pp (nth m RE) m (+ m 1))
    (setq pp (read (strcat "(" pp ")")))
    (setq p0 (cdr pp) h0 (last pp))
    (command "POINT" p0)
    (command "text" p0 "2.0" "0" (rtos h0 2 3))
  )
)
(DEFUN File_Lst(Fn / F L)
  (SETQ F (OPEN Fn "r") RE NIL)
  (WHILE (setq L (READ-LINE F))
    (SETQ RE (CONS L RE))
  )
  (CLOSE F)
  (SETQ RE (REVERSE RE))
)
发表于 2005-10-7 12:22:00 | 显示全部楼层
对不起,以上程序x,y没有倒过来,应这样:
(defun c:TEST(/ Fn l pp p p0 h)
  (setvar "PDMODE" 32)(setvar "PDSIZE" 0.25)
  (setq Fn "c:/test.txt")
  (SETQ F (OPEN Fn "r"))
  (WHILE (setq L (READ-LINE F))
    (setq pp (read (strcat "(" L ")")))
    (setq p0 (cdr pp)
    h (last pp)
    p (list (cadr p0) (car p0) h)
    )  
    (command "POINT" p)
    (command "text" p "2.0" "0" (rtos h 2 3))
  )
)
 楼主| 发表于 2005-10-7 12:45:00 | 显示全部楼层

非常感谢您的程序。

我在运行时会出现一下几点问题:

1、CAD屏幕上标注的是点的Z坐标即高程,而不是点的序号即点名,能否帮助改一下呢?

2、当我第二次运行该程序时,命令行会提示:错误,参数类型错误,File nil

3、请问能否把程序中的POINT改成圆呢?

谢谢您了!!!!!

发表于 2005-10-7 14:24:00 | 显示全部楼层
对不起,我忘记了关闭文件了,所以出错.标注已经改了,另外点位也该成圆了.
(defun c:TESTT(/ Fn l pp p p0 h ZF)
   (vl-load-com)
  (setvar "PDMODE" 33)(setvar "PDSIZE" 0.25)
  (setq Fn "c:/test.txt")
  (SETQ F (OPEN Fn "r"))
  (WHILE (setq L (READ-LINE F))
    (setq pp (read (strcat "(" L ")")))
    (setq p0 (cdr pp)
    h (last pp)
    p (list (cadr p0) (car p0) h)
    )
    (setq ZF (vl-string-subst "" "" (car pp)))
    (command "POINT" p)
    (command "text" p "2.0" "0" ZF)
  )
  (close F)
)
发表于 2005-10-8 07:38:00 | 显示全部楼层
  1. (load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
  5. ★1·在acad.lsp中增加(load"xyp_lib")
  6. ■2·在每个程序内增加(load"xyp_lib")
  7. ■3·在command下,输入(load"xyp_lib")
  8. ■4·在菜单.mnl中增加(load"xyp_lib")
  9. ■5·将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. [url]http://bbs.mjtd.com/forum.php?mod=viewthread&tid=37554[/url]|;
  13. (defun c:TEST ()
  14.   (cmdlasc0)
  15.   (jzhz)
  16.   (setvar"osmode"0)
  17.   (SETQ F (OPEN "c:/111.txt" "r"))
  18.   (WHILE (setq L (READ-LINE F))
  19.     (setq pp (read (strcat "(" L ")"))
  20.    p0 (cdr pp)
  21.    h  (last pp)
  22.    p  (list (car p0) (cadr p0) h)
  23.    p1  (polar p (* pi 0.5) 1)
  24.    zf (rtos h 2 3)
  25.     )
  26.     ;(x_zb p)
  27.     (mkla"点位"4)
  28.     (command "circle" p 0.2)
  29.     (mkla"高程"3)
  30.     (command "text" "j" "mc" p1 1 "0" zf)
  31.   )
  32.   (close F)
  33.   (cmdla1)
  34. )
 楼主| 发表于 2005-10-8 14:12:00 | 显示全部楼层

16楼的程序在CAD2002运行中断会出现以下情况:

命令:TEST

;错误:no function definition : CMDLASC0

请问,应该怎样解决?

 楼主| 发表于 2005-10-8 14:24:00 | 显示全部楼层

15楼的程序仍然会出现14楼的第二项问题

怎样解决?

 

发表于 2005-10-8 15:14:00 | 显示全部楼层
第二个问题跟你的文件存储的路径有关,你适当调整就可
 楼主| 发表于 2005-10-9 15:17:00 | 显示全部楼层

15楼的程序还是无法运行。

我已经重新设置了路径,但是CAD命令行提示:错误:参数类型错误,(or stringp symbolp ):1

哪里出错了,我应该怎么办呀?????

真急人!!!!!!!!!!!!!!!!

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

本版积分规则

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

GMT+8, 2025-6-22 15:57 , Processed in 0.163510 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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