明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: ygrzz

[求助]谁给推荐几个简明的while函数的用法

  [复制链接]
 楼主| 发表于 2007-1-31 02:21:00 | 显示全部楼层
(defun c:w (/ pt1 pt2)
    (while (setq pt1 (getpoint "\n 指定起点:"))
        (setq pt2 (getpoint pt1 "\n 指定下一点:"))
        (command "_.line" pt1 pt2 "")
    )
    (princ)
)
还是有不理想的地方,在输入PT1后得2次右键才能退出
怎么样在PT1后也能一次结束或退出呢
 楼主| 发表于 2007-1-31 03:01:00 | 显示全部楼层
改成这样好象符合要求了,重复2点线
(defun c:w (/ pt1 pt2)
    (setq pt1 (getpoint "\n 指定起点:"))
    (while (setq pt2 (getpoint pt1 "\n 指定下一点:"))
        (command "_.line" pt1 pt2 "")
        (setq pt1 (getpoint "\n 指定起点:"))
    )
    (princ)
)
随时一次右键退出
画圆在输入圆心后得2次退出呀,怎么改?
 楼主| 发表于 2007-1-31 03:17:00 | 显示全部楼层
,又一想,画圆右键有默认上次半径的作用和右键退出冲突肯定不能改
无痕已经改的很好了,再改就画蛇添足了
发表于 2007-1-31 17:31:00 | 显示全部楼层

multiple命令可以重复使用同一个命令

这个是cad的命令

你看看吧

也许对以后的程序有用

 楼主| 发表于 2007-1-31 18:48:00 | 显示全部楼层
是的,在菜单命令宏前加*号如*^C^C_LINE
也能实现重复命令,缺点退出命令必须用ESC
不能右键中断的话实际操作总有不爽
发表于 2007-2-1 16:51:00 | 显示全部楼层
本帖最后由 作者 于 2007-2-1 17:01:08 编辑

可以在选择其他参数选择后回到提示输入行。
如:
  1. (while(progn
  2.            (initget "S")
  3.            (setq dist1(getreal "\n请输入距离[设置(S)]<退出>"))
  4.            (cond ((not Dist1) nil);_若直接回车,则退出循环。
  5.                      ((= Dist1 "S") (fun_set)T);_进入设置函数
  6.                      (T (fun_do)T);_距离值,进入正常处理函数,若只希望运行一次则:(T (fun_do)nil)
  7.             )
  8.           )
  9.      ;;这里的循环体是空的。
  10. )
发表于 2007-2-1 19:32:00 | 显示全部楼层

通过上几个例子,让我对PAUSE有了一定的认识。

谢了

 楼主| 发表于 2007-2-1 19:35:00 | 显示全部楼层

暂停以让用户输入一个实数并返回该实数

(getreal [msg]) 

getreal能接受字母S吗,等下去测试下
cond带3联语句?   ((= Dist1 "S") (fun_set)T)

 楼主| 发表于 2007-2-2 00:25:00 | 显示全部楼层
假如已经指定4个点批p1 p2 p3 p4
要求以这4个点为圆心画4个圆,能用while来循环吗
发表于 2007-2-2 10:34:00 | 显示全部楼层
ygrzz发表于2007-2-2 0:25:00假如已经指定4个点批p1 p2 p3 p4要求以这4个点为圆心画4个圆,能用while来循环吗

可以 ... 但用Foreach要简洁些....

(setq lst (list p1 p2 p3 p4))
(foreach pt lst
  Do .....
)
(while (setq pt (car lst))
   Do ..... 
   (setq lst (cdr lst))
)  

(setq n 0)
(while (setq pt (nth n lst))
   Do ..... 
   (setq n (1+ n))
)  

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

本版积分规则

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

GMT+8, 2025-6-20 21:16 , Processed in 0.157922 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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