找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: xtdwynij

[求助] 如何自动识别键盘输入与捕捉输入

[复制链接]

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-5-14 11:58:05 | 显示全部楼层
xtdwynij 发表于 2013-5-14 11:44
感谢ll_j 师兄!呵呵.做容错处理也没有什么!加不加都不影响使用,并且大多数情况并不会用到它.等到我会用这 ...

大错特错哦!程序要直接实现一个任务代码可能会很简单,但是要进行错误处理,代码可能会复杂10倍!出错处理,就是防止各种可能出现错误的机会!哪怕这个错误出现的概率极低,但作为一个完整的程序,出错处理是必须的!一个优秀的程序员,是决不会让他的程序暴尸街头的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 12:26:35 | 显示全部楼层
牢固 发表于 2013-5-14 11:58
大错特错哦!程序要直接实现一个任务代码可能会很简单,但是要进行错误处理,代码可能会复杂10倍!出错处 ...

G版您好!我还以为说是突然中断程序呢!这一个是必须的!否则的话给了人家用出错了也会按出错的执行.这样的程序不好!!
假如说用了getdist函数的话我就算打开正交,但是不能够捕捉垂直点(一捕捉就会死机,不能捕捉就意味着二个点有可能不在同一水平线上).能不能加一点东西上去单纯得到X或者Y的值呢(让它们处在同一水平线上).假如(setq pt1 (getpoint ))
(setq pt2 (getpoint pt1 )) ;(= (car pt1) (car pt2))这样就保证了X值的不变.变得只有Y的值.可以保证它们在同一水平线上.这样偏差就会少很多!而单纯用getdist函数的话是能够实行.但是返回的值偏差就会多一些.这样有办法解决么? 假如:(setq pt1 (getpoint)) (setq pt2 (getdist pt1)) pt2这个点和pt1点有可能会不在水平线上(二个点不在同一水平线上,返回值就会误差多一点)
但是假如不用getdist函数用getpoint函数的话就不能够输入数值了!能有办法解决么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 12:29:14 | 显示全部楼层
xtdwynij 发表于 2013-5-14 12:26
G版您好!我还以为说是突然中断程序呢!这一个是必须的!否则的话给了人家用出错了也会按出错的执行.这样的 ...

简单的说就是要保证二个点在同一水平线上减 少误差!而用了getdist函数捕捉的二个点有可能会不在同一水平线上(误差就会多一点)!

点评

getdist不仅仅只是鼠标输入,也可以键盘输入。 捕捉点是不是在水平线上,或是有UCS的影响,这些都是程序要处理的事情,并不是那个函数的问题,get族函数各有用途,但并不是“绝对”的,如果你能灵活运用,也可以得  详情 回复 发表于 2013-5-14 12:55
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-5-14 12:34:30 | 显示全部楼层
xtdwynij 发表于 2013-5-14 12:29
简单的说就是要保证二个点在同一水平线上减 少误差!而用了getdist函数捕捉的二个点有可能会不在同一水平 ...

没仔细跟帖子,我想,你把UCS设置到线上,然后锁定F8为正交,X,Y方向不就固定了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-5-14 12:47:32 | 显示全部楼层
容错处理包括的范围很广,不仅仅是设置*error*函数,也包括系统变量的设置,甚至还包括一些不该出现的情况(比如空选择、非WCS等。比如我的那段代码,没有进行捕捉的处理,可能在多数情况下是出错的,但我只是想表述一下getdist的用法)。
对牢固版主所说的完整(或完善)程序而言,出错处理是必须的,但有时我们写一段代码只是临时使用方便,那么,对出错处理的深度也不同,这也正是Lisp灵活的地方。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-5-14 12:55:48 | 显示全部楼层
xtdwynij 发表于 2013-5-14 12:29
简单的说就是要保证二个点在同一水平线上减 少误差!而用了getdist函数捕捉的二个点有可能会不在同一水平 ...

getdist不仅仅只是鼠标输入,也可以键盘输入。
捕捉点是不是在水平线上,或是有UCS的影响,这些都是程序要处理的事情,并不是那个函数的问题,get族函数各有用途,但并不是“绝对”的,如果你能灵活运用,也可以得到比这些函数介绍的功能更多的功能。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 13:00:04 | 显示全部楼层
Lispboy 发表于 2013-5-14 12:34
没仔细跟帖子,我想,你把UCS设置到线上,然后锁定F8为正交,X,Y方向不就固定了吗?

把UCS设置到线上?什么意思啊?不理解师兄你这句话!我要的郊果就是把一个点分成X和Y的坐标值.然后固定其中一个X或者Y的坐标不动.只动一个Y或者X的坐标.这样就可以保证在水平线上了.具体如上在所讲:(setq pt1 (getpoint)) (setq pt2 (getpoint pt1)) ;(= (car pt1) (car pt2)) 二个点的X坐标不变!

点评

UCS设到线上,就是使用物体的UCS当作当前UCS。 命令:UCS-O-选取  详情 回复 发表于 2013-5-14 13:04
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2013-5-14 13:04:12 | 显示全部楼层
xtdwynij 发表于 2013-5-14 13:00
把UCS设置到线上?什么意思啊?不理解师兄你这句话!我要的郊果就是把一个点分成X和Y的坐标值.然后固定其中 ...

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

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 13:54:21 | 显示全部楼层
ll_j 发表于 2013-5-14 12:55
getdist不仅仅只是鼠标输入,也可以键盘输入。
捕捉点是不是在水平线上,或是有UCS的影响,这些都是程序 ...

嗯。谢谢ll_j 师兄的细心指点!我自己再慢慢的研究一下吧!对于自己的表达能力实在是无话可说!至于说ucs坐标的。我想是处理三维的吧?二维的几乎是用不到的吧?对于坐标我更是没有研究了。三维应用方面都不大懂。呵呵!麻烦了许多人,我想我自己想出方法更加有成就,就先用getdist吧。各函数都有介绍的。是我没有仔细看。刚才去看了。原来getdist可单独使用的!呵呵。很少用这个函数。不记得了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 449个

财富等级: 日进斗金

 楼主| 发表于 2013-5-14 13:55:04 | 显示全部楼层
Lispboy 发表于 2013-5-14 12:34
没仔细跟帖子,我想,你把UCS设置到线上,然后锁定F8为正交,X,Y方向不就固定了吗?

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 21:43 , Processed in 0.174215 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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