找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: xtdwynij

[求助] 求助一个类似于getdist函数功能的函数

[复制链接]

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-6-2 15:53:49 | 显示全部楼层
Lispboy 发表于 2013-6-2 15:42
里面疏忽,输入错了,修改了,重新看下上面两个帖子。

要空格一次才可以换成捕捉的.和我写的郊果一样.不能够自动识别是键盘输入还是捕捉输入.是默认键盘输入.回车后换成捕捉输入!:)

点评

到底你想要什么? 得到的 距离值,你还想知道是键盘得到的? 还是用户拾取点得到的?  详情 回复 发表于 2013-6-2 16:01
肯定要这样的啊,你键盘输入值了,就不用拾取了,没输入值输入的是回车,就去拾取点,比如 放在这个里面的就是告诉用户要回车,这都是约定俗成的。  详情 回复 发表于 2013-6-2 15:59
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-2 15:59:30 | 显示全部楼层
xtdwynij 发表于 2013-6-2 15:53
要空格一次才可以换成捕捉的.和我写的郊果一样.不能够自动识别是键盘输入还是捕捉输入.是默认键盘输入.回 ...

肯定要这样的啊,你键盘输入值了,就不用拾取了,没输入值输入的是回车,就去拾取点,比如<>  放在这个里面的就是告诉用户要回车,这都是约定俗成的。

点评

嘿嘿!我就不想要那个回车!想要自动的去识别它!可以键盘输入也可以捕捉输入(不同的是只返回X轴的值或者只返回Y轴的值),假如多了那个回车总感觉怪怪的不是那么多顺手!我请教过别的师兄!貌似可以实现我的郊果.只是我连  详情 回复 发表于 2013-6-2 16:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-2 16:01:33 | 显示全部楼层
xtdwynij 发表于 2013-6-2 15:53
要空格一次才可以换成捕捉的.和我写的郊果一样.不能够自动识别是键盘输入还是捕捉输入.是默认键盘输入.回 ...

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-2 16:04:38 | 显示全部楼层
本帖最后由 Lispboy 于 2013-6-2 16:05 编辑

你要想 先让用户拾取点,没拾取,就输入值的话,改这样

  1. (defun c:tt ()
  2.   (if (or
  3.         (and
  4.           (setq aa (getpoint "\n请指定第一点<输入>:"))
  5.           (setq bb (getpoint aa "\n请指定第二点<输入>:"))
  6.           (setq ct (distance p1 (list (car p2) (cadr p1))))
  7.         )
  8.         (setq ct (gereal "\n请输入插口的值<退出>:"))
  9.       )
  10.       (progn
  11.           ;ct 就是和用户交互获得的距离
  12.       )
  13.   )
  14.   (princ)
  15. )

评分

参与人数 1D豆 +5 收起 理由
xshrimp + 5 及时回复奖!

查看全部评分

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

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-6-2 16:07:47 | 显示全部楼层
Lispboy 发表于 2013-6-2 15:59
肯定要这样的啊,你键盘输入值了,就不用拾取了,没输入值输入的是回车,就去拾取点,比如  放在这个里面 ...

嘿嘿!我就不想要那个回车!想要自动的去识别它!可以键盘输入也可以捕捉输入(不同的是只返回X轴的值或者只返回Y轴的值),假如多了那个回车总感觉怪怪的不是那么多顺手!我请教过别的师兄!貌似可以实现我的郊果.只是我连思路都没有.这才上来求师兄们指点一下!听说有点复杂

点评

