明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: cchessbd

[讨论] 请高手进来:同时输入一个实数或者在屏幕取一个点。

[复制链接]
发表于 2023-3-15 17:41 | 显示全部楼层
本帖最后由 wzg356 于 2023-3-15 17:49 编辑

(defun getDorP(/ loop n p gr)
(setq loop t n nil)
(while loop
        (setq gr (grread t 8))
        (cond
                ((= (car gr) 3)(setq p(cadr gr)(setq loop nil))
                ((and(= (car gr)2)
                        (setq i(vl-position (cadr gr)'(48 49 50 51 52 53 54 55 56 57)))
                        )
                        (prompt (strcat "\n距离:"(rtos(setq n(if n(+ i(* n 10)) i)))))                                       
                );记录键盘数字输入并显示在命令行
                ((or(member (car gr) '(3 25))(equal gr '(2 13))(equal gr '(2 32)))(setq loop nil))
        )
)(if p p(if n n))
)
没有十字光标
 楼主| 发表于 2023-3-15 17:41 | 显示全部楼层
masterlong 发表于 2023-3-15 17:30
上面的发言不对

不用grread应该也可以实现三合一

您这简单,易懂,好判断。特别好。
谢谢您!代码应该是少了个t

(initget 128)
(setq a (getpoint))
发表于 2023-3-15 17:46 | 显示全部楼层
本帖最后由 e2002 于 2023-3-15 17:50 编辑

用户输入桩号,或者应该是在图中选择一个已经有的桩号(可能是Insert的Attrib,也可能是个Text对象),那你initget 指定 Keyword 如 “Select“ :

  1. (initget "Select")
  2. (setq qszh (getint "\n请输入路线的起点桩号 [从图中选择(S)/0/1/2/3/4/5/6/7/8/9/10]: <默认桩号: 0>"))
  3. (cond
  4. ((= qszh "Select") (fooSelect ....))
  5. ((= (type qszh) 'INT) (fooInt ....))
  6. ...
  7. );_cond
  8. ...


桩号应该是个正整数吧?使用 getint 更加合适。pick point 返回的是 point的坐标值,似乎不是你需要的结果吧?
grread 更适合在其他的交互需求。
发表于 2023-3-15 17:57 | 显示全部楼层
这个最好
(setq p2(getpoint (setq p1(cadr (grread '(2 13)))) "\n距离或点:"))
(list p2 (distance p1 p2))
 楼主| 发表于 2023-3-16 13:04 | 显示全部楼层
wzg356 发表于 2023-3-15 17:57
这个最好
(setq p2(getpoint (setq p1(cadr (grread '(2 13)))) "\n距离或点:"))
(list p2 (distance p1  ...

这个办法可以输入,就是不好判断。昨天试了下定义函数也不行。d p1 p2 始终无法为空。

所以还是用了(initget 128)(setq a (getpoint)),这个只需要判断一下类型就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-3-29 07:26 , Processed in 0.202693 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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