找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1550|回复: 2

[求助] [求助]:无数点连线并标准命令

[复制链接]
发表于 2008-8-15 21:45:57 | 显示全部楼层 |阅读模式

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

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

×
想写一个命令,自动将多点数据文件连接成多义线,并标注点号
目前已经实现多点连接,但缺少标注功能实现,请求各位大侠帮助:
以下是多点连接的LISP:
;;;
(defun c:CX()
  
;;;  选择要画的数据文件
      (setq fn (getfiled "选择数据文件" "//" "" 4))
      (setq f (open fn "r"))
    ;;
      (setq n 0)
        (command "Pline")
      
      (while (setq se (read-line f))
     ;; 数据实数付值
      (setq se (strcat se "\n"))
      (setq len (strlen se))
      (setq L '() k 1 s_str "" p nil)
      (while(<= k len)
        (setq one (substr se k 1))
        (if(or (= one":") (= one",") (= one " ") (= one (chr 9)) (= one "\n") (= one "Space") (= one "Tab"))
   (if p
     (progn
       (if(= (type (read s_str)) 'SYM)
          (setq L (cons s_str L))
          (setq L (cons (read s_str) L))
     )
     (setq s_str "" p nil)
   ))
   (setq s_str (strcat s_str one) p T)
   )
   (setq k(+ 1 k))
       )
      (setq L (reverse L))
      ;;在此修改文件输入顺序格式
      (setq z 0.0)
      (setq x (nth 0 L))
             (setq y (nth 1 L))
      (if (> (length L) 2)
        (setq z (nth 2 L)))
             (setq pt (list x y z))
      (command pt)
      (print n)
      (setq n (+ 1 n))
       )
      (command "")
  )

数据文件格式:
X坐标  Y坐标
0        0
200        974
500                300

想增加一项功能:在每个点位标注点号
想实现的数据文件格式
点号    X坐标  Y坐标
1        0           100
  2             200           974
  3             500           300
想实现的最后效果图见附件
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 10407个

财富等级: 富甲天下

发表于 2008-8-16 11:02:40 | 显示全部楼层
[php]
(defun c:CX()
;;; 选择要画的数据文件
(setq fn (getfiled "选择数据文件" "//" "" 4))
(setq f (open fn "r"))
(setq ptlst (list))
(command "Pline")
(while (setq se (read-line f));; 数据实数付值
(setq pt (read (strcat "(" se ")")))
(setq ptlst (append ptlst (list pt)))
(command pt)
)
(command "")
(close f)
(setq n 0)
(repeat (length ptlst)
(setq pt (nth n ptlst))
(setq n (1+ n))
(command ".text" pt "" "" (itoa n))
)
(princ)
)
;这是数据首位有点号的程序
(defun c:CX ()
(setq fn (getviled "选择数据文件" "//" "" 4))
(setq f (open fn "r"))
(setq ptlst (list))
(while (setq se (read-line f))
  (setq pt (read (strcat "(" se ")")))
  (setq ptlst (append ptlst (list pt)))
  (command (cdr pt))
)
(command "")
(close f)
(setq n 0)
(repeat (length ptlst)
  (setq pt (nth n ptlst))
  (setq n (1+ n))
  (command ".text" (cdr pt) "" "" (itoa (car pt)))
)
(princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-8-18 18:00:08 | 显示全部楼层
感谢大侠帮助,但小弟运行了带有点号的LISP程序后,仍然无法实现效果,不知道是什么原因,敢请大侠再次帮助,另外我想实现点号是任意文本都可以
如:
点号    X坐标    Y坐标
1              200               500
a              300               600
......
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 09:28 , Processed in 0.355484 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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