你总得让程序知道你不想输入了,想拾取了吧? 你说下怎么告诉程序想做哪个? getreal 就是等着你键盘输入数值,你不输入,程序等着你呢? 你不想回车,那你所你怎么告诉程序?  详情 回复 发表于 2013-6-2 16:17
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-2 16:17:40 | 显示全部楼层
本帖最后由 Lispboy 于 2013-6-2 16:19 编辑
xtdwynij 发表于 2013-6-2 16:07
嘿嘿!我就不想要那个回车!想要自动的去识别它!可以键盘输入也可以捕捉输入(不同的是只返回X轴的值或者只 ...

你总得让程序知道你不想输入了,想拾取了吧?

你说下怎么告诉程序想做哪个?

getreal 就是等着你键盘输入数值,你不输入,程序等着你呢? 你不想回车,那你所你怎么告诉程序?
多个回车哪里怪? ACAD的命令,你不需要回车去运行吗? 脑袋想着啥,程序就自动走了? 那得需要电脑和你脑袋之间插个电线。{:soso_e113:}

点评

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

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-6-2 16:20:19 | 显示全部楼层
Lispboy 发表于 2013-6-2 16:17
你总得让程序知道你不想输入了,想拾取了吧?

你说下怎么告诉程序想做哪个?

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

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-2 16:22:05 | 显示全部楼层
我就不想要那个回车!想要自动的去识别它!可以键盘输入也可以捕捉输入


怎么理解这句话,不想要回车,还可以键盘输入?

点评

这不就和getdist类似咯!支持键盘输入的同时也支持捕捉输入  详情 回复 发表于 2013-6-2 16:24
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-6-2 16:24:09 | 显示全部楼层
Lispboy 发表于 2013-6-2 16:22
怎么理解这句话,不想要回车,还可以键盘输入?

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

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-6-2 23:16:25 | 显示全部楼层
ll_j 发表于 2013-6-2 12:20
说来说去,好像还是和http://bbs.xdcad.net/thread-668053-1-1.html的要求差不多,那个帖子已经告诉你了 ...

多谢长老出手相助。只是initged按位编码我不怎么懂意思!长老是否有空解释一下给个最简单的例子呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-2 23:54:09 | 显示全部楼层
{:soso_e141:} 你找到答案了吗? 和你交互这么半天,不采纳算了,连个分也不给,真是的。

评分

参与人数 1D豆 +4 收起 理由
xtdwynij + 4 不大会用这些啊!Lispboy师兄!答案是有了.

查看全部评分

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

使用道具 举报

发表于 2013-6-3 07:41:20 | 显示全部楼层
Help 中的一个例子 [pcode=lisp,true]
(defun C:ARBENTRY ( / pt1)
  (initget 128)                     ; Sets arbitrary entry bit
  (setq pt1 (getpoint "\nPoint: ")) ; Gets value from user.
  (if (= 'STR (type pt1))           ; If it's a string, convert it
    (setq pt1 (eval (read pt1)))    ; to a symbol, try evaluating
                                    ; it as a function; otherwise,
    pt1                             ; just return the value.
  )
)

(defun REF ( )
  (setvar "LASTPOINT" (getpoint "\nReference point: "))
  (getpoint "\nNext point: " (getvar "LASTPOINT"))
)[/pcode]
If both the C:ARBENTRY  and REF  functions are loaded into the drawing, the following command sequence is acceptable.              
Command: arbentry
Point: (ref)
Reference point: Select a point
Next point: @1,1,0

点评

多谢Free-Lancer老朋友!此问题已经解决。没想到还能够这样用这个函数!以前一直搞不懂也就放在那里不去了解它!现在才明白这函数的用法,ll_j长老真厉害,您一出手就搞定啦呵呵!Lispboy师兄,对于你的热情细心我非  详情 回复 发表于 2013-6-3 11:35

评分

参与人数 1D豆 +2 收起 理由
xtdwynij + 2 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-6-3 11:35:30 | 显示全部楼层
Free-Lancer 发表于 2013-6-3 07:41
Help 中的一个例子
(defun C:ARBENTRY ( / pt1)
  (initget 128)                     ; Sets arbitrar ...

多谢Free-Lancer老朋友!此问题已经解决。没想到还能够这样用这个函数!以前一直搞不懂也就放在那里不去了解它!现在才明白这函数的用法,ll_j长老真厉害,您一出手就搞定啦呵呵!Lispboy师兄,对于你的热情细心我非常感激!谢谢!

点评

谢谢啦 答案是什么,把你写好的贴上来让大家看看吧。  详情 回复 发表于 2013-6-3 11:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-6-3 11:48:06 | 显示全部楼层
xtdwynij 发表于 2013-6-3 11:35
多谢Free-Lancer老朋友!此问题已经解决。没想到还能够这样用这个函数!以前一直搞不懂也就放在那里不去 ...

谢谢啦:$

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

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-6-3 12:35:06 | 显示全部楼层
电脑已经换了。但是过程我还是记得的!如下
(defun c:tt ()
   (initget 128) ;支持任意输入
     (setq pt1 (getpoint "\nPoint: "))
     (cond ((= 'STR (type pt1)) (则执行什么什么)) ;假如变量为实数
              ((= 'list (type pt1)) (则执行什么什么));假如变量为表
   )
)但有些还是不大明白。不过今天是没有时间去搞了!交互原来也是这么有趣的事!不错!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 11:37 , Processed in 0.432330 second(s), 64 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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