设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2189|回复: 14

[求助] 关于记忆GETPOINT ----求助

[复制链接]

已领礼包: 685个

财富等级: 财运亨通

发表于 2013-10-22 16:53:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  1. (defun C:ar()
  2. (SETQ ss (SSGET ))
  3.   (setvar "cmdecho" 0);指令执行过程不响应
  4.       (setq arr1 (getpoint"\n请指定阵列基点:"))
  5.   (if (= arr1 nil) (quit) )
  6.      (if (null $fs) (setq $fs 2))
  7.    (setq tmp (getint (strcat "\n-->请输入阵列数量<" (itoa $fs) ">:")))
  8.   (if tmp (setq $fs tmp))
  9.       (command "array" ss "" "p" "_none" arr1 $fs "" "y")   
  10.    (PRINC)
  11. )
  12. ;以上是能正常运行的程序

  13. ;下面我先告诉大家我要做些什么
  14. ;上面的程序是免对话框的简化阵列命令
  15. ;其中不足的是不能 记忆阵列基点   下面我试了很多IF都没成功
  16. ;望高手指点一下,谢谢了

  17. 我要的结果:
  18. 让用户指定基点时 按  空格键   默认为上次指定的基点
  19. 如果上次没有基点   则指点基点

  20. (defun C:ar()
  21. (SETQ ss (SSGET ))
  22.   (setvar "cmdecho" 0);指令执行过程不响应
  23. (setq L1 (car(grread 2)))

  24.      (if (null $fs) (setq $fs 2))
  25.    (setq tmp (getint (strcat "\n-->请输入阵列数量<" (itoa $fs) ">:")))
  26.   (if tmp (setq $fs tmp))

  27. (IF (= nil *ar*)
  28.     (setq *ar* (getpoint"\n请指定阵列基点:"))
  29.   )


  30. ;--------------分割线------------以下是是我实验用的-----
  31. (IF (/= nil *ar*)
  32.     (setq pt1 *ar* )
  33.   )

  34.   (cond
  35.    
  36.     (
  37.      (/= nil *ar*)
  38.      (setq *ar* (getpoint"\n请指定阵列基点:"))
  39.     (command "array" ss "" "p" "_none" *ar* $fs "" "y")
  40.      )
  41.    
  42.     (
  43.      (= 32 (cadr(grread)))
  44.         (command "array" ss "" "p" "_none" pt1  $fs "" "y")
  45.      )   
  46.       )
  47.       
  48.   ;--------------分割线------------以上是是我实验用的-----
  49.   (command "array" ss "" "p" "_none" *ar* $fs "" "y")   
  50.    (PRINC)
  51. )
试过找论坛的程序,,,还是看不懂啊万望高手指点


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-22 17:09:38 | 显示全部楼层
回车就是NIL,那么

(if (not (setq pt (getpoint "\npick point:")))
    (setq pt #global_pt)
    (setq #golbalpt pt)
)

#golbalpt全局变量

点评

版主可能还没明白我的意思我要的结果 让用户指定基点时 按 空格键 默认为上次指定的基 如果上次没有基点 则指点基点[/backcolor]  详情 回复 发表于 2013-10-23 00:00
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 5561个

财富等级: 富甲天下

发表于 2013-10-22 20:06:07 | 显示全部楼层
[原创][源码]整合多个GetXXX用户输入函数在一块
http://bbs.mjtd.com/forum.php?mo ... 0&fromuid=62689

点评

谢谢你的回复..可惜我看不懂啊  详情 回复 发表于 2013-10-23 00:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

 楼主| 发表于 2013-10-23 00:00:28 | 显示全部楼层
newer 发表于 2013-10-22 17:09
回车就是NIL,那么

(if (not (setq pt (getpoint "\npick point:")))

版主可能还没明白我的意思

                               
登录/注册后可看大图
我要的结果

让用户指定基点时 按  空格键   默认为上次指定的基
如果上次没有基点   则指点基点

点评

你运行我的代码了吗? 就是你要的,你空格,pt就是你上次的点。  详情 回复 发表于 2013-10-23 00:15
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

 楼主| 发表于 2013-10-23 00:03:29 | 显示全部楼层
HLCAD 发表于 2013-10-22 20:06
[原创][源码]整合多个GetXXX用户输入函数在一块
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=10201 ...

谢谢你的回复..可惜我看不懂啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2013-10-23 00:15:37 | 显示全部楼层
本帖最后由 newer 于 2013-10-23 00:24 编辑
ysq101 发表于 2013-10-23 00:00
版主可能还没明白我的意思我要的结果
让用户指定基点时 按  空格键   默认为上次指定的基
如果上次没有 ...

你运行我的代码了吗?

就是你要的,你空格,pt就是你上次的点。


给你修改直观下:

第一次执行时候,提示你 拾取点,
你点过,再运行,括号里面就是上次的点,空格或者回车就直接使用,选第二点

  1. (defun c:tt ()
  2.   (if (setq pt (getpoint (strcat "\npick point:<" (if  #global_pt
  3.                                                     (vl-princ-to-string  #global_pt)
  4.                                                     "拾取点"
  5.                                                   ) ">"
  6.                          )
  7.                )
  8.       )
  9.     (setq #global_pt pt)
  10.     (setq pt #global_pt)
  11.   )
  12.   (setq p2 (getpoint pt "\n第二点"))
  13.   (princ)
  14. )

点评

生气了???  详情 回复 发表于 2013-10-24 10:55
哈哈。。。。关于原来GETPOINT还可以这样记忆。。。 学习到了。。。谢谢了。。。。 还有优化空间,如果一开始那个全局变量没值。。。。我再研究下怎么IF 题外话:基本上我每一贴都有你的热心回答。。实在是谢  详情 回复 发表于 2013-10-23 14:32
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

 楼主| 发表于 2013-10-23 14:32:02 | 显示全部楼层
newer 发表于 2013-10-23 00:15
你运行我的代码了吗?

就是你要的,你空格,pt就是你上次的点。

哈哈。。。。关于原来GETPOINT还可以这样记忆。。。
学习到了。。。谢谢了。。。。

还有优化空间,如果一开始那个全局变量没值。。。。我再研究下怎么IF

题外话:基本上我每一贴都有你的热心回答。。实在是谢谢你的帮助。。
为了报答你,,,请报上你的手机号码吧。。。我给你充点话费吧。。意思意思好吗?
如果不方便公开的话,可以加我QQ:120389613      验证码:NEWER
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 685个

财富等级: 财运亨通

 楼主| 发表于 2013-10-24 10:55:07 | 显示全部楼层
newer 发表于 2013-10-23 00:15
你运行我的代码了吗?

就是你要的,你空格,pt就是你上次的点。

生气了???

点评

我想版主们热心帮助我等初学LISP之人,应该是不图那点话费啥的,只是版主古道心肠,楼主那样说就有点不太恰当了。不是所有人都是KO。  发表于 2013-10-27 23:02
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 86个

财富等级: 招财进宝

发表于 2017-6-4 16:23:28 来自手机 | 显示全部楼层
这个全局变量怎么实现的?关闭文档再次打开是否会有记忆?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )  

GMT+8, 2021-1-19 12:49 , Processed in 0.194749 second(s), 43 queries , Gzip On, WinCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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