找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 746|回复: 10

[LISP程序]:正交颜色3画线,单行执行正确,程序不执行

[复制链接]
发表于 2005-11-10 09:00:49 | 显示全部楼层 |阅读模式

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

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

×
;;;;;;;;;
(defun c:zh1()
(graphscr)
(setvar "cmdecho" 0)
(setq oldortho (getvar "orthomode"))
(setq oldos (getvar "osmode"))
(setq color1 (getvar "cecolor"))
(setvar "orthomode" 1 )
(setvar "osmode" 0)

(command ".color" 3)
(setq pt2 (getpoint "\npo:"))
(command "color" 3)
(command ".line" pt2)

(setvar "osmode" oldos)
(setvar "orthomode" oldortho)
(setvar "cecolor" color1)

(princ)
)

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

使用道具 举报

 楼主| 发表于 2005-11-10 09:39:34 | 显示全部楼层
好象ORTHOMODE=0的时候
(SETVAR  "ORTHOMODE" 1)
也不执行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-11-10 11:34:31 | 显示全部楼层
;改为如下
(defun c:zh1()
(graphscr)
(setvar "cmdecho" 0)
(setq oldortho (getvar "orthomode"))
(setq oldos (getvar "osmode"))
(setq color1 (getvar "cecolor"))
(setvar "orthomode" 1 )
(setvar "osmode" 0)

(command ".color" 3)
(setq pt2 (getpoint "\npo:"))
(command ".line" pt2 pause)

(setvar "osmode" oldos)
(setvar "orthomode" oldortho)
(setvar "cecolor" color1)

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

使用道具 举报

发表于 2005-11-10 11:54:59 | 显示全部楼层
用while控制是否结束
  1. [FONT=courier new](defun c:zh1 ()
  2.   (graphscr)
  3.   (setvar "cmdecho" 0)
  4.   (setq oldortho (getvar "orthomode"))
  5.   (setq oldos (getvar "osmode"))
  6.   (setq color1 (getvar "cecolor"))
  7.   (setvar "orthomode" 1)
  8.   (setvar "osmode" 0)
  9.   (command ".color" 3)
  10.   (if (setq pt1 (getpoint "\n起点 : "))
  11.     (progn
  12.       (command ".line" pt1)
  13.       (while (setq pt2 (getpoint pt1 "\n下一点<退出> : "))
  14.         (command pt2)
  15.         (setq pt1 pt2)
  16.       )
  17.       (command "")
  18.     )
  19.   )
  20.   (setvar "osmode" oldos)
  21.   (setvar "orthomode" oldortho)
  22.   (setvar "cecolor" color1)
  23.   (princ)
  24. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-10 15:41:47 | 显示全部楼层
再改一点,支持回退、闭合。

  1.   [FONT=courier new]
  2. (defun c:zh1 ()
  3.   (graphscr)
  4.   (setvar "cmdecho" 0)
  5.   (setq oldortho (getvar "orthomode"))
  6.   (setq oldos (getvar "osmode"))
  7.   (setq color1 (getvar "cecolor"))
  8.   (setvar "orthomode" 1)
  9.   (setvar "osmode" 0)
  10.   (command ".color" 3)
  11.   (setvar "cmdecho" 1)
  12.   (command ".line")
  13.   (while (= 1 (getvar "cmdactive")) (command pause))
  14.   (setvar "osmode" oldos)
  15.   (setvar "orthomode" oldortho)
  16.   (setvar "cecolor" color1)
  17.   (princ)
  18. )
  19.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-10 18:12:51 | 显示全部楼层
(while (= 1 (getvar "cmdactive")) (command pause))
一般写成 (while (/= 0 (getvar "cmdactive")) (command pause))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-11 08:52:43 | 显示全部楼层
最初由 狂刀 发布
[B](while (= 1 (getvar "cmdactive")) (command pause))
一般写成 (while (/= 0 (getvar "cmdactive")) (command pause)) [/B]

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

使用道具 举报

发表于 2005-11-11 13:02:06 | 显示全部楼层
因为 CMDACTIVE  有多个值,比如中途用了透明命令,返回2,如果用=1来判断就会有问题了。其余类推

  1. CMDACTIVE 系统变量  
  2. (只读)
  3. 类型:整数
  4. 不被保存
  5. 存储位码值,此位码值指示激活的是普通命令、透明命令、脚本还是对话框。该值是下列可选位码值之和:
  6. 1 激活普通命令
  7. 2 激活普通命令和透明命令
  8. 4 激活脚本
  9. 8 激活对话框
  10. 16 激活 DDE
  11. 32 激活 AutoLISP(仅对 ObjectARX 定义的命令可见)
  12. 64 激活 ObjectARX 命令
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 19:06 , Processed in 0.274235 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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