找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 732|回复: 3

[求助] [求助]:为何不是全部完成后返回0层

[复制链接]
发表于 2007-3-22 21:37:02 | 显示全部楼层 |阅读模式

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

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

×
(defun C:str (/ pt1 pt2 l n p0 p1)
(command "-layer" "m" "栏杆"
                  "C" "1" """")
   (if (setq pt1 (getpoint "\n左下角点:"))
   (while (setq pt2 (getpoint pt1 "\n右下角点:"))
     (setq L (distance pt1 pt2))
;;保存系统变量设置
(setq old_osmode (getvar "osmode"))
(setq old_CMDECHO (getvar "CMDECHO"))
            (setvar "osmode" 0)
            (setvar "CMDECHO" 0)
   (command "line" pt1 pt2 "")
   (command "donut"  "0" "80" pt1 "")
   (command "donut"  "0" "80" pt2 "")
   (setq N (/ L 1200))
   (setq I 1)
   (setq k (angle pt1 pt2))
   (setq P0 Pt1)
   (while (<= i N)
   (setq P1 (polar p0 k 1200))
(progn
   (command "donut"  "0" "80" p1 "")
   (setq P0 (polar p0 k 1200))
   (setq I (+ i 1))
   (setq *error* olderr)
(command "")
(setq pt1 pt2)
)
)
;;恢复系统变量设置
(setvar "osmode" old_osmode)
(setvar "CMDECHO" old_CMDECHO)
(setvar "clayer" "0")
)
      (princ)
)
)
程序从第二线开始就回到0层了,而不是全部完成后返回0层,
我的本意是程序全部执行完后返回0层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 7231个

财富等级: 富甲天下

发表于 2007-3-22 21:54:43 | 显示全部楼层
试试这样

(defun C:str (/ pt1 pt2 l n p0 p1)
  ;;保存系统变量设置
  (setq old_osmode (getvar "osmode"))
  (setq old_CMDECHO (getvar "CMDECHO"))
  (setvar "osmode" 0)
  (setvar "CMDECHO" 0)
  (command "-layer" "m" "栏杆" "C" "1" "" "")
  (if (setq pt1 (getpoint "\n左下角点:"))
    (while (setq pt2 (getpoint pt1 "\n右下角点:"))
      (setq L (distance pt1 pt2))
      (command "line" pt1 pt2 "")
      (command "donut" "0" "80" pt1 "")
      (command "donut" "0" "80" pt2 "")
      (setq N (/ L 1200))
      (setq I 1)
      (setq k (angle pt1 pt2))
      (setq P0 Pt1)
      (while (<= i N)
        (setq P1 (polar p0 k 1200))
        (progn
          (command "donut" "0" "80" p1 "")
          (setq P0 (polar p0 k 1200))
          (setq I (+ i 1))
          (setq *error* olderr)
          (command "")
          (setq pt1 pt2)
        )
      )
    )
  )
  ;;恢复系统变量设置
  (setvar "osmode" old_osmode)
  (setvar "CMDECHO" old_CMDECHO)
  (setvar "clayer" "0")
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-23 08:02:37 | 显示全部楼层
谢谢,问题解决
调试程序很费时间,上面的问题我画了几小时没找到问题所在,你们是如何调试程序的,用VLISP编辑器还是其它?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-3-24 18:32:28 | 显示全部楼层
代码不是写出来的,而是调出来的。
最好能养成一个好的写作习惯,比如换行、缩进、注释等。
编辑器只是个工具,不要祈求它能检查出所有的错误。
要试着读代码,并让其在自己头脑中运行,直到能顺畅,则小成矣!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 16:04 , Processed in 0.335072 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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