明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5795|回复: 11

如何实现 空格/右键 /回车退出 while 循环。

  [复制链接]
发表于 2013-1-17 22:10:21 | 显示全部楼层 |阅读模式


  1. (defun c:qq ()(print "初始点")
  2. (setq p0 (getpoint "\n指定一点:"))
  3.   (while (= p0 1)
  4.     (command ".line" p0 (getpoint "\n指定下一点:") "")
  5.     )

  6. )

这样如何实现 如何实现 空格/右键 /回车退出 while 循环 结束程序。

点评

(while p0 (command ".line" p0 (setq p0 (getpoint "\n指定下一点:")) "") )  发表于 2013-1-17 22:15
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2013-1-17 22:13:50 | 显示全部楼层
本帖最后由 weiqi 于 2013-1-17 22:14 编辑

我参考
http://bbs.mjtd.com/forum.php?mo ... 21&page=1#pid519314
沙发 G版的回复,改成这样写,貌似也退出不了噢。每次是
指定下一点: 未知命令“QQ”。按 F1 查看帮助。
请问得什么写才对呢。
  1. (defun c:qq ()
  2. (print "初始点")
  3. (setq p0 (getpoint "\n指定一点:"))
  4.    (while (not loop)
  5. (command ".line" p0 (getpoint "\n指定下一点:") "")
  6.     (setq gr (grread t 1))
  7.     (if (or (= 25 (car gr))
  8.             (and (= 2 (car gr)) (= 13 (cadr gr)))
  9.             (and (= 2 (car gr)) (= 32 (cadr gr)))
  10.             )
  11.       (setq loop t)
  12.       )

  13. )




发表于 2013-1-17 22:23:56 | 显示全部楼层
  1. (defun c:qq ()
  2. (print "初始点")
  3. (setq p0 (getpoint "\n指定一点:"))
  4. (command "_.LINE" p0)
  5. (while (setq p1 (getpoint "\n指定下一点:"))
  6.   (command p1)
  7. )
  8. (command "")
  9. (princ)
  10. )

  1. (defun c:qq ()
  2. (command "_.LINE")
  3. (while (> (getvar "CMDACTIVE") 0) (command PAUSE))
  4. (princ)
  5. )

点评

谢谢Z版的代码~已经修改完成 虽然我修改的方法 比较笨~  发表于 2013-1-17 22:40
Z版太快咯,但是我想要的是放射性的,画线,而不是下一点下一点的画。  发表于 2013-1-17 22:29
 楼主| 发表于 2013-1-17 22:24:46 | 显示全部楼层
本帖最后由 weiqi 于 2013-1-17 22:28 编辑

我要的是,所有点连接到 第一点  , 放射性的 (星形),不是下一点下一点的连哦。

本帖子中包含更多资源

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

x
 楼主| 发表于 2013-1-17 22:35:50 | 显示全部楼层
本帖最后由 weiqi 于 2013-1-17 22:39 编辑

根据Z版的~
  1. (defun c:qq ()
  2. (print "初始点")
  3. (setq p0 (getpoint "\n指定一点:"))
  4. (command "_.LINE" p0)
  5. (while (setq p1 (getpoint "\n指定下一点:"))
  6.   (command p1 p0)   (entdel (entlast))
  7. )
  8. (command "")
  9. (princ)

  10. )  


这样写能退出了,但是。。每条线画2次了。~然后,再删掉一个~~~最笨的办法咯~~

发表于 2013-1-17 22:52:42 | 显示全部楼层
weiqi 发表于 2013-1-17 22:24
我要的是,所有点连接到 第一点  , 放射性的 (星形),不是下一点下一点的连哦。

http://bbs.mjtd.com/thread-99771-1-1.html
可以看看这里,效果一样哦.

点评

不错收藏之~~~经常改图,我这个的目的是把 改的图,用一条线标出来 呵呵~  发表于 2013-1-17 22:57
发表于 2013-1-17 23:05:11 | 显示全部楼层
留个记号,帮忙顶起来

点评

。。。。谢了。。。  发表于 2013-1-17 23:11
发表于 2013-1-17 23:06:11 | 显示全部楼层
不会吧?????
  1. (defun c:tt()
  2.   (if(setq p0(getpoint"\n中心点"))
  3.     (progn
  4.       (while (setq p1(getpoint p0"\n下一点"))
  5.         (command "line" p1 p0 "")
  6.         )
  7.       )
  8.     )
  9.   (princ)
  10.   )

点评

多了一个progn。  发表于 2013-1-18 09:40
谢谢严兄~久闻大名~电气前辈啊~  发表于 2013-1-17 23:12
 楼主| 发表于 2013-1-17 23:14:54 | 显示全部楼层
翻资料 学习grread 去咯~
发表于 2013-1-18 00:25:57 | 显示全部楼层
本帖最后由 自贡黄明儒 于 2013-1-18 00:33 编辑

(defun c:tt2 (/ P0 P1)
  (setq p0 (getpoint "\n下一点"))
  (while (not p1)   
    (command "line" p0 (getpoint p0 "\n下一点") "")
    (setq p1 (equal(getvar "lastpoint") p0))  
  )
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 22:11 , Processed in 0.218955 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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