乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 66|回复: 12

[编程交流] 决策问题

[复制链接]

56

主题

284

帖子

231

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
289
发表于 2022-7-6 07:05:24 | 显示全部楼层 |阅读模式

 
如何根据暂停后给出的内容获得不同的结果:
选择点=true,或输入=nil?
 
  1. (if (command "_move" (entlast) "" '(0 0 0) pause) a b)
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 07:10:40 | 显示全部楼层
正在等待其他答复。。。
 
  1. (setq a (entget (entlast)))
  2. (command "_move" (entlast) "" '(0 0 0) pause)
  3. (if (equal a (entget (entlast))) (setq b 1) (setq b 2))
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:17:37 | 显示全部楼层
  1. (defun c:test ( / s p )
  2.    (if (and
  3.            (setq s (ssget "_:L"))
  4.            (setq p (getpoint "\nSpecify basepoint: "))
  5.        )
  6.        (if (vl-cmdf "_.move" s "" "_non" p "\")
  7.            (if (equal p (getvar 'lastpoint) 1e-
  8.                (princ "\nUser pressed Enter.")
  9.                (princ "\nUser clicked a point.")
  10.            )
  11.            (princ "\nUser pressed Esc.")
  12.        )
  13.    )
  14.    (princ)
  15. )
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
289
发表于 2022-7-6 07:20:47 | 显示全部楼层
谢谢你的回复。
 
不知怎的,有一个AutoCAD变量表示表达式是否已执行?
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
289
发表于 2022-7-6 07:28:30 | 显示全部楼层
在这里,我使用了这个决定:
 
  1. (defun c:Test ()
  2.   (setq i 1 ) ;_ end of setq
  3.    (while
  4.     (progn
  5.      (setq nms (itoa i)) ;_ end of setq
  6.      (command "text" "m"'(0 0 0) 0.2 0 nms) ;_ end of c
  7.      (setq lo (entget (entlast))) ;_ end of setq
  8.      (princ (strcat "\n   Choose place for TEXT  :  " nms "  ;  Any = Stop ;  < Pick>  : ")) ;_ end of p
  9.      (vl-catch-all-apply '(lambda nil (command "_move" (entlast) "" '(0 0 0) pause))) ;_ end of vl
  10.      [color=red](if (equal lo (entget (entlast))) nil T) ;_ end of if[/color]
  11.     ) ;_ end of prog cond
  12.     (setq i (1+ i)  ) ;_ end of setq
  13.    ) ;_ end of wh p
  14.    (entdel (entlast))
  15. ) ; end

 
试试这个应用程序对于插入迭代文本很有用。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:31:49 | 显示全部楼层
我想我回答了这个问题
回复

使用道具 举报

0

主题

61

帖子

62

银币

限制会员

铜币
-1
发表于 2022-7-6 07:38:31 | 显示全部楼层
 
也许OP无法解析?
 
原理是,该函数不是测试响应mid命令,而是在*开始执行move命令之前*请求点并检查它。
 
dJE
回复

使用道具 举报

GP_

8

主题

248

帖子

245

银币

初来乍到

Rank: 1

铜币
42
发表于 2022-7-6 07:41:21 | 显示全部楼层
 
 
如果该函数用于输入迭代文本,为什么不使用lisp n°1?
回复

使用道具 举报

56

主题

284

帖子

231

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
289
发表于 2022-7-6 07:49:46 | 显示全部楼层
这就是GP_是一个lisp应用程序1号。我试图得到一些东西,但我不知道如何解决这个问题。非常感谢李的帮助和分享他的经验。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:50:44 | 显示全部楼层
 
我认为问题在于如何在移动命令的“暂停”期间检测用户的响应,而不是事先测试。
 
代码可以很容易地重新构造为使用两点提示,并在调用命令之前测试用户对这两个提示的响应,但是,这将删除Move命令提供的对象预览,此外,OP需要重新创建Move命令提供的替代选项。
 
我随后作出回应的原因是,OP似乎忽略了我的示例中vl cmdf的使用,支持vl catch all apply、匿名lambda函数和命令表达式的不必要组合。
 
 
不客气,科斯廷伯斯。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 10:25 , Processed in 0.432506 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表