明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1222|回复: 3

一个问题

[复制链接]
发表于 2009-3-27 00:34:00 | 显示全部楼层 |阅读模式

看了很多贴子,也研究了lisp的帮助。

我在使用(getpoint point1 "选择点或输入C沿用默认点")之后,如果选择C使用默认点,那么这个getpoint命令应该失效而继续进行程序的下面部分,但实际上不管怎么做AutoCAD永远记得让你选则一个点。

如:

……;程序的上半部

(initget 7 "c")

(setq kword (getpoint point1 "选择点或输入C沿用默认点")'

(if (= kword "c") (setq thepoint oldpoint) (setq thepoint kword)

……;程序的后面部分

迷茫中~

发表于 2009-3-27 12:42:00 | 显示全部楼层
可以不用键入字母c,空回车也行。
……
(setq p2 (getpoint point1 "选择点(回车用默认点) :"))
(setq pt2 (if p2 p2 oldpoint))
……
发表于 2009-3-27 14:33:00 | 显示全部楼层

(if (= kword "c") (setq thepoint oldpoint) (setq thepoint kword)

红色部分返回有两种情况:

1.用户拾取点;

2.用户enter。

建议将if语句改用cond,判断点可用vl-cons

发表于 2009-3-31 17:09:00 | 显示全部楼层

(defun c:test ()
  (setq point1 (getpoint "\npoint"))
  (initget 7 "c")

  (setq kword (getpoint point1 "\n选择点或输入C沿用默认点:"))


  (if
    (= kword "c")
     (setq thepoint "输入了C")
     (setq thepoint kword)

  )
  (princ"\n")
  (princ thepoint)
  (princ)
)

CAD并没有在要求输入两个点啊,第一个点point1是肯定要的

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

本版积分规则

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

GMT+8, 2025-12-19 04:26 , Processed in 0.155285 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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