找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 962|回复: 5

[求助] [求助]:关于循环问题

[复制链接]
发表于 2008-6-12 12:23:35 | 显示全部楼层 |阅读模式

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

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

×
谁帮我看看这个程序
while循环后就不执行后面的语句了,不知为什么
我只好把这些语句放到循环语句里面,就出现了每输入一段距离,文本就更新一次
实际我需要的是选择全部的距离后,汇兑长度最后更新一次



(defun C:CS(/ ss ent  zl   p1  d p2)

;;获取第一个文本
    (setq ss (ssget))
    (setq ENT (entget (ssname SS 0))
          STR (cdr (assoc 1 ENT))
    )
;;连接后面的文本
    (if (setq ZL (getdist "\n点取总跨度"))
        (progn
            (setq STR (strcat STR " [ZL]" (RTOS ZL 2 0)))
        )
    )

    (setq JL 0)
    (setq p1 (getdist "\n点取第一段距离"))
    (setq JL (+ JL p1))

    (setq d "T")
    (while d
        (setq p2 (getdist "\n点取下一段距离"))
        (if (= p2 "")(setq d nil))
            
        (setq STR (strcat STR " [JL]" (RTOS JL 2 0)))
        (setq ENT (entget (ssname SS 0)))
        (setq ENT (subst (cons 1 STR) (assoc 1 ENT) ENT))
        (entmod ENT)
        (setq JL (+ JL p2))
    )
  
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 6790个

财富等级: 富甲天下

发表于 2008-6-12 14:35:30 | 显示全部楼层

  1. ;|
  2. 谁帮我看看这个程序
  3. while循环后就不执行后面的语句了,不知为什么
  4. 我只好把这些语句放到循环语句里面,就出现了每输入一段距离,文本就更新一次
  5. 实际我需要的是选择全部的距离后,汇兑长度最后更新一次
  6. |;


  7. (defun C:CS (/ ss ent zl p1 d p2)

  8.   ;;获取第一个文本
  9.   (setq ss (ssget))
  10.   (setq ENT (entget (ssname SS 0))
  11.         STR (cdr (assoc 1 ENT))
  12.   )
  13.   ;;连接后面的文本
  14.   (if (setq ZL (getdist "\n点取总跨度"))
  15.     ;; (progn
  16.       (setq STR (strcat STR " [ZL]" (RTOS ZL 2 0)))
  17.     ;; )
  18.   )

  19.   (setq JL 0)
  20.   (setq p1 (getdist "\n点取第一段距离"))
  21.   (setq JL (+ JL p1))

  22.   (setq i 1)
  23.   (while (setq p2 (getdist "\n点取下一段距离"))
  24.     (setq STR (strcat STR " [JL]" (RTOS JL 2 0)))
  25.     (setq ENT (entget (ssname SS i)))        ; 此处 ent 改为递增
  26.     (setq ENT (subst (cons 1 STR) (assoc 1 ENT) ENT))
  27.     (entmod ENT)
  28.     (setq JL (+ JL p2))
  29.     (setq i (1+ i))
  30.   )
  31. )


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

使用道具 举报

 楼主| 发表于 2008-6-15 12:30:57 | 显示全部楼层
我刚铡已经找到方法了,问题出在循环中如何中途退出
还是谢谢你的回复!

(defun C:pfl (/ ss ent  zl   p1  d p2)


;;获取第一个文本
   
    (princ "\n请选择单行文字")
    (setq ss (ssget '((0 . "TEXT"))))
    (setq ENT (entget (ssname SS 0))
          STR (cdr (assoc 1 ENT))
    )
;;连接后面的文本
    (if (setq ZL (getdist "\n点取总跨度"))
        (progn
           (princ Zl)(princ)
           (setq STR (strcat STR " [ZL]" (RTOS ZL 2 0)))
        )
    )

    (setq JL 0)

    (setq catchit                         ;catchit可以在以后用相关函数判断循坏是否有中途跳出的
        (vl-catch-all-apply
           '(lambda ()

                (repeat 50                                ;循环50次
                    (setq p2 (getdist "\n点取下一段距离"))
                    (setq JL (+ JL p2))
                    (princ p2)(princ)
                    (if (= p2 "")
                        (exit)                                  ;右键时跳出
                    )
                )
            )
        )
    )

    (setq STR (strcat STR " [JL]" (RTOS JL 2 0)))
    (setq ENT (entget (ssname SS 0)))
    (setq ENT (subst (cons 1 STR) (assoc 1 ENT) ENT))
    (entmod ENT)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-6-15 22:45:30 | 显示全部楼层
很不错
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-15 17:27:38 | 显示全部楼层
有意思呀
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-7-17 11:41:53 | 显示全部楼层
没看懂
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-20 15:24 , Processed in 0.366112 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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