乐筑天下

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

[编程交流] lisp中的最后一点

[复制链接]

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 14:51:01 | 显示全部楼层 |阅读模式
你好
我对Lisp程序很陌生
 
我今天才开始看
 
我想知道如何使用最后选择的点
 
我画了一条很简单的线,但我如何再选择一个点,它从第一条线的末端画一条线到新的点,并对任意数量的点继续这样做
 
谢谢你的帮助
 
如果我没有很好地解释,我将张贴我到目前为止
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 14:57:30 | 显示全部楼层
嗯,有几种方法可以实现这一点:
 
最简单的是:
 
  1. (command "_line")
  2. (while (> (getvar "CMDACTIVE") 0) (command pause))

 
但要仅检索最后单击的点:
 
  1. (getvar "lastpoint")
回复

使用道具 举报

1

主题

10

帖子

9

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-6 15:05:22 | 显示全部楼层
再看看getpoint
 
  1. (setq P1 (getpoint "\npick a point: "))
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 15:12:35 | 显示全部楼层
thanx lee max公司
这正是我想要的
 
现在唯一的事情是,除非我按esc键,否则我的命令不会完成(当我按return键时,它不会完成)。对此,我们将不胜感激
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:18:16 | 显示全部楼层
你可以发布你的例程吗?我会检查错误-如果按enter键,我发布的代码应该会停止。
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 15:23:22 | 显示全部楼层
由于某些原因,我无法将其作为附件发布。我的工作电脑不允许我发布,但这是我的文本
 
(defun c:3点()
; 定义函数
(setq a(getpoint“\n输入第一个点:”)
; 获得第一分
(setq b(getpoint“\n输入下一个点:”)
;获得第二点
(命令行“a b”)
;划清界限
(虽然
(setq c(getvar“lastpoint”))
(setq d(getpoint“\n输入下一个点:”)
(命令行“c d”)
;划清界限
)
(普林斯)
;清洁运行
) ;结束defun
(普林斯)
;清洁装载
 
顺便说一句,这样做的原因是要学习一些关于lisps的知识,但目前实际上并不实用(因此它基本上是一个行命令)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:27:46 | 显示全部楼层
我只想把它简化为:
 
  1. (defun c:3point     ()
  2. (command "_line")
  3. (while (> (getvar "CMDACTIVE") 0)
  4.    (command pause))
  5. (princ))
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 15:38:05 | 显示全部楼层
非常感谢lee mac
 
有一件事,你能解释一下嘴唇的“while”部分和“command pause”吗?因为我不知道它们在做什么,我的目标是能够自己写。
 
thanx又是一个伟大的洞察力,我有很多我不需要的东西
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 15:39:23 | 显示全部楼层
没问题-如果你还有问题,尽管问
 
  1. (defun c:3point     ()
  2. ; Define the Function - no local variables or arguments in this one, so nothing in the brackets
  3. (command "_line")
  4. ; Invoke the Line command (merely prints "line" to the command line.
  5. (while
  6. ; While the following is true
  7.    (> (getvar "CMDACTIVE") 0)
  8.    ; The variable "CMDACTIVE" determines whether a command is active or not, i.e, while the line command
  9.    ; is active...
  10.    (command pause))
  11. ; print a "pause" to the command line (hence pause for user input.
  12. (princ))
  13. ;; exit cleanly.
回复

使用道具 举报

2

主题

8

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2022-7-6 15:46:31 | 显示全部楼层
只是出于对这件事的兴趣
命令如何处于非活动状态
 
当然,如果它不活动,它不会做任何事情??
 
thanx公司
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-4 21:06 , Processed in 0.328140 second(s), 72 queries .

© 2020-2025 乐筑天下

